diff --git a/.distignore b/.distignore
index e0981da6f..bb68aad6d 100644
--- a/.distignore
+++ b/.distignore
@@ -2,9 +2,10 @@
.distignore
.editorconfig
.eslintignore
-.eslintrc.json
+.eslintrc.js
.gitignore
.nvmrc
+.phpunit.result.cache
composer.lock
docker-compose.build.yml
docker-compose.yml
@@ -14,6 +15,7 @@ package-lock.json
phpcs.xml.dist
phpunit.xml
phpunit-multisite.xml
+playwright.config.js
renovate.json
.git
.github
@@ -25,3 +27,13 @@ dist
local
node_modules
tests
+
+# Playwright generated files.
+/artifacts/
+/test-results/
+/playwright-report/
+/blob-report/
+/playwright/.cache/
+
+# JS and SCSS source files.
+/src/
diff --git a/.eslintignore b/.eslintignore
index f2984e588..5b45ec99e 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,5 +1,3 @@
-/ui/lib/
-**/*.min.js
/vendor/
/node_modules/
/build/
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 000000000..8523526b4
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,18 @@
+module.exports = {
+ extends: [
+ 'plugin:@wordpress/eslint-plugin/recommended-with-formatting',
+ ],
+ env: {
+ browser: true,
+ es6: true,
+ },
+ rules: {
+ '@wordpress/no-global-event-listener': 'off',
+ 'jsdoc/check-indentation': 'error',
+ '@wordpress/dependency-group': 'error',
+ 'import/order': [ 'error', { groups: [ 'builtin', [ 'external', 'unknown' ], 'internal', 'parent', 'sibling', 'index' ] } ],
+ 'jsdoc/require-param': 'off',
+ 'jsdoc/require-param-type': 'off',
+ 'jsdoc/check-param-names': 'off',
+ },
+};
diff --git a/.eslintrc.json b/.eslintrc.json
deleted file mode 100644
index fa048e4ab..000000000
--- a/.eslintrc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "env": {
- "browser": true
- },
- "extends": [
- "plugin:@wordpress/eslint-plugin/es5"
- ],
- "rules": {
- "camelcase": "off",
- "no-alert": "off",
- "vars-on-top": "warn"
- }
-}
diff --git a/.github/workflows/lint-and-test.yml b/.github/workflows/lint-and-test.yml
index 511096213..67ab0369a 100644
--- a/.github/workflows/lint-and-test.yml
+++ b/.github/workflows/lint-and-test.yml
@@ -54,11 +54,11 @@ jobs:
- name: Lint
run: npm run lint
+ - name: Build
+ run: npm run build
+
- name: Pull custom Docker images
run: docker compose pull wordpress
- name: Test
run: npm run test
-
- - name: Build
- run: npm run build
diff --git a/.gitignore b/.gitignore
index 6e7f0efcd..f57f65a72 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,10 +14,11 @@ debug.log
package.lock
.phpunit.result.cache
-# Compiled files
-ui/js/*.min.js
-ui/css/*.min.css
-alerts/js/*.min.js
-
# Generated test data
+/artifacts/
tests/data/tmp/*
+/test-results/
+/playwright-report/
+/blob-report/
+/playwright/.cache/
+/playwright/.auth/
diff --git a/.nvmrc b/.nvmrc
index 2bd5a0a98..8fdd954df 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-22
+22
\ No newline at end of file
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index d17428aff..1a1b475d3 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -2,6 +2,6 @@
"recommendations": [
"EditorConfig.EditorConfig",
"felixfbecker.php-debug",
- "ikappas.phpcs"
+ "ms-playwright.playwright"
]
}
diff --git a/Gruntfile.js b/Gruntfile.js
deleted file mode 100644
index 48bafdd1c..000000000
--- a/Gruntfile.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/* eslint-env node, es6 */
-
-module.exports = function( grunt ) {
- 'use strict';
-
- grunt.initConfig( {
- pkg: grunt.file.readJSON( 'package.json' ),
-
- // Minify .js files.
- uglify: {
- options: {
- preserveComments: false,
- },
- core: {
- files: [
- {
- expand: true,
- cwd: 'ui/js/',
- src: [ '*.js', '!*.min.js' ],
- dest: 'ui/js/',
- ext: '.min.js',
- },
- ],
- },
- alerts: {
- files: [
- {
- expand: true,
- cwd: 'alerts/js/',
- src: [ '*.js', '!*.min.js' ],
- dest: 'alerts/js/',
- ext: '.min.js',
- },
- ],
- },
- },
-
- // Minify .css files.
- cssmin: {
- core: {
- files: [
- {
- expand: true,
- cwd: 'ui/css/',
- src: [ '*.css', '!*.min.css' ],
- dest: 'ui/css/',
- ext: '.min.css',
- },
- ],
- },
- },
-
- // Clean up the build
- clean: {
- build: {
- src: [ 'build' ],
- },
- },
- } );
-
- // Load tasks
- grunt.loadNpmTasks( 'grunt-contrib-clean' );
- grunt.loadNpmTasks( 'grunt-contrib-cssmin' );
- grunt.loadNpmTasks( 'grunt-contrib-uglify' );
-
- // Register tasks
- grunt.registerTask( 'default', [ 'clean', 'uglify', 'cssmin' ] );
-};
diff --git a/alerts/class-alert-type-highlight.php b/alerts/class-alert-type-highlight.php
index 564268e4a..15eb734e4 100644
--- a/alerts/class-alert-type-highlight.php
+++ b/alerts/class-alert-type-highlight.php
@@ -16,6 +16,8 @@ class Alert_Type_Highlight extends Alert_Type {
/**
* Main JS file script handle.
+ *
+ * @deprecated 4.1.0 Constant is not used anymore and will be removed.
*/
const SCRIPT_HANDLE = 'wp-stream-alert-highlight-js';
@@ -307,34 +309,19 @@ public function ajax_remove_highlight() {
* @param string $page WP admin page.
*/
public function enqueue_scripts( $page ) {
- if ( 'toplevel_page_wp_stream' === $page ) {
- $min = wp_stream_min_suffix();
-
- wp_register_script(
- self::SCRIPT_HANDLE,
- $this->plugin->locations['url'] . 'alerts/js/alert-type-highlight.' . $min . 'js',
- array(
- 'jquery',
- ),
- $this->plugin->get_version(),
- false
- );
+ if ( 'toplevel_page_wp_stream' !== $page ) {
+ return;
+ }
- $exports = array(
+ $this->plugin->enqueue_asset(
+ 'alert-type-highlight',
+ array(),
+ array(
'ajaxUrl' => admin_url( 'admin-ajax.php' ),
'removeAction' => self::REMOVE_ACTION,
'security' => wp_create_nonce( self::REMOVE_ACTION_NONCE ),
- );
-
- wp_scripts()->add_data(
- self::SCRIPT_HANDLE,
- 'data',
- sprintf( 'var _streamAlertTypeHighlightExports = %s;', wp_json_encode( $exports ) )
- );
-
- wp_add_inline_script( self::SCRIPT_HANDLE, 'streamAlertTypeHighlight.init();', 'after' );
- wp_enqueue_script( self::SCRIPT_HANDLE );
- }
+ )
+ );
}
/**
diff --git a/alerts/class-alert-type-slack.php b/alerts/class-alert-type-slack.php
index 1beff79d0..b6ba8f10b 100644
--- a/alerts/class-alert-type-slack.php
+++ b/alerts/class-alert-type-slack.php
@@ -171,7 +171,7 @@ public function alert( $record_id, $recordarr, $alert ) {
$data['icon_url'] = $options['icon'];
}
}
- wp_remote_post(
+ wp_safe_remote_post(
$options['webhook'],
array(
'body' => wp_json_encode( $data ),
diff --git a/alerts/js/alert-type-highlight.js b/alerts/js/alert-type-highlight.js
deleted file mode 100644
index 4960eb23e..000000000
--- a/alerts/js/alert-type-highlight.js
+++ /dev/null
@@ -1,83 +0,0 @@
-/* globals jQuery, _streamAlertTypeHighlightExports */
-/* exported streamAlertTypeHighlight */
-var streamAlertTypeHighlight = ( function( $ ) {
- var self = {
- ajaxUrl: '',
- removeAction: '',
- security: '',
- };
-
- if ( 'undefined' !== typeof _streamAlertTypeHighlightExports ) {
- $.extend( self, _streamAlertTypeHighlightExports );
- }
-
- /**
- * The primary function for this file.
- */
- self.init = function() {
- $( document ).ready(
- function() {
- /**
- * Remove highlights on Record list screen.
- */
- $( '.alert-highlight .action-link[href="#"]' ).each(
- function() {
- var actionLink = $( this );
-
- /**
- * Ajax call to remove the highlight.
- *
- * @return void.
- */
- actionLink.click(
- function( e ) {
- var recordId, data;
- e.preventDefault();
- recordId = actionLink.parents( '.alert-highlight' ).attr( 'class' ).match( /record\-id\-[\w-]*\b/ );
- recordId = recordId[0].replace( 'record-id-', '' );
-
- data = {
- action: self.removeAction,
- security: self.security,
- recordId: recordId,
- };
-
- $.post(
- self.ajaxUrl, data, function( response ) {
- if ( true === response.success ) {
- ajaxDone();
- }
- }
- );
-
- /**
- * Fires when Ajax complete.
- */
- function ajaxDone() {
- var row = actionLink.parents( '.alert-highlight' ),
- odd = $( '.striped > tbody > :nth-child( odd )' );
- if ( row.is( odd ) ) {
- row.animate(
- { backgroundColor: '#f9f9f9' }, 300, function() {
- row.removeClass( 'alert-highlight' );
- }
- );
- } else {
- row.animate(
- { backgroundColor: '' }, 300, function() {
- row.removeClass( 'alert-highlight' );
- }
- );
- }
- actionLink.remove();
- }
- }
- );
- }
- );
- }
- ); // End document.ready().
- };
-
- return self;
-}( jQuery ) );
diff --git a/ui/stream-icons/datepicker-icons-gray.png b/assets/datepicker-icons-gray.png
similarity index 100%
rename from ui/stream-icons/datepicker-icons-gray.png
rename to assets/datepicker-icons-gray.png
diff --git a/ui/stream-icons/datepicker-icons.png b/assets/datepicker-icons.png
similarity index 100%
rename from ui/stream-icons/datepicker-icons.png
rename to assets/datepicker-icons.png
diff --git a/assets/stream.svg b/assets/stream.svg
new file mode 100755
index 000000000..a747253b6
--- /dev/null
+++ b/assets/stream.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/ui/stream-icons/wp-cli.png b/assets/wp-cli.png
similarity index 100%
rename from ui/stream-icons/wp-cli.png
rename to assets/wp-cli.png
diff --git a/changelog.md b/changelog.md
new file mode 100644
index 000000000..3d1fa56bd
--- /dev/null
+++ b/changelog.md
@@ -0,0 +1,709 @@
+# Stream Changelog
+
+## 4.0.2 - August 22, 2024
+
+### Security update
+
+- Fix vulnerability which allowed logged in users to update some site options in certain configurations. Props to [@sybrew](https://github.com/sybrew) for responsibly disclosing this issue.
+
+## 4.0.1 - July 30, 2024
+
+### Bug fixes
+
+- Fix PHP Type error in CLI (in [#1475](https://github.com/xwp/stream/pull/1475)) props [@Soean](https://github.com/Soean)
+- Fix Uncaught ValueError in Gravity Forms and WordPress SEO connectors (in [#1508](https://github.com/xwp/stream/pull/1508)) props [@krokodok](https://github.com/krokodok)
+- Fix dynamic callback method detection for custom connectors (in [#1469](https://github.com/xwp/stream/pull/1469)) props [@shadyvb](https://github.com/shadyvb)
+- Fix PHP warning in PHP 8 by adjusting exclude rules filtering to avoid passing null to `strlen()` (in [#1513](https://github.com/xwp/stream/pull/1513)) props [@ocean90](https://github.com/ocean90)
+- Fix adding multiple columns to the stream table using filters only displays the last column correctly (in [#1519](https://github.com/xwp/stream/pull/1519)) props [@thefrosty](https://github.com/thefrosty)
+- Fix offset warning in Slack alert when there is no custom logo (in [#1522](https://github.com/xwp/stream/pull/1522)) props [@benerd](https://github.com/benerd)
+- Fix BuddyPress Connector, check for BuddyPress dependencies before using (in [#1517](https://github.com/xwp/stream/pull/1517)) props [@dd32](https://github.com/dd32)
+- Fix [Security] Update `select2` to `4.0.13` (in [#1495](https://github.com/xwp/stream/pull/1495))
+
+### Development
+
+- Update local development environment to use Docker (in [#1423](https://github.com/xwp/stream/pull/1423))
+- Update `wp-coding-standards/wpcs` and fix all linting issues
+- Require PHP ≥ 7.0 and WordPress ≥ 4.6
+- Allow switching between PHP 7.4 and PHP 8.2
+- Document Connectors (in [#1518](https://github.com/xwp/stream/pull/1518))
+- Update dependencies
+ - `eslint` to `^8.57.0` (in [#1480](https://github.com/xwp/stream/pull/1480))
+ - `@babel/traverse` from `7.20.10` to `7.23.2` (in [#1463](https://github.com/xwp/stream/pull/1463))
+ - `braces` from `3.0.2` to `3.0.3` (in [#1487](https://github.com/xwp/stream/pull/1487))
+ - `composer/composer` from `2.2.21` to `2.2.24` (in [#1488](https://github.com/xwp/stream/pull/1488))
+ - `@wordpress/eslint-plugin` to `v19` (in [#1452](https://github.com/xwp/stream/pull/1452))
+ - `@wordpress/eslint-plugin` to `^19.2.0` (in [#1490](https://github.com/xwp/stream/pull/1490))
+
+### Deprecations
+
+- Deprecate PHP 5.6 (in [#1499](https://github.com/xwp/stream/issues/1499))
+- Deprecate `wp_stream_register_column_defaults` filter (in [#1519](https://github.com/xwp/stream/pull/1519))
+
+## 4.0.0 - January 9, 2024
+
+- Fix: Use only `$_SERVER['REMOTE_ADDR']` as the reliable client IP address for event logs. This might cause incorrectly reported event log IP addresses on environments where PHP is behind a proxy server or CDN. Use the `wp_stream_client_ip_address` filter to set the correct client IP address (see `readme.txt` for instructions) or configure the hosting environment to report the correct IP address in `$_SERVER['REMOTE_ADDR']` (issue [#1456](https://github.com/xwp/stream/issues/1456), props [@calvinalkan](https://github.com/calvinalkan)).
+- Tweak: fix typos in message strings and code comments (fixed in [#1461](https://github.com/xwp/stream/pull/1461) by [@szepeviktor](https://github.com/szepeviktor)).
+- Development: use Composer v2 during CI runs (fixed in [#1465](https://github.com/xwp/stream/pull/1465) by [@szepeviktor](https://github.com/szepeviktor)).
+
+## 3.10.0 - October 9, 2023
+
+- Fix: Improve PHP 8.1 compatibility by updating `filter_*()` calls referencing `FILTER_SANITIZE_STRING` (issue [#1422](https://github.com/xwp/stream/pull/1422)).
+- Fix: prevent PHP deprecation warning when checking for the Stream settings page requests (issue [#1440](https://github.com/xwp/stream/pull/1440)).
+- Fix: Add the associated post title to comment events (issue [#1430](https://github.com/xwp/stream/pull/1430)).
+- Fix: Use the user associated with a comment instead of the current logged-in user when logging comments (issue [#1429](https://github.com/xwp/stream/pull/1429)).
+- Fix: Prevent PHP warnings when no Lead ID present for a Gravity Forms submission (issue [#1447](https://github.com/xwp/stream/pull/1447)).
+- Fix: Remove support for legacy WordPress VIP user attribute helpers `get_user_attributes()`, `delete_user_attributes()` and `update_user_attributes()` (issue [#1425](https://github.com/xwp/stream/pull/1425)).
+- Development: Document the process for reporting security vulnerabilities (issue [#1433](https://github.com/xwp/stream/pull/1433)).
+- Development: Mark as tested with WordPress version 6.3.
+
+## 3.9.3 - April 25, 2023
+
+- Fix: [Security] CVE-2022-43490: Temporarily remove uninstall flow to avoid inadvertent uninstallation of the plugin, props [@Lucisu](https://github.com/Lucisu) via [Patchstack](https://patchstack.com/).
+- Fix: [Security] CVE-2022-43450: Check for capabilities in 'wp_ajax_load_alerts_settings' AJAX action before loading alert settings, props [@Lucisu](https://github.com/Lucisu) via [Patchstack](https://patchstack.com/).
+- Development: Mark as tested with the latest version 6.2 of WordPress.
+
+## 3.9.2 - January 10, 2023
+
+- Fix: [Security] Check authorization on 'save_new_alert' AJAX action [#1391](https://github.com/xwp/stream/pull/1391), props [marcS0H](https://github.com/marcS0H) (WPScan)
+- Development: Mark as tested with the latest version 6.1 of WordPress.
+- Development: Update development dependencies.
+
+## 3.9.1 - August 23, 2022
+
+- Fix: PHP 8 compatibility for widget connector [#1294](https://github.com/xwp/stream/pull/1355), props [@ParhamG](https://github.com/ParhamG)
+- Development: Mark as tested with the latest version 6.0 of WordPress.
+- Development: Update development dependencies.
+
+## 3.9.0 - March 8, 2022
+
+- Fix: Track changes to posts when using the block editor by making the Posts connector to run on both frontend and backend requests since block editor changes happen over the REST API [#1264](https://github.com/xwp/stream/pull/1264), props [@coreymckrill](https://github.com/coreymckrill).
+- Fix: Don't store empty log event parameters [#1307](https://github.com/xwp/stream/pull/1307), props [@lkraav](https://github.com/lkraav).
+- Development: Adjust the local development environment to use MariaDB containers for ARM processor compatibility.
+
+## 3.8.2 - October 12, 2021
+
+- Security fix: Ensure the value of `order` query parameter forwarded to the database query when viewing the Stream records in the WordPress admin (for authenticated users) is only `ASC` or `DESC`. Previously it passed the whole value of the `order` parameter filtered through `esc_sql()`.
+
+## 3.8.1 - September 17, 2021
+
+- Fix: Ensure Stream database tables are present on all WP admin requests to help with installations where the plugin activate hook never runs [#1286](https://github.com/xwp/stream/pull/1286), props [@tomjn](https://github.com/tomjn).
+
+## 3.8.0 - August 31, 2021
+
+- Fix: PHP 8.0 compatibility [#1272](https://github.com/xwp/stream/issues/1272), props [@cjhaas](https://github.com/cjhaas).
+- Development: Update development dependencies and introduce [PHPCompatibility checker](https://github.com/PHPCompatibility/PHPCompatibility) as part of the automated checks.
+
+## 3.7.0 - May 11, 2021
+
+- Fix: Exclude records when all conditions match instead of just one [#1242](https://github.com/xwp/stream/pull/1242), props [@kidunot89](https://github.com/kidunot89) and [@esausaravia](https://github.com/esausaravia)
+- Fix: Store the correct blog ID on the network admin exclude screen [#1259](https://github.com/xwp/stream/pull/1259), props [@dd32](https://github.com/dd32)
+- Fix: Ensure all blogs on the network are listed instead of just the top 100 [#1258](https://github.com/xwp/stream/pull/1258), props [@dd32](https://github.com/dd32)
+- Fix: Add highlight color in list table [#1246](https://github.com/xwp/stream/pull/1246), props [@ocean90](https://github.com/ocean90)
+- Fix: Settings page defaults repatched [#1236](https://github.com/xwp/stream/pull/1236), props [@kidunot89](https://github.com/kidunot89)
+- Development: Added unit tests for BuddyPress [#1211](https://github.com/xwp/stream/pull/1211), WooCommerce [#1199](https://github.com/xwp/stream/pull/1199), Media [#1154](https://github.com/xwp/stream/pull/1154), Jetpack [#1153](https://github.com/xwp/stream/pull/1153), Gravity Forms [#1139](https://github.com/xwp/stream/pull/1139) abd bbPress connector classes [#1120](https://github.com/xwp/stream/pull/1120), props [@kidunot89](https://github.com/kidunot89)
+
+## 3.6.2 - January 12, 2020
+
+* Fix: revert [#1159](https://github.com/xwp/stream/pull/1159) which caused a PHP error in the previous release.
+
+## 3.6.1 - January 12, 2020
+
+* New: Action add for when a blog is deleted [#1177](https://github.com/xwp/stream/pull/1177), props [@kidunot89](https://github.com/kidunot89)
+* Fix: Refactored Stream's Records table custom column functionality to output the correct column values [#1185](https://github.com/xwp/stream/pull/1185), props [@Nikschavan](https://github.com/Nikschavan), [@kidunot89](https://github.com/kidunot89), and [@derekherman](https://github.com/derekherman)
+* Fix: Refactored deprecated SQL statement for retrieving the result count [#1203](https://github.com/xwp/stream/pull/1203), props [@kidunot89](https://github.com/kidunot89)
+* Fix: Fixed a namespace of a call to the Closure class [#1215](https://github.com/xwp/stream/pull/1215), props [@szepeviktor](https://github.com/szepeviktor)
+* Fix: The default options are made available during the "wp_stream_auto_purge" callback [#1159](https://github.com/xwp/stream/pull/1159), props [@kidunot89](https://github.com/kidunot89)
+* Fix: Expensive functions removed [#1201](https://github.com/xwp/stream/pull/1201), props [@kidunot89](https://github.com/kidunot89)
+* Tweak: Remove redundant textdomain initialization [#1213](https://github.com/xwp/stream/pull/1213), props [@szepeviktor](https://github.com/szepeviktor)
+* Tweak: Cleaned up PHP version check [#1212](https://github.com/xwp/stream/pull/1212), props [@szepeviktor](https://github.com/szepeviktor)
+* Development: Unit test added for Menu connector class [#1164](https://github.com/xwp/stream/pull/1164), props [@kidunot89](https://github.com/kidunot89)
+* Development: Unit test added for Blog connector class [#1177](https://github.com/xwp/stream/pull/1177), props [@kidunot89](https://github.com/kidunot89)
+* Development Fix: Micro patch provided for Mercator actions register to deprecated hooks [#1217](https://github.com/xwp/stream/pull/1217), props [@kidunot89](https://github.com/kidunot89)
+* Development: Unit test added for Mercator connector class [#1180](https://github.com/xwp/stream/pull/1180), props [@kidunot89](https://github.com/kidunot89)
+* Development: Unit test added for Settings connector class [#1165](https://github.com/xwp/stream/pull/1165), props [@kidunot89](https://github.com/kidunot89)
+* Development: Unit test added for Installer connector class [#1155](https://github.com/xwp/stream/pull/1155), props [@kidunot89](https://github.com/kidunot89)
+* Development: Unit test added for User connector class [#1151](https://github.com/xwp/stream/pull/1151), props [@kidunot89](https://github.com/kidunot89)
+* Development: Unit test added for Editor connector class [#1138](https://github.com/xwp/stream/pull/1138), props [@kidunot89](https://github.com/kidunot89)
+* Development: Unit test added for Comments connector class [#1134](https://github.com/xwp/stream/pull/1134), props [@kidunot89](https://github.com/kidunot89)
+
+
+## 3.6.0 - October 14, 2020
+
+* New: Introduce the `wp_stream_db_query_where` filter [#1160](https://github.com/xwp/stream/pull/1160), props [@kidunot89](https://github.com/kidunot89) and [@nprasath002](https://github.com/nprasath002).
+* Fix: Replace the deprecated jQuery `.load()` calls [#1162](https://github.com/xwp/stream/pull/1162), props [@kidunot89](https://github.com/kidunot89).
+* Fix: Log the correct post status change [#1121](https://github.com/xwp/stream/pull/1121), props [@kidunot89](https://github.com/kidunot89).
+* Fix: Update the [Advanced Custom Fields](https://wordpress.org/plugins/advanced-custom-fields/) connector to support versions 5 of the plugin [#1118](https://github.com/xwp/stream/pull/1118), props [@kidunot89](https://github.com/kidunot89).
+* Fix: Update the [Easy Digital Downloads](https://wordpress.org/plugins/easy-digital-downloads/) connector to support version 2.5 of the plugin [#1137](https://github.com/xwp/stream/pull/1137), props [@kidunot89](https://github.com/kidunot89).
+* Tweak: Clarify the messaging when no Stream records found [#1178](https://github.com/xwp/stream/issues/1178), props [@kidunot89](https://github.com/kidunot89) and [@johnbillion](https://github.com/johnbillion).
+
+## 3.5.1 - August 14, 2020
+
+* Fix: Use the correct timestamp format when saving Stream records to ensure correct dates on newer versions of MySQL [#1149](https://github.com/xwp/stream/issues/1149), props [@kidunot89](https://github.com/kidunot89).
+* Development: Include `composer.json` file in the release bundles to ensure they can be pulled using Composer from the [Stream distribution repository](https://github.com/xwp/stream-dist).
+* Development: Automatically store plugin release bundles when tagging a new release on GitHub [#1074](https://github.com/xwp/stream/pull/1074).
+* Development: Update the local development environment to support multisite installs for testing [#1136](https://github.com/xwp/stream/pull/1136).
+
+## 3.5.0 - July 8, 2020
+
+* Fix: Stream records now show the correct timestamp instead of dates like `-0001/11/30` [#1091](https://github.com/xwp/stream/issues/1091), props [@kidunot89](https://github.com/kidunot89).
+* Fix: Searching Stream records is now more performant as we throttle the amount of search requests [#1081](https://github.com/xwp/stream/issues/1081), props [@oscarssanchez](https://github.com/oscarssanchez).
+* Tweak: Inline PHP documentation updates and WordPress coding standard fixes, props [@kidunot89](https://github.com/kidunot89).
+
+## 3.4.3 - March 19, 2020
+
+* Fix: Stream records can be filtered by users again [#929](https://github.com/xwp/stream/issues/929), props [@tareiking](https://github.com/tareiking).
+* New: Composer releases now include the built assets [#1054](https://github.com/xwp/stream/issues/1054).
+
+## 3.4.2 - September 26, 2019
+
+* Fix: Visiting the plugin settings page no longer produces PHP warnings for undefined variables [#1031](https://github.com/xwp/stream/issues/1031).
+* Fix: The IP address based exclude rules now stay with the same ruleset when saving [#1035](https://github.com/xwp/stream/issues/1035). Previously IP addresses would jump to the previous rule which didn't have an IP address based conditional.
+
+## 3.4.1 - July 25, 2019
+
+* Fix: Allow tracking cron events even when the default WordPress front-end cron runner is disabled via `DISABLE_WP_CRON`. See [#959], props [@khromov](https://github.com/khromov) and [@tareiking](https://github.com/tareiking).
+
+## 3.4.0 - July 13, 2019
+
+* New: Add development environment and documentation, update tooling [#1016](https://github.com/xwp/stream/pull/1016).
+* New: Add [Mercator](https://github.com/humanmade/Mercator) connector [#993](https://github.com/xwp/stream/pull/993), props [@spacedmonkey](https://github.com/spacedmonkey).
+* Fix: Respect the `DISALLOW_FILE_MODS` constant and prevent plugin uninstall, if set. [#997](https://github.com/xwp/stream/pull/997) fixes [#988](https://github.com/xwp/stream/issues/988), props [@lukecarbis](https://github.com/lukecarbis) and [@josephfusco](https://github.com/josephfusco).
+
+## 3.3.0 - June 18, 2019
+
+* New: Filter for allow WP network-like behaviour ([#1003](https://github.com/xwp/stream/pull/1003)).
+* Fix: Sanitize instead of escape the request method ([#987](https://github.com/xwp/stream/pull/987)).
+* Fix: Escape the last page link as an HTML attribute value ([#999](https://github.com/xwp/stream/pull/999)).
+* Fix: streamAlertTypeHighlight error on the Stream Records page ([#1007](https://github.com/xwp/stream/issues/1007)).
+
+Props [@dkotter](https://github.com/dkotter), [@fklein-lu](https://github.com/fklein-lu), [@joehoyle](https://github.com/joehoyle)
+## 3.2.3 - April 23, 2018
+
+* New: Use minimized assets ([#973](https://github.com/xwp/stream/pull/973))
+* New: Alert type – Slack alerts! ([#970](https://github.com/xwp/stream/pull/970) [#962](https://github.com/xwp/stream/pull/962))
+* Fix: PHP 7.1 compatibility fix ([#974](https://github.com/xwp/stream/pull/974))
+* Fix: Make reset nonce unique ([#972](https://github.com/xwp/stream/pull/972))
+* Fix: Stripped settings and alerts inputs ([#968](https://github.com/xwp/stream/pull/968))
+* Fix: Update Datetime extension ([#966](https://github.com/xwp/stream/pull/966))
+* Fix: WP CLI Namespace collision ([#944](https://github.com/xwp/stream/pull/944))
+* Tweak: Coding standards updates ([#975](https://github.com/xwp/stream/pull/975))
+* Tweak: Show real client IP (if available) when in reverse-proxy mode ([#969](https://github.com/xwp/stream/pull/969) [#963](https://github.com/xwp/stream/pull/963))
+* Tweak: Performance improvement when listing roles ([#964](https://github.com/xwp/stream/pull/964))
+
+Props [@DavidCramer](https://github.com/DavidCramer), [@lukecarbis](https://github.com/lukecarbis), [@frozzare](https://github.com/frozzare), [@fjarrett](https://github.com/fjarrett), [@shadyvb](https://github.com/shadyvb), [@valendesigns](https://github.com/valendesigns), [@robbiet480](https://github.com/robbiet480), [@cfoellmann](https://github.com/cfoellmann)
+
+## 3.2.2 - September 13, 2017
+
+* Fix: Prevent fatal error when attempting to store an Object in the database.
+
+## 3.2.1 - September 8, 2017
+
+* New: Support for the ACF Options page. ([#931](https://github.com/xwp/stream/pull/931))
+* New: Added minimal composer file. ([#932](https://github.com/xwp/stream/pull/932)
+* Tweak: Remove dependence on serializing functions. ([#939](https://github.com/xwp/stream/pull/939))
+* Tweak: Add wp_stream_is_record_excluded filter. ([#921](https://github.com/xwp/stream/pull/921))
+* Fix: Readme spelling fixes (localised [sic] for en_US). ([#928](https://github.com/xwp/stream/pull/928))
+* Fix: Undefined index ID issue when trashing post with customize-posts. ([#936](https://github.com/xwp/stream/pull/936))
+* Fix: Stream fails to install properly (sometimes) due to database error. ([#934](https://github.com/xwp/stream/pull/934))
+* Fix: Stream is network activated if it's a must-use plugin on a multisite ([#956](https://github.com/xwp/stream/pull/956))
+
+## 3.2.0 - March 15, 2017
+
+* New: Stream now support alternate Database Drivers. ([#889](https://github.com/xwp/stream/pull/889))
+* Fix: Exclude dropdown menus ([e5c8677](https://github.com/xwp/stream/commit/e5c8677), [3626ba8](https://github.com/xwp/stream/commit/3626ba8), [e923a92](https://github.com/xwp/stream/commit/e923a92))
+* Fix: Prevent loading of connectors on frontend ([ed3a635](https://github.com/xwp/stream/commit/ed3a635))
+* Fix: Customizer performance issue ([#898](https://github.com/xwp/stream/pull/898))
+* Fix: Various Network Admin bugs ([#899](https://github.com/xwp/stream/pull/899))
+* Tweak: Codeclimate & Editorconfig support ([#896](https://github.com/xwp/stream/pull/896))
+* Tweak: Better DB migration support ([#905](https://github.com/xwp/stream/pull/905))
+
+## 3.1.1 - October 31, 2016
+
+* Fix: Hotfix for Error Updating Stream DB.
+
+## 3.1 - October 31, 2016
+
+* New: Stream Alerts is here! Get notified when something happens in your WP-Admin, so that you don't miss a thing. ([#844](https://github.com/xwp/stream/pull/844))
+* Tweak: Better support for the latest version of Yoast SEO ([#838](https://github.com/xwp/stream/pull/838))
+* Tweak: Better support for the latest version of WooCommerce ([#851](https://github.com/xwp/stream/pull/851)[#864](https://github.com/xwp/stream/pull/864))
+* Tweak: Better taxonomy labeling ([#859](https://github.com/xwp/stream/pull/859))
+* Fix: Fatal error caused by conflict with Yoast SEO ([#879](https://github.com/xwp/stream/pull/879))
+* Fix: Activating Stream through WP CLI now works ([#880](https://github.com/xwp/stream/pull/880))
+* Fix: Custom roles track properly ([#836](https://github.com/xwp/stream/pull/836))
+
+Props [@chacha](https://github.com/chacha), [@lukecarbis](https://github.com/lukecarbis), [@johnbillion](https://github.com/johnbillion), [@rheinardkorf](https://github.com/rheinardkorf), [@frozzare](https://github.com/frozzare), [@johnregan3](https://github.com/johnregan3), [@jacobschweitzer](https://github.com/jacobschweitzer), [@wrongware](https://github.com/wrongware)
+
+## 3.0.7 - June 14, 2016
+
+* Tweak: Use get_sites instead of wp_get_sites when available ([#856](https://github.com/xwp/stream/pull/856))
+* Tweak: More stable record actions (like exporting) ([71e6ac1](https://github.com/xwp/stream/commit/71e6ac1ff66e4415909c7ae29b243733a1fd209d))
+* Tweak: Better multisite support ([cfab041](https://github.com/xwp/stream/commit/cfab0413e67b83d969bd6612c895ecdb05dbfce4))
+* Fix: Exclude rule settings have been restored and enhanced ([#855](https://github.com/xwp/stream/pull/855))
+* Fix: Loading users via ajax ([#854](https://github.com/xwp/stream/pull/854))
+* Fix: Use the correct label for events relating to taxonomies which are registered late ([#859](https://github.com/xwp/stream/pull/859))
+
+Props [@chacha](https://github.com/chacha), [@lukecarbis](https://github.com/lukecarbis), Eugene Kireev, [@johnbillion](https://github.com/johnbillion)
+
+## 3.0.6 - May 31, 2016
+
+* New: Better support for default themes ([#831](https://github.com/xwp/stream/pull/831))
+* New: Upgrade filter menus to Select2 4 ([c3f6c65](https://github.com/xwp/stream/commit/c3f6c65c1bd95cebb26da7f00a720050a9144586))
+* Fix: Security Fixes
+* Fix: Cron for purging old records has been fixed ([#843](https://github.com/xwp/stream/pull/843))
+* Fix: Better at storing records for Super Admins ([#835](https://github.com/xwp/stream/pull/835))
+* Fix: Allow Super Admins to be ignored and filtered ([#835](https://github.com/xwp/stream/pull/835))
+
+Props [@chacha](https://github.com/chacha), [@lukecarbis](https://github.com/lukecarbis), [@marcin-lawrowski](https://github.com/marcin-lawrowski)
+
+## 3.0.5 - March 15, 2016
+
+* New: Export your Stream records as CSV or JSON. ([#823](https://github.com/xwp/stream/pull/823))
+* Tweak: More mobile responsive list table ([#810](https://github.com/xwp/stream/pull/810))
+* Tweak: Better Javascript conflict prevention ([#812](https://github.com/xwp/stream/pull/812))
+* Tweak: Minor styling updates. It's about attention to detail. ([#826](https://github.com/xwp/stream/pull/826))
+* Fix: Gravity Forms error when adding a note ([#811](https://github.com/xwp/stream/pull/811))
+* Fix: In some instances, custom roles weren't being logged by Stream ([#824](https://github.com/xwp/stream/pull/824))
+* Fix: The Customizer fix you've been waiting for! Stream now properly records changes made from the Customizer. ([#827](https://github.com/xwp/stream/pull/827))
+
+Props [@chacha](https://github.com/chacha), [@lukecarbis](https://github.com/lukecarbis), [@Stayallive](https://github.com/Stayallive), [@barryceelen](https://github.com/barryceelen), Jonathan Desrosiers, [@marcin-lawrowski](https://github.com/marcin-lawrowski)
+
+## 3.0.4 - November 27, 2015
+
+* Tweak: Better descriptions when a post changes status ([0eada10](https://github.com/xwp/stream/commit/0eada108b443ed3b6f9bdae3f1e4c87c77128a0a))
+* Fix: Stream no longer crashes every time it tries to use a Jetpack ([#798](https://github.com/xwp/stream/pull/798))
+* Fix: You may now actually choose an item from the filter dropdown menus, instead of having everything greyed out ([#800](https://github.com/xwp/stream/pull/800))
+* Fix: Logging in / out of a Multisite install is now possible ([#801](https://github.com/xwp/stream/pull/801))
+* Fix: The Settings connector now works with WP CLI ([78a56b2](https://github.com/xwp/stream/commit/78a56b2c6b33b4f41c7b4f1f256a4d03ad42b2cb))
+
+Props [@lukecarbis](https://github.com/lukecarbis)
+
+## 3.0.3 - November 6, 2015
+
+* Tweak: Better compatibility with upcoming WordPress 4.4 ([2b2493c](https://github.com/xwp/stream/commit/2b2493ccb3ef6cba5aeb773433fdb5f0d414e8f3))
+* Tweak: Minor security improvements
+* Fix: New and improved Gravity Forms connector, works much better ([#780](https://github.com/xwp/stream/pull/780)) (thanks [Rob](https://github.com/rob)!)
+* Fix: Stream no longer explodes on < PHP 5.3, when trying to tell you that it explodes on < PHP 5.3 ([#781](https://github.com/xwp/stream/pull/781))
+* Fix: Fixed a small typo ([62455c5](https://github.com/xwp/stream/commit/62455c518b95ddaf5e6c6c0733e7d03e5aa1311c))
+* Fix: Multiple Multisite Mistakes Mended ([#788](https://github.com/xwp/stream/pull/788))
+* Fix: Internet Explorer 8 fix!! IE8!? Come on, people, it's 2015. ([#789](https://github.com/xwp/stream/pull/789))
+* Fix: EDD connector bug ([#790](https://github.com/xwp/stream/pull/790))
+
+Props [@lukecarbis](https://github.com/lukecarbis), [@rob](https://github.com/rob), [greguly](https://github.com/greguly)
+
+## 3.0.2 - October 2, 2015
+
+* Tweak: Helper function for running Stream queries added ([#774](https://github.com/xwp/stream/pull/774))
+* Tweak: Migration dialog removed ([76e809f](https://github.com/xwp/stream/commit/76e809f9abb3dd691b755cf943b50a76a3ffb488))
+* Tweak: Better handling of draft saving and auto-saving ([#775](https://github.com/xwp/stream/pull/775))
+* Tweak: Records page title size now matches other admin pages ([afcced8](https://github.com/xwp/stream/commit/afcced8b590e047e8adfe6ae79483a7436c849f4))
+* Fix: Database update dialog is now displayed correctly ([#773](https://github.com/xwp/stream/pull/773))
+* Fix: The record's connector was being incorrectly stored as the connector name ([#773](https://github.com/xwp/stream/pull/773))
+* Fix: Record action links are back ([#773](https://github.com/xwp/stream/pull/773))
+* Fix: Jetpack is now able to connect without error while Stream is active ([#768](https://github.com/xwp/stream/pull/768))
+* Fix: Reset Filters text no longer wraps to a second line ([#765](https://github.com/xwp/stream/pull/765))
+
+Props [@lukecarbis](https://github.com/lukecarbis), Props [@sirjonathan](https://github.com/sirjonathan)
+
+## 3.0.1 - September 2, 2015
+
+* New: Stream and [User Switching](https://wordpress.org/plugins/user-switching/) are now besties ([#744](https://github.com/xwp/stream/pull/744))
+* New: You can now choose to keep your records indefinitely (probably not a good idea) ([#748](https://github.com/xwp/stream/pull/748))
+* Tweak: We're now using local styles for our datepicker, instead of loading them externally ([#751](https://github.com/xwp/stream/pull/751))
+* Fix: Updating from version 1.4.9 no longer breaks your records ([#749](https://github.com/xwp/stream/pull/749))
+* Fix: Stream now works with custom wp-content folder locations ([#745](https://github.com/xwp/stream/pull/745))
+* Fix: Live updates work again ([#739](https://github.com/xwp/stream/pull/739))
+
+Props [@lukecarbis](https://github.com/lukecarbis), [@johnbillion](https://github.com/johnbillion), [@rob](https://github.com/rob)
+
+## 3.0.0 - August 25, 2015
+
+* New: Activity logs are now stored locally in WordPress. No data is sent externally and no registration required.
+* New: Migration process for Stream 2 users to move records out of the cloud, and into your local database.
+* New: Various measures and database schema changes to improve Stream's performance.
+* Removed: Notifications and Reports have been removed to be reworked for an upcoming release.
+
+Props [@fjarrett](https://github.com/fjarrett), [@lukecarbis](https://github.com/lukecarbis)
+
+## 2.0.5 - April 23, 2015
+
+* Tweak: Compatibility with split terms introduced in WordPress 4.2 ([#702](https://github.com/xwp/stream/issues/702))
+* Tweak: Add support for future and pending post transitions ([#716](https://github.com/xwp/stream/pull/716))
+* Tweak: Match new default admin colors introduced in WordPress 4.2 ([#718](https://github.com/xwp/stream/pull/718))
+* Fix: Compatibility issues with WP-Cron Control plugin and system crons ([#715](https://github.com/xwp/stream/issues/715))
+* Fix: Broken date range filter on Reports screen ([#717](https://github.com/xwp/stream/pull/717))
+
+Props [@fjarrett](https://github.com/fjarrett)
+
+## 2.0.4 - April 16, 2015
+
+* New: Add reset button to reset search filters ([#144](https://github.com/xwp/stream/issues/144))
+* Tweak: WP-CLI command output improvements via `--format` option for table view, JSON and CSV ([#705](https://github.com/xwp/stream/pull/705))
+* Tweak: Add link to https://wp-stream.com in README ([#709](https://github.com/xwp/stream/issues/709))
+* Tweak: Better highlighting on multiple live update rows
+* Tweak: Limit custom range datepickers based on the Stream plan type
+* Tweak: Limit legacy record migrations based on the Stream plan type
+* Fix: Allow properties with values of zero to be included in queries ([#698](https://github.com/xwp/stream/issues/698))
+* Fix: Properly return record success/failure in log and store methods ([#711](https://github.com/xwp/stream/issues/711))
+
+Props [@fjarrett](https://github.com/fjarrett), [@szepeviktor](https://github.com/szepeviktor)
+
+## 2.0.3 - January 23, 2015
+
+* New: WP-CLI command now available for querying records via the command line ([#499](https://github.com/xwp/stream/issues/499))
+* Tweak: Silently disable Stream during content import ([#672](https://github.com/xwp/stream/issues/672))
+* Tweak: Search results now ordered by date instead of relevance ([#689](https://github.com/xwp/stream/issues/689))
+* Fix: Handle boolean values appropriately during wp_stream_log_data filter ([#680](https://github.com/xwp/stream/issues/680))
+* Fix: Hook into external class load methods on init rather than plugins_loaded ([#686](https://github.com/xwp/stream/issues/686))
+* Fix: N/A user not working in exclude rules ([#688](https://github.com/xwp/stream/issues/688))
+* Fix: Prevent Notification Rule meta from being saved to all post types ([#693](https://github.com/xwp/stream/issues/693))
+* Fix: PHP warning shown for some users when deleting plugins ([#695](https://github.com/xwp/stream/issues/695))
+
+Props [@fjarrett](https://github.com/fjarrett)
+
+## 2.0.2 - January 15, 2015
+
+* New: Full record backtrace now available to developers for debugging ([#467](https://github.com/xwp/stream/issues/467))
+* New: Unread count badge added to Stream menu, opt-out available in User Profile ([#588](https://github.com/xwp/stream/issues/588))
+* New: Stream connector to track Stream-specific contexts and actions ([#622](https://github.com/xwp/stream/issues/622))
+* Tweak: Inherit role access from Stream Settings for Notifications and Reports ([#641](https://github.com/xwp/stream/issues/641))
+* Tweak: Opt-in required for Akismet tracking ([#649](https://github.com/xwp/stream/issues/649))
+* Tweak: Ignore comments deleted when deleting parent post ([#652](https://github.com/xwp/stream/issues/652))
+* Tweak: Opt-in required for comment flood tracking ([#656](https://github.com/xwp/stream/issues/656))
+* Tweak: Opt-in required for WP Cron tracking ([#673](https://github.com/xwp/stream/issues/673))
+* Fix: Post revision action link pointing to wrong revision ID ([#585](https://github.com/xwp/stream/issues/585))
+* Fix: PHP warnings caused by Menu connector ([#663](https://github.com/xwp/stream/issues/663))
+* Fix: Non-static method called statically in WPSEO connector ([#668](https://github.com/xwp/stream/issues/668))
+* Fix: Prevent live updates from tampering with filtered results ([#675](https://github.com/xwp/stream/issues/675))
+
+Props [@fjarrett](https://github.com/fjarrett), [@lukecarbis](https://github.com/lukecarbis), [@shadyvb](https://github.com/shadyvb), [@jonathanbardo](https://github.com/jonathanbardo), [@westonruter](https://github.com/westonruter)
+
+## 2.0.1 - September 30, 2014
+
+* Tweak: Improved localization strings throughout the plugin ([#644](https://github.com/xwp/stream/pull/644))
+* Tweak: Improved tooltip text explaining WP.com sign in
+* Fix: ACF Pro doesn't save custom field values when Stream enabled ([#642](https://github.com/xwp/stream/issues/642))
+
+Props [@lukecarbis](https://github.com/lukecarbis), [@fjarrett](https://github.com/fjarrett)
+
+## 2.0.0 - September 27, 2014
+
+* All activity is now stored only in the cloud over SSL, local MySQL storage dependence is over!
+* Connector and Context have merged in the UI, now just called Contexts
+* The Exclude Rules UI has been completely revamped
+* Notifications and Reports are now conveniently built into Stream for Pro subscribers
+* Connectors for tracking other popular plugins are now built into Stream, like BuddyPress, Jetpack, Gravity Forms, and more...
+* You create an account for Stream simply by signing in with your WordPress.com ID
+
+**NOTE:** Multisite view of all activity records in the Network Admin has been removed in this release. If you require this feature, please do not update Stream until version 2.1.0 is released.
+
+Props [@fjarrett](https://github.com/fjarrett), [@lukecarbis](https://github.com/lukecarbis), [@shadyvb](https://github.com/shadyvb), [@chacha](https://github.com/chacha), [@jonathanbardo](https://github.com/jonathanbardo), [@bordoni](https://github.com/bordoni), [@dero](https://github.com/dero), [@jeffmatson](https://github.com/jeffmatson), [@stipsan](https://github.com/stipsan), [@c3mdigital](https://github.com/c3mdigital), [@adamsilverstein](https://github.com/adamsilverstein), [@westonruter](https://github.com/westonruter), [@japh](https://github.com/japh), [@solace](https://github.com/solace), [@johnbillion](https://github.com/johnbillion)
+
+## 1.4.9 - July 23, 2014
+
+* Fix: Revert delayed log mechanism for post transition ([#585](https://github.com/x-team/wp-stream/issues/585))
+* Fix: Revert usage of get_taxonomy() ([#586](https://github.com/x-team/wp-stream/pull/586))
+* Fix: Notices not firing on correct action ([#589](https://github.com/x-team/wp-stream/issues/589))
+
+Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
+
+## 1.4.8 - July 18, 2014
+
+* New: Greatly improved widget tracking, including changes performed in Customizer ([#391](https://github.com/x-team/wp-stream/pull/391))
+* New: Now tracking when Akismet automatically marks comments as spam ([#587](https://github.com/x-team/wp-stream/pull/587))
+* Tweak: Log WP-CLI details to Stream author meta ([#470](https://github.com/x-team/wp-stream/issues/470))
+* Tweak: Track changes to options more deeply ([#573](https://github.com/x-team/wp-stream/pull/573))
+* Fix: Labels not seen for CPT registered on init with default priority ([#565](https://github.com/x-team/wp-stream/issues/565))
+* Fix: Stream menu appearing in Network menu when not network activated ([#582](https://github.com/x-team/wp-stream/issues/582))
+* Fix: Post Revision ID associated to record is not the most recent one ([#585](https://github.com/x-team/wp-stream/issues/585))
+* Fix: Incorrect action label for comment throttling ([#591](https://github.com/x-team/wp-stream/issues/591))
+
+Props [@westonruter](https://github.com/westonruter), [@fjarrett](https://github.com/fjarrett), [@shadyvb](https://github.com/shadyvb), [@lukecarbis](https://github.com/lukecarbis), [@chacha](https://github.com/chacha)
+
+## 1.4.7 - June 27, 2014
+
+* New: Comment Type support added to the Comments connector ([#558](https://github.com/x-team/wp-stream/issues/558))
+* Fix: Datepicker opens again with each paged view ([#568](https://github.com/x-team/wp-stream/issues/568))
+* Fix: PHP warning when deleting network users ([#579](https://github.com/x-team/wp-stream/issues/579))
+* Fix: Track user count setting changes ([#583](https://github.com/x-team/wp-stream/issues/583))
+* Fix: .po and .pot files out-of-date for translators ([#584](https://github.com/x-team/wp-stream/issues/584))
+
+Props [@lukecarbis](https://github.com/lukecarbis), [@fjarrett](https://github.com/fjarrett), [@bordoni](https://github.com/bordoni), [@shadyvb](https://github.com/shadyvb)
+
+## 1.4.6 - May 30, 2014
+
+* Tweak: Actions provided for trashed posts are irrelevant ([#523](https://github.com/x-team/wp-stream/issues/523))
+* Tweak: Use core language pack translations where possible ([#534](https://github.com/x-team/wp-stream/issues/534))
+* Tweak: Consolidate show filter and show column screen options ([#542](https://github.com/x-team/wp-stream/issues/542))
+* Tweak: Stop tracking failed login attempts ([#547](https://github.com/x-team/wp-stream/issues/547))
+* Tweak: Remove all uses of extract() from Stream ([#556](https://github.com/x-team/wp-stream/issues/556))
+* Fix: Excluding roles is not handled properly ([#527](https://github.com/x-team/wp-stream/issues/527))
+* Fix: Stream runs install routine twice ([#528](https://github.com/x-team/wp-stream/issues/528))
+* Fix: Widget records show sidebar slug instead of label ([#531](https://github.com/x-team/wp-stream/issues/531))
+* Fix: Fatal error when PHP version is less than 5.3 ([#538](https://github.com/x-team/wp-stream/issues/538))
+* Fix: Cannot exclude Custom Background context ([#543](https://github.com/x-team/wp-stream/issues/543))
+* Fix: Conflict with Jetpack body class in WP Admin ([#545](https://github.com/x-team/wp-stream/issues/545))
+* Fix: Stream settings exclude error for big wp_users table ([#551](https://github.com/x-team/wp-stream/issues/551))
+
+Props [@fjarrett](https://github.com/fjarrett), [@lukecarbis](https://github.com/lukecarbis), [@shadyvb](https://github.com/shadyvb), [@barryceelen](https://github.com/barryceelen), [@japh](https://github.com/japh)
+
+## 1.4.5 - May 15, 2014
+
+* New: Lightweight frontend indicator for sites using Stream ([#507](https://github.com/x-team/wp-stream/issues/507))
+* Tweak: Add filterable method for excluded comment types ([#487](https://github.com/x-team/wp-stream/issues/487))
+* Tweak: Rename "ID" column label to "Record ID" ([#490](https://github.com/x-team/wp-stream/issues/490))
+* Tweak: One admin notice for any missing DB tables ([#506](https://github.com/x-team/wp-stream/pull/506))
+* Fix: Custom authentication schemes not tracking user logins correctly ([#434](https://github.com/x-team/wp-stream/issues/434))
+* Fix: Taxonomy connector conflicts with Edit Flow plugin ([#498](https://github.com/x-team/wp-stream/issues/498))
+* Fix: Switching user is incorrectly tracked ([#501](https://github.com/x-team/wp-stream/issues/501))
+* Fix: Extension activation links broken when plugin folders are renamed ([#502](https://github.com/x-team/wp-stream/issues/502))
+* Fix: Author info showing up incorrectly ([#505](https://github.com/x-team/wp-stream/issues/505))
+* Fix: Incompatibility with multi-server environments ([#517](https://github.com/x-team/wp-stream/issues/517))
+* Fix: Warnings seen when Show Avatars is disabled ([#518](https://github.com/x-team/wp-stream/issues/518))
+* Fix: Notices for non-existent extension data after timeout ([#529](https://github.com/x-team/wp-stream/pull/529))
+
+Props [@fjarrett](https://github.com/fjarrett), [@shadyvb](https://github.com/shadyvb), [@lukecarbis](https://github.com/lukecarbis), [@japh](https://github.com/japh)
+
+## 1.4.4 - May 6, 2014
+
+* New: Admin pointers to highlight when new admin screens are introduced ([#466](https://github.com/x-team/wp-stream/issues/466))
+* Tweak: Filter introduced to allow the Stream admin menu position to be changed ([#99](https://github.com/x-team/wp-stream/issues/99))
+* Tweak: Provide option label for records that show when the Stream database has updated ([#444](https://github.com/x-team/wp-stream/pull/444))
+* Tweak: Better handling of authors in the list table ([#448](https://github.com/x-team/wp-stream/pull/448))
+* Tweak: Way for developers to set their Stream Extensions affiliate ID on links from the Extensions screen ([#482](https://github.com/x-team/wp-stream/issues/482))
+* Fix: Extensions screen CSS bug in Firefox ([#464](https://github.com/x-team/wp-stream/issues/464))
+* Fix: Error when installing extensions from the Network Admin ([#491](https://github.com/x-team/wp-stream/issues/491))
+* Fix: Undefined notice in admin.php ([#468](https://github.com/x-team/wp-stream/issues/468))
+
+Props [@westonruter](https://github.com/westonruter), [@fjarrett](https://github.com/fjarrett), [@japh](https://github.com/japh), [@lukecarbis](https://github.com/lukecarbis), [@jonathanbardo](https://github.com/jonathanbardo), [@bordoni](https://github.com/bordoni)
+
+## 1.4.3 - April 26, 2014
+
+* New: Introducing the Stream Extensions screen! ([#396](https://github.com/x-team/wp-stream/issues/396))
+
+Props [@jonathanbardo](https://github.com/jonathanbardo), [@lukecarbis](https://github.com/lukecarbis), [@shadyvb](https://github.com/shadyvb), [@c3mdigital](https://github.com/c3mdigital), [@fjarrett](https://github.com/fjarrett)
+
+## 1.4.2 - April 24, 2014
+
+* Fix: Update Database button redirecting to previous screen ([#443](https://github.com/x-team/wp-stream/issues/443))
+* Fix: Update routine hotfix that was causing records to disappear ([#447](https://github.com/x-team/wp-stream/issues/447))
+
+Props [@jonathanbardo](https://github.com/jonathanbardo), [@lukecarbis](https://github.com/lukecarbis), [@westonruter](https://github.com/westonruter), [@fjarrett](https://github.com/fjarrett)
+
+## 1.4.1 - April 24, 2014
+
+* Fix: Scripts and styles not using Stream version number ([#440](https://github.com/x-team/wp-stream/issues/440))
+* Fix: WP-CLI incorrectly referenced in records ([#441](https://github.com/x-team/wp-stream/issues/441))
+
+Props [@westonruter](https://github.com/westonruter), [@fjarrett](https://github.com/fjarrett)
+
+## 1.4.0 - April 24, 2014
+
+* New: Multisite is now fully supported, activate Stream network-wide ([#65](https://github.com/x-team/wp-stream/issues/65))
+* New: Separate API for handling DB update routines ([#379](https://github.com/x-team/wp-stream/issues/379))
+* New: WP-CLI compatibility, Stream now tracks changes made via WP-CLI ([#423](https://github.com/x-team/wp-stream/issues/423))
+* Tweak: Deprecate functions and hooks in favor of consistent naming conventions ([#267](https://github.com/x-team/wp-stream/issues/267))
+* Tweak: Use icon link instead of clicking the summary to filter by object ID ([#380](https://github.com/x-team/wp-stream/issues/380))
+* Tweak: Save additional author meta for better records ([#389](https://github.com/x-team/wp-stream/issues/389))
+* Tweak: More compact search filters for smaller screens ([#403](https://github.com/x-team/wp-stream/issues/403))
+* Fix: Fix AJAX loading of authors in dropdown filters ([#49](https://github.com/x-team/wp-stream/issues/49))
+* Fix: Custom capability conflict with W3 Total Cache plugin ([#296](https://github.com/x-team/wp-stream/issues/296))
+* Fix: Live updates remove last item in activity table ([#386](https://github.com/x-team/wp-stream/issues/386))
+* Fix: Live updates screen option checkbox not persisting ([#392](https://github.com/x-team/wp-stream/issues/392))
+* Fix: IP validator not respecting zero ([#394](https://github.com/x-team/wp-stream/issues/394))
+* Fix: Non-Administrator users seeing errors in Settings records ([#406](https://github.com/x-team/wp-stream/issues/406))
+* Fix: Uninstall confirmation message doesn't display ([#411](https://github.com/x-team/wp-stream/issues/411))
+* Fix: TTL purge schedule is never setup ([#412](https://github.com/x-team/wp-stream/issues/412))
+* Fix: NextGen compatibility issue ([#416](https://github.com/x-team/wp-stream/issues/416))
+* Fix: Stream Feeds Key not being automatically generated ([#420](https://github.com/x-team/wp-stream/issues/420))
+
+Props [@fjarrett](https://github.com/fjarrett), [@lukecarbis](https://github.com/lukecarbis), [@c3mdigital](https://github.com/c3mdigital), [@westonruter](https://github.com/westonruter), [@shadyvb](https://github.com/shadyvb), [@powelski](https://github.com/powelski), [@johnregan3](https://github.com/johnregan3), [@jonathanbardo](https://github.com/jonathanbardo), [@desaiuditd](https://github.com/desaiuditd)
+
+## 1.3.1 - April 3, 2014
+
+* New: Theme Editor connector for tracking changes made to theme files ([#313](https://github.com/x-team/wp-stream/issues/313))
+* New: Additional screen options to show/hide only the filters you care about ([#329](https://github.com/x-team/wp-stream/issues/329))
+* New: Visibility option in Exclude settings to hide past records from view ([#355](https://github.com/x-team/wp-stream/issues/355))
+* New: Stream Activity dashboard widget now supports live updates ([#356](https://github.com/x-team/wp-stream/issues/356))
+* New: Hover authors to reveal a tooltip with helpful user meta ([#338](https://github.com/x-team/wp-stream/issues/338))
+* New: Hover roles to reveal a tooltip with the number of authors assigned to that role ([#377](https://github.com/x-team/wp-stream/issues/377))
+* Tweak: Future dates now disabled in Start date field datepicker ([#334](https://github.com/x-team/wp-stream/issues/334))
+* Tweak: Now showing user Gravatars in Exclude Authors & Roles settings field ([#333](https://github.com/x-team/wp-stream/issues/333))
+* Tweak: ID column is now hidden by default in Screen Options ([#348](https://github.com/x-team/wp-stream/issues/348))
+* Tweak: Widget updated summary message improvement ([8818976](https://github.com/x-team/wp-stream/commit/88189761d4a8836038e8d9ec348096a0aab3072d))
+* Fix: Autocomplete not working correctly in Exclude IP Addresses settings field ([#335](https://github.com/x-team/wp-stream/issues/335))
+* Fix: Reset Stream Database link not clearing everything in all cases ([#347](https://github.com/x-team/wp-stream/issues/347))
+* Fix: PHP 5.3.3 compatibility issue with filter constant ([#351](https://github.com/x-team/wp-stream/issues/351))
+* Fix: Predefined date range intervals not honoring the site timezone setting ([#353](https://github.com/x-team/wp-stream/issues/353))
+* Fix: wpdb::prepare() notice appearing in WordPress 3.9 ([#354](https://github.com/x-team/wp-stream/issues/354))
+* Fix: Invalid argument warning thrown on fresh installations of WordPress ([#358](https://github.com/x-team/wp-stream/issues/358))
+* Fix: Record TTL purge not functioning correctly ([#371](https://github.com/x-team/wp-stream/issues/371))
+* Fix: Small CSS bug in jQuery UI datepicker skins ([04c80af](https://github.com/x-team/wp-stream/commit/04c80afa99486086612be9f6ad83148dfbbe533a))
+
+Props [@powelski](https://github.com/powelski), [@fjarrett](https://github.com/fjarrett), [@jonathanbardo](https://github.com/jonathanbardo), [@faishal](https://github.com/faishal), [@desaiuditd](https://github.com/desaiuditd), [@lukecarbis](https://github.com/lukecarbis), [@johnregan3](https://github.com/johnregan3), [@Powdered-Toast-Man](https://github.com/Powdered-Toast-Man)
+
+## 1.3.0 - March 12, 2014
+
+* New: Exclude tab in Settings to prevent specific types of activity from being tracked ([#251](https://github.com/x-team/wp-stream/issues/251))
+* New: Now logging Custom Background and Custom Header changes ([#309](https://github.com/x-team/wp-stream/issues/309))
+* New: Predefined date intervals now available when filtering records ([#320](https://github.com/x-team/wp-stream/issues/320))
+* Tweak: Action links are now available for Stream Settings records ([#305](https://github.com/x-team/wp-stream/issues/305))
+* Tweak: User avatars now displayed in Authors dropdown filter ([#311](https://github.com/x-team/wp-stream/issues/311))
+* Tweak: Live updates are enabled by default for new installs ([#312](https://github.com/x-team/wp-stream/issues/312))
+* Fix: Fallback to the term slug if a label does not exist in list-table ([#214](https://github.com/x-team/wp-stream/issues/214))
+* Fix: Widget sorting is now being tracked properly as well as Inactive widgets ([#283](https://github.com/x-team/wp-stream/issues/283))
+* Fix: Superfluous auto-draft posts are now prevented from being logged ([#293](https://github.com/x-team/wp-stream/issues/293))
+
+Props [@powelski](https://github.com/powelski), [@faishal](https://github.com/faishal), [@fjarrett](https://github.com/fjarrett), [@desaiuditd](https://github.com/desaiuditd), [@lukecarbis](https://github.com/lukecarbis), [@shadyvb](https://github.com/shadyvb)
+
+## 1.2.9 - March 8, 2014
+Fixes bug that caused media uploads to fail on new posts. Props [@fjarrett](https://github.com/fjarrett)
+
+## 1.2.8 - March 7, 2014
+Use attachment type as context in Media connector. Bug fixes. Props [@lukecarbis](https://github.com/lukecarbis), [@powelski](https://github.com/powelski), [@fjarrett](https://github.com/fjarrett)
+
+## 1.2.7 - March 4, 2014
+Pagination added to Stream Activity dashboard widget. Bug fixes. Props [@chacha](https://github.com/chacha), [@fjarrett](https://github.com/fjarrett)
+
+## 1.2.6 - February 28, 2014
+Improved context names in Users connector. Props [@powelski](https://github.com/powelski)
+
+## 1.2.5 - February 27, 2014
+Use sidebar area names as context in Widgets connector. Bug fixes. Props [@desaiuditd](https://github.com/desaiuditd), [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett), [@bordoni](https://github.com/bordoni)
+
+## 1.2.4 - February 25, 2014
+Use post type names as context in Comments connector. German translation update. Bug fixes. Props [@powelski](https://github.com/powelski), [@kucrut](https://github.com/kucrut), [@pascalklaeres](https://github.com/pascal-klaeres), [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
+
+## 1.2.3 - February 21, 2014
+Replacement function for filter_input family to avoid PHP bug. Filter added to main Stream query. Bug fixes. Props [@shadyvb](https://github.com/shadyvb), [@powelski](https://github.com/powelski), [@fjarrett](https://github.com/fjarrett)
+
+## 1.2.2 - February 19, 2014
+Prevent records of disabled connectors from appearing in the Stream. Bug fixes. Props [@kucrut](https://github.com/kucrut), [@johnregan3](https://github.com/johnregan3)
+
+## 1.2.1 - February 17, 2014
+Translation updates. Language packs for pt_BR and id_ID. Bug fixes. Props [@kucrut](https://github.com/kucrut), [@shadyvb](https://github.com/shadyvb), [@bordoni](https://github.com/bordoni), [@powelski](https://github.com/powelski), [omniwired](https://github.com/omniwired), [@fjarrett](https://github.com/fjarrett)
+
+## 1.2.0 - February 12, 2014
+Awesome datepicker styles. Performance optimizations. Bug fixes. Props [@johnregan3](https://github.com/johnregan3), [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett), [@jonathanbardo](https://github.com/jonathanbardo)
+
+## 1.1.9 - February 10, 2014
+Load authors filter using AJAX if there are more than 50. Props [@powelski](https://github.com/powelski)
+
+## 1.1.8 - February 9, 2014
+Bug fixes. Props [@shadyvb](https://github.com/shadyvb)
+
+## 1.1.7 - February 6, 2014
+Upgrade routine for IPv6 support. Persist tab selection after saving Stream Settings. Props [@shadyvb](https://github.com/shadyvb), [dero](https://github.com/dero)
+
+## 1.1.6 - February 6, 2014
+Sortable columns bug fix on the records screen. Props [@powelski](https://github.com/powelski), [@fjarrett](https://github.com/fjarrett)
+
+## 1.1.5 - February 5, 2014
+Fixed a class scope bug [reported in the support forum](https://wordpress.org/support/topic/temporary-fatal-error-after-upgrade-113) that was causing a fatal error on some installs. Props [@shadyvb](https://github.com/shadyvb)
+
+## 1.1.4 - February 5, 2014
+Highlight changed settings field feature. DB upgrade routine for proper utf-8 charset. Various bug fixes. Props [@powelski](https://github.com/powelski), [@johnregan3](https://github.com/johnregan3), [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
+
+## 1.1.3 - February 4, 2014
+Upgrade routine for IP column in DB. Serialized option parsing for Stream Settings records. Purge records immediately when TTL is set backwards in Stream Settings. Various bug fixes. Props [@shadyvb](https://github.com/shadyvb), [@powelski](https://github.com/powelski), [@fjarrett](https://github.com/fjarrett)
+
+## 1.1.2 - February 2, 2014
+Bug fix for list table notice on new installations. Props [@shadyvb](https://github.com/shadyvb)
+
+## 1.1.0 - January 31, 2014
+Disable terms in dropdown filters for which records do not exist. Props [@johnregan3](https://github.com/johnregan3)
+
+## 1.0.9 - January 31, 2014
+Several important bug fixes. Props [@shadyvb](https://github.com/shadyvb)
+
+## 1.0.8 - January 30, 2014
+Bug fix for sites using BuddyPress. Props [@johnregan3](https://github.com/johnregan3)
+
+## 1.0.7 - January 29, 2014
+Code efficiency improvements when fetching admin area URLs. Props [@fjarrett](https://github.com/fjarrett)
+
+## 1.0.6 - January 28, 2014
+Query improvements, default connector interface, hook added for general settings fields. Bug fixes. Props [dero](https://github.com/dero), [@jonathanbardo](https://github.com/jonathanbardo), [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
+
+## 1.0.5 - January 27, 2014
+Bug fix for live updates breaking columns when some are hidden via Screen Options. Props [@johnregan3](https://github.com/johnregan3)
+
+## 1.0.4 - January 23, 2014
+Language pack for Polish. Bug fixes. Props [@powelski](https://github.com/powelski), [@fjarrett](https://github.com/fjarrett), [@johnregan3](https://github.com/johnregan3), [@kucrut](https://github.com/kucrut)
+
+## 1.0.3 - January 19, 2014
+Language pack for Spanish. Bug fixes. Props [omniwired](https://github.com/omniwired), [@shadyvb](https://github.com/shadyvb)
+
+## 1.0.2 - January 15, 2014
+Ensure the dashboard widget respects the Role Access setting. Props [@fjarrett](https://github.com/fjarrett)
+
+## 1.0.1 - January 15, 2014
+Require nonce for generating a new user feed key. Props [@johnregan3](https://github.com/johnregan3)
+
+## 1.0.0 - January 13, 2014
+Allow list table to be extensible. Hook added to prevent tables from being created, if desired. Props [@johnregan3](https://github.com/johnregan3), [@fjarrett](https://github.com/fjarrett), [@jonathanbardo](https://github.com/jonathanbardo)
+
+## 0.9.9 - January 8, 2014
+Updated screenshot assets and descriptions. Props [@fjarrett](https://github.com/fjarrett)
+
+## 0.9.8 - January 1, 2014
+Support for live updates in the Stream. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@johnregan3](https://github.com/johnregan3), [@fjarrett](https://github.com/fjarrett)
+
+## 0.9.7 - December 29, 2013
+Plugin version available as a constant. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@fjarrett](https://github.com/fjarrett)
+
+## 0.9.6 - December 29, 2013
+Use menu name as context in Menus connector. Warning if required DB tables are missing. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@fjarrett](https://github.com/fjarrett), [@topher1kenobe](https://github.com/topher1kenobe)
+
+## 0.9.5 - December 22, 2013
+WordPress context added to Installer connector for core updates. Props [@shadyvb](https://github.com/shadyvb)
+
+## 0.9.3 - December 22, 2013
+Replacing Chosen library with Select2. Bug fixes. Props [@kucrut](https://github.com/kucrut), [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
+
+## 0.9.2 - December 22, 2013
+Added support for private feeds in JSON format. Flush rewrite rules automatically for feeds when enabled/disabled. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@fjarrett](https://github.com/fjarrett)
+
+## 0.9.1 - December 21, 2013
+Specify which roles should have their activity logged. Delete all options on uninstall. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@fjarrett](https://github.com/fjarrett)
+
+## 0.9.0 - December 20, 2013
+Added connector for Comments. Stream activity dashboard widget. UI enhancements. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@fjarrett](https://github.com/fjarrett), [@shadyvb](https://github.com/shadyvb), [@topher1kenobe](https://github.com/topher1kenobe)
+
+## 0.8.2 - December 19, 2013
+Language packs for French and German. Option to uninstall database tables. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@fjarrett](https://github.com/fjarrett), [@topher1kenobe](https://github.com/topher1kenobe), [@pascalklaeres](https://github.com/pascal-klaeres)
+
+## 0.8.1 - December 18, 2013
+Setting to enable/disable private feeds functionality. Additional record logged when a user's role is changed. Bug fixes. Props [@fjarrett](https://github.com/fjarrett), [@kucrut](https://github.com/kucrut), [@topher1kenobe](https://github.com/topher1kenobe), [@justinsainton](https://github.com/justinsainton)
+
+## 0.8.0 - December 16, 2013
+Ability to query Stream records in a private RSS feed. Bug fixes. Props [@fjarrett](https://github.com/fjarrett), [@shadyvb](https://github.com/shadyvb)
+
+## 0.7.3 - December 13, 2013
+Bug fix for Role Access option. Props [@fjarrett](https://github.com/fjarrett)
+
+## 0.7.2 - December 12, 2013
+Bug fixes for the Installer connector. Props [@shadyvb](https://github.com/shadyvb)
+
+## 0.7.1 - December 12, 2013
+Hotfix to remove PHP 5.4-only syntax. Role Access option added to Settings. Props [@kucrut](https://github.com/kucrut)
+
+## 0.7.0 - December 11, 2013
+Added connectors for Taxonomies and Settings. Bug fixes. Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
+
+## 0.6.0 - December 9, 2013
+UX improvements to manual DB purge. Cron event for user-defined TTL of records. Bug fixes. Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
+
+## 0.5.0 - December 8, 2013
+Require PHP 5.3 to activate plugin. Provide action links for records when applicable. Bug fixes. Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
+
+## 0.4.0 - December 8, 2013
+Improved support for pages and custom post types. Chosen for filter dropdowns. Pagination support in screen options. Bug fixes. Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
+
+## 0.3.0 - December 7, 2013
+Improved actions for Users context. Action for edited images in Media context. Bug fixes in Menus context. Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett), [@akeda](https://github.com/gedex)
+
+## 0.2.0 - December 6, 2013
+Second iteration build using custom tables data model. First public release. Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
+
+## 0.1.0
+Initial concept built using custom post type/taxonomies as the data model. Props [@shadyvb](https://github.com/shadyvb)
diff --git a/classes/class-admin.php b/classes/class-admin.php
index eefa61278..dd685ff84 100644
--- a/classes/class-admin.php
+++ b/classes/class-admin.php
@@ -18,6 +18,13 @@
*/
class Admin {
+ /**
+ * The async deletion action for large sites.
+ *
+ * @const string
+ */
+ const ASYNC_DELETION_ACTION = 'stream_erase_large_records_action';
+
/**
* Holds Instance of plugin object
*
@@ -103,11 +110,11 @@ class Admin {
public $view_cap = 'view_stream';
/**
- * Capability name for viewing settings
+ * Capability name for managing settings
*
* @var string
*/
- public $settings_cap = 'manage_options';
+ public $settings_cap = WP_STREAM_SETTINGS_CAPABILITY;
/**
* Total amount of authors to pre-load
@@ -142,7 +149,7 @@ public function __construct( $plugin ) {
add_filter( 'user_has_cap', array( $this, 'filter_user_caps' ), 10, 4 );
add_filter( 'role_has_cap', array( $this, 'filter_role_caps' ), 10, 3 );
- if ( is_multisite() && $plugin->is_network_activated() && ! is_network_admin() ) {
+ if ( $this->plugin->is_multisite_network_activated() && ! is_network_admin() ) {
$options = (array) get_site_option( 'wp_stream_network', array() );
$option = isset( $options['general_site_access'] ) ? absint( $options['general_site_access'] ) : 1;
@@ -158,6 +165,9 @@ public function __construct( $plugin ) {
add_action( 'admin_notices', array( $this, 'prepare_admin_notices' ) );
add_action( 'shutdown', array( $this, 'admin_notices' ) );
+ // Feature request notice.
+ add_action( 'admin_notices', array( $this, 'display_feature_request_notice' ) );
+
// Add admin body class.
add_filter( 'admin_body_class', array( $this, 'admin_body_class' ) );
@@ -209,6 +219,17 @@ public function __construct( $plugin ) {
'ajax_filters',
)
);
+
+ // Async action for erasing large log tables.
+ add_action(
+ self::ASYNC_DELETION_ACTION,
+ array(
+ $this,
+ 'erase_large_records',
+ ),
+ 10,
+ 4
+ );
}
/**
@@ -302,6 +323,26 @@ public function admin_notices() {
}
}
+ /**
+ * Display a feature request notice.
+ *
+ * @return void
+ */
+ public function display_feature_request_notice() {
+ $screen = get_current_screen();
+
+ // Display the notice only on the Stream settings page.
+ if ( empty( $this->screen_id['settings'] ) || $this->screen_id['settings'] !== $screen->id ) {
+ return;
+ }
+
+ printf(
+ '
diff --git a/classes/class-alerts-list.php b/classes/class-alerts-list.php
index 164299d69..c49c49ac9 100644
--- a/classes/class-alerts-list.php
+++ b/classes/class-alerts-list.php
@@ -338,29 +338,10 @@ public function enqueue_scripts() {
return;
}
- $min = wp_stream_min_suffix();
-
- wp_register_script(
- 'wp-stream-alerts-list-js',
- $this->plugin->locations['url'] . 'ui/js/alerts-list.' . $min . 'js',
- array(
- 'wp-stream-alerts',
- 'jquery',
- ),
- $this->plugin->get_version(),
- false
- );
-
- wp_register_style(
- 'wp-stream-alerts-list-css',
- $this->plugin->locations['url'] . 'ui/css/alerts-list.' . $min . 'css',
- array(),
- $this->plugin->get_version()
+ $this->plugin->enqueue_asset(
+ 'alerts-list',
+ array( 'wp-stream-alerts' )
);
-
- wp_enqueue_script( 'wp-stream-alerts-list-js' );
- wp_enqueue_style( 'wp-stream-alerts-list-css' );
- wp_enqueue_style( 'wp-stream-select2' );
}
/**
@@ -393,8 +374,8 @@ public function save_alert_inline_edit( $data, $postarr ) {
$trigger_author = wp_stream_filter_input( INPUT_POST, 'wp_stream_trigger_author' );
$trigger_connector_and_context = wp_stream_filter_input( INPUT_POST, 'wp_stream_trigger_connector_or_context' );
$trigger_connector_and_context_split = explode( '-', $trigger_connector_and_context );
- $trigger_connector = $trigger_connector_and_context_split[0];
- $trigger_context = $trigger_connector_and_context_split[1];
+ $trigger_connector = array_shift( $trigger_connector_and_context_split ) ?? '';
+ $trigger_context = array_shift( $trigger_connector_and_context_split ) ?? '';
$trigger_action = wp_stream_filter_input( INPUT_POST, 'wp_stream_trigger_action' );
$alert_type = wp_stream_filter_input( INPUT_POST, 'wp_stream_alert_type' );
diff --git a/classes/class-alerts.php b/classes/class-alerts.php
index ef753f281..0af952d26 100644
--- a/classes/class-alerts.php
+++ b/classes/class-alerts.php
@@ -27,7 +27,7 @@ class Alerts {
/**
* Capability required to access alerts.
*/
- const CAPABILITY = 'manage_options';
+ const CAPABILITY = WP_STREAM_SETTINGS_CAPABILITY;
/**
* Holds Instance of plugin object
@@ -306,33 +306,21 @@ public function check_records( $record_id, $recordarr ) {
*/
public function register_scripts() {
$screen = get_current_screen();
- if ( 'edit-wp_stream_alerts' === $screen->id ) {
-
- $min = wp_stream_min_suffix();
-
- wp_register_script(
- 'wp-stream-alerts',
- $this->plugin->locations['url'] . 'ui/js/alerts.' . $min . 'js',
- array(
- 'wp-stream-select2',
- 'jquery',
- 'inline-edit-post',
- ),
- $this->plugin->get_version(),
- false
- );
-
- wp_localize_script(
- 'wp-stream-alerts',
- 'streamAlerts',
- array(
- 'any' => __( 'Any', 'stream' ),
- 'anyContext' => __( 'Any Context', 'stream' ),
- )
- );
- wp_enqueue_script( 'wp-stream-alerts' );
- wp_enqueue_style( 'wp-stream-select2' );
+ if ( 'edit-wp_stream_alerts' !== $screen->id ) {
+ return;
}
+
+ $this->plugin->enqueue_asset(
+ 'alerts',
+ array(
+ $this->plugin->with_select2(),
+ 'inline-edit-post',
+ ),
+ array(
+ 'any' => __( 'Any', 'stream' ),
+ 'anyContext' => __( 'Any Context', 'stream' ),
+ )
+ );
}
/**
@@ -622,6 +610,24 @@ public function display_triggers_box( $post = array() ) {
echo '
' . esc_html__( 'Alert me when', 'stream' ) . ' ';
$form->render_fields();
wp_nonce_field( 'save_alert', 'wp_stream_alerts_nonce' );
+
+ if ( $post instanceof \WP_Post ) :
+ /**
+ * These fields are required for the post to be saved, as the Admin AJAX inline_save action is fired.
+ *
+ * @see get_inline_data()
+ * @see wp_ajax_inline_save()
+ */
+ ?>
+
+
+
+
+
+
+
+ id ) {
$stream = wp_stream_get_instance();
- $url = $stream->locations['url'] . 'ui/stream-icons/wp-cli.png';
+ $url = $stream->locations['url'] . 'assets/wp-cli.png';
$avatar = sprintf( '
', esc_attr( $this->get_display_name() ), esc_url( $url ), esc_attr( $size ) );
} elseif ( $this->is_deleted() && isset( $this->meta['user_email'] ) ) {
$email = $this->meta['user_email'];
diff --git a/classes/class-connector.php b/classes/class-connector.php
index 066baf9e3..171f32f62 100644
--- a/classes/class-connector.php
+++ b/classes/class-connector.php
@@ -146,18 +146,26 @@ public function action_links( $links, $record ) {
/**
* Log handler
*
- * @param string $message sprintf-ready error message string.
- * @param array $args sprintf (and extra) arguments to use.
- * @param int $object_id Target object id.
- * @param string $context Context of the event.
- * @param string $action Action of the event.
- * @param int $user_id User responsible for the event.
+ * @param string $message sprintf-ready error message string.
+ * @param array $args sprintf (and extra) arguments to use.
+ * @param int|null $object_id Target object id (if any).
+ * @param string $context Context of the event.
+ * @param string $action Action of the event.
+ * @param int $user_id User responsible for the event.
*
* @return bool
*/
public function log( $message, $args, $object_id, $context, $action, $user_id = null ) {
$connector = $this->name;
+ /**
+ * Override the data logged. Returning false to this filter will stop the data from being logged.
+ * Examples of this filter in use can be found in some of the custom connectors.
+ *
+ * @see Connector_ACF::log_override()
+ *
+ * @return array|false An array of the data to be logged or false if it should not be logged.
+ */
$data = apply_filters(
'wp_stream_log_data',
compact( 'connector', 'message', 'args', 'object_id', 'context', 'action', 'user_id' )
diff --git a/classes/class-connectors.php b/classes/class-connectors.php
index 5f5cd35ca..df01b1cda 100644
--- a/classes/class-connectors.php
+++ b/classes/class-connectors.php
@@ -93,11 +93,15 @@ public function load_connectors() {
'gravityforms',
'jetpack',
'mercator',
+ 'two-factor',
'user-switching',
'woocommerce',
'wordpress-seo',
);
+ // Get excluded connectors.
+ $excluded_connectors = array();
+
$classes = array();
foreach ( $connectors as $connector ) {
// Load connector class file.
@@ -112,51 +116,37 @@ public function load_connectors() {
}
// Initialize connector.
- $class = new $class_name( $this->plugin->log );
+ $class = new $class_name();
+ $classes[ $class->name ] = $class;
+ }
+ /**
+ * Allows for adding additional connectors via classes that extend Connector.
+ *
+ * @param array $classes An array of Connector objects.
+ */
+ $connector_classes = apply_filters( 'wp_stream_connectors', $classes );
+
+ foreach ( $connector_classes as $connector ) {
// Check if the connector class extends WP_Stream\Connector.
- if ( ! is_subclass_of( $class, 'WP_Stream\Connector' ) ) {
+ if ( ! is_subclass_of( $connector, 'WP_Stream\Connector' ) ) {
continue;
}
// Check if the connector events are allowed to be registered in the WP Admin.
- if ( is_admin() && ! $class->register_admin ) {
+ if ( is_admin() && ! $connector->register_admin ) {
continue;
}
// Check if the connector events are allowed to be registered in the WP Frontend.
- if ( ! is_admin() && ! $class->register_frontend ) {
+ if ( ! is_admin() && ! $connector->register_frontend ) {
continue;
}
// Run any final validations the connector may have before used.
- if ( $class->is_dependency_satisfied() ) {
- $classes[ $class->name ] = $class;
- }
- }
-
- /**
- * Allows for adding additional connectors via classes that extend Connector.
- *
- * @param array $classes An array of Connector objects.
- */
- $this->connectors = apply_filters( 'wp_stream_connectors', $classes );
-
- if ( empty( $this->connectors ) ) {
- return;
- }
-
- foreach ( $this->connectors as $connector ) {
- if ( ! method_exists( $connector, 'get_label' ) ) {
+ if ( ! $connector->is_dependency_satisfied() ) {
continue;
}
- $this->term_labels['stream_connector'][ $connector->name ] = $connector->get_label();
- }
-
- // Get excluded connectors.
- $excluded_connectors = array();
-
- foreach ( $this->connectors as $connector ) {
// Register error for invalid any connector class.
if ( ! method_exists( $connector, 'get_label' ) ) {
@@ -180,21 +170,6 @@ public function load_connectors() {
continue;
}
- // Check if the connectors extends the Connector class, if not skip it.
- if ( ! is_subclass_of( $connector, '\WP_Stream\Connector' ) ) {
- /* translators: %s: connector class name, intended to provide help to developers (e.g. "Connector_BuddyPress") */
- $this->plugin->admin->notice( sprintf( __( '%1$s class wasn\'t loaded because it doesn\'t extends the %2$s class.', 'stream' ), $connector->name, 'Connector' ), true );
- continue;
- }
-
- // Store connector label.
- if ( ! in_array( $connector->name, $this->term_labels['stream_connector'], true ) ) {
- $this->term_labels['stream_connector'][ $connector->name ] = $connector->get_label();
- }
-
- $connector_name = $connector->name;
- $is_excluded = in_array( $connector_name, $excluded_connectors, true );
-
/**
* Allows excluded connectors to be overridden and registered.
*
@@ -202,17 +177,29 @@ public function load_connectors() {
* @param string $connector The current connector's slug.
* @param array $excluded_connectors An array of all excluded connector slugs.
*/
- $is_excluded_connector = apply_filters( 'wp_stream_check_connector_is_excluded', $is_excluded, $connector_name, $excluded_connectors );
+ $is_excluded_connector = apply_filters(
+ 'wp_stream_check_connector_is_excluded',
+ in_array( $connector->name, $excluded_connectors, true ),
+ $connector->name,
+ $excluded_connectors
+ );
if ( $is_excluded_connector ) {
continue;
}
+ // Add connector to the registry.
+ $this->connectors[ $connector->name ] = $connector;
+
+ // Register the connector.
$connector->register();
// Link context labels to their connector.
$this->contexts[ $connector->name ] = $connector->get_context_labels();
+ // Store connector label.
+ $this->term_labels['stream_connector'][ $connector->name ] = $connector->get_label();
+
// Add new terms to our label lookup array.
$this->term_labels['stream_action'] = array_merge(
$this->term_labels['stream_action'],
@@ -229,8 +216,8 @@ public function load_connectors() {
/**
* Fires after all connectors have been registered.
*
- * @param array $labels All register connectors labels array
- * @param Connectors $connectors The Connectors object
+ * @param array $labels All register connectors labels array
+ * @param Connectors $connector_classes The Connectors object
*/
do_action( 'wp_stream_after_connectors_registration', $labels, $this );
}
diff --git a/classes/class-export.php b/classes/class-export.php
index 2faa7c88d..d1bf2bc2a 100644
--- a/classes/class-export.php
+++ b/classes/class-export.php
@@ -111,18 +111,22 @@ public function build_record( $item, $columns ) {
switch ( $column_name ) {
case 'date':
$created = gmdate( 'Y-m-d H:i:s', strtotime( $record->created ) );
- $row_out[ $column_name ] = get_date_from_gmt( $created, 'Y/m/d h:i:s A' );
+ $row_out[ $column_name ] = get_date_from_gmt( $created, 'Y/m/d h:i:s A T' );
break;
case 'summary':
$row_out[ $column_name ] = $record->summary;
break;
- case 'user_id':
+ case 'user':
$user = new Author( (int) $record->user_id, (array) $record->user_meta );
$row_out[ $column_name ] = $user->get_display_name();
break;
+ case 'user_id':
+ $row_out[ $column_name ] = $record->user_id;
+ break;
+
case 'connector':
$row_out[ $column_name ] = $record->connector;
break;
@@ -131,6 +135,10 @@ public function build_record( $item, $columns ) {
$row_out[ $column_name ] = $record->context;
break;
+ case 'object_id':
+ $row_out[ $column_name ] = $record->object_id;
+ break;
+
case 'action':
$row_out[ $column_name ] = $record->{$column_name};
break;
@@ -154,7 +162,14 @@ public function build_record( $item, $columns ) {
* @return int
*/
public function disable_paginate() {
- return 10000;
+
+ /**
+ * Filter to change how many records are exported.
+ * Increasing this too much could cause your export to time out.
+ *
+ * @return int The number of records to export.
+ */
+ return apply_filters( 'wp_stream_export_limit', 10000 );
}
/**
@@ -167,9 +182,11 @@ public function expand_columns( $columns ) {
$new_columns = array(
'date' => $columns['date'],
'summary' => $columns['summary'],
- 'user_id' => $columns['user_id'],
+ 'user' => $columns['user_id'],
+ 'user_id' => __( 'User ID', 'stream' ),
'connector' => __( 'Connector', 'stream' ),
'context' => $columns['context'],
+ 'object_id' => __( 'Object ID', 'stream' ),
'action' => $columns['action'],
'ip' => $columns['ip'],
);
diff --git a/classes/class-list-table.php b/classes/class-list-table.php
index 2ae9ad6b6..d22133775 100644
--- a/classes/class-list-table.php
+++ b/classes/class-list-table.php
@@ -313,7 +313,7 @@ public function column_default( $item, $column_name ) {
);
$out = $this->column_link( $date_string, 'date', get_date_from_gmt( $created, 'Y/m/d' ) );
$out .= '
';
- $out .= get_date_from_gmt( $created, 'h:i:s A' );
+ $out .= get_date_from_gmt( $created, 'h:i:s A T' );
break;
case 'summary':
diff --git a/classes/class-plugin.php b/classes/class-plugin.php
index 1cd2c2783..561de386a 100755
--- a/classes/class-plugin.php
+++ b/classes/class-plugin.php
@@ -7,6 +7,8 @@
namespace WP_Stream;
+use RuntimeException;
+
/**
* Class Plugin
*/
@@ -27,6 +29,28 @@ class Plugin {
*/
const WP_CLI_COMMAND = 'stream';
+
+ /**
+ * Used to check if it's a single site, not multisite.
+ *
+ * @const string
+ */
+ const SINGLE_SITE = 'single';
+
+ /**
+ * Used to check if it's a multisite with the plugin network enabled.
+ *
+ * @const string
+ */
+ const MULTI_NETWORK = 'multisite-network';
+
+ /**
+ * Used to check if it's a multisite with the plugin not network enabled.
+ *
+ * @const string
+ */
+ const MULTI_NOT_NETWORK = 'multisite-not-network';
+
/**
* Holds and manages WordPress Admin configurations.
*
@@ -113,6 +137,9 @@ public function __construct() {
spl_autoload_register( array( $this, 'autoload' ) );
+ // Load Action Scheduler.
+ require_once $this->locations['dir'] . '/vendor/woocommerce/action-scheduler/action-scheduler.php';
+
// Load helper functions.
require_once $this->locations['inc_dir'] . 'functions.php';
@@ -256,7 +283,7 @@ private function locate_plugin() {
$dir_url = trailingslashit( plugins_url( '', __DIR__ ) );
$dir_path = plugin_dir_path( __DIR__ );
$dir_basename = basename( $dir_path );
- $plugin_basename = trailingslashit( $dir_basename ) . $dir_basename . '.php';
+ $plugin_basename = trailingslashit( $dir_basename ) . 'stream.php';
return compact( 'dir_url', 'dir_path', 'dir_basename', 'plugin_basename' );
}
@@ -333,4 +360,217 @@ public function is_mustuse() {
public function get_client_ip_address() {
return apply_filters( 'wp_stream_client_ip_address', $this->client_ip_address );
}
+
+ /**
+ * Get the site type.
+ *
+ * This function determines the type of site based on whether it is a single site or a multisite.
+ * If it is a multisite, it also checks if it is network activated or not.
+ *
+ * @return string The site type
+ */
+ public function get_site_type(): string {
+
+ // If it's a multisite, is it network activated or not?
+ if ( is_multisite() ) {
+ return $this->is_network_activated() ? self::MULTI_NETWORK : self::MULTI_NOT_NETWORK;
+ }
+
+ return self::SINGLE_SITE;
+ }
+
+ /**
+ * Should the number of records which need to be processed be considered "large"?
+ *
+ * @param int $record_number The number of rows in the {$wpdb->prefix}_stream table to be processed.
+ * @return bool Whether or not this should be considered large.
+ */
+ public function is_large_records_table( int $record_number ): bool {
+ /**
+ * Filters whether or not the number of records should be considered a large table.
+ *
+ * @since 4.1.0
+ *
+ * @param bool $is_large_table Whether or not the number of records should be considered large.
+ * @param int $record_number The number of records being checked.
+ */
+ return apply_filters( 'wp_stream_is_large_records_table', $record_number > 1000000, $record_number );
+ }
+
+ /**
+ * Checks if the plugin is running on a single site installation.
+ *
+ * @return bool True if the plugin is running on a single site installation, false otherwise.
+ */
+ public function is_single_site() {
+ return self::SINGLE_SITE === $this->get_site_type();
+ }
+
+ /**
+ * Check if the plugin is activated on a multisite installation but not network activated.
+ *
+ * @return bool True if the plugin is activated on a multisite installation but not network activated, false otherwise.
+ */
+ public function is_multisite_not_network_activated() {
+ return self::MULTI_NOT_NETWORK === $this->get_site_type();
+ }
+
+ /**
+ * Check if the plugin is activated on a multisite network.
+ *
+ * @return bool True if the plugin is network activated on a multisite, false otherwise.
+ */
+ public function is_multisite_network_activated() {
+ return self::MULTI_NETWORK === $this->get_site_type();
+ }
+
+ /**
+ * Enqueue a script along with a stylesheet if it exists.
+ *
+ * @param string $handle Script handle.
+ * @param array $additional_dependencies Additional dependencies.
+ * @param array $data Data to pass to the script.
+ *
+ * @throws RuntimeException If built JavaScript assets are not found.
+ * @return void
+ */
+ public function enqueue_asset( $handle, $additional_dependencies = array(), $data = array() ) {
+ // If is enqueued already, bail out.
+ if ( wp_script_is( $handle ) ) {
+ return;
+ }
+
+ $path = untrailingslashit( $this->locations['dir'] );
+ $url = untrailingslashit( $this->locations['url'] );
+
+ $script_asset_path = "$path/build/$handle.asset.php";
+
+ if ( ! file_exists( $script_asset_path ) ) {
+ throw new RuntimeException( 'Built JavaScript assets not found. Please run `npm run build`' );
+ }
+
+ $script_asset = require $script_asset_path; // phpcs:disable WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
+
+ wp_enqueue_script(
+ "wp-stream-$handle",
+ "$url/build/$handle.js",
+ array_merge(
+ $script_asset['dependencies'],
+ (array) $additional_dependencies
+ ),
+ $script_asset['version'],
+ true
+ );
+
+ if ( file_exists( "$path/build/$handle.css" ) ) {
+ wp_enqueue_style(
+ "wp-stream-$handle",
+ "$url/build/$handle.css",
+ array(),
+ $script_asset['version']
+ );
+ }
+
+ if ( ! empty( $data ) ) {
+ wp_add_inline_script(
+ "wp-stream-$handle",
+ sprintf( 'window["%s"] = %s;', esc_attr( "wp-stream-$handle" ), wp_json_encode( $data ) ),
+ 'before'
+ );
+ }
+ }
+
+ /**
+ * Enqueue select2 script and locale file if exists.
+ *
+ * @return string Script handle.
+ */
+ public function with_select2() {
+ $handle = 'wp-stream-select2';
+
+ // If is enqueued already, bail out.
+ if ( wp_script_is( $handle ) ) {
+ return $handle;
+ }
+
+ $path = untrailingslashit( $this->locations['dir'] );
+ $url = untrailingslashit( $this->locations['url'] );
+
+ wp_enqueue_script(
+ $handle,
+ "$url/build/select2/js/select2.full.min.js",
+ array( 'jquery' ),
+ filemtime( "$path/build/select2/js/select2.full.min.js" ),
+ true
+ );
+ wp_enqueue_style(
+ $handle,
+ "$url/build/select2/css/select2.min.css",
+ array(),
+ filemtime( "$path/build/select2/css/select2.min.css" )
+ );
+
+ $locale = get_locale();
+ $lang = substr( $locale, 0, 2 );
+ $search_files = array( $locale, $lang, 'en' );
+
+ foreach ( $search_files as $search_file ) {
+ if ( file_exists( "$path/build/select2/js/i18n/$search_file.js" ) ) {
+ wp_enqueue_script(
+ sanitize_title( "$handle-$search_file" ),
+ "$url/build/select2/js/i18n/$search_file.js",
+ array( $handle ),
+ filemtime( "$path/build/select2/js/i18n/$search_file.js" ),
+ true
+ );
+ break;
+ }
+ }
+
+ return $handle;
+ }
+
+ /**
+ * Enqueue jquery.timeago script and locale file if exists.
+ *
+ * @return string Script handle.
+ */
+ public function with_jquery_timeago() {
+ $handle = 'wp-stream-jquery-timeago';
+
+ // If is enqueued already, bail out.
+ if ( wp_script_is( $handle ) ) {
+ return $handle;
+ }
+
+ $path = untrailingslashit( $this->locations['dir'] );
+ $url = untrailingslashit( $this->locations['url'] );
+
+ wp_enqueue_script(
+ $handle,
+ "$url/build/timeago/js/jquery.timeago.js",
+ array( 'jquery' ),
+ filemtime( "$path/build/timeago/js/jquery.timeago.js" ),
+ true
+ );
+
+ $locale = get_locale();
+ $lang = substr( $locale, 0, 2 );
+ $search_files = array( $locale, $lang, 'en' );
+
+ foreach ( $search_files as $search_file ) {
+ if ( file_exists( "$path/build/timeago/js/locales/jquery.timeago.$search_file.js" ) ) {
+ wp_enqueue_script(
+ sanitize_title( "$handle-$search_file" ),
+ "$url/build/timeago/js/locales/jquery.timeago.$search_file.js",
+ array( $handle ),
+ filemtime( "$path/build/timeago/js/locales/jquery.timeago.$search_file.js" ),
+ true
+ );
+ break;
+ }
+ }
+
+ return $handle;
+ }
}
diff --git a/classes/class-settings.php b/classes/class-settings.php
index a6ccb460e..28eb9f601 100644
--- a/classes/class-settings.php
+++ b/classes/class-settings.php
@@ -358,7 +358,7 @@ public function get_fields() {
array(
'name' => 'delete_all_records',
'title' => esc_html__( 'Reset Stream Database', 'stream' ),
- 'type' => 'link',
+ 'type' => Admin::is_running_async_deletion() ? 'none' : 'link',
'href' => add_query_arg(
array(
'action' => 'wp_stream_reset',
@@ -367,7 +367,7 @@ public function get_fields() {
admin_url( 'admin-ajax.php' )
),
'class' => 'warning',
- 'desc' => esc_html__( 'Warning: This will delete all activity records from the database.', 'stream' ),
+ 'desc' => esc_html( $this->get_deletion_warning() ),
'default' => 0,
'sticky' => 'bottom',
),
@@ -471,6 +471,35 @@ public function get_defaults() {
return (array) $defaults;
}
+ /**
+ * Retrieves the deletion warning message based on the site type
+ * and whether or not there is currently a process running to delete the tables.
+ *
+ * @return string The deletion warning message.
+ */
+ public function get_deletion_warning(): string {
+
+ // Check if there is an action scheduler event running already deleting things.
+ if ( Admin::is_running_async_deletion() ) {
+
+ $warning = __( 'Currently deleting records. Please be patient, this can take a while.', 'stream' );
+
+ } elseif ( $this->plugin->is_multisite_network_activated() ) {
+
+ $warning = __( 'Warning: This will delete all activity records from the database for all sites.', 'stream' );
+
+ } elseif ( $this->plugin->is_multisite_not_network_activated() ) {
+
+ $warning = __( 'Warning: This will delete all activity records from the database for this site.', 'stream' );
+
+ } else {
+
+ $warning = __( 'Warning: This will delete all activity records from the database.', 'stream' );
+ }
+
+ return $warning;
+ }
+
/**
* Registers settings fields and sections
*
diff --git a/composer.json b/composer.json
index e02c9e5ac..fbbfa7b64 100644
--- a/composer.json
+++ b/composer.json
@@ -12,8 +12,9 @@
],
"require": {
"php": ">=7.0",
+ "ext-json": "*",
"composer/installers": "~1.0",
- "ext-json": "*"
+ "woocommerce/action-scheduler": "^3.8"
},
"require-dev": {
"automattic/vipwpcs": "^3.0",
@@ -29,10 +30,14 @@
"wp-coding-standards/wpcs": "^3.1",
"wp-phpunit/wp-phpunit": "^6.6",
"wpackagist-plugin/advanced-custom-fields": "6.3.4",
+ "wpackagist-plugin/buddypress": "14.0.0",
+ "wpackagist-plugin/classic-editor": "1.6.4",
"wpackagist-plugin/easy-digital-downloads": "3.3.1",
"wpackagist-plugin/jetpack": "13.6",
+ "wpackagist-plugin/two-factor": "0.9.1",
"wpackagist-plugin/user-switching": "1.8.0",
- "wpackagist-plugin/wordpress-seo": "23.1",
+ "wpackagist-plugin/wordpress-seo": "23.6",
+ "wpackagist-plugin/wp-crontrol": "1.17.0",
"wpackagist-theme/twentytwentythree": "^1.0",
"xwp/wait-for": "^0.0.1",
"yoast/phpunit-polyfills": "^1.1"
@@ -53,6 +58,7 @@
"wordpress-install-dir": "local/public/wp",
"installer-paths": {
"local/public/wp-content/themes/{$name}": ["type:wordpress-theme"],
+ "vendor/{$vendor}/{$name}/": ["woocommerce/action-scheduler"],
"local/public/wp-content/plugins/{$name}": ["type:wordpress-plugin"],
"local/public/wp-content/mu-plugins/{$name}": ["type:wordpress-muplugin"]
}
diff --git a/composer.lock b/composer.lock
index 3e9d1b8fe..027808fad 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "4fd521717953b78b94e36ed66a25a916",
+ "content-hash": "9a10988b81293e7489563a563653d1e7",
"packages": [
{
"name": "composer/installers",
@@ -156,6 +156,49 @@
}
],
"time": "2021-09-13T08:19:44+00:00"
+ },
+ {
+ "name": "woocommerce/action-scheduler",
+ "version": "3.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/woocommerce/action-scheduler.git",
+ "reference": "e331b534d7de10402d7545a0de50177b874c0779"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/e331b534d7de10402d7545a0de50177b874c0779",
+ "reference": "e331b534d7de10402d7545a0de50177b874c0779",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.5",
+ "woocommerce/woocommerce-sniffs": "0.1.0",
+ "wp-cli/wp-cli": "~2.5.0",
+ "yoast/phpunit-polyfills": "^2.0"
+ },
+ "type": "wordpress-plugin",
+ "extra": {
+ "scripts-description": {
+ "test": "Run unit tests",
+ "phpcs": "Analyze code against the WordPress coding standards with PHP_CodeSniffer",
+ "phpcbf": "Fix coding standards warnings/errors automatically with PHP Code Beautifier"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-3.0-or-later"
+ ],
+ "description": "Action Scheduler for WordPress and WooCommerce",
+ "homepage": "https://actionscheduler.org/",
+ "support": {
+ "issues": "https://github.com/woocommerce/action-scheduler/issues",
+ "source": "https://github.com/woocommerce/action-scheduler/tree/3.8.1"
+ },
+ "time": "2024-06-20T19:53:06+00:00"
}
],
"packages-dev": [
@@ -5589,20 +5632,20 @@
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.30.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "77fa7995ac1b21ab60769b7323d600a991a90433"
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433",
- "reference": "77fa7995ac1b21ab60769b7323d600a991a90433",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
@@ -5649,7 +5692,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
},
"funding": [
{
@@ -5665,7 +5708,7 @@
"type": "tidelift"
}
],
- "time": "2024-05-31T15:07:36+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php81",
@@ -5745,16 +5788,16 @@
},
{
"name": "symfony/process",
- "version": "v5.4.40",
+ "version": "v5.4.46",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "deedcb3bb4669cae2148bc920eafd2b16dc7c046"
+ "reference": "01906871cb9b5e3cf872863b91aba4ec9767daf4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/deedcb3bb4669cae2148bc920eafd2b16dc7c046",
- "reference": "deedcb3bb4669cae2148bc920eafd2b16dc7c046",
+ "url": "https://api.github.com/repos/symfony/process/zipball/01906871cb9b5e3cf872863b91aba4ec9767daf4",
+ "reference": "01906871cb9b5e3cf872863b91aba4ec9767daf4",
"shasum": ""
},
"require": {
@@ -5787,7 +5830,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v5.4.40"
+ "source": "https://github.com/symfony/process/tree/v5.4.46"
},
"funding": [
{
@@ -5803,7 +5846,7 @@
"type": "tidelift"
}
],
- "time": "2024-05-31T14:33:22+00:00"
+ "time": "2024-11-06T09:18:28+00:00"
},
{
"name": "symfony/service-contracts",
@@ -8425,6 +8468,42 @@
"type": "wordpress-plugin",
"homepage": "https://wordpress.org/plugins/advanced-custom-fields/"
},
+ {
+ "name": "wpackagist-plugin/buddypress",
+ "version": "14.0.0",
+ "source": {
+ "type": "svn",
+ "url": "https://plugins.svn.wordpress.org/buddypress/",
+ "reference": "tags/14.0.0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://downloads.wordpress.org/plugin/buddypress.14.0.0.zip"
+ },
+ "require": {
+ "composer/installers": "^1.0 || ^2.0"
+ },
+ "type": "wordpress-plugin",
+ "homepage": "https://wordpress.org/plugins/buddypress/"
+ },
+ {
+ "name": "wpackagist-plugin/classic-editor",
+ "version": "1.6.4",
+ "source": {
+ "type": "svn",
+ "url": "https://plugins.svn.wordpress.org/classic-editor/",
+ "reference": "tags/1.6.4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://downloads.wordpress.org/plugin/classic-editor.1.6.4.zip"
+ },
+ "require": {
+ "composer/installers": "^1.0 || ^2.0"
+ },
+ "type": "wordpress-plugin",
+ "homepage": "https://wordpress.org/plugins/classic-editor/"
+ },
{
"name": "wpackagist-plugin/easy-digital-downloads",
"version": "3.3.1",
@@ -8461,6 +8540,24 @@
"type": "wordpress-plugin",
"homepage": "https://wordpress.org/plugins/jetpack/"
},
+ {
+ "name": "wpackagist-plugin/two-factor",
+ "version": "0.9.1",
+ "source": {
+ "type": "svn",
+ "url": "https://plugins.svn.wordpress.org/two-factor/",
+ "reference": "tags/0.9.1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://downloads.wordpress.org/plugin/two-factor.0.9.1.zip"
+ },
+ "require": {
+ "composer/installers": "^1.0 || ^2.0"
+ },
+ "type": "wordpress-plugin",
+ "homepage": "https://wordpress.org/plugins/two-factor/"
+ },
{
"name": "wpackagist-plugin/user-switching",
"version": "1.8.0",
@@ -8481,15 +8578,15 @@
},
{
"name": "wpackagist-plugin/wordpress-seo",
- "version": "23.1",
+ "version": "23.6",
"source": {
"type": "svn",
"url": "https://plugins.svn.wordpress.org/wordpress-seo/",
- "reference": "tags/23.1"
+ "reference": "tags/23.6"
},
"dist": {
"type": "zip",
- "url": "https://downloads.wordpress.org/plugin/wordpress-seo.23.1.zip"
+ "url": "https://downloads.wordpress.org/plugin/wordpress-seo.23.6.zip"
},
"require": {
"composer/installers": "^1.0 || ^2.0"
@@ -8497,6 +8594,24 @@
"type": "wordpress-plugin",
"homepage": "https://wordpress.org/plugins/wordpress-seo/"
},
+ {
+ "name": "wpackagist-plugin/wp-crontrol",
+ "version": "1.17.0",
+ "source": {
+ "type": "svn",
+ "url": "https://plugins.svn.wordpress.org/wp-crontrol/",
+ "reference": "tags/1.17.0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://downloads.wordpress.org/plugin/wp-crontrol.1.17.0.zip"
+ },
+ "require": {
+ "composer/installers": "^1.0 || ^2.0"
+ },
+ "type": "wordpress-plugin",
+ "homepage": "https://wordpress.org/plugins/wp-crontrol/"
+ },
{
"name": "wpackagist-theme/twentytwentythree",
"version": "1.5",
@@ -8627,5 +8742,5 @@
"platform-overrides": {
"php": "7.4"
},
- "plugin-api-version": "2.3.0"
+ "plugin-api-version": "2.6.0"
}
diff --git a/connectors.md b/connectors.md
index 9b128c884..989d38642 100644
--- a/connectors.md
+++ b/connectors.md
@@ -832,6 +832,31 @@
+## Connector: WP_Stream\Connector_Two_Factor
+
+### Actions
+
+ - update_user_meta
+ - updated_user_meta
+ - added_user_meta
+ - two_factor_user_authenticated
+ - wp_login_failed
+
+### Class register()
+
+
+This is the register method for the Connector. Occasionally there are additional actions in here.
+
+```php
+ public function register() {
+ parent::register();
+
+ add_filter( 'wp_stream_log_data', array( $this, 'log_override' ) );
+ }
+```
+
+
+
## Connector: WP_Stream\Connector_User_Switching
### Actions
diff --git a/connectors/class-connector-buddypress.php b/connectors/class-connector-buddypress.php
index 2a4c160a8..f21c98462 100644
--- a/connectors/class-connector-buddypress.php
+++ b/connectors/class-connector-buddypress.php
@@ -173,6 +173,13 @@ public function get_context_labels() {
* @return array Action links
*/
public function action_links( $links, $record ) {
+
+ // Check we have access to BuddyPress on this blog and that the user will have access to the links.
+ if ( ! $this->is_dependency_satisfied() || ! bp_current_user_can_moderate() ) {
+ return array();
+ }
+
+ // In the links, we also need to check the functions themselves as they're dependent on the BuddyPress module being enabled.
if ( in_array( $record->context, array( 'components' ), true ) ) {
$option_key = $record->get_meta( 'option_key', true );
@@ -181,7 +188,7 @@ public function action_links( $links, $record ) {
array(
'page' => 'bp-components',
),
- admin_url( 'admin.php' )
+ get_admin_url( $record->blog_id, 'admin.php' )
);
} elseif ( 'bp-pages' === $option_key ) {
$page_id = $record->get_meta( 'page_id', true );
@@ -190,7 +197,7 @@ public function action_links( $links, $record ) {
array(
'page' => 'bp-page-settings',
),
- admin_url( 'admin.php' )
+ get_admin_url( $record->blog_id, 'admin.php' )
);
if ( $page_id ) {
@@ -203,7 +210,7 @@ public function action_links( $links, $record ) {
array(
'page' => $record->get_meta( 'page', true ),
),
- admin_url( 'admin.php' )
+ get_admin_url( $record->blog_id, 'admin.php' )
);
} elseif ( in_array( $record->context, array( 'groups' ), true ) && function_exists( 'groups_get_group' ) ) {
$group_id = $record->get_meta( 'id', true );
@@ -218,7 +225,7 @@ public function action_links( $links, $record ) {
$base_url = \bp_get_admin_url( 'admin.php?page=bp-groups&gid=' . $group_id );
$delete_url = wp_nonce_url( $base_url . '&action=delete', 'bp-groups-delete' );
$edit_url = $base_url . '&action=edit';
- $visit_url = \bp_get_group_permalink( $group );
+ $visit_url = function_exists( 'bp_get_group_url' ) ? \bp_get_group_url( $group ) : \bp_get_group_permalink( $group );
$links[ esc_html__( 'Edit group', 'stream' ) ] = $edit_url;
$links[ esc_html__( 'View group', 'stream' ) ] = $visit_url;
diff --git a/connectors/class-connector-editor.php b/connectors/class-connector-editor.php
index 8a1fd12e2..a85ca7437 100644
--- a/connectors/class-connector-editor.php
+++ b/connectors/class-connector-editor.php
@@ -46,9 +46,8 @@ class Connector_Editor extends Connector {
*/
public function register() {
parent::register();
- add_action( 'load-theme-editor.php', array( $this, 'get_edition_data' ) );
- add_action( 'load-plugin-editor.php', array( $this, 'get_edition_data' ) );
- add_filter( 'wp_redirect', array( $this, 'log_changes' ) );
+
+ add_action( 'wp_ajax_edit-theme-plugin-file', array( $this, 'get_edition_data' ), 1 );
}
/**
@@ -187,33 +186,50 @@ public function action_links( $links, $record ) {
}
/**
- * Retrieves data submitted on the screen, and prepares it for the appropriate context type
+ * Retrieves data submitted on the screen, prepares it for the appropriate context type and logs the changes
*
- * @action load-theme-editor.php
- * @action load-plugin-editor.php
+ * @action wp_ajax_edit-theme-plugin-file
*/
public function get_edition_data() {
- if (
- (
- isset( $_SERVER['REQUEST_METHOD'] )
- &&
- 'POST' !== sanitize_text_field( $_SERVER['REQUEST_METHOD'] )
- )
- ||
- 'update' !== wp_stream_filter_input( INPUT_POST, 'action' )
- ) {
+ if ( ! current_user_can( 'edit_theme_options' ) ) {
+ return;
+ }
+
+ $action = wp_stream_filter_input( INPUT_POST, 'action' );
+ $request_method = wp_stream_filter_input( INPUT_SERVER, 'REQUEST_METHOD' );
+ $theme_slug = wp_stream_filter_input( INPUT_POST, 'theme' );
+ $plugin_slug = wp_stream_filter_input( INPUT_POST, 'plugin' );
+ $relative_file = wp_stream_filter_input( INPUT_POST, 'file' );
+
+ if ( ! empty( $theme_slug ) && ! check_admin_referer( 'edit-theme_' . $theme_slug . '_' . $relative_file, 'nonce' ) ) {
+ return;
+ }
+
+ if ( ! empty( $plugin_slug ) && ! check_admin_referer( 'edit-plugin_' . $relative_file, 'nonce' ) ) {
return;
}
- $theme_slug = wp_stream_filter_input( INPUT_POST, 'theme' );
+ if ( ( isset( $request_method ) && 'POST' !== $request_method ) || ( 'edit-theme-plugin-file' !== $action ) ) {
+ return;
+ }
+
+ $location = null;
+
if ( $theme_slug ) {
+ $location = 'theme-editor.php';
$this->edited_file = $this->get_theme_data( $theme_slug );
}
- $plugin_slug = wp_stream_filter_input( INPUT_POST, 'plugin' );
if ( $plugin_slug ) {
+ $location = 'plugin-editor.php';
$this->edited_file = $this->get_plugin_data( $plugin_slug );
}
+
+ if ( ! $location ) {
+ return;
+ }
+
+ $this->log_changes( $location );
}
/**
@@ -298,14 +314,11 @@ public function get_plugin_data( $slug ) {
/**
* Logs changes
*
- * @filter wp_redirect
- *
* @param string $location Location.
*/
- public function log_changes( $location ) {
+ public function log_changes( string $location ): string {
if ( ! empty( $this->edited_file ) ) {
- // TODO: phpcs fix.
- if ( md5_file( $this->edited_file['file_path'] ) !== $this->edited_file['file_md5'] ) {
+ if ( md5_file( $this->edited_file['file_path'] ) === $this->edited_file['file_md5'] ) {
$context = $this->get_context( $location );
switch ( $context ) {
diff --git a/connectors/class-connector-posts.php b/connectors/class-connector-posts.php
index 01d322342..057b70f94 100644
--- a/connectors/class-connector-posts.php
+++ b/connectors/class-connector-posts.php
@@ -159,10 +159,16 @@ public function registered_post_type( $post_type, $args ) {
* @param \WP_Post $post Post object.
*/
public function callback_transition_post_status( $new_status, $old_status, $post ) {
+
if ( in_array( $post->post_type, $this->get_excluded_post_types(), true ) ) {
return;
}
+ // We don't want the meta box update request, just the post update.
+ if ( ! empty( wp_stream_filter_input( INPUT_GET, 'meta-box-loader' ) ) ) {
+ return;
+ }
+
$start_statuses = array( 'auto-draft', 'inherit', 'new' );
if ( in_array( $new_status, $start_statuses, true ) ) {
return;
diff --git a/connectors/class-connector-two-factor.php b/connectors/class-connector-two-factor.php
new file mode 100644
index 000000000..2cf1155b7
--- /dev/null
+++ b/connectors/class-connector-two-factor.php
@@ -0,0 +1,351 @@
+ esc_html_x( 'Enabled', 'two-factor', 'stream' ),
+ 'disabled' => esc_html_x( 'Disabled', 'two-factor', 'stream' ),
+ 'recovered' => esc_html_x( 'Recovered', 'two-factor', 'stream' ),
+ 'updated' => esc_html_x( 'Updated', 'two-factor', 'stream' ),
+ 'removed' => esc_html_x( 'Removed', 'two-factor', 'stream' ),
+ 'added' => esc_html_x( 'Added', 'two-factor', 'stream' ),
+ 'authenticated' => esc_html_x( 'Authenticated', 'two-factor', 'stream' ),
+ );
+ }
+
+ /**
+ * Return translated context labels
+ *
+ * @return array Context label translations
+ */
+ public function get_context_labels() {
+ return array(
+ 'user-settings' => esc_html_x( 'User Settings', 'two-factor', 'stream' ),
+ 'auth' => esc_html_x( 'Authenticated', 'two-factor', 'stream' ),
+ );
+ }
+
+ /**
+ * Register the connector
+ */
+ public function register() {
+ parent::register();
+
+ add_filter( 'wp_stream_log_data', array( $this, 'log_override' ) );
+ }
+
+ /**
+ * Modify or prevent logging of some actions.
+ *
+ * @param array $data Record data.
+ *
+ * @return array|bool
+ */
+ public function log_override( $data ) {
+ if ( ! is_array( $data ) ) {
+ return $data;
+ }
+
+ // If a login was made but no cookies are being sent (ie. hit the 2FA interstitial), don't log it.
+ if (
+ 'users' === $data['connector'] &&
+ 'sessions' === $data['context'] &&
+ 'login' === $data['action'] &&
+ \Two_Factor_Core::is_user_using_two_factor( $data['user_id'] ) &&
+ has_filter( 'send_auth_cookies', '__return_false' )
+ ) {
+ $data = false;
+ }
+
+ return $data;
+ }
+
+ /**
+ * Callback to watch for user_meta changes BEFORE it's made.
+ *
+ * @param int $meta_id Meta ID.
+ * @param int $user_id User ID.
+ * @param string $meta_key Meta key.
+ * @param mixed $new_meta_value The NEW meta value.
+ */
+ public function callback_update_user_meta( $meta_id, $user_id, $meta_key, $new_meta_value ) {
+ unset( $meta_id );
+ unset( $new_meta_value );
+
+ switch ( $meta_key ) {
+ case '_two_factor_backup_codes':
+ case '_two_factor_totp_key':
+ case '_two_factor_enabled_providers':
+ $this->user_meta[ $user_id ][ $meta_key ] = get_user_meta( $user_id, $meta_key, true );
+ break;
+ }
+ }
+
+ /**
+ * Callback to watch for user_meta changes AFTER it's made.
+ *
+ * @param int $meta_id Meta ID.
+ * @param int $user_id User ID.
+ * @param string $meta_key Meta key.
+ * @param mixed $new_meta_value The NEW meta value.
+ */
+ public function callback_updated_user_meta( $meta_id, $user_id, $meta_key, $new_meta_value ) {
+ unset( $meta_id );
+
+ $old_meta_value = $this->user_meta[ $user_id ][ $meta_key ] ?? null;
+ unset( $this->user_meta[ $user_id ][ $meta_key ] );
+
+ switch ( $meta_key ) {
+ case '_two_factor_backup_codes':
+ $this->log(
+ __( 'Updated backup codes', 'stream' ),
+ array(),
+ $user_id,
+ 'user-settings',
+ 'updated'
+ );
+ break;
+ case '_two_factor_totp_key':
+ $this->log(
+ __( 'Set TOTP secret key', 'stream' ),
+ array(),
+ $user_id,
+ 'user-settings',
+ 'updated'
+ );
+ break;
+ case '_two_factor_enabled_providers':
+ $old_providers = $old_meta_value ?? array();
+ $new_providers = $new_meta_value ?? array();
+
+ $enabled_providers = array_diff( $new_providers, $old_providers );
+ $disabled_providers = array_diff( $old_providers, $new_providers );
+
+ foreach ( $enabled_providers as $provider ) {
+
+ /* Translators: %s is the Two Factor provider. */
+ $message = __(
+ 'Enabled provider: %s',
+ 'stream'
+ );
+
+ $this->log(
+ $message,
+ array(
+ 'provider' => $provider,
+ ),
+ $user_id,
+ 'user-settings',
+ 'enabled'
+ );
+ }
+
+ foreach ( $disabled_providers as $provider ) {
+
+ /* Translators: %s is the Two Factor provider. */
+ $message = __(
+ 'Disabled provider: %s',
+ 'stream'
+ );
+
+ $this->log(
+ $message,
+ array(
+ 'provider' => $provider,
+ ),
+ $user_id,
+ 'user-settings',
+ 'disabled'
+ );
+ }
+ break;
+ }
+ }
+
+ /**
+ * Callback to watch for user_meta changes AFTER it's added.
+ *
+ * @param int $meta_id Meta ID.
+ * @param int $user_id User ID.
+ * @param string $meta_key Meta key.
+ * @param mixed $meta_value Meta value.
+ */
+ public function callback_added_user_meta( $meta_id, $user_id, $meta_key, $meta_value ) {
+ unset( $meta_id );
+
+ switch ( $meta_key ) {
+ case '_two_factor_backup_codes':
+ $this->log(
+ __( 'Added backup codes', 'stream' ),
+ array(),
+ $user_id,
+ 'user-settings',
+ 'added'
+ );
+ break;
+ case '_two_factor_totp_key':
+ $this->log(
+ __( 'Added TOTP secret key', 'stream' ),
+ array(),
+ $user_id,
+ 'user-settings',
+ 'added'
+ );
+ break;
+ case '_two_factor_enabled_providers':
+ foreach ( $meta_value as $provider ) {
+
+ /* Translators: %s is the Two Factor provider. */
+ $message = __(
+ 'Enabled provider: %s',
+ 'stream'
+ );
+
+ $this->log(
+ $message,
+ array(
+ 'provider' => $provider,
+ ),
+ $user_id,
+ 'user-settings',
+ 'enabled'
+ );
+ }
+ break;
+ }
+ }
+
+ /**
+ * Callback to watch for 2FA authenticated actions.
+ *
+ * @param \WP_User $user Authenticated user.
+ * @param object $provider The 2FA Provider used.
+ */
+ public function callback_two_factor_user_authenticated( $user, $provider ) {
+
+ /* Translators: %s is the Two Factor provider. */
+ $message = __(
+ 'Authenticated via %s',
+ 'stream'
+ );
+
+ $this->log(
+ $message,
+ array(
+ 'provider' => $provider->get_key(),
+ ),
+ $user->ID,
+ 'auth',
+ 'authenticated',
+ $user->ID
+ );
+ }
+
+ /**
+ * Callback to watch for failed logins with Two Factor errors.
+ *
+ * @param string $user_login User login.
+ * @param \WP_Error $error WP_Error object.
+ */
+ public function callback_wp_login_failed( $user_login, $error ) {
+ if ( ! str_starts_with( $error->get_error_code(), 'two_factor_' ) ) {
+ return;
+ }
+
+ $user = get_user_by( 'login', $user_login );
+ if ( ! $user && is_email( $user_login ) ) {
+ $user = get_user_by( 'email', $user_login );
+ }
+
+ /* Translators: %1$s is the user display name, %2$s is the error code, %3$s is the error message. */
+ $message = __(
+ '%1$s Failed 2FA: %2$s %3$s',
+ 'stream'
+ );
+
+ $this->log(
+ $message,
+ array(
+ 'display_name' => $this->escape_percentages( $user->display_name ),
+ 'code' => $error->get_error_code(),
+ 'error' => $error->get_error_message(),
+ ),
+ $user->ID,
+ 'auth',
+ 'failed',
+ $user->ID
+ );
+ }
+}
diff --git a/connectors/class-connector-woocommerce.php b/connectors/class-connector-woocommerce.php
index 3a72128d2..8b86510de 100644
--- a/connectors/class-connector-woocommerce.php
+++ b/connectors/class-connector-woocommerce.php
@@ -396,8 +396,8 @@ public function callback_transition_post_status( $new_status, $old_status, $post
$action = 'updated';
}
- $order = new \WC_Order( $post->ID );
- $order_title = esc_html__( 'Order number', 'stream' ) . ' ' . esc_html( $order->get_order_number() );
+ $order_id = \WC_Order_Factory::get_order_id( $post->ID );
+ $order_title = esc_html__( 'Order number', 'stream' ) . ' ' . esc_html( $order_id );
$order_type_name = esc_html__( 'order', 'stream' );
$this->log(
@@ -437,8 +437,8 @@ public function callback_deleted_post( $post_id ) {
return;
}
- $order = new \WC_Order( $post->ID );
- $order_title = esc_html__( 'Order number', 'stream' ) . ' ' . esc_html( $order->get_order_number() );
+ $order_id = \WC_Order_Factory::get_order_id( $post->ID );
+ $order_title = esc_html__( 'Order number', 'stream' ) . ' ' . esc_html( $order_id );
$order_type_name = esc_html__( 'order', 'stream' );
$this->log(
@@ -495,8 +495,8 @@ public function callback_woocommerce_order_status_changed( $order_id, $old_order
'stream'
);
- $order = new \WC_Order( $order_id );
- $order_title = esc_html__( 'Order number', 'stream' ) . ' ' . esc_html( $order->get_order_number() );
+ $order_id = \WC_Order_Factory::get_order( $order_id );
+ $order_title = esc_html__( 'Order number', 'stream' ) . ' ' . esc_html( $order_id );
$order_type_name = esc_html__( 'order', 'stream' );
$this->log(
@@ -619,14 +619,16 @@ public function callback_woocommerce_tax_rate_added( $tax_rate_id, $tax_rate ) {
* @param array $tax_rate Tax Rate data.
*/
public function callback_woocommerce_tax_rate_updated( $tax_rate_id, $tax_rate ) {
+ $tax_rate_label = \WC_Tax::get_rate_label( $tax_rate_id );
+
$this->log(
- /* translators: %4$s: a tax rate name (e.g. "GST") */
+ /* translators: %s: a tax rate name (e.g. "GST") */
_x(
- '"%4$s" tax rate updated',
+ '"%s" tax rate updated',
'Tax rate name',
'stream'
),
- $tax_rate,
+ array( $tax_rate_label ),
$tax_rate_id,
'tax',
'updated'
diff --git a/connectors/class-connector-wordpress-seo.php b/connectors/class-connector-wordpress-seo.php
index 7c52a0864..a8a27ac6a 100644
--- a/connectors/class-connector-wordpress-seo.php
+++ b/connectors/class-connector-wordpress-seo.php
@@ -223,15 +223,7 @@ public function register() {
*/
public function admin_enqueue_scripts( $hook ) {
if ( 0 === strpos( $hook, 'seo_page_' ) ) {
- $stream = wp_stream_get_instance();
- $src = $stream->locations['url'] . '/ui/js/wpseo-admin.js';
- wp_enqueue_script(
- 'stream-connector-wpseo',
- $src,
- array( 'jquery' ),
- $stream->get_version(),
- false
- );
+ wp_stream_get_instance()->enqueue_asset( 'wpseo-admin' );
}
}
@@ -393,7 +385,9 @@ public function callback_deleted_post_meta( $meta_id, $object_id, $meta_key, $me
private function meta( $object_id, $meta_key, $meta_value ) {
$prefix = \WPSEO_Meta::$meta_prefix;
- \WPSEO_Metabox::translate_meta_boxes();
+ if ( defined( 'WPSEO_VERSION' ) && version_compare( WPSEO_VERSION, '23.5', '<' ) ) {
+ \WPSEO_Metabox::translate_meta_boxes();
+ }
if ( 0 !== strpos( $meta_key, $prefix ) ) {
return;
@@ -413,15 +407,18 @@ private function meta( $object_id, $meta_key, $meta_value ) {
}
$post = get_post( $object_id );
- $post_type_label = get_post_type_labels( get_post_type_object( $post->post_type ) )->singular_name;
+ $post_type_obj = get_post_type_object( $post->post_type );
+ $post_type_label = is_object( $post_type_obj ) && isset( $post_type_obj->labels->singular_name )
+ ? $post_type_obj->labels->singular_name
+ : $post->post_type;
$this->log(
sprintf(
/* translators: %1$s: a meta field title, %2$s: a post title, %3$s: a post type (e.g. "Description", "Hello World", "Post") */
__( 'Updated "%1$s" of "%2$s" %3$s', 'stream' ),
- $this->escape_percentages( $field['title'] ),
- $this->escape_percentages( $post->post_title ),
- $this->escape_percentages( $post_type_label )
+ $this->escape_percentages( (string) $field['title'] ),
+ $this->escape_percentages( (string) $post->post_title ),
+ $this->escape_percentages( (string) $post_type_label )
),
array(
'meta_key' => $meta_key,
diff --git a/contributing.md b/contributing.md
index 6a7f72ae2..4bc1a2705 100644
--- a/contributing.md
+++ b/contributing.md
@@ -21,6 +21,7 @@ We suggest using the [Homebrew package manager](https://brew.sh) on macOS to ins
1. See the [Git Flow](#git-flow) section below for how to fork the repository.
2. Run `npm install` and `composer install` to setup all project dependencies.
+3. Run `npm build` to build the assets.
3. Run `npm start` to start the development environment.
4. Run `npm run install-wordpress` to set up the WordPress multisite network.
5. Visit [stream.wpenv.net](http://stream.wpenv.net) and login using `admin` / `password`.
@@ -41,6 +42,10 @@ In order to set up Step Debugging in PhpStorm, follow the [official guide](https
We use a [MailHog](https://github.com/mailhog/MailHog) container to capture all emails sent by the WordPress container, available at [stream.wpenv.net:8025](https://stream.wpenv.net:8025).
+### phpMyAdmin
+
+[phpMyAdmin ](https://www.phpmyadmin.net/) is available at [stream.wpenv.net:8080](http://stream.wpenv.net:8080/).
+
### Scripts and Commands
We use npm as the canonical task runner for the project. The following commands are available:
@@ -49,13 +54,19 @@ We use npm as the canonical task runner for the project. The following commands
- `npm run stop` to stop the project's Docker containers.
- `npm run stop-all` to stop _all_ Docker containers.
- `npm run build` to build the plugin JS and CSS files.
+- `npm run dev` to watch and build the plugin assets continuously.
- `npm run lint` to check JS and PHP files for syntax and style issues.
- `npm run deploy` to deploy the plugin to the WordPress.org repository.
- `npm run cli -- wp info` where `wp info` is the CLI command to run inside the WordPress container. For example, use `npm run cli -- ls -lah` to list all files in the root of the WordPress installation.
- `npm run test` to run PHPunit tests inside the WordPress container.
- `npm run test-xdebug` will run the PHPunit tests with Xdebug enabled.
+- `npm run test-e2e` will run the Playwright E2E tests.
+- `npm run test-e2e-debug` will run the Playwright E2E tests in a debug mode (with Chromium browser and dev tools open).
- `npm run switch-to:php7.4` and `npm run switch-to:php8.2` will switch you to either PHP 7.4 or PHP 8.2
- `npm run document:connectors` generates [connectors.md](connectors.md). This runs via your local php.
+- `npm run large-records-generate` inserts ~1.6M rows to `wp_stream` and ~8.4M rows to `wp_streammeta` for testing
+- `npm run large-records-remove` removes the test data only
+- `npm run large-records-show` shows how much test data is in the tables, this does not include non-test entries
By default, tests have `WP_DEBUG` as false. You can override this if necessary by setting `WP_STREAM_TEST_DEBUG` to "yes".
diff --git a/docker-compose.yml b/docker-compose.yml
index 1bff80865..c558f3c40 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -4,15 +4,26 @@ services:
image: mariadb:11.4.2
volumes:
- db_data:/var/lib/mysql
- restart: always
ports:
- "3306:3306"
+ restart: always
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: password
+ phpmyadmin:
+ image: phpmyadmin:5.2.1
+ ports:
+ - "8080:80"
+ depends_on:
+ - mysql
+ environment:
+ PMA_HOST: mysql
+ PMA_USER: root
+ PMA_PASSWORD: password
+
wordpress:
image: ghcr.io/xwp/stream-wordpress:${WORDPRESS_IMAGE_VERSION:-latest}
build:
@@ -27,6 +38,7 @@ services:
- .:/var/www/html/wp-content/plugins/stream-src # Working directory.
- ./build:/var/www/html/wp-content/plugins/stream # Built version for testing.
- ./local/public:/var/www/html # WP core files.
+ - ./local/scripts:/var/local/scripts # Let us access the scripts in the container.
restart: always
extra_hosts:
- host.docker.internal:host-gateway
diff --git a/exporters/class-exporter-csv.php b/exporters/class-exporter-csv.php
index 06a128412..85e225f37 100644
--- a/exporters/class-exporter-csv.php
+++ b/exporters/class-exporter-csv.php
@@ -38,12 +38,18 @@ public function output_file( $data, $columns ) {
header( 'Content-Disposition: attachment; filename="stream.csv"' );
}
- $output = join( ',', array_values( $columns ) ) . "\n";
+ ob_start();
+
+ $csv = fopen( 'php://output', 'w' );
+ fputcsv( $csv, array_values( $columns ) );
+
foreach ( $data as $row ) {
- $output .= join( ',', $row ) . "\n";
+ fputcsv( $csv, $row );
}
+ fclose( $csv ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_fclose
+
+ echo ob_get_clean(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
- echo $output; // @codingStandardsIgnoreLine text-only output
if ( ! defined( 'WP_STREAM_TESTS' ) || ( defined( 'WP_STREAM_TESTS' ) && ! WP_STREAM_TESTS ) ) {
exit;
}
diff --git a/includes/functions.php b/includes/functions.php
index 58f3e141a..d602c515d 100644
--- a/includes/functions.php
+++ b/includes/functions.php
@@ -107,19 +107,3 @@ function wp_stream_is_vip() {
function wp_stream_is_cron_enabled() {
return ( defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON ) ? false : true;
}
-
-/**
- * Get the asset min suffix if defined.
- *
- * @return string
- */
-function wp_stream_min_suffix() {
- $min = '';
- $is_script_debugging = ! defined( 'SCRIPT_DEBUG' ) || false === SCRIPT_DEBUG;
-
- if ( apply_filters( 'wp_stream_load_min_assets', $is_script_debugging ) ) {
- $min = 'min.';
- }
-
- return $min;
-}
diff --git a/local/public/.htaccess b/local/public/.htaccess
index 632d57eab..1a2ef0997 100644
--- a/local/public/.htaccess
+++ b/local/public/.htaccess
@@ -11,7 +11,8 @@ RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
-RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /wp/$2 [L]
+RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(admin|includes).*) /wp/$2 [L]
+RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-content.*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ /wp/$2 [L]
RewriteRule . /wp/index.php [L]
# END WordPress
diff --git a/local/public/wp-content/plugins/hello.php b/local/public/wp-content/plugins/hello.php
index b65d0f36a..7fb7fc69c 100644
--- a/local/public/wp-content/plugins/hello.php
+++ b/local/public/wp-content/plugins/hello.php
@@ -3,3 +3,6 @@
* Plugin Name: Hello Dolly
* Description: A plugin used for PHP unit tests
*/
+
+
+
diff --git a/local/scripts/large-datasets/bulk-insert-logs.sample.sql b/local/scripts/large-datasets/bulk-insert-logs.sample.sql
new file mode 100644
index 000000000..15a7a9b1c
--- /dev/null
+++ b/local/scripts/large-datasets/bulk-insert-logs.sample.sql
@@ -0,0 +1,222 @@
+
+/* This is a fallback file for debugging purposes. :) */
+
+ DELIMITER / /
+
+
+ / / DROP PROCEDURE IF EXISTS generateStreamLogs
+
+ / / CREATE PROCEDURE generateStreamLogs(logdate DATETIME) BEGIN DECLARE i INT DEFAULT 0;
+
+ SELECT ( CONCAT( 'Generating data for ', logdate ) );
+
+ WHILE (i <= 100) DO
+ INSERT INTO
+ wordpress.wp_stream (
+ site_id,
+ blog_id,
+ object_id,
+ user_id,
+ user_role,
+ summary,
+ created,
+ connector,
+ context,
+ `action`,
+ ip
+ )
+ VALUES
+ (
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ );
+
+ INSERT INTO
+ wordpress.wp_stream_meta (record_id, meta_key, meta_value)
+ VALUES
+ (LAST_INSERT_ID() + 0, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 0, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 0, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 0, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 0, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 1, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 1, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 1, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 1, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 1, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 2, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 2, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 2, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 2, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 2, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 3, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 3, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 3, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 3, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 3, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 4, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 4, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 4, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 4, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 4, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 5, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 5, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 5, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 5, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 5, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 6, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 6, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 6, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 6, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 6, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 7, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 7, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 7, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 7, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 7, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 8, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 8, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 8, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 8, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 8, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 9, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 9, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 9, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 9, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 9, 'test_meta_key_5', 'meta_value_5');
+
+ SET
+ i = i + 1;
+
+ END WHILE;
+
+ END;
+
+ / / DROP PROCEDURE IF EXISTS generateStreamLogsByDays
+
+ / / CREATE PROCEDURE generateStreamLogsByDays() BEGIN DECLARE j INT DEFAULT 0;
+
+ WHILE (j <= 1640) DO CALL generateStreamLogs(
+ DATE_ADD(
+ CAST('2018-07-02 00:00:00' as DATETIME),
+ INTERVAL - j DAY
+ )
+ );
+
+ SET
+ j = j + 1;
+
+ END WHILE;
+
+ END;
+
+ / / CALL generateStreamLogsByDays();
+
diff --git a/local/scripts/large-datasets/bulk-insert-logs.sql b/local/scripts/large-datasets/bulk-insert-logs.sql
new file mode 100644
index 000000000..b3716e937
--- /dev/null
+++ b/local/scripts/large-datasets/bulk-insert-logs.sql
@@ -0,0 +1,223 @@
+
+/* This is a generated file. Run it via `php local/scripts/large-datasets/generate-bulk-insert.php` outside the Docker container. */
+
+ DELIMITER / /
+
+
+ / / DROP PROCEDURE IF EXISTS generateStreamLogs
+
+ / / CREATE PROCEDURE generateStreamLogs(logdate DATETIME) BEGIN DECLARE i INT DEFAULT 0;
+
+ SELECT ( CONCAT( 'Generating data for ', logdate ) );
+
+ WHILE (i <= 100) DO
+ INSERT INTO
+ wordpress.wp_stream (
+ site_id,
+ blog_id,
+ object_id,
+ user_id,
+ user_role,
+ summary,
+ created,
+ connector,
+ context,
+ `action`,
+ ip
+ )
+ VALUES
+ (
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ ),(
+ 1,
+ 1,
+ i,
+ 1,
+ 'administrator',
+ 'This is the summary',
+ logdate,
+ 'posts',
+ 'post',
+ 'test',
+ '127.0.0.1'
+ );
+
+ INSERT INTO
+ wordpress.wp_stream_meta (record_id, meta_key, meta_value)
+ VALUES
+ (LAST_INSERT_ID() + 0, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 0, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 0, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 0, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 0, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 1, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 1, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 1, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 1, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 1, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 2, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 2, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 2, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 2, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 2, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 3, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 3, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 3, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 3, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 3, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 4, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 4, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 4, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 4, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 4, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 5, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 5, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 5, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 5, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 5, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 6, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 6, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 6, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 6, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 6, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 7, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 7, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 7, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 7, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 7, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 8, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 8, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 8, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 8, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 8, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 9, 'test_meta_key_1', 'meta_value_1'),
+ (LAST_INSERT_ID() + 9, 'test_meta_key_2', 'meta_value_2'),
+ (LAST_INSERT_ID() + 9, 'test_meta_key_3', 'meta_value_3'),
+ (LAST_INSERT_ID() + 9, 'test_meta_key_4', 'meta_value_4'),
+ (LAST_INSERT_ID() + 9, 'test_meta_key_5', 'meta_value_5');
+
+ SET
+ i = i + 1;
+
+ END WHILE;
+
+ END;
+
+ / / DROP PROCEDURE IF EXISTS generateStreamLogsByDays
+
+ / / CREATE PROCEDURE generateStreamLogsByDays() BEGIN DECLARE j INT DEFAULT 0;
+
+ WHILE (j <= 1640) DO CALL generateStreamLogs(
+ DATE_ADD(
+ CAST('2018-07-02 00:00:00' as DATETIME),
+ INTERVAL - j DAY
+ )
+ );
+
+ SET
+ j = j + 1;
+
+ END WHILE;
+
+ END;
+
+ / / CALL generateStreamLogsByDays();
+
+
\ No newline at end of file
diff --git a/local/scripts/large-datasets/generate-bulk-insert.php b/local/scripts/large-datasets/generate-bulk-insert.php
new file mode 100644
index 000000000..3f251494b
--- /dev/null
+++ b/local/scripts/large-datasets/generate-bulk-insert.php
@@ -0,0 +1,111 @@
+
+
+/* This is a generated file. Run it via `php local/scripts/large-datasets/generate-bulk-insert.php` outside the Docker container. */
+
+ DELIMITER / /
+
+
+ / / DROP PROCEDURE IF EXISTS generateStreamLogs
+
+ / / CREATE PROCEDURE generateStreamLogs(logdate DATETIME) BEGIN DECLARE i INT DEFAULT 0;
+
+ SELECT ( CONCAT( 'Generating data for ', logdate ) );
+
+ WHILE (i <= ) DO
+ INSERT INTO
+ wordpress.wp_stream (
+ site_id,
+ blog_id,
+ object_id,
+ user_id,
+ user_role,
+ summary,
+ created,
+ connector,
+ context,
+ `action`,
+ ip
+ )
+ VALUES
+ ;
+
+ INSERT INTO
+ wordpress.wp_stream_meta (record_id, meta_key, meta_value)
+ VALUES
+ ;
+
+ SET
+ i = i + 1;
+
+ END WHILE;
+
+ END;
+
+ / / DROP PROCEDURE IF EXISTS generateStreamLogsByDays
+
+ / / CREATE PROCEDURE generateStreamLogsByDays() BEGIN DECLARE j INT DEFAULT 0;
+
+ WHILE (j <= ) DO CALL generateStreamLogs(
+ DATE_ADD(
+ CAST('' as DATETIME),
+ INTERVAL - j DAY
+ )
+ );
+
+ SET
+ j = j + 1;
+
+ END WHILE;
+
+ END;
+
+ / / CALL generateStreamLogsByDays();
+
+ =6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.24.9",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz",
- "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz",
+ "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.24.7",
- "@babel/generator": "^7.24.9",
- "@babel/helper-compilation-targets": "^7.24.8",
- "@babel/helper-module-transforms": "^7.24.9",
- "@babel/helpers": "^7.24.8",
- "@babel/parser": "^7.24.8",
- "@babel/template": "^7.24.7",
- "@babel/traverse": "^7.24.8",
- "@babel/types": "^7.24.9",
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helpers": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -85,10 +95,11 @@
}
},
"node_modules/@babel/eslint-parser": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.8.tgz",
- "integrity": "sha512-nYAikI4XTGokU2QX7Jx+v4rxZKhKivaQaREZjuW3mrJrbdWJ5yUfohnoUULge+zEEaKjPYNxhoRgUKktjXtbwA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.7.tgz",
+ "integrity": "sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
"eslint-visitor-keys": "^2.1.0",
@@ -103,54 +114,58 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.24.10",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz",
- "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz",
+ "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.24.9",
+ "@babel/types": "^7.25.7",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
- "jsesc": "^2.5.1"
+ "jsesc": "^3.0.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz",
- "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz",
+ "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.24.7"
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz",
- "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.7.tgz",
+ "integrity": "sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz",
- "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz",
+ "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.24.8",
- "@babel/helper-validator-option": "^7.24.8",
- "browserslist": "^4.23.1",
+ "@babel/compat-data": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
},
@@ -159,19 +174,18 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.8.tgz",
- "integrity": "sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.24.7",
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-function-name": "^7.24.7",
- "@babel/helper-member-expression-to-functions": "^7.24.8",
- "@babel/helper-optimise-call-expression": "^7.24.7",
- "@babel/helper-replace-supers": "^7.24.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
- "@babel/helper-split-export-declaration": "^7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.7.tgz",
+ "integrity": "sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-member-expression-to-functions": "^7.25.7",
+ "@babel/helper-optimise-call-expression": "^7.25.7",
+ "@babel/helper-replace-supers": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
"semver": "^6.3.1"
},
"engines": {
@@ -182,13 +196,14 @@
}
},
"node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz",
- "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.7.tgz",
+ "integrity": "sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.24.7",
- "regexpu-core": "^5.3.1",
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "regexpu-core": "^6.1.1",
"semver": "^6.3.1"
},
"engines": {
@@ -214,80 +229,45 @@
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz",
- "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz",
- "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.24.7",
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz",
- "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz",
- "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.7.tgz",
+ "integrity": "sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.24.8",
- "@babel/types": "^7.24.8"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz",
- "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz",
+ "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.24.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz",
- "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz",
+ "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-module-imports": "^7.24.7",
- "@babel/helper-simple-access": "^7.24.7",
- "@babel/helper-split-export-declaration": "^7.24.7",
- "@babel/helper-validator-identifier": "^7.24.7"
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-simple-access": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -297,35 +277,38 @@
}
},
"node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz",
- "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.7.tgz",
+ "integrity": "sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.24.7"
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz",
- "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz",
+ "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz",
- "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.7.tgz",
+ "integrity": "sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.24.7",
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-wrap-function": "^7.24.7"
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-wrap-function": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -335,14 +318,15 @@
}
},
"node_modules/@babel/helper-replace-supers": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz",
- "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.7.tgz",
+ "integrity": "sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-member-expression-to-functions": "^7.24.7",
- "@babel/helper-optimise-call-expression": "^7.24.7"
+ "@babel/helper-member-expression-to-functions": "^7.25.7",
+ "@babel/helper-optimise-call-expression": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -352,105 +336,100 @@
}
},
"node_modules/@babel/helper-simple-access": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz",
- "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz",
+ "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz",
- "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==",
- "dev": true,
- "dependencies": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz",
- "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.7.tgz",
+ "integrity": "sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.24.7"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
- "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz",
+ "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
- "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz",
+ "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz",
- "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz",
+ "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-wrap-function": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz",
- "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.7.tgz",
+ "integrity": "sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-function-name": "^7.24.7",
- "@babel/template": "^7.24.7",
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/template": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz",
- "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz",
+ "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/template": "^7.24.7",
- "@babel/types": "^7.24.8"
+ "@babel/template": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
- "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz",
+ "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
"chalk": "^2.4.2",
"js-tokens": "^4.0.0",
"picocolors": "^1.0.0"
@@ -460,10 +439,14 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz",
- "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz",
+ "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.25.8"
+ },
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -472,13 +455,30 @@
}
},
"node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz",
- "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.7.tgz",
+ "integrity": "sha512-UV9Lg53zyebzD1DwQoT9mzkEKa922LNUp5YkTJ6Uta0RbyXaQNUgcvSt7qIu1PpPzVb6rd10OVNTzkyBGeVmxQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.7.tgz",
+ "integrity": "sha512-GDDWeVLNxRIkQTnJn2pDOM1pkCgYdSqPeT1a9vh9yIqu2uzzgw1zcqEb+IJOhy+dTBMlNdThrDIksr2o09qrrQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -488,12 +488,13 @@
}
},
"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz",
- "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.7.tgz",
+ "integrity": "sha512-wxyWg2RYaSUYgmd9MR0FyRGyeOMQE/Uzr1wzd/g5cf5bwi9A4v6HFdDm7y1MgDtod/fLOSTZY6jDgV0xU9d5bA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -503,14 +504,15 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz",
- "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.7.tgz",
+ "integrity": "sha512-Xwg6tZpLxc4iQjorYsyGMyfJE7nP5MV8t/Ka58BgiA7Jw0fRqQNcANlLfdJ/yvBt9z9LD2We+BEkT7vLqZRWng==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
- "@babel/plugin-transform-optional-chaining": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7",
+ "@babel/plugin-transform-optional-chaining": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -520,13 +522,14 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz",
- "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.7.tgz",
+ "integrity": "sha512-UVATLMidXrnH+GMUIuxq55nejlj02HP7F5ETyBONzP6G87fPBogG4CH6kxrSrdIuAjdwNO9VzyaYsrZPscWUrw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -559,6 +562,19 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
"node_modules/@babel/plugin-syntax-class-properties": {
"version": "7.12.13",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
@@ -576,6 +592,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
"integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -591,6 +608,7 @@
"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,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -603,6 +621,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
"integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.3"
},
@@ -611,12 +630,13 @@
}
},
"node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz",
- "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz",
+ "integrity": "sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -626,12 +646,13 @@
}
},
"node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz",
- "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz",
+ "integrity": "sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -665,12 +686,13 @@
}
},
"node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz",
- "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz",
+ "integrity": "sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -756,6 +778,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
"integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -782,12 +805,13 @@
}
},
"node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz",
- "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.7.tgz",
+ "integrity": "sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -813,12 +837,13 @@
}
},
"node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz",
- "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.7.tgz",
+ "integrity": "sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -828,15 +853,15 @@
}
},
"node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz",
- "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.8.tgz",
+ "integrity": "sha512-9ypqkozyzpG+HxlH4o4gdctalFGIjjdufzo7I2XPda0iBnZ6a+FO0rIEQcdSPXp02CkvGsII1exJhmROPQd5oA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-remap-async-to-generator": "^7.24.7",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-remap-async-to-generator": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -846,14 +871,15 @@
}
},
"node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz",
- "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.7.tgz",
+ "integrity": "sha512-ZUCjAavsh5CESCmi/xCpX1qcCaAglzs/7tmuvoFnJgA1dM7gQplsguljoTg+Ru8WENpX89cQyAtWoaE0I3X3Pg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-imports": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-remap-async-to-generator": "^7.24.7"
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-remap-async-to-generator": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -863,12 +889,13 @@
}
},
"node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz",
- "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.7.tgz",
+ "integrity": "sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -878,12 +905,13 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz",
- "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.7.tgz",
+ "integrity": "sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -893,13 +921,14 @@
}
},
"node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz",
- "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.7.tgz",
+ "integrity": "sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-create-class-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -909,14 +938,14 @@
}
},
"node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz",
- "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.8.tgz",
+ "integrity": "sha512-e82gl3TCorath6YLf9xUwFehVvjvfqFhdOo4+0iVIVju+6XOi5XHkqB3P2AXnSwoeTX0HBoXq5gJFtvotJzFnQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ "@babel/helper-create-class-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -926,18 +955,17 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.8.tgz",
- "integrity": "sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.7.tgz",
+ "integrity": "sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.24.7",
- "@babel/helper-compilation-targets": "^7.24.8",
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-function-name": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.8",
- "@babel/helper-replace-supers": "^7.24.7",
- "@babel/helper-split-export-declaration": "^7.24.7",
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-replace-supers": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
"globals": "^11.1.0"
},
"engines": {
@@ -948,13 +976,14 @@
}
},
"node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz",
- "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.7.tgz",
+ "integrity": "sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/template": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/template": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -964,12 +993,13 @@
}
},
"node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz",
- "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.7.tgz",
+ "integrity": "sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.8"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -979,13 +1009,14 @@
}
},
"node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz",
- "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.7.tgz",
+ "integrity": "sha512-kXzXMMRzAtJdDEgQBLF4oaiT6ZCU3oWHgpARnTKDAqPkDJ+bs3NrZb310YYevR5QlRo3Kn7dzzIdHbZm1VzJdQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -995,12 +1026,13 @@
}
},
"node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz",
- "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.7.tgz",
+ "integrity": "sha512-by+v2CjoL3aMnWDOyCIg+yxU9KXSRa9tN6MbqggH5xvymmr9p4AMjYkNlQy4brMceBnUyHZ9G8RnpvT8wP7Cfg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1009,14 +1041,31 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.7.tgz",
+ "integrity": "sha512-HvS6JF66xSS5rNKXLqkk7L9c/jZ/cdIVIcoPVrnl8IsVpLggTjXs8OWekbLHs/VtYDDh5WXnQyeE3PPUGm22MA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
"node_modules/@babel/plugin-transform-dynamic-import": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz",
- "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.8.tgz",
+ "integrity": "sha512-gznWY+mr4ZQL/EWPcbBQUP3BXS5FwZp8RUOw06BaRn8tQLzN4XLIxXejpHN9Qo8x8jjBmAAKp6FoS51AgkSA/A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1026,13 +1075,14 @@
}
},
"node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz",
- "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.7.tgz",
+ "integrity": "sha512-yjqtpstPfZ0h/y40fAXRv2snciYr0OAoMXY/0ClC7tm4C/nG5NJKmIItlaYlLbIVAWNfrYuy9dq1bE0SbX0PEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1042,13 +1092,13 @@
}
},
"node_modules/@babel/plugin-transform-export-namespace-from": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz",
- "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.8.tgz",
+ "integrity": "sha512-sPtYrduWINTQTW7FtOy99VCTWp4H23UX7vYcut7S4CIMEXU+54zKX9uCoGkLsWXteyaMXzVHgzWbLfQ1w4GZgw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1058,13 +1108,14 @@
}
},
"node_modules/@babel/plugin-transform-for-of": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz",
- "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.7.tgz",
+ "integrity": "sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1074,14 +1125,15 @@
}
},
"node_modules/@babel/plugin-transform-function-name": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz",
- "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.7.tgz",
+ "integrity": "sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-compilation-targets": "^7.24.7",
- "@babel/helper-function-name": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1091,13 +1143,13 @@
}
},
"node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz",
- "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.8.tgz",
+ "integrity": "sha512-4OMNv7eHTmJ2YXs3tvxAfa/I43di+VcF+M4Wt66c88EAED1RoGaf1D64cL5FkRpNL+Vx9Hds84lksWvd/wMIdA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1107,12 +1159,13 @@
}
},
"node_modules/@babel/plugin-transform-literals": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz",
- "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.7.tgz",
+ "integrity": "sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1122,13 +1175,13 @@
}
},
"node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz",
- "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.8.tgz",
+ "integrity": "sha512-f5W0AhSbbI+yY6VakT04jmxdxz+WsID0neG7+kQZbCOjuyJNdL5Nn4WIBm4hRpKnUcO9lP0eipUhFN12JpoH8g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1138,12 +1191,13 @@
}
},
"node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz",
- "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.7.tgz",
+ "integrity": "sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1153,13 +1207,14 @@
}
},
"node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz",
- "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.7.tgz",
+ "integrity": "sha512-CgselSGCGzjQvKzghCvDTxKHP3iooenLpJDO842ehn5D2G5fJB222ptnDwQho0WjEvg7zyoxb9P+wiYxiJX5yA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1169,14 +1224,15 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz",
- "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz",
+ "integrity": "sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.24.8",
- "@babel/helper-plugin-utils": "^7.24.8",
- "@babel/helper-simple-access": "^7.24.7"
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-simple-access": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1186,15 +1242,16 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz",
- "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.7.tgz",
+ "integrity": "sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-hoist-variables": "^7.24.7",
- "@babel/helper-module-transforms": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-validator-identifier": "^7.24.7"
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1204,13 +1261,14 @@
}
},
"node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz",
- "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.7.tgz",
+ "integrity": "sha512-p88Jg6QqsaPh+EB7I9GJrIqi1Zt4ZBHUQtjw3z1bzEXcLh6GfPqzZJ6G+G1HBGKUNukT58MnKG7EN7zXQBCODw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1220,13 +1278,14 @@
}
},
"node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz",
- "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.7.tgz",
+ "integrity": "sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1236,12 +1295,13 @@
}
},
"node_modules/@babel/plugin-transform-new-target": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz",
- "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.7.tgz",
+ "integrity": "sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1251,13 +1311,13 @@
}
},
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz",
- "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.8.tgz",
+ "integrity": "sha512-Z7WJJWdQc8yCWgAmjI3hyC+5PXIubH9yRKzkl9ZEG647O9szl9zvmKLzpbItlijBnVhTUf1cpyWBsZ3+2wjWPQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1267,13 +1327,13 @@
}
},
"node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz",
- "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.8.tgz",
+ "integrity": "sha512-rm9a5iEFPS4iMIy+/A/PiS0QN0UyjPIeVvbU5EMZFKJZHt8vQnasbpo3T3EFcxzCeYO0BHfc4RqooCZc51J86Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1283,15 +1343,15 @@
}
},
"node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz",
- "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.8.tgz",
+ "integrity": "sha512-LkUu0O2hnUKHKE7/zYOIjByMa4VRaV2CD/cdGz0AxU9we+VA3kDDggKEzI0Oz1IroG+6gUP6UmWEHBMWZU316g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-compilation-targets": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.24.7"
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/plugin-transform-parameters": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1301,13 +1361,14 @@
}
},
"node_modules/@babel/plugin-transform-object-super": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz",
- "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.7.tgz",
+ "integrity": "sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-replace-supers": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-replace-supers": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1317,13 +1378,13 @@
}
},
"node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz",
- "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.8.tgz",
+ "integrity": "sha512-EbQYweoMAHOn7iJ9GgZo14ghhb9tTjgOc88xFgYngifx7Z9u580cENCV159M4xDh3q/irbhSjZVpuhpC2gKBbg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1333,14 +1394,14 @@
}
},
"node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz",
- "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.8.tgz",
+ "integrity": "sha512-q05Bk7gXOxpTHoQ8RSzGSh/LHVB9JEIkKnk3myAWwZHnYiTGYtbdrYkIsS8Xyh4ltKf7GNUSgzs/6P2bJtBAQg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.8",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1350,12 +1411,13 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz",
- "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.7.tgz",
+ "integrity": "sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1365,13 +1427,14 @@
}
},
"node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz",
- "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.7.tgz",
+ "integrity": "sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-create-class-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1381,15 +1444,15 @@
}
},
"node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz",
- "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.8.tgz",
+ "integrity": "sha512-8Uh966svuB4V8RHHg0QJOB32QK287NBksJOByoKmHMp1TAobNniNalIkI2i5IPj5+S9NYCG4VIjbEuiSN8r+ow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.24.7",
- "@babel/helper-create-class-features-plugin": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-create-class-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1399,10 +1462,43 @@
}
},
"node_modules/@babel/plugin-transform-property-literals": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.7.tgz",
+ "integrity": "sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-constant-elements": {
+ "version": "7.25.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz",
+ "integrity": "sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-display-name": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz",
- "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz",
+ "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -1414,16 +1510,50 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.7.tgz",
+ "integrity": "sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/plugin-syntax-jsx": "^7.25.7",
+ "@babel/types": "^7.25.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-development": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz",
+ "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/plugin-transform-react-jsx": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-pure-annotations": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz",
- "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz",
+ "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.24.7",
- "@babel/helper-module-imports": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/plugin-syntax-jsx": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.24.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1433,12 +1563,13 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz",
- "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.7.tgz",
+ "integrity": "sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"regenerator-transform": "^0.15.2"
},
"engines": {
@@ -1449,12 +1580,13 @@
}
},
"node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz",
- "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.7.tgz",
+ "integrity": "sha512-3OfyfRRqiGeOvIWSagcwUTVk2hXBsr/ww7bLn6TRTuXnexA+Udov2icFOxFX9abaj4l96ooYkcNN1qi2Zvqwng==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1464,15 +1596,16 @@
}
},
"node_modules/@babel/plugin-transform-runtime": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz",
- "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.7.tgz",
+ "integrity": "sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-imports": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"babel-plugin-polyfill-corejs2": "^0.4.10",
- "babel-plugin-polyfill-corejs3": "^0.10.1",
+ "babel-plugin-polyfill-corejs3": "^0.10.6",
"babel-plugin-polyfill-regenerator": "^0.6.1",
"semver": "^6.3.1"
},
@@ -1484,12 +1617,13 @@
}
},
"node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz",
- "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.7.tgz",
+ "integrity": "sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1499,13 +1633,14 @@
}
},
"node_modules/@babel/plugin-transform-spread": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz",
- "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.7.tgz",
+ "integrity": "sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1515,12 +1650,13 @@
}
},
"node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz",
- "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.7.tgz",
+ "integrity": "sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1530,12 +1666,13 @@
}
},
"node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz",
- "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.7.tgz",
+ "integrity": "sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1545,12 +1682,13 @@
}
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz",
- "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.7.tgz",
+ "integrity": "sha512-OmWmQtTHnO8RSUbL0NTdtpbZHeNTnm68Gj5pA4Y2blFNh+V4iZR68V1qL9cI37J21ZN7AaCnkfdHtLExQPf2uA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.8"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1560,15 +1698,17 @@
}
},
"node_modules/@babel/plugin-transform-typescript": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.8.tgz",
- "integrity": "sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.7.tgz",
+ "integrity": "sha512-VKlgy2vBzj8AmEzunocMun2fF06bsSWV+FvVXohtL6FGve/+L217qhHxRTVGHEDO/YR8IANcjzgJsd04J8ge5Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.24.7",
- "@babel/helper-create-class-features-plugin": "^7.24.8",
- "@babel/helper-plugin-utils": "^7.24.8",
- "@babel/plugin-syntax-typescript": "^7.24.7"
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-create-class-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7",
+ "@babel/plugin-syntax-typescript": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1578,12 +1718,13 @@
}
},
"node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz",
- "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.7.tgz",
+ "integrity": "sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1593,13 +1734,14 @@
}
},
"node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz",
- "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.7.tgz",
+ "integrity": "sha512-IWfR89zcEPQGB/iB408uGtSPlQd3Jpq11Im86vUgcmSTcoWAiQMCTOa2K2yNNqFJEBVICKhayctee65Ka8OB0w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1609,13 +1751,14 @@
}
},
"node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz",
- "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.7.tgz",
+ "integrity": "sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1625,13 +1768,14 @@
}
},
"node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz",
- "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.7.tgz",
+ "integrity": "sha512-YRW8o9vzImwmh4Q3Rffd09bH5/hvY0pxg+1H1i0f7APoUeg12G7+HhLj9ZFNIrYkgBXhIijPJ+IXypN0hLTIbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1641,27 +1785,29 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.8.tgz",
- "integrity": "sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.24.8",
- "@babel/helper-compilation-targets": "^7.24.8",
- "@babel/helper-plugin-utils": "^7.24.8",
- "@babel/helper-validator-option": "^7.24.8",
- "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7",
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.7.tgz",
+ "integrity": "sha512-Gibz4OUdyNqqLj+7OAvBZxOD7CklCtMA5/j0JgUEwOnaRULsPDXmic2iKxL2DX2vQduPR5wH2hjZas/Vr/Oc0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.7",
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.7",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.7",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.7",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.7",
"@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
"@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.24.7",
- "@babel/plugin-syntax-import-attributes": "^7.24.7",
+ "@babel/plugin-syntax-import-assertions": "^7.25.7",
+ "@babel/plugin-syntax-import-attributes": "^7.25.7",
"@babel/plugin-syntax-import-meta": "^7.10.4",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
@@ -1673,59 +1819,60 @@
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5",
"@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
- "@babel/plugin-transform-arrow-functions": "^7.24.7",
- "@babel/plugin-transform-async-generator-functions": "^7.24.7",
- "@babel/plugin-transform-async-to-generator": "^7.24.7",
- "@babel/plugin-transform-block-scoped-functions": "^7.24.7",
- "@babel/plugin-transform-block-scoping": "^7.24.7",
- "@babel/plugin-transform-class-properties": "^7.24.7",
- "@babel/plugin-transform-class-static-block": "^7.24.7",
- "@babel/plugin-transform-classes": "^7.24.8",
- "@babel/plugin-transform-computed-properties": "^7.24.7",
- "@babel/plugin-transform-destructuring": "^7.24.8",
- "@babel/plugin-transform-dotall-regex": "^7.24.7",
- "@babel/plugin-transform-duplicate-keys": "^7.24.7",
- "@babel/plugin-transform-dynamic-import": "^7.24.7",
- "@babel/plugin-transform-exponentiation-operator": "^7.24.7",
- "@babel/plugin-transform-export-namespace-from": "^7.24.7",
- "@babel/plugin-transform-for-of": "^7.24.7",
- "@babel/plugin-transform-function-name": "^7.24.7",
- "@babel/plugin-transform-json-strings": "^7.24.7",
- "@babel/plugin-transform-literals": "^7.24.7",
- "@babel/plugin-transform-logical-assignment-operators": "^7.24.7",
- "@babel/plugin-transform-member-expression-literals": "^7.24.7",
- "@babel/plugin-transform-modules-amd": "^7.24.7",
- "@babel/plugin-transform-modules-commonjs": "^7.24.8",
- "@babel/plugin-transform-modules-systemjs": "^7.24.7",
- "@babel/plugin-transform-modules-umd": "^7.24.7",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7",
- "@babel/plugin-transform-new-target": "^7.24.7",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7",
- "@babel/plugin-transform-numeric-separator": "^7.24.7",
- "@babel/plugin-transform-object-rest-spread": "^7.24.7",
- "@babel/plugin-transform-object-super": "^7.24.7",
- "@babel/plugin-transform-optional-catch-binding": "^7.24.7",
- "@babel/plugin-transform-optional-chaining": "^7.24.8",
- "@babel/plugin-transform-parameters": "^7.24.7",
- "@babel/plugin-transform-private-methods": "^7.24.7",
- "@babel/plugin-transform-private-property-in-object": "^7.24.7",
- "@babel/plugin-transform-property-literals": "^7.24.7",
- "@babel/plugin-transform-regenerator": "^7.24.7",
- "@babel/plugin-transform-reserved-words": "^7.24.7",
- "@babel/plugin-transform-shorthand-properties": "^7.24.7",
- "@babel/plugin-transform-spread": "^7.24.7",
- "@babel/plugin-transform-sticky-regex": "^7.24.7",
- "@babel/plugin-transform-template-literals": "^7.24.7",
- "@babel/plugin-transform-typeof-symbol": "^7.24.8",
- "@babel/plugin-transform-unicode-escapes": "^7.24.7",
- "@babel/plugin-transform-unicode-property-regex": "^7.24.7",
- "@babel/plugin-transform-unicode-regex": "^7.24.7",
- "@babel/plugin-transform-unicode-sets-regex": "^7.24.7",
+ "@babel/plugin-transform-arrow-functions": "^7.25.7",
+ "@babel/plugin-transform-async-generator-functions": "^7.25.7",
+ "@babel/plugin-transform-async-to-generator": "^7.25.7",
+ "@babel/plugin-transform-block-scoped-functions": "^7.25.7",
+ "@babel/plugin-transform-block-scoping": "^7.25.7",
+ "@babel/plugin-transform-class-properties": "^7.25.7",
+ "@babel/plugin-transform-class-static-block": "^7.25.7",
+ "@babel/plugin-transform-classes": "^7.25.7",
+ "@babel/plugin-transform-computed-properties": "^7.25.7",
+ "@babel/plugin-transform-destructuring": "^7.25.7",
+ "@babel/plugin-transform-dotall-regex": "^7.25.7",
+ "@babel/plugin-transform-duplicate-keys": "^7.25.7",
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.7",
+ "@babel/plugin-transform-dynamic-import": "^7.25.7",
+ "@babel/plugin-transform-exponentiation-operator": "^7.25.7",
+ "@babel/plugin-transform-export-namespace-from": "^7.25.7",
+ "@babel/plugin-transform-for-of": "^7.25.7",
+ "@babel/plugin-transform-function-name": "^7.25.7",
+ "@babel/plugin-transform-json-strings": "^7.25.7",
+ "@babel/plugin-transform-literals": "^7.25.7",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.25.7",
+ "@babel/plugin-transform-member-expression-literals": "^7.25.7",
+ "@babel/plugin-transform-modules-amd": "^7.25.7",
+ "@babel/plugin-transform-modules-commonjs": "^7.25.7",
+ "@babel/plugin-transform-modules-systemjs": "^7.25.7",
+ "@babel/plugin-transform-modules-umd": "^7.25.7",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.7",
+ "@babel/plugin-transform-new-target": "^7.25.7",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.7",
+ "@babel/plugin-transform-numeric-separator": "^7.25.7",
+ "@babel/plugin-transform-object-rest-spread": "^7.25.7",
+ "@babel/plugin-transform-object-super": "^7.25.7",
+ "@babel/plugin-transform-optional-catch-binding": "^7.25.7",
+ "@babel/plugin-transform-optional-chaining": "^7.25.7",
+ "@babel/plugin-transform-parameters": "^7.25.7",
+ "@babel/plugin-transform-private-methods": "^7.25.7",
+ "@babel/plugin-transform-private-property-in-object": "^7.25.7",
+ "@babel/plugin-transform-property-literals": "^7.25.7",
+ "@babel/plugin-transform-regenerator": "^7.25.7",
+ "@babel/plugin-transform-reserved-words": "^7.25.7",
+ "@babel/plugin-transform-shorthand-properties": "^7.25.7",
+ "@babel/plugin-transform-spread": "^7.25.7",
+ "@babel/plugin-transform-sticky-regex": "^7.25.7",
+ "@babel/plugin-transform-template-literals": "^7.25.7",
+ "@babel/plugin-transform-typeof-symbol": "^7.25.7",
+ "@babel/plugin-transform-unicode-escapes": "^7.25.7",
+ "@babel/plugin-transform-unicode-property-regex": "^7.25.7",
+ "@babel/plugin-transform-unicode-regex": "^7.25.7",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.25.7",
"@babel/preset-modules": "0.1.6-no-external-plugins",
"babel-plugin-polyfill-corejs2": "^0.4.10",
- "babel-plugin-polyfill-corejs3": "^0.10.4",
+ "babel-plugin-polyfill-corejs3": "^0.10.6",
"babel-plugin-polyfill-regenerator": "^0.6.1",
- "core-js-compat": "^3.37.1",
+ "core-js-compat": "^3.38.1",
"semver": "^6.3.1"
},
"engines": {
@@ -1749,17 +1896,19 @@
"@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
}
},
- "node_modules/@babel/preset-typescript": {
+ "node_modules/@babel/preset-react": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz",
- "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz",
+ "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/helper-validator-option": "^7.24.7",
- "@babel/plugin-syntax-jsx": "^7.24.7",
- "@babel/plugin-transform-modules-commonjs": "^7.24.7",
- "@babel/plugin-transform-typescript": "^7.24.7"
+ "@babel/plugin-transform-react-display-name": "^7.24.7",
+ "@babel/plugin-transform-react-jsx": "^7.24.7",
+ "@babel/plugin-transform-react-jsx-development": "^7.24.7",
+ "@babel/plugin-transform-react-pure-annotations": "^7.24.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1768,17 +1917,32 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/regjsgen": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
- "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==",
- "dev": true
+ "node_modules/@babel/preset-typescript": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.25.7.tgz",
+ "integrity": "sha512-rkkpaXJZOFN45Fb+Gki0c+KMIglk4+zZXOoMJuyEK8y8Kkc8Jd3BDmP7qPsz0zQMJj+UD7EprF+AqAXcILnexw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "@babel/plugin-syntax-jsx": "^7.25.7",
+ "@babel/plugin-transform-modules-commonjs": "^7.25.7",
+ "@babel/plugin-transform-typescript": "^7.25.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
},
"node_modules/@babel/runtime": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.8.tgz",
- "integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz",
+ "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -1787,33 +1951,32 @@
}
},
"node_modules/@babel/template": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz",
- "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz",
+ "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.24.7",
- "@babel/parser": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/code-frame": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz",
- "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.24.7",
- "@babel/generator": "^7.24.8",
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-function-name": "^7.24.7",
- "@babel/helper-hoist-variables": "^7.24.7",
- "@babel/helper-split-export-declaration": "^7.24.7",
- "@babel/parser": "^7.24.8",
- "@babel/types": "^7.24.8",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz",
+ "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/types": "^7.25.7",
"debug": "^4.3.1",
"globals": "^11.1.0"
},
@@ -1822,23 +1985,142 @@
}
},
"node_modules/@babel/types": {
- "version": "7.24.9",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz",
- "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==",
+ "version": "7.25.8",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz",
+ "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-string-parser": "^7.24.8",
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-string-parser": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
"to-fast-properties": "^2.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@es-joy/jsdoccomment": {
- "version": "0.41.0",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz",
- "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==",
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.1.tgz",
+ "integrity": "sha512-lSquqZCHxDfuTg/Sk2hiS0mcSFCEBuj49JfzPHJogDBT0mGCyY5A1AQzBWngitrp7i1/HAZpIgzF/VjhOEIJIg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^3.0.1"
+ }
+ },
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.1.tgz",
+ "integrity": "sha512-UBqaiu7kU0lfvaP982/o3khfXccVlHPWp0/vwwiIgDF0GmqqqxoiXC/6FCjlS9u92f7CoEz6nXKQnrn1kIAkOw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@csstools/media-query-list-parser": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.1.tgz",
+ "integrity": "sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.1",
+ "@csstools/css-tokenizer": "^3.0.1"
+ }
+ },
+ "node_modules/@csstools/selector-specificity": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-4.0.0.tgz",
+ "integrity": "sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^6.1.0"
+ }
+ },
+ "node_modules/@discoveryjs/json-ext": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
+ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@dual-bundle/import-meta-resolve": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
+ "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/@es-joy/jsdoccomment": {
+ "version": "0.41.0",
+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz",
+ "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==",
"dev": true,
"dependencies": {
"comment-parser": "1.4.1",
@@ -1946,22 +2228,97 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.57.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
- "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+ "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
+ "node_modules/@formatjs/ecma402-abstract": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.1.tgz",
+ "integrity": "sha512-Ip9uV+/MpLXWRk03U/GzeJMuPeOXpJBSB5V1tjA6kJhvqssye5J5LoYLc7Z5IAHb7nR62sRoguzrFiVCP/hnzw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/fast-memoize": "2.2.5",
+ "@formatjs/intl-localematcher": "0.5.9",
+ "decimal.js": "10",
+ "tslib": "2"
+ }
+ },
+ "node_modules/@formatjs/fast-memoize": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.5.tgz",
+ "integrity": "sha512-6PoewUMrrcqxSoBXAOJDiW1m+AmkrAj0RiXnOMD59GRaswjXhm3MDhgepXPBgonc09oSirAJTsAggzAGQf6A6g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/@formatjs/icu-messageformat-parser": {
+ "version": "2.9.7",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.9.7.tgz",
+ "integrity": "sha512-cuEHyRM5VqLQobANOjtjlgU7+qmk9Q3fDQuBiRRJ3+Wp3ZoZhpUPtUfuimZXsir6SaI2TaAJ+SLo9vLnV5QcbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "2.3.1",
+ "@formatjs/icu-skeleton-parser": "1.8.11",
+ "tslib": "2"
+ }
+ },
+ "node_modules/@formatjs/icu-skeleton-parser": {
+ "version": "1.8.11",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.11.tgz",
+ "integrity": "sha512-8LlHHE/yL/zVJZHAX3pbKaCjZKmBIO6aJY1mkVh4RMSEu/2WRZ4Ysvv3kKXJ9M8RJLBHdnk1/dUQFdod1Dt7Dw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "2.3.1",
+ "tslib": "2"
+ }
+ },
+ "node_modules/@formatjs/intl-localematcher": {
+ "version": "0.5.9",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.9.tgz",
+ "integrity": "sha512-8zkGu/sv5euxbjfZ/xmklqLyDGQSxsLqg8XOq88JW3cmJtzhCP8EtSJXlaKZnVO4beEaoiT9wj4eIoCQ9smwxA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "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==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.14",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
- "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+ "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
"deprecated": "Use @eslint/config-array instead",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@humanwhocodes/object-schema": "^2.0.2",
+ "@humanwhocodes/object-schema": "^2.0.3",
"debug": "^4.3.1",
"minimatch": "^3.0.5"
},
@@ -2011,1676 +2368,13610 @@
"deprecated": "Use @eslint/object-schema instead",
"dev": true
},
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "node_modules/@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.24"
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=8"
}
},
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "node_modules/@istanbuljs/load-nyc-config/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,
- "engines": {
- "node": ">=6.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
}
},
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "node_modules/@istanbuljs/load-nyc-config/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,
+ "license": "MIT",
"engines": {
- "node": ">=6.0.0"
+ "node": ">=6"
}
},
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "dev": true
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "node_modules/@istanbuljs/load-nyc-config/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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
- "version": "5.1.1-v1",
- "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
- "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
+ "node_modules/@istanbuljs/load-nyc-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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "eslint-scope": "5.1.1"
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "node_modules/@istanbuljs/load-nyc-config/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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
+ "p-locate": "^4.1.0"
},
"engines": {
- "node": ">= 8"
+ "node": ">=8"
}
},
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "node_modules/@istanbuljs/load-nyc-config/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,
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
"engines": {
- "node": ">= 8"
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "node_modules/@istanbuljs/load-nyc-config/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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
+ "p-limit": "^2.2.0"
},
"engines": {
- "node": ">= 8"
+ "node": ">=8"
}
},
- "node_modules/@pkgr/core": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
- "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/unts"
+ "node": ">=8"
}
},
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "dev": true
- },
- "node_modules/@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
- "dev": true
- },
- "node_modules/@types/parse-json": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
- "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
- "dev": true
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
- "node_modules/@types/semver": {
- "version": "7.5.8",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
- "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
- "dev": true
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz",
- "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==",
+ "node_modules/@jest/console": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
+ "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@eslint-community/regexpp": "^4.5.1",
- "@typescript-eslint/scope-manager": "6.21.0",
- "@typescript-eslint/type-utils": "6.21.0",
- "@typescript-eslint/utils": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0",
- "debug": "^4.3.4",
- "graphemer": "^1.4.0",
- "ignore": "^5.2.4",
- "natural-compare": "^1.4.0",
- "semver": "^7.5.4",
- "ts-api-utils": "^1.0.1"
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "slash": "^3.0.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/console/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
- "eslint": "^7.0.0 || ^8.0.0"
+ "engines": {
+ "node": ">=8"
},
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "node_modules/@jest/console/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "license": "MIT",
+ "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/@typescript-eslint/parser": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
- "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
+ "node_modules/@jest/console/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,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "6.21.0",
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/typescript-estree": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0",
- "debug": "^4.3.4"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "node": ">=7.0.0"
}
},
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
- "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
+ "node_modules/@jest/console/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,
+ "license": "MIT"
+ },
+ "node_modules/@jest/console/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/console/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,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">=8"
}
},
- "node_modules/@typescript-eslint/type-utils": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz",
- "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==",
+ "node_modules/@jest/core": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
+ "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "6.21.0",
- "@typescript-eslint/utils": "6.21.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^1.0.1"
+ "@jest/console": "^29.7.0",
+ "@jest/reporters": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^29.7.0",
+ "jest-config": "^29.7.0",
+ "jest-haste-map": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-resolve-dependencies": "^29.7.0",
+ "jest-runner": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "jest-watcher": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
},
"peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
},
"peerDependenciesMeta": {
- "typescript": {
+ "node-notifier": {
"optional": true
}
}
},
- "node_modules/@typescript-eslint/types": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
- "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
+ "node_modules/@jest/core/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": ">=8"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
- "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
+ "node_modules/@jest/core/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "9.0.3",
- "semver": "^7.5.4",
- "ts-api-utils": "^1.0.1"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": ">=10"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "node_modules/@jest/core/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,
- "bin": {
- "semver": "bin/semver.js"
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">=10"
+ "node": ">=7.0.0"
}
},
- "node_modules/@typescript-eslint/utils": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
- "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
+ "node_modules/@jest/core/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,
+ "license": "MIT"
+ },
+ "node_modules/@jest/core/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/core/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,
+ "license": "MIT",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@types/json-schema": "^7.0.12",
- "@types/semver": "^7.5.0",
- "@typescript-eslint/scope-manager": "6.21.0",
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/typescript-estree": "6.21.0",
- "semver": "^7.5.4"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
+ "node": ">=8"
}
},
- "node_modules/@typescript-eslint/utils/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "node_modules/@jest/environment": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
+ "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "license": "MIT",
+ "dependencies": {
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0"
},
"engines": {
- "node": ">=10"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
- "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
+ "node_modules/@jest/expect": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "6.21.0",
- "eslint-visitor-keys": "^3.4.1"
+ "expect": "^29.7.0",
+ "jest-snapshot": "^29.7.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "node_modules/@jest/expect-utils": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
+ "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
"dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "jest-get-type": "^29.6.3"
},
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@ungap/structured-clone": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
- "dev": true
- },
- "node_modules/@wordpress/babel-preset-default": {
- "version": "8.4.0",
- "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.4.0.tgz",
- "integrity": "sha512-BIbHlZxXGG6gEDrTUJ3s7wU2mAPbHFCkc7QkeTD+7GMIixEzEPr7IBbrpHkcwLIRWqEvc9LB69YPrWklUKJZmg==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.16.0",
- "@babel/plugin-transform-react-jsx": "^7.16.0",
- "@babel/plugin-transform-runtime": "^7.16.0",
- "@babel/preset-env": "^7.16.0",
- "@babel/preset-typescript": "^7.16.0",
- "@babel/runtime": "^7.16.0",
- "@wordpress/browserslist-config": "^6.4.0",
- "@wordpress/warning": "^3.4.0",
- "browserslist": "^4.21.10",
- "core-js": "^3.31.0",
- "react": "^18.3.0"
+ "node_modules/@jest/fake-timers": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
+ "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
},
"engines": {
- "node": ">=18.12.0",
- "npm": ">=8.19.2"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@wordpress/browserslist-config": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.4.0.tgz",
- "integrity": "sha512-6Uvh++K+UCOSSlE589uHtxVWa7vJmcFjDYHT7/VsdrHkwpCRwJd0UAUrmTBqiekGYo3NQzZW/ikODxR+lkORjw==",
+ "node_modules/@jest/globals": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
+ "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/expect": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "jest-mock": "^29.7.0"
+ },
"engines": {
- "node": ">=18.12.0",
- "npm": ">=8.19.2"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@wordpress/eslint-plugin": {
- "version": "19.2.0",
- "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-19.2.0.tgz",
- "integrity": "sha512-2mRC7WRV9qwdcMsm+VSTjcYQbLcBag5UTUXrClsQPqDZ9aeoL8QloStFCKOqXuYRYN4tYytIgnM/blvEz7OlAw==",
+ "node_modules/@jest/reporters": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
+ "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/eslint-parser": "^7.16.0",
- "@typescript-eslint/eslint-plugin": "^6.4.1",
- "@typescript-eslint/parser": "^6.4.1",
- "@wordpress/babel-preset-default": "^8.2.0",
- "@wordpress/prettier-config": "^4.2.0",
- "cosmiconfig": "^7.0.0",
- "eslint-config-prettier": "^8.3.0",
- "eslint-plugin-import": "^2.25.2",
- "eslint-plugin-jest": "^27.2.3",
- "eslint-plugin-jsdoc": "^46.4.6",
- "eslint-plugin-jsx-a11y": "^6.5.1",
- "eslint-plugin-playwright": "^0.15.3",
- "eslint-plugin-prettier": "^5.0.0",
- "eslint-plugin-react": "^7.27.0",
- "eslint-plugin-react-hooks": "^4.3.0",
- "globals": "^13.12.0",
- "requireindex": "^1.2.0"
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^6.0.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.1",
+ "strip-ansi": "^6.0.0",
+ "v8-to-istanbul": "^9.0.1"
},
"engines": {
- "node": ">=18.12.0",
- "npm": ">=8.19.2"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
},
"peerDependencies": {
- "@babel/core": ">=7",
- "eslint": ">=8",
- "prettier": ">=3",
- "typescript": ">=4"
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
},
"peerDependenciesMeta": {
- "prettier": {
- "optional": true
- },
- "typescript": {
+ "node-notifier": {
"optional": true
}
}
},
- "node_modules/@wordpress/eslint-plugin/node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "node_modules/@jest/reporters/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,
+ "license": "MIT",
"dependencies": {
- "type-fest": "^0.20.2"
+ "color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@wordpress/prettier-config": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.4.0.tgz",
- "integrity": "sha512-etguLCGd8r0solW9pkUeBHGuqrsCGL+d2JzCB3APhDo3mYD+TK2PUg3EfXKOvJzHsQwHg73h0eW9/C5DU+ll+Q==",
+ "node_modules/@jest/reporters/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,
- "engines": {
- "node": ">=18.12.0",
- "npm": ">=8.19.2"
- },
- "peerDependencies": {
- "prettier": ">=3"
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "node_modules/@wordpress/warning": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.4.0.tgz",
- "integrity": "sha512-0LbBvyRLZVulwVcseH+WryDlnP//CFBwAq15+XzzoZc3s0ANlGsLPTlYamZ7eoyosGQZVKqG/yzP3DAlESj89w==",
+ "node_modules/@jest/reporters/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
"engines": {
- "node": ">=18.12.0",
- "npm": ">=8.19.2"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "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
- },
- "node_modules/acorn": {
- "version": "8.12.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
- "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
+ "node_modules/@jest/reporters/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,
- "bin": {
- "acorn": "bin/acorn"
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">=0.4.0"
+ "node": ">=7.0.0"
}
},
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "node_modules/@jest/reporters/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,
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
+ "license": "MIT"
},
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "node_modules/@jest/reporters/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
"dev": true,
+ "license": "ISC",
"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"
+ "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": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "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==",
+ "node_modules/@jest/reporters/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "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==",
+ "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
+ "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "color-convert": "^1.9.0"
+ "@babel/core": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@istanbuljs/schema": "^0.1.3",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^7.5.4"
},
"engines": {
- "node": ">=4"
+ "node": ">=10"
}
},
- "node_modules/are-docs-informative": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz",
- "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==",
+ "node_modules/@jest/reporters/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,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
"engines": {
- "node": ">=14"
+ "node": "*"
}
},
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "node_modules/aria-query": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz",
- "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
+ "node_modules/@jest/reporters/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
- "dependencies": {
- "deep-equal": "^2.0.5"
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/array-buffer-byte-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
- "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+ "node_modules/@jest/reporters/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,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.5",
- "is-array-buffer": "^3.0.4"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=8"
}
},
- "node_modules/array-each": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
- "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==",
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sinclair/typebox": "^0.27.8"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/array-includes": {
- "version": "3.1.8",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
- "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+ "node_modules/@jest/source-map": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
+ "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "is-string": "^1.0.7"
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/array-slice": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
- "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==",
+ "node_modules/@jest/test-result": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
+ "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/console": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "node_modules/@jest/test-sequencer": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
+ "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/test-result": "^29.7.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "slash": "^3.0.0"
+ },
"engines": {
- "node": ">=8"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/array.prototype.findlast": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
- "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
+ "node_modules/@jest/transform": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
+ "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-shim-unscopables": "^1.0.2"
+ "@babel/core": "^7.11.6",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^2.0.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^4.0.2"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/array.prototype.findlastindex": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
- "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
+ "node_modules/@jest/transform/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,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-shim-unscopables": "^1.0.2"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/array.prototype.flat": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
- "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "node_modules/@jest/transform/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/array.prototype.flatmap": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
- "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "node_modules/@jest/transform/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,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=7.0.0"
}
},
- "node_modules/array.prototype.tosorted": {
+ "node_modules/@jest/transform/node_modules/color-name": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
- "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.3",
- "es-errors": "^1.3.0",
- "es-shim-unscopables": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
+ "license": "MIT"
},
- "node_modules/arraybuffer.prototype.slice": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
- "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "node_modules/@jest/transform/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,
- "dependencies": {
- "array-buffer-byte-length": "^1.0.1",
- "call-bind": "^1.0.5",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.2.1",
- "get-intrinsic": "^1.2.3",
- "is-array-buffer": "^3.0.4",
- "is-shared-array-buffer": "^1.0.2"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=8"
}
},
- "node_modules/ast-types-flow": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
- "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==",
- "dev": true
- },
- "node_modules/async": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
- "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
- "dev": true
- },
- "node_modules/available-typed-arrays": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
- "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "node_modules/@jest/transform/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,
+ "license": "MIT",
"dependencies": {
- "possible-typed-array-names": "^1.0.0"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=8"
}
},
- "node_modules/axe-core": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz",
- "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==",
+ "node_modules/@jest/transform/node_modules/write-file-atomic": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
+ "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
"dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.7"
+ },
"engines": {
- "node": ">=4"
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
}
},
- "node_modules/axobject-query": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz",
- "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==",
+ "node_modules/@jest/types": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
+ "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "deep-equal": "^2.0.5"
+ "@jest/schemas": "^29.6.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/babel-plugin-polyfill-corejs2": {
- "version": "0.4.11",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz",
- "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==",
+ "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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.22.6",
- "@babel/helper-define-polyfill-provider": "^0.6.2",
- "semver": "^6.3.1"
+ "color-convert": "^2.0.1"
},
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.10.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz",
- "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==",
+ "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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.1",
- "core-js-compat": "^3.36.1"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz",
- "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==",
+ "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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.2"
+ "color-name": "~1.1.4"
},
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ "engines": {
+ "node": ">=7.0.0"
}
},
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "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==",
+ "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==",
"dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
+ "license": "MIT"
},
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "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==",
"dev": true,
- "dependencies": {
- "fill-range": "^7.1.1"
- },
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/browserslist": {
- "version": "4.23.2",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz",
- "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==",
+ "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==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
+ "license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001640",
- "electron-to-chromium": "^1.4.820",
- "node-releases": "^2.0.14",
- "update-browserslist-db": "^1.1.0"
- },
- "bin": {
- "browserslist": "cli.js"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/builtin-modules": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
- "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
- "node_modules/call-bind": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
"dev": true,
"dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=6.0.0"
}
},
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true,
"engines": {
- "node": ">=6"
+ "node": ">=6.0.0"
}
},
- "node_modules/caniuse-lite": {
- "version": "1.0.30001643",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz",
- "integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ]
- },
- "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==",
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
"engines": {
- "node": ">=4"
+ "node": ">=6.0.0"
}
},
- "node_modules/clean-css": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
- "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+ "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "source-map": "~0.6.0"
- },
- "engines": {
- "node": ">= 10.0"
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
}
},
- "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/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
"dev": true
},
- "node_modules/colors": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
- "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==",
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dev": true,
- "engines": {
- "node": ">=0.1.90"
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "node_modules/comment-parser": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
- "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
+ "node_modules/@leichtgewicht/ip-codec": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
+ "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
"dev": true,
- "engines": {
- "node": ">= 12.0.0"
- }
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
- },
- "node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
- "dev": true
+ "license": "MIT"
},
- "node_modules/core-js": {
- "version": "3.37.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz",
- "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==",
+ "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
+ "version": "5.1.1-v1",
+ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
+ "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
"dev": true,
- "hasInstallScript": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
+ "dependencies": {
+ "eslint-scope": "5.1.1"
}
},
- "node_modules/core-js-compat": {
- "version": "3.37.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz",
- "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==",
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dev": true,
"dependencies": {
- "browserslist": "^4.23.0"
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
+ "engines": {
+ "node": ">= 8"
}
},
- "node_modules/cosmiconfig": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
- "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"dev": true,
- "dependencies": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
- },
"engines": {
- "node": ">=10"
+ "node": ">= 8"
}
},
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dev": true,
"dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
},
"engines": {
"node": ">= 8"
}
},
- "node_modules/damerau-levenshtein": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
- "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
- "dev": true
+ "node_modules/@paulirish/trace_engine": {
+ "version": "0.0.32",
+ "resolved": "https://registry.npmjs.org/@paulirish/trace_engine/-/trace_engine-0.0.32.tgz",
+ "integrity": "sha512-KxWFdRNbv13U8bhYaQvH6gLG9CVEt2jKeosyOOYILVntWEVWhovbgDrbOiZ12pJO3vjZs0Zgbd3/Zgde98woEA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
- "node_modules/data-view-buffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
- "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "node_modules/@pkgr/core": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
+ "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.6",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
- },
"engines": {
- "node": ">= 0.4"
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://opencollective.com/unts"
}
},
- "node_modules/data-view-byte-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
- "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "node_modules/@playwright/test": {
+ "version": "1.49.1",
+ "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.49.1.tgz",
+ "integrity": "sha512-Ky+BVzPz8pL6PQxHqNRW1k3mIyv933LML7HktS8uik0bUXNCdPhoS/kLihiO1tMf/egaJb4IutXd7UywvXEW+g==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
+ "playwright": "1.49.1"
},
- "engines": {
- "node": ">= 0.4"
+ "bin": {
+ "playwright": "cli.js"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/data-view-byte-offset": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
- "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "node_modules/@pmmmwh/react-refresh-webpack-plugin": {
+ "version": "0.5.15",
+ "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz",
+ "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.6",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
+ "ansi-html": "^0.0.9",
+ "core-js-pure": "^3.23.3",
+ "error-stack-parser": "^2.0.6",
+ "html-entities": "^2.1.0",
+ "loader-utils": "^2.0.4",
+ "schema-utils": "^4.2.0",
+ "source-map": "^0.7.3"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">= 10.13"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "@types/webpack": "4.x || 5.x",
+ "react-refresh": ">=0.10.0 <1.0.0",
+ "sockjs-client": "^1.4.0",
+ "type-fest": ">=0.17.0 <5.0.0",
+ "webpack": ">=4.43.0 <6.0.0",
+ "webpack-dev-server": "3.x || 4.x || 5.x",
+ "webpack-hot-middleware": "2.x",
+ "webpack-plugin-serve": "0.x || 1.x"
+ },
+ "peerDependenciesMeta": {
+ "@types/webpack": {
+ "optional": true
+ },
+ "sockjs-client": {
+ "optional": true
+ },
+ "type-fest": {
+ "optional": true
+ },
+ "webpack-dev-server": {
+ "optional": true
+ },
+ "webpack-hot-middleware": {
+ "optional": true
+ },
+ "webpack-plugin-serve": {
+ "optional": true
+ }
}
},
- "node_modules/dateformat": {
- "version": "4.6.3",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
- "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==",
+ "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
- "node": "*"
+ "node": ">= 8"
}
},
- "node_modules/debug": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
- "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
+ "node_modules/@polka/url": {
+ "version": "1.0.0-next.25",
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz",
+ "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@puppeteer/browsers": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz",
+ "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "ms": "2.1.2"
+ "debug": "^4.4.0",
+ "extract-zip": "^2.0.1",
+ "progress": "^2.0.3",
+ "proxy-agent": "^6.5.0",
+ "semver": "^7.6.3",
+ "tar-fs": "^3.0.6",
+ "unbzip2-stream": "^1.4.3",
+ "yargs": "^17.7.2"
},
- "engines": {
- "node": ">=6.0"
+ "bin": {
+ "browsers": "lib/cjs/main-cli.js"
},
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/deep-equal": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz",
- "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==",
+ "node_modules/@puppeteer/browsers/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
- "dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "call-bind": "^1.0.5",
- "es-get-iterator": "^1.1.3",
- "get-intrinsic": "^1.2.2",
- "is-arguments": "^1.1.1",
- "is-array-buffer": "^3.0.2",
- "is-date-object": "^1.0.5",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
- "isarray": "^2.0.5",
- "object-is": "^1.1.5",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.1",
- "side-channel": "^1.0.4",
- "which-boxed-primitive": "^1.0.2",
- "which-collection": "^1.0.1",
- "which-typed-array": "^1.1.13"
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=10"
}
},
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
+ "node_modules/@rtsao/scc": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
+ "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "node_modules/@sentry-internal/tracing": {
+ "version": "7.120.1",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.120.1.tgz",
+ "integrity": "sha512-MwZlhQY27oM4V05m2Q46WB2F7jqFu8fewg14yRcjCuK3tdxvQoLsXOEPMZxLxpoXPTqPCm3Ig7mA4GwdlCL41w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
+ "@sentry/core": "7.120.1",
+ "@sentry/types": "7.120.1",
+ "@sentry/utils": "7.120.1"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=8"
}
},
- "node_modules/define-properties": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
- "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "node_modules/@sentry/core": {
+ "version": "7.120.1",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.120.1.tgz",
+ "integrity": "sha512-tXpJlf/8ngsSCpcRD+4DDvh4TqUbY0MlvE9Mpc/jO5GgYl/goAH2H1COw6W/UNfkr/l80P2jejS0HLPk0moi0A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "define-data-property": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
+ "@sentry/types": "7.120.1",
+ "@sentry/utils": "7.120.1"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=8"
}
},
- "node_modules/detect-file": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
- "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==",
+ "node_modules/@sentry/integrations": {
+ "version": "7.120.1",
+ "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.120.1.tgz",
+ "integrity": "sha512-dshhLZUN+pYpyZiS5QRYKaYSqvWYtmsbwmBlH4SCGOnN9sbY4nZn0h8njr+xKT8UFnPxoTlbZmkcrVY3qPVMfg==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sentry/core": "7.120.1",
+ "@sentry/types": "7.120.1",
+ "@sentry/utils": "7.120.1",
+ "localforage": "^1.8.1"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "node_modules/@sentry/node": {
+ "version": "7.120.1",
+ "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.120.1.tgz",
+ "integrity": "sha512-YF/TDUCtUOQeUMwL4vcUWGNv/8Qz9624xBnaL8nXW888xNBoSRr2vH/zMrmTup5zfmWAh9lVbp98BZFF6F0WJg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "path-type": "^4.0.0"
+ "@sentry-internal/tracing": "7.120.1",
+ "@sentry/core": "7.120.1",
+ "@sentry/integrations": "7.120.1",
+ "@sentry/types": "7.120.1",
+ "@sentry/utils": "7.120.1"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "node_modules/@sentry/types": {
+ "version": "7.120.1",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.120.1.tgz",
+ "integrity": "sha512-f/WT7YUH8SA2Jhez/hYz/dA351AJqr1Eht/URUdYsqMFecXr/blAcNKRVFccSsvQeTqWVV9HVQ9BXUSjPJOvFA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/utils": {
+ "version": "7.120.1",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.120.1.tgz",
+ "integrity": "sha512-4boeo5Y3zw3gFrWZmPHsYOIlTh//eBaGBgWL25FqLbLObO23gFE86G6O6knP1Gamm1DGX2IWH7w4MChYuBm6tA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "esutils": "^2.0.2"
+ "@sentry/types": "7.120.1"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=8"
}
},
- "node_modules/duplexer": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
- "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
- "dev": true
+ "node_modules/@sideway/address": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
+ "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
},
- "node_modules/electron-to-chromium": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.1.tgz",
- "integrity": "sha512-FKbOCOQ5QRB3VlIbl1LZQefWIYwszlBloaXcY2rbfpu9ioJnNh3TK03YtIDKDo3WKBi8u+YV4+Fn2CkEozgf4w==",
- "dev": true
+ "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==",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
- "node_modules/emoji-regex": {
+ "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==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@sindresorhus/merge-streams": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz",
+ "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+ "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "node_modules/@stylistic/stylelint-plugin": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.0.tgz",
+ "integrity": "sha512-NU2XR6i1x163KdyDj3zqblA13890fBzHNZYqZ13aor/sB3Yq8kU/0NKCudv5pfl9Kb/UAteo/D7vKMHtaror/A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.1",
+ "@csstools/css-tokenizer": "^3.0.1",
+ "@csstools/media-query-list-parser": "^3.0.1",
+ "is-plain-object": "^5.0.0",
+ "postcss-selector-parser": "^6.1.2",
+ "postcss-value-parser": "^4.2.0",
+ "style-search": "^0.1.0",
+ "stylelint": "^16.8.2"
+ },
+ "engines": {
+ "node": "^18.12 || >=20.9"
+ },
+ "peerDependencies": {
+ "stylelint": "^16.8.0"
+ }
+ },
+ "node_modules/@stylistic/stylelint-plugin/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz",
+ "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz",
+ "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz",
+ "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz",
+ "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz",
+ "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz",
+ "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz",
+ "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-transform-svg-component": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz",
+ "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-preset": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz",
+ "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@svgr/babel-plugin-add-jsx-attribute": "8.0.0",
+ "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0",
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0",
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0",
+ "@svgr/babel-plugin-svg-dynamic-title": "8.0.0",
+ "@svgr/babel-plugin-svg-em-dimensions": "8.0.0",
+ "@svgr/babel-plugin-transform-react-native-svg": "8.1.0",
+ "@svgr/babel-plugin-transform-svg-component": "8.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/core": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
+ "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@svgr/babel-preset": "8.1.0",
+ "camelcase": "^6.2.0",
+ "cosmiconfig": "^8.1.3",
+ "snake-case": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/@svgr/core/node_modules/cosmiconfig": {
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@svgr/hast-util-to-babel-ast": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz",
+ "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.21.3",
+ "entities": "^4.4.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/@svgr/plugin-jsx": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz",
+ "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@svgr/babel-preset": "8.1.0",
+ "@svgr/hast-util-to-babel-ast": "8.0.0",
+ "svg-parser": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@svgr/core": "*"
+ }
+ },
+ "node_modules/@svgr/plugin-svgo": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz",
+ "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cosmiconfig": "^8.1.3",
+ "deepmerge": "^4.3.1",
+ "svgo": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@svgr/core": "*"
+ }
+ },
+ "node_modules/@svgr/plugin-svgo/node_modules/cosmiconfig": {
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@svgr/webpack": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz",
+ "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@babel/plugin-transform-react-constant-elements": "^7.21.3",
+ "@babel/preset-env": "^7.20.2",
+ "@babel/preset-react": "^7.18.6",
+ "@babel/preset-typescript": "^7.21.0",
+ "@svgr/core": "8.1.0",
+ "@svgr/plugin-jsx": "8.1.0",
+ "@svgr/plugin-svgo": "8.1.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/@tootallnate/once": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
+ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tootallnate/quickjs-emscripten": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
+ "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@trysound/sax": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
+ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.6.8",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
+ "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.20.6",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz",
+ "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "node_modules/@types/body-parser": {
+ "version": "1.19.5",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/bonjour": {
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz",
+ "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/connect": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/connect-history-api-fallback": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
+ "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/express-serve-static-core": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/eslint": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz",
+ "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "node_modules/@types/eslint-scope": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+ "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/express": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
+ "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.33",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "node_modules/@types/express-serve-static-core": {
+ "version": "4.19.5",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz",
+ "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/graceful-fs": {
+ "version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
+ "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/http-errors": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/http-proxy": {
+ "version": "1.17.14",
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz",
+ "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/jsdom": {
+ "version": "20.0.1",
+ "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz",
+ "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/tough-cookie": "*",
+ "parse5": "^7.0.0"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true
+ },
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/mime": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/minimatch": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "22.10.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz",
+ "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.20.0"
+ }
+ },
+ "node_modules/@types/node-forge": {
+ "version": "1.3.11",
+ "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz",
+ "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/normalize-package-data": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/parse-json": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
+ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
+ "dev": true
+ },
+ "node_modules/@types/qs": {
+ "version": "6.9.15",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz",
+ "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/range-parser": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/semver": {
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+ "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
+ "dev": true
+ },
+ "node_modules/@types/send": {
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
+ "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/serve-index": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
+ "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/express": "*"
+ }
+ },
+ "node_modules/@types/serve-static": {
+ "version": "1.15.7",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/http-errors": "*",
+ "@types/node": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/sockjs": {
+ "version": "0.3.36",
+ "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
+ "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/source-list-map": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz",
+ "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/tapable": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz",
+ "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/tough-cookie": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
+ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/uglify-js": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz",
+ "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/@types/webpack": {
+ "version": "4.41.38",
+ "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.38.tgz",
+ "integrity": "sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/tapable": "^1",
+ "@types/uglify-js": "*",
+ "@types/webpack-sources": "*",
+ "anymatch": "^3.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/@types/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/source-list-map": "*",
+ "source-map": "^0.7.3"
+ }
+ },
+ "node_modules/@types/webpack-sources/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@types/ws": {
+ "version": "8.5.12",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz",
+ "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/yargs": {
+ "version": "17.0.32",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
+ "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/yauzl": {
+ "version": "2.10.3",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz",
+ "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz",
+ "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.5.1",
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/type-utils": "6.21.0",
+ "@typescript-eslint/utils": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.4",
+ "natural-compare": "^1.4.0",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
+ "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
+ "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz",
+ "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "@typescript-eslint/utils": "6.21.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
+ "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
+ "dev": true,
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
+ "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
+ "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.12",
+ "@types/semver": "^7.5.0",
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
+ "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.21.0",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
+ "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/helper-numbers": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
+ "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
+ "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
+ "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-numbers": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
+ "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/floating-point-hex-parser": "1.13.2",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
+ "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
+ "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/wasm-gen": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
+ "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
+ "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
+ "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
+ "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/helper-wasm-section": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-opt": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1",
+ "@webassemblyjs/wast-printer": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
+ "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
+ "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
+ "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
+ "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webpack-cli/configtest": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
+ "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
+ }
+ },
+ "node_modules/@webpack-cli/info": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
+ "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
+ }
+ },
+ "node_modules/@webpack-cli/serve": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
+ "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
+ },
+ "peerDependenciesMeta": {
+ "webpack-dev-server": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@wordpress/babel-preset-default": {
+ "version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.10.0.tgz",
+ "integrity": "sha512-r4Nziy4imbjAdp+t1uV+BFu6UXLhvGPoS+UdQVPwT8hUIJZxiRkGrw9+O/b1LNv971XdOtpZUDXiw4Heb0BGkQ==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/core": "7.25.7",
+ "@babel/plugin-transform-react-jsx": "7.25.7",
+ "@babel/plugin-transform-runtime": "7.25.7",
+ "@babel/preset-env": "7.25.7",
+ "@babel/preset-typescript": "7.25.7",
+ "@babel/runtime": "7.25.7",
+ "@wordpress/browserslist-config": "^6.10.0",
+ "@wordpress/warning": "^3.10.0",
+ "browserslist": "^4.21.10",
+ "core-js": "^3.31.0",
+ "react": "^18.3.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/base-styles": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-5.10.0.tgz",
+ "integrity": "sha512-khjVExyzDUhm1BvW5LS6Whg0QXrCJcV7PNoT+pZDYTB/7MJm+Sm2FpveFlCLwmVkXADvN8+h2/F+Enu4shG0Ew==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/browserslist-config": {
+ "version": "6.10.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.10.0.tgz",
+ "integrity": "sha512-X5BG4xWvr1Qq9S2x5ERCF7V4bpa24zbj8cWYbIJaGiCfi6vp6dFI1SbvuZPXfKyThyytTVYBvEIr6CSm6G8fuQ==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/dependency-extraction-webpack-plugin": {
+ "version": "6.10.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.10.0.tgz",
+ "integrity": "sha512-BzHYc8QNzLLWwHli+ZOxWamywrWcvEn0czrw3fD04TuQ4G/YivbajMwSTtOeuvaX8fU9UkIsxSmJxqakY3JgqA==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "json2php": "^0.0.7"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "webpack": "^5.0.0"
+ }
+ },
+ "node_modules/@wordpress/e2e-test-utils-playwright": {
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.14.0.tgz",
+ "integrity": "sha512-G9r3ZysgzAmUbR4bjGAEEP6P2RCIAG8uMU7yyzxOAHegINSbF3shEZKvVNBeKxNwHKAVa9koh/niGN3U4Kr6Rw==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "change-case": "^4.1.2",
+ "form-data": "^4.0.0",
+ "get-port": "^5.1.1",
+ "lighthouse": "^12.2.2",
+ "mime": "^3.0.0",
+ "web-vitals": "^4.2.1"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "@playwright/test": ">=1"
+ }
+ },
+ "node_modules/@wordpress/eslint-plugin": {
+ "version": "22.0.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-22.0.0.tgz",
+ "integrity": "sha512-Hh1sO9UV0IYI7D+F6EQnhvs2HAv4H0iBVZikXZKcPmQudlwgV2OWdNprdSe8IoRmpMqmhQ+gkaj9Gwk6NReGHQ==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/eslint-parser": "7.25.7",
+ "@typescript-eslint/eslint-plugin": "^6.4.1",
+ "@typescript-eslint/parser": "^6.4.1",
+ "@wordpress/babel-preset-default": "*",
+ "@wordpress/prettier-config": "*",
+ "cosmiconfig": "^7.0.0",
+ "eslint-config-prettier": "^8.3.0",
+ "eslint-plugin-import": "^2.25.2",
+ "eslint-plugin-jest": "^27.4.3",
+ "eslint-plugin-jsdoc": "^46.4.6",
+ "eslint-plugin-jsx-a11y": "^6.5.1",
+ "eslint-plugin-playwright": "^0.15.3",
+ "eslint-plugin-prettier": "^5.0.0",
+ "eslint-plugin-react": "^7.27.0",
+ "eslint-plugin-react-hooks": "^4.3.0",
+ "globals": "^13.12.0",
+ "requireindex": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "@babel/core": ">=7",
+ "eslint": ">=8",
+ "prettier": ">=3",
+ "typescript": ">=5"
+ },
+ "peerDependenciesMeta": {
+ "prettier": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-react-hooks": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
+ "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
+ }
+ },
+ "node_modules/@wordpress/eslint-plugin/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@wordpress/jest-console": {
+ "version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.10.0.tgz",
+ "integrity": "sha512-ildDLCbMIYslAwJa2ESWwS4GSKYsGLIbHlIi3rHdaHmAxoQZvlSTaXCwnUgbCQuNMqgUInT2oDYJLKNiJfv5Fw==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/runtime": "7.25.7",
+ "jest-matcher-utils": "^29.6.2"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "jest": ">=29"
+ }
+ },
+ "node_modules/@wordpress/jest-preset-default": {
+ "version": "12.10.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.10.0.tgz",
+ "integrity": "sha512-coVcPloIg8dmwGT7xGd1b2vp5jdNSrbuC8ihv9AfRWfExyoMA1KFdl0TOS5EtP5R1XduoeDeRhuV20JxAH08xw==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@wordpress/jest-console": "^8.10.0",
+ "babel-jest": "29.7.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "@babel/core": ">=7",
+ "jest": ">=29"
+ }
+ },
+ "node_modules/@wordpress/npm-package-json-lint-config": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.10.0.tgz",
+ "integrity": "sha512-LYwEmsKAQXCm46x63xMJF/Q8T/4BohjVoDxtb+i23CfuH7QT7R7t1ZbQipA757dQwJBFrVuL3RrHCfZPw8JnXg==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "npm-package-json-lint": ">=6.0.0"
+ }
+ },
+ "node_modules/@wordpress/postcss-plugins-preset": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.10.0.tgz",
+ "integrity": "sha512-BOkr388PenTYDjnFIQmGvKTzf92gxFt+1A8vJPY1gBOIKgK+tc/emcswU5R2skq068jXyacM7/mGfDtPCw0ZiQ==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@wordpress/base-styles": "^5.10.0",
+ "autoprefixer": "^10.2.5"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
+ "node_modules/@wordpress/prettier-config": {
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.10.0.tgz",
+ "integrity": "sha512-zT06uXepAWoXiBY8t1M5dz+DcyZ00Sm005YTJvjrLeMRLCEX9lZuZtqA/rYZsABzT90KJvdDTNP+2FsoZSOQcQ==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "prettier": ">=3"
+ }
+ },
+ "node_modules/@wordpress/scripts": {
+ "version": "30.7.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-30.7.0.tgz",
+ "integrity": "sha512-vwrf6Xo1GXV2ug4xdYMgZ2CVpNNfArOEJyX6w9CafIRmLOm8GkVGSza0VlEoOh1BTqQPv/awq6uiOKVMbVNB5Q==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/core": "7.25.7",
+ "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
+ "@svgr/webpack": "^8.0.1",
+ "@wordpress/babel-preset-default": "*",
+ "@wordpress/browserslist-config": "*",
+ "@wordpress/dependency-extraction-webpack-plugin": "*",
+ "@wordpress/e2e-test-utils-playwright": "*",
+ "@wordpress/eslint-plugin": "*",
+ "@wordpress/jest-preset-default": "*",
+ "@wordpress/npm-package-json-lint-config": "*",
+ "@wordpress/postcss-plugins-preset": "*",
+ "@wordpress/prettier-config": "*",
+ "@wordpress/stylelint-config": "*",
+ "adm-zip": "^0.5.9",
+ "babel-jest": "29.7.0",
+ "babel-loader": "9.2.1",
+ "browserslist": "^4.21.10",
+ "chalk": "^4.0.0",
+ "check-node-version": "^4.1.0",
+ "clean-webpack-plugin": "^3.0.0",
+ "copy-webpack-plugin": "^10.2.0",
+ "cross-spawn": "^7.0.6",
+ "css-loader": "^6.2.0",
+ "cssnano": "^6.0.1",
+ "cwd": "^0.10.0",
+ "dir-glob": "^3.0.1",
+ "eslint": "^8.3.0",
+ "expect-puppeteer": "^4.4.0",
+ "fast-glob": "^3.2.7",
+ "filenamify": "^4.2.0",
+ "jest": "^29.6.2",
+ "jest-dev-server": "^10.1.4",
+ "jest-environment-jsdom": "^29.6.2",
+ "jest-environment-node": "^29.6.2",
+ "json2php": "^0.0.9",
+ "markdownlint-cli": "^0.31.1",
+ "merge-deep": "^3.0.3",
+ "mini-css-extract-plugin": "^2.9.2",
+ "minimist": "^1.2.0",
+ "npm-package-json-lint": "^6.4.0",
+ "npm-packlist": "^3.0.0",
+ "postcss": "^8.4.5",
+ "postcss-loader": "^6.2.1",
+ "prettier": "npm:wp-prettier@3.0.3",
+ "puppeteer-core": "^23.10.1",
+ "react-refresh": "^0.14.0",
+ "read-pkg-up": "^7.0.1",
+ "resolve-bin": "^0.4.0",
+ "rtlcss-webpack-plugin": "^4.0.7",
+ "sass": "^1.50.1",
+ "sass-loader": "^16.0.3",
+ "schema-utils": "^4.2.0",
+ "source-map-loader": "^3.0.0",
+ "stylelint": "^16.8.2",
+ "terser-webpack-plugin": "^5.3.10",
+ "url-loader": "^4.1.1",
+ "webpack": "^5.97.0",
+ "webpack-bundle-analyzer": "^4.9.1",
+ "webpack-cli": "^5.1.4",
+ "webpack-dev-server": "^4.15.1"
+ },
+ "bin": {
+ "wp-scripts": "bin/wp-scripts.js"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "@playwright/test": "^1.48.1",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@wordpress/scripts/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/array-union": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz",
+ "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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/@wordpress/scripts/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/@wordpress/scripts/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,
+ "license": "MIT"
+ },
+ "node_modules/@wordpress/scripts/node_modules/copy-webpack-plugin": {
+ "version": "10.2.4",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz",
+ "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-glob": "^3.2.7",
+ "glob-parent": "^6.0.1",
+ "globby": "^12.0.2",
+ "normalize-path": "^3.0.0",
+ "schema-utils": "^4.0.0",
+ "serialize-javascript": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 12.20.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/globby": {
+ "version": "12.2.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz",
+ "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-union": "^3.0.1",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.7",
+ "ignore": "^5.1.9",
+ "merge2": "^1.4.1",
+ "slash": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@wordpress/scripts/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/json2php": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.9.tgz",
+ "integrity": "sha512-fQMYwvPsQt8hxRnCGyg1r2JVi6yL8Um0DIIawiKiMK9yhAAkcRNj5UsBWoaFvFzPpcWbgw9L6wzj+UMYA702Mw==",
+ "dev": true,
+ "license": "BSD"
+ },
+ "node_modules/@wordpress/scripts/node_modules/prettier": {
+ "name": "wp-prettier",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-3.0.3.tgz",
+ "integrity": "sha512-X4UlrxDTH8oom9qXlcjnydsjAOD2BmB6yFmvS4Z2zdTzqqpRWb+fbqrH412+l+OUXmbzJlSXjlMFYPgYG12IAA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "prettier": "bin/prettier.cjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/slash": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
+ "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@wordpress/scripts/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wordpress/stylelint-config": {
+ "version": "23.2.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.2.0.tgz",
+ "integrity": "sha512-UXFZC308qrhUw+30jSb4tc+tHVauiS1IxzJKXRkXeWZ02oGoQHBlOQWWCapR/rI8ZK5+rl4C33RLSCIITauB0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@stylistic/stylelint-plugin": "^3.0.1",
+ "stylelint-config-recommended": "^14.0.1",
+ "stylelint-config-recommended-scss": "^14.1.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "stylelint": "^16.8.2"
+ }
+ },
+ "node_modules/@wordpress/warning": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.10.0.tgz",
+ "integrity": "sha512-IhvIBhhzsNYuLT61ZtKWm7oMg4G0x//eQD8dlnsBA4edP8BiX1VzwA3wCtz9+QdEFzraPJAq9NG4RPxGQas4Nw==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "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,
+ "license": "BSD-3-Clause"
+ },
+ "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,
+ "license": "Apache-2.0"
+ },
+ "node_modules/abab": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
+ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
+ "deprecated": "Use your platform's native atob() and btoa() methods instead",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.14.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
+ "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-globals": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz",
+ "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.1.0",
+ "acorn-walk": "^8.0.2"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.3.3",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz",
+ "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.11.0"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/adm-zip": {
+ "version": "0.5.14",
+ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz",
+ "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "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/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,
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": ">=5.0.0"
+ }
+ },
+ "node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ajv-formats/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ajv-formats/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-escapes/node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-html": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz",
+ "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==",
+ "dev": true,
+ "engines": [
+ "node >= 0.8.0"
+ ],
+ "license": "Apache-2.0",
+ "bin": {
+ "ansi-html": "bin/ansi-html"
+ }
+ },
+ "node_modules/ansi-html-community": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
+ "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==",
+ "dev": true,
+ "engines": [
+ "node >= 0.8.0"
+ ],
+ "license": "Apache-2.0",
+ "bin": {
+ "ansi-html": "bin/ansi-html"
+ }
+ },
+ "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/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/are-docs-informative": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz",
+ "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/aria-query": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
+ "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "is-array-buffer": "^3.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/array-includes": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array.prototype.findlast": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.findlastindex": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
+ "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.tosorted": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
+ "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.2.1",
+ "get-intrinsic": "^1.2.3",
+ "is-array-buffer": "^3.0.4",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ast-types": {
+ "version": "0.13.4",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
+ "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ast-types-flow": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
+ "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/autoprefixer": {
+ "version": "10.4.19",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz",
+ "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.0",
+ "caniuse-lite": "^1.0.30001599",
+ "fraction.js": "^4.3.7",
+ "normalize-range": "^0.1.2",
+ "picocolors": "^1.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "dev": true,
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/axe-core": {
+ "version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz",
+ "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==",
+ "dev": true,
+ "license": "MPL-2.0",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/axios": {
+ "version": "1.7.9",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz",
+ "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/axobject-query": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
+ "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/b4a": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz",
+ "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/babel-jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
+ "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/transform": "^29.7.0",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^29.6.3",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.8.0"
+ }
+ },
+ "node_modules/babel-jest/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/babel-jest/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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/babel-jest/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/babel-jest/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,
+ "license": "MIT"
+ },
+ "node_modules/babel-jest/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-jest/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-loader": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz",
+ "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-cache-dir": "^4.0.0",
+ "schema-utils": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 14.15.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0",
+ "webpack": ">=5"
+ }
+ },
+ "node_modules/babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-plugin-jest-hoist": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
+ "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__core": "^7.1.14",
+ "@types/babel__traverse": "^7.0.6"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2": {
+ "version": "0.4.11",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz",
+ "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.22.6",
+ "@babel/helper-define-polyfill-provider": "^0.6.2",
+ "semver": "^6.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.10.6",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz",
+ "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.2",
+ "core-js-compat": "^3.38.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz",
+ "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-preset-current-node-syntax": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
+ "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-import-meta": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-top-level-await": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/babel-preset-jest": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
+ "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "babel-plugin-jest-hoist": "^29.6.3",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/babel-runtime": {
+ "version": "6.25.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz",
+ "integrity": "sha512-zeCYxDePWYAT/DfmQWIHsMSFW2vv45UIwIAMjGvQVsTd47RwsiRH0uK1yzyWZ7LDBKdhnGDPM6NYEO5CZyhPrg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.10.0"
+ }
+ },
+ "node_modules/babel-runtime/node_modules/core-js": {
+ "version": "2.6.12",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
+ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
+ "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,
+ "hasInstallScript": true,
+ "license": "MIT"
+ },
+ "node_modules/babel-runtime/node_modules/regenerator-runtime": {
+ "version": "0.10.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
+ "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/bare-events": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz",
+ "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true
+ },
+ "node_modules/bare-fs": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz",
+ "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "bare-events": "^2.0.0",
+ "bare-path": "^2.0.0",
+ "bare-stream": "^2.0.0"
+ }
+ },
+ "node_modules/bare-os": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz",
+ "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true
+ },
+ "node_modules/bare-path": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz",
+ "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "bare-os": "^2.1.0"
+ }
+ },
+ "node_modules/bare-stream": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.3.0.tgz",
+ "integrity": "sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "b4a": "^1.6.6",
+ "streamx": "^2.20.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==",
+ "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"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/basic-ftp": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz",
+ "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.3",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
+ "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "dev": true,
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.5",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.13.0",
+ "raw-body": "2.5.2",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/body-parser/node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/body-parser/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/body-parser/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/body-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
+ },
+ "node_modules/bonjour-service": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz",
+ "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "multicast-dns": "^7.2.5"
+ }
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "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/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz",
+ "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001663",
+ "electron-to-chromium": "^1.5.28",
+ "node-releases": "^2.0.18",
+ "update-browserslist-db": "^1.1.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "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"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/builtin-modules": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "dev": true,
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/camelcase-keys": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+ "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/camelcase-keys/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-lite": "^1.0.0",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001669",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz",
+ "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/capital-case": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz",
+ "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3",
+ "upper-case-first": "^2.0.2"
+ }
+ },
+ "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,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/change-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz",
+ "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "camel-case": "^4.1.2",
+ "capital-case": "^1.0.4",
+ "constant-case": "^3.0.4",
+ "dot-case": "^3.0.4",
+ "header-case": "^2.0.4",
+ "no-case": "^3.0.4",
+ "param-case": "^3.0.4",
+ "pascal-case": "^3.1.2",
+ "path-case": "^3.0.4",
+ "sentence-case": "^3.0.4",
+ "snake-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/check-node-version": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/check-node-version/-/check-node-version-4.2.1.tgz",
+ "integrity": "sha512-YYmFYHV/X7kSJhuN/QYHUu998n/TRuDe8UenM3+m5NrkiH670lb9ILqHIvBencvJc4SDh+XcbXMR4b+TtubJiw==",
+ "dev": true,
+ "license": "Unlicense",
+ "dependencies": {
+ "chalk": "^3.0.0",
+ "map-values": "^1.0.1",
+ "minimist": "^1.2.0",
+ "object-filter": "^1.0.2",
+ "run-parallel": "^1.1.4",
+ "semver": "^6.3.0"
+ },
+ "bin": {
+ "check-node-version": "bin.js"
+ },
+ "engines": {
+ "node": ">=8.3.0"
+ }
+ },
+ "node_modules/check-node-version/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/check-node-version/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,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/check-node-version/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/check-node-version/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,
+ "license": "MIT"
+ },
+ "node_modules/check-node-version/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/check-node-version/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chokidar/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/chrome-launcher": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-1.1.2.tgz",
+ "integrity": "sha512-YclTJey34KUm5jB1aEJCq807bSievi7Nb/TU4Gu504fUYi3jw3KCIaH6L7nFWQhdEgH3V+wCh+kKD1P5cXnfxw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/node": "*",
+ "escape-string-regexp": "^4.0.0",
+ "is-wsl": "^2.2.0",
+ "lighthouse-logger": "^2.0.1"
+ },
+ "bin": {
+ "print-chrome-path": "bin/print-chrome-path.js"
+ },
+ "engines": {
+ "node": ">=12.13.0"
+ }
+ },
+ "node_modules/chrome-launcher/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
+ "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/chromium-bidi": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.8.0.tgz",
+ "integrity": "sha512-uJydbGdTw0DEUjhoogGveneJVWX/9YuqkWePzMmkBYwtdAqo5d3J/ovNKFr+/2hWXYmYCr6it8mSSTIj6SS6Ug==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "mitt": "3.0.1",
+ "urlpattern-polyfill": "10.0.0",
+ "zod": "3.23.8"
+ },
+ "peerDependencies": {
+ "devtools-protocol": "*"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cjs-module-lexer": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz",
+ "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/clean-webpack-plugin": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz",
+ "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/webpack": "^4.4.31",
+ "del": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.9.0"
+ },
+ "peerDependencies": {
+ "webpack": "*"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/clone-deep": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz",
+ "integrity": "sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "for-own": "^0.1.3",
+ "is-plain-object": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "lazy-cache": "^1.0.3",
+ "shallow-clone": "^0.1.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/clone-deep/node_modules/for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "for-in": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/clone-deep/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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/collect-v8-coverage": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
+ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/colord": {
+ "version": "2.9.3",
+ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
+ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/colorette": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/commander": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/comment-parser": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
+ "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 12.0.0"
+ }
+ },
+ "node_modules/common-path-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
+ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/compressible": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "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/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/compression/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/compression/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,
+ "license": "MIT"
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "node_modules/configstore": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
+ "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^3.0.0",
+ "unique-string": "^2.0.0",
+ "write-file-atomic": "^3.0.0",
+ "xdg-basedir": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/connect-history-api-fallback": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
+ "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/constant-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz",
+ "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3",
+ "upper-case": "^2.0.2"
+ }
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true
+ },
+ "node_modules/cookie": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/copy-webpack-plugin": {
+ "version": "12.0.2",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz",
+ "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-glob": "^3.3.2",
+ "glob-parent": "^6.0.1",
+ "globby": "^14.0.0",
+ "normalize-path": "^3.0.0",
+ "schema-utils": "^4.2.0",
+ "serialize-javascript": "^6.0.2"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/globby": {
+ "version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz",
+ "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sindresorhus/merge-streams": "^2.1.0",
+ "fast-glob": "^3.3.2",
+ "ignore": "^5.2.4",
+ "path-type": "^5.0.0",
+ "slash": "^5.1.0",
+ "unicorn-magic": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/path-type": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz",
+ "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/slash": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
+ "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/core-js": {
+ "version": "3.37.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz",
+ "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.38.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz",
+ "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.3"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-pure": {
+ "version": "3.37.1",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.37.1.tgz",
+ "integrity": "sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cosmiconfig": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "dev": true,
+ "dependencies": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/create-jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
+ "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-config": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "prompts": "^2.0.1"
+ },
+ "bin": {
+ "create-jest": "bin/create-jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/create-jest/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/create-jest/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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/create-jest/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/create-jest/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,
+ "license": "MIT"
+ },
+ "node_modules/create-jest/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/create-jest/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/crypto-random-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
+ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/csp_evaluator": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.1.tgz",
+ "integrity": "sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/css-declaration-sorter": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz",
+ "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14 || ^16 || >=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.9"
+ }
+ },
+ "node_modules/css-functions-list": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz",
+ "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12 || >=16"
+ }
+ },
+ "node_modules/css-loader": {
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz",
+ "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "icss-utils": "^5.1.0",
+ "postcss": "^8.4.33",
+ "postcss-modules-extract-imports": "^3.1.0",
+ "postcss-modules-local-by-default": "^4.0.5",
+ "postcss-modules-scope": "^3.2.0",
+ "postcss-modules-values": "^4.0.0",
+ "postcss-value-parser": "^4.2.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "@rspack/core": "0.x || 1.x",
+ "webpack": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@rspack/core": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/css-loader/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/css-select": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+ "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-tree": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.0.30",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssnano": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz",
+ "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-preset-default": "^6.1.2",
+ "lilconfig": "^3.1.1"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/cssnano"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/cssnano-preset-default": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz",
+ "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.0",
+ "css-declaration-sorter": "^7.2.0",
+ "cssnano-utils": "^4.0.2",
+ "postcss-calc": "^9.0.1",
+ "postcss-colormin": "^6.1.0",
+ "postcss-convert-values": "^6.1.0",
+ "postcss-discard-comments": "^6.0.2",
+ "postcss-discard-duplicates": "^6.0.3",
+ "postcss-discard-empty": "^6.0.3",
+ "postcss-discard-overridden": "^6.0.2",
+ "postcss-merge-longhand": "^6.0.5",
+ "postcss-merge-rules": "^6.1.1",
+ "postcss-minify-font-values": "^6.1.0",
+ "postcss-minify-gradients": "^6.0.3",
+ "postcss-minify-params": "^6.1.0",
+ "postcss-minify-selectors": "^6.0.4",
+ "postcss-normalize-charset": "^6.0.2",
+ "postcss-normalize-display-values": "^6.0.2",
+ "postcss-normalize-positions": "^6.0.2",
+ "postcss-normalize-repeat-style": "^6.0.2",
+ "postcss-normalize-string": "^6.0.2",
+ "postcss-normalize-timing-functions": "^6.0.2",
+ "postcss-normalize-unicode": "^6.1.0",
+ "postcss-normalize-url": "^6.0.2",
+ "postcss-normalize-whitespace": "^6.0.2",
+ "postcss-ordered-values": "^6.0.2",
+ "postcss-reduce-initial": "^6.1.0",
+ "postcss-reduce-transforms": "^6.0.2",
+ "postcss-svgo": "^6.0.3",
+ "postcss-unique-selectors": "^6.0.4"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/cssnano-utils": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz",
+ "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/csso": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz",
+ "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "css-tree": "~2.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/css-tree": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz",
+ "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.0.28",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/mdn-data": {
+ "version": "2.0.28",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz",
+ "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/cssom": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
+ "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cssstyle": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
+ "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssom": "~0.3.6"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cssstyle/node_modules/cssom": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cwd": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz",
+ "integrity": "sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-pkg": "^0.1.2",
+ "fs-exists-sync": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/damerau-levenshtein": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
+ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/data-uri-to-buffer": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz",
+ "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/data-urls": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
+ "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "abab": "^2.0.6",
+ "whatwg-mimetype": "^3.0.0",
+ "whatwg-url": "^11.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/data-urls/node_modules/tr46": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
+ "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/data-urls/node_modules/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/data-urls/node_modules/whatwg-url": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
+ "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "^3.0.0",
+ "webidl-conversions": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/data-view-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/debounce": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
+ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/debug": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/debug/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,
+ "license": "MIT"
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decamelize-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decamelize-keys/node_modules/map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decimal.js": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/dedent": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz",
+ "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "babel-plugin-macros": "^3.1.0"
+ },
+ "peerDependenciesMeta": {
+ "babel-plugin-macros": {
+ "optional": true
+ }
+ }
+ },
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
+ "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "execa": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dev": true,
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dev": true,
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/degenerator": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz",
+ "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ast-types": "^0.13.4",
+ "escodegen": "^2.1.0",
+ "esprima": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/del": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
+ "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/glob": "^7.1.1",
+ "globby": "^6.1.0",
+ "is-path-cwd": "^2.0.0",
+ "is-path-in-cwd": "^2.0.0",
+ "p-map": "^2.0.0",
+ "pify": "^4.0.1",
+ "rimraf": "^2.6.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/del/node_modules/array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/del/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,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/del/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": 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/del/node_modules/globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-union": "^1.0.1",
+ "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/del/node_modules/globby/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/del/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,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/del/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/detect-node": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
+ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/devtools-protocol": {
+ "version": "0.0.1312386",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1312386.tgz",
+ "integrity": "sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/diff-sequences": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dns-packet": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
+ "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@leichtgewicht/ip-codec": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/domexception": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
+ "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
+ "deprecated": "Use your platform's native DOMException instead",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "webidl-conversions": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/domexception/node_modules/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
+ "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dot-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
+ "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-obj": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/duplexer": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.39",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.39.tgz",
+ "integrity": "sha512-4xkpSR6CjuiaNyvwiWDI85N9AxsvbPawB8xc7yzLPonYTuP19BVgYweKyUMFtHEZgIcHWMt1ks5Cqx2m+6/Grg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/emittery": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
+ }
+ },
+ "node_modules/emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "5.17.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
+ "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/enquirer": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-colors": "^4.1.1",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/envinfo": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz",
+ "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "envinfo": "dist/cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "stackframe": "^1.3.4"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.23.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "data-view-buffer": "^1.0.1",
+ "data-view-byte-length": "^1.0.1",
+ "data-view-byte-offset": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.0.3",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.2",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
+ "is-callable": "^1.2.7",
+ "is-data-view": "^1.0.1",
+ "is-negative-zero": "^2.0.3",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.3",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.13",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.2",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.trim": "^1.2.9",
+ "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimstart": "^1.0.8",
+ "typed-array-buffer": "^1.0.2",
+ "typed-array-byte-length": "^1.0.1",
+ "typed-array-byte-offset": "^1.0.2",
+ "typed-array-length": "^1.0.6",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.15"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-iterator-helpers": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz",
+ "integrity": "sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.3",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.4",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "iterator.prototype": "^1.1.3",
+ "safe-array-concat": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
+ "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "dev": true,
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "dev": true,
+ "dependencies": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/escodegen": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
+ "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.1",
+ "@humanwhocodes/config-array": "^0.13.0",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-prettier": {
+ "version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz",
+ "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==",
+ "dev": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ }
+ },
+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-module-utils": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
+ "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^3.2.7"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-module-utils/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-import": {
+ "version": "2.31.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
+ "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rtsao/scc": "^1.1.0",
+ "array-includes": "^3.1.8",
+ "array.prototype.findlastindex": "^1.2.5",
+ "array.prototype.flat": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.2",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "eslint-module-utils": "^2.12.0",
+ "hasown": "^2.0.2",
+ "is-core-module": "^2.15.1",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.8",
+ "object.groupby": "^1.0.3",
+ "object.values": "^1.2.0",
+ "semver": "^6.3.1",
+ "string.prototype.trimend": "^1.0.8",
+ "tsconfig-paths": "^3.15.0"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
+ }
+ },
+ "node_modules/eslint-plugin-import/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,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-import/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,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/eslint-plugin-jest": {
+ "version": "27.9.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz",
+ "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/utils": "^5.10.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0",
+ "eslint": "^7.0.0 || ^8.0.0",
+ "jest": "*"
+ },
+ "peerDependenciesMeta": {
+ "@typescript-eslint/eslint-plugin": {
+ "optional": true
+ },
+ "jest": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+ "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/types": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+ "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+ "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+ "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/typescript-estree": "5.62.0",
+ "eslint-scope": "^5.1.1",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
+ "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "5.62.0",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/eslint-plugin-jest/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-plugin-jest/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-plugin-jsdoc": {
+ "version": "46.10.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.10.1.tgz",
+ "integrity": "sha512-x8wxIpv00Y50NyweDUpa+58ffgSAI5sqe+zcZh33xphD0AVh+1kqr1ombaTRb7Fhpove1zfUuujlX9DWWBP5ag==",
+ "dev": true,
+ "dependencies": {
+ "@es-joy/jsdoccomment": "~0.41.0",
+ "are-docs-informative": "^0.0.2",
+ "comment-parser": "1.4.1",
+ "debug": "^4.3.4",
+ "escape-string-regexp": "^4.0.0",
+ "esquery": "^1.5.0",
+ "is-builtin-module": "^3.2.1",
+ "semver": "^7.5.4",
+ "spdx-expression-parse": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-plugin-jsdoc/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-plugin-jsx-a11y": {
+ "version": "6.10.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.1.tgz",
+ "integrity": "sha512-zHByM9WTUMnfsDTafGXRiqxp6lFtNoSOWBY6FonVRn3A+BUwN1L/tdBXT40BcBJi0cZjOGTXZ0eD/rTG9fEJ0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "aria-query": "^5.3.2",
+ "array-includes": "^3.1.8",
+ "array.prototype.flatmap": "^1.3.2",
+ "ast-types-flow": "^0.0.8",
+ "axe-core": "^4.10.0",
+ "axobject-query": "^4.1.0",
+ "damerau-levenshtein": "^1.0.8",
+ "emoji-regex": "^9.2.2",
+ "es-iterator-helpers": "^1.1.0",
+ "hasown": "^2.0.2",
+ "jsx-ast-utils": "^3.3.5",
+ "language-tags": "^1.0.9",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.8",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.includes": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9"
+ }
+ },
+ "node_modules/eslint-plugin-jsx-a11y/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,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint-plugin-jsx-a11y/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,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/eslint-plugin-playwright": {
+ "version": "0.15.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-0.15.3.tgz",
+ "integrity": "sha512-LQMW5y0DLK5Fnpya7JR1oAYL2/7Y9wDiYw6VZqlKqcRGSgjbVKNqxraphk7ra1U3Bb5EK444xMgUlQPbMg2M1g==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "eslint": ">=7",
+ "eslint-plugin-jest": ">=25"
+ },
+ "peerDependenciesMeta": {
+ "eslint-plugin-jest": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-prettier": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz",
+ "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==",
+ "dev": true,
+ "dependencies": {
+ "prettier-linter-helpers": "^1.0.0",
+ "synckit": "^0.9.1"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint-plugin-prettier"
+ },
+ "peerDependencies": {
+ "@types/eslint": ">=8.0.0",
+ "eslint": ">=8.0.0",
+ "eslint-config-prettier": "*",
+ "prettier": ">=3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/eslint": {
+ "optional": true
+ },
+ "eslint-config-prettier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-react": {
+ "version": "7.35.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz",
+ "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.8",
+ "array.prototype.findlast": "^1.2.5",
+ "array.prototype.flatmap": "^1.3.2",
+ "array.prototype.tosorted": "^1.1.4",
+ "doctrine": "^2.1.0",
+ "es-iterator-helpers": "^1.0.19",
+ "estraverse": "^5.3.0",
+ "hasown": "^2.0.2",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.8",
+ "object.fromentries": "^2.0.8",
+ "object.values": "^1.2.0",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.5",
+ "semver": "^6.3.1",
+ "string.prototype.matchall": "^4.0.11",
+ "string.prototype.repeat": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
+ }
+ },
+ "node_modules/eslint-plugin-react-hooks": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz",
+ "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-react/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,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint-plugin-react/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/eslint-plugin-react/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/eslint-plugin-react/node_modules/resolve": {
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-scope/node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/eslint/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,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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/eslint/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint/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,
+ "license": "MIT"
+ },
+ "node_modules/eslint/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/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,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/eslint/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/espree/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "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/esquery": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/execa/node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/expect": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/expect-utils": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/expect-puppeteer": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/expect-puppeteer/-/expect-puppeteer-4.4.0.tgz",
+ "integrity": "sha512-6Ey4Xy2xvmuQu7z7YQtMsaMV0EHJRpVxIDOd5GRrm04/I3nkTKIutELfECsLp6le+b3SSa3cXhPiw6PgqzxYWA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/express": {
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
+ "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+ "dev": true,
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.3",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.7.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.3.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.3",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.12",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.13.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.19.0",
+ "serve-static": "1.16.2",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/express/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/express/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/extract-zip": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ },
+ "engines": {
+ "node": ">= 10.17.0"
+ },
+ "optionalDependencies": {
+ "@types/yauzl": "^2.9.1"
+ }
+ },
+ "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/fast-diff": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
+ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
+ "dev": true
+ },
+ "node_modules/fast-fifo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
+ },
+ "node_modules/fast-uri": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz",
+ "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fastest-levenshtein": {
+ "version": "1.0.16",
+ "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
+ "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4.9.1"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/faye-websocket": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
+ "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "websocket-driver": ">=0.5.1"
+ },
+ "engines": {
+ "node": ">=0.8.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==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bser": "2.1.1"
+ }
+ },
+ "node_modules/fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pend": "~1.2.0"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/filename-reserved-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
+ "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/filenamify": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz",
+ "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "filename-reserved-regex": "^2.0.0",
+ "strip-outer": "^1.0.1",
+ "trim-repeated": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
+ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
+ "dev": true,
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
+ },
+ "node_modules/find-cache-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz",
+ "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "common-path-prefix": "^3.0.0",
+ "pkg-dir": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/find-up": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
+ "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^7.1.0",
+ "path-exists": "^5.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/locate-path": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
+ "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^6.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/p-limit": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
+ "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^1.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/p-locate": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
+ "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/path-exists": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
+ "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/pkg-dir": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
+ "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/yocto-queue": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz",
+ "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-file-up": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz",
+ "integrity": "sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fs-exists-sync": "^0.1.0",
+ "resolve-dir": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/find-file-up/node_modules/expand-tilde": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
+ "integrity": "sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "os-homedir": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/find-file-up/node_modules/global-modules": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz",
+ "integrity": "sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "global-prefix": "^0.1.4",
+ "is-windows": "^0.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/find-file-up/node_modules/global-prefix": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz",
+ "integrity": "sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "homedir-polyfill": "^1.0.0",
+ "ini": "^1.3.4",
+ "is-windows": "^0.2.0",
+ "which": "^1.2.12"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/find-file-up/node_modules/is-windows": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
+ "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/find-file-up/node_modules/resolve-dir": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz",
+ "integrity": "sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "expand-tilde": "^1.2.2",
+ "global-modules": "^0.2.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/find-file-up/node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/find-parent-dir": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.1.tgz",
+ "integrity": "sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/find-pkg": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz",
+ "integrity": "sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-file-up": "^0.1.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/find-process": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.7.tgz",
+ "integrity": "sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "commander": "^5.1.0",
+ "debug": "^4.1.1"
+ },
+ "bin": {
+ "find-process": "bin/find-process.js"
+ }
+ },
+ "node_modules/find-process/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/find-process/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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/find-process/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/find-process/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,
+ "license": "MIT"
+ },
+ "node_modules/find-process/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-process/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "bin": {
+ "flat": "cli.js"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
+ "dev": true
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.6",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "node_modules/for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fraction.js": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "patreon",
+ "url": "https://github.com/sponsors/rawify"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fs-exists-sync": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
+ "integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fs-monkey": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz",
+ "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==",
+ "dev": true,
+ "license": "Unlicense"
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "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,
+ "license": "ISC",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "dev": true,
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-package-type": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/get-port": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
+ "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-stdin": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz",
+ "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-uri": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz",
+ "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "basic-ftp": "^5.0.2",
+ "data-uri-to-buffer": "^6.0.2",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "global-prefix": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/global-prefix/node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/globalthis": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.2.1",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globjoin": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
+ "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "dev": true
+ },
+ "node_modules/handle-thing": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
+ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dev": true,
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/header-case": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz",
+ "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "capital-case": "^1.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "dev": true,
+ "dependencies": {
+ "parse-passwd": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/hosted-git-info/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/hosted-git-info/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ }
+ },
+ "node_modules/hpack.js/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/hpack.js/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,
+ "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/hpack.js/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,
+ "license": "MIT"
+ },
+ "node_modules/hpack.js/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,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/html-encoding-sniffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
+ "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-encoding": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/html-entities": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz",
+ "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/mdevils"
+ },
+ {
+ "type": "patreon",
+ "url": "https://patreon.com/mdevils"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/html-tags": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
+ "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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==",
+ "dev": 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-link-header": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.3.tgz",
+ "integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/http-parser-js": {
+ "version": "0.5.8",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
+ "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/http-proxy": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
+ "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/http-proxy-agent": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/http-proxy-agent/node_modules/agent-base": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
+ "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/http-proxy-middleware": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
+ "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/http-proxy": "^1.17.8",
+ "http-proxy": "^1.18.1",
+ "is-glob": "^4.0.1",
+ "is-plain-obj": "^3.0.0",
+ "micromatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "@types/express": "^4.17.13"
+ },
+ "peerDependenciesMeta": {
+ "@types/express": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "dev": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/icss-utils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
+ "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "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"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/ignore-walk": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz",
+ "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ignore-walk/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,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/ignore-walk/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,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/image-ssim": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz",
+ "integrity": "sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/immutable": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz",
+ "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/import-local": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
+ "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
+ },
+ "bin": {
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "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/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "dev": true,
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/intl-messageformat": {
+ "version": "10.7.10",
+ "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.10.tgz",
+ "integrity": "sha512-hp7iejCBiJdW3zmOe18FdlJu8U/JsADSDiBPQhfdSeI8B9POtvPRvPh3nMlvhYayGMKLv6maldhR7y3Pf1vkpw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "2.3.1",
+ "@formatjs/fast-memoize": "2.2.5",
+ "@formatjs/icu-messageformat-parser": "2.9.7",
+ "tslib": "2"
+ }
+ },
+ "node_modules/ip-address": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
+ "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jsbn": "1.1.0",
+ "sprintf-js": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/ipaddr.js": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
+ "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/irregular-plurals": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz",
+ "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-array-buffer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true
+ },
+ "node_modules/is-async-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/is-builtin-module": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
+ "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
+ "dev": true,
+ "dependencies": {
+ "builtin-modules": "^3.3.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
+ "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-data-view": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "dev": true,
+ "dependencies": {
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-finalizationregistry": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
+ "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-generator-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-path-cwd": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
+ "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-path-in-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
+ "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-path-inside": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-path-in-cwd/node_modules/is-path-inside": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
+ "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-is-inside": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+ "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-set": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "dev": true,
+ "dependencies": {
+ "which-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-weakmap": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakset": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
+ "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-report/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/make-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-report/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-source-maps": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-reports": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
+ "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/iterator.prototype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz",
+ "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.2.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "reflect.getprototypeof": "^1.0.4",
+ "set-function-name": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
+ "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/core": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "import-local": "^3.0.2",
+ "jest-cli": "^29.7.0"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-changed-files": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
+ "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "execa": "^5.0.0",
+ "jest-util": "^29.7.0",
+ "p-limit": "^3.1.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-circus": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
+ "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/expect": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^1.0.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^29.7.0",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "p-limit": "^3.1.0",
+ "pretty-format": "^29.7.0",
+ "pure-rand": "^6.0.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-circus/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-circus/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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-circus/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/jest-circus/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,
+ "license": "MIT"
+ },
+ "node_modules/jest-circus/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-circus/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-cli": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
+ "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/core": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "create-jest": "^29.7.0",
+ "exit": "^0.1.2",
+ "import-local": "^3.0.2",
+ "jest-config": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "yargs": "^17.3.1"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-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==",
+ "dev": true,
+ "license": "MIT",
+ "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-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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/jest-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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jest-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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-config": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
+ "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/test-sequencer": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "babel-jest": "^29.7.0",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-circus": "^29.7.0",
+ "jest-environment-node": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-runner": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@types/node": "*",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-config/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,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/jest-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==",
+ "dev": true,
+ "license": "MIT",
+ "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-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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/jest-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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jest-config/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": 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/jest-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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-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,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/jest-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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-dev-server": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-10.1.4.tgz",
+ "integrity": "sha512-bGQ6sedNGtT6AFHhCVqGTXMPz7UyJi/ZrhNBgyqsP0XU9N8acCEIfqZEA22rOaZ+NdEVsaltk6tL7UT6aXfI7w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.2",
+ "cwd": "^0.10.0",
+ "find-process": "^1.4.7",
+ "prompts": "^2.4.2",
+ "spawnd": "^10.1.4",
+ "tree-kill": "^1.2.2",
+ "wait-on": "^8.0.1"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/jest-dev-server/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-dev-server/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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-dev-server/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/jest-dev-server/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,
+ "license": "MIT"
+ },
+ "node_modules/jest-dev-server/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-dev-server/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-diff": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
+ "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.6.3",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-diff/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-diff/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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-diff/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/jest-diff/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,
+ "license": "MIT"
+ },
+ "node_modules/jest-diff/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-diff/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-docblock": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
+ "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "detect-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-each": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
+ "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-each/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-each/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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-each/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/jest-each/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,
+ "license": "MIT"
+ },
+ "node_modules/jest-each/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-each/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-environment-jsdom": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz",
+ "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/jsdom": "^20.0.0",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jsdom": "^20.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "canvas": "^2.5.0"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-environment-node": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
+ "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-get-type": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
+ "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-haste-map": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
+ "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/graceful-fs": "^4.1.3",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/jest-leak-detector": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
+ "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
+ "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-matcher-utils/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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-matcher-utils/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils/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,
+ "license": "MIT"
+ },
+ "node_modules/jest-matcher-utils/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-matcher-utils/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-message-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
+ "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.6.3",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "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/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-mock": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
+ "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "jest-resolve": "*"
+ },
+ "peerDependenciesMeta": {
+ "jest-resolve": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-regex-util": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
+ "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
+ "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "resolve": "^1.20.0",
+ "resolve.exports": "^2.0.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve-dependencies": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
+ "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jest-regex-util": "^29.6.3",
+ "jest-snapshot": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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-resolve/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/jest-resolve/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,
+ "license": "MIT"
+ },
+ "node_modules/jest-resolve/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-resolve/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runner": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
+ "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/console": "^29.7.0",
+ "@jest/environment": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^29.7.0",
+ "jest-environment-node": "^29.7.0",
+ "jest-haste-map": "^29.7.0",
+ "jest-leak-detector": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-resolve": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-watcher": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "p-limit": "^3.1.0",
+ "source-map-support": "0.5.13"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runner/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-runner/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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-runner/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/jest-runner/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,
+ "license": "MIT"
+ },
+ "node_modules/jest-runner/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runner/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
+ "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/globals": "^29.7.0",
+ "@jest/source-map": "^29.6.3",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^1.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runtime/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-runtime/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,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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-runtime/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/jest-runtime/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,
+ "license": "MIT"
+ },
+ "node_modules/jest-runtime/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": 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/jest-runtime/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/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,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/strip-bom": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-snapshot": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
+ "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@babel/generator": "^7.7.2",
+ "@babel/plugin-syntax-jsx": "^7.7.2",
+ "@babel/plugin-syntax-typescript": "^7.7.2",
+ "@babel/types": "^7.3.3",
+ "@jest/expect-utils": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "babel-preset-current-node-syntax": "^1.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^29.7.0",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^29.7.0",
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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-snapshot/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/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,
+ "license": "MIT"
+ },
+ "node_modules/jest-snapshot/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-snapshot/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+ "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.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==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-validate": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
+ "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "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/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-watcher": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
+ "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "jest-util": "^29.7.0",
+ "string-length": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-watcher/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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-watcher/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/jest-watcher/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,
+ "license": "MIT"
+ },
+ "node_modules/jest-watcher/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-watcher/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.7.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.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==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/joi": {
+ "version": "17.13.3",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz",
+ "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@hapi/hoek": "^9.3.0",
+ "@hapi/topo": "^5.1.0",
+ "@sideway/address": "^4.1.5",
+ "@sideway/formula": "^3.0.1",
+ "@sideway/pinpoint": "^2.0.0"
+ }
+ },
+ "node_modules/jpeg-js": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz",
+ "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/jquery": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
+ "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==",
+ "license": "MIT"
+ },
+ "node_modules/js-library-detector": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.7.0.tgz",
+ "integrity": "sha512-c80Qupofp43y4cJ7+8TTDN/AsDwLi5oOm/plBrWI+iQt485vKXCco+yVmOwEgdo9VOdsYTuV0UlTeetVPTriXA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsbn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
+ "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jsdoc-type-pratt-parser": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz",
+ "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/jsdom": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz",
+ "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "abab": "^2.0.6",
+ "acorn": "^8.8.1",
+ "acorn-globals": "^7.0.0",
+ "cssom": "^0.5.0",
+ "cssstyle": "^2.3.0",
+ "data-urls": "^3.0.2",
+ "decimal.js": "^10.4.2",
+ "domexception": "^4.0.0",
+ "escodegen": "^2.0.0",
+ "form-data": "^4.0.0",
+ "html-encoding-sniffer": "^3.0.0",
+ "http-proxy-agent": "^5.0.0",
+ "https-proxy-agent": "^5.0.1",
+ "is-potential-custom-element-name": "^1.0.1",
+ "nwsapi": "^2.2.2",
+ "parse5": "^7.1.1",
+ "saxes": "^6.0.0",
+ "symbol-tree": "^3.2.4",
+ "tough-cookie": "^4.1.2",
+ "w3c-xmlserializer": "^4.0.0",
+ "webidl-conversions": "^7.0.0",
+ "whatwg-encoding": "^2.0.0",
+ "whatwg-mimetype": "^3.0.0",
+ "whatwg-url": "^11.0.0",
+ "ws": "^8.11.0",
+ "xml-name-validator": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "canvas": "^2.5.0"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jsdom/node_modules/http-proxy-agent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
+ "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@tootallnate/once": "2",
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/jsdom/node_modules/tr46": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
+ "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/jsdom/node_modules/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/jsdom/node_modules/whatwg-url": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
+ "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "^3.0.0",
+ "webidl-conversions": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/jsdom/node_modules/ws": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "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/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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
+ },
+ "node_modules/json2php": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.7.tgz",
+ "integrity": "sha512-dnSoUiLAoVaMXxFsVi4CrPVYMKOuDBXTghXSmMINX44RZ8WM9cXlY7UqrQnlAcODCVO7FV3+8t/5nDKAjimLfg==",
+ "dev": true,
+ "license": "BSD"
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonc-parser": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz",
+ "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jsx-ast-utils": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "object.assign": "^4.1.4",
+ "object.values": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "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/kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/klona": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz",
+ "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/known-css-properties": {
+ "version": "0.34.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz",
+ "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/language-subtag-registry": {
+ "version": "0.3.23",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
+ "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/language-tags": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
+ "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "language-subtag-registry": "^0.3.20"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/launch-editor": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.0.tgz",
+ "integrity": "sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picocolors": "^1.0.0",
+ "shell-quote": "^1.8.1"
+ }
+ },
+ "node_modules/lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==",
+ "dev": true,
+ "license": "MIT",
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lie": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
+ "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "immediate": "~3.0.5"
+ }
+ },
+ "node_modules/lighthouse": {
+ "version": "12.2.2",
+ "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-12.2.2.tgz",
+ "integrity": "sha512-avoiiFeGN1gkWhp/W1schJoXOsTPxRKWV3+uW/rGHuov2g/HGB+4SN9J/av1GNSh13sEYgkHL3iJOp1+mBVKYQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@paulirish/trace_engine": "0.0.32",
+ "@sentry/node": "^7.0.0",
+ "axe-core": "^4.10.2",
+ "chrome-launcher": "^1.1.2",
+ "configstore": "^5.0.1",
+ "csp_evaluator": "1.1.1",
+ "devtools-protocol": "0.0.1312386",
+ "enquirer": "^2.3.6",
+ "http-link-header": "^1.1.1",
+ "intl-messageformat": "^10.5.3",
+ "jpeg-js": "^0.4.4",
+ "js-library-detector": "^6.7.0",
+ "lighthouse-logger": "^2.0.1",
+ "lighthouse-stack-packs": "1.12.2",
+ "lodash-es": "^4.17.21",
+ "lookup-closest-locale": "6.2.0",
+ "metaviewport-parser": "0.3.0",
+ "open": "^8.4.0",
+ "parse-cache-control": "1.0.1",
+ "puppeteer-core": "^23.8.0",
+ "robots-parser": "^3.0.1",
+ "semver": "^5.3.0",
+ "speedline-core": "^1.4.3",
+ "third-party-web": "^0.26.1",
+ "tldts-icann": "^6.1.16",
+ "ws": "^7.0.0",
+ "yargs": "^17.3.1",
+ "yargs-parser": "^21.0.0"
+ },
+ "bin": {
+ "chrome-debug": "core/scripts/manual-chrome-launcher.js",
+ "lighthouse": "cli/index.js",
+ "smokehouse": "cli/test/smokehouse/frontends/smokehouse-bin.js"
+ },
+ "engines": {
+ "node": ">=18.16"
+ }
+ },
+ "node_modules/lighthouse-logger": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-2.0.1.tgz",
+ "integrity": "sha512-ioBrW3s2i97noEmnXxmUq7cjIcVRjT5HBpAYy8zE11CxU9HqlWHHeRxfeN1tn8F7OEMVPIC9x1f8t3Z7US9ehQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "debug": "^2.6.9",
+ "marky": "^1.2.2"
+ }
+ },
+ "node_modules/lighthouse-logger/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/lighthouse-logger/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lighthouse-stack-packs": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.12.2.tgz",
+ "integrity": "sha512-Ug8feS/A+92TMTCK6yHYLwaFMuelK/hAKRMdldYkMNwv+d9PtWxjXEg6rwKtsUXTADajhdrhXyuNCJ5/sfmPFw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/lighthouse/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
+ "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "node_modules/linkify-it": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
+ "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "uc.micro": "^1.0.1"
+ }
+ },
+ "node_modules/loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.11.5"
+ }
+ },
+ "node_modules/loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=8.9.0"
+ }
+ },
+ "node_modules/localforage": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
+ "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "lie": "3.1.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
+ "dev": true
+ },
+ "node_modules/lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "node_modules/lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-symbols/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/log-symbols/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "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/log-symbols/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/log-symbols/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,
+ "license": "MIT"
+ },
+ "node_modules/log-symbols/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/log-symbols/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/lookup-closest-locale": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz",
+ "integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "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/make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/makeerror": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "tmpl": "1.0.5"
+ }
+ },
+ "node_modules/map-obj": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
+ "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/map-values": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-values/-/map-values-1.0.1.tgz",
+ "integrity": "sha512-BbShUnr5OartXJe1GeccAWtfro11hhgNJg6G9/UtWKjVGvV5U4C09cg5nk8JUevhXODaXY+hQ3xxMUKSs62ONQ==",
+ "dev": true,
+ "license": "Public Domain"
+ },
+ "node_modules/markdown-it": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
+ "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1",
+ "entities": "~2.1.0",
+ "linkify-it": "^3.0.1",
+ "mdurl": "^1.0.1",
+ "uc.micro": "^1.0.5"
+ },
+ "bin": {
+ "markdown-it": "bin/markdown-it.js"
+ }
+ },
+ "node_modules/markdown-it/node_modules/entities": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
+ "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/markdownlint": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.25.1.tgz",
+ "integrity": "sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "markdown-it": "12.3.2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/markdownlint-cli": {
+ "version": "0.31.1",
+ "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.31.1.tgz",
+ "integrity": "sha512-keIOMwQn+Ch7MoBwA+TdkyVMuxAeZFEGmIIlvwgV0Z1TGS5MxPnRr29XCLhkNzCHU+uNKGjU+VEjLX+Z9kli6g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "commander": "~9.0.0",
+ "get-stdin": "~9.0.0",
+ "glob": "~7.2.0",
+ "ignore": "~5.2.0",
+ "js-yaml": "^4.1.0",
+ "jsonc-parser": "~3.0.0",
+ "markdownlint": "~0.25.1",
+ "markdownlint-rule-helpers": "~0.16.0",
+ "minimatch": "~3.0.5",
+ "run-con": "~1.2.10"
+ },
+ "bin": {
+ "markdownlint": "markdownlint.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/markdownlint-cli/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,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/markdownlint-cli/node_modules/commander": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz",
+ "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || >=14"
+ }
+ },
+ "node_modules/markdownlint-cli/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": 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/markdownlint-cli/node_modules/glob/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,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/markdownlint-cli/node_modules/ignore": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/markdownlint-cli/node_modules/minimatch": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz",
+ "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/markdownlint-rule-helpers": {
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.16.0.tgz",
+ "integrity": "sha512-oEacRUVeTJ5D5hW1UYd2qExYI0oELdYK72k1TKGvIeYJIbqQWAz476NAc7LNixSySUhcNl++d02DvX0ccDk9/w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/marky": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz",
+ "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/mathml-tag-names": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz",
+ "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/mdn-data": {
+ "version": "2.0.30",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/mdurl": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+ "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/memfs": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz",
+ "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==",
+ "dev": true,
+ "license": "Unlicense",
+ "dependencies": {
+ "fs-monkey": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/meow": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
+ "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-arrayish": "^0.2.1"
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize": "^1.2.0",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "4.1.0",
+ "normalize-package-data": "^3.0.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.18.0",
+ "yargs-parser": "^20.2.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/es-abstract": {
- "version": "1.23.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
- "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
+ "node_modules/meow/node_modules/type-fest": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
+ "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/meow/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/merge-deep": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz",
+ "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "array-buffer-byte-length": "^1.0.1",
- "arraybuffer.prototype.slice": "^1.0.3",
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
- "data-view-buffer": "^1.0.1",
- "data-view-byte-length": "^1.0.1",
- "data-view-byte-offset": "^1.0.0",
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-set-tostringtag": "^2.0.3",
- "es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.6",
- "get-intrinsic": "^1.2.4",
- "get-symbol-description": "^1.0.2",
- "globalthis": "^1.0.3",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.3",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.2",
- "internal-slot": "^1.0.7",
- "is-array-buffer": "^3.0.4",
- "is-callable": "^1.2.7",
- "is-data-view": "^1.0.1",
- "is-negative-zero": "^2.0.3",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.3",
- "is-string": "^1.0.7",
- "is-typed-array": "^1.1.13",
- "is-weakref": "^1.0.2",
- "object-inspect": "^1.13.1",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.5",
- "regexp.prototype.flags": "^1.5.2",
- "safe-array-concat": "^1.1.2",
- "safe-regex-test": "^1.0.3",
- "string.prototype.trim": "^1.2.9",
- "string.prototype.trimend": "^1.0.8",
- "string.prototype.trimstart": "^1.0.8",
- "typed-array-buffer": "^1.0.2",
- "typed-array-byte-length": "^1.0.1",
- "typed-array-byte-offset": "^1.0.2",
- "typed-array-length": "^1.0.6",
- "unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.15"
+ "arr-union": "^3.1.0",
+ "clone-deep": "^0.2.4",
+ "kind-of": "^3.0.2"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/merge-deep/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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/metaviewport-parser": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.3.0.tgz",
+ "integrity": "sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/min-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mini-css-extract-plugin": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz",
+ "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "schema-utils": "^4.0.0",
+ "tapable": "^2.2.1"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.0.0"
+ }
+ },
+ "node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
},
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/es-define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "node_modules/minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+ "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.2.4"
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">= 6"
+ }
+ },
+ "node_modules/minimist-options/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": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mitt": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
+ "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mixin-object": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
+ "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==",
+ "dev": true,
+ "license": "MIT",
+ "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": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mrmime": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
+ "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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/multicast-dns": {
+ "version": "7.2.5",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
+ "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dns-packet": "^5.2.2",
+ "thunky": "^1.0.2"
+ },
+ "bin": {
+ "multicast-dns": "cli.js"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "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,
+ "license": "MIT"
+ },
+ "node_modules/netmask": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
+ "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
+ "node": ">= 0.4.0"
}
},
- "node_modules/es-get-iterator": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz",
- "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==",
+ "node_modules/no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.3",
- "has-symbols": "^1.0.3",
- "is-arguments": "^1.1.1",
- "is-map": "^2.0.2",
- "is-set": "^2.0.2",
- "is-string": "^1.0.7",
- "isarray": "^2.0.5",
- "stop-iteration-iterator": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
}
},
- "node_modules/es-iterator-helpers": {
- "version": "1.0.19",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz",
- "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==",
+ "node_modules/node-forge": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.3",
- "es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.3",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "globalthis": "^1.0.3",
- "has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.3",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.7",
- "iterator.prototype": "^1.1.2",
- "safe-array-concat": "^1.1.2"
- },
+ "license": "(BSD-3-Clause OR GPL-2.0)",
"engines": {
- "node": ">= 0.4"
+ "node": ">= 6.13.0"
}
},
- "node_modules/es-object-atoms": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
- "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
+ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
+ "dev": true
+ },
+ "node_modules/normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "es-errors": "^1.3.0"
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
}
},
- "node_modules/es-set-tostringtag": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
- "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+ "node_modules/normalize-package-data/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
- "dependencies": {
- "get-intrinsic": "^1.2.4",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.1"
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
}
},
- "node_modules/es-shim-unscopables": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
- "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "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,
- "dependencies": {
- "hasown": "^2.0.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "node_modules/normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
"dev": true,
- "dependencies": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=0.10.0"
}
},
- "node_modules/escalade": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
- "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "node_modules/npm-bundled": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz",
+ "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==",
"dev": true,
- "engines": {
- "node": ">=6"
+ "license": "ISC",
+ "dependencies": {
+ "npm-normalize-package-bin": "^1.0.1"
}
},
- "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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "node_modules/npm-bundled/node_modules/npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/npm-normalize-package-bin": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz",
+ "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=0.8.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
- "node_modules/eslint": {
- "version": "8.57.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
- "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
+ "node_modules/npm-package-json-lint": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-6.4.0.tgz",
+ "integrity": "sha512-cuXAJJB1Rdqz0UO6w524matlBqDBjcNt7Ru+RDIu4y6RI1gVqiWBnylrK8sPRk81gGBA0X8hJbDXolVOoTc+sA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.57.0",
- "@humanwhocodes/config-array": "^0.11.14",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "@ungap/structured-clone": "^1.2.0",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.2",
- "eslint-visitor-keys": "^3.4.3",
- "espree": "^9.6.1",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "graphemer": "^1.4.0",
+ "ajv": "^6.12.6",
+ "ajv-errors": "^1.0.1",
+ "chalk": "^4.1.2",
+ "cosmiconfig": "^8.0.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
"ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
+ "is-plain-obj": "^3.0.0",
+ "jsonc-parser": "^3.2.0",
+ "log-symbols": "^4.1.0",
+ "meow": "^9.0.0",
+ "plur": "^4.0.0",
+ "semver": "^7.3.8",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1",
+ "type-fest": "^3.2.0",
+ "validate-npm-package-name": "^5.0.0"
},
"bin": {
- "eslint": "bin/eslint.js"
+ "npmPkgJsonLint": "dist/cli.js"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "node": ">=14.0.0",
+ "npm": ">=6.0.0"
}
},
- "node_modules/eslint-config-prettier": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz",
- "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==",
+ "node_modules/npm-package-json-lint/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,
- "bin": {
- "eslint-config-prettier": "bin/cli.js"
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
},
- "peerDependencies": {
- "eslint": ">=7.0.0"
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/eslint-import-resolver-node": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
- "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "node_modules/npm-package-json-lint/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "debug": "^3.2.7",
- "is-core-module": "^2.13.0",
- "resolve": "^1.22.4"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/eslint-import-resolver-node/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "node_modules/npm-package-json-lint/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,
+ "license": "MIT",
"dependencies": {
- "ms": "^2.1.1"
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
}
},
- "node_modules/eslint-module-utils": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz",
- "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==",
+ "node_modules/npm-package-json-lint/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,
+ "license": "MIT"
+ },
+ "node_modules/npm-package-json-lint/node_modules/cosmiconfig": {
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "debug": "^3.2.7"
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
},
"peerDependenciesMeta": {
- "eslint": {
+ "typescript": {
"optional": true
}
}
},
- "node_modules/eslint-module-utils/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "node_modules/npm-package-json-lint/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm-package-json-lint/node_modules/jsonc-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
+ "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/npm-package-json-lint/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/npm-package-json-lint/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm-package-json-lint/node_modules/type-fest": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
"dev": true,
- "dependencies": {
- "ms": "^2.1.1"
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint-plugin-import": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
- "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
+ "node_modules/npm-packlist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz",
+ "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "array-includes": "^3.1.7",
- "array.prototype.findlastindex": "^1.2.3",
- "array.prototype.flat": "^1.3.2",
- "array.prototype.flatmap": "^1.3.2",
- "debug": "^3.2.7",
- "doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.9",
- "eslint-module-utils": "^2.8.0",
- "hasown": "^2.0.0",
- "is-core-module": "^2.13.1",
- "is-glob": "^4.0.3",
- "minimatch": "^3.1.2",
- "object.fromentries": "^2.0.7",
- "object.groupby": "^1.0.1",
- "object.values": "^1.1.7",
- "semver": "^6.3.1",
- "tsconfig-paths": "^3.15.0"
+ "glob": "^7.1.6",
+ "ignore-walk": "^4.0.1",
+ "npm-bundled": "^1.1.1",
+ "npm-normalize-package-bin": "^1.0.1"
},
- "engines": {
- "node": ">=4"
+ "bin": {
+ "npm-packlist": "bin/index.js"
},
- "peerDependencies": {
- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/eslint-plugin-import/node_modules/brace-expansion": {
+ "node_modules/npm-packlist/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,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
- "node_modules/eslint-plugin-import/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "node_modules/npm-packlist/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "esutils": "^2.0.2"
+ "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": ">=0.10.0"
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/eslint-plugin-import/node_modules/minimatch": {
+ "node_modules/npm-packlist/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,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -3688,797 +15979,807 @@
"node": "*"
}
},
- "node_modules/eslint-plugin-jest": {
- "version": "27.9.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz",
- "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==",
+ "node_modules/npm-packlist/node_modules/npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/npm-run-all2": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-7.0.2.tgz",
+ "integrity": "sha512-7tXR+r9hzRNOPNTvXegM+QzCuMjzUIIq66VDunL6j60O4RrExx32XUhlrS7UK4VcdGw5/Wxzb3kfNcFix9JKDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/utils": "^5.10.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "ansi-styles": "^6.2.1",
+ "cross-spawn": "^7.0.6",
+ "memorystream": "^0.3.1",
+ "minimatch": "^9.0.0",
+ "pidtree": "^0.6.0",
+ "read-package-json-fast": "^4.0.0",
+ "shell-quote": "^1.7.3",
+ "which": "^5.0.0"
},
- "peerDependencies": {
- "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0",
- "eslint": "^7.0.0 || ^8.0.0",
- "jest": "*"
+ "bin": {
+ "npm-run-all": "bin/npm-run-all/index.js",
+ "npm-run-all2": "bin/npm-run-all/index.js",
+ "run-p": "bin/run-p/index.js",
+ "run-s": "bin/run-s/index.js"
},
- "peerDependenciesMeta": {
- "@typescript-eslint/eslint-plugin": {
- "optional": true
- },
- "jest": {
- "optional": true
- }
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0",
+ "npm": ">= 9"
}
},
- "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/scope-manager": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
- "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+ "node_modules/npm-run-all2/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
- "dependencies": {
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/visitor-keys": "5.62.0"
- },
+ "license": "MIT",
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=12"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/types": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
- "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+ "node_modules/npm-run-all2/node_modules/isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">=16"
}
},
- "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
- "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
+ "node_modules/npm-run-all2/node_modules/which": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz",
+ "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/visitor-keys": "5.62.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "isexe": "^3.1.1"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "bin": {
+ "node-which": "bin/which.js"
},
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
}
},
- "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
- "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
+ "node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@types/json-schema": "^7.0.9",
- "@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.62.0",
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/typescript-estree": "5.62.0",
- "eslint-scope": "^5.1.1",
- "semver": "^7.3.7"
+ "path-key": "^3.0.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "node": ">=8"
}
},
- "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
- "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/types": "5.62.0",
- "eslint-visitor-keys": "^3.3.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "boolbase": "^1.0.0"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
}
},
- "node_modules/eslint-plugin-jest/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "node_modules/nwsapi": {
+ "version": "2.2.12",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.12.tgz",
+ "integrity": "sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true,
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-filter": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz",
+ "integrity": "sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
+ "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://opencollective.com/eslint"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/eslint-plugin-jest/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
- },
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
}
},
- "node_modules/eslint-plugin-jsdoc": {
- "version": "46.10.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.10.1.tgz",
- "integrity": "sha512-x8wxIpv00Y50NyweDUpa+58ffgSAI5sqe+zcZh33xphD0AVh+1kqr1ombaTRb7Fhpove1zfUuujlX9DWWBP5ag==",
+ "node_modules/object.assign": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
"dev": true,
"dependencies": {
- "@es-joy/jsdoccomment": "~0.41.0",
- "are-docs-informative": "^0.0.2",
- "comment-parser": "1.4.1",
- "debug": "^4.3.4",
- "escape-string-regexp": "^4.0.0",
- "esquery": "^1.5.0",
- "is-builtin-module": "^3.2.1",
- "semver": "^7.5.4",
- "spdx-expression-parse": "^4.0.0"
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
},
"engines": {
- "node": ">=16"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "node_modules/object.entries": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.fromentries": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
+ },
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/eslint-plugin-jsdoc/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "node_modules/object.groupby": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
+ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2"
},
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
}
},
- "node_modules/eslint-plugin-jsx-a11y": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz",
- "integrity": "sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==",
+ "node_modules/object.values": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
"dev": true,
"dependencies": {
- "aria-query": "~5.1.3",
- "array-includes": "^3.1.8",
- "array.prototype.flatmap": "^1.3.2",
- "ast-types-flow": "^0.0.8",
- "axe-core": "^4.9.1",
- "axobject-query": "~3.1.1",
- "damerau-levenshtein": "^1.0.8",
- "emoji-regex": "^9.2.2",
- "es-iterator-helpers": "^1.0.19",
- "hasown": "^2.0.2",
- "jsx-ast-utils": "^3.3.5",
- "language-tags": "^1.0.9",
- "minimatch": "^3.1.2",
- "object.fromentries": "^2.0.8",
- "safe-regex-test": "^1.0.3",
- "string.prototype.includes": "^2.0.0"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
- "node": ">=4.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/eslint-plugin-jsx-a11y/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==",
+ "node_modules/obuf": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
"dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
+ "license": "MIT"
},
- "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "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==",
"dev": true,
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "ee-first": "1.1.1"
},
"engines": {
- "node": "*"
+ "node": ">= 0.8"
}
},
- "node_modules/eslint-plugin-playwright": {
- "version": "0.15.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-0.15.3.tgz",
- "integrity": "sha512-LQMW5y0DLK5Fnpya7JR1oAYL2/7Y9wDiYw6VZqlKqcRGSgjbVKNqxraphk7ra1U3Bb5EK444xMgUlQPbMg2M1g==",
+ "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==",
"dev": true,
- "peerDependencies": {
- "eslint": ">=7",
- "eslint-plugin-jest": ">=25"
- },
- "peerDependenciesMeta": {
- "eslint-plugin-jest": {
- "optional": true
- }
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
}
},
- "node_modules/eslint-plugin-prettier": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz",
- "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==",
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"dependencies": {
- "prettier-linter-helpers": "^1.0.0",
- "synckit": "^0.9.1"
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": ">=6"
},
"funding": {
- "url": "https://opencollective.com/eslint-plugin-prettier"
- },
- "peerDependencies": {
- "@types/eslint": ">=8.0.0",
- "eslint": ">=8.0.0",
- "eslint-config-prettier": "*",
- "prettier": ">=3.0.0"
- },
- "peerDependenciesMeta": {
- "@types/eslint": {
- "optional": true
- },
- "eslint-config-prettier": {
- "optional": true
- }
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint-plugin-react": {
- "version": "7.35.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz",
- "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==",
+ "node_modules/open": {
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "array-includes": "^3.1.8",
- "array.prototype.findlast": "^1.2.5",
- "array.prototype.flatmap": "^1.3.2",
- "array.prototype.tosorted": "^1.1.4",
- "doctrine": "^2.1.0",
- "es-iterator-helpers": "^1.0.19",
- "estraverse": "^5.3.0",
- "hasown": "^2.0.2",
- "jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.8",
- "object.fromentries": "^2.0.8",
- "object.values": "^1.2.0",
- "prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.5",
- "semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.11",
- "string.prototype.repeat": "^1.0.0"
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=12"
},
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint-plugin-react-hooks": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
- "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
+ "node_modules/opener": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
+ "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
"dev": true,
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
+ "license": "(WTFPL OR MIT)",
+ "bin": {
+ "opener": "bin/opener-bin.js"
}
},
- "node_modules/eslint-plugin-react/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==",
+ "node_modules/optionator": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "node_modules/eslint-plugin-react/node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "node_modules/os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
"dev": true,
- "dependencies": {
- "esutils": "^2.0.2"
- },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/eslint-plugin-react/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "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==",
"dev": true,
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "yocto-queue": "^0.1.0"
},
"engines": {
- "node": "*"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "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==",
"dev": true,
"dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
+ "p-limit": "^3.0.2"
},
- "bin": {
- "resolve": "bin/resolve"
+ "engines": {
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "node_modules/p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
"dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=8.0.0"
+ "node": ">=6"
}
},
- "node_modules/eslint-scope/node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "node_modules/p-retry": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
+ "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/retry": "0.12.0",
+ "retry": "^0.13.1"
+ },
"engines": {
- "node": ">=4.0"
+ "node": ">=8"
}
},
- "node_modules/eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "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,
+ "license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=6"
}
},
- "node_modules/eslint/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==",
+ "node_modules/pac-proxy-agent": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.1.0.tgz",
+ "integrity": "sha512-Z5FnLVVZSnX7WjBg0mhDtydeRZ1xMcATZThjySQUHqr+0ksP8kqaw23fNKkaaN/Z8gwLUs/W7xdl0I75eP2Xyw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
+ "@tootallnate/quickjs-emscripten": "^0.23.0",
+ "agent-base": "^7.1.2",
+ "debug": "^4.3.4",
+ "get-uri": "^6.0.1",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.6",
+ "pac-resolver": "^7.0.1",
+ "socks-proxy-agent": "^8.0.5"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": ">= 14"
}
},
- "node_modules/eslint/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==",
+ "node_modules/pac-proxy-agent/node_modules/agent-base": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
+ "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
"dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
}
},
- "node_modules/eslint/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "agent-base": "^7.1.2",
+ "debug": "4"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": ">= 14"
}
},
- "node_modules/eslint/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==",
+ "node_modules/pac-resolver": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz",
+ "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "color-name": "~1.1.4"
+ "degenerator": "^5.0.0",
+ "netmask": "^2.0.2"
},
"engines": {
- "node": ">=7.0.0"
+ "node": ">= 14"
}
},
- "node_modules/eslint/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/param-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
+ "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
},
- "node_modules/eslint/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
- "engines": {
- "node": ">=10"
+ "dependencies": {
+ "callsites": "^3.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/eslint/node_modules/eslint-scope": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "node_modules/parse-cache-control": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz",
+ "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==",
+ "dev": true
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
"dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=8"
},
"funding": {
- "url": "https://opencollective.com/eslint"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "node_modules/parse-passwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
"dev": true,
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "node": ">=0.10.0"
}
},
- "node_modules/eslint/node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "node_modules/parse5": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
+ "entities": "^4.4.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
- "node_modules/eslint/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==",
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">= 0.8"
}
},
- "node_modules/eslint/node_modules/minimatch": {
+ "node_modules/pascal-case": {
"version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
}
},
- "node_modules/eslint/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==",
+ "node_modules/path-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz",
+ "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
}
},
- "node_modules/espree": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "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==",
"dev": true,
- "dependencies": {
- "acorn": "^8.9.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
- },
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "node": ">=8"
}
},
- "node_modules/espree/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "node": ">=0.10.0"
}
},
- "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==",
+ "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": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
+ "dev": true,
+ "license": "(WTFPL OR MIT)"
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/esquery": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
- "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "node_modules/path-to-regexp": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+ "dev": true
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true,
- "dependencies": {
- "estraverse": "^5.1.0"
- },
"engines": {
- "node": ">=0.10"
+ "node": ">=8"
}
},
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
+ "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
- "dependencies": {
- "estraverse": "^5.2.0"
- },
"engines": {
- "node": ">=4.0"
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "node_modules/pidtree": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
"dev": true,
+ "license": "MIT",
+ "bin": {
+ "pidtree": "bin/pidtree.js"
+ },
"engines": {
- "node": ">=4.0"
+ "node": ">=0.10"
}
},
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "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": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/eventemitter2": {
- "version": "0.4.14",
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
- "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==",
- "dev": true
- },
- "node_modules/exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "node_modules/pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/expand-tilde": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
- "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==",
+ "node_modules/pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "homedir-polyfill": "^1.0.1"
+ "pinkie": "^2.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "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/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/fast-diff": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
- "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
- "dev": true
+ "node_modules/pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
},
- "node_modules/fast-glob": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^4.0.0"
},
"engines": {
- "node": ">=8.6.0"
+ "node": ">=8"
}
},
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "node_modules/pkg-dir/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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-glob": "^4.0.1"
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
},
"engines": {
- "node": ">= 6"
+ "node": ">=8"
}
},
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
- },
- "node_modules/fastq": {
- "version": "1.17.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
- "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "node_modules/pkg-dir/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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "reusify": "^1.0.4"
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "node_modules/pkg-dir/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,
+ "license": "MIT",
"dependencies": {
- "escape-string-regexp": "^1.0.5"
+ "p-try": "^2.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "node_modules/pkg-dir/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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "flat-cache": "^3.0.4"
+ "p-limit": "^2.2.0"
},
"engines": {
- "node": "^10.12.0 || >=12.0.0"
+ "node": ">=8"
}
},
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "node_modules/playwright": {
+ "version": "1.49.1",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.49.1.tgz",
+ "integrity": "sha512-VYL8zLoNTBxVOrJBbDuRgDWa3i+mfQgDTrL8Ah9QXZ7ax4Dsj0MSq5bYgytRnDVVe+njoKnfsYkH3HzqVj5UZA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "to-regex-range": "^5.0.1"
+ "playwright-core": "1.49.1"
+ },
+ "bin": {
+ "playwright": "cli.js"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "fsevents": "2.3.2"
}
},
- "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==",
+ "node_modules/playwright-core": {
+ "version": "1.49.1",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.49.1.tgz",
+ "integrity": "sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "playwright-core": "cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/plur": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz",
+ "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
+ "irregular-plurals": "^3.2.0"
},
"engines": {
"node": ">=10"
@@ -4487,1021 +16788,1388 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/findup-sync": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz",
- "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==",
+ "node_modules/possible-typed-array-names": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
"dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.47",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
+ "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
"dependencies": {
- "detect-file": "^1.0.0",
- "is-glob": "^4.0.3",
- "micromatch": "^4.0.4",
- "resolve-dir": "^1.0.1"
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.1.0",
+ "source-map-js": "^1.2.1"
},
"engines": {
- "node": ">= 10.13.0"
+ "node": "^10 || ^12 || >=14"
}
},
- "node_modules/fined": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
- "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
+ "node_modules/postcss-calc": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz",
+ "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "expand-tilde": "^2.0.2",
- "is-plain-object": "^2.0.3",
- "object.defaults": "^1.1.0",
- "object.pick": "^1.2.0",
- "parse-filepath": "^1.0.1"
+ "postcss-selector-parser": "^6.0.11",
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">= 0.10"
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.2"
}
},
- "node_modules/flagged-respawn": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
- "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
+ "node_modules/postcss-colormin": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz",
+ "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.0",
+ "caniuse-api": "^3.0.0",
+ "colord": "^2.9.3",
+ "postcss-value-parser": "^4.2.0"
+ },
"engines": {
- "node": ">= 0.10"
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/flat-cache": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
- "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "node_modules/postcss-convert-values": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz",
+ "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.3",
- "rimraf": "^3.0.2"
+ "browserslist": "^4.23.0",
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": "^10.12.0 || >=12.0.0"
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/flatted": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
- "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
- "dev": true
+ "node_modules/postcss-discard-comments": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz",
+ "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
},
- "node_modules/for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "node_modules/postcss-discard-duplicates": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz",
+ "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==",
"dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-discard-empty": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz",
+ "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-discard-overridden": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz",
+ "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-loader": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz",
+ "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "is-callable": "^1.1.3"
+ "cosmiconfig": "^7.0.0",
+ "klona": "^2.0.5",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "postcss": "^7.0.0 || ^8.0.1",
+ "webpack": "^5.0.0"
}
},
- "node_modules/for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
+ "node_modules/postcss-loader/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
}
},
- "node_modules/for-own": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
- "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==",
+ "node_modules/postcss-media-query-parser": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
+ "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-merge-longhand": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz",
+ "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "for-in": "^1.0.1"
+ "postcss-value-parser": "^4.2.0",
+ "stylehacks": "^6.1.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
+ "node_modules/postcss-merge-rules": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz",
+ "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.0",
+ "caniuse-api": "^3.0.0",
+ "cssnano-utils": "^4.0.2",
+ "postcss-selector-parser": "^6.0.16"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
},
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "node_modules/postcss-minify-font-values": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz",
+ "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==",
"dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/function.prototype.name": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
- "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "node_modules/postcss-minify-gradients": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz",
+ "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "functions-have-names": "^1.2.3"
+ "colord": "^2.9.3",
+ "cssnano-utils": "^4.0.2",
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^14 || ^16 || >=18.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "node_modules/postcss-minify-params": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz",
+ "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==",
"dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.0",
+ "cssnano-utils": "^4.0.2",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "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==",
+ "node_modules/postcss-minify-selectors": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz",
+ "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.16"
+ },
"engines": {
- "node": ">=6.9.0"
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/get-intrinsic": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "node_modules/postcss-modules-extract-imports": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz",
+ "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-local-by-default": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz",
+ "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
+ "icss-utils": "^5.0.0",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-scope": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz",
+ "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.4"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^10 || ^12 || >= 14"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "postcss": "^8.1.0"
}
},
- "node_modules/get-symbol-description": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
- "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+ "node_modules/postcss-modules-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
+ "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "call-bind": "^1.0.5",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4"
+ "icss-utils": "^5.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^10 || ^12 || >= 14"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "postcss": "^8.1.0"
}
},
- "node_modules/getobject": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz",
- "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==",
+ "node_modules/postcss-normalize-charset": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz",
+ "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=10"
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/glob": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "node_modules/postcss-normalize-display-values": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz",
+ "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==",
"dev": true,
+ "license": "MIT",
"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"
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": "*"
+ "node": "^14 || ^16 || >=18.0"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/glob-parent": {
+ "node_modules/postcss-normalize-positions": {
"version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz",
+ "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-glob": "^4.0.3"
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">=10.13.0"
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/glob/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==",
+ "node_modules/postcss-normalize-repeat-style": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz",
+ "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/glob/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/postcss-normalize-string": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz",
+ "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": "*"
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/global-modules": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
- "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "node_modules/postcss-normalize-timing-functions": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz",
+ "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "global-prefix": "^1.0.1",
- "is-windows": "^1.0.1",
- "resolve-dir": "^1.0.0"
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/global-prefix": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
- "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==",
+ "node_modules/postcss-normalize-unicode": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz",
+ "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "expand-tilde": "^2.0.2",
- "homedir-polyfill": "^1.0.1",
- "ini": "^1.3.4",
- "is-windows": "^1.0.1",
- "which": "^1.2.14"
+ "browserslist": "^4.23.0",
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/global-prefix/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "node_modules/postcss-normalize-url": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz",
+ "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "isexe": "^2.0.0"
+ "postcss-value-parser": "^4.2.0"
},
- "bin": {
- "which": "bin/which"
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "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==",
+ "node_modules/postcss-normalize-whitespace": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz",
+ "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
"engines": {
- "node": ">=4"
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/globalthis": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
- "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
+ "node_modules/postcss-ordered-values": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz",
+ "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "define-properties": "^1.2.1",
- "gopd": "^1.0.1"
+ "cssnano-utils": "^4.0.2",
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^14 || ^16 || >=18.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "node_modules/postcss-reduce-initial": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz",
+ "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
+ "browserslist": "^4.23.0",
+ "caniuse-api": "^3.0.0"
},
"engines": {
- "node": ">=10"
+ "node": "^14 || ^16 || >=18.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "node_modules/postcss-reduce-transforms": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz",
+ "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.1.3"
+ "postcss-value-parser": "^4.2.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true
- },
- "node_modules/graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true
+ "node_modules/postcss-resolve-nested-selector": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz",
+ "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/grunt": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz",
- "integrity": "sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA==",
- "dev": true,
- "dependencies": {
- "dateformat": "~4.6.2",
- "eventemitter2": "~0.4.13",
- "exit": "~0.1.2",
- "findup-sync": "~5.0.0",
- "glob": "~7.1.6",
- "grunt-cli": "~1.4.3",
- "grunt-known-options": "~2.0.0",
- "grunt-legacy-log": "~3.0.0",
- "grunt-legacy-util": "~2.0.1",
- "iconv-lite": "~0.6.3",
- "js-yaml": "~3.14.0",
- "minimatch": "~3.0.4",
- "nopt": "~3.0.6"
- },
- "bin": {
- "grunt": "bin/grunt"
- },
+ "node_modules/postcss-safe-parser": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz",
+ "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": ">=16"
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/grunt-cli": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz",
- "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==",
+ "node_modules/postcss-scss": {
+ "version": "4.0.9",
+ "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz",
+ "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==",
"dev": true,
- "dependencies": {
- "grunt-known-options": "~2.0.0",
- "interpret": "~1.1.0",
- "liftup": "~3.0.1",
- "nopt": "~4.0.1",
- "v8flags": "~3.2.0"
- },
- "bin": {
- "grunt": "bin/grunt"
- },
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss-scss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=12.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.29"
}
},
- "node_modules/grunt-cli/node_modules/nopt": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
- "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
+ "node_modules/postcss-selector-parser": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "abbrev": "1",
- "osenv": "^0.1.4"
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
},
- "bin": {
- "nopt": "bin/nopt.js"
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/grunt-contrib-clean": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-2.0.1.tgz",
- "integrity": "sha512-uRvnXfhiZt8akb/ZRDHJpQQtkkVkqc/opWO4Po/9ehC2hPxgptB9S6JHDC/Nxswo4CJSM0iFPT/Iym3cEMWzKA==",
+ "node_modules/postcss-svgo": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz",
+ "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "async": "^3.2.3",
- "rimraf": "^2.6.2"
+ "postcss-value-parser": "^4.2.0",
+ "svgo": "^3.2.0"
},
"engines": {
- "node": ">=12"
+ "node": "^14 || ^16 || >= 18"
},
"peerDependencies": {
- "grunt": ">=0.4.5"
+ "postcss": "^8.4.31"
}
},
- "node_modules/grunt-contrib-clean/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "node_modules/postcss-unique-selectors": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz",
+ "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "glob": "^7.1.3"
+ "postcss-selector-parser": "^6.0.16"
},
- "bin": {
- "rimraf": "bin.js"
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/grunt-contrib-cssmin": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-5.0.0.tgz",
- "integrity": "sha512-SNp4H4+85mm2xaHYi83FBHuOXylpi5vcwgtNoYCZBbkgeXQXoeTAKa59VODRb0woTDBvxouP91Ff5PzCkikg6g==",
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
- "dependencies": {
- "chalk": "^4.1.2",
- "clean-css": "^5.3.2",
- "maxmin": "^3.0.0"
- },
"engines": {
- "node": ">=14.0"
+ "node": ">= 0.8.0"
}
},
- "node_modules/grunt-contrib-cssmin/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==",
+ "node_modules/prettier": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
+ "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
"dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
+ "peer": true,
+ "bin": {
+ "prettier": "bin/prettier.cjs"
},
"engines": {
- "node": ">=8"
+ "node": ">=14"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/prettier/prettier?sponsor=1"
}
},
- "node_modules/grunt-contrib-cssmin/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
"dev": true,
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "fast-diff": "^1.1.2"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": ">=6.0.0"
}
},
- "node_modules/grunt-contrib-cssmin/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==",
+ "node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "color-name": "~1.1.4"
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
},
"engines": {
- "node": ">=7.0.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/grunt-contrib-cssmin/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/pretty-format/node_modules/react-is": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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,
+ "license": "MIT"
},
- "node_modules/grunt-contrib-cssmin/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==",
+ "node_modules/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=0.4.0"
}
},
- "node_modules/grunt-contrib-cssmin/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==",
+ "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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "has-flag": "^4.0.0"
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
},
"engines": {
- "node": ">=8"
+ "node": ">= 6"
}
},
- "node_modules/grunt-contrib-uglify": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-5.2.2.tgz",
- "integrity": "sha512-ITxiWxrjjP+RZu/aJ5GLvdele+sxlznh+6fK9Qckio5ma8f7Iv8woZjRkGfafvpuygxNefOJNc+hfjjBayRn2Q==",
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dev": true,
"dependencies": {
- "chalk": "^4.1.2",
- "maxmin": "^3.0.0",
- "uglify-js": "^3.16.1",
- "uri-path": "^1.0.0"
- },
- "engines": {
- "node": ">=12"
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
}
},
- "node_modules/grunt-contrib-uglify/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==",
+ "node_modules/proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": ">= 0.10"
}
},
- "node_modules/grunt-contrib-uglify/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/proxy-addr/node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": ">= 0.10"
}
},
- "node_modules/grunt-contrib-uglify/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==",
+ "node_modules/proxy-agent": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz",
+ "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "color-name": "~1.1.4"
+ "agent-base": "^7.1.2",
+ "debug": "^4.3.4",
+ "http-proxy-agent": "^7.0.1",
+ "https-proxy-agent": "^7.0.6",
+ "lru-cache": "^7.14.1",
+ "pac-proxy-agent": "^7.1.0",
+ "proxy-from-env": "^1.1.0",
+ "socks-proxy-agent": "^8.0.5"
},
"engines": {
- "node": ">=7.0.0"
+ "node": ">= 14"
}
},
- "node_modules/grunt-contrib-uglify/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/grunt-contrib-uglify/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==",
+ "node_modules/proxy-agent/node_modules/agent-base": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
+ "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">= 14"
}
},
- "node_modules/grunt-contrib-uglify/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==",
+ "node_modules/proxy-agent/node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "has-flag": "^4.0.0"
+ "agent-base": "^7.1.2",
+ "debug": "4"
},
"engines": {
- "node": ">=8"
+ "node": ">= 14"
}
},
- "node_modules/grunt-known-options": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz",
- "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==",
+ "node_modules/proxy-agent/node_modules/lru-cache": {
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=12"
}
},
- "node_modules/grunt-legacy-log": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz",
- "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==",
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/psl": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pump": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "colors": "~1.1.2",
- "grunt-legacy-log-utils": "~2.1.0",
- "hooker": "~0.2.3",
- "lodash": "~4.17.19"
- },
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
"engines": {
- "node": ">= 0.10.0"
+ "node": ">=6"
}
},
- "node_modules/grunt-legacy-log-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz",
- "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==",
+ "node_modules/puppeteer-core": {
+ "version": "23.10.3",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.10.3.tgz",
+ "integrity": "sha512-7JG8klL2qHLyH8t2pOmM9zgykhaulUf7cxnmmqupjdwGfNMiGaYehQka20iUB9R/fwVyG8mFMZcsmw1FHrgKVw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "chalk": "~4.1.0",
- "lodash": "~4.17.19"
+ "@puppeteer/browsers": "2.6.1",
+ "chromium-bidi": "0.8.0",
+ "debug": "^4.4.0",
+ "devtools-protocol": "0.0.1367902",
+ "typed-query-selector": "^2.12.0",
+ "ws": "^8.18.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
}
},
- "node_modules/grunt-legacy-log-utils/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==",
+ "node_modules/puppeteer-core/node_modules/devtools-protocol": {
+ "version": "0.0.1367902",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz",
+ "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==",
"dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/puppeteer-core/node_modules/ws": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=10.0.0"
},
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
}
},
- "node_modules/grunt-legacy-log-utils/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/pure-rand": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz",
+ "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/dubzzz"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fast-check"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/qs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
"dev": true,
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "side-channel": "^1.0.6"
},
"engines": {
- "node": ">=10"
+ "node": ">=0.6"
},
"funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/grunt-legacy-log-utils/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==",
+ "node_modules/querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
"dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
+ "license": "MIT"
},
- "node_modules/grunt-legacy-log-utils/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/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "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/grunt-legacy-log-utils/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==",
+ "node_modules/queue-tick": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/quick-lru": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/grunt-legacy-log-utils/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==",
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "has-flag": "^4.0.0"
- },
+ "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==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">= 0.6"
}
},
- "node_modules/grunt-legacy-util": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz",
- "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==",
+ "node_modules/raw-body": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
"dev": true,
"dependencies": {
- "async": "~3.2.0",
- "exit": "~0.1.2",
- "getobject": "~1.0.0",
- "hooker": "~0.2.3",
- "lodash": "~4.17.21",
- "underscore.string": "~3.3.5",
- "which": "~2.0.2"
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">= 0.8"
}
},
- "node_modules/grunt/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "node_modules/raw-body/node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"dev": true,
- "dependencies": {
- "sprintf-js": "~1.0.2"
+ "engines": {
+ "node": ">= 0.8"
}
},
- "node_modules/grunt/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==",
+ "node_modules/raw-body/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": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/grunt/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==",
+ "node_modules/react": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"dev": true,
"dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
+ "loose-envify": "^1.1.0"
},
- "bin": {
- "js-yaml": "bin/js-yaml.js"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/grunt/node_modules/minimatch": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz",
- "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==",
+ "node_modules/react-dom": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.2"
},
- "engines": {
- "node": "*"
+ "peerDependencies": {
+ "react": "^18.3.1"
}
},
- "node_modules/grunt/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true
},
- "node_modules/gzip-size": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
- "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==",
+ "node_modules/react-refresh": {
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
+ "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==",
"dev": true,
- "dependencies": {
- "duplexer": "^0.1.1",
- "pify": "^4.0.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/has-bigints": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "node_modules/read-package-json-fast": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz",
+ "integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==",
"dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "license": "ISC",
+ "dependencies": {
+ "json-parse-even-better-errors": "^4.0.0",
+ "npm-normalize-package-bin": "^4.0.0"
+ },
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
}
},
- "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==",
+ "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz",
+ "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": "^18.17.0 || >=20.5.0"
}
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ },
+ "node_modules/read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "es-define-property": "^1.0.0"
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/has-proto": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "node_modules/read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
"engines": {
- "node": ">= 0.4"
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "node_modules/read-pkg-up/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==",
"dev": true,
- "engines": {
- "node": ">= 0.4"
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/has-tostringtag": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "node_modules/read-pkg-up/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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "has-symbols": "^1.0.3"
+ "p-locate": "^4.1.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=8"
}
},
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "node_modules/read-pkg-up/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,
+ "license": "MIT",
"dependencies": {
- "function-bind": "^1.1.2"
+ "p-try": "^2.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/homedir-polyfill": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
- "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "node_modules/read-pkg-up/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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "parse-passwd": "^1.0.0"
+ "p-limit": "^2.2.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/hooker": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
- "integrity": "sha512-t+UerCsQviSymAInD01Pw+Dn/usmz1sRO+3Zk1+lx8eg+WKpD2ulcwWqHHL0+aseRBr+3+vIhiG1K1JTwaIcTA==",
+ "node_modules/read-pkg-up/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,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
- "node": "*"
+ "node": ">=8"
}
},
- "node_modules/hosted-git-info": {
+ "node_modules/read-pkg/node_modules/hosted-git-info": {
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
- "node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "node_modules/read-pkg/node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
}
},
- "node_modules/ignore": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "node_modules/read-pkg/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/read-pkg/node_modules/type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
- "node": ">= 4"
+ "node": ">=8"
}
},
- "node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
},
"engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 6"
}
},
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
"engines": {
- "node": ">=0.8.19"
+ "node": ">=8.10.0"
}
},
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "node_modules/redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "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/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
- },
- "node_modules/internal-slot": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
- "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "node_modules/reflect.getprototypeof": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
+ "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.1",
"es-errors": "^1.3.0",
- "hasown": "^2.0.0",
- "side-channel": "^1.0.4"
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.3",
+ "which-builtin-type": "^1.1.3"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/interpret": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
- "integrity": "sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA==",
- "dev": true
+ "node_modules/regenerate": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/is-absolute": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
- "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+ "node_modules/regenerate-unicode-properties": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz",
+ "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-relative": "^1.0.0",
- "is-windows": "^1.0.1"
+ "regenerate": "^1.4.2"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/is-arguments": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
- "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "node_modules/regenerator-runtime": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
+ "dev": true
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
+ "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -5510,307 +18178,375 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-array-buffer": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
- "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "node_modules/regexpu-core": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz",
+ "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.1"
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.2.0",
+ "regjsgen": "^0.8.0",
+ "regjsparser": "^0.11.0",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=4"
}
},
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
+ "node_modules/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/is-async-function": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
- "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+ "node_modules/regjsparser": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.1.tgz",
+ "integrity": "sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "jsesc": "~3.0.2"
},
+ "bin": {
+ "regjsparser": "bin/parser"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=0.10.0"
}
},
- "node_modules/is-bigint": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/requireindex": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
+ "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.5"
+ }
+ },
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
"dependencies": {
- "has-bigints": "^1.0.1"
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-boolean-object": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "node_modules/resolve-bin": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/resolve-bin/-/resolve-bin-0.4.3.tgz",
+ "integrity": "sha512-9u8TMpc+SEHXxQXblXHz5yRvRZERkCZimFN9oz85QI3uhkh7nqfjm6OGTLg+8vucpXGcY4jLK6WkylPmt7GSvw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "find-parent-dir": "~0.3.0"
}
},
- "node_modules/is-builtin-module": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
- "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
+ "node_modules/resolve-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "builtin-modules": "^3.3.0"
+ "resolve-from": "^5.0.0"
},
"engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
- "node_modules/is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "node_modules/resolve-cwd/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=8"
}
},
- "node_modules/is-core-module": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz",
- "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==",
+ "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,
- "dependencies": {
- "hasown": "^2.0.2"
- },
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=4"
}
},
- "node_modules/is-data-view": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
- "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "node_modules/resolve.exports": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
+ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
"dev": true,
- "dependencies": {
- "is-typed-array": "^1.1.13"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=10"
}
},
- "node_modules/is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "node_modules/retry": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
+ "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
"dev": true,
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">= 4"
}
},
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
"dev": true,
"engines": {
+ "iojs": ">=1.0.0",
"node": ">=0.10.0"
}
},
- "node_modules/is-finalizationregistry": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
- "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2"
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/is-generator-function": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
- "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "node_modules/rimraf/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,
+ "license": "MIT",
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/rimraf/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": 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": ">= 0.4"
+ "node": "*"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "node_modules/rimraf/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,
+ "license": "ISC",
"dependencies": {
- "is-extglob": "^2.1.1"
+ "brace-expansion": "^1.1.7"
},
"engines": {
- "node": ">=0.10.0"
+ "node": "*"
}
},
- "node_modules/is-map": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
- "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+ "node_modules/robots-parser": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-3.0.1.tgz",
+ "integrity": "sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=10.0.0"
}
},
- "node_modules/is-negative-zero": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
- "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "node_modules/rtlcss": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz",
+ "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==",
"dev": true,
- "engines": {
- "node": ">= 0.4"
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^5.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.3.11",
+ "strip-json-comments": "^3.1.1"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "bin": {
+ "rtlcss": "bin/rtlcss.js"
}
},
- "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==",
+ "node_modules/rtlcss-webpack-plugin": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/rtlcss-webpack-plugin/-/rtlcss-webpack-plugin-4.0.7.tgz",
+ "integrity": "sha512-ouSbJtgcLBBQIsMgarxsDnfgRqm/AS4BKls/mz/Xb6HSl+PdEzefTR+Wz5uWQx4odoX0g261Z7yb3QBz0MTm0g==",
"dev": true,
- "engines": {
- "node": ">=0.12.0"
+ "license": "MIT",
+ "dependencies": {
+ "babel-runtime": "~6.25.0",
+ "rtlcss": "^3.5.0"
}
},
- "node_modules/is-number-object": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "node_modules/run-con": {
+ "version": "1.2.12",
+ "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz",
+ "integrity": "sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg==",
"dev": true,
+ "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
"dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
+ "deep-extend": "^0.6.0",
+ "ini": "~3.0.0",
+ "minimist": "^1.2.8",
+ "strip-json-comments": "~3.1.1"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "bin": {
+ "run-con": "cli.js"
}
},
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "node_modules/run-con/node_modules/ini": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz",
+ "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=8"
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.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": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"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": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "queue-microtask": "^1.2.2"
}
},
- "node_modules/is-regex": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "tslib": "^2.1.0"
}
},
- "node_modules/is-relative": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
- "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+ "node_modules/safe-array-concat": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
+ "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
"dev": true,
"dependencies": {
- "is-unc-path": "^1.0.0"
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
},
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-set": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
- "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
+ "node": ">=0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-shared-array-buffer": {
+ "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"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/safe-regex-test": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
- "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+ "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.7"
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-regex": "^1.1.4"
},
"engines": {
"node": ">= 0.4"
@@ -5819,466 +18555,564 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "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": {
+ "version": "1.77.8",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz",
+ "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
},
- "engines": {
- "node": ">= 0.4"
+ "bin": {
+ "sass": "sass.js"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=14.0.0"
}
},
- "node_modules/is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "node_modules/sass-loader": {
+ "version": "16.0.4",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.4.tgz",
+ "integrity": "sha512-LavLbgbBGUt3wCiYzhuLLu65+fWXaXLmq7YxivLhEqmiupCFZ5sKUAipK3do6V80YSU0jvSxNhEdT13IXNr3rg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "has-symbols": "^1.0.2"
+ "neo-async": "^2.6.2"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">= 18.12.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "@rspack/core": "0.x || 1.x",
+ "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
+ "sass": "^1.3.0",
+ "sass-embedded": "*",
+ "webpack": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@rspack/core": {
+ "optional": true
+ },
+ "node-sass": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
}
},
- "node_modules/is-typed-array": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
- "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "node_modules/saxes": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
+ "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "which-typed-array": "^1.1.14"
+ "xmlchars": "^2.2.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=v12.22.7"
}
},
- "node_modules/is-unc-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
- "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+ "node_modules/scheduler": {
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "unc-path-regex": "^0.1.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "loose-envify": "^1.1.0"
}
},
- "node_modules/is-weakmap": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
- "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
+ "node_modules/schema-utils": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
+ "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
+ },
"engines": {
- "node": ">= 0.4"
+ "node": ">= 12.13.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
}
},
- "node_modules/is-weakref": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "node_modules/schema-utils/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2"
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/is-weakset": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
- "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
+ "node_modules/schema-utils/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
- "get-intrinsic": "^1.2.4"
+ "fast-deep-equal": "^3.1.3"
},
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "ajv": "^8.8.2"
}
},
- "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==",
+ "node_modules/schema-utils/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true
+ "license": "MIT"
},
- "node_modules/isexe": {
+ "node_modules/select-hose": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
+ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "node_modules/select2": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/select2/-/select2-4.0.13.tgz",
+ "integrity": "sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==",
+ "license": "MIT"
+ },
+ "node_modules/selfsigned": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz",
+ "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node-forge": "^1.3.0",
+ "node-forge": "^1"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
}
},
- "node_modules/iterator.prototype": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
- "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==",
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
- "dependencies": {
- "define-properties": "^1.2.1",
- "get-intrinsic": "^1.2.1",
- "has-symbols": "^1.0.3",
- "reflect.getprototypeof": "^1.0.4",
- "set-function-name": "^2.0.1"
+ "bin": {
+ "semver": "bin/semver.js"
}
},
- "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/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "node_modules/send": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
+ "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
"dev": true,
"dependencies": {
- "argparse": "^2.0.1"
+ "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"
},
- "bin": {
- "js-yaml": "bin/js-yaml.js"
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "node_modules/jsdoc-type-pratt-parser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz",
- "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==",
+ "node_modules/send/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/send/node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
+ },
+ "node_modules/send/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==",
"dev": true,
"engines": {
- "node": ">=12.0.0"
+ "node": ">= 0.8"
}
},
- "node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "node_modules/send/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,
"bin": {
- "jsesc": "bin/jsesc"
+ "mime": "cli.js"
},
"engines": {
"node": ">=4"
}
},
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "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-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "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==",
+ "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==",
"dev": true
},
- "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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
+ "node_modules/sentence-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz",
+ "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3",
+ "upper-case-first": "^2.0.2"
+ }
},
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "node_modules/serialize-javascript": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"dev": true,
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "randombytes": "^2.1.0"
}
},
- "node_modules/jsx-ast-utils": {
- "version": "3.3.5",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
- "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
+ "node_modules/serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.flat": "^1.3.1",
- "object.assign": "^4.1.4",
- "object.values": "^1.1.6"
+ "accepts": "~1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
},
"engines": {
- "node": ">=4.0"
+ "node": ">= 0.8.0"
}
},
- "node_modules/keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "node_modules/serve-index/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "json-buffer": "3.0.1"
+ "ms": "2.0.0"
}
},
- "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==",
+ "node_modules/serve-index/node_modules/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.6"
}
},
- "node_modules/language-subtag-registry": {
- "version": "0.3.23",
- "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
- "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==",
- "dev": true
+ "node_modules/serve-index/node_modules/http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
},
- "node_modules/language-tags": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
- "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
+ "node_modules/serve-index/node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/serve-index/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/serve-index/node_modules/setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/serve-index/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==",
"dev": true,
- "dependencies": {
- "language-subtag-registry": "^0.3.20"
- },
+ "license": "MIT",
"engines": {
- "node": ">=0.10"
+ "node": ">= 0.6"
}
},
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "node_modules/serve-static": {
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
+ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
"dev": true,
"dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.19.0"
},
"engines": {
"node": ">= 0.8.0"
}
},
- "node_modules/liftup": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz",
- "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==",
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dev": true,
"dependencies": {
- "extend": "^3.0.2",
- "findup-sync": "^4.0.0",
- "fined": "^1.2.0",
- "flagged-respawn": "^1.0.1",
- "is-plain-object": "^2.0.4",
- "object.map": "^1.0.1",
- "rechoir": "^0.7.0",
- "resolve": "^1.19.0"
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
}
},
- "node_modules/liftup/node_modules/findup-sync": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz",
- "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==",
+ "node_modules/set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
"dev": true,
"dependencies": {
- "detect-file": "^1.0.0",
- "is-glob": "^4.0.0",
- "micromatch": "^4.0.2",
- "resolve-dir": "^1.0.1"
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
- "node": ">= 8"
+ "node": ">= 0.4"
}
},
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
"dev": true
},
- "node_modules/load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
+ "node_modules/shallow-clone": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz",
+ "integrity": "sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
+ "is-extendable": "^0.1.1",
+ "kind-of": "^2.0.1",
+ "lazy-cache": "^0.2.3",
+ "mixin-object": "^2.0.1"
},
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/load-json-file/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==",
+ "node_modules/shallow-clone/node_modules/kind-of": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz",
+ "integrity": "sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "is-buffer": "^1.0.2"
},
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/load-json-file/node_modules/pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "node_modules/shallow-clone/node_modules/lazy-cache": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz",
+ "integrity": "sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "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==",
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"dependencies": {
- "p-locate": "^5.0.0"
+ "shebang-regex": "^3.0.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
- },
- "node_modules/lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "dev": true
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
},
- "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/shell-quote": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "node_modules/loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "node_modules/side-channel": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"dev": true,
"dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
},
- "bin": {
- "loose-envify": "cli.js"
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "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==",
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"dev": true,
- "dependencies": {
- "yallist": "^3.0.2"
- }
+ "license": "ISC"
},
- "node_modules/make-iterator": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
- "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
+ "node_modules/sirv": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
+ "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "kind-of": "^6.0.2"
+ "@polka/url": "^1.0.0-next.24",
+ "mrmime": "^2.0.0",
+ "totalist": "^3.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 10"
}
},
- "node_modules/map-cache": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
+ "node_modules/sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/maxmin": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-3.0.0.tgz",
- "integrity": "sha512-wcahMInmGtg/7c6a75fr21Ch/Ks1Tb+Jtoan5Ft4bAI0ZvJqyOw8kkM7e7p8hDSzY805vmxwHT50KcjGwKyJ0g==",
+ "node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "chalk": "^4.1.0",
- "figures": "^3.2.0",
- "gzip-size": "^5.1.1",
- "pretty-bytes": "^5.3.0"
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
}
},
- "node_modules/maxmin/node_modules/ansi-styles": {
+ "node_modules/slice-ansi/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -6289,27 +19123,12 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/maxmin/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": 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/maxmin/node_modules/color-convert": {
+ "node_modules/slice-ansi/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -6317,288 +19136,407 @@
"node": ">=7.0.0"
}
},
- "node_modules/maxmin/node_modules/color-name": {
+ "node_modules/slice-ansi/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
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/maxmin/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==",
+ "node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
}
},
- "node_modules/maxmin/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==",
+ "node_modules/snake-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz",
+ "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
}
},
- "node_modules/memorystream": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
- "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==",
+ "node_modules/sockjs": {
+ "version": "0.3.24",
+ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
+ "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
"dev": true,
- "engines": {
- "node": ">= 0.10.0"
+ "license": "MIT",
+ "dependencies": {
+ "faye-websocket": "^0.11.3",
+ "uuid": "^8.3.2",
+ "websocket-driver": "^0.7.4"
}
},
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "node_modules/sockjs/node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true,
- "engines": {
- "node": ">= 8"
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
}
},
- "node_modules/micromatch": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
- "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
+ "node_modules/socks": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
+ "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
+ "ip-address": "^9.0.5",
+ "smart-buffer": "^4.2.0"
},
"engines": {
- "node": ">=8.6"
+ "node": ">= 10.0.0",
+ "npm": ">= 3.0.0"
}
},
- "node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "node_modules/socks-proxy-agent": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz",
+ "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "agent-base": "^7.1.2",
+ "debug": "^4.3.4",
+ "socks": "^2.8.3"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": ">= 14"
}
},
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "node_modules/socks-proxy-agent/node_modules/agent-base": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
+ "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
"dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
}
},
- "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/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/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "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/source-map-loader": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz",
+ "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "abab": "^2.0.5",
+ "iconv-lite": "^0.6.3",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.0.0"
+ }
},
- "node_modules/node-releases": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
- "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
- "dev": true
+ "node_modules/source-map-support": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
},
- "node_modules/nopt": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
- "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==",
+ "node_modules/spawnd": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-10.1.4.tgz",
+ "integrity": "sha512-drqHc0mKJmtMsiGMOCwzlc5eZ0RPtRvT7tQAluW2A0qUc0G7TQ8KLcn3E6K5qzkLkH2UkS3nYQiVGULvvsD9dw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "abbrev": "1"
+ "signal-exit": "^4.1.0",
+ "tree-kill": "^1.2.2"
},
- "bin": {
- "nopt": "bin/nopt.js"
+ "engines": {
+ "node": ">=16"
}
},
- "node_modules/normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "node_modules/spawnd/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
}
},
- "node_modules/normalize-package-data/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "node_modules/spdx-correct/node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
- "bin": {
- "semver": "bin/semver"
+ "license": "MIT",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
}
},
- "node_modules/npm-run-all": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
- "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
+ "node_modules/spdx-exceptions": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
+ "dev": true
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
+ "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
"dev": true,
"dependencies": {
- "ansi-styles": "^3.2.1",
- "chalk": "^2.4.1",
- "cross-spawn": "^6.0.5",
- "memorystream": "^0.3.1",
- "minimatch": "^3.0.4",
- "pidtree": "^0.3.0",
- "read-pkg": "^3.0.0",
- "shell-quote": "^1.6.1",
- "string.prototype.padend": "^3.0.0"
- },
- "bin": {
- "npm-run-all": "bin/npm-run-all/index.js",
- "run-p": "bin/run-p/index.js",
- "run-s": "bin/run-s/index.js"
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.18",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz",
+ "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==",
+ "dev": true
+ },
+ "node_modules/spdy": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
+ "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.0",
+ "handle-thing": "^2.0.0",
+ "http-deceiver": "^1.2.7",
+ "select-hose": "^2.0.0",
+ "spdy-transport": "^3.0.0"
},
"engines": {
- "node": ">= 4"
+ "node": ">=6.0.0"
}
},
- "node_modules/npm-run-all/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==",
+ "node_modules/spdy-transport": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
+ "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "debug": "^4.1.0",
+ "detect-node": "^2.0.4",
+ "hpack.js": "^2.1.6",
+ "obuf": "^1.1.2",
+ "readable-stream": "^3.0.6",
+ "wbuf": "^1.7.3"
}
},
- "node_modules/npm-run-all/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==",
+ "node_modules/speedline-core": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz",
+ "integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "@types/node": "*",
+ "image-ssim": "^0.2.0",
+ "jpeg-js": "^0.4.1"
},
"engines": {
- "node": ">=4.8"
+ "node": ">=8.0"
}
},
- "node_modules/npm-run-all/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/sprintf-js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "escape-string-regexp": "^2.0.0"
},
"engines": {
- "node": "*"
+ "node": ">=10"
}
},
- "node_modules/npm-run-all/node_modules/path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "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==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/npm-run-all/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "node_modules/stackframe": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==",
"dev": true,
- "bin": {
- "semver": "bin/semver"
+ "license": "MIT"
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
}
},
- "node_modules/npm-run-all/node_modules/shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "node_modules/streamx": {
+ "version": "2.20.1",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz",
+ "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "shebang-regex": "^1.0.0"
+ "fast-fifo": "^1.3.2",
+ "queue-tick": "^1.0.1",
+ "text-decoder": "^1.1.0"
},
- "engines": {
- "node": ">=0.10.0"
+ "optionalDependencies": {
+ "bare-events": "^2.2.0"
}
},
- "node_modules/npm-run-all/node_modules/shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "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,
- "engines": {
- "node": ">=0.10.0"
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
}
},
- "node_modules/npm-run-all/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "node_modules/string-length": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "isexe": "^2.0.0"
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
},
- "bin": {
- "which": "bin/which"
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "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==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/object-inspect": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
- "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+ "node_modules/string-width/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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string.prototype.includes": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz",
+ "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3"
+ },
"engines": {
"node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object-is": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz",
- "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==",
+ "node_modules/string.prototype.matchall": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
+ "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.7",
- "define-properties": "^1.2.1"
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "regexp.prototype.flags": "^1.5.2",
+ "set-function-name": "^2.0.2",
+ "side-channel": "^1.0.6"
},
"engines": {
"node": ">= 0.4"
@@ -6607,25 +19545,26 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "node_modules/string.prototype.repeat": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
"dev": true,
- "engines": {
- "node": ">= 0.4"
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
}
},
- "node_modules/object.assign": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
- "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+ "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
+ "es-abstract": "^1.23.0",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -6634,25 +19573,24 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object.defaults": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
- "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==",
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+ "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
"dev": true,
"dependencies": {
- "array-each": "^1.0.1",
- "array-slice": "^1.0.0",
- "for-own": "^1.0.0",
- "isobject": "^3.0.0"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
- "engines": {
- "node": ">=0.10.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object.entries": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
- "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -6661,928 +19599,1156 @@
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object.fromentries": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
- "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
+ "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": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0"
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "min-indent": "^1.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/object.groupby": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
- "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
+ "node_modules/strip-outer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
+ "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2"
+ "escape-string-regexp": "^1.0.2"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=0.10.0"
}
},
- "node_modules/object.map": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
- "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==",
+ "node_modules/style-search": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
+ "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/stylehacks": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz",
+ "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "for-own": "^1.0.0",
- "make-iterator": "^1.0.0"
+ "browserslist": "^4.23.0",
+ "postcss-selector-parser": "^6.0.16"
},
"engines": {
- "node": ">=0.10.0"
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
}
},
- "node_modules/object.pick": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
+ "node_modules/stylelint": {
+ "version": "16.10.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.10.0.tgz",
+ "integrity": "sha512-z/8X2rZ52dt2c0stVwI9QL2AFJhLhbPkyfpDFcizs200V/g7v+UYY6SNcB9hKOLcDDX/yGLDsY/pX08sLkz9xQ==",
"dev": true,
- "dependencies": {
- "isobject": "^3.0.1"
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/stylelint"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/stylelint"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.1",
+ "@csstools/css-tokenizer": "^3.0.1",
+ "@csstools/media-query-list-parser": "^3.0.1",
+ "@csstools/selector-specificity": "^4.0.0",
+ "@dual-bundle/import-meta-resolve": "^4.1.0",
+ "balanced-match": "^2.0.0",
+ "colord": "^2.9.3",
+ "cosmiconfig": "^9.0.0",
+ "css-functions-list": "^3.2.3",
+ "css-tree": "^3.0.0",
+ "debug": "^4.3.7",
+ "fast-glob": "^3.3.2",
+ "fastest-levenshtein": "^1.0.16",
+ "file-entry-cache": "^9.1.0",
+ "global-modules": "^2.0.0",
+ "globby": "^11.1.0",
+ "globjoin": "^0.1.4",
+ "html-tags": "^3.3.1",
+ "ignore": "^6.0.2",
+ "imurmurhash": "^0.1.4",
+ "is-plain-object": "^5.0.0",
+ "known-css-properties": "^0.34.0",
+ "mathml-tag-names": "^2.1.3",
+ "meow": "^13.2.0",
+ "micromatch": "^4.0.8",
+ "normalize-path": "^3.0.0",
+ "picocolors": "^1.0.1",
+ "postcss": "^8.4.47",
+ "postcss-resolve-nested-selector": "^0.1.6",
+ "postcss-safe-parser": "^7.0.1",
+ "postcss-selector-parser": "^6.1.2",
+ "postcss-value-parser": "^4.2.0",
+ "resolve-from": "^5.0.0",
+ "string-width": "^4.2.3",
+ "supports-hyperlinks": "^3.1.0",
+ "svg-tags": "^1.0.0",
+ "table": "^6.8.2",
+ "write-file-atomic": "^5.0.1"
+ },
+ "bin": {
+ "stylelint": "bin/stylelint.mjs"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=18.12.0"
}
},
- "node_modules/object.values": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
- "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
+ "node_modules/stylelint-config-recommended": {
+ "version": "14.0.1",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz",
+ "integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/stylelint"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/stylelint"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
+ "node": ">=18.12.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "stylelint": "^16.1.0"
}
},
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "node_modules/stylelint-config-recommended-scss": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-14.1.0.tgz",
+ "integrity": "sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "wrappy": "1"
+ "postcss-scss": "^4.0.9",
+ "stylelint-config-recommended": "^14.0.1",
+ "stylelint-scss": "^6.4.0"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.3.3",
+ "stylelint": "^16.6.1"
+ },
+ "peerDependenciesMeta": {
+ "postcss": {
+ "optional": true
+ }
}
},
- "node_modules/optionator": {
- "version": "0.9.4",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
- "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
+ "node_modules/stylelint-scss": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.8.0.tgz",
+ "integrity": "sha512-6gjsCZ30UUF6ivjZB2Z+1lb6k0+JFa1uR2MgGbYu76xRjEfvNTpSS1nQim1Gom1ijFF9GzauOiq1Kr7zKptQOw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.5"
+ "css-tree": "^3.0.0",
+ "is-plain-object": "^5.0.0",
+ "known-css-properties": "^0.34.0",
+ "mdn-data": "^2.0.30",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-resolve-nested-selector": "^0.1.6",
+ "postcss-selector-parser": "^6.1.2",
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=18.12.0"
+ },
+ "peerDependencies": {
+ "stylelint": "^16.0.2"
}
},
- "node_modules/os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
+ "node_modules/stylelint-scss/node_modules/css-tree": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.0.tgz",
+ "integrity": "sha512-o88DVQ6GzsABn1+6+zo2ct801dBO5OASVyxbbvA2W20ue2puSh/VOuqUj90eUeMSX/xqGqBmOKiRQN7tJOuBXw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.10.0",
+ "source-map-js": "^1.0.1"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
}
},
- "node_modules/os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "node_modules/stylelint-scss/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dev": true,
+ "license": "MIT",
"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==",
- "deprecated": "This package is no longer supported.",
+ "node_modules/stylelint-scss/node_modules/mdn-data": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.10.0.tgz",
+ "integrity": "sha512-qq7C3EtK3yJXMwz1zAab65pjl+UhohqMOctTgcqjLOWABqmwj+me02LSsCuEUxnst9X1lCBpoE0WArGKgdGDzw==",
"dev": true,
- "dependencies": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.0"
- }
+ "license": "CC0-1.0"
},
- "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==",
+ "node_modules/stylelint/node_modules/balanced-match": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
+ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/stylelint/node_modules/cosmiconfig": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
+ "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "yocto-queue": "^0.1.0"
+ "env-paths": "^2.2.1",
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "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==",
+ "node_modules/stylelint/node_modules/css-tree": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.0.tgz",
+ "integrity": "sha512-o88DVQ6GzsABn1+6+zo2ct801dBO5OASVyxbbvA2W20ue2puSh/VOuqUj90eUeMSX/xqGqBmOKiRQN7tJOuBXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "p-limit": "^3.0.2"
+ "mdn-data": "2.10.0",
+ "source-map-js": "^1.0.1"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
}
},
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "node_modules/stylelint/node_modules/file-entry-cache": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz",
+ "integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "callsites": "^3.0.0"
+ "flat-cache": "^5.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=18"
}
},
- "node_modules/parse-filepath": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
- "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==",
+ "node_modules/stylelint/node_modules/flat-cache": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz",
+ "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-absolute": "^1.0.0",
- "map-cache": "^0.2.0",
- "path-root": "^0.1.1"
+ "flatted": "^3.3.1",
+ "keyv": "^4.5.4"
},
"engines": {
- "node": ">=0.8"
+ "node": ">=18"
}
},
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "node_modules/stylelint/node_modules/ignore": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz",
+ "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==",
"dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
+ "license": "MIT",
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 4"
}
},
- "node_modules/parse-passwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
- "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
+ "node_modules/stylelint/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "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==",
+ "node_modules/stylelint/node_modules/mdn-data": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.10.0.tgz",
+ "integrity": "sha512-qq7C3EtK3yJXMwz1zAab65pjl+UhohqMOctTgcqjLOWABqmwj+me02LSsCuEUxnst9X1lCBpoE0WArGKgdGDzw==",
"dev": true,
- "engines": {
- "node": ">=8"
- }
+ "license": "CC0-1.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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "node_modules/stylelint/node_modules/meow": {
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
+ "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "node_modules/stylelint/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
+ "node_modules/stylelint/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
},
- "node_modules/path-root": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
- "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==",
+ "node_modules/stylelint/node_modules/write-file-atomic": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "path-root-regex": "^0.1.0"
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^4.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/path-root-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
- "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==",
+ "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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "node_modules/supports-hyperlinks": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz",
+ "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/picocolors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
- "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
- "dev": true
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "node_modules/supports-hyperlinks/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,
+ "license": "MIT",
"engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "node": ">=8"
}
},
- "node_modules/pidtree": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz",
- "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==",
+ "node_modules/supports-hyperlinks/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,
- "bin": {
- "pidtree": "bin/pidtree.js"
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": ">=0.10"
+ "node": ">=8"
}
},
- "node_modules/pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true,
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/possible-typed-array-names": {
+ "node_modules/svg-parser": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz",
+ "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/svg-tags": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
- "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
+ "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
+ "dev": true
+ },
+ "node_modules/svgo": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz",
+ "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
+ "css-select": "^5.1.0",
+ "css-tree": "^2.3.1",
+ "css-what": "^6.1.0",
+ "csso": "^5.0.5",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "svgo": "bin/svgo"
+ },
"engines": {
- "node": ">= 0.4"
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/svgo"
}
},
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "node_modules/svgo/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.8.0"
+ "node": ">= 10"
}
},
- "node_modules/prettier": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
- "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
+ "node_modules/symbol-tree": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"dev": true,
- "peer": true,
- "bin": {
- "prettier": "bin/prettier.cjs"
+ "license": "MIT"
+ },
+ "node_modules/synckit": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz",
+ "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==",
+ "dev": true,
+ "dependencies": {
+ "@pkgr/core": "^0.1.0",
+ "tslib": "^2.6.2"
},
"engines": {
- "node": ">=14"
+ "node": "^14.18.0 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
+ "url": "https://opencollective.com/unts"
}
},
- "node_modules/prettier-linter-helpers": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
- "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "node_modules/table": {
+ "version": "6.8.2",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz",
+ "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "fast-diff": "^1.1.2"
+ "ajv": "^8.0.1",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=10.0.0"
}
},
- "node_modules/pretty-bytes": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
- "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
+ "node_modules/table/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
- "engines": {
- "node": ">=6"
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/prop-types": {
- "version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "node_modules/table/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true,
- "dependencies": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
- }
+ "license": "MIT"
},
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "node_modules/tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "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/react": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
- "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
+ "node_modules/tar-fs": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz",
+ "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "loose-envify": "^1.1.0"
+ "pump": "^3.0.0",
+ "tar-stream": "^3.1.5"
},
- "engines": {
- "node": ">=0.10.0"
+ "optionalDependencies": {
+ "bare-fs": "^2.1.1",
+ "bare-path": "^2.1.0"
}
},
- "node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "dev": true
+ "node_modules/tar-stream": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
+ "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "b4a": "^1.6.4",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.0"
+ }
},
- "node_modules/read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
+ "node_modules/terser": {
+ "version": "5.31.3",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.3.tgz",
+ "integrity": "sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
},
"engines": {
- "node": ">=4"
+ "node": ">=10"
}
},
- "node_modules/read-pkg/node_modules/path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "node_modules/terser-webpack-plugin": {
+ "version": "5.3.10",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
+ "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "pify": "^3.0.0"
+ "@jridgewell/trace-mapping": "^0.3.20",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^3.1.1",
+ "serialize-javascript": "^6.0.1",
+ "terser": "^5.26.0"
},
"engines": {
- "node": ">=4"
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "uglify-js": {
+ "optional": true
+ }
}
},
- "node_modules/read-pkg/node_modules/pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "node_modules/terser-webpack-plugin/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,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/rechoir": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
- "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
+ "node_modules/terser-webpack-plugin/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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "resolve": "^1.9.0"
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">= 10.13.0"
}
},
- "node_modules/reflect.getprototypeof": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
- "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
+ "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.1",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "globalthis": "^1.0.3",
- "which-builtin-type": "^1.1.3"
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">= 10.13.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
}
},
- "node_modules/regenerate": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "dev": true
- },
- "node_modules/regenerate-unicode-properties": {
- "version": "10.1.1",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
- "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
+ "node_modules/terser-webpack-plugin/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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "regenerate": "^1.4.2"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
- "node_modules/regenerator-runtime": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
- "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
- "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,
+ "license": "MIT"
},
- "node_modules/regenerator-transform": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
- "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
+ "node_modules/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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.8.4"
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
}
},
- "node_modules/regexp.prototype.flags": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
- "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
+ "node_modules/test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "call-bind": "^1.0.6",
- "define-properties": "^1.2.1",
- "es-errors": "^1.3.0",
- "set-function-name": "^2.0.1"
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=8"
}
},
- "node_modules/regexpu-core": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
- "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
+ "node_modules/test-exclude/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,
+ "license": "MIT",
"dependencies": {
- "@babel/regjsgen": "^0.8.0",
- "regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^10.1.0",
- "regjsparser": "^0.9.1",
- "unicode-match-property-ecmascript": "^2.0.0",
- "unicode-match-property-value-ecmascript": "^2.1.0"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/test-exclude/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": 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": ">=4"
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/regjsparser": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
- "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
+ "node_modules/test-exclude/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,
+ "license": "ISC",
"dependencies": {
- "jsesc": "~0.5.0"
+ "brace-expansion": "^1.1.7"
},
- "bin": {
- "regjsparser": "bin/parser"
+ "engines": {
+ "node": "*"
}
},
- "node_modules/regjsparser/node_modules/jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "node_modules/text-decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.1.tgz",
+ "integrity": "sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==",
"dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "b4a": "^1.6.4"
}
},
- "node_modules/requireindex": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
- "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==",
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true
+ },
+ "node_modules/third-party-web": {
+ "version": "0.26.2",
+ "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.26.2.tgz",
+ "integrity": "sha512-taJ0Us0lKoYBqcbccMuDElSUPOxmBfwlHe1OkHQ3KFf+RwovvBHdXhbFk9XJVQE2vHzxbTwvwg5GFsT9hbDokQ==",
"dev": true,
- "engines": {
- "node": ">=0.10.5"
- }
+ "license": "MIT"
},
- "node_modules/resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/thunky": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
+ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/timeago": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz",
+ "integrity": "sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ==",
"dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "jquery": ">=1.5.0 <4.0"
}
},
- "node_modules/resolve-dir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
- "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==",
+ "node_modules/tldts-core": {
+ "version": "6.1.66",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.66.tgz",
+ "integrity": "sha512-s07jJruSwndD2X8bVjwioPfqpIc1pDTzszPe9pL1Skbh4bjytL85KNQ3tolqLbCvpQHawIsGfFi9dgerWjqW4g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tldts-icann": {
+ "version": "6.1.66",
+ "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-6.1.66.tgz",
+ "integrity": "sha512-f4AgNXjymBX3/EXYrnvjyBhXVQ+NWyPzXjqRb17vr0b6SprZKVNnsWNFJAPI6JkPHCm7dHhFDgyneHQEq5uJRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "expand-tilde": "^2.0.0",
- "global-modules": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "tldts-core": "^6.1.66"
}
},
- "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==",
+ "node_modules/tmpl": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
"dev": true,
- "engines": {
- "node": ">=4"
- }
+ "license": "BSD-3-Clause"
},
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
"dev": true,
"engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "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,
"dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
+ "is-number": "^7.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "engines": {
+ "node": ">=8.0"
}
},
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "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==",
"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": {
- "queue-microtask": "^1.2.2"
+ "engines": {
+ "node": ">=0.6"
}
},
- "node_modules/safe-array-concat": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
- "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
+ "node_modules/totalist": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
+ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.7",
- "get-intrinsic": "^1.2.4",
- "has-symbols": "^1.0.3",
- "isarray": "^2.0.5"
- },
+ "license": "MIT",
"engines": {
- "node": ">=0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=6"
}
},
- "node_modules/safe-regex-test": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
- "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+ "node_modules/tough-cookie": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
+ "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "call-bind": "^1.0.6",
- "es-errors": "^1.3.0",
- "is-regex": "^1.1.4"
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=6"
}
},
- "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/tough-cookie/node_modules/universalify": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4.0.0"
+ }
},
- "node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "node_modules/tree-kill": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
+ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
"dev": true,
+ "license": "MIT",
"bin": {
- "semver": "bin/semver.js"
+ "tree-kill": "cli.js"
}
},
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "node_modules/trim-newlines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
+ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
"dev": true,
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
+ "node": ">=8"
}
},
- "node_modules/set-function-name": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
- "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "node_modules/trim-repeated": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
+ "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.2"
+ "escape-string-regexp": "^1.0.2"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=0.10.0"
}
},
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "node_modules/ts-api-utils": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
+ "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
"dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
"engines": {
- "node": ">=8"
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
}
},
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "node_modules/tsconfig-paths": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "license": "MIT",
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
}
},
- "node_modules/shell-quote": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
- "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "node_modules/tsconfig-paths/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
}
},
- "node_modules/side-channel": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "node_modules/tslib": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
+ "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
+ "dev": true
+ },
+ "node_modules/tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
+ "tslib": "^1.8.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">= 6"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
}
},
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "node_modules/tsutils/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true,
- "engines": {
- "node": ">=8"
- }
+ "license": "0BSD"
},
- "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==",
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.8.0"
}
},
- "node_modules/spdx-correct": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
- "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "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==",
"dev": true,
- "dependencies": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/spdx-correct/node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
- "dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/spdx-exceptions": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
- "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
- "dev": true
- },
- "node_modules/spdx-expression-parse": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
- "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"dev": true,
"dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/spdx-license-ids": {
- "version": "3.0.18",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz",
- "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==",
- "dev": true
- },
- "node_modules/sprintf-js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
- "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
- "dev": true
- },
- "node_modules/stop-iteration-iterator": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz",
- "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==",
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
"dev": true,
"dependencies": {
- "internal-slot": "^1.0.4"
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.13"
},
"engines": {
"node": ">= 0.4"
}
},
- "node_modules/string.prototype.includes": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz",
- "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==",
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
"dev": true,
"dependencies": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5"
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/string.prototype.matchall": {
- "version": "4.0.11",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
- "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
"dev": true,
"dependencies": {
+ "available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.4",
+ "for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.7",
- "regexp.prototype.flags": "^1.5.2",
- "set-function-name": "^2.0.2",
- "side-channel": "^1.0.6"
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
},
"engines": {
"node": ">= 0.4"
@@ -7591,16 +20757,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/string.prototype.padend": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz",
- "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==",
+ "node_modules/typed-array-length": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
+ "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0"
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -7609,512 +20777,857 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/string.prototype.repeat": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
- "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
+ "node_modules/typed-query-selector": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz",
+ "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5"
+ "is-typedarray": "^1.0.0"
}
},
- "node_modules/string.prototype.trim": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
- "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
+ "node_modules/typescript": {
+ "version": "5.5.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
+ "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.0",
- "es-object-atoms": "^1.0.0"
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=14.17"
}
},
- "node_modules/string.prototype.trimend": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
- "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
+ "node_modules/uc.micro": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
+ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/string.prototype.trimstart": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
- "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
+ "node_modules/unbzip2-stream": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
+ "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
+ "buffer": "^5.2.1",
+ "through": "^2.3.8"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
+ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unicode-canonical-property-names-ecmascript": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
+ "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=4"
}
},
- "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==",
+ "node_modules/unicode-match-property-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "unicode-canonical-property-names-ecmascript": "^2.0.0",
+ "unicode-property-aliases-ecmascript": "^2.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=4"
}
},
- "node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "node_modules/unicode-match-property-value-ecmascript": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz",
+ "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicorn-magic": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz",
+ "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "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==",
+ "node_modules/unique-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
+ "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "crypto-random-string": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz",
+ "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.2",
+ "picocolors": "^1.0.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/upper-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz",
+ "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/upper-case-first": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz",
+ "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
"dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
+ "punycode": "^2.1.0"
}
},
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "node_modules/url-loader": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz",
+ "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "mime-types": "^2.1.27",
+ "schema-utils": "^3.0.0"
+ },
"engines": {
- "node": ">= 0.4"
+ "node": ">= 10.13.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "file-loader": "*",
+ "webpack": "^4.0.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "file-loader": {
+ "optional": true
+ }
}
},
- "node_modules/synckit": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz",
- "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==",
+ "node_modules/url-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@pkgr/core": "^0.1.0",
- "tslib": "^2.6.2"
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": ">= 10.13.0"
},
"funding": {
- "url": "https://opencollective.com/unts"
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
}
},
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "node_modules/url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "node_modules/urlpattern-polyfill": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz",
+ "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"dev": true
},
- "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "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==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">= 0.4.0"
}
},
- "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==",
+ "node_modules/uuid": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.3.tgz",
+ "integrity": "sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==",
+ "dev": true,
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/esm/bin/uuid"
+ }
+ },
+ "node_modules/v8-to-istanbul": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
+ "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "is-number": "^7.0.0"
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^2.0.0"
},
"engines": {
- "node": ">=8.0"
+ "node": ">=10.12.0"
}
},
- "node_modules/ts-api-utils": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
- "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
"dev": true,
- "engines": {
- "node": ">=16"
- },
- "peerDependencies": {
- "typescript": ">=4.2.0"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
}
},
- "node_modules/tsconfig-paths": {
- "version": "3.15.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
- "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
+ "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
}
},
- "node_modules/tsconfig-paths/node_modules/json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "node_modules/validate-npm-package-name": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
+ "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
"dev": true,
- "dependencies": {
- "minimist": "^1.2.0"
- },
- "bin": {
- "json5": "lib/cli.js"
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/tslib": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
- "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
- "dev": true
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
},
- "node_modules/tsutils": {
- "version": "3.21.0",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
- "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "node_modules/w3c-xmlserializer": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz",
+ "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "tslib": "^1.8.1"
+ "xml-name-validator": "^4.0.0"
},
"engines": {
- "node": ">= 6"
+ "node": ">=14"
+ }
+ },
+ "node_modules/wait-on": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.1.tgz",
+ "integrity": "sha512-1wWQOyR2LVVtaqrcIL2+OM+x7bkpmzVROa0Nf6FryXkS+er5Sa1kzFGjzZRqLnHa3n1rACFLeTwUqE1ETL9Mig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "axios": "^1.7.7",
+ "joi": "^17.13.3",
+ "lodash": "^4.17.21",
+ "minimist": "^1.2.8",
+ "rxjs": "^7.8.1"
},
- "peerDependencies": {
- "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ "bin": {
+ "wait-on": "bin/wait-on"
+ },
+ "engines": {
+ "node": ">=12.0.0"
}
},
- "node_modules/tsutils/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "node_modules/walker": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "makeerror": "1.0.12"
+ }
},
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "node_modules/watchpack": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz",
+ "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "prelude-ls": "^1.2.1"
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=10.13.0"
}
},
- "node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
+ "node_modules/wbuf": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "node_modules/web-vitals": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.2.tgz",
+ "integrity": "sha512-nYfoOqb4EmElljyXU2qdeE76KsvoHdftQKY4DzA9Aw8DervCg2bG634pHLrJ/d6+B4mE3nWTSJv8Mo7B2mbZkw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/webpack": {
+ "version": "5.97.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz",
+ "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/eslint-scope": "^3.7.7",
+ "@types/estree": "^1.0.6",
+ "@webassemblyjs/ast": "^1.14.1",
+ "@webassemblyjs/wasm-edit": "^1.14.1",
+ "@webassemblyjs/wasm-parser": "^1.14.1",
+ "acorn": "^8.14.0",
+ "browserslist": "^4.24.0",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.17.1",
+ "es-module-lexer": "^1.2.1",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.11",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.2.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.3.10",
+ "watchpack": "^2.4.1",
+ "webpack-sources": "^3.2.3"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
"engines": {
- "node": ">=10"
+ "node": ">=10.13.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
}
},
- "node_modules/typed-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
- "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "node_modules/webpack-bundle-analyzer": {
+ "version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz",
+ "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "is-typed-array": "^1.1.13"
+ "@discoveryjs/json-ext": "0.5.7",
+ "acorn": "^8.0.4",
+ "acorn-walk": "^8.0.0",
+ "commander": "^7.2.0",
+ "debounce": "^1.2.1",
+ "escape-string-regexp": "^4.0.0",
+ "gzip-size": "^6.0.0",
+ "html-escaper": "^2.0.2",
+ "opener": "^1.5.2",
+ "picocolors": "^1.0.0",
+ "sirv": "^2.0.3",
+ "ws": "^7.3.1"
+ },
+ "bin": {
+ "webpack-bundle-analyzer": "lib/bin/analyzer.js"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">= 10.13.0"
}
},
- "node_modules/typed-array-byte-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
- "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
+ "node_modules/webpack-bundle-analyzer/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-proto": "^1.0.3",
- "is-typed-array": "^1.1.13"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
+ "node": ">= 10"
+ }
+ },
+ "node_modules/webpack-bundle-analyzer/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/typed-array-byte-offset": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
- "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
+ "node_modules/webpack-bundle-analyzer/node_modules/gzip-size": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz",
+ "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-proto": "^1.0.3",
- "is-typed-array": "^1.1.13"
+ "duplexer": "^0.1.2"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/typed-array-length": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
- "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
+ "node_modules/webpack-cli": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz",
+ "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-proto": "^1.0.3",
- "is-typed-array": "^1.1.13",
- "possible-typed-array-names": "^1.0.0"
+ "@discoveryjs/json-ext": "^0.5.0",
+ "@webpack-cli/configtest": "^2.1.1",
+ "@webpack-cli/info": "^2.0.2",
+ "@webpack-cli/serve": "^2.0.5",
+ "colorette": "^2.0.14",
+ "commander": "^10.0.1",
+ "cross-spawn": "^7.0.3",
+ "envinfo": "^7.7.3",
+ "fastest-levenshtein": "^1.0.12",
+ "import-local": "^3.0.2",
+ "interpret": "^3.1.1",
+ "rechoir": "^0.8.0",
+ "webpack-merge": "^5.7.3"
+ },
+ "bin": {
+ "webpack-cli": "bin/cli.js"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=14.15.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x"
+ },
+ "peerDependenciesMeta": {
+ "@webpack-cli/generators": {
+ "optional": true
+ },
+ "webpack-bundle-analyzer": {
+ "optional": true
+ },
+ "webpack-dev-server": {
+ "optional": true
+ }
}
},
- "node_modules/typescript": {
- "version": "5.5.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
- "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
+ "node_modules/webpack-cli/node_modules/commander": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
"dev": true,
- "peer": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/interpret": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
+ "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=14.17"
+ "node": ">=10.13.0"
}
},
- "node_modules/uglify-js": {
- "version": "3.19.0",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.0.tgz",
- "integrity": "sha512-wNKHUY2hYYkf6oSFfhwwiHo4WCHzHmzcXsqXYTN9ja3iApYIFbb2U6ics9hBcYLHcYGQoAlwnZlTrf3oF+BL/Q==",
+ "node_modules/webpack-cli/node_modules/rechoir": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
+ "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
"dev": true,
- "bin": {
- "uglifyjs": "bin/uglifyjs"
+ "license": "MIT",
+ "dependencies": {
+ "resolve": "^1.20.0"
},
"engines": {
- "node": ">=0.8.0"
+ "node": ">= 10.13.0"
}
},
- "node_modules/unbox-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
- "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "node_modules/webpack-dev-middleware": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz",
+ "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "has-bigints": "^1.0.2",
- "has-symbols": "^1.0.3",
- "which-boxed-primitive": "^1.0.2"
+ "colorette": "^2.0.10",
+ "memfs": "^3.4.3",
+ "mime-types": "^2.1.31",
+ "range-parser": "^1.2.1",
+ "schema-utils": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/webpack-dev-server": {
+ "version": "4.15.2",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz",
+ "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/bonjour": "^3.5.9",
+ "@types/connect-history-api-fallback": "^1.3.5",
+ "@types/express": "^4.17.13",
+ "@types/serve-index": "^1.9.1",
+ "@types/serve-static": "^1.13.10",
+ "@types/sockjs": "^0.3.33",
+ "@types/ws": "^8.5.5",
+ "ansi-html-community": "^0.0.8",
+ "bonjour-service": "^1.0.11",
+ "chokidar": "^3.5.3",
+ "colorette": "^2.0.10",
+ "compression": "^1.7.4",
+ "connect-history-api-fallback": "^2.0.0",
+ "default-gateway": "^6.0.3",
+ "express": "^4.17.3",
+ "graceful-fs": "^4.2.6",
+ "html-entities": "^2.3.2",
+ "http-proxy-middleware": "^2.0.3",
+ "ipaddr.js": "^2.0.1",
+ "launch-editor": "^2.6.0",
+ "open": "^8.0.9",
+ "p-retry": "^4.5.0",
+ "rimraf": "^3.0.2",
+ "schema-utils": "^4.0.0",
+ "selfsigned": "^2.1.1",
+ "serve-index": "^1.9.1",
+ "sockjs": "^0.3.24",
+ "spdy": "^4.0.2",
+ "webpack-dev-middleware": "^5.3.4",
+ "ws": "^8.13.0"
+ },
+ "bin": {
+ "webpack-dev-server": "bin/webpack-dev-server.js"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.37.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "webpack": {
+ "optional": true
+ },
+ "webpack-cli": {
+ "optional": true
+ }
}
},
- "node_modules/unc-path-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
- "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==",
+ "node_modules/webpack-dev-server/node_modules/ws": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
}
},
- "node_modules/underscore.string": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz",
- "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==",
+ "node_modules/webpack-merge": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
+ "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "sprintf-js": "^1.1.1",
- "util-deprecate": "^1.0.2"
+ "clone-deep": "^4.0.1",
+ "flat": "^5.0.2",
+ "wildcard": "^2.0.0"
},
"engines": {
- "node": "*"
- }
- },
- "node_modules/unicode-canonical-property-names-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
- "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
+ "node": ">=10.0.0"
}
},
- "node_modules/unicode-match-property-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
- "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+ "node_modules/webpack-merge/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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "unicode-canonical-property-names-ecmascript": "^2.0.0",
- "unicode-property-aliases-ecmascript": "^2.0.0"
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=6"
}
},
- "node_modules/unicode-match-property-value-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
- "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
+ "node_modules/webpack-merge/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==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^6.0.2"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/unicode-property-aliases-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
- "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
+ "node_modules/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=10.13.0"
}
},
- "node_modules/update-browserslist-db": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz",
- "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==",
+ "node_modules/webpack/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
+ "license": "MIT",
"dependencies": {
- "escalade": "^3.1.2",
- "picocolors": "^1.0.1"
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
},
- "bin": {
- "update-browserslist-db": "cli.js"
+ "engines": {
+ "node": ">= 10.13.0"
},
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
}
},
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "node_modules/websocket-driver": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
+ "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "punycode": "^2.1.0"
+ "http-parser-js": ">=0.5.1",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ },
+ "engines": {
+ "node": ">=0.8.0"
}
},
- "node_modules/uri-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz",
- "integrity": "sha512-8pMuAn4KacYdGMkFaoQARicp4HSw24/DHOVKWqVRJ8LhhAwPPFpdGvdL9184JVmUwe7vz7Z9n6IqI6t5n2ELdg==",
+ "node_modules/websocket-extensions": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
- "node": ">= 0.10"
+ "node": ">=0.8.0"
}
},
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
- },
- "node_modules/v8flags": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
- "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==",
+ "node_modules/whatwg-encoding": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
+ "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "homedir-polyfill": "^1.0.1"
+ "iconv-lite": "0.6.3"
},
"engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
- "dependencies": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
+ "node": ">=12"
}
},
- "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "node_modules/whatwg-mimetype": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
+ "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
"dev": true,
- "dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
}
},
"node_modules/which": {
@@ -8149,13 +21662,14 @@
}
},
"node_modules/which-builtin-type": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz",
- "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz",
+ "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "function.prototype.name": "^1.1.5",
- "has-tostringtag": "^1.0.0",
+ "function.prototype.name": "^1.1.6",
+ "has-tostringtag": "^1.0.2",
"is-async-function": "^2.0.0",
"is-date-object": "^1.0.5",
"is-finalizationregistry": "^1.0.2",
@@ -8164,8 +21678,8 @@
"is-weakref": "^1.0.2",
"isarray": "^2.0.5",
"which-boxed-primitive": "^1.0.2",
- "which-collection": "^1.0.1",
- "which-typed-array": "^1.1.9"
+ "which-collection": "^1.0.2",
+ "which-typed-array": "^1.1.15"
},
"engines": {
"node": ">= 0.4"
@@ -8179,6 +21693,7 @@
"resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
"integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-map": "^2.0.3",
"is-set": "^2.0.3",
@@ -8211,6 +21726,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/wildcard": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
+ "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/word-wrap": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
@@ -8220,12 +21742,138 @@
"node": ">=0.10.0"
}
},
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "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/wrap-ansi/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/wrap-ansi/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,
+ "license": "MIT"
+ },
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
+ "node_modules/write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "node_modules/ws": {
+ "version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
+ "dev": true,
+ "license": "MIT",
+ "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/xdg-basedir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
+ "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/xml-name-validator": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
+ "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
@@ -8241,6 +21889,46 @@
"node": ">= 6"
}
},
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dev": true,
+ "license": "MIT",
+ "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/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==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
@@ -8252,6 +21940,16 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
+ },
+ "node_modules/zod": {
+ "version": "3.23.8",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz",
+ "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
}
}
}
diff --git a/package.json b/package.json
index 276183606..6f3c46bc3 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"author": "XWP",
"license": "GPLv2+",
"engines": {
- "node": "^20"
+ "node": "^22.12.0"
},
"repository": {
"type": "git",
@@ -19,36 +19,44 @@
"keywords": [
"wp",
"stream",
- "stream",
"activity",
"logs",
"track"
],
"devDependencies": {
- "@wordpress/eslint-plugin": "^19.2.0",
- "eslint": "^8.57.0",
- "grunt": "^1.6.1",
- "grunt-contrib-clean": "^2.0.1",
- "grunt-contrib-cssmin": "^5.0.0",
- "grunt-contrib-uglify": "^5.2.2",
- "npm-run-all": "^4.1.5"
+ "@playwright/test": "^1.49.1",
+ "@types/node": "^22.10.2",
+ "@wordpress/e2e-test-utils-playwright": "^1.14.0",
+ "@wordpress/eslint-plugin": "^22.0.0",
+ "@wordpress/scripts": "^30.7.0",
+ "copy-webpack-plugin": "^12.0.2",
+ "eslint-plugin-react-hooks": "^5.1.0",
+ "jquery": "3.7.1",
+ "npm-run-all2": "^7.0.2",
+ "uuid": "^11.0.3"
},
"scripts": {
- "build": "grunt",
+ "build": "wp-scripts build",
+ "dev": "wp-scripts start",
"lint": "npm-run-all lint:*",
- "lint:js": "eslint .",
+ "lint:js": "DEBUG=eslint:cli-engine wp-scripts lint-js",
"lint:php": "composer lint",
"lint:php-tests": "composer lint-tests",
- "format": "composer format",
+ "format": "npm-run-all format:*",
+ "format:php": "composer format",
+ "format:js": "npm run lint:js -- --fix",
"test": "npm-run-all test:*",
"test:php": "npm run cli -- composer test --working-dir=wp-content/plugins/stream-src",
"test:php-multisite": "npm run cli -- composer test-multisite --working-dir=wp-content/plugins/stream-src",
+ "test-e2e": "wp-scripts test-playwright",
+ "test-e2e-debug": "wp-scripts test-playwright --debug",
"test-xdebug": "npm run cli -- composer test-xdebug --working-dir=wp-content/plugins/stream-src",
"test-one": "npm run cli -- composer test-one --working-dir=wp-content/plugins/stream-src --",
"test-report": "npm run cli -- composer test-report --working-dir=wp-content/plugins/stream-src",
"build-containers": "docker compose --file docker-compose.build.yml build",
"push-containers": "docker compose --file docker-compose.build.yml push",
"start": "docker compose up --remove-orphans --detach",
+ "start-xdebug": "XDEBUG_TRIGGER=1 docker compose up --remove-orphans --detach",
"switch-to:php8.2": "docker compose build --build-arg PHP_VERSION=8.2 --build-arg XDEBUG_VERSION=3.3.2 && npm run start",
"switch-to:php7.4": "docker compose build && npm run start",
"which-php": "npm run cli -- php --version",
@@ -57,6 +65,13 @@
"stop-all": "docker stop $(docker ps -a -q)",
"logs": "docker compose logs --follow",
"cli": "docker compose run --rm --user $(id -u) wordpress --",
+ "large-records-remove": "npm run cli -- /bin/sh -c 'mysql mysql -hmysql -uroot -ppassword < /var/local/scripts/large-datasets/remove-test-logs.sql'",
+ "large-records-generate": "npm run cli -- /bin/sh -c 'mysql mysql -hmysql -uroot -ppassword < /var/local/scripts/large-datasets/bulk-insert-logs.sql'",
+ "large-records-show": "npm run cli -- /bin/sh -c 'mysql mysql -hmysql -uroot -ppassword < /var/local/scripts/large-datasets/show-stream-db-stats.sql'",
"install-wordpress": "npm run cli wp core multisite-install"
+ },
+ "dependencies": {
+ "select2": "^4.0.13",
+ "timeago": "^1.6.7"
}
}
diff --git a/phpcs.xml.dist b/phpcs.xml.dist
index 6e0135d41..48bb50632 100644
--- a/phpcs.xml.dist
+++ b/phpcs.xml.dist
@@ -21,8 +21,6 @@
*.ruleset
*/tests/*
-
*/includes/lib/*
-
*/ui/lib/*
*/vendor/*
*/build/*
*/local/*
diff --git a/phpunit-multisite.xml b/phpunit-multisite.xml
index d3107e843..6169376bc 100644
--- a/phpunit-multisite.xml
+++ b/phpunit-multisite.xml
@@ -27,7 +27,7 @@
-
+
diff --git a/phpunit.xml b/phpunit.xml
index f02a303d9..990e46c67 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -27,7 +27,7 @@
-
+
diff --git a/playwright.config.js b/playwright.config.js
new file mode 100644
index 000000000..3fc5bc911
--- /dev/null
+++ b/playwright.config.js
@@ -0,0 +1,49 @@
+// @ts-check
+/**
+ * External dependencies
+ */
+const { defineConfig, devices } = require( '@playwright/test' );
+
+/**
+ * Read environment variables from file.
+ * https://github.com/motdotla/dotenv
+ */
+// require('dotenv').config({ path: path.resolve(__dirname, '.env') });
+
+/**
+ * @see https://playwright.dev/docs/test-configuration
+ */
+module.exports = defineConfig( {
+ testDir: './tests/e2e',
+ /* Run tests in files in parallel */
+ fullyParallel: true,
+ /* Fail the build on CI if you accidentally left test.only in the source code. */
+ forbidOnly: !! process.env.CI,
+ /* Retry on CI only */
+ retries: process.env.CI ? 2 : 0,
+ /* Opt out of parallel tests on CI. */
+ workers: process.env.CI ? 1 : undefined,
+ /* Reporter to use. See https://playwright.dev/docs/test-reporters */
+ reporter: 'html',
+ /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
+ use: {
+ /* Base URL to use in actions like `await page.goto('/')`. */
+ // baseURL: 'http://127.0.0.1:3000',
+
+ /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
+ trace: 'on-first-retry',
+ },
+ /* Configure projects for major browsers */
+ projects: [
+ { name: 'setup', testMatch: /setup\.js/ },
+ {
+ name: 'chromium',
+ use: {
+ ...devices[ 'Desktop Chrome' ],
+ storageState: 'playwright/.auth/user.json',
+ },
+ dependencies: [ 'setup' ],
+ },
+ ],
+} );
+
diff --git a/readme.md b/readme.md
index d7bf64077..b39bed873 100755
--- a/readme.md
+++ b/readme.md
@@ -8,7 +8,6 @@
- [Product Website](https://xwp.co/work/stream/)
- [Plugin on WordPress.org](https://wordpress.org/plugins/stream/)
-
## Documentation
View the [plugin description on WordPress.org](https://wordpress.org/plugins/stream/) for the list of features and screenshots.
@@ -17,16 +16,26 @@ View the [plugin description on WordPress.org](https://wordpress.org/plugins/str
A list of the connectors is in [connectors.md](connectors.md).
+### Configuration
+
+To customize who can manage Stream settings, you can define the `WP_STREAM_SETTINGS_CAPABILITY` constant in your `wp-config.php` file. By default, capability will be set to `manage_options`.
+
+```php
+define('WP_STREAM_SETTINGS_CAPABILITY', 'wp_stream_manage_settings');
+```
## Known Issues
- We have temporarily disabled the data removal feature through plugin uninstallation, starting with version 3.9.3. We identified a few edge cases that did not behave as expected and we decided that a temporary removal is preferable at this time for such an impactful and irreversible operation. Our team is actively working on refining this feature to ensure it performs optimally and securely. We plan to reintroduce it in a future update with enhanced safeguards.
+## Changelog
+
+[View the changelog here.](changelog.md)
+
## Contribute
All suggestions and contributions are welcome! View the [contributor documentation](contributing.md) for how to report issues and setup the local development environment.
-
## Credits
The plugin is owned and maintained by [XWP](https://xwp.co). View [all contributors](https://github.com/xwp/stream/graphs/contributors).
diff --git a/readme.txt b/readme.txt
index 277d4ed76..85220139f 100644
--- a/readme.txt
+++ b/readme.txt
@@ -115,7 +115,7 @@ There are several ways you can get involved to help make Stream better:
Thank you for wanting to make Stream better for everyone!
-Past Contributors: fjarrett, shadyvb, chacha, westonruter, johnregan3, jacobschweitzer, lukecarbis, kasparsd, bordoni, dero, faishal, rob, desaiuditd, DavidCramer, renovate-bot, marcin-lawrowski, JeffMatson, Powdered-Toast-Man, johnolek, johnbillion, greguly, pascal-klaeres, szepeviktor, rheinardkorf, frozzare, khromov, dkotter, bhubbard, stipsan, stephenharris, omniwired, kopepasah, joehoyle, eugenekireev, barryceelen, valendesigns, tlovett1, tareiking, stayallive, sayedtaqui, robbiet480, oscarssanchez, kidunot89, johnwatkins0, javorszky, jamesgol, desrosj, davelozier, davefx, cfoellmann, JustinSainton, JJJ, postphotos, schlessera
+[View contributors here.](https://github.com/xwp/stream/graphs/contributors)
== Screenshots ==
@@ -214,630 +214,4 @@ Use only `$_SERVER['REMOTE_ADDR']` as the client IP address for event logs witho
- Fix: Don't store empty log event parameters [#1307](https://github.com/xwp/stream/pull/1307), props [@lkraav](https://github.com/lkraav).
- Development: Adjust the local development environment to use MariaDB containers for ARM processor compatibility.
-= 3.8.2 - October 12, 2021 =
-
-- Security fix: Ensure the value of `order` query parameter forwarded to the database query when viewing the Stream records in the WordPress admin (for authenticated users) is only `ASC` or `DESC`. Previously it passed the whole value of the `order` parameter filtered through `esc_sql()`.
-
-= 3.8.1 - September 17, 2021 =
-
-- Fix: Ensure Stream database tables are present on all WP admin requests to help with installations where the plugin activate hook never runs [#1286](https://github.com/xwp/stream/pull/1286), props [@tomjn](https://github.com/tomjn).
-
-= 3.8.0 - August 31, 2021 =
-
-- Fix: PHP 8.0 compatibility [#1272](https://github.com/xwp/stream/issues/1272), props [@cjhaas](https://github.com/cjhaas).
-- Development: Update development dependencies and introduce [PHPCompatibility checker](https://github.com/PHPCompatibility/PHPCompatibility) as part of the automated checks.
-
-= 3.7.0 - May 11, 2021 =
-
-- Fix: Exclude records when all conditions match instead of just one [#1242](https://github.com/xwp/stream/pull/1242), props [@kidunot89](https://github.com/kidunot89) and [@esausaravia](https://github.com/esausaravia)
-- Fix: Store the correct blog ID on the network admin exclude screen [#1259](https://github.com/xwp/stream/pull/1259), props [@dd32](https://github.com/dd32)
-- Fix: Ensure all blogs on the network are listed instead of just the top 100 [#1258](https://github.com/xwp/stream/pull/1258), props [@dd32](https://github.com/dd32)
-- Fix: Add highlight color in list table [#1246](https://github.com/xwp/stream/pull/1246), props [@ocean90](https://github.com/ocean90)
-- Fix: Settings page defaults repatched [#1236](https://github.com/xwp/stream/pull/1236), props [@kidunot89](https://github.com/kidunot89)
-- Development: Added unit tests for BuddyPress [#1211](https://github.com/xwp/stream/pull/1211), WooCommerce [#1199](https://github.com/xwp/stream/pull/1199), Media [#1154](https://github.com/xwp/stream/pull/1154), Jetpack [#1153](https://github.com/xwp/stream/pull/1153), Gravity Forms [#1139](https://github.com/xwp/stream/pull/1139) abd bbPress connector classes [#1120](https://github.com/xwp/stream/pull/1120), props [@kidunot89](https://github.com/kidunot89)
-
-= 3.6.2 - January 12, 2020 =
-
-* Fix: revert [#1159](https://github.com/xwp/stream/pull/1159) which caused a PHP error in the previous release.
-
-= 3.6.1 - January 12, 2020 =
-
-* New: Action add for when a blog is deleted [#1177](https://github.com/xwp/stream/pull/1177), props [@kidunot89](https://github.com/kidunot89)
-* Fix: Refactored Stream's Records table custom column functionality to output the correct column values [#1185](https://github.com/xwp/stream/pull/1185), props [@Nikschavan](https://github.com/Nikschavan), [@kidunot89](https://github.com/kidunot89), and [@derekherman](https://github.com/derekherman)
-* Fix: Refactored deprecated SQL statement for retrieving the result count [#1203](https://github.com/xwp/stream/pull/1203), props [@kidunot89](https://github.com/kidunot89)
-* Fix: Fixed a namespace of a call to the Closure class [#1215](https://github.com/xwp/stream/pull/1215), props [@szepeviktor](https://github.com/szepeviktor)
-* Fix: The default options are made available during the "wp_stream_auto_purge" callback [#1159](https://github.com/xwp/stream/pull/1159), props [@kidunot89](https://github.com/kidunot89)
-* Fix: Expensive functions removed [#1201](https://github.com/xwp/stream/pull/1201), props [@kidunot89](https://github.com/kidunot89)
-* Tweak: Remove redundant textdomain initialization [#1213](https://github.com/xwp/stream/pull/1213), props [@szepeviktor](https://github.com/szepeviktor)
-* Tweak: Cleaned up PHP version check [#1212](https://github.com/xwp/stream/pull/1212), props [@szepeviktor](https://github.com/szepeviktor)
-* Development: Unit test added for Menu connector class [#1164](https://github.com/xwp/stream/pull/1164), props [@kidunot89](https://github.com/kidunot89)
-* Development: Unit test added for Blog connector class [#1177](https://github.com/xwp/stream/pull/1177), props [@kidunot89](https://github.com/kidunot89)
-* Development Fix: Micro patch provided for Mercator actions register to deprecated hooks [#1217](https://github.com/xwp/stream/pull/1217), props [@kidunot89](https://github.com/kidunot89)
-* Development: Unit test added for Mercator connector class [#1180](https://github.com/xwp/stream/pull/1180), props [@kidunot89](https://github.com/kidunot89)
-* Development: Unit test added for Settings connector class [#1165](https://github.com/xwp/stream/pull/1165), props [@kidunot89](https://github.com/kidunot89)
-* Development: Unit test added for Installer connector class [#1155](https://github.com/xwp/stream/pull/1155), props [@kidunot89](https://github.com/kidunot89)
-* Development: Unit test added for User connector class [#1151](https://github.com/xwp/stream/pull/1151), props [@kidunot89](https://github.com/kidunot89)
-* Development: Unit test added for Editor connector class [#1138](https://github.com/xwp/stream/pull/1138), props [@kidunot89](https://github.com/kidunot89)
-* Development: Unit test added for Comments connector class [#1134](https://github.com/xwp/stream/pull/1134), props [@kidunot89](https://github.com/kidunot89)
-
-
-= 3.6.0 - October 14, 2020 =
-
-* New: Introduce the `wp_stream_db_query_where` filter [#1160](https://github.com/xwp/stream/pull/1160), props [@kidunot89](https://github.com/kidunot89) and [@nprasath002](https://github.com/nprasath002).
-* Fix: Replace the deprecated jQuery `.load()` calls [#1162](https://github.com/xwp/stream/pull/1162), props [@kidunot89](https://github.com/kidunot89).
-* Fix: Log the correct post status change [#1121](https://github.com/xwp/stream/pull/1121), props [@kidunot89](https://github.com/kidunot89).
-* Fix: Update the [Advanced Custom Fields](https://wordpress.org/plugins/advanced-custom-fields/) connector to support versions 5 of the plugin [#1118](https://github.com/xwp/stream/pull/1118), props [@kidunot89](https://github.com/kidunot89).
-* Fix: Update the [Easy Digital Downloads](https://wordpress.org/plugins/easy-digital-downloads/) connector to support version 2.5 of the plugin [#1137](https://github.com/xwp/stream/pull/1137), props [@kidunot89](https://github.com/kidunot89).
-* Tweak: Clarify the messaging when no Stream records found [#1178](https://github.com/xwp/stream/issues/1178), props [@kidunot89](https://github.com/kidunot89) and [@johnbillion](https://github.com/johnbillion).
-
-= 3.5.1 - August 14, 2020 =
-
-* Fix: Use the correct timestamp format when saving Stream records to ensure correct dates on newer versions of MySQL [#1149](https://github.com/xwp/stream/issues/1149), props [@kidunot89](https://github.com/kidunot89).
-* Development: Include `composer.json` file in the release bundles to ensure they can be pulled using Composer from the [Stream distribution repository](https://github.com/xwp/stream-dist).
-* Development: Automatically store plugin release bundles when tagging a new release on GitHub [#1074](https://github.com/xwp/stream/pull/1074).
-* Development: Update the local development environment to support multisite installs for testing [#1136](https://github.com/xwp/stream/pull/1136).
-
-= 3.5.0 - July 8, 2020 =
-
-* Fix: Stream records now show the correct timestamp instead of dates like `-0001/11/30` [#1091](https://github.com/xwp/stream/issues/1091), props [@kidunot89](https://github.com/kidunot89).
-* Fix: Searching Stream records is now more performant as we throttle the amount of search requests [#1081](https://github.com/xwp/stream/issues/1081), props [@oscarssanchez](https://github.com/oscarssanchez).
-* Tweak: Inline PHP documentation updates and WordPress coding standard fixes, props [@kidunot89](https://github.com/kidunot89).
-
-= 3.4.3 - March 19, 2020 =
-
-* Fix: Stream records can be filtered by users again [#929](https://github.com/xwp/stream/issues/929), props [@tareiking](https://github.com/tareiking).
-* New: Composer releases now include the built assets [#1054](https://github.com/xwp/stream/issues/1054).
-
-= 3.4.2 - September 26, 2019 =
-
-* Fix: Visiting the plugin settings page no longer produces PHP warnings for undefined variables [#1031](https://github.com/xwp/stream/issues/1031).
-* Fix: The IP address based exclude rules now stay with the same ruleset when saving [#1035](https://github.com/xwp/stream/issues/1035). Previously IP addresses would jump to the previous rule which didn't have an IP address based conditional.
-
-= 3.4.1 - July 25, 2019 =
-
-* Fix: Allow tracking cron events even when the default WordPress front-end cron runner is disabled via `DISABLE_WP_CRON`. See [#959], props [@khromov](https://github.com/khromov) and [@tareiking](https://github.com/tareiking).
-
-= 3.4.0 - July 13, 2019 =
-
-* New: Add development environment and documentation, update tooling [#1016](https://github.com/xwp/stream/pull/1016).
-* New: Add [Mercator](https://github.com/humanmade/Mercator) connector [#993](https://github.com/xwp/stream/pull/993), props [@spacedmonkey](https://github.com/spacedmonkey).
-* Fix: Respect the `DISALLOW_FILE_MODS` constant and prevent plugin uninstall, if set. [#997](https://github.com/xwp/stream/pull/997) fixes [#988](https://github.com/xwp/stream/issues/988), props [@lukecarbis](https://github.com/lukecarbis) and [@josephfusco](https://github.com/josephfusco).
-
-= 3.3.0 - June 18, 2019 =
-
-* New: Filter for allow WP network-like behaviour ([#1003](https://github.com/xwp/stream/pull/1003)).
-* Fix: Sanitize instead of escape the request method ([#987](https://github.com/xwp/stream/pull/987)).
-* Fix: Escape the last page link as an HTML attribute value ([#999](https://github.com/xwp/stream/pull/999)).
-* Fix: streamAlertTypeHighlight error on the Stream Records page ([#1007](https://github.com/xwp/stream/issues/1007)).
-
-Props [@dkotter](https://github.com/dkotter), [@fklein-lu](https://github.com/fklein-lu), [@joehoyle](https://github.com/joehoyle)
-= 3.2.3 - April 23, 2018 =
-
-* New: Use minimized assets ([#973](https://github.com/xwp/stream/pull/973))
-* New: Alert type – Slack alerts! ([#970](https://github.com/xwp/stream/pull/970) [#962](https://github.com/xwp/stream/pull/962))
-* Fix: PHP 7.1 compatibility fix ([#974](https://github.com/xwp/stream/pull/974))
-* Fix: Make reset nonce unique ([#972](https://github.com/xwp/stream/pull/972))
-* Fix: Stripped settings and alerts inputs ([#968](https://github.com/xwp/stream/pull/968))
-* Fix: Update Datetime extension ([#966](https://github.com/xwp/stream/pull/966))
-* Fix: WP CLI Namespace collision ([#944](https://github.com/xwp/stream/pull/944))
-* Tweak: Coding standards updates ([#975](https://github.com/xwp/stream/pull/975))
-* Tweak: Show real client IP (if available) when in reverse-proxy mode ([#969](https://github.com/xwp/stream/pull/969) [#963](https://github.com/xwp/stream/pull/963))
-* Tweak: Performance improvement when listing roles ([#964](https://github.com/xwp/stream/pull/964))
-
-Props [@DavidCramer](https://github.com/DavidCramer), [@lukecarbis](https://github.com/lukecarbis), [@frozzare](https://github.com/frozzare), [@fjarrett](https://github.com/fjarrett), [@shadyvb](https://github.com/shadyvb), [@valendesigns](https://github.com/valendesigns), [@robbiet480](https://github.com/robbiet480), [@cfoellmann](https://github.com/cfoellmann)
-
-= 3.2.2 - September 13, 2017 =
-
-* Fix: Prevent fatal error when attempting to store an Object in the database.
-
-= 3.2.1 - September 8, 2017 =
-
-* New: Support for the ACF Options page. ([#931](https://github.com/xwp/stream/pull/931))
-* New: Added minimal composer file. ([#932](https://github.com/xwp/stream/pull/932)
-* Tweak: Remove dependence on serializing functions. ([#939](https://github.com/xwp/stream/pull/939))
-* Tweak: Add wp_stream_is_record_excluded filter. ([#921](https://github.com/xwp/stream/pull/921))
-* Fix: Readme spelling fixes (localised [sic] for en_US). ([#928](https://github.com/xwp/stream/pull/928))
-* Fix: Undefined index ID issue when trashing post with customize-posts. ([#936](https://github.com/xwp/stream/pull/936))
-* Fix: Stream fails to install properly (sometimes) due to database error. ([#934](https://github.com/xwp/stream/pull/934))
-* Fix: Stream is network activated if it's a must-use plugin on a multisite ([#956](https://github.com/xwp/stream/pull/956))
-
-= 3.2.0 - March 15, 2017 =
-
-* New: Stream now support alternate Database Drivers. ([#889](https://github.com/xwp/stream/pull/889))
-* Fix: Exclude dropdown menus ([e5c8677](https://github.com/xwp/stream/commit/e5c8677), [3626ba8](https://github.com/xwp/stream/commit/3626ba8), [e923a92](https://github.com/xwp/stream/commit/e923a92))
-* Fix: Prevent loading of connectors on frontend ([ed3a635](https://github.com/xwp/stream/commit/ed3a635))
-* Fix: Customizer performance issue ([#898](https://github.com/xwp/stream/pull/898))
-* Fix: Various Network Admin bugs ([#899](https://github.com/xwp/stream/pull/899))
-* Tweak: Codeclimate & Editorconfig support ([#896](https://github.com/xwp/stream/pull/896))
-* Tweak: Better DB migration support ([#905](https://github.com/xwp/stream/pull/905))
-
-= 3.1.1 - October 31, 2016 =
-
-* Fix: Hotfix for Error Updating Stream DB.
-
-= 3.1 - October 31, 2016 =
-
-* New: Stream Alerts is here! Get notified when something happens in your WP-Admin, so that you don't miss a thing. ([#844](https://github.com/xwp/stream/pull/844))
-* Tweak: Better support for the latest version of Yoast SEO ([#838](https://github.com/xwp/stream/pull/838))
-* Tweak: Better support for the latest version of WooCommerce ([#851](https://github.com/xwp/stream/pull/851)[#864](https://github.com/xwp/stream/pull/864))
-* Tweak: Better taxonomy labeling ([#859](https://github.com/xwp/stream/pull/859))
-* Fix: Fatal error caused by conflict with Yoast SEO ([#879](https://github.com/xwp/stream/pull/879))
-* Fix: Activating Stream through WP CLI now works ([#880](https://github.com/xwp/stream/pull/880))
-* Fix: Custom roles track properly ([#836](https://github.com/xwp/stream/pull/836))
-
-Props [@chacha](https://github.com/chacha), [@lukecarbis](https://github.com/lukecarbis), [@johnbillion](https://github.com/johnbillion), [@rheinardkorf](https://github.com/rheinardkorf), [@frozzare](https://github.com/frozzare), [@johnregan3](https://github.com/johnregan3), [@jacobschweitzer](https://github.com/jacobschweitzer), [@wrongware](https://github.com/wrongware)
-
-= 3.0.7 - June 14, 2016 =
-
-* Tweak: Use get_sites instead of wp_get_sites when available ([#856](https://github.com/xwp/stream/pull/856))
-* Tweak: More stable record actions (like exporting) ([71e6ac1](https://github.com/xwp/stream/commit/71e6ac1ff66e4415909c7ae29b243733a1fd209d))
-* Tweak: Better multisite support ([cfab041](https://github.com/xwp/stream/commit/cfab0413e67b83d969bd6612c895ecdb05dbfce4))
-* Fix: Exclude rule settings have been restored and enhanced ([#855](https://github.com/xwp/stream/pull/855))
-* Fix: Loading users via ajax ([#854](https://github.com/xwp/stream/pull/854))
-* Fix: Use the correct label for events relating to taxonomies which are registered late ([#859](https://github.com/xwp/stream/pull/859))
-
-Props [@chacha](https://github.com/chacha), [@lukecarbis](https://github.com/lukecarbis), Eugene Kireev, [@johnbillion](https://github.com/johnbillion)
-
-= 3.0.6 - May 31, 2016 =
-
-* New: Better support for default themes ([#831](https://github.com/xwp/stream/pull/831))
-* New: Upgrade filter menus to Select2 4 ([c3f6c65](https://github.com/xwp/stream/commit/c3f6c65c1bd95cebb26da7f00a720050a9144586))
-* Fix: Security Fixes
-* Fix: Cron for purging old records has been fixed ([#843](https://github.com/xwp/stream/pull/843))
-* Fix: Better at storing records for Super Admins ([#835](https://github.com/xwp/stream/pull/835))
-* Fix: Allow Super Admins to be ignored and filtered ([#835](https://github.com/xwp/stream/pull/835))
-
-Props [@chacha](https://github.com/chacha), [@lukecarbis](https://github.com/lukecarbis), [@marcin-lawrowski](https://github.com/marcin-lawrowski)
-
-= 3.0.5 - March 15, 2016 =
-
-* New: Export your Stream records as CSV or JSON. ([#823](https://github.com/xwp/stream/pull/823))
-* Tweak: More mobile responsive list table ([#810](https://github.com/xwp/stream/pull/810))
-* Tweak: Better Javascript conflict prevention ([#812](https://github.com/xwp/stream/pull/812))
-* Tweak: Minor styling updates. It's about attention to detail. ([#826](https://github.com/xwp/stream/pull/826))
-* Fix: Gravity Forms error when adding a note ([#811](https://github.com/xwp/stream/pull/811))
-* Fix: In some instances, custom roles weren't being logged by Stream ([#824](https://github.com/xwp/stream/pull/824))
-* Fix: The Customizer fix you've been waiting for! Stream now properly records changes made from the Customizer. ([#827](https://github.com/xwp/stream/pull/827))
-
-Props [@chacha](https://github.com/chacha), [@lukecarbis](https://github.com/lukecarbis), [@Stayallive](https://github.com/Stayallive), [@barryceelen](https://github.com/barryceelen), Jonathan Desrosiers, [@marcin-lawrowski](https://github.com/marcin-lawrowski)
-
-= 3.0.4 - November 27, 2015 =
-
-* Tweak: Better descriptions when a post changes status ([0eada10](https://github.com/xwp/stream/commit/0eada108b443ed3b6f9bdae3f1e4c87c77128a0a))
-* Fix: Stream no longer crashes every time it tries to use a Jetpack ([#798](https://github.com/xwp/stream/pull/798))
-* Fix: You may now actually choose an item from the filter dropdown menus, instead of having everything greyed out ([#800](https://github.com/xwp/stream/pull/800))
-* Fix: Logging in / out of a Multisite install is now possible ([#801](https://github.com/xwp/stream/pull/801))
-* Fix: The Settings connector now works with WP CLI ([78a56b2](https://github.com/xwp/stream/commit/78a56b2c6b33b4f41c7b4f1f256a4d03ad42b2cb))
-
-Props [@lukecarbis](https://github.com/lukecarbis)
-
-= 3.0.3 - November 6, 2015 =
-
-* Tweak: Better compatibility with upcoming WordPress 4.4 ([2b2493c](https://github.com/xwp/stream/commit/2b2493ccb3ef6cba5aeb773433fdb5f0d414e8f3))
-* Tweak: Minor security improvements
-* Fix: New and improved Gravity Forms connector, works much better ([#780](https://github.com/xwp/stream/pull/780)) (thanks [Rob](https://github.com/rob)!)
-* Fix: Stream no longer explodes on < PHP 5.3, when trying to tell you that it explodes on < PHP 5.3 ([#781](https://github.com/xwp/stream/pull/781))
-* Fix: Fixed a small typo ([62455c5](https://github.com/xwp/stream/commit/62455c518b95ddaf5e6c6c0733e7d03e5aa1311c))
-* Fix: Multiple Multisite Mistakes Mended ([#788](https://github.com/xwp/stream/pull/788))
-* Fix: Internet Explorer 8 fix!! IE8!? Come on, people, it's 2015. ([#789](https://github.com/xwp/stream/pull/789))
-* Fix: EDD connector bug ([#790](https://github.com/xwp/stream/pull/790))
-
-Props [@lukecarbis](https://github.com/lukecarbis), [@rob](https://github.com/rob), [greguly](https://github.com/greguly)
-
-= 3.0.2 - October 2, 2015 =
-
-* Tweak: Helper function for running Stream queries added ([#774](https://github.com/xwp/stream/pull/774))
-* Tweak: Migration dialog removed ([76e809f](https://github.com/xwp/stream/commit/76e809f9abb3dd691b755cf943b50a76a3ffb488))
-* Tweak: Better handling of draft saving and auto-saving ([#775](https://github.com/xwp/stream/pull/775))
-* Tweak: Records page title size now matches other admin pages ([afcced8](https://github.com/xwp/stream/commit/afcced8b590e047e8adfe6ae79483a7436c849f4))
-* Fix: Database update dialog is now displayed correctly ([#773](https://github.com/xwp/stream/pull/773))
-* Fix: The record's connector was being incorrectly stored as the connector name ([#773](https://github.com/xwp/stream/pull/773))
-* Fix: Record action links are back ([#773](https://github.com/xwp/stream/pull/773))
-* Fix: Jetpack is now able to connect without error while Stream is active ([#768](https://github.com/xwp/stream/pull/768))
-* Fix: Reset Filters text no longer wraps to a second line ([#765](https://github.com/xwp/stream/pull/765))
-
-Props [@lukecarbis](https://github.com/lukecarbis), Props [@sirjonathan](https://github.com/sirjonathan)
-
-= 3.0.1 - September 2, 2015 =
-
-* New: Stream and [User Switching](https://wordpress.org/plugins/user-switching/) are now besties ([#744](https://github.com/xwp/stream/pull/744))
-* New: You can now choose to keep your records indefinitely (probably not a good idea) ([#748](https://github.com/xwp/stream/pull/748))
-* Tweak: We're now using local styles for our datepicker, instead of loading them externally ([#751](https://github.com/xwp/stream/pull/751))
-* Fix: Updating from version 1.4.9 no longer breaks your records ([#749](https://github.com/xwp/stream/pull/749))
-* Fix: Stream now works with custom wp-content folder locations ([#745](https://github.com/xwp/stream/pull/745))
-* Fix: Live updates work again ([#739](https://github.com/xwp/stream/pull/739))
-
-Props [@lukecarbis](https://github.com/lukecarbis), [@johnbillion](https://github.com/johnbillion), [@rob](https://github.com/rob)
-
-= 3.0.0 - August 25, 2015 =
-
-* New: Activity logs are now stored locally in WordPress. No data is sent externally and no registration required.
-* New: Migration process for Stream 2 users to move records out of the cloud, and into your local database.
-* New: Various measures and database schema changes to improve Stream's performance.
-* Removed: Notifications and Reports have been removed to be reworked for an upcoming release.
-
-Props [@fjarrett](https://github.com/fjarrett), [@lukecarbis](https://github.com/lukecarbis)
-
-= 2.0.5 - April 23, 2015 =
-
-* Tweak: Compatibility with split terms introduced in WordPress 4.2 ([#702](https://github.com/xwp/stream/issues/702))
-* Tweak: Add support for future and pending post transitions ([#716](https://github.com/xwp/stream/pull/716))
-* Tweak: Match new default admin colors introduced in WordPress 4.2 ([#718](https://github.com/xwp/stream/pull/718))
-* Fix: Compatibility issues with WP-Cron Control plugin and system crons ([#715](https://github.com/xwp/stream/issues/715))
-* Fix: Broken date range filter on Reports screen ([#717](https://github.com/xwp/stream/pull/717))
-
-Props [@fjarrett](https://github.com/fjarrett)
-
-= 2.0.4 - April 16, 2015 =
-
-* New: Add reset button to reset search filters ([#144](https://github.com/xwp/stream/issues/144))
-* Tweak: WP-CLI command output improvements via `--format` option for table view, JSON and CSV ([#705](https://github.com/xwp/stream/pull/705))
-* Tweak: Add link to https://wp-stream.com in README ([#709](https://github.com/xwp/stream/issues/709))
-* Tweak: Better highlighting on multiple live update rows
-* Tweak: Limit custom range datepickers based on the Stream plan type
-* Tweak: Limit legacy record migrations based on the Stream plan type
-* Fix: Allow properties with values of zero to be included in queries ([#698](https://github.com/xwp/stream/issues/698))
-* Fix: Properly return record success/failure in log and store methods ([#711](https://github.com/xwp/stream/issues/711))
-
-Props [@fjarrett](https://github.com/fjarrett), [@szepeviktor](https://github.com/szepeviktor)
-
-= 2.0.3 - January 23, 2015 =
-
-* New: WP-CLI command now available for querying records via the command line ([#499](https://github.com/xwp/stream/issues/499))
-* Tweak: Silently disable Stream during content import ([#672](https://github.com/xwp/stream/issues/672))
-* Tweak: Search results now ordered by date instead of relevance ([#689](https://github.com/xwp/stream/issues/689))
-* Fix: Handle boolean values appropriately during wp_stream_log_data filter ([#680](https://github.com/xwp/stream/issues/680))
-* Fix: Hook into external class load methods on init rather than plugins_loaded ([#686](https://github.com/xwp/stream/issues/686))
-* Fix: N/A user not working in exclude rules ([#688](https://github.com/xwp/stream/issues/688))
-* Fix: Prevent Notification Rule meta from being saved to all post types ([#693](https://github.com/xwp/stream/issues/693))
-* Fix: PHP warning shown for some users when deleting plugins ([#695](https://github.com/xwp/stream/issues/695))
-
-Props [@fjarrett](https://github.com/fjarrett)
-
-= 2.0.2 - January 15, 2015 =
-
-* New: Full record backtrace now available to developers for debugging ([#467](https://github.com/xwp/stream/issues/467))
-* New: Unread count badge added to Stream menu, opt-out available in User Profile ([#588](https://github.com/xwp/stream/issues/588))
-* New: Stream connector to track Stream-specific contexts and actions ([#622](https://github.com/xwp/stream/issues/622))
-* Tweak: Inherit role access from Stream Settings for Notifications and Reports ([#641](https://github.com/xwp/stream/issues/641))
-* Tweak: Opt-in required for Akismet tracking ([#649](https://github.com/xwp/stream/issues/649))
-* Tweak: Ignore comments deleted when deleting parent post ([#652](https://github.com/xwp/stream/issues/652))
-* Tweak: Opt-in required for comment flood tracking ([#656](https://github.com/xwp/stream/issues/656))
-* Tweak: Opt-in required for WP Cron tracking ([#673](https://github.com/xwp/stream/issues/673))
-* Fix: Post revision action link pointing to wrong revision ID ([#585](https://github.com/xwp/stream/issues/585))
-* Fix: PHP warnings caused by Menu connector ([#663](https://github.com/xwp/stream/issues/663))
-* Fix: Non-static method called statically in WPSEO connector ([#668](https://github.com/xwp/stream/issues/668))
-* Fix: Prevent live updates from tampering with filtered results ([#675](https://github.com/xwp/stream/issues/675))
-
-Props [@fjarrett](https://github.com/fjarrett), [@lukecarbis](https://github.com/lukecarbis), [@shadyvb](https://github.com/shadyvb), [@jonathanbardo](https://github.com/jonathanbardo), [@westonruter](https://github.com/westonruter)
-
-= 2.0.1 - September 30, 2014 =
-
-* Tweak: Improved localization strings throughout the plugin ([#644](https://github.com/xwp/stream/pull/644))
-* Tweak: Improved tooltip text explaining WP.com sign in
-* Fix: ACF Pro doesn't save custom field values when Stream enabled ([#642](https://github.com/xwp/stream/issues/642))
-
-Props [@lukecarbis](https://github.com/lukecarbis), [@fjarrett](https://github.com/fjarrett)
-
-= 2.0.0 - September 27, 2014 =
-
-* All activity is now stored only in the cloud over SSL, local MySQL storage dependence is over!
-* Connector and Context have merged in the UI, now just called Contexts
-* The Exclude Rules UI has been completely revamped
-* Notifications and Reports are now conveniently built into Stream for Pro subscribers
-* Connectors for tracking other popular plugins are now built into Stream, like BuddyPress, Jetpack, Gravity Forms, and more...
-* You create an account for Stream simply by signing in with your WordPress.com ID
-
-**NOTE:** Multisite view of all activity records in the Network Admin has been removed in this release. If you require this feature, please do not update Stream until version 2.1.0 is released.
-
-Props [@fjarrett](https://github.com/fjarrett), [@lukecarbis](https://github.com/lukecarbis), [@shadyvb](https://github.com/shadyvb), [@chacha](https://github.com/chacha), [@jonathanbardo](https://github.com/jonathanbardo), [@bordoni](https://github.com/bordoni), [@dero](https://github.com/dero), [@jeffmatson](https://github.com/jeffmatson), [@stipsan](https://github.com/stipsan), [@c3mdigital](https://github.com/c3mdigital), [@adamsilverstein](https://github.com/adamsilverstein), [@westonruter](https://github.com/westonruter), [@japh](https://github.com/japh), [@solace](https://github.com/solace), [@johnbillion](https://github.com/johnbillion)
-
-= 1.4.9 - July 23, 2014 =
-
-* Fix: Revert delayed log mechanism for post transition ([#585](https://github.com/x-team/wp-stream/issues/585))
-* Fix: Revert usage of get_taxonomy() ([#586](https://github.com/x-team/wp-stream/pull/586))
-* Fix: Notices not firing on correct action ([#589](https://github.com/x-team/wp-stream/issues/589))
-
-Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
-
-= 1.4.8 - July 18, 2014 =
-
-* New: Greatly improved widget tracking, including changes performed in Customizer ([#391](https://github.com/x-team/wp-stream/pull/391))
-* New: Now tracking when Akismet automatically marks comments as spam ([#587](https://github.com/x-team/wp-stream/pull/587))
-* Tweak: Log WP-CLI details to Stream author meta ([#470](https://github.com/x-team/wp-stream/issues/470))
-* Tweak: Track changes to options more deeply ([#573](https://github.com/x-team/wp-stream/pull/573))
-* Fix: Labels not seen for CPT registered on init with default priority ([#565](https://github.com/x-team/wp-stream/issues/565))
-* Fix: Stream menu appearing in Network menu when not network activated ([#582](https://github.com/x-team/wp-stream/issues/582))
-* Fix: Post Revision ID associated to record is not the most recent one ([#585](https://github.com/x-team/wp-stream/issues/585))
-* Fix: Incorrect action label for comment throttling ([#591](https://github.com/x-team/wp-stream/issues/591))
-
-Props [@westonruter](https://github.com/westonruter), [@fjarrett](https://github.com/fjarrett), [@shadyvb](https://github.com/shadyvb), [@lukecarbis](https://github.com/lukecarbis), [@chacha](https://github.com/chacha)
-
-= 1.4.7 - June 27, 2014 =
-
-* New: Comment Type support added to the Comments connector ([#558](https://github.com/x-team/wp-stream/issues/558))
-* Fix: Datepicker opens again with each paged view ([#568](https://github.com/x-team/wp-stream/issues/568))
-* Fix: PHP warning when deleting network users ([#579](https://github.com/x-team/wp-stream/issues/579))
-* Fix: Track user count setting changes ([#583](https://github.com/x-team/wp-stream/issues/583))
-* Fix: .po and .pot files out-of-date for translators ([#584](https://github.com/x-team/wp-stream/issues/584))
-
-Props [@lukecarbis](https://github.com/lukecarbis), [@fjarrett](https://github.com/fjarrett), [@bordoni](https://github.com/bordoni), [@shadyvb](https://github.com/shadyvb)
-
-= 1.4.6 - May 30, 2014 =
-
-* Tweak: Actions provided for trashed posts are irrelevant ([#523](https://github.com/x-team/wp-stream/issues/523))
-* Tweak: Use core language pack translations where possible ([#534](https://github.com/x-team/wp-stream/issues/534))
-* Tweak: Consolidate show filter and show column screen options ([#542](https://github.com/x-team/wp-stream/issues/542))
-* Tweak: Stop tracking failed login attempts ([#547](https://github.com/x-team/wp-stream/issues/547))
-* Tweak: Remove all uses of extract() from Stream ([#556](https://github.com/x-team/wp-stream/issues/556))
-* Fix: Excluding roles is not handled properly ([#527](https://github.com/x-team/wp-stream/issues/527))
-* Fix: Stream runs install routine twice ([#528](https://github.com/x-team/wp-stream/issues/528))
-* Fix: Widget records show sidebar slug instead of label ([#531](https://github.com/x-team/wp-stream/issues/531))
-* Fix: Fatal error when PHP version is less than 5.3 ([#538](https://github.com/x-team/wp-stream/issues/538))
-* Fix: Cannot exclude Custom Background context ([#543](https://github.com/x-team/wp-stream/issues/543))
-* Fix: Conflict with Jetpack body class in WP Admin ([#545](https://github.com/x-team/wp-stream/issues/545))
-* Fix: Stream settings exclude error for big wp_users table ([#551](https://github.com/x-team/wp-stream/issues/551))
-
-Props [@fjarrett](https://github.com/fjarrett), [@lukecarbis](https://github.com/lukecarbis), [@shadyvb](https://github.com/shadyvb), [@barryceelen](https://github.com/barryceelen), [@japh](https://github.com/japh)
-
-= 1.4.5 - May 15, 2014 =
-
-* New: Lightweight frontend indicator for sites using Stream ([#507](https://github.com/x-team/wp-stream/issues/507))
-* Tweak: Add filterable method for excluded comment types ([#487](https://github.com/x-team/wp-stream/issues/487))
-* Tweak: Rename "ID" column label to "Record ID" ([#490](https://github.com/x-team/wp-stream/issues/490))
-* Tweak: One admin notice for any missing DB tables ([#506](https://github.com/x-team/wp-stream/pull/506))
-* Fix: Custom authentication schemes not tracking user logins correctly ([#434](https://github.com/x-team/wp-stream/issues/434))
-* Fix: Taxonomy connector conflicts with Edit Flow plugin ([#498](https://github.com/x-team/wp-stream/issues/498))
-* Fix: Switching user is incorrectly tracked ([#501](https://github.com/x-team/wp-stream/issues/501))
-* Fix: Extension activation links broken when plugin folders are renamed ([#502](https://github.com/x-team/wp-stream/issues/502))
-* Fix: Author info showing up incorrectly ([#505](https://github.com/x-team/wp-stream/issues/505))
-* Fix: Incompatibility with multi-server environments ([#517](https://github.com/x-team/wp-stream/issues/517))
-* Fix: Warnings seen when Show Avatars is disabled ([#518](https://github.com/x-team/wp-stream/issues/518))
-* Fix: Notices for non-existent extension data after timeout ([#529](https://github.com/x-team/wp-stream/pull/529))
-
-Props [@fjarrett](https://github.com/fjarrett), [@shadyvb](https://github.com/shadyvb), [@lukecarbis](https://github.com/lukecarbis), [@japh](https://github.com/japh)
-
-= 1.4.4 - May 6, 2014 =
-
-* New: Admin pointers to highlight when new admin screens are introduced ([#466](https://github.com/x-team/wp-stream/issues/466))
-* Tweak: Filter introduced to allow the Stream admin menu position to be changed ([#99](https://github.com/x-team/wp-stream/issues/99))
-* Tweak: Provide option label for records that show when the Stream database has updated ([#444](https://github.com/x-team/wp-stream/pull/444))
-* Tweak: Better handling of authors in the list table ([#448](https://github.com/x-team/wp-stream/pull/448))
-* Tweak: Way for developers to set their Stream Extensions affiliate ID on links from the Extensions screen ([#482](https://github.com/x-team/wp-stream/issues/482))
-* Fix: Extensions screen CSS bug in Firefox ([#464](https://github.com/x-team/wp-stream/issues/464))
-* Fix: Error when installing extensions from the Network Admin ([#491](https://github.com/x-team/wp-stream/issues/491))
-* Fix: Undefined notice in admin.php ([#468](https://github.com/x-team/wp-stream/issues/468))
-
-Props [@westonruter](https://github.com/westonruter), [@fjarrett](https://github.com/fjarrett), [@japh](https://github.com/japh), [@lukecarbis](https://github.com/lukecarbis), [@jonathanbardo](https://github.com/jonathanbardo), [@bordoni](https://github.com/bordoni)
-
-= 1.4.3 - April 26, 2014 =
-
-* New: Introducing the Stream Extensions screen! ([#396](https://github.com/x-team/wp-stream/issues/396))
-
-Props [@jonathanbardo](https://github.com/jonathanbardo), [@lukecarbis](https://github.com/lukecarbis), [@shadyvb](https://github.com/shadyvb), [@c3mdigital](https://github.com/c3mdigital), [@fjarrett](https://github.com/fjarrett)
-
-= 1.4.2 - April 24, 2014 =
-
-* Fix: Update Database button redirecting to previous screen ([#443](https://github.com/x-team/wp-stream/issues/443))
-* Fix: Update routine hotfix that was causing records to disappear ([#447](https://github.com/x-team/wp-stream/issues/447))
-
-Props [@jonathanbardo](https://github.com/jonathanbardo), [@lukecarbis](https://github.com/lukecarbis), [@westonruter](https://github.com/westonruter), [@fjarrett](https://github.com/fjarrett)
-
-= 1.4.1 - April 24, 2014 =
-
-* Fix: Scripts and styles not using Stream version number ([#440](https://github.com/x-team/wp-stream/issues/440))
-* Fix: WP-CLI incorrectly referenced in records ([#441](https://github.com/x-team/wp-stream/issues/441))
-
-Props [@westonruter](https://github.com/westonruter), [@fjarrett](https://github.com/fjarrett)
-
-= 1.4.0 - April 24, 2014 =
-
-* New: Multisite is now fully supported, activate Stream network-wide ([#65](https://github.com/x-team/wp-stream/issues/65))
-* New: Separate API for handling DB update routines ([#379](https://github.com/x-team/wp-stream/issues/379))
-* New: WP-CLI compatibility, Stream now tracks changes made via WP-CLI ([#423](https://github.com/x-team/wp-stream/issues/423))
-* Tweak: Deprecate functions and hooks in favor of consistent naming conventions ([#267](https://github.com/x-team/wp-stream/issues/267))
-* Tweak: Use icon link instead of clicking the summary to filter by object ID ([#380](https://github.com/x-team/wp-stream/issues/380))
-* Tweak: Save additional author meta for better records ([#389](https://github.com/x-team/wp-stream/issues/389))
-* Tweak: More compact search filters for smaller screens ([#403](https://github.com/x-team/wp-stream/issues/403))
-* Fix: Fix AJAX loading of authors in dropdown filters ([#49](https://github.com/x-team/wp-stream/issues/49))
-* Fix: Custom capability conflict with W3 Total Cache plugin ([#296](https://github.com/x-team/wp-stream/issues/296))
-* Fix: Live updates remove last item in activity table ([#386](https://github.com/x-team/wp-stream/issues/386))
-* Fix: Live updates screen option checkbox not persisting ([#392](https://github.com/x-team/wp-stream/issues/392))
-* Fix: IP validator not respecting zero ([#394](https://github.com/x-team/wp-stream/issues/394))
-* Fix: Non-Administrator users seeing errors in Settings records ([#406](https://github.com/x-team/wp-stream/issues/406))
-* Fix: Uninstall confirmation message doesn't display ([#411](https://github.com/x-team/wp-stream/issues/411))
-* Fix: TTL purge schedule is never setup ([#412](https://github.com/x-team/wp-stream/issues/412))
-* Fix: NextGen compatibility issue ([#416](https://github.com/x-team/wp-stream/issues/416))
-* Fix: Stream Feeds Key not being automatically generated ([#420](https://github.com/x-team/wp-stream/issues/420))
-
-Props [@fjarrett](https://github.com/fjarrett), [@lukecarbis](https://github.com/lukecarbis), [@c3mdigital](https://github.com/c3mdigital), [@westonruter](https://github.com/westonruter), [@shadyvb](https://github.com/shadyvb), [@powelski](https://github.com/powelski), [@johnregan3](https://github.com/johnregan3), [@jonathanbardo](https://github.com/jonathanbardo), [@desaiuditd](https://github.com/desaiuditd)
-
-= 1.3.1 - April 3, 2014 =
-
-* New: Theme Editor connector for tracking changes made to theme files ([#313](https://github.com/x-team/wp-stream/issues/313))
-* New: Additional screen options to show/hide only the filters you care about ([#329](https://github.com/x-team/wp-stream/issues/329))
-* New: Visibility option in Exclude settings to hide past records from view ([#355](https://github.com/x-team/wp-stream/issues/355))
-* New: Stream Activity dashboard widget now supports live updates ([#356](https://github.com/x-team/wp-stream/issues/356))
-* New: Hover authors to reveal a tooltip with helpful user meta ([#338](https://github.com/x-team/wp-stream/issues/338))
-* New: Hover roles to reveal a tooltip with the number of authors assigned to that role ([#377](https://github.com/x-team/wp-stream/issues/377))
-* Tweak: Future dates now disabled in Start date field datepicker ([#334](https://github.com/x-team/wp-stream/issues/334))
-* Tweak: Now showing user Gravatars in Exclude Authors & Roles settings field ([#333](https://github.com/x-team/wp-stream/issues/333))
-* Tweak: ID column is now hidden by default in Screen Options ([#348](https://github.com/x-team/wp-stream/issues/348))
-* Tweak: Widget updated summary message improvement ([8818976](https://github.com/x-team/wp-stream/commit/88189761d4a8836038e8d9ec348096a0aab3072d))
-* Fix: Autocomplete not working correctly in Exclude IP Addresses settings field ([#335](https://github.com/x-team/wp-stream/issues/335))
-* Fix: Reset Stream Database link not clearing everything in all cases ([#347](https://github.com/x-team/wp-stream/issues/347))
-* Fix: PHP 5.3.3 compatibility issue with filter constant ([#351](https://github.com/x-team/wp-stream/issues/351))
-* Fix: Predefined date range intervals not honoring the site timezone setting ([#353](https://github.com/x-team/wp-stream/issues/353))
-* Fix: wpdb::prepare() notice appearing in WordPress 3.9 ([#354](https://github.com/x-team/wp-stream/issues/354))
-* Fix: Invalid argument warning thrown on fresh installations of WordPress ([#358](https://github.com/x-team/wp-stream/issues/358))
-* Fix: Record TTL purge not functioning correctly ([#371](https://github.com/x-team/wp-stream/issues/371))
-* Fix: Small CSS bug in jQuery UI datepicker skins ([04c80af](https://github.com/x-team/wp-stream/commit/04c80afa99486086612be9f6ad83148dfbbe533a))
-
-Props [@powelski](https://github.com/powelski), [@fjarrett](https://github.com/fjarrett), [@jonathanbardo](https://github.com/jonathanbardo), [@faishal](https://github.com/faishal), [@desaiuditd](https://github.com/desaiuditd), [@lukecarbis](https://github.com/lukecarbis), [@johnregan3](https://github.com/johnregan3), [@Powdered-Toast-Man](https://github.com/Powdered-Toast-Man)
-
-= 1.3.0 - March 12, 2014 =
-
-* New: Exclude tab in Settings to prevent specific types of activity from being tracked ([#251](https://github.com/x-team/wp-stream/issues/251))
-* New: Now logging Custom Background and Custom Header changes ([#309](https://github.com/x-team/wp-stream/issues/309))
-* New: Predefined date intervals now available when filtering records ([#320](https://github.com/x-team/wp-stream/issues/320))
-* Tweak: Action links are now available for Stream Settings records ([#305](https://github.com/x-team/wp-stream/issues/305))
-* Tweak: User avatars now displayed in Authors dropdown filter ([#311](https://github.com/x-team/wp-stream/issues/311))
-* Tweak: Live updates are enabled by default for new installs ([#312](https://github.com/x-team/wp-stream/issues/312))
-* Fix: Fallback to the term slug if a label does not exist in list-table ([#214](https://github.com/x-team/wp-stream/issues/214))
-* Fix: Widget sorting is now being tracked properly as well as Inactive widgets ([#283](https://github.com/x-team/wp-stream/issues/283))
-* Fix: Superfluous auto-draft posts are now prevented from being logged ([#293](https://github.com/x-team/wp-stream/issues/293))
-
-Props [@powelski](https://github.com/powelski), [@faishal](https://github.com/faishal), [@fjarrett](https://github.com/fjarrett), [@desaiuditd](https://github.com/desaiuditd), [@lukecarbis](https://github.com/lukecarbis), [@shadyvb](https://github.com/shadyvb)
-
-= 1.2.9 - March 8, 2014 =
-Fixes bug that caused media uploads to fail on new posts. Props [@fjarrett](https://github.com/fjarrett)
-
-= 1.2.8 - March 7, 2014 =
-Use attachment type as context in Media connector. Bug fixes. Props [@lukecarbis](https://github.com/lukecarbis), [@powelski](https://github.com/powelski), [@fjarrett](https://github.com/fjarrett)
-
-= 1.2.7 - March 4, 2014 =
-Pagination added to Stream Activity dashboard widget. Bug fixes. Props [@chacha](https://github.com/chacha), [@fjarrett](https://github.com/fjarrett)
-
-= 1.2.6 - February 28, 2014 =
-Improved context names in Users connector. Props [@powelski](https://github.com/powelski)
-
-= 1.2.5 - February 27, 2014 =
-Use sidebar area names as context in Widgets connector. Bug fixes. Props [@desaiuditd](https://github.com/desaiuditd), [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett), [@bordoni](https://github.com/bordoni)
-
-= 1.2.4 - February 25, 2014 =
-Use post type names as context in Comments connector. German translation update. Bug fixes. Props [@powelski](https://github.com/powelski), [@kucrut](https://github.com/kucrut), [@pascalklaeres](https://github.com/pascal-klaeres), [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
-
-= 1.2.3 - February 21, 2014 =
-Replacement function for filter_input family to avoid PHP bug. Filter added to main Stream query. Bug fixes. Props [@shadyvb](https://github.com/shadyvb), [@powelski](https://github.com/powelski), [@fjarrett](https://github.com/fjarrett)
-
-= 1.2.2 - February 19, 2014 =
-Prevent records of disabled connectors from appearing in the Stream. Bug fixes. Props [@kucrut](https://github.com/kucrut), [@johnregan3](https://github.com/johnregan3)
-
-= 1.2.1 - February 17, 2014 =
-Translation updates. Language packs for pt_BR and id_ID. Bug fixes. Props [@kucrut](https://github.com/kucrut), [@shadyvb](https://github.com/shadyvb), [@bordoni](https://github.com/bordoni), [@powelski](https://github.com/powelski), [omniwired](https://github.com/omniwired), [@fjarrett](https://github.com/fjarrett)
-
-= 1.2.0 - February 12, 2014 =
-Awesome datepicker styles. Performance optimizations. Bug fixes. Props [@johnregan3](https://github.com/johnregan3), [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett), [@jonathanbardo](https://github.com/jonathanbardo)
-
-= 1.1.9 - February 10, 2014 =
-Load authors filter using AJAX if there are more than 50. Props [@powelski](https://github.com/powelski)
-
-= 1.1.8 - February 9, 2014 =
-Bug fixes. Props [@shadyvb](https://github.com/shadyvb)
-
-= 1.1.7 - February 6, 2014 =
-Upgrade routine for IPv6 support. Persist tab selection after saving Stream Settings. Props [@shadyvb](https://github.com/shadyvb), [dero](https://github.com/dero)
-
-= 1.1.6 - February 6, 2014 =
-Sortable columns bug fix on the records screen. Props [@powelski](https://github.com/powelski), [@fjarrett](https://github.com/fjarrett)
-
-= 1.1.5 - February 5, 2014 =
-Fixed a class scope bug [reported in the support forum](https://wordpress.org/support/topic/temporary-fatal-error-after-upgrade-113) that was causing a fatal error on some installs. Props [@shadyvb](https://github.com/shadyvb)
-
-= 1.1.4 - February 5, 2014 =
-Highlight changed settings field feature. DB upgrade routine for proper utf-8 charset. Various bug fixes. Props [@powelski](https://github.com/powelski), [@johnregan3](https://github.com/johnregan3), [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
-
-= 1.1.3 - February 4, 2014 =
-Upgrade routine for IP column in DB. Serialized option parsing for Stream Settings records. Purge records immediately when TTL is set backwards in Stream Settings. Various bug fixes. Props [@shadyvb](https://github.com/shadyvb), [@powelski](https://github.com/powelski), [@fjarrett](https://github.com/fjarrett)
-
-= 1.1.2 - February 2, 2014 =
-Bug fix for list table notice on new installations. Props [@shadyvb](https://github.com/shadyvb)
-
-= 1.1.0 - January 31, 2014 =
-Disable terms in dropdown filters for which records do not exist. Props [@johnregan3](https://github.com/johnregan3)
-
-= 1.0.9 - January 31, 2014 =
-Several important bug fixes. Props [@shadyvb](https://github.com/shadyvb)
-
-= 1.0.8 - January 30, 2014 =
-Bug fix for sites using BuddyPress. Props [@johnregan3](https://github.com/johnregan3)
-
-= 1.0.7 - January 29, 2014 =
-Code efficiency improvements when fetching admin area URLs. Props [@fjarrett](https://github.com/fjarrett)
-
-= 1.0.6 - January 28, 2014 =
-Query improvements, default connector interface, hook added for general settings fields. Bug fixes. Props [dero](https://github.com/dero), [@jonathanbardo](https://github.com/jonathanbardo), [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
-
-= 1.0.5 - January 27, 2014 =
-Bug fix for live updates breaking columns when some are hidden via Screen Options. Props [@johnregan3](https://github.com/johnregan3)
-
-= 1.0.4 - January 23, 2014 =
-Language pack for Polish. Bug fixes. Props [@powelski](https://github.com/powelski), [@fjarrett](https://github.com/fjarrett), [@johnregan3](https://github.com/johnregan3), [@kucrut](https://github.com/kucrut)
-
-= 1.0.3 - January 19, 2014 =
-Language pack for Spanish. Bug fixes. Props [omniwired](https://github.com/omniwired), [@shadyvb](https://github.com/shadyvb)
-
-= 1.0.2 - January 15, 2014 =
-Ensure the dashboard widget respects the Role Access setting. Props [@fjarrett](https://github.com/fjarrett)
-
-= 1.0.1 - January 15, 2014 =
-Require nonce for generating a new user feed key. Props [@johnregan3](https://github.com/johnregan3)
-
-= 1.0.0 - January 13, 2014 =
-Allow list table to be extensible. Hook added to prevent tables from being created, if desired. Props [@johnregan3](https://github.com/johnregan3), [@fjarrett](https://github.com/fjarrett), [@jonathanbardo](https://github.com/jonathanbardo)
-
-= 0.9.9 - January 8, 2014 =
-Updated screenshot assets and descriptions. Props [@fjarrett](https://github.com/fjarrett)
-
-= 0.9.8 - January 1, 2014 =
-Support for live updates in the Stream. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@johnregan3](https://github.com/johnregan3), [@fjarrett](https://github.com/fjarrett)
-
-= 0.9.7 - December 29, 2013 =
-Plugin version available as a constant. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@fjarrett](https://github.com/fjarrett)
-
-= 0.9.6 - December 29, 2013 =
-Use menu name as context in Menus connector. Warning if required DB tables are missing. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@fjarrett](https://github.com/fjarrett), [@topher1kenobe](https://github.com/topher1kenobe)
-
-= 0.9.5 - December 22, 2013 =
-WordPress context added to Installer connector for core updates. Props [@shadyvb](https://github.com/shadyvb)
-
-= 0.9.3 - December 22, 2013 =
-Replacing Chosen library with Select2. Bug fixes. Props [@kucrut](https://github.com/kucrut), [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
-
-= 0.9.2 - December 22, 2013 =
-Added support for private feeds in JSON format. Flush rewrite rules automatically for feeds when enabled/disabled. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@fjarrett](https://github.com/fjarrett)
-
-= 0.9.1 - December 21, 2013 =
-Specify which roles should have their activity logged. Delete all options on uninstall. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@fjarrett](https://github.com/fjarrett)
-
-= 0.9.0 - December 20, 2013 =
-Added connector for Comments. Stream activity dashboard widget. UI enhancements. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@fjarrett](https://github.com/fjarrett), [@shadyvb](https://github.com/shadyvb), [@topher1kenobe](https://github.com/topher1kenobe)
-
-= 0.8.2 - December 19, 2013 =
-Language packs for French and German. Option to uninstall database tables. Bug fixes. Props [@jonathanbardo](https://github.com/jonathanbardo), [@fjarrett](https://github.com/fjarrett), [@topher1kenobe](https://github.com/topher1kenobe), [@pascalklaeres](https://github.com/pascal-klaeres)
-
-= 0.8.1 - December 18, 2013 =
-Setting to enable/disable private feeds functionality. Additional record logged when a user's role is changed. Bug fixes. Props [@fjarrett](https://github.com/fjarrett), [@kucrut](https://github.com/kucrut), [@topher1kenobe](https://github.com/topher1kenobe), [@justinsainton](https://github.com/justinsainton)
-
-= 0.8.0 - December 16, 2013 =
-Ability to query Stream records in a private RSS feed. Bug fixes. Props [@fjarrett](https://github.com/fjarrett), [@shadyvb](https://github.com/shadyvb)
-
-= 0.7.3 - December 13, 2013 =
-Bug fix for Role Access option. Props [@fjarrett](https://github.com/fjarrett)
-
-= 0.7.2 - December 12, 2013 =
-Bug fixes for the Installer connector. Props [@shadyvb](https://github.com/shadyvb)
-
-= 0.7.1 - December 12, 2013 =
-Hotfix to remove PHP 5.4-only syntax. Role Access option added to Settings. Props [@kucrut](https://github.com/kucrut)
-
-= 0.7.0 - December 11, 2013 =
-Added connectors for Taxonomies and Settings. Bug fixes. Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
-
-= 0.6.0 - December 9, 2013 =
-UX improvements to manual DB purge. Cron event for user-defined TTL of records. Bug fixes. Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
-
-= 0.5.0 - December 8, 2013 =
-Require PHP 5.3 to activate plugin. Provide action links for records when applicable. Bug fixes. Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
-
-= 0.4.0 - December 8, 2013 =
-Improved support for pages and custom post types. Chosen for filter dropdowns. Pagination support in screen options. Bug fixes. Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
-
-= 0.3.0 - December 7, 2013 =
-Improved actions for Users context. Action for edited images in Media context. Bug fixes in Menus context. Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett), [@akeda](https://github.com/gedex)
-
-= 0.2.0 - December 6, 2013 =
-Second iteration build using custom tables data model. First public release. Props [@shadyvb](https://github.com/shadyvb), [@fjarrett](https://github.com/fjarrett)
-
-= 0.1.0 =
-Initial concept built using custom post type/taxonomies as the data model. Props [@shadyvb](https://github.com/shadyvb)
+[See the full changelog here.](https://github.com/xwp/stream/blob/master/changelog.md)
diff --git a/ui/css/admin.css b/src/css/admin.scss
similarity index 98%
rename from ui/css/admin.css
rename to src/css/admin.scss
index 8acceff23..31a0bd3d7 100644
--- a/ui/css/admin.css
+++ b/src/css/admin.scss
@@ -1,3 +1,5 @@
+@import "components/datepicker";
+
/* Stream Records */
.toplevel_page_wp_stream .tablenav {
@@ -87,14 +89,11 @@
.toplevel_page_wp_stream .column-date {
width: 120px;
- white-space: nowrap;
}
.toplevel_page_wp_stream .column-date .timeago {
display: inline-block;
- overflow: hidden;
- text-overflow: ellipsis;
- max-width: 100%;
+ padding-bottom: 2px;
}
.toplevel_page_wp_stream .column-user_id {
@@ -275,6 +274,11 @@ more custom columns squeezes the summary column to a narrow strip.
/* Settings */
+.notice-stream-feature-request .dashicons {
+ font-size: 17px;
+ text-decoration: none;
+}
+
.wp_stream_settings .select2.select2-container,
.wp_stream_network_settings .select2.select2-container,
.wp_stream_default_settings .select2.select2-container {
diff --git a/ui/css/alerts-list.css b/src/css/alerts-list.scss
similarity index 99%
rename from ui/css/alerts-list.css
rename to src/css/alerts-list.scss
index b21fe51e3..f18eab8ed 100644
--- a/ui/css/alerts-list.css
+++ b/src/css/alerts-list.scss
@@ -57,7 +57,7 @@
.edit-php.post-type-wp_stream_alerts .inline-edit-col.inline-edit-wp_stream_alerts {
float: left;
width: 100%;
- max-width: 20%
+ max-width: 33%
}
}
diff --git a/ui/css/datepicker.css b/src/css/components/_datepicker.scss
similarity index 99%
rename from ui/css/datepicker.css
rename to src/css/components/_datepicker.scss
index 015886b6c..2d80f1681 100644
--- a/ui/css/datepicker.css
+++ b/src/css/components/_datepicker.scss
@@ -216,7 +216,7 @@
#ui-datepicker-div.stream-datepicker.ui-datepicker .ui-datepicker-next span,
#ui-datepicker-div.stream-datepicker.ui-datepicker .ui-datepicker-prev span {
- background-image: url(../stream-icons/datepicker-icons.png);
+ background-image: url("../../assets/datepicker-icons.png");
background-position: -32px 0;
margin-top: 0;
top: 0;
@@ -288,7 +288,7 @@
.admin-color-light #ui-datepicker-div.stream-datepicker.ui-datepicker .ui-datepicker-next span,
.admin-color-light #ui-datepicker-div.stream-datepicker.ui-datepicker .ui-datepicker-prev span {
- background-image: url(../stream-icons/datepicker-icons-gray.png);
+ background-image: url("../../assets/datepicker-icons-gray.png");
}
/* Calendar Top Border */
diff --git a/src/js/admin-exclude.js b/src/js/admin-exclude.js
new file mode 100644
index 000000000..d3b85b216
--- /dev/null
+++ b/src/js/admin-exclude.js
@@ -0,0 +1,467 @@
+/* eslint-disable camelcase */
+/**
+ * External dependencies
+ */
+import $ from 'jquery';
+
+/**
+ * Internal dependencies
+ */
+import wp_stream_regenerate_alt_rows from './utils/wp-stream-regenerate-alt-rows';
+
+const $excludeRows = $( '.stream-exclude-list tbody tr:not(.hidden)' );
+const $placeholderRow = $( '.stream-exclude-list tr.helper' );
+
+const initSettingsSelect2 = function( $rowsWithSelect2 ) {
+ let $input_user;
+
+ $( 'select.select2-select.connector_or_context', $rowsWithSelect2 ).each(
+ function( k, el ) {
+ $( el ).select2(
+ {
+ allowClear: true,
+ templateResult( item ) {
+ if ( typeof item.id === 'undefined' ) {
+ return item.text;
+ }
+ if ( item.id.indexOf( '-' ) === -1 ) {
+ return $( '' + item.text + ' ' );
+ }
+ return $( '' + item.text + ' ' );
+ },
+ matcher( params, data ) {
+ const match = $.extend( true, {}, data );
+
+ if ( null === params.term || $.trim( params.term ) === '' ) {
+ return match;
+ }
+
+ const term = params.term.toLowerCase();
+
+ match.id = match.id.replace( 'blogs', 'sites' );
+ if ( match.id.toLowerCase().indexOf( term ) >= 0 ) {
+ return match;
+ }
+
+ if ( match.children ) {
+ for ( let i = match.children.length - 1; i >= 0; i-- ) {
+ const child = match.children[ i ];
+
+ // Remove term from results if it doesn't match.
+ if ( child.id.toLowerCase().indexOf( term ) === -1 ) {
+ match.children.splice( i, 1 );
+ }
+ }
+
+ if ( match.children.length > 0 ) {
+ return match;
+ }
+ }
+
+ return null;
+ },
+ }
+ ).on(
+ 'change', function() {
+ const row = $( this ).closest( 'tr' );
+ let connector = $( this ).val();
+ if ( connector && 0 < connector.indexOf( '-' ) ) {
+ const connector_split = connector.split( '-' );
+ connector = connector_split[ 0 ];
+ }
+ getActions( row, connector );
+ }
+ );
+ }
+ );
+
+ $( 'select.select2-select.action', $rowsWithSelect2 ).each(
+ function( k, el ) {
+ $( el ).select2(
+ {
+ allowClear: true,
+ }
+ );
+ }
+ );
+
+ $( 'select.select2-select.author_or_role', $rowsWithSelect2 ).each(
+ function( k, el ) {
+ $input_user = $( el );
+
+ $input_user.select2(
+ {
+ ajax: {
+ type: 'POST',
+ url: window.ajaxurl,
+ dataType: 'json',
+ quietMillis: 500,
+ data( term, page ) {
+ return {
+ find: term,
+ limit: 10,
+ pager: page,
+ action: 'stream_get_users',
+ nonce: $input_user.data( 'nonce' ),
+ };
+ },
+ processResults( response ) {
+ const answer = {
+ results: [
+ { text: '', id: '' },
+ { text: 'Roles', children: [] },
+ { text: 'Users', children: [] },
+ ],
+ };
+
+ if ( true !== response.success || undefined === response.data || true !== response.data.status ) {
+ return answer;
+ }
+
+ if ( undefined === response.data.users || undefined === response.data.roles ) {
+ return answer;
+ }
+
+ const roles = [];
+
+ $.each(
+ response.data.roles, function( id, text ) {
+ roles.push(
+ {
+ id,
+ text,
+ }
+ );
+ }
+ );
+
+ answer.results[ 1 ].children = roles;
+ answer.results[ 2 ].children = response.data.users;
+
+ // Return the value of more so Select2 knows if more results can be loaded
+ return answer;
+ },
+ },
+ templateResult( object ) {
+ const $result = $( '' ).text( object.text );
+
+ if ( 'undefined' !== typeof object.icon && object.icon ) {
+ $result.prepend( $( '
' ) );
+
+ // Add more info to the container
+ $result.attr( 'title', object.tooltip );
+ }
+
+ // Add more info to the container
+ if ( 'undefined' !== typeof object.tooltip ) {
+ $result.attr( 'title', object.tooltip );
+ } else if ( 'undefined' !== typeof object.user_count ) {
+ $result.attr( 'title', object.user_count );
+ }
+
+ return $result;
+ },
+ templateSelection( object ) {
+ const $result = $( '
' ).text( object.text );
+
+ if ( $.isNumeric( object.id ) && object.text.indexOf( 'icon-users' ) < 0 ) {
+ $result.append( $( '
' ) );
+ }
+
+ return $result;
+ },
+ allowClear: true,
+ placeholder: $input_user.data( 'placeholder' ),
+ }
+ ).on(
+ 'change', function() {
+ const value = $( this ).select2( 'data' );
+
+ $( this ).data( 'selected-id', value.id );
+ $( this ).data( 'selected-text', value.text );
+ }
+ );
+ }
+ );
+
+ $( 'select.select2-select.ip_address', $rowsWithSelect2 ).each(
+ function( k, el ) {
+ const $input_ip = $( el );
+ let searchTerm = '';
+
+ $input_ip.select2(
+ {
+ ajax: {
+ type: 'POST',
+ url: window.ajaxurl,
+ dataType: 'json',
+ quietMillis: 500,
+ data( term ) {
+ searchTerm = term.term;
+ return {
+ find: term,
+ limit: 10,
+ action: 'stream_get_ips',
+ nonce: $input_ip.data( 'nonce' ),
+ };
+ },
+ processResults( response ) {
+ const answer = { results: [] };
+ let ip_chunks = [];
+
+ if ( true === response.success && undefined !== response.data ) {
+ $.each(
+ response.data, function( key, ip ) {
+ answer.results.push(
+ {
+ id: ip,
+ text: ip,
+ }
+ );
+ }
+ );
+ }
+
+ if ( undefined === searchTerm ) {
+ return answer;
+ }
+
+ ip_chunks = searchTerm.match( /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ );
+
+ if ( null === ip_chunks ) {
+ return answer;
+ }
+
+ // remove whole match
+ ip_chunks.shift();
+
+ ip_chunks = $.grep(
+ ip_chunks,
+ function( chunk ) {
+ const numeric = parseInt( chunk, 10 );
+ return numeric <= 255 && numeric.toString() === chunk;
+ }
+ );
+
+ if ( ip_chunks.length >= 4 ) {
+ answer.results.push(
+ {
+ id: searchTerm,
+ text: searchTerm,
+ }
+ );
+ }
+
+ return answer;
+ },
+ },
+ allowClear: false,
+ multiple: true,
+ maximumSelectionSize: 1,
+ placeholder: $input_ip.data( 'placeholder' ),
+ tags: true,
+ }
+ );
+ }
+ ).on(
+ 'change', function() {
+ $( this ).prev( '.select2-container' ).find( 'input.select2-input' ).blur();
+ }
+ );
+
+ $( 'ul.select2-choices, ul.select2-choices li, input.select2-input', '.stream-exclude-list tr:not(.hidden) .ip_address' ).on(
+ 'mousedown click focus', function() {
+ const $container = $( this ).closest( '.select2-container' ),
+ $input = $container.find( 'input.select2-input' ),
+ value = $container.select2( 'data' );
+
+ if ( value.length >= 1 ) {
+ $input.blur();
+ return false;
+ }
+ }
+ );
+
+ $( '.exclude_rules_remove_rule_row', $rowsWithSelect2 ).on(
+ 'click', function( e ) {
+ const $thisRow = $( this ).closest( 'tr' );
+
+ $thisRow.remove();
+
+ recalculate_rules_found();
+ recalculate_rules_selected();
+
+ e.preventDefault();
+ }
+ );
+};
+
+initSettingsSelect2( $excludeRows );
+
+$( 'select.select2-select.author_or_role', $excludeRows ).each(
+ function() {
+ const $option = $( '
' + $( this ).data( 'selected-text' ) + ' ' ).val( $( this ).data( 'selected-id' ) );
+ $( this ).append( $option ).trigger( 'change' );
+ }
+);
+
+$( 'select.select2-select.connector_or_context', $excludeRows ).each(
+ function() {
+ const parts = [
+ $( this ).siblings( '.connector' ).val(),
+ $( this ).siblings( '.context' ).val(),
+ ];
+ if ( parts[ 1 ] === '' ) {
+ parts.splice( 1, 1 );
+ }
+ $( this ).val( parts.join( '-' ) ).trigger( 'change' );
+ }
+);
+
+$( '#exclude_rules_new_rule' ).on(
+ 'click', function() {
+ const $newRow = $placeholderRow.clone();
+
+ $newRow.removeAttr( 'class' );
+ $newRow.insertBefore( $placeholderRow );
+
+ initSettingsSelect2( $newRow );
+ recalculate_rules_found();
+ recalculate_rules_selected();
+ }
+);
+
+$( '#exclude_rules_remove_rules' ).on(
+ 'click', function() {
+ const $excludeList = $( 'table.stream-exclude-list' ),
+ selectedRows = $( 'tbody input.cb-select:checked', $excludeList ).closest( 'tr' );
+
+ if ( ( $( 'tbody tr', $excludeList ).length - selectedRows.length ) >= 2 ) {
+ selectedRows.remove();
+ } else {
+ $( ':input', selectedRows ).val( '' );
+ $( selectedRows ).not( ':first' ).remove();
+ $( '.select2-select', selectedRows ).select2( 'val', '' );
+ }
+
+ $excludeList.find( 'input.cb-select' ).prop( 'checked', false );
+
+ recalculate_rules_found();
+ recalculate_rules_selected();
+ }
+);
+
+$( '.stream-exclude-list' ).closest( 'form' ).submit(
+ function() {
+ $( '.stream-exclude-list tbody tr.hidden', this ).each(
+ function() {
+ $( this ).find( ':input' ).removeAttr( 'name' );
+ }
+ );
+ $( '.stream-exclude-list tbody tr:not(.hidden) select.select2-select.connector_or_context', this ).each(
+ function() {
+ const parts = $( this ).val().split( '-' );
+ $( this ).siblings( '.connector' ).val( parts[ 0 ] );
+ $( this ).siblings( '.context' ).val( parts.slice( 1 ).join( '-' ) );
+ $( this ).removeAttr( 'name' );
+ }
+ );
+ $( '.stream-exclude-list tbody tr:not(.hidden) select.select2-select.ip_address', this ).each(
+ function() {
+ const firstSelected = $( 'option:selected', this ).first();
+
+ // Ugly hack to ensure we always pass an empty value or the order of rows gets messed up.
+ if ( ! firstSelected.length ) {
+ $( this ).append( '
' );
+ }
+
+ $( 'option:selected:not(:first)', this ).each(
+ function() {
+ firstSelected.attr( 'value', firstSelected.attr( 'value' ) + ',' + $( this ).attr( 'value' ) );
+ $( this ).removeAttr( 'selected' );
+ }
+ );
+ }
+ );
+ }
+);
+
+$( '.stream-exclude-list' ).closest( 'td' ).prev( 'th' ).hide();
+
+$( 'table.stream-exclude-list' ).on(
+ 'click', 'input.cb-select', function() {
+ recalculate_rules_selected();
+ }
+);
+
+function getActions( row, connector ) {
+ const trigger_action = $( '.select2-select.action', row ),
+ action_value = trigger_action.val();
+
+ trigger_action.empty();
+ trigger_action.prop( 'disabled', true );
+
+ const placeholder = $( '
', { value: '', text: '' } );
+ trigger_action.append( placeholder );
+
+ const data = {
+ action: 'get_actions',
+ connector,
+ };
+
+ $.post(
+ window.ajaxurl, data, function( response ) {
+ const success = response.success,
+ actions = response.data;
+ if ( ! success ) {
+ return;
+ }
+ for ( const key in actions ) {
+ if ( actions.hasOwnProperty( key ) ) {
+ const value = actions[ key ];
+ const option = $( '
', { value: key, text: value } );
+ trigger_action.append( option );
+ }
+ }
+ trigger_action.val( action_value );
+ trigger_action.prop( 'disabled', false );
+ $( document ).trigger( 'alert-actions-updated' );
+ }
+ );
+}
+
+function recalculate_rules_selected() {
+ const $selectedRows = $( 'table.stream-exclude-list tbody tr:not( .hidden ) input.cb-select:checked' ),
+ $deleteButton = $( '#exclude_rules_remove_rules' );
+
+ if ( 0 === $selectedRows.length ) {
+ $deleteButton.prop( 'disabled', true );
+ } else {
+ $deleteButton.prop( 'disabled', false );
+ }
+}
+
+function recalculate_rules_found() {
+ const $allRows = $( 'table.stream-exclude-list tbody tr:not( .hidden )' ),
+ $noRulesFound = $( 'table.stream-exclude-list tbody tr.no-items' ),
+ $selectAll = $( '.check-column.manage-column input.cb-select' ),
+ $deleteButton = $( '#exclude_rules_remove_rules' );
+
+ if ( 0 === $allRows.length ) {
+ $noRulesFound.show();
+ $selectAll.prop( 'disabled', true );
+ $deleteButton.prop( 'disabled', true );
+ } else {
+ $noRulesFound.hide();
+ $selectAll.prop( 'disabled', false );
+ }
+
+ wp_stream_regenerate_alt_rows( $allRows );
+}
+
+$( document ).ready(
+ function() {
+ recalculate_rules_found();
+ recalculate_rules_selected();
+ }
+);
diff --git a/src/js/admin.js b/src/js/admin.js
new file mode 100644
index 000000000..6e83662bf
--- /dev/null
+++ b/src/js/admin.js
@@ -0,0 +1,558 @@
+/* eslint-disable camelcase */
+/**
+ * External dependencies
+ */
+import $ from 'jquery';
+
+/**
+ * Internal dependencies
+ */
+import '../css/admin.scss';
+import getQueryVars from './utils/get-query-vars';
+
+// Shorter timeago strings for English locale
+if ( 'en' === window[ 'wp-stream-admin' ].locale && 'undefined' !== typeof $.timeago ) {
+ $.timeago.settings.strings.seconds = 'seconds';
+ $.timeago.settings.strings.minute = 'a minute';
+ $.timeago.settings.strings.hour = 'an hour';
+ $.timeago.settings.strings.hours = '%d hours';
+ $.timeago.settings.strings.month = 'a month';
+ $.timeago.settings.strings.year = 'a year';
+}
+
+$( 'li.toplevel_page_wp_stream ul li.wp-first-item.current' ).parent().parent().find( '.update-plugins' ).remove();
+
+$( '.toplevel_page_wp_stream :input.chosen-select' ).each(
+ function( i, el ) {
+ let args = {};
+ function templateResult( record ) {
+ const $result = $( '
' );
+ const $elem = $( record.element );
+ let icon = '';
+
+ if ( '- ' === record.text.substring( 0, 2 ) ) {
+ record.text = record.text.substring( 2 );
+ }
+
+ if ( 'undefined' !== typeof record.id && 'string' === typeof record.id ) {
+ if ( record.id.indexOf( 'group-' ) === 0 ) {
+ $result.addClass( 'parent' );
+ } else if ( $elem.hasClass( 'level-2' ) ) {
+ $result.addClass( 'child' );
+ }
+ }
+
+ if ( undefined !== record.icon ) {
+ icon = record.icon;
+ } else if ( undefined !== $elem && '' !== $elem.data( 'icon' ) ) {
+ icon = $elem.data( 'icon' );
+ }
+
+ if ( icon ) {
+ $result.html( ' ' );
+ }
+ $result.append( record.text );
+
+ return $result;
+ }
+ function templateSelection( record ) {
+ if ( '- ' === record.text.substring( 0, 2 ) ) {
+ record.text = record.text.substring( 2 );
+ }
+ return record.text;
+ }
+
+ if ( $( el ).find( 'option' ).not( ':selected' ).not( ':empty' ).length > 0 ) {
+ args = {
+ minimumResultsForSearch: 10,
+ templateResult,
+ templateSelection,
+ allowClear: true,
+ width: '165px',
+ };
+ } else {
+ args = {
+ minimumInputLength: 3,
+ allowClear: true,
+ width: '165px',
+ ajax: {
+ url: window.ajaxurl,
+ delay: 500,
+ dataType: 'json',
+ quietMillis: 100,
+ data( term ) {
+ return {
+ action: 'wp_stream_filters',
+ nonce: $( '#stream_filters_user_search_nonce' ).val(),
+ filter: $( el ).attr( 'name' ),
+ q: term.term,
+ };
+ },
+ processResults( data ) {
+ const results = [];
+ $.each(
+ data, function( index, item ) {
+ results.push(
+ {
+ id: item.id,
+ text: item.label,
+ }
+ );
+ }
+ );
+ return {
+ results,
+ };
+ },
+ },
+ templateResult,
+ templateSelection,
+ };
+ }
+
+ $( el ).select2( args );
+ }
+);
+
+const $queryVars = getQueryVars();
+const $contextInput = $( '.toplevel_page_wp_stream select.chosen-select[name="context"]' );
+
+if ( ( 'undefined' === typeof $queryVars.context || '' === $queryVars.context ) && 'undefined' !== typeof $queryVars.connector ) {
+ $contextInput.val( 'group-' + $queryVars.connector );
+ $contextInput.trigger( 'change' );
+}
+
+$( 'input[type=submit]', '#record-filter-form' ).click(
+ function() {
+ $( 'input[type=submit]', $( this ).parents( 'form' ) ).removeAttr( 'clicked' );
+ $( this ).attr( 'clicked', 'true' );
+ }
+);
+
+$( '#record-filter-form' ).submit(
+ function() {
+ const $context = $( '.toplevel_page_wp_stream :input.chosen-select[name="context"]' ),
+ $option = $context.find( 'option:selected' ),
+ $connector = $context.parent().find( '.record-filter-connector' ),
+ optionConnector = $option.data( 'group' ),
+ optionClass = $option.prop( 'class' ),
+ $recordAction = $( '.recordactions select' );
+
+ if ( $( '#record-actions-submit' ).attr( 'clicked' ) !== 'true' ) {
+ $recordAction.val( '' );
+ }
+
+ $connector.val( optionConnector );
+
+ if ( 'level-1' === optionClass ) {
+ $option.val( '' );
+ }
+ }
+);
+
+$( window ).on(
+ 'load',
+ function() {
+ $( '.toplevel_page_wp_stream input[type="search"]' ).off( 'mousedown' );
+ }
+);
+
+// Confirmation on some important actions
+$( 'body' ).on(
+ 'click', '#wp_stream_advanced_delete_all_records, #wp_stream_network_advanced_delete_all_records', function( e ) {
+ if ( ! window.confirm( window[ 'wp-stream-admin' ].i18n.confirm_purge ) ) { // eslint-disable-line no-alert
+ e.preventDefault();
+ }
+ }
+);
+
+$( 'body' ).on(
+ 'click', '#wp_stream_advanced_reset_site_settings, #wp_stream_network_advanced_reset_site_settings', function( e ) {
+ if ( ! window.confirm( window[ 'wp-stream-admin' ].i18n.confirm_defaults ) ) { // eslint-disable-line no-alert
+ e.preventDefault();
+ }
+ }
+);
+
+// Admin page tabs
+const $tabs = $( '.wp_stream_screen .nav-tab-wrapper' ),
+ $panels = $( '.wp_stream_screen .nav-tab-content table.form-table' ),
+ $activeTab = $tabs.find( '.nav-tab-active' ),
+ defaultIndex = $activeTab.length > 0 ? $tabs.find( 'a' ).index( $activeTab ) : 0,
+ hashIndexStart = window.location.hash.match( /^#(\d+)$/ ),
+ currentHash = ( null !== hashIndexStart ? hashIndexStart[ 1 ] : defaultIndex ),
+ syncFormAction = function( index ) {
+ const $optionsForm = $( 'input[name="option_page"][value^="wp_stream"]' ).closest( 'form' );
+ if ( $optionsForm.length === 0 ) {
+ return;
+ }
+ const currentAction = $optionsForm.attr( 'action' );
+
+ $optionsForm.prop( 'action', currentAction.replace( /(^[^#]*).*$/, '$1#' + index ) );
+ };
+
+$tabs.on(
+ 'click', 'a', function() {
+ const index = $tabs.find( 'a' ).index( $( this ) ),
+ hashIndex = window.location.hash.match( /^#(\d+)$/ );
+
+ $panels.hide().eq( index ).show();
+ $tabs
+ .find( 'a' )
+ .removeClass( 'nav-tab-active' )
+ .filter( $( this ) )
+ .addClass( 'nav-tab-active' );
+
+ if ( '' === window.location.hash || null !== hashIndex ) {
+ window.location.hash = index;
+ }
+
+ syncFormAction( index );
+
+ return false;
+ }
+);
+
+$tabs.children().eq( currentHash ).trigger( 'click' );
+
+// Live Updates screen option
+$( document ).ready(
+ function() {
+ // Enable Live Updates checkbox ajax
+ $( '#enable_live_update' ).click(
+ function() {
+ const nonce = $( '#stream_live_update_nonce' ).val();
+ const user = $( '#enable_live_update_user' ).val();
+ let checked = 'unchecked';
+ let heartbeat = 'true';
+
+ if ( $( '#enable_live_update' ).is( ':checked' ) ) {
+ checked = 'checked';
+ }
+
+ heartbeat = $( '#enable_live_update' ).data( 'heartbeat' );
+
+ $.ajax(
+ {
+ type: 'POST',
+ url: window.ajaxurl,
+ data: {
+ action: 'stream_enable_live_update',
+ nonce,
+ user,
+ checked,
+ heartbeat,
+ },
+ dataType: 'json',
+ beforeSend() {
+ $( '.stream-live-update-checkbox .spinner' ).show().css( { display: 'inline-block' } );
+ },
+ success( response ) {
+ $( '.stream-live-update-checkbox .spinner' ).hide();
+
+ if ( false === response.success ) {
+ $( '#enable_live_update' ).prop( 'checked', false );
+
+ if ( response.data ) {
+ window.alert( response.data ); // eslint-disable-line no-alert
+ }
+ }
+ },
+ }
+ );
+ }
+ );
+
+ function toggle_filter_submit() {
+ let all_hidden = true;
+
+ // If all filters are hidden, hide the button
+ if ( $( 'div.metabox-prefs [name="date-hide"]' ).is( ':checked' ) ) {
+ all_hidden = false;
+ }
+
+ const divs = $( 'div.alignleft.actions div.select2-container' );
+
+ divs.each(
+ function() {
+ if ( ! $( this ).is( ':hidden' ) ) {
+ all_hidden = false;
+ return false;
+ }
+ }
+ );
+
+ if ( all_hidden ) {
+ $( 'input#record-query-submit' ).hide();
+ $( 'span.filter_info' ).show();
+ } else {
+ $( 'input#record-query-submit' ).show();
+ $( 'span.filter_info' ).hide();
+ }
+ }
+
+ if ( $( 'div.metabox-prefs [name="date-hide"]' ).is( ':checked' ) ) {
+ $( 'div.date-interval' ).show();
+ } else {
+ $( 'div.date-interval' ).hide();
+ }
+
+ $( 'div.actions select.chosen-select' ).each(
+ function() {
+ const name = $( this ).prop( 'name' );
+
+ if ( $( 'div.metabox-prefs [name="' + name + '-hide"]' ).is( ':checked' ) ) {
+ $( this ).prev( '.select2-container' ).show();
+ } else {
+ $( this ).prev( '.select2-container' ).hide();
+ }
+ }
+ );
+
+ toggle_filter_submit();
+
+ $( 'div.metabox-prefs [type="checkbox"]' ).click(
+ function() {
+ let id = $( this ).prop( 'id' );
+
+ if ( 'date-hide' === id ) {
+ if ( $( this ).is( ':checked' ) ) {
+ $( 'div.date-interval' ).show();
+ } else {
+ $( 'div.date-interval' ).hide();
+ }
+ } else {
+ id = id.replace( '-hide', '' );
+
+ if ( $( this ).is( ':checked' ) ) {
+ $( '[name="' + id + '"]' ).prev( '.select2-container' ).show();
+ } else {
+ $( '[name="' + id + '"]' ).prev( '.select2-container' ).hide();
+ }
+ }
+
+ toggle_filter_submit();
+ }
+ );
+
+ $( '#ui-datepicker-div' ).addClass( 'stream-datepicker' );
+ }
+);
+
+// Relative time
+$( 'table.wp-list-table' ).on(
+ 'updated', function() {
+ const timeObjects = $( this ).find( 'time.relative-time' );
+ timeObjects.each(
+ function( i, el ) {
+ const timeEl = $( el );
+ timeEl.removeClass( 'relative-time' );
+ $( ' ' )
+ .prependTo( timeEl.parent().parent() )
+ .find( 'time.timeago' )
+ .timeago();
+ }
+ );
+ }
+).trigger( 'updated' );
+
+const intervals = {
+ init( $wrapper ) {
+ this.wrapper = $wrapper;
+ this.save_interval( this.wrapper.find( '.button-primary' ), this.wrapper );
+
+ this.$ = this.wrapper.each(
+ function( i, val ) {
+ const container = $( val ),
+ dateinputs = container.find( '.date-inputs' ),
+ from = container.find( '.field-from' ),
+ to = container.find( '.field-to' ),
+ to_remove = to.prev( '.date-remove' ),
+ from_remove = from.prev( '.date-remove' ),
+ predefined = container.children( '.field-predefined' ),
+ datepickers = $( '' ).add( to ).add( from );
+
+ if ( $.datepicker ) {
+ // Apply a GMT offset due to Date() using the visitor's local time
+ const siteGMTOffsetHours = parseFloat( window[ 'wp-stream-admin' ].gmt_offset );
+ const localGMTOffsetHours = new Date().getTimezoneOffset() / 60 * -1;
+ const totalGMTOffsetHours = siteGMTOffsetHours - localGMTOffsetHours;
+ const localTime = new Date();
+ const siteTime = new Date( localTime.getTime() + ( totalGMTOffsetHours * 60 * 60 * 1000 ) );
+ let maxOffset = 0;
+ const minOffset = null;
+
+ // Check if the site date is different from the local date, and set a day offset
+ if ( localTime.getDate() !== siteTime.getDate() || localTime.getMonth() !== siteTime.getMonth() ) {
+ if ( localTime.getTime() < siteTime.getTime() ) {
+ maxOffset = '+1d';
+ } else {
+ maxOffset = '-1d';
+ }
+ }
+
+ datepickers.datepicker(
+ {
+ dateFormat: 'yy/mm/dd',
+ minDate: minOffset,
+ maxDate: maxOffset,
+ defaultDate: siteTime,
+ beforeShow() {
+ $( this ).prop( 'disabled', true );
+ },
+ onClose() {
+ $( this ).prop( 'disabled', false );
+ },
+ }
+ );
+
+ datepickers.datepicker( 'widget' ).addClass( 'stream-datepicker' );
+ }
+
+ predefined.select2(
+ {
+ allowClear: true,
+ }
+ );
+
+ if ( '' !== from.val() ) {
+ from_remove.show();
+ }
+
+ if ( '' !== to.val() ) {
+ to_remove.show();
+ }
+
+ predefined.on(
+ {
+ change() {
+ const value = $( this ).val();
+
+ if ( 'custom' === value ) {
+ dateinputs.show();
+ return false;
+ }
+ dateinputs.hide();
+ datepickers.datepicker( 'hide' );
+
+ const option = predefined.find( '[value="' + value + '"]' );
+ const to_val = option.data( 'to' );
+ const from_val = option.data( 'from' );
+ from.val( from_val ).trigger( 'change', [ true ] );
+ to.val( to_val ).trigger( 'change', [ true ] );
+
+ if ( $.datepicker && datepickers.datepicker( 'widget' ).is( ':visible' ) ) {
+ datepickers.datepicker( 'refresh' ).datepicker( 'hide' );
+ }
+ },
+ 'select2-removed'() {
+ predefined.val( '' ).trigger( 'change' );
+ },
+ check_options() {
+ if ( '' !== to.val() && '' !== from.val() ) {
+ const option = predefined
+ .find( 'option' )
+ .filter( '[data-to="' + to.val() + '"]' )
+ .filter( '[data-from="' + from.val() + '"]' );
+ if ( 0 !== option.length ) {
+ predefined.val( option.attr( 'value' ) ).trigger( 'change', [ true ] );
+ } else {
+ predefined.val( 'custom' ).trigger( 'change', [ true ] );
+ }
+ } else if ( '' === to.val() && '' === from.val() ) {
+ predefined.val( '' ).trigger( 'change', [ true ] );
+ } else {
+ predefined.val( 'custom' ).trigger( 'change', [ true ] );
+ }
+ },
+ }
+ );
+
+ from.on(
+ 'change', function() {
+ if ( '' !== from.val() ) {
+ from_remove.show();
+ to.datepicker( 'option', 'minDate', from.val() );
+ } else {
+ from_remove.hide();
+ }
+
+ if ( true === arguments[ arguments.length - 1 ] ) {
+ return false;
+ }
+
+ predefined.trigger( 'check_options' );
+ }
+ );
+
+ to.on(
+ 'change', function() {
+ if ( '' !== to.val() ) {
+ to_remove.show();
+ from.datepicker( 'option', 'maxDate', to.val() );
+ } else {
+ to_remove.hide();
+ }
+
+ if ( true === arguments[ arguments.length - 1 ] ) {
+ return false;
+ }
+
+ predefined.trigger( 'check_options' );
+ }
+ );
+
+ // Trigger change on load
+ predefined.trigger( 'change' );
+
+ $( '' ).add( from_remove ).add( to_remove ).on(
+ 'click', function() {
+ $( this ).next( 'input' ).val( '' ).trigger( 'change' );
+ }
+ );
+ }
+ );
+ },
+
+ save_interval( $btn ) {
+ const $wrapper = this.wrapper;
+ $btn.click(
+ function() {
+ const data = {
+ key: $wrapper.find( 'select.field-predefined' ).find( ':selected' ).val(),
+ start: $wrapper.find( '.date-inputs .field-from' ).val(),
+ end: $wrapper.find( '.date-inputs .field-to' ).val(),
+ };
+
+ // Add params to URL
+ $( this ).attr( 'href', $( this ).attr( 'href' ) + '&' + $.param( data ) );
+ }
+ );
+ },
+};
+
+$( document ).ready(
+ function() {
+ intervals.init( $( '.date-interval' ) );
+
+ // Disable option groups whose children are all disabled
+ $( 'select[name="context"] .level-1' ).each(
+ function() {
+ let all_disabled = true;
+
+ $( this ).nextUntil( '.level-1' ).each(
+ function() {
+ if ( $( this ).is( ':not(:disabled)' ) ) {
+ all_disabled = false;
+ return false;
+ }
+ }
+ );
+
+ if ( true === all_disabled ) {
+ $( this ).prop( 'disabled', true );
+ }
+ }
+ );
+ }
+);
diff --git a/src/js/alert-type-highlight.js b/src/js/alert-type-highlight.js
new file mode 100644
index 000000000..51ada94e0
--- /dev/null
+++ b/src/js/alert-type-highlight.js
@@ -0,0 +1,67 @@
+/**
+ * External dependencies
+ */
+import $ from 'jquery';
+
+$( document ).ready(
+ function() {
+ /**
+ * Remove highlights on Record list screen.
+ */
+ $( '.alert-highlight .action-link[href="#"]' ).each(
+ function() {
+ const actionLink = $( this );
+
+ /**
+ * Ajax call to remove the highlight.
+ *
+ * @return void
+ */
+ actionLink.click(
+ function( e ) {
+ let recordId;
+ e.preventDefault();
+ recordId = actionLink.parents( '.alert-highlight' ).attr( 'class' ).match( /record\-id\-[\w-]*\b/ );
+ recordId = recordId[ 0 ].replace( 'record-id-', '' );
+
+ const data = {
+ action: window[ 'wp-stream-alert-type-highlight' ].removeAction,
+ security: window[ 'wp-stream-alert-type-highlight' ].security,
+ recordId,
+ };
+
+ $.post(
+ window[ 'wp-stream-alert-type-highlight' ].ajaxUrl, data, function( response ) {
+ if ( true === response.success ) {
+ ajaxDone();
+ }
+ }
+ );
+
+ /**
+ * Fires when Ajax complete.
+ */
+ function ajaxDone() {
+ const row = actionLink.parents( '.alert-highlight' ),
+ odd = $( '.striped > tbody > :nth-child( odd )' );
+ if ( row.is( odd ) ) {
+ row.animate(
+ { backgroundColor: '#f9f9f9' }, 300, function() {
+ row.removeClass( 'alert-highlight' );
+ }
+ );
+ } else {
+ row.animate(
+ { backgroundColor: '' }, 300, function() {
+ row.removeClass( 'alert-highlight' );
+ }
+ );
+ }
+ actionLink.remove();
+ }
+ }
+ );
+ }
+ );
+ }
+);
diff --git a/src/js/alerts-list.js b/src/js/alerts-list.js
new file mode 100644
index 000000000..4e3dd373c
--- /dev/null
+++ b/src/js/alerts-list.js
@@ -0,0 +1,18 @@
+/**
+ * External dependencies
+ */
+import $ from 'jquery';
+
+/**
+ * Internal dependencies
+ */
+import '../css/alerts-list.scss';
+
+$( '.inline-edit-col-left, .inline-edit-col-right, #major-publishing-actions', '.edit-php.post-type-wp_stream_alerts' ).each(
+ function() {
+ $( this ).remove();
+ }
+);
+
+// This is done with JS instead of CSS to override the inline styles added by Select2's JS.
+$( '.select2-container', '.inline-edit-col' ).css( { width: '100%' } );
diff --git a/src/js/alerts.js b/src/js/alerts.js
new file mode 100644
index 000000000..fa2ee44bb
--- /dev/null
+++ b/src/js/alerts.js
@@ -0,0 +1,307 @@
+/* eslint-disable camelcase */
+/**
+ * External dependencies
+ */
+import $ from 'jquery';
+
+let $post_row,
+ $edit_row;
+function setupSelectTwo( id ) {
+ const $target = $( id );
+ $target.find( '.select2-select.connector_or_context' ).each(
+ function( k, el ) {
+ $( el ).select2(
+ {
+ allowClear: true,
+ placeholder: window[ 'wp-stream-alerts' ].anyContext,
+ templateResult( item ) {
+ if ( 'undefined' === typeof item.id ) {
+ return item.text;
+ }
+ if ( -1 === item.id.indexOf( '-' ) ) {
+ return $( '' + item.text + ' ' );
+ }
+ return $( '' + item.text + ' ' );
+ },
+ matcher( params, data ) {
+ const match = $.extend( true, {}, data );
+
+ if ( null === params.term || '' === $.trim( params.term ) ) {
+ return match;
+ }
+
+ const term = params.term.toLowerCase();
+
+ match.id = match.id.replace( 'blogs', 'sites' );
+ if ( match.id.toLowerCase().indexOf( term ) >= 0 ) {
+ return match;
+ }
+
+ if ( match.children ) {
+ for ( let i = match.children.length - 1; i >= 0; i-- ) {
+ const child = match.children[ i ];
+
+ // Remove term from results if it doesn't match.
+ if ( -1 === child.id.toLowerCase().indexOf( term ) ) {
+ match.children.splice( i, 1 );
+ }
+ }
+
+ if ( match.children.length > 0 ) {
+ return match;
+ }
+ }
+
+ return null;
+ },
+ }
+ ).change(
+ function() {
+ const value = $( this ).val();
+ if ( value ) {
+ const parts = value.split( '-' );
+ $( this ).siblings( '.connector' ).val( parts[ 0 ] );
+ $( this ).siblings( '.context' ).val( parts[ 1 ] );
+ }
+ }
+ );
+
+ const parts = [
+ $( el ).siblings( '.connector' ).val(),
+ $( el ).siblings( '.context' ).val(),
+ ];
+ if ( '' === parts[ 1 ] ) {
+ parts.splice( 1, 1 );
+ }
+ $( el ).val( parts.join( '-' ) ).trigger( 'change' );
+ }
+ );
+
+ $target.find( 'select.select2-select:not(.connector_or_context)' ).each(
+ function() {
+ const element_id_split = $( this ).attr( 'id' ).split( '_' );
+ const select_name = element_id_split[ element_id_split.length - 1 ].charAt( 0 ).toUpperCase() +
+ element_id_split[ element_id_split.length - 1 ].slice( 1 );
+ $( this ).select2(
+ {
+ allowClear: true,
+ placeholder: window[ 'wp-stream-alerts' ].any + ' ' + select_name,
+ }
+ );
+ }
+ );
+}
+const $alertSettingSelect = $( '#wp_stream_alert_type' );
+
+function loadAlertSettings( alert_type ) {
+ const data = {
+ action: 'load_alerts_settings',
+ alert_type,
+ };
+
+ const $alert_edit_row = $( '#wp_stream_alert_type' ).closest( 'tr' );
+ const row_id = $alert_edit_row.attr( 'id' );
+ data.post_id = row_id.split( '-' )[ 1 ];
+ $.post(
+ window.ajaxurl, data, function( response ) {
+ const $alert_type_settings = $( '#wp_stream_alert_type_form' );
+ const alert_type_value = $( '#wp_stream_alert_type' ).val();
+ if ( 'none' === alert_type_value ) {
+ $alert_type_settings.hide();
+ return;
+ }
+ $alert_type_settings.html( response.data.html );
+ $alert_type_settings.show();
+ }
+ );
+}
+
+$( '#the-list' ).on(
+ 'change', '#wp_stream_trigger_connector_or_context', function() {
+ if ( 'wp_stream_trigger_connector_or_context' === $( this ).attr( 'id' ) ) {
+ let connector = $( this ).val();
+ if ( connector && 0 < connector.indexOf( '-' ) ) {
+ const connector_split = connector.split( '-' );
+ connector = connector_split[ 0 ];
+ }
+ getActions( connector );
+ }
+ }
+);
+
+function getActions( connector ) {
+ const trigger_action = $( '#wp_stream_trigger_action' );
+ trigger_action.empty();
+ trigger_action.prop( 'disabled', true );
+
+ const placeholder = $( ' ', { value: '', text: '' } );
+ trigger_action.append( placeholder );
+
+ const data = {
+ action: 'get_actions',
+ connector,
+ };
+
+ $.post(
+ window.ajaxurl, data, function( response ) {
+ const success = response.success,
+ actions = response.data;
+ if ( ! success ) {
+ return;
+ }
+ for ( const key in actions ) {
+ if ( actions.hasOwnProperty( key ) ) {
+ const value = actions[ key ];
+ const option = $( ' ', { value: key, text: value } );
+ trigger_action.append( option );
+ }
+ }
+ trigger_action.prop( 'disabled', false );
+ $( document ).trigger( 'alert-actions-updated' );
+ }
+ );
+}
+
+$alertSettingSelect.change(
+ function() {
+ loadAlertSettings( $( this ).val() );
+ }
+);
+
+$( '#wpbody-content' ).on(
+ 'click', 'a.page-title-action', function( e ) {
+ e.preventDefault();
+ $( '#add-new-alert' ).remove();
+ if ( $( '.inline-edit-wp_stream_alerts' ).length > 0 ) {
+ $( '.inline-edit-wp_stream_alerts .inline-edit-save button.button-secondary.cancel' ).trigger( 'click' );
+ }
+ let alert_form_html = '';
+ const data = {
+ action: 'get_new_alert_triggers_notifications',
+ };
+ $.post(
+ window.ajaxurl, data, function( response ) {
+ if ( true === response.success ) {
+ alert_form_html = response.data.html;
+ $( 'tbody#the-list' ).prepend( '' + alert_form_html + ' Cancel Save
' );
+ const add_new_alert = $( '#add-new-alert' );
+ const current_bg_color = add_new_alert.css( 'background-color' );
+
+ // Color taken from /wp-admin/css/forms.css
+ // #pass-strength-result.strong
+ add_new_alert.css( 'background-color', '#C1E1B9' );
+ setTimeout(
+ function() {
+ add_new_alert.css( 'background-color', current_bg_color );
+ }, 250
+ );
+
+ $( '#wp_stream_alert_type' ).change(
+ function() {
+ loadAlertSettings( $( this ).val() );
+ }
+ );
+ add_new_alert.on(
+ 'click', '.button-secondary.cancel', function() {
+ $( '#add-new-alert' ).remove();
+ }
+ );
+ add_new_alert.on( 'click', '.button-primary.save', save_new_alert );
+
+ setupSelectTwo( '#add-new-alert' );
+ }
+ }
+ );
+ }
+);
+function save_new_alert( e ) {
+ e.preventDefault();
+ $( '#add-new-alert' ).find( 'p.submit.inline-edit-save span.spinner' ).css( 'visibility', 'visible' );
+ const data = {
+ action: 'save_new_alert',
+ wp_stream_alerts_nonce: $( '#wp_stream_alerts_nonce' ).val(),
+ wp_stream_trigger_author: $( '#wp_stream_trigger_author' ).val(),
+ wp_stream_trigger_context: $( '#wp_stream_trigger_connector_or_context' ).val(),
+ wp_stream_trigger_action: $( '#wp_stream_trigger_action' ).val(),
+ wp_stream_alert_type: $( '#wp_stream_alert_type' ).val(),
+ wp_stream_alert_status: $( '#wp_stream_alert_status' ).val(),
+ };
+ $( '#wp_stream_alert_type_form' ).find( ':input' ).each(
+ function() {
+ const alert_type_data_id = $( this ).attr( 'id' );
+ if ( $( this ).val() ) {
+ data[ alert_type_data_id ] = $( this ).val();
+ }
+ }
+ );
+
+ $.post(
+ window.ajaxurl, data, function( response ) {
+ if ( true === response.success ) {
+ $( '#add-new-alert' ).find( 'p.submit.inline-edit-save span.spinner' ).css( 'visibility', 'hidden' );
+ location.reload();
+ }
+ }
+ );
+}
+
+// we create a copy of the WP inline edit post function
+const $wp_inline_edit = window.inlineEditPost.edit;
+
+// and then we overwrite the function with our own code
+window.inlineEditPost.edit = function( id ) {
+ // "call" the original WP edit function
+ // we don't want to leave WordPress hanging
+ $wp_inline_edit.apply( this, arguments );
+
+ // now we take care of our business
+
+ // get the post ID
+ let post_id = 0;
+ if ( typeof ( id ) === 'object' ) {
+ post_id = parseInt( this.getId( id ), 10 );
+ }
+
+ if ( post_id > 0 ) {
+ // define the edit row
+ $edit_row = $( '#edit-' + post_id );
+ $post_row = $( '#post-' + post_id );
+
+ // get the data
+ const alert_trigger_connector = $post_row.find( 'input[name="wp_stream_trigger_connector"]' ).val();
+ const alert_trigger_context = $post_row.find( 'input[name="wp_stream_trigger_context"]' ).val();
+ const alert_trigger_connector_context = alert_trigger_connector + '-' + alert_trigger_context;
+ const alert_trigger_action = $post_row.find( 'input[name="wp_stream_trigger_action"]' ).val();
+ const alert_status = $post_row.find( 'input[name="wp_stream_alert_status"]' ).val();
+
+ // populate the data
+ $edit_row.find( 'input[name="wp_stream_trigger_connector"]' ).attr( 'value', alert_trigger_connector );
+ $edit_row.find( 'input[name="wp_stream_trigger_context"]' ).attr( 'value', alert_trigger_context );
+ $edit_row.find( 'select[name="wp_stream_trigger_connector_or_context"] option[value="' + alert_trigger_connector_context + '"]' ).attr( 'selected', 'selected' );
+ $( document ).one(
+ 'alert-actions-updated', function() {
+ $edit_row.find( 'input[name="wp_stream_trigger_action"]' ).attr( 'value', alert_trigger_action );
+ $edit_row.find( 'select[name="wp_stream_trigger_action"] option[value="' + alert_trigger_action + '"]' ).attr( 'selected', 'selected' ).trigger( 'change' );
+ }
+ );
+ $edit_row.find( 'select[name="wp_stream_alert_status"] option[value="' + alert_status + '"]' ).attr( 'selected', 'selected' );
+ setupSelectTwo( '#edit-' + post_id );
+
+ // Alert type handling
+ $( '#wp_stream_alert_type_form' ).hide();
+ const alert_type = $post_row.find( 'input[name="wp_stream_alert_type"]' ).val();
+ $edit_row.find( 'select[name="wp_stream_alert_type"] option[value="' + alert_type + '"]' ).attr( 'selected', 'selected' ).trigger( 'change' );
+ }
+};
+if ( window.location.hash ) {
+ const $target_post_row = $( window.location.hash );
+ if ( $target_post_row.length ) {
+ const scroll_to_position = $target_post_row.offset().top - $( '#wpadminbar' ).height();
+ $( 'html, body' ).animate(
+ {
+ scrollTop: scroll_to_position,
+ }, 1000
+ );
+ $target_post_row.find( '.row-actions a.editinline' ).trigger( 'click' );
+ }
+}
diff --git a/src/js/global.js b/src/js/global.js
new file mode 100644
index 000000000..a36070693
--- /dev/null
+++ b/src/js/global.js
@@ -0,0 +1,31 @@
+/* eslint-disable camelcase */
+/**
+ * External dependencies
+ */
+import $ from 'jquery';
+
+// List table actions, ignores filtering
+$( '.actions :submit:not([name="filter_action"])' ).on(
+ 'click', function( e ) {
+ if ( $( 'table.widefat tbody :checkbox:checked' ).length > window[ 'wp-stream-global' ].bulk_actions.threshold ) {
+ warning_message( e );
+ }
+ }
+);
+
+// Post type empty trash
+$( '#delete_all' ).on(
+ 'click', function( e ) {
+ const trash_count = parseInt( $( 'ul.subsubsub li.trash .count' ).text().replace( /\D/g, '' ), 10 );
+
+ if ( trash_count > window[ 'wp-stream-global' ].bulk_actions.threshold ) {
+ warning_message( e );
+ }
+ }
+);
+
+function warning_message( e ) {
+ if ( ! window.confirm( window[ 'wp-stream-global' ].bulk_actions.i18n.confirm_action ) ) { // eslint-disable-line no-alert
+ e.preventDefault();
+ }
+}
diff --git a/src/js/live-updates.js b/src/js/live-updates.js
new file mode 100644
index 000000000..067d2c618
--- /dev/null
+++ b/src/js/live-updates.js
@@ -0,0 +1,124 @@
+/* eslint-disable camelcase */
+/**
+ * External dependencies
+ */
+import $ from 'jquery';
+
+/**
+ * Internal dependencies
+ */
+import wp_stream_regenerate_alt_rows from './utils/wp-stream-regenerate-alt-rows';
+
+$( document ).ready(
+ function() {
+ // Only run on wp_stream when page is 1 and the order is desc
+ if ( 'toplevel_page_wp_stream' !== window[ 'wp-stream-live-updates' ].current_screen || '1' !== window[ 'wp-stream-live-updates' ].current_page || 'asc' === window[ 'wp-stream-live-updates' ].current_order ) {
+ return;
+ }
+
+ // Do not run if there are filters in use
+ if ( parseInt( window[ 'wp-stream-live-updates' ].current_query_count, 10 ) > 1 ) {
+ return;
+ }
+
+ const list_sel = '.toplevel_page_wp_stream #the-list';
+
+ // Set initial beat to fast. WP is designed to slow this to 15 seconds after 2.5 minutes.
+ wp.heartbeat.interval( 'fast' );
+
+ $( document ).on(
+ 'heartbeat-send.stream', function( e, data ) {
+ data[ 'wp-stream-heartbeat' ] = 'live-update';
+
+ const last_item = $( list_sel + ' tr:first .column-date time' );
+ let last_time = 1;
+
+ if ( 0 !== last_item.length ) {
+ last_time = ( '' === last_item.attr( 'datetime' ) ) ? 1 : last_item.attr( 'datetime' );
+ }
+
+ data[ 'wp-stream-heartbeat-last-time' ] = last_time;
+ data[ 'wp-stream-heartbeat-query' ] = window[ 'wp-stream-live-updates' ].current_query;
+ }
+ );
+
+ // Listen for "heartbeat-tick" on $(document).
+ $( document ).on(
+ 'heartbeat-tick.stream', function( e, data ) {
+ // If this no rows return then we kill the script
+ if ( ! data[ 'wp-stream-heartbeat' ] || 0 === data[ 'wp-stream-heartbeat' ].length ) {
+ return;
+ }
+
+ const show_on_screen = $( '#edit_stream_per_page' ).val(),
+ $current_items = $( list_sel + ' tr' ),
+ $new_items = $( data[ 'wp-stream-heartbeat' ] );
+
+ // Remove all default classes and add class to highlight new rows
+ $new_items.addClass( 'new-row' );
+
+ // Check if first tr has the alternate class
+ const has_class = ( $current_items.first().hasClass( 'alternate' ) );
+
+ // Apply the good class to the list
+ if ( 1 === $new_items.length && ! has_class ) {
+ $new_items.addClass( 'alternate' );
+ } else {
+ const even_or_odd = ( 0 === $new_items.length % 2 && ! has_class ) ? 'even' : 'odd';
+ // Add class to nth child because there is more than one element
+ $new_items.filter( ':nth-child(' + even_or_odd + ')' ).addClass( 'alternate' );
+ }
+
+ // Add element to the dom
+ $( list_sel ).prepend( $new_items );
+
+ $( '.metabox-prefs input' ).each(
+ function() {
+ if ( true !== $( this ).prop( 'checked' ) ) {
+ const label = $( this ).val();
+ $( 'td.column-' + label ).hide();
+ }
+ }
+ );
+
+ // Remove the number of element added to the end of the list table
+ const slice_rows = show_on_screen - ( $new_items.length + $current_items.length );
+
+ if ( slice_rows < 0 ) {
+ $( list_sel + ' tr' ).slice( slice_rows ).remove();
+ }
+
+ // Remove the no items row
+ $( list_sel + ' tr.no-items' ).remove();
+
+ // Update pagination
+ const total_items_i18n = data.total_items_i18n || '';
+
+ if ( total_items_i18n ) {
+ $( '.displaying-num' ).text( total_items_i18n );
+ $( '.total-pages' ).text( data.total_pages_i18n );
+ $( '.tablenav-pages' ).find( '.next-page, .last-page' ).toggleClass( 'disabled', data.total_pages === $( '.current-page' ).val() );
+ $( '.tablenav-pages .last-page' ).attr( 'href', data.last_page_link );
+ }
+
+ // Allow others to hook in, ie: timeago
+ $( list_sel ).parent().trigger( 'updated' );
+
+ // Regenerate alternating row classes
+ wp_stream_regenerate_alt_rows( $( list_sel + ' tr' ) );
+
+ // Remove background after a certain amount of time
+ setTimeout(
+ function() {
+ $( '.new-row' ).addClass( 'fadeout' );
+ setTimeout(
+ function() {
+ $( list_sel + ' tr' ).removeClass( 'new-row fadeout' );
+ }, 500
+ );
+ }, 3000
+ );
+ }
+ );
+ }
+);
diff --git a/src/js/settings.js b/src/js/settings.js
new file mode 100644
index 000000000..2ec8e057c
--- /dev/null
+++ b/src/js/settings.js
@@ -0,0 +1,84 @@
+/* eslint-disable camelcase */
+/**
+ * External dependencies
+ */
+import $ from 'jquery';
+
+let network_affix;
+if ( 'wp_stream_network' === $( 'input[name="option_page"]' ).val() ) {
+ network_affix = '_network_affix';
+} else {
+ network_affix = '';
+}
+const keepRecordsIndefinitely = $( '#wp_stream' + network_affix + '\\[general_keep_records_indefinitely\\]' ),
+ keepRecordsFor = $( '#wp_stream' + network_affix + '_general_records_ttl' ),
+ keepRecordsForRow = keepRecordsFor.closest( 'tr' );
+
+function toggleKeepRecordsFor() {
+ if ( keepRecordsIndefinitely.is( ':checked' ) ) {
+ keepRecordsForRow.addClass( 'hidden' );
+ keepRecordsFor.addClass( 'hidden' );
+ } else {
+ keepRecordsForRow.removeClass( 'hidden' );
+ keepRecordsFor.removeClass( 'hidden' );
+ }
+}
+
+keepRecordsIndefinitely.on(
+ 'change', function() {
+ toggleKeepRecordsFor();
+ }
+);
+
+toggleKeepRecordsFor();
+
+// Confirmation on some important actions
+$( '#wp_stream_general_reset_site_settings' ).click(
+ function( e ) {
+ if ( ! confirm( window[ 'wp-stream-settings' ].i18n.confirm_defaults ) ) { // eslint-disable-line no-alert
+ e.preventDefault();
+ }
+ }
+);
+
+// Settings page tabs
+const $tabs = $( '.nav-tab-wrapper' ),
+ $panels = $( '.nav-tab-content table.form-table' ),
+ $activeTab = $tabs.find( '.nav-tab-active' ),
+ defaultIndex = $activeTab.length > 0 ? $tabs.find( 'a' ).index( $activeTab ) : 0,
+ hashIndexStart = window.location.hash.match( /^#(\d+)$/ ),
+ currentHash = ( null !== hashIndexStart ? hashIndexStart[ 1 ] : defaultIndex ),
+ syncFormAction = function( index ) {
+ const $optionsForm = $( 'input[name="option_page"][value^="wp_stream"]' ).closest( 'form' );
+ if ( $optionsForm.length === 0 ) {
+ return;
+ }
+ const currentAction = $optionsForm.attr( 'action' );
+
+ $optionsForm.prop( 'action', currentAction.replace( /(^[^#]*).*$/, '$1#' + index ) );
+ };
+
+$tabs.on(
+ 'click', 'a', function() {
+ const index = $tabs.find( 'a' ).index( $( this ) ),
+ hashIndex = window.location.hash.match( /^#(\d+)$/ );
+
+ $panels.hide().eq( index ).show();
+
+ $tabs
+ .find( 'a' )
+ .removeClass( 'nav-tab-active' )
+ .filter( $( this ) )
+ .addClass( 'nav-tab-active' );
+
+ if ( '' === window.location.hash || null !== hashIndex ) {
+ window.location.hash = index;
+ }
+
+ syncFormAction( index );
+
+ return false;
+ }
+);
+
+$tabs.children().eq( currentHash ).trigger( 'click' );
diff --git a/src/js/utils/get-query-vars.js b/src/js/utils/get-query-vars.js
new file mode 100644
index 000000000..d9e72d7ed
--- /dev/null
+++ b/src/js/utils/get-query-vars.js
@@ -0,0 +1,5 @@
+export default function getQueryVars( str ) {
+ return ( str || document.location.search ).replace( /(^\?)/, '' ).split( '&' ).map( function( n ) {
+ return n = n.split( '=' ), this[ n[ 0 ] ] = n[ 1 ], this;
+ }.bind( {} ) )[ 0 ];
+}
diff --git a/src/js/utils/wp-stream-regenerate-alt-rows.js b/src/js/utils/wp-stream-regenerate-alt-rows.js
new file mode 100644
index 000000000..3a554534e
--- /dev/null
+++ b/src/js/utils/wp-stream-regenerate-alt-rows.js
@@ -0,0 +1,19 @@
+/**
+ * External dependencies
+ */
+import $ from 'jquery';
+
+// Regenerate alternating row classes
+export default function regenerateAltRows( $rows ) {
+ if ( ! $rows.length ) {
+ return false;
+ }
+
+ $rows.removeClass( 'alternate' );
+
+ $rows.each(
+ function( index ) {
+ $( this ).addClass( index % 2 ? '' : 'alternate' );
+ }
+ );
+}
diff --git a/src/js/wpseo-admin.js b/src/js/wpseo-admin.js
new file mode 100644
index 000000000..2b8aec5ba
--- /dev/null
+++ b/src/js/wpseo-admin.js
@@ -0,0 +1,36 @@
+/**
+ * External dependencies
+ */
+import $ from 'jquery';
+
+let highlight, input, tab;
+
+if ( window.location.hash.includes( 'stream-highlight-' ) ) {
+ highlight = window.location.hash.replace( 'stream-highlight-', '' );
+ input = $( ':input' + highlight );
+
+ window.location.hash = '';
+
+ if ( input.length ) {
+ if ( $( '#wpseo-tabs' ).length ) {
+ tab = input.parents( '.wpseotab' ).first().attr( 'id' );
+ window.location.hash = '#top#' + tab;
+ }
+
+ $( document ).ready(
+ function() {
+ setTimeout(
+ function() {
+ $( 'body,html' ).animate(
+ { scrollTop: input.offset().top - 50 },
+ 'slow',
+ function() {
+ input.animate( { backgroundColor: 'yellow' }, 'slow' );
+ }
+ );
+ }, 500
+ );
+ }
+ );
+ }
+}
diff --git a/stream.php b/stream.php
index c39c0bf90..3bc6002dc 100644
--- a/stream.php
+++ b/stream.php
@@ -31,6 +31,13 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+/**
+ * Configuration Constants
+ */
+if ( ! defined( 'WP_STREAM_SETTINGS_CAPABILITY' ) ) {
+ define( 'WP_STREAM_SETTINGS_CAPABILITY', 'manage_options' );
+}
+
const WP_STREAM_MIN_PHP_VERSION = '7.0';
if ( version_compare( PHP_VERSION, WP_STREAM_MIN_PHP_VERSION, '<' ) ) {
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index 628b7f029..0c5cdf038 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -119,4 +119,4 @@ function () {
require __DIR__ . '/testcase.php';
// Base class for future tests
-require __DIR__ . '/tests/test-class-alert-trigger.php';
+require __DIR__ . '/phpunit/test-class-alert-trigger.php';
diff --git a/tests/e2e/editor-new-post.spec.js b/tests/e2e/editor-new-post.spec.js
new file mode 100644
index 000000000..f643fd798
--- /dev/null
+++ b/tests/e2e/editor-new-post.spec.js
@@ -0,0 +1,67 @@
+/**
+ * External dependencies
+ */
+import { v4 as uuidv4 } from 'uuid';
+
+/**
+ * WordPress dependencies
+ */
+import { test, expect } from '@wordpress/e2e-test-utils-playwright';
+
+test.describe( 'Editor: saving a new post', () => {
+ let page, postTitle, postId;
+
+ test.beforeAll( async ( { browser } ) => {
+ page = await browser.newPage();
+
+ const uuid = uuidv4();
+ postTitle = `Test Post ${ uuid }`; // Sometimes this runs more than once within a microsecond so it's a UUID.
+
+ // eslint-disable-next-line no-console
+ console.log( `New post ${ postTitle }` );
+
+ // Even though we're using WP's npm package, it's more straightforward to do it this way, at least for me in this environment.
+ await page.goto( 'http://stream.wpenv.net/wp-admin/post-new.php' );
+ await page.getByLabel( 'Add title' ).click();
+ await page.getByLabel( 'Add title' ).fill( postTitle );
+ await page.getByLabel( 'Add title' ).press( 'Tab' );
+ await page.getByLabel( 'Empty block; start writing or' ).fill( 'I\'m a test post' );
+ await page.getByRole( 'button', { name: 'Publish', exact: true } ).click();
+
+ postId = await page.locator( 'input#post_ID' ).inputValue();
+
+ // eslint-disable-next-line no-console
+ console.log( `Post ID: ${ postId }` );
+
+ // We need to wait for both of the editor responses! The post saves to the posts table then the metadata saves to postmeta.
+ await Promise.all( [
+ page.waitForResponse( ( resp ) => resp.url().includes( 'meta-box-loader' ) && resp.status() === 302 ),
+ page.waitForResponse( ( resp ) => resp.url().includes( `wp-json/wp/v2/posts/${ postId }` ) && resp.status() === 200 ),
+ page.getByLabel( 'Editor publish' ).getByRole( 'button', { name: 'Publish', exact: true } ).click(),
+ ] );
+
+ // They are too much in the posts table so I'm deleting them.
+ await page.goto( 'http://stream.wpenv.net/wp-admin/edit.php?post_type=post' );
+ const listTable = page.getByRole( 'table', { name: 'Table ordered by' } );
+ await expect( listTable ).toBeVisible();
+
+ // Move post to trash.
+ await listTable.getByRole( 'link', { name: `“${ postTitle }” (Edit)` } ).hover();
+ await listTable.getByRole( 'link', { name: `Move “${ postTitle }” to the Trash` } ).click();
+
+ // Ok, we're all set up, let's go to our page.
+ await page.goto( 'http://stream.wpenv.net/wp-admin/admin.php?page=wp_stream' );
+ } );
+
+ // Do we have a published row?
+ test( 'has published row', async () => {
+ // Expects Stream log to have "Test Post" post published visible.
+ await expect( page.getByText( `"${ postTitle }" post published` ) ).toBeVisible();
+ } );
+
+ // We should not have an updated row. This times out which makes it fail.
+ test( 'does not have updated row', async () => {
+ // Expects Stream log to have "Test Post" post published visible.
+ await expect( page.getByText( `"${ postTitle }" post updated` ) ).not.toBeVisible();
+ } );
+} );
diff --git a/tests/e2e/network-activated.spec.js b/tests/e2e/network-activated.spec.js
new file mode 100644
index 000000000..c46097d62
--- /dev/null
+++ b/tests/e2e/network-activated.spec.js
@@ -0,0 +1,56 @@
+/**
+ * WordPress dependencies
+ */
+import { test, expect } from '@wordpress/e2e-test-utils-playwright';
+
+let page;
+
+test.describe.configure( { mode: 'serial' } );
+
+test.beforeAll( async ( { browser } ) => {
+ page = await browser.newPage();
+} );
+
+test.afterAll( async () => {
+ await page.goto( 'http://stream.wpenv.net/wp-admin/network/plugins.php' );
+ const isActive = await page
+ .getByLabel( 'Network Deactivate Stream' )
+ .isVisible();
+
+ if ( isActive ) {
+ // eslint-disable-next-line no-console
+ console.log( 'Deactivating Stream after Network tests.' );
+ await page.getByLabel( 'Network Deactivate Stream' ).click();
+ }
+} );
+
+test.describe( 'Network: shows network activated states', () => {
+ // Do we have a published row?
+ test( 'does not show stream in network admin when deactivated', async () => {
+ await page.goto( 'http://stream.wpenv.net/wp-admin/network/index.php' );
+ // Expects Stream log to not have the Network Settings.
+ await expect(
+ page.locator( '[href*="admin.php?page=wp_stream"]' ),
+ ).not.toBeVisible();
+ } );
+
+ // We should not have an updated row. This times out which makes it fail.
+ test( 'does not have updated row', async () => {
+ await page.goto( 'http://stream.wpenv.net/wp-admin/network/plugins.php' );
+ const isInactive = await page
+ .getByLabel( 'Network Activate Stream' )
+ .isVisible();
+
+ if ( isInactive ) {
+ // eslint-disable-next-line no-console
+ console.log( 'Activating Stream for next tests.' );
+ await page.getByLabel( 'Network Activate Stream' ).click();
+ }
+
+ await page.goto( 'http://stream.wpenv.net/wp-admin/network/index.php' );
+ // Expects Stream log to not have the Network Settings.
+ await expect(
+ page.locator( '[href*="admin.php?page=wp_stream_network_settings"]' ),
+ ).toBeVisible();
+ } );
+} );
diff --git a/tests/e2e/setup/setup.js b/tests/e2e/setup/setup.js
new file mode 100644
index 000000000..6f1ff57ee
--- /dev/null
+++ b/tests/e2e/setup/setup.js
@@ -0,0 +1,41 @@
+/**
+ * External dependencies
+ */
+import { test as setup } from '@playwright/test';
+
+const authFile = 'playwright/.auth/user.json';
+
+/**
+ * Log in before all the tests.
+ * @see https://playwright.dev/docs/auth
+ */
+setup( 'authenticate', async ( { page } ) => {
+ // Log in.
+ await page.goto( 'http://stream.wpenv.net/wp-login.php' );
+ await page.getByLabel( 'Username or Email Address' ).fill( 'admin' );
+ await page.getByLabel( 'Password', { exact: true } ).fill( 'password' );
+ await page.getByRole( 'button', { name: 'Log In' } ).click();
+ // Wait until the page receives the cookies.
+
+ // Sometimes login flow sets cookies in the process of several redirects.
+ // Wait for the final URL to ensure that the cookies are actually set.
+ await page.waitForURL( 'http://stream.wpenv.net/wp-admin/' );
+
+ await page.goto( 'http://stream.wpenv.net/wp-admin/network/plugins.php' );
+ const isActive = await page.getByLabel( 'Network Deactivate Stream' ).isVisible();
+
+ // eslint-disable-next-line no-console
+ console.log( `Stream is currently active: ${ isActive }` );
+
+ if ( isActive ) {
+ // eslint-disable-next-line no-console
+ console.log( 'Deactivating Stream before tests.' );
+ await page.getByLabel( 'Network Deactivate Stream' ).click();
+ }
+
+ // End of authentication steps.
+ await page.context().storageState( { path: authFile } );
+
+ // eslint-disable-next-line no-console
+ console.log( 'Done with network setup.' );
+} );
diff --git a/tests/tests/alerts/test-class-alert-trigger-action.php b/tests/phpunit/alerts/test-class-alert-trigger-action.php
similarity index 100%
rename from tests/tests/alerts/test-class-alert-trigger-action.php
rename to tests/phpunit/alerts/test-class-alert-trigger-action.php
diff --git a/tests/tests/alerts/test-class-alert-trigger-author.php b/tests/phpunit/alerts/test-class-alert-trigger-author.php
similarity index 100%
rename from tests/tests/alerts/test-class-alert-trigger-author.php
rename to tests/phpunit/alerts/test-class-alert-trigger-author.php
diff --git a/tests/tests/alerts/test-class-alert-trigger-context.php b/tests/phpunit/alerts/test-class-alert-trigger-context.php
similarity index 100%
rename from tests/tests/alerts/test-class-alert-trigger-context.php
rename to tests/phpunit/alerts/test-class-alert-trigger-context.php
diff --git a/tests/tests/connectors/test-class-connector-acf.php b/tests/phpunit/connectors/test-class-connector-acf.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-acf.php
rename to tests/phpunit/connectors/test-class-connector-acf.php
diff --git a/tests/tests/connectors/test-class-connector-blogs.php b/tests/phpunit/connectors/test-class-connector-blogs.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-blogs.php
rename to tests/phpunit/connectors/test-class-connector-blogs.php
diff --git a/tests/tests/connectors/test-class-connector-comments.php b/tests/phpunit/connectors/test-class-connector-comments.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-comments.php
rename to tests/phpunit/connectors/test-class-connector-comments.php
diff --git a/tests/tests/connectors/test-class-connector-edd.php b/tests/phpunit/connectors/test-class-connector-edd.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-edd.php
rename to tests/phpunit/connectors/test-class-connector-edd.php
diff --git a/tests/tests/connectors/test-class-connector-editor.php b/tests/phpunit/connectors/test-class-connector-editor.php
similarity index 86%
rename from tests/tests/connectors/test-class-connector-editor.php
rename to tests/phpunit/connectors/test-class-connector-editor.php
index 27a029234..4cd9d39ad 100644
--- a/tests/tests/connectors/test-class-connector-editor.php
+++ b/tests/phpunit/connectors/test-class-connector-editor.php
@@ -2,10 +2,19 @@
namespace WP_Stream;
class Test_WP_Stream_Connector_Editor extends WP_StreamTestCase {
+
+ /**
+ * The original contents of the file.
+ *
+ * @var string
+ */
+ private string $original_contents;
+
public function setUp(): void {
parent::setUp();
$this->plugin->connectors->unload_connectors();
+ $this->original_contents = file_get_contents( WP_PLUGIN_DIR . '/hello.php' );
$this->mock = $this->getMockBuilder( Connector_Editor::class )
->setMethods( array( 'log' ) )
@@ -14,6 +23,10 @@ public function setUp(): void {
$this->mock->register();
}
+ public function tearDown(): void {
+ file_put_contents( WP_PLUGIN_DIR . '/hello.php', $this->original_contents ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_file_put_contents
+ }
+
public function test_log_changes() {
$theme = wp_get_theme( 'twentytwentythree' );
$plugin = get_plugins()['hello.php'];
diff --git a/tests/tests/connectors/test-class-connector-installer.php b/tests/phpunit/connectors/test-class-connector-installer.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-installer.php
rename to tests/phpunit/connectors/test-class-connector-installer.php
diff --git a/tests/tests/connectors/test-class-connector-jetpack.php b/tests/phpunit/connectors/test-class-connector-jetpack.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-jetpack.php
rename to tests/phpunit/connectors/test-class-connector-jetpack.php
diff --git a/tests/tests/connectors/test-class-connector-media.php b/tests/phpunit/connectors/test-class-connector-media.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-media.php
rename to tests/phpunit/connectors/test-class-connector-media.php
diff --git a/tests/tests/connectors/test-class-connector-menus.php b/tests/phpunit/connectors/test-class-connector-menus.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-menus.php
rename to tests/phpunit/connectors/test-class-connector-menus.php
diff --git a/tests/tests/connectors/test-class-connector-mercator.php b/tests/phpunit/connectors/test-class-connector-mercator.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-mercator.php
rename to tests/phpunit/connectors/test-class-connector-mercator.php
diff --git a/tests/tests/connectors/test-class-connector-posts.php b/tests/phpunit/connectors/test-class-connector-posts.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-posts.php
rename to tests/phpunit/connectors/test-class-connector-posts.php
diff --git a/tests/tests/connectors/test-class-connector-settings.php b/tests/phpunit/connectors/test-class-connector-settings.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-settings.php
rename to tests/phpunit/connectors/test-class-connector-settings.php
diff --git a/tests/tests/connectors/test-class-connector-taxonomies.php b/tests/phpunit/connectors/test-class-connector-taxonomies.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-taxonomies.php
rename to tests/phpunit/connectors/test-class-connector-taxonomies.php
diff --git a/tests/phpunit/connectors/test-class-connector-two-factor.php b/tests/phpunit/connectors/test-class-connector-two-factor.php
new file mode 100644
index 000000000..b167baee7
--- /dev/null
+++ b/tests/phpunit/connectors/test-class-connector-two-factor.php
@@ -0,0 +1,156 @@
+plugin->connectors->unload_connectors();
+
+ // Make partial of Connector_Two_Factor class, with mocked "log" function.
+ $this->mock = $this->getMockBuilder( Connector_Two_Factor::class )
+ ->onlyMethods( array( 'log' ) )
+ ->getMock();
+
+ // Register connector.
+ $this->mock->register();
+
+ // Allow us to have the Two_Factor_Dummy option.
+ remove_all_filters( 'two_factor_providers' );
+
+ if ( empty( $this->user_id ) ) {
+ $this->user_id = self::factory()->user->create(
+ array(
+ 'user_login' => 'testuser',
+ 'user_role' => 'administrator',
+ 'display_name' => 'testuserdisplay',
+ )
+ );
+
+ $this->user = get_user_by( 'ID', $this->user_id );
+
+ \Two_Factor_Core::enable_provider_for_user( $this->user_id, 'Two_Factor_Dummy' );
+ }
+ }
+
+ /**
+ * Confirm that Two Factor is installed and active.
+ */
+ public function test_two_factor_installed_and_activated() {
+ $this->assertTrue( class_exists( 'Two_Factor_Core' ) );
+ }
+
+ /**
+ * Test that adding a provider triggers the log.
+ */
+ public function test_callback_added_user_meta() {
+
+ $this->mock->expects( $this->once() )
+ ->method( 'log' )
+ ->with(
+ $this->equalTo(
+ __(
+ 'Enabled provider: %s',
+ 'stream'
+ )
+ ),
+ $this->equalTo(
+ array(
+ 'provider' => 'Two_Factor_Email',
+ )
+ ),
+ $this->user_id,
+ 'user-settings',
+ 'enabled'
+ );
+
+ \Two_Factor_Core::enable_provider_for_user( $this->user_id, 'Two_Factor_Email' );
+ }
+
+ /**
+ * Tests the "callback_save_two_factor_user_authenticated" callback.
+ * This tests the log via doing the action.
+ */
+ public function test_callback_two_factor_user_authenticated() {
+
+ wp_set_current_user( $this->user_id );
+
+ $this->mock->expects( $this->once() )
+ ->method( 'log' )
+ ->with(
+ $this->equalTo(
+ __(
+ 'Authenticated via %s',
+ 'stream'
+ )
+ ),
+ $this->equalTo(
+ array(
+ 'provider' => 'Two_Factor_Dummy',
+ )
+ ),
+ $this->user_id,
+ 'auth',
+ 'authenticated',
+ $this->user_id
+ );
+
+ $provider = \Two_Factor_Core::get_provider_for_user( $this->user, 'Two_Factor_Dummy' );
+
+ // We can't test the method so we'll trigger the action.
+ do_action( 'two_factor_user_authenticated', $this->user, \Two_Factor_Core::get_provider_for_user( $this->user, $provider ) );
+ }
+
+ /**
+ * Test that adding a provider triggers the log.
+ */
+ public function test_callback_updated_user_meta() {
+
+ $this->mock->expects( $this->once() )
+ ->method( 'log' )
+ ->with(
+ $this->equalTo(
+ __(
+ 'Disabled provider: %s',
+ 'stream'
+ )
+ ),
+ $this->equalTo(
+ array(
+ 'provider' => 'Two_Factor_Dummy',
+ ),
+ ),
+ $this->user_id,
+ 'user-settings',
+ 'disabled'
+ );
+
+ \Two_Factor_Core::disable_provider_for_user( $this->user_id, 'Two_Factor_Dummy' );
+ }
+}
diff --git a/tests/tests/connectors/test-class-connector-user-switching.php b/tests/phpunit/connectors/test-class-connector-user-switching.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-user-switching.php
rename to tests/phpunit/connectors/test-class-connector-user-switching.php
diff --git a/tests/tests/connectors/test-class-connector-users.php b/tests/phpunit/connectors/test-class-connector-users.php
similarity index 100%
rename from tests/tests/connectors/test-class-connector-users.php
rename to tests/phpunit/connectors/test-class-connector-users.php
diff --git a/tests/tests/connectors/test-class-connector-wordpress-seo.php b/tests/phpunit/connectors/test-class-connector-wordpress-seo.php
similarity index 92%
rename from tests/tests/connectors/test-class-connector-wordpress-seo.php
rename to tests/phpunit/connectors/test-class-connector-wordpress-seo.php
index 0464f4580..d710803b4 100644
--- a/tests/tests/connectors/test-class-connector-wordpress-seo.php
+++ b/tests/phpunit/connectors/test-class-connector-wordpress-seo.php
@@ -52,8 +52,10 @@ public function test_wordpress_seo_installed_and_activated() {
*/
public function test_callback_added_post_meta() {
+ $expects = defined( 'WPSEO_VERSION' ) && version_compare( WPSEO_VERSION, '23.5', '<' ) ? $ths->once() : $this->never();
+
// Set expected calls for the Mock.
- $this->mock->expects( $this->once() )
+ $this->mock->expects( $expects )
->method( 'log' )
->with(
$this->equalTo(
diff --git a/tests/tests/test-class-admin.php b/tests/phpunit/test-class-admin.php
similarity index 75%
rename from tests/tests/test-class-admin.php
rename to tests/phpunit/test-class-admin.php
index 079bfdd72..7b4aae629 100644
--- a/tests/tests/test-class-admin.php
+++ b/tests/phpunit/test-class-admin.php
@@ -165,39 +165,47 @@ public function test_register_menu() {
}
public function test_admin_enqueue_scripts() {
- global $wp_styles;
global $wp_scripts;
// Non-Stream screen
$this->admin->admin_enqueue_scripts( 'edit.php' );
- $this->assertArrayNotHasKey( 'wp-stream-admin', $wp_scripts->registered );
+ $this->assertFalse( wp_script_is( 'wp-stream-admin' ), 'wp-stream-admin script is not enqueued' );
+ $this->assertFalse( wp_style_is( 'wp-stream-admin' ), 'wp-stream-admin style is not enqueued' );
- $this->assertArrayHasKey( 'wp-stream-admin', $wp_styles->registered );
- $this->assertArrayHasKey( 'wp-stream-global', $wp_scripts->registered );
+ $this->assertTrue( wp_script_is( 'wp-stream-global' ), 'wp-stream-global script is enqueued' );
- $dependency = $wp_scripts->registered['wp-stream-global'];
- $this->assertArrayHasKey( 'data', $dependency->extra );
- $this->assertNotFalse( strpos( $dependency->extra['data'], 'bulk_actions' ) );
+ $this->assertStringContainsString(
+ 'bulk_actions',
+ $wp_scripts->get_inline_script_data( 'wp-stream-global', 'before' ),
+ );
// Stream screen
$this->admin->admin_enqueue_scripts( $this->plugin->admin->screen_id['main'] );
- $this->assertArrayHasKey( 'wp-stream-select2', $wp_scripts->registered );
- $this->assertArrayHasKey( 'wp-stream-timeago', $wp_scripts->registered );
- $this->assertArrayHasKey( 'wp-stream-timeago-locale', $wp_scripts->registered );
+ $this->assertTrue( wp_style_is( 'wp-stream-admin' ), 'wp-stream-admin style is enqueued' );
- $this->assertArrayHasKey( 'wp-stream-admin', $wp_scripts->registered );
- $this->assertArrayHasKey( 'wp-stream-live-updates', $wp_scripts->registered );
+ $this->assertTrue( wp_script_is( 'wp-stream-select2' ), 'wp-stream-select2 script is enqueued' );
+ $this->assertTrue( wp_script_is( 'wp-stream-select2-en' ), 'wp-stream-select2-en script is enqueued' );
+ $this->assertTrue( wp_script_is( 'wp-stream-jquery-timeago' ), 'wp-stream-jquery-timeago script is enqueued' );
+ $this->assertTrue( wp_script_is( 'wp-stream-jquery-timeago-en' ), 'wp-stream-jquery-timeago-en script is enqueued' );
- $dependency = $wp_scripts->registered['wp-stream-admin'];
- $this->assertArrayHasKey( 'data', $dependency->extra );
- $this->assertNotFalse( strpos( $dependency->extra['data'], 'wp_stream' ) );
+ $this->assertTrue( wp_script_is( 'wp-stream-admin' ), 'wp-stream-admin script is enqueued' );
+ $this->assertTrue( wp_script_is( 'wp-stream-live-updates' ), 'wp-stream-live-updates script is enqueued' );
- $dependency = $wp_scripts->registered['wp-stream-live-updates'];
- $this->assertArrayHasKey( 'data', $dependency->extra );
- $this->assertNotFalse( strpos( $dependency->extra['data'], 'wp_stream_live_updates' ) );
- $this->assertNotFalse( strpos( $dependency->extra['data'], $this->plugin->admin->screen_id['main'] ) );
+ $this->assertStringContainsString(
+ 'i18n',
+ $wp_scripts->get_inline_script_data( 'wp-stream-admin', 'before' ),
+ );
+
+ $this->assertStringContainsString(
+ 'current_screen',
+ $wp_scripts->get_inline_script_data( 'wp-stream-live-updates', 'before' ),
+ );
+ $this->assertStringContainsString(
+ $this->plugin->admin->screen_id['main'],
+ $wp_scripts->get_inline_script_data( 'wp-stream-live-updates', 'before' ),
+ );
}
public function test_is_stream_screen() {
@@ -231,13 +239,10 @@ public function test_admin_menu_css() {
$this->admin->admin_menu_css();
- $this->assertArrayHasKey( 'wp-stream-datepicker', $wp_styles->registered );
- $this->assertArrayHasKey( 'wp-stream-icons', $wp_styles->registered );
-
$dependency = $wp_styles->registered['wp-admin'];
$this->assertArrayHasKey( 'after', $dependency->extra );
$this->assertNotEmpty( $dependency->extra['after'] );
- $this->assertStringContainsString( "#toplevel_page_{$this->admin->records_page_slug}", $dependency->extra['after'][0] );
+ $this->assertStringContainsString( "body.{$this->admin->admin_body_class}", $dependency->extra['after'][0] );
}
/**
@@ -282,6 +287,93 @@ public function test_wp_ajax_reset() {
$this->assertEmpty( $meta_results );
}
+ /**
+ * Also tests private method erase_stream_records
+ */
+ public function test_wp_ajax_reset_large_records_blog() {
+
+ if ( ! is_multisite() ) {
+ $this->markTestSkipped( 'This test requires multisite.' );
+ }
+
+ global $wpdb;
+
+ $_REQUEST['wp_stream_nonce'] = wp_create_nonce( 'stream_nonce' );
+ $_REQUEST['wp_stream_nonce_reset'] = wp_create_nonce( 'stream_nonce_reset' );
+
+ add_filter( 'wp_stream_is_large_records_table', '__return_true' );
+ add_filter( 'wp_stream_is_network_activated', '__return_false' );
+
+ $stream_data = $this->dummy_stream_data();
+ $wpdb->insert( $wpdb->stream, $stream_data );
+ $stream_id = $wpdb->insert_id;
+ $this->assertNotFalse( $stream_id );
+
+ $meta_data = $this->dummy_meta_data( $stream_id );
+ $wpdb->insert( $wpdb->streammeta, $meta_data );
+ $meta_id = $wpdb->insert_id;
+ $this->assertNotFalse( $meta_id );
+
+ $stream_data_2 = $this->dummy_stream_data_other_blog();
+ $wpdb->insert( $wpdb->stream, $stream_data_2 );
+ $stream_id_2 = $wpdb->insert_id;
+ $this->assertNotFalse( $stream_id_2 );
+
+ $meta_data = $this->dummy_meta_data( $stream_id_2 );
+ $wpdb->insert( $wpdb->streammeta, $meta_data );
+ $meta_id_2 = $wpdb->insert_id;
+ $this->assertNotFalse( $meta_id_2 );
+
+ // Clear records and meta
+ $reset = $this->admin->wp_ajax_reset();
+ $this->assertTrue( $reset );
+
+ $current_blog = (int) get_current_blog_id();
+
+ // Assert the scheduled action has been set.
+ $this->assertTrue(
+ as_has_scheduled_action(
+ Admin::ASYNC_DELETION_ACTION
+ )
+ );
+
+ // Check that records have not been cleared yet.
+ $stream_results = $wpdb->get_results(
+ $wpdb->prepare(
+ "SELECT * FROM {$wpdb->stream} WHERE blog_id=%d",
+ $current_blog
+ )
+ );
+ $this->assertNotEmpty( $stream_results );
+
+ $this->admin->erase_large_records( 1, 0, $meta_id, $current_blog );
+
+ // Check that records have been cleared.
+ $stream_results = $wpdb->get_results(
+ $wpdb->prepare(
+ "SELECT * FROM {$wpdb->stream} WHERE blog_id=%d",
+ $current_blog
+ )
+ );
+ $this->assertEmpty( $stream_results );
+
+ // Check that records of the other blog have not been cleared.
+ $stream_results = $wpdb->get_results(
+ $wpdb->prepare(
+ "SELECT * FROM {$wpdb->stream} WHERE blog_id=%d",
+ $current_blog + 1
+ )
+ );
+ $this->assertNotEmpty( $stream_results );
+
+ // Check that one meta has been cleared
+ $meta_results = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->streammeta}" );
+ $this->assertEquals( 1, $meta_results );
+
+ remove_filter( 'wp_stream_is_large_records_table', '__return_true' );
+ remove_filter( 'wp_stream_is_network_activated', '__return_false' );
+ }
+
public function test_purge_schedule_setup() {
wp_clear_scheduled_hook( 'wp_stream_auto_purge' );
$this->assertFalse( wp_next_scheduled( 'wp_stream_auto_purge' ) );
@@ -491,6 +583,22 @@ private function dummy_stream_data() {
);
}
+ private function dummy_stream_data_other_blog() {
+ return array(
+ 'object_id' => null,
+ 'site_id' => '1',
+ 'blog_id' => (int) get_current_blog_id() + 1,
+ 'user_id' => '1',
+ 'user_role' => 'administrator',
+ 'created' => gmdate( 'Y-m-d H:i:s' ),
+ 'summary' => '"Hello Dave" plugin activated',
+ 'ip' => '192.168.0.1',
+ 'connector' => 'installer',
+ 'context' => 'plugins',
+ 'action' => 'activated',
+ );
+ }
+
private function dummy_meta_data( $stream_id ) {
return array(
'record_id' => $stream_id,
diff --git a/tests/tests/test-class-alert-trigger.php b/tests/phpunit/test-class-alert-trigger.php
similarity index 100%
rename from tests/tests/test-class-alert-trigger.php
rename to tests/phpunit/test-class-alert-trigger.php
diff --git a/tests/tests/test-class-alert.php b/tests/phpunit/test-class-alert.php
similarity index 100%
rename from tests/tests/test-class-alert.php
rename to tests/phpunit/test-class-alert.php
diff --git a/tests/phpunit/test-class-alerts-list.php b/tests/phpunit/test-class-alerts-list.php
new file mode 100644
index 000000000..cb9225606
--- /dev/null
+++ b/tests/phpunit/test-class-alerts-list.php
@@ -0,0 +1,118 @@
+plugin );
+ $this->assertNotEmpty( $alerts_list->plugin );
+ }
+
+ public function test_suppress_bulk_actions() {
+ $alerts_list = new Alerts_List( $this->plugin );
+ $actions = array(
+ 'edit' => 'edit',
+ 'testaction' => 'testaction',
+ 'anotheraction' => 'anotheraction',
+ );
+ $expected_actions = array(
+ 'testaction' => 'testaction',
+ 'anotheraction' => 'anotheraction',
+ );
+ $filtered_actions = $alerts_list->suppress_bulk_actions( $actions );
+ $this->assertEquals( $expected_actions, $filtered_actions );
+ }
+
+ public function test_suppress_quick_edit() {
+ $alerts_list = new Alerts_List( $this->plugin );
+ $actions = array(
+ 'edit' => 'edit',
+ 'view' => 'view',
+ 'trash' => 'trash',
+ 'inline hide-if-no-js' => 'inline hide-if-no-js',
+ );
+ $post = $this->factory->post->create( array( 'post_type' => 'post' ) );
+ $filtered_actions = $alerts_list->suppress_quick_edit( $actions );
+ $this->assertEquals( $actions, $filtered_actions );
+ }
+
+ public function test_custom_column_actions() {
+ $alerts_list = new Alerts_List( $this->plugin );
+ $custom_column_actions_html = $alerts_list->custom_column_actions( 42 );
+ $this->assertNotEmpty( $custom_column_actions_html );
+ }
+ public function test_display_custom_quick_edit() {
+ $alerts_list = new Alerts_List( $this->plugin );
+ ob_start();
+ $alerts_list->display_custom_quick_edit();
+ $output = ob_get_clean();
+ $this->assertEmpty( $output );
+ }
+ public function test_enqueue_scripts() {
+ $alerts_list = new Alerts_List( $this->plugin );
+ global $current_screen;
+ $current_screen->id = 'edit-wp_stream_alerts';
+ $alerts_list->enqueue_scripts( '' );
+ $this->assertTrue( wp_script_is( 'wp-stream-alerts-list' ) );
+ }
+
+ /**
+ * Test save_alert_inline_edit method.
+ */
+ public function test_save_alert_inline_edit() {
+ $alerts_list = new Alerts_List( $this->plugin );
+ $post_id = wp_insert_post(
+ array(
+ 'post_type' => Alerts::POST_TYPE,
+ )
+ );
+ $postarr = array(
+ 'ID' => $post_id,
+ 'post_type' => Alerts::POST_TYPE,
+ );
+ $data = array();
+
+ // Create and authenticate user.
+ $user_id = self::factory()->user->create( array( 'role' => 'administrator' ) );
+ wp_set_current_user( $user_id );
+
+ $_POST['post_type'] = Alerts::POST_TYPE;
+ $_POST['wp_stream_trigger_author'] = 'author';
+ $_POST['wp_stream_trigger_connector_or_context'] = 'connector-context';
+ $_POST['wp_stream_trigger_action'] = 'action';
+ $_POST['wp_stream_alert_type'] = 'type';
+ $_POST['wp_stream_alert_status'] = 'status';
+ $_POST[ Alerts::POST_TYPE . '_edit_nonce' ] = wp_create_nonce( 'stream-src/classes/class-alerts-list.php' );
+
+ $alerts_list->save_alert_inline_edit( $data, $postarr );
+
+ $alert_meta = get_post_meta( $post_id, 'alert_meta', true );
+ $this->assertEquals( 'type', get_post_meta( $post_id, 'alert_type', true ), 'Alert type not saved' );
+ $this->assertEquals( 'author', $alert_meta['trigger_author'], 'Trigger author not saved' );
+ $this->assertEquals( 'connector', $alert_meta['trigger_connector'], 'Trigger connector not saved' );
+ $this->assertEquals( 'context', $alert_meta['trigger_context'], 'Trigger context not saved' );
+ $this->assertEquals( 'action', $alert_meta['trigger_action'], 'Trigger action not saved' );
+
+ // Test case with just a connector data.
+ $_POST['wp_stream_trigger_connector_or_context'] = 'connector';
+
+ $alerts_list->save_alert_inline_edit( $data, $postarr );
+ $alert_meta = get_post_meta( $post_id, 'alert_meta', true );
+ $this->assertEquals( 'connector', $alert_meta['trigger_connector'], 'Trigger connector not saved' );
+ $this->assertEmpty( $alert_meta['trigger_context'], 'Trigger context not saved empty' );
+
+ // Test case with no connector or context data.
+ $_POST['wp_stream_trigger_connector_or_context'] = '';
+
+ $alerts_list->save_alert_inline_edit( $data, $postarr );
+ $alert_meta = get_post_meta( $post_id, 'alert_meta', true );
+ $this->assertEmpty( $alert_meta['trigger_connector'], 'Trigger connector not saved empty' );
+ $this->assertEmpty( $alert_meta['trigger_context'], 'Trigger context not saved empty' );
+ }
+}
diff --git a/tests/tests/test-class-alerts.php b/tests/phpunit/test-class-alerts.php
similarity index 100%
rename from tests/tests/test-class-alerts.php
rename to tests/phpunit/test-class-alerts.php
diff --git a/tests/tests/test-class-author.php b/tests/phpunit/test-class-author.php
similarity index 100%
rename from tests/tests/test-class-author.php
rename to tests/phpunit/test-class-author.php
diff --git a/tests/tests/test-class-connector.php b/tests/phpunit/test-class-connector.php
similarity index 100%
rename from tests/tests/test-class-connector.php
rename to tests/phpunit/test-class-connector.php
diff --git a/tests/tests/test-class-connectors.php b/tests/phpunit/test-class-connectors.php
similarity index 100%
rename from tests/tests/test-class-connectors.php
rename to tests/phpunit/test-class-connectors.php
diff --git a/tests/tests/test-class-date-interval.php b/tests/phpunit/test-class-date-interval.php
similarity index 100%
rename from tests/tests/test-class-date-interval.php
rename to tests/phpunit/test-class-date-interval.php
diff --git a/tests/tests/test-class-db-driver-wpdb.php b/tests/phpunit/test-class-db-driver-wpdb.php
similarity index 100%
rename from tests/tests/test-class-db-driver-wpdb.php
rename to tests/phpunit/test-class-db-driver-wpdb.php
diff --git a/tests/tests/test-class-db.php b/tests/phpunit/test-class-db.php
similarity index 100%
rename from tests/tests/test-class-db.php
rename to tests/phpunit/test-class-db.php
diff --git a/tests/tests/test-class-export.php b/tests/phpunit/test-class-export.php
similarity index 91%
rename from tests/tests/test-class-export.php
rename to tests/phpunit/test-class-export.php
index 7540ebb12..ddaab4045 100644
--- a/tests/tests/test-class-export.php
+++ b/tests/phpunit/test-class-export.php
@@ -43,7 +43,7 @@ public function test_render_download() {
$output = ob_get_clean();
$this->assertNotEmpty( $output );
- $this->assertStringStartsWith( 'Date,Summary,User,Connector,Context,Action,IP Address', $output );
+ $this->assertStringStartsWith( 'Date,Summary,User,"User ID",Connector,Context,"Object ID",Action,"IP Address"', $output );
unset( $_GET['action'] );
}
@@ -88,6 +88,23 @@ public function test_disable_paginate() {
$this->assertEquals( $limit, 10000 );
}
+ /**
+ * Test pagination limit filter
+ */
+ public function test_export_limit_filter() {
+ add_filter(
+ 'wp_stream_export_limit',
+ static function () {
+ return 5;
+ }
+ );
+
+ $filtered_limit = $this->export->disable_paginate();
+ $this->assertEquals( $filtered_limit, 5 );
+
+ remove_all_filters( 'wp_stream_export_limit' );
+ }
+
/**
* Test for present columns returning
*/
diff --git a/tests/tests/test-class-exporter-csv.php b/tests/phpunit/test-class-exporter-csv.php
similarity index 100%
rename from tests/tests/test-class-exporter-csv.php
rename to tests/phpunit/test-class-exporter-csv.php
diff --git a/tests/tests/test-class-exporter-json.php b/tests/phpunit/test-class-exporter-json.php
similarity index 100%
rename from tests/tests/test-class-exporter-json.php
rename to tests/phpunit/test-class-exporter-json.php
diff --git a/tests/tests/test-class-filter-input.php b/tests/phpunit/test-class-filter-input.php
similarity index 100%
rename from tests/tests/test-class-filter-input.php
rename to tests/phpunit/test-class-filter-input.php
diff --git a/tests/tests/test-class-log.php b/tests/phpunit/test-class-log.php
similarity index 100%
rename from tests/tests/test-class-log.php
rename to tests/phpunit/test-class-log.php
diff --git a/tests/tests/test-class-plugin.php b/tests/phpunit/test-class-plugin.php
similarity index 100%
rename from tests/tests/test-class-plugin.php
rename to tests/phpunit/test-class-plugin.php
diff --git a/tests/tests/test-functions.php b/tests/phpunit/test-functions.php
similarity index 100%
rename from tests/tests/test-functions.php
rename to tests/phpunit/test-functions.php
diff --git a/tests/tests/test-class-alerts-list.php b/tests/tests/test-class-alerts-list.php
deleted file mode 100644
index a79f49f81..000000000
--- a/tests/tests/test-class-alerts-list.php
+++ /dev/null
@@ -1,64 +0,0 @@
-plugin );
- $this->assertNotEmpty( $alerts_list->plugin );
- }
-
- public function test_suppress_bulk_actions() {
- $alerts_list = new Alerts_List( $this->plugin );
- $actions = array(
- 'edit' => 'edit',
- 'testaction' => 'testaction',
- 'anotheraction' => 'anotheraction',
- );
- $expected_actions = array(
- 'testaction' => 'testaction',
- 'anotheraction' => 'anotheraction',
- );
- $filtered_actions = $alerts_list->suppress_bulk_actions( $actions );
- $this->assertEquals( $expected_actions, $filtered_actions );
- }
-
- public function test_suppress_quick_edit() {
- $alerts_list = new Alerts_List( $this->plugin );
- $actions = array(
- 'edit' => 'edit',
- 'view' => 'view',
- 'trash' => 'trash',
- 'inline hide-if-no-js' => 'inline hide-if-no-js',
- );
- $post = $this->factory->post->create( array( 'post_type' => 'post' ) );
- $filtered_actions = $alerts_list->suppress_quick_edit( $actions );
- $this->assertEquals( $actions, $filtered_actions );
- }
-
- public function test_custom_column_actions() {
- $alerts_list = new Alerts_List( $this->plugin );
- $custom_column_actions_html = $alerts_list->custom_column_actions( 42 );
- $this->assertNotEmpty( $custom_column_actions_html );
- }
- public function test_display_custom_quick_edit() {
- $alerts_list = new Alerts_List( $this->plugin );
- ob_start();
- $alerts_list->display_custom_quick_edit();
- $output = ob_get_clean();
- $this->assertEmpty( $output );
- }
- public function test_enqueue_scripts() {
- $alerts_list = new Alerts_List( $this->plugin );
- global $current_screen;
- $current_screen->id = 'edit-wp_stream_alerts';
- $alerts_list->enqueue_scripts( '' );
- $this->assertTrue( wp_script_is( 'wp-stream-alerts-list-js', 'registered' ) );
- }
-}
diff --git a/ui/js/admin.js b/ui/js/admin.js
deleted file mode 100644
index 9bebe3a64..000000000
--- a/ui/js/admin.js
+++ /dev/null
@@ -1,561 +0,0 @@
-/* globals wp_stream, ajaxurl, jQuery */
-jQuery(
- function( $ ) {
- // Shorter timeago strings for English locale
- if ( 'en' === wp_stream.locale && 'undefined' !== typeof $.timeago ) {
- $.timeago.settings.strings.seconds = 'seconds';
- $.timeago.settings.strings.minute = 'a minute';
- $.timeago.settings.strings.hour = 'an hour';
- $.timeago.settings.strings.hours = '%d hours';
- $.timeago.settings.strings.month = 'a month';
- $.timeago.settings.strings.year = 'a year';
- }
-
- $( 'li.toplevel_page_wp_stream ul li.wp-first-item.current' ).parent().parent().find( '.update-plugins' ).remove();
-
- $( '.toplevel_page_wp_stream :input.chosen-select' ).each(
- function( i, el ) {
- var args = {},
- templateResult = function( record ) {
- var $result = $( '' ),
- $elem = $( record.element ),
- icon = '';
-
- if ( '- ' === record.text.substring( 0, 2 ) ) {
- record.text = record.text.substring( 2 );
- }
-
- if ( 'undefined' !== typeof record.id && 'string' === typeof record.id ) {
- if ( record.id.indexOf( 'group-' ) === 0 ) {
- $result.addClass( 'parent' );
- } else if ( $elem.hasClass( 'level-2' ) ) {
- $result.addClass( 'child' );
- }
- }
-
- if ( undefined !== record.icon ) {
- icon = record.icon;
- } else if ( undefined !== $elem && '' !== $elem.data( 'icon' ) ) {
- icon = $elem.data( 'icon' );
- }
-
- if ( icon ) {
- $result.html( ' ' );
- }
- $result.append( record.text );
-
- return $result;
- },
- templateSelection = function( record ) {
- if ( '- ' === record.text.substring( 0, 2 ) ) {
- record.text = record.text.substring( 2 );
- }
- return record.text;
- };
-
- if ( $( el ).find( 'option' ).not( ':selected' ).not( ':empty' ).length > 0 ) {
- args = {
- minimumResultsForSearch: 10,
- templateResult: templateResult,
- templateSelection: templateSelection,
- allowClear: true,
- width: '165px',
- };
- } else {
- args = {
- minimumInputLength: 3,
- allowClear: true,
- width: '165px',
- ajax: {
- url: ajaxurl,
- delay: 500,
- dataType: 'json',
- quietMillis: 100,
- data: function( term ) {
- return {
- action: 'wp_stream_filters',
- nonce: $( '#stream_filters_user_search_nonce' ).val(),
- filter: $( el ).attr( 'name' ),
- q: term.term,
- };
- },
- processResults: function( data ) {
- var results = [];
- $.each(
- data, function( index, item ) {
- results.push(
- {
- id: item.id,
- text: item.label,
- }
- );
- }
- );
- return {
- results: results,
- };
- },
- },
- templateResult: templateResult,
- templateSelection: templateSelection,
- };
- }
-
- $( el ).select2( args );
- }
- );
-
- var $queryVars = $.streamGetQueryVars();
- var $contextInput = $( '.toplevel_page_wp_stream select.chosen-select[name="context"]' );
-
- if ( ( 'undefined' === typeof $queryVars.context || '' === $queryVars.context ) && 'undefined' !== typeof $queryVars.connector ) {
- $contextInput.val( 'group-' + $queryVars.connector );
- $contextInput.trigger( 'change' );
- }
-
- $( 'input[type=submit]', '#record-filter-form' ).click(
- function() {
- $( 'input[type=submit]', $( this ).parents( 'form' ) ).removeAttr( 'clicked' );
- $( this ).attr( 'clicked', 'true' );
- }
- );
-
- $( '#record-filter-form' ).submit(
- function() {
- var $context = $( '.toplevel_page_wp_stream :input.chosen-select[name="context"]' ),
- $option = $context.find( 'option:selected' ),
- $connector = $context.parent().find( '.record-filter-connector' ),
- optionConnector = $option.data( 'group' ),
- optionClass = $option.prop( 'class' ),
- $recordAction = $( '.recordactions select' );
-
- if ( $( '#record-actions-submit' ).attr( 'clicked' ) !== 'true' ) {
- $recordAction.val( '' );
- }
-
- $connector.val( optionConnector );
-
- if ( 'level-1' === optionClass ) {
- $option.val( '' );
- }
- }
- );
-
- $( window ).on(
- 'load',
- function() {
- $( '.toplevel_page_wp_stream input[type="search"]' ).off( 'mousedown' );
- }
- );
-
- // Confirmation on some important actions
- $( 'body' ).on(
- 'click', '#wp_stream_advanced_delete_all_records, #wp_stream_network_advanced_delete_all_records', function( e ) {
- if ( ! window.confirm( wp_stream.i18n.confirm_purge ) ) {
- e.preventDefault();
- }
- }
- );
-
- $( 'body' ).on(
- 'click', '#wp_stream_advanced_reset_site_settings, #wp_stream_network_advanced_reset_site_settings', function( e ) {
- if ( ! window.confirm( wp_stream.i18n.confirm_defaults ) ) {
- e.preventDefault();
- }
- }
- );
-
- // Admin page tabs
- var $tabs = $( '.wp_stream_screen .nav-tab-wrapper' ),
- $panels = $( '.wp_stream_screen .nav-tab-content table.form-table' ),
- $activeTab = $tabs.find( '.nav-tab-active' ),
- defaultIndex = $activeTab.length > 0 ? $tabs.find( 'a' ).index( $activeTab ) : 0,
- hashIndexStart = window.location.hash.match( /^#(\d+)$/ ),
- currentHash = ( null !== hashIndexStart ? hashIndexStart[ 1 ] : defaultIndex ),
- syncFormAction = function( index ) {
- var $optionsForm = $( 'input[name="option_page"][value^="wp_stream"]' ).closest( 'form' );
- if ( $optionsForm.length === 0 ) {
- return;
- }
- var currentAction = $optionsForm.attr( 'action' );
-
- $optionsForm.prop( 'action', currentAction.replace( /(^[^#]*).*$/, '$1#' + index ) );
- };
-
- $tabs.on(
- 'click', 'a', function() {
- var index = $tabs.find( 'a' ).index( $( this ) ),
- hashIndex = window.location.hash.match( /^#(\d+)$/ );
-
- $panels.hide().eq( index ).show();
- $tabs
- .find( 'a' )
- .removeClass( 'nav-tab-active' )
- .filter( $( this ) )
- .addClass( 'nav-tab-active' );
-
- if ( '' === window.location.hash || null !== hashIndex ) {
- window.location.hash = index;
- }
-
- syncFormAction( index );
-
- return false;
- }
- );
-
- $tabs.children().eq( currentHash ).trigger( 'click' );
-
- // Live Updates screen option
- $( document ).ready(
- function() {
- // Enable Live Updates checkbox ajax
- $( '#enable_live_update' ).click(
- function() {
- var nonce = $( '#stream_live_update_nonce' ).val(),
- user = $( '#enable_live_update_user' ).val(),
- checked = 'unchecked',
- heartbeat = 'true';
-
- if ( $( '#enable_live_update' ).is( ':checked' ) ) {
- checked = 'checked';
- }
-
- heartbeat = $( '#enable_live_update' ).data( 'heartbeat' );
-
- $.ajax(
- {
- type: 'POST',
- url: ajaxurl,
- data: {
- action: 'stream_enable_live_update',
- nonce: nonce,
- user: user,
- checked: checked,
- heartbeat: heartbeat,
- },
- dataType: 'json',
- beforeSend: function() {
- $( '.stream-live-update-checkbox .spinner' ).show().css( { display: 'inline-block' } );
- },
- success: function( response ) {
- $( '.stream-live-update-checkbox .spinner' ).hide();
-
- if ( false === response.success ) {
- $( '#enable_live_update' ).prop( 'checked', false );
-
- if ( response.data ) {
- window.alert( response.data );
- }
- }
- },
- }
- );
- }
- );
-
- function toggle_filter_submit() {
- var all_hidden = true;
-
- // If all filters are hidden, hide the button
- if ( $( 'div.metabox-prefs [name="date-hide"]' ).is( ':checked' ) ) {
- all_hidden = false;
- }
-
- var divs = $( 'div.alignleft.actions div.select2-container' );
-
- divs.each(
- function() {
- if ( ! $( this ).is( ':hidden' ) ) {
- all_hidden = false;
- return false;
- }
- }
- );
-
- if ( all_hidden ) {
- $( 'input#record-query-submit' ).hide();
- $( 'span.filter_info' ).show();
- } else {
- $( 'input#record-query-submit' ).show();
- $( 'span.filter_info' ).hide();
- }
- }
-
- if ( $( 'div.metabox-prefs [name="date-hide"]' ).is( ':checked' ) ) {
- $( 'div.date-interval' ).show();
- } else {
- $( 'div.date-interval' ).hide();
- }
-
- $( 'div.actions select.chosen-select' ).each(
- function() {
- var name = $( this ).prop( 'name' );
-
- if ( $( 'div.metabox-prefs [name="' + name + '-hide"]' ).is( ':checked' ) ) {
- $( this ).prev( '.select2-container' ).show();
- } else {
- $( this ).prev( '.select2-container' ).hide();
- }
- }
- );
-
- toggle_filter_submit();
-
- $( 'div.metabox-prefs [type="checkbox"]' ).click(
- function() {
- var id = $( this ).prop( 'id' );
-
- if ( 'date-hide' === id ) {
- if ( $( this ).is( ':checked' ) ) {
- $( 'div.date-interval' ).show();
- } else {
- $( 'div.date-interval' ).hide();
- }
- } else {
- id = id.replace( '-hide', '' );
-
- if ( $( this ).is( ':checked' ) ) {
- $( '[name="' + id + '"]' ).prev( '.select2-container' ).show();
- } else {
- $( '[name="' + id + '"]' ).prev( '.select2-container' ).hide();
- }
- }
-
- toggle_filter_submit();
- }
- );
-
- $( '#ui-datepicker-div' ).addClass( 'stream-datepicker' );
- }
- );
-
- // Relative time
- $( 'table.wp-list-table' ).on(
- 'updated', function() {
- var timeObjects = $( this ).find( 'time.relative-time' );
- timeObjects.each(
- function( i, el ) {
- var timeEl = $( el );
- timeEl.removeClass( 'relative-time' );
- $( ' ' )
- .prependTo( timeEl.parent().parent() )
- .find( 'time.timeago' )
- .timeago();
- }
- );
- }
- ).trigger( 'updated' );
-
- var intervals = {
- init: function( $wrapper ) {
- this.wrapper = $wrapper;
- this.save_interval( this.wrapper.find( '.button-primary' ), this.wrapper );
-
- this.$ = this.wrapper.each(
- function( i, val ) {
- var container = $( val ),
- dateinputs = container.find( '.date-inputs' ),
- from = container.find( '.field-from' ),
- to = container.find( '.field-to' ),
- to_remove = to.prev( '.date-remove' ),
- from_remove = from.prev( '.date-remove' ),
- predefined = container.children( '.field-predefined' ),
- datepickers = $( '' ).add( to ).add( from );
-
- if ( jQuery.datepicker ) {
- // Apply a GMT offset due to Date() using the visitor's local time
- var siteGMTOffsetHours = parseFloat( wp_stream.gmt_offset ),
- localGMTOffsetHours = new Date().getTimezoneOffset() / 60 * -1,
- totalGMTOffsetHours = siteGMTOffsetHours - localGMTOffsetHours,
- localTime = new Date(),
- siteTime = new Date( localTime.getTime() + ( totalGMTOffsetHours * 60 * 60 * 1000 ) ),
- maxOffset = 0,
- minOffset = null;
-
- // Check if the site date is different from the local date, and set a day offset
- if ( localTime.getDate() !== siteTime.getDate() || localTime.getMonth() !== siteTime.getMonth() ) {
- if ( localTime.getTime() < siteTime.getTime() ) {
- maxOffset = '+1d';
- } else {
- maxOffset = '-1d';
- }
- }
-
- datepickers.datepicker(
- {
- dateFormat: 'yy/mm/dd',
- minDate: minOffset,
- maxDate: maxOffset,
- defaultDate: siteTime,
- beforeShow: function() {
- $( this ).prop( 'disabled', true );
- },
- onClose: function() {
- $( this ).prop( 'disabled', false );
- },
- }
- );
-
- datepickers.datepicker( 'widget' ).addClass( 'stream-datepicker' );
- }
-
- predefined.select2(
- {
- allowClear: true,
- }
- );
-
- if ( '' !== from.val() ) {
- from_remove.show();
- }
-
- if ( '' !== to.val() ) {
- to_remove.show();
- }
-
- predefined.on(
- {
- change: function() {
- var value = $( this ).val(),
- option = predefined.find( '[value="' + value + '"]' ),
- to_val = option.data( 'to' ),
- from_val = option.data( 'from' );
-
- if ( 'custom' === value ) {
- dateinputs.show();
- return false;
- }
- dateinputs.hide();
- datepickers.datepicker( 'hide' );
-
- from.val( from_val ).trigger( 'change', [ true ] );
- to.val( to_val ).trigger( 'change', [ true ] );
-
- if ( jQuery.datepicker && datepickers.datepicker( 'widget' ).is( ':visible' ) ) {
- datepickers.datepicker( 'refresh' ).datepicker( 'hide' );
- }
- },
- 'select2-removed': function() {
- predefined.val( '' ).trigger( 'change' );
- },
- check_options: function() {
- if ( '' !== to.val() && '' !== from.val() ) {
- var option = predefined
- .find( 'option' )
- .filter( '[data-to="' + to.val() + '"]' )
- .filter( '[data-from="' + from.val() + '"]' );
- if ( 0 !== option.length ) {
- predefined.val( option.attr( 'value' ) ).trigger( 'change', [ true ] );
- } else {
- predefined.val( 'custom' ).trigger( 'change', [ true ] );
- }
- } else if ( '' === to.val() && '' === from.val() ) {
- predefined.val( '' ).trigger( 'change', [ true ] );
- } else {
- predefined.val( 'custom' ).trigger( 'change', [ true ] );
- }
- },
- }
- );
-
- from.on(
- 'change', function() {
- if ( '' !== from.val() ) {
- from_remove.show();
- to.datepicker( 'option', 'minDate', from.val() );
- } else {
- from_remove.hide();
- }
-
- if ( true === arguments[ arguments.length - 1 ] ) {
- return false;
- }
-
- predefined.trigger( 'check_options' );
- }
- );
-
- to.on(
- 'change', function() {
- if ( '' !== to.val() ) {
- to_remove.show();
- from.datepicker( 'option', 'maxDate', to.val() );
- } else {
- to_remove.hide();
- }
-
- if ( true === arguments[ arguments.length - 1 ] ) {
- return false;
- }
-
- predefined.trigger( 'check_options' );
- }
- );
-
- // Trigger change on load
- predefined.trigger( 'change' );
-
- $( '' ).add( from_remove ).add( to_remove ).on(
- 'click', function() {
- $( this ).next( 'input' ).val( '' ).trigger( 'change' );
- }
- );
- }
- );
- },
-
- save_interval: function( $btn ) {
- var $wrapper = this.wrapper;
- $btn.click(
- function() {
- var data = {
- key: $wrapper.find( 'select.field-predefined' ).find( ':selected' ).val(),
- start: $wrapper.find( '.date-inputs .field-from' ).val(),
- end: $wrapper.find( '.date-inputs .field-to' ).val(),
- };
-
- // Add params to URL
- $( this ).attr( 'href', $( this ).attr( 'href' ) + '&' + $.param( data ) );
- }
- );
- },
- };
-
- $( document ).ready(
- function() {
- intervals.init( $( '.date-interval' ) );
-
- // Disable option groups whose children are all disabled
- $( 'select[name="context"] .level-1' ).each(
- function() {
- var all_disabled = true;
-
- $( this ).nextUntil( '.level-1' ).each(
- function() {
- if ( $( this ).is( ':not(:disabled)' ) ) {
- all_disabled = false;
- return false;
- }
- }
- );
-
- if ( true === all_disabled ) {
- $( this ).prop( 'disabled', true );
- }
- }
- );
- }
- );
- }
-);
-
-jQuery.extend(
- {
- streamGetQueryVars: function( str ) {
- return ( str || document.location.search ).replace( /(^\?)/, '' ).split( '&' ).map( function( n ) {
- return n = n.split( '=' ), this[n[0]] = n[1], this;
- }.bind( {} ) )[0];
- },
- }
-);
diff --git a/ui/js/alerts-list.js b/ui/js/alerts-list.js
deleted file mode 100644
index b83d3f8b2..000000000
--- a/ui/js/alerts-list.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/* globals jQuery */
-( function( $ ) {
- $( document ).ready(
- function() {
- $( '.inline-edit-col-left, .inline-edit-col-right, #major-publishing-actions', '.edit-php.post-type-wp_stream_alerts' ).each(
- function() {
- $( this ).remove();
- }
- );
-
- // This is done with JS instead of CSS to override the inline styles added by Select2's JS.
- $( '.select2-container', '.inline-edit-col' ).css( { width: '100%' } );
- }
- );
-}( jQuery ) );
diff --git a/ui/js/alerts.js b/ui/js/alerts.js
deleted file mode 100644
index d8ebbde99..000000000
--- a/ui/js/alerts.js
+++ /dev/null
@@ -1,307 +0,0 @@
-/* globals jQuery, streamAlerts, inlineEditPost */
-jQuery(
- function( $ ) {
- 'use strict';
- var $post_row,
- $edit_row;
- var setupSelectTwo = function setupSelectTwo( id ) {
- var $target = $( id );
- $target.find( '.select2-select.connector_or_context' ).each(
- function( k, el ) {
- $( el ).select2(
- {
- allowClear: true,
- placeholder: streamAlerts.anyContext,
- templateResult: function( item ) {
- if ( 'undefined' === typeof item.id ) {
- return item.text;
- }
- if ( -1 === item.id.indexOf( '-' ) ) {
- return $( '' + item.text + ' ' );
- }
- return $( '' + item.text + ' ' );
- },
- matcher: function( params, data ) {
- var match = $.extend( true, {}, data );
-
- if ( null === params.term || '' === $.trim( params.term ) ) {
- return match;
- }
-
- var term = params.term.toLowerCase();
-
- match.id = match.id.replace( 'blogs', 'sites' );
- if ( match.id.toLowerCase().indexOf( term ) >= 0 ) {
- return match;
- }
-
- if ( match.children ) {
- for ( var i = match.children.length - 1; i >= 0; i-- ) {
- var child = match.children[i];
-
- // Remove term from results if it doesn't match.
- if ( -1 === child.id.toLowerCase().indexOf( term ) ) {
- match.children.splice( i, 1 );
- }
- }
-
- if ( match.children.length > 0 ) {
- return match;
- }
- }
-
- return null;
- },
- }
- ).change(
- function() {
- var value = $( this ).val();
- if ( value ) {
- var parts = value.split( '-' );
- $( this ).siblings( '.connector' ).val( parts[0] );
- $( this ).siblings( '.context' ).val( parts[1] );
- }
- }
- );
-
- var parts = [
- $( el ).siblings( '.connector' ).val(),
- $( el ).siblings( '.context' ).val(),
- ];
- if ( '' === parts[1] ) {
- parts.splice( 1, 1 );
- }
- $( el ).val( parts.join( '-' ) ).trigger( 'change' );
- }
- );
-
- $target.find( 'select.select2-select:not(.connector_or_context)' ).each(
- function() {
- var element_id_split = $( this ).attr( 'id' ).split( '_' );
- var select_name = element_id_split[element_id_split.length - 1].charAt( 0 ).toUpperCase() +
- element_id_split[element_id_split.length - 1].slice( 1 );
- $( this ).select2(
- {
- allowClear: true,
- placeholder: streamAlerts.any + ' ' + select_name,
- }
- );
- }
- );
- };
- var $alertSettingSelect = $( '#wp_stream_alert_type' );
-
- var loadAlertSettings = function( alert_type ) {
- var data = {
- action: 'load_alerts_settings',
- alert_type: alert_type,
- };
-
- var $alert_edit_row = $( '#wp_stream_alert_type' ).closest( 'tr' );
- var row_id = $alert_edit_row.attr( 'id' );
- data.post_id = row_id.split( '-' )[1];
- $.post(
- window.ajaxurl, data, function( response ) {
- var $alert_type_settings = $( '#wp_stream_alert_type_form' );
- var alert_type_value = $( '#wp_stream_alert_type' ).val();
- if ( 'none' === alert_type_value ) {
- $alert_type_settings.hide();
- return;
- }
- $alert_type_settings.html( response.data.html );
- $alert_type_settings.show();
- }
- );
- };
-
- $( '#the-list' ).on(
- 'change', '#wp_stream_trigger_connector_or_context', function() {
- if ( 'wp_stream_trigger_connector_or_context' === $( this ).attr( 'id' ) ) {
- var connector = $( this ).val();
- if ( connector && 0 < connector.indexOf( '-' ) ) {
- var connector_split = connector.split( '-' );
- connector = connector_split[0];
- }
- getActions( connector );
- }
- }
- );
-
- var getActions = function( connector ) {
- var trigger_action = $( '#wp_stream_trigger_action' );
- trigger_action.empty();
- trigger_action.prop( 'disabled', true );
-
- var placeholder = $( ' ', { value: '', text: '' } );
- trigger_action.append( placeholder );
-
- var data = {
- action: 'get_actions',
- connector: connector,
- };
-
- $.post(
- window.ajaxurl, data, function( response ) {
- var success = response.success,
- actions = response.data;
- if ( ! success ) {
- return;
- }
- for ( var key in actions ) {
- if ( actions.hasOwnProperty( key ) ) {
- var value = actions[key];
- var option = $( ' ', { value: key, text: value } );
- trigger_action.append( option );
- }
- }
- trigger_action.prop( 'disabled', false );
- $( document ).trigger( 'alert-actions-updated' );
- }
- );
- };
-
- $alertSettingSelect.change(
- function() {
- loadAlertSettings( $( this ).val() );
- }
- );
-
- $( '#wpbody-content' ).on(
- 'click', 'a.page-title-action', function( e ) {
- e.preventDefault();
- $( '#add-new-alert' ).remove();
- if ( $( '.inline-edit-wp_stream_alerts' ).length > 0 ) {
- $( '.inline-edit-wp_stream_alerts .inline-edit-save button.button-secondary.cancel' ).trigger( 'click' );
- }
- var alert_form_html = '';
- var data = {
- action: 'get_new_alert_triggers_notifications',
- };
- $.post(
- window.ajaxurl, data, function( response ) {
- if ( true === response.success ) {
- alert_form_html = response.data.html;
- $( 'tbody#the-list' ).prepend( '' + alert_form_html + ' Cancel Save
' );
- var add_new_alert = $( '#add-new-alert' );
- var current_bg_color = add_new_alert.css( 'background-color' );
-
- // Color taken from /wp-admin/css/forms.css
- // #pass-strength-result.strong
- add_new_alert.css( 'background-color', '#C1E1B9' );
- setTimeout(
- function() {
- add_new_alert.css( 'background-color', current_bg_color );
- }, 250
- );
-
- $( '#wp_stream_alert_type' ).change(
- function() {
- loadAlertSettings( $( this ).val() );
- }
- );
- add_new_alert.on(
- 'click', '.button-secondary.cancel', function() {
- $( '#add-new-alert' ).remove();
- }
- );
- add_new_alert.on( 'click', '.button-primary.save', save_new_alert );
-
- setupSelectTwo( '#add-new-alert' );
- }
- }
- );
- }
- );
- var save_new_alert = function save_new_alert( e ) {
- e.preventDefault();
- $( '#add-new-alert' ).find( 'p.submit.inline-edit-save span.spinner' ).css( 'visibility', 'visible' );
- var data = {
- action: 'save_new_alert',
- wp_stream_alerts_nonce: $( '#wp_stream_alerts_nonce' ).val(),
- wp_stream_trigger_author: $( '#wp_stream_trigger_author' ).val(),
- wp_stream_trigger_context: $( '#wp_stream_trigger_connector_or_context' ).val(),
- wp_stream_trigger_action: $( '#wp_stream_trigger_action' ).val(),
- wp_stream_alert_type: $( '#wp_stream_alert_type' ).val(),
- wp_stream_alert_status: $( '#wp_stream_alert_status' ).val(),
- };
- $( '#wp_stream_alert_type_form' ).find( ':input' ).each(
- function() {
- var alert_type_data_id = $( this ).attr( 'id' );
- if ( $( this ).val() ) {
- data[alert_type_data_id] = $( this ).val();
- }
- }
- );
-
- $.post(
- window.ajaxurl, data, function( response ) {
- if ( true === response.success ) {
- $( '#add-new-alert' ).find( 'p.submit.inline-edit-save span.spinner' ).css( 'visibility', 'hidden' );
- location.reload();
- }
- }
- );
- };
-
- // we create a copy of the WP inline edit post function
- var $wp_inline_edit = inlineEditPost.edit;
-
- // and then we overwrite the function with our own code
- inlineEditPost.edit = function( id ) {
- // "call" the original WP edit function
- // we don't want to leave WordPress hanging
- $wp_inline_edit.apply( this, arguments );
-
- // now we take care of our business
-
- // get the post ID
- var post_id = 0;
- if ( typeof ( id ) === 'object' ) {
- post_id = parseInt( this.getId( id ), 10 );
- }
-
- if ( post_id > 0 ) {
- // define the edit row
- $edit_row = $( '#edit-' + post_id );
- $post_row = $( '#post-' + post_id );
-
- // get the data
- var alert_trigger_connector = $post_row.find( 'input[name="wp_stream_trigger_connector"]' ).val();
- var alert_trigger_context = $post_row.find( 'input[name="wp_stream_trigger_context"]' ).val();
- var alert_trigger_connector_context = alert_trigger_connector + '-' + alert_trigger_context;
- var alert_trigger_action = $post_row.find( 'input[name="wp_stream_trigger_action"]' ).val();
- var alert_status = $post_row.find( 'input[name="wp_stream_alert_status"]' ).val();
-
- // populate the data
- $edit_row.find( 'input[name="wp_stream_trigger_connector"]' ).attr( 'value', alert_trigger_connector );
- $edit_row.find( 'input[name="wp_stream_trigger_context"]' ).attr( 'value', alert_trigger_context );
- $edit_row.find( 'select[name="wp_stream_trigger_connector_or_context"] option[value="' + alert_trigger_connector_context + '"]' ).attr( 'selected', 'selected' );
- $( document ).one(
- 'alert-actions-updated', function() {
- $edit_row.find( 'input[name="wp_stream_trigger_action"]' ).attr( 'value', alert_trigger_action );
- $edit_row.find( 'select[name="wp_stream_trigger_action"] option[value="' + alert_trigger_action + '"]' ).attr( 'selected', 'selected' ).trigger( 'change' );
- }
- );
- $edit_row.find( 'select[name="wp_stream_alert_status"] option[value="' + alert_status + '"]' ).attr( 'selected', 'selected' );
- setupSelectTwo( '#edit-' + post_id );
-
- // Alert type handling
- $( '#wp_stream_alert_type_form' ).hide();
- var alert_type = $post_row.find( 'input[name="wp_stream_alert_type"]' ).val();
- $edit_row.find( 'select[name="wp_stream_alert_type"] option[value="' + alert_type + '"]' ).attr( 'selected', 'selected' ).trigger( 'change' );
- }
- };
- if ( window.location.hash ) {
- var $target_post_row = $( window.location.hash );
- if ( $target_post_row.length ) {
- var scroll_to_position = $target_post_row.offset().top - $( '#wpadminbar' ).height();
- $( 'html, body' ).animate(
- {
- scrollTop: scroll_to_position,
- }, 1000
- );
- $target_post_row.find( '.row-actions a.editinline' ).trigger( 'click' );
- }
- }
- }
-);
diff --git a/ui/js/exclude.js b/ui/js/exclude.js
deleted file mode 100644
index 917a111c9..000000000
--- a/ui/js/exclude.js
+++ /dev/null
@@ -1,461 +0,0 @@
-/* globals jQuery, ajaxurl, wp_stream_regenerate_alt_rows */
-jQuery(
- function( $ ) {
- var $excludeRows = $( '.stream-exclude-list tbody tr:not(.hidden)' );
- var $placeholderRow = $( '.stream-exclude-list tr.helper' );
-
- var initSettingsSelect2 = function( $rowsWithSelect2 ) {
- var $input_user;
-
- $( 'select.select2-select.connector_or_context', $rowsWithSelect2 ).each(
- function( k, el ) {
- $( el ).select2(
- {
- allowClear: true,
- templateResult: function( item ) {
- if ( typeof item.id === 'undefined' ) {
- return item.text;
- }
- if ( item.id.indexOf( '-' ) === -1 ) {
- return $( '' + item.text + ' ' );
- }
- return $( '' + item.text + ' ' );
- },
- matcher: function( params, data ) {
- var match = $.extend( true, {}, data );
-
- if ( null === params.term || $.trim( params.term ) === '' ) {
- return match;
- }
-
- var term = params.term.toLowerCase();
-
- match.id = match.id.replace( 'blogs', 'sites' );
- if ( match.id.toLowerCase().indexOf( term ) >= 0 ) {
- return match;
- }
-
- if ( match.children ) {
- for ( var i = match.children.length - 1; i >= 0; i-- ) {
- var child = match.children[i];
-
- // Remove term from results if it doesn't match.
- if ( child.id.toLowerCase().indexOf( term ) === -1 ) {
- match.children.splice( i, 1 );
- }
- }
-
- if ( match.children.length > 0 ) {
- return match;
- }
- }
-
- return null;
- },
- }
- ).on(
- 'change', function() {
- var row = $( this ).closest( 'tr' ),
- connector = $( this ).val();
- if ( connector && 0 < connector.indexOf( '-' ) ) {
- var connector_split = connector.split( '-' );
- connector = connector_split[0];
- }
- getActions( row, connector );
- }
- );
- }
- );
-
- $( 'select.select2-select.action', $rowsWithSelect2 ).each(
- function( k, el ) {
- $( el ).select2(
- {
- allowClear: true,
- }
- );
- }
- );
-
- $( 'select.select2-select.author_or_role', $rowsWithSelect2 ).each(
- function( k, el ) {
- $input_user = $( el );
-
- $input_user.select2(
- {
- ajax: {
- type: 'POST',
- url: ajaxurl,
- dataType: 'json',
- quietMillis: 500,
- data: function( term, page ) {
- return {
- find: term,
- limit: 10,
- pager: page,
- action: 'stream_get_users',
- nonce: $input_user.data( 'nonce' ),
- };
- },
- processResults: function( response ) {
- var answer = {
- results: [
- { text: '', id: '' },
- { text: 'Roles', children: [] },
- { text: 'Users', children: [] },
- ],
- };
-
- if ( true !== response.success || undefined === response.data || true !== response.data.status ) {
- return answer;
- }
-
- if ( undefined === response.data.users || undefined === response.data.roles ) {
- return answer;
- }
-
- var roles = [];
-
- $.each(
- response.data.roles, function( id, text ) {
- roles.push(
- {
- id: id,
- text: text,
- }
- );
- }
- );
-
- answer.results[ 1 ].children = roles;
- answer.results[ 2 ].children = response.data.users;
-
- // Return the value of more so Select2 knows if more results can be loaded
- return answer;
- },
- },
- templateResult: function( object ) {
- var $result = $( '' ).text( object.text );
-
- if ( 'undefined' !== typeof object.icon && object.icon ) {
- $result.prepend( $( '
' ) );
-
- // Add more info to the container
- $result.attr( 'title', object.tooltip );
- }
-
- // Add more info to the container
- if ( 'undefined' !== typeof object.tooltip ) {
- $result.attr( 'title', object.tooltip );
- } else if ( 'undefined' !== typeof object.user_count ) {
- $result.attr( 'title', object.user_count );
- }
-
- return $result;
- },
- templateSelection: function( object ) {
- var $result = $( '
' ).text( object.text );
-
- if ( $.isNumeric( object.id ) && object.text.indexOf( 'icon-users' ) < 0 ) {
- $result.append( $( '
' ) );
- }
-
- return $result;
- },
- allowClear: true,
- placeholder: $input_user.data( 'placeholder' ),
- }
- ).on(
- 'change', function() {
- var value = $( this ).select2( 'data' );
-
- $( this ).data( 'selected-id', value.id );
- $( this ).data( 'selected-text', value.text );
- }
- );
- }
- );
-
- $( 'select.select2-select.ip_address', $rowsWithSelect2 ).each(
- function( k, el ) {
- var $input_ip = $( el ),
- searchTerm = '';
-
- $input_ip.select2(
- {
- ajax: {
- type: 'POST',
- url: ajaxurl,
- dataType: 'json',
- quietMillis: 500,
- data: function( term ) {
- searchTerm = term.term;
- return {
- find: term,
- limit: 10,
- action: 'stream_get_ips',
- nonce: $input_ip.data( 'nonce' ),
- };
- },
- processResults: function( response ) {
- var answer = { results: [] },
- ip_chunks = [];
-
- if ( true === response.success && undefined !== response.data ) {
- $.each(
- response.data, function( key, ip ) {
- answer.results.push(
- {
- id: ip,
- text: ip,
- }
- );
- }
- );
- }
-
- if ( undefined === searchTerm ) {
- return answer;
- }
-
- ip_chunks = searchTerm.match( /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ );
-
- if ( null === ip_chunks ) {
- return answer;
- }
-
- // remove whole match
- ip_chunks.shift();
-
- ip_chunks = $.grep(
- ip_chunks,
- function( chunk ) {
- var numeric = parseInt( chunk, 10 );
- return numeric <= 255 && numeric.toString() === chunk;
- }
- );
-
- if ( ip_chunks.length >= 4 ) {
- answer.results.push(
- {
- id: searchTerm,
- text: searchTerm,
- }
- );
- }
-
- return answer;
- },
- },
- allowClear: false,
- multiple: true,
- maximumSelectionSize: 1,
- placeholder: $input_ip.data( 'placeholder' ),
- tags: true,
- }
- );
- }
- ).on(
- 'change', function() {
- $( this ).prev( '.select2-container' ).find( 'input.select2-input' ).blur();
- }
- );
-
- $( 'ul.select2-choices, ul.select2-choices li, input.select2-input', '.stream-exclude-list tr:not(.hidden) .ip_address' ).on(
- 'mousedown click focus', function() {
- var $container = $( this ).closest( '.select2-container' ),
- $input = $container.find( 'input.select2-input' ),
- value = $container.select2( 'data' );
-
- if ( value.length >= 1 ) {
- $input.blur();
- return false;
- }
- }
- );
-
- $( '.exclude_rules_remove_rule_row', $rowsWithSelect2 ).on(
- 'click', function( e ) {
- var $thisRow = $( this ).closest( 'tr' );
-
- $thisRow.remove();
-
- recalculate_rules_found();
- recalculate_rules_selected();
-
- e.preventDefault();
- }
- );
- };
-
- initSettingsSelect2( $excludeRows );
-
- $( 'select.select2-select.author_or_role', $excludeRows ).each(
- function() {
- var $option = $( '
' + $( this ).data( 'selected-text' ) + ' ' ).val( $( this ).data( 'selected-id' ) );
- $( this ).append( $option ).trigger( 'change' );
- }
- );
-
- $( 'select.select2-select.connector_or_context', $excludeRows ).each(
- function() {
- var parts = [
- $( this ).siblings( '.connector' ).val(),
- $( this ).siblings( '.context' ).val(),
- ];
- if ( parts[1] === '' ) {
- parts.splice( 1, 1 );
- }
- $( this ).val( parts.join( '-' ) ).trigger( 'change' );
- }
- );
-
- $( '#exclude_rules_new_rule' ).on(
- 'click', function() {
- var $newRow = $placeholderRow.clone();
-
- $newRow.removeAttr( 'class' );
- $newRow.insertBefore( $placeholderRow );
-
- initSettingsSelect2( $newRow );
- recalculate_rules_found();
- recalculate_rules_selected();
- }
- );
-
- $( '#exclude_rules_remove_rules' ).on(
- 'click', function() {
- var $excludeList = $( 'table.stream-exclude-list' ),
- selectedRows = $( 'tbody input.cb-select:checked', $excludeList ).closest( 'tr' );
-
- if ( ( $( 'tbody tr', $excludeList ).length - selectedRows.length ) >= 2 ) {
- selectedRows.remove();
- } else {
- $( ':input', selectedRows ).val( '' );
- $( selectedRows ).not( ':first' ).remove();
- $( '.select2-select', selectedRows ).select2( 'val', '' );
- }
-
- $excludeList.find( 'input.cb-select' ).prop( 'checked', false );
-
- recalculate_rules_found();
- recalculate_rules_selected();
- }
- );
-
- $( '.stream-exclude-list' ).closest( 'form' ).submit(
- function() {
- $( '.stream-exclude-list tbody tr.hidden', this ).each(
- function() {
- $( this ).find( ':input' ).removeAttr( 'name' );
- }
- );
- $( '.stream-exclude-list tbody tr:not(.hidden) select.select2-select.connector_or_context', this ).each(
- function() {
- var parts = $( this ).val().split( '-' );
- $( this ).siblings( '.connector' ).val( parts[0] );
- $( this ).siblings( '.context' ).val( parts.slice( 1 ).join( '-' ) );
- $( this ).removeAttr( 'name' );
- }
- );
- $( '.stream-exclude-list tbody tr:not(.hidden) select.select2-select.ip_address', this ).each(
- function() {
- var firstSelected = $( 'option:selected', this ).first();
-
- // Ugly hack to ensure we always pass an empty value or the order of rows gets messed up.
- if ( ! firstSelected.length ) {
- $( this ).append( '
' );
- }
-
- $( 'option:selected:not(:first)', this ).each(
- function() {
- firstSelected.attr( 'value', firstSelected.attr( 'value' ) + ',' + $( this ).attr( 'value' ) );
- $( this ).removeAttr( 'selected' );
- }
- );
- }
- );
- }
- );
-
- $( '.stream-exclude-list' ).closest( 'td' ).prev( 'th' ).hide();
-
- $( 'table.stream-exclude-list' ).on(
- 'click', 'input.cb-select', function() {
- recalculate_rules_selected();
- }
- );
-
- function getActions( row, connector ) {
- var trigger_action = $( '.select2-select.action', row ),
- action_value = trigger_action.val();
-
- trigger_action.empty();
- trigger_action.prop( 'disabled', true );
-
- var placeholder = $( '
', { value: '', text: '' } );
- trigger_action.append( placeholder );
-
- var data = {
- action: 'get_actions',
- connector: connector,
- };
-
- $.post(
- window.ajaxurl, data, function( response ) {
- var success = response.success,
- actions = response.data;
- if ( ! success ) {
- return;
- }
- for ( var key in actions ) {
- if ( actions.hasOwnProperty( key ) ) {
- var value = actions[key];
- var option = $( '
', { value: key, text: value } );
- trigger_action.append( option );
- }
- }
- trigger_action.val( action_value );
- trigger_action.prop( 'disabled', false );
- $( document ).trigger( 'alert-actions-updated' );
- }
- );
- }
-
- function recalculate_rules_selected() {
- var $selectedRows = $( 'table.stream-exclude-list tbody tr:not( .hidden ) input.cb-select:checked' ),
- $deleteButton = $( '#exclude_rules_remove_rules' );
-
- if ( 0 === $selectedRows.length ) {
- $deleteButton.prop( 'disabled', true );
- } else {
- $deleteButton.prop( 'disabled', false );
- }
- }
-
- function recalculate_rules_found() {
- var $allRows = $( 'table.stream-exclude-list tbody tr:not( .hidden )' ),
- $noRulesFound = $( 'table.stream-exclude-list tbody tr.no-items' ),
- $selectAll = $( '.check-column.manage-column input.cb-select' ),
- $deleteButton = $( '#exclude_rules_remove_rules' );
-
- if ( 0 === $allRows.length ) {
- $noRulesFound.show();
- $selectAll.prop( 'disabled', true );
- $deleteButton.prop( 'disabled', true );
- } else {
- $noRulesFound.hide();
- $selectAll.prop( 'disabled', false );
- }
-
- wp_stream_regenerate_alt_rows( $allRows );
- }
-
- $( document ).ready(
- function() {
- recalculate_rules_found();
- recalculate_rules_selected();
- }
- );
- }
-);
diff --git a/ui/js/global.js b/ui/js/global.js
deleted file mode 100644
index 92d54927a..000000000
--- a/ui/js/global.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/* globals jQuery, wp_stream_global */
-/* exported wp_stream_regenerate_alt_rows */
-jQuery(
- function( $ ) {
- // List table actions, ignores filtering
- $( '.actions :submit:not([name="filter_action"])' ).on(
- 'click', function( e ) {
- if ( $( 'table.widefat tbody :checkbox:checked' ).length > wp_stream_global.bulk_actions.threshold ) {
- warning_message( e );
- }
- }
- );
-
- // Post type empty trash
- $( '#delete_all' ).on(
- 'click', function( e ) {
- var trash_count = parseInt( $( 'ul.subsubsub li.trash .count' ).text().replace( /\D/g, '' ), 10 );
-
- if ( trash_count > wp_stream_global.bulk_actions.threshold ) {
- warning_message( e );
- }
- }
- );
-
- function warning_message( e ) {
- if ( ! window.confirm( wp_stream_global.bulk_actions.i18n.confirm_action ) ) {
- e.preventDefault();
- }
- }
- }
-);
-
-// Regenerate alternating row classes
-var wp_stream_regenerate_alt_rows = function( $rows ) {
- if ( ! $rows.length ) {
- return false;
- }
-
- $rows.removeClass( 'alternate' );
-
- $rows.each(
- function( index ) {
- jQuery( this ).addClass( index % 2 ? '' : 'alternate' );
- }
- );
-};
diff --git a/ui/js/live-updates.js b/ui/js/live-updates.js
deleted file mode 100644
index 49093a581..000000000
--- a/ui/js/live-updates.js
+++ /dev/null
@@ -1,118 +0,0 @@
-/* globals jQuery, wp, wp_stream_live_updates, wp_stream_regenerate_alt_rows */
-jQuery(
- function( $ ) {
- $( document ).ready(
- function() {
- // Only run on wp_stream when page is 1 and the order is desc
- if ( 'toplevel_page_wp_stream' !== wp_stream_live_updates.current_screen || '1' !== wp_stream_live_updates.current_page || 'asc' === wp_stream_live_updates.current_order ) {
- return;
- }
-
- // Do not run if there are filters in use
- if ( parseInt( wp_stream_live_updates.current_query_count, 10 ) > 1 ) {
- return;
- }
-
- var list_sel = '.toplevel_page_wp_stream #the-list';
-
- // Set initial beat to fast. WP is designed to slow this to 15 seconds after 2.5 minutes.
- wp.heartbeat.interval( 'fast' );
-
- $( document ).on(
- 'heartbeat-send.stream', function( e, data ) {
- data['wp-stream-heartbeat'] = 'live-update';
-
- var last_item = $( list_sel + ' tr:first .column-date time' ),
- last_time = 1;
-
- if ( 0 !== last_item.length ) {
- last_time = ( '' === last_item.attr( 'datetime' ) ) ? 1 : last_item.attr( 'datetime' );
- }
-
- data['wp-stream-heartbeat-last-time'] = last_time;
- data['wp-stream-heartbeat-query'] = wp_stream_live_updates.current_query;
- }
- );
-
- // Listen for "heartbeat-tick" on $(document).
- $( document ).on(
- 'heartbeat-tick.stream', function( e, data ) {
- // If this no rows return then we kill the script
- if ( ! data['wp-stream-heartbeat'] || 0 === data['wp-stream-heartbeat'].length ) {
- return;
- }
-
- var show_on_screen = $( '#edit_stream_per_page' ).val(),
- $current_items = $( list_sel + ' tr' ),
- $new_items = $( data['wp-stream-heartbeat'] );
-
- // Remove all default classes and add class to highlight new rows
- $new_items.addClass( 'new-row' );
-
- // Check if first tr has the alternate class
- var has_class = ( $current_items.first().hasClass( 'alternate' ) );
-
- // Apply the good class to the list
- if ( 1 === $new_items.length && ! has_class ) {
- $new_items.addClass( 'alternate' );
- } else {
- var even_or_odd = ( 0 === $new_items.length % 2 && ! has_class ) ? 'even' : 'odd';
- // Add class to nth child because there is more than one element
- $new_items.filter( ':nth-child(' + even_or_odd + ')' ).addClass( 'alternate' );
- }
-
- // Add element to the dom
- $( list_sel ).prepend( $new_items );
-
- $( '.metabox-prefs input' ).each(
- function() {
- if ( true !== $( this ).prop( 'checked' ) ) {
- var label = $( this ).val();
- $( 'td.column-' + label ).hide();
- }
- }
- );
-
- // Remove the number of element added to the end of the list table
- var slice_rows = show_on_screen - ( $new_items.length + $current_items.length );
-
- if ( slice_rows < 0 ) {
- $( list_sel + ' tr' ).slice( slice_rows ).remove();
- }
-
- // Remove the no items row
- $( list_sel + ' tr.no-items' ).remove();
-
- // Update pagination
- var total_items_i18n = data.total_items_i18n || '';
-
- if ( total_items_i18n ) {
- $( '.displaying-num' ).text( total_items_i18n );
- $( '.total-pages' ).text( data.total_pages_i18n );
- $( '.tablenav-pages' ).find( '.next-page, .last-page' ).toggleClass( 'disabled', data.total_pages === $( '.current-page' ).val() );
- $( '.tablenav-pages .last-page' ).attr( 'href', data.last_page_link );
- }
-
- // Allow others to hook in, ie: timeago
- $( list_sel ).parent().trigger( 'updated' );
-
- // Regenerate alternating row classes
- wp_stream_regenerate_alt_rows( $( list_sel + ' tr' ) );
-
- // Remove background after a certain amount of time
- setTimeout(
- function() {
- $( '.new-row' ).addClass( 'fadeout' );
- setTimeout(
- function() {
- $( list_sel + ' tr' ).removeClass( 'new-row fadeout' );
- }, 500
- );
- }, 3000
- );
- }
- );
- }
- );
- }
-);
diff --git a/ui/js/settings.js b/ui/js/settings.js
deleted file mode 100644
index fdeb8349b..000000000
--- a/ui/js/settings.js
+++ /dev/null
@@ -1,83 +0,0 @@
-/* globals jQuery, wp_stream */
-jQuery(
- function( $ ) {
- var network_affix;
- if ( 'wp_stream_network' === $( 'input[name="option_page"]' ).val() ) {
- network_affix = '_network_affix';
- } else {
- network_affix = '';
- }
- var keepRecordsIndefinitely = $( '#wp_stream' + network_affix + '\\[general_keep_records_indefinitely\\]' ),
- keepRecordsFor = $( '#wp_stream' + network_affix + '_general_records_ttl' ),
- keepRecordsForRow = keepRecordsFor.closest( 'tr' );
-
- function toggleKeepRecordsFor() {
- if ( keepRecordsIndefinitely.is( ':checked' ) ) {
- keepRecordsForRow.addClass( 'hidden' );
- keepRecordsFor.addClass( 'hidden' );
- } else {
- keepRecordsForRow.removeClass( 'hidden' );
- keepRecordsFor.removeClass( 'hidden' );
- }
- }
-
- keepRecordsIndefinitely.on(
- 'change', function() {
- toggleKeepRecordsFor();
- }
- );
-
- toggleKeepRecordsFor();
-
- // Confirmation on some important actions
- $( '#wp_stream_general_reset_site_settings' ).click(
- function( e ) {
- if ( ! confirm( wp_stream.i18n.confirm_defaults ) ) {
- e.preventDefault();
- }
- }
- );
-
- // Settings page tabs
- var $tabs = $( '.nav-tab-wrapper' ),
- $panels = $( '.nav-tab-content table.form-table' ),
- $activeTab = $tabs.find( '.nav-tab-active' ),
- defaultIndex = $activeTab.length > 0 ? $tabs.find( 'a' ).index( $activeTab ) : 0,
- hashIndexStart = window.location.hash.match( /^#(\d+)$/ ),
- currentHash = ( null !== hashIndexStart ? hashIndexStart[ 1 ] : defaultIndex ),
- syncFormAction = function( index ) {
- var $optionsForm = $( 'input[name="option_page"][value^="wp_stream"]' ).closest( 'form' );
- if ( $optionsForm.length === 0 ) {
- return;
- }
- var currentAction = $optionsForm.attr( 'action' );
-
- $optionsForm.prop( 'action', currentAction.replace( /(^[^#]*).*$/, '$1#' + index ) );
- };
-
- $tabs.on(
- 'click', 'a', function() {
- var index = $tabs.find( 'a' ).index( $( this ) ),
- hashIndex = window.location.hash.match( /^#(\d+)$/ );
-
- $panels.hide().eq( index ).show();
-
- $tabs
- .find( 'a' )
- .removeClass( 'nav-tab-active' )
- .filter( $( this ) )
- .addClass( 'nav-tab-active' );
-
- if ( '' === window.location.hash || null !== hashIndex ) {
- window.location.hash = index;
- }
-
- syncFormAction( index );
-
- return false;
- }
- );
-
- $tabs.children().eq( currentHash ).trigger( 'click' );
- }
-);
diff --git a/ui/js/wpseo-admin.js b/ui/js/wpseo-admin.js
deleted file mode 100644
index 714c3171c..000000000
--- a/ui/js/wpseo-admin.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/* globals jQuery */
-jQuery(
- function( $ ) {
- var highlight, input, tab;
-
- if ( window.location.hash.substr( 'stream-highlight-' ) ) {
- highlight = window.location.hash.replace( 'stream-highlight-', '' );
- input = $( ':input' + highlight );
-
- window.location.hash = '';
-
- if ( input.length ) {
- if ( $( '#wpseo-tabs' ).length ) {
- tab = input.parents( '.wpseotab' ).first().attr( 'id' );
- window.location.hash = '#top#' + tab;
- }
-
- jQuery( document ).ready(
- function() {
- setTimeout(
- function() {
- $( 'body,html' ).animate(
- { scrollTop: input.offset().top - 50 },
- 'slow',
- function() {
- input.animate( { backgroundColor: 'yellow' }, 'slow' );
- }
- );
- }, 500
- );
- }
- );
- }
- }
- }
-);
diff --git a/ui/lib/select2/css/select2.css b/ui/lib/select2/css/select2.css
deleted file mode 100644
index 750b3207a..000000000
--- a/ui/lib/select2/css/select2.css
+++ /dev/null
@@ -1,481 +0,0 @@
-.select2-container {
- box-sizing: border-box;
- display: inline-block;
- margin: 0;
- position: relative;
- vertical-align: middle; }
- .select2-container .select2-selection--single {
- box-sizing: border-box;
- cursor: pointer;
- display: block;
- height: 28px;
- user-select: none;
- -webkit-user-select: none; }
- .select2-container .select2-selection--single .select2-selection__rendered {
- display: block;
- padding-left: 8px;
- padding-right: 20px;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap; }
- .select2-container .select2-selection--single .select2-selection__clear {
- position: relative; }
- .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
- padding-right: 8px;
- padding-left: 20px; }
- .select2-container .select2-selection--multiple {
- box-sizing: border-box;
- cursor: pointer;
- display: block;
- min-height: 32px;
- user-select: none;
- -webkit-user-select: none; }
- .select2-container .select2-selection--multiple .select2-selection__rendered {
- display: inline-block;
- overflow: hidden;
- padding-left: 8px;
- text-overflow: ellipsis;
- white-space: nowrap; }
- .select2-container .select2-search--inline {
- float: left; }
- .select2-container .select2-search--inline .select2-search__field {
- box-sizing: border-box;
- border: none;
- font-size: 100%;
- margin-top: 5px;
- padding: 0; }
- .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
- -webkit-appearance: none; }
-
-.select2-dropdown {
- background-color: white;
- border: 1px solid #aaa;
- border-radius: 4px;
- box-sizing: border-box;
- display: block;
- position: absolute;
- left: -100000px;
- width: 100%;
- z-index: 1051; }
-
-.select2-results {
- display: block; }
-
-.select2-results__options {
- list-style: none;
- margin: 0;
- padding: 0; }
-
-.select2-results__option {
- padding: 6px;
- user-select: none;
- -webkit-user-select: none; }
- .select2-results__option[aria-selected] {
- cursor: pointer; }
-
-.select2-container--open .select2-dropdown {
- left: 0; }
-
-.select2-container--open .select2-dropdown--above {
- border-bottom: none;
- border-bottom-left-radius: 0;
- border-bottom-right-radius: 0; }
-
-.select2-container--open .select2-dropdown--below {
- border-top: none;
- border-top-left-radius: 0;
- border-top-right-radius: 0; }
-
-.select2-search--dropdown {
- display: block;
- padding: 4px; }
- .select2-search--dropdown .select2-search__field {
- padding: 4px;
- width: 100%;
- box-sizing: border-box; }
- .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
- -webkit-appearance: none; }
- .select2-search--dropdown.select2-search--hide {
- display: none; }
-
-.select2-close-mask {
- border: 0;
- margin: 0;
- padding: 0;
- display: block;
- position: fixed;
- left: 0;
- top: 0;
- min-height: 100%;
- min-width: 100%;
- height: auto;
- width: auto;
- opacity: 0;
- z-index: 99;
- background-color: #fff;
- filter: alpha(opacity=0); }
-
-.select2-hidden-accessible {
- border: 0 !important;
- clip: rect(0 0 0 0) !important;
- -webkit-clip-path: inset(50%) !important;
- clip-path: inset(50%) !important;
- height: 1px !important;
- overflow: hidden !important;
- padding: 0 !important;
- position: absolute !important;
- width: 1px !important;
- white-space: nowrap !important; }
-
-.select2-container--default .select2-selection--single {
- background-color: #fff;
- border: 1px solid #aaa;
- border-radius: 4px; }
- .select2-container--default .select2-selection--single .select2-selection__rendered {
- color: #444;
- line-height: 28px; }
- .select2-container--default .select2-selection--single .select2-selection__clear {
- cursor: pointer;
- float: right;
- font-weight: bold; }
- .select2-container--default .select2-selection--single .select2-selection__placeholder {
- color: #999; }
- .select2-container--default .select2-selection--single .select2-selection__arrow {
- height: 26px;
- position: absolute;
- top: 1px;
- right: 1px;
- width: 20px; }
- .select2-container--default .select2-selection--single .select2-selection__arrow b {
- border-color: #888 transparent transparent transparent;
- border-style: solid;
- border-width: 5px 4px 0 4px;
- height: 0;
- left: 50%;
- margin-left: -4px;
- margin-top: -2px;
- position: absolute;
- top: 50%;
- width: 0; }
-
-.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
- float: left; }
-
-.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
- left: 1px;
- right: auto; }
-
-.select2-container--default.select2-container--disabled .select2-selection--single {
- background-color: #eee;
- cursor: default; }
- .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
- display: none; }
-
-.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
- border-color: transparent transparent #888 transparent;
- border-width: 0 4px 5px 4px; }
-
-.select2-container--default .select2-selection--multiple {
- background-color: white;
- border: 1px solid #aaa;
- border-radius: 4px;
- cursor: text; }
- .select2-container--default .select2-selection--multiple .select2-selection__rendered {
- box-sizing: border-box;
- list-style: none;
- margin: 0;
- padding: 0 5px;
- width: 100%; }
- .select2-container--default .select2-selection--multiple .select2-selection__rendered li {
- list-style: none; }
- .select2-container--default .select2-selection--multiple .select2-selection__clear {
- cursor: pointer;
- float: right;
- font-weight: bold;
- margin-top: 5px;
- margin-right: 10px;
- padding: 1px; }
- .select2-container--default .select2-selection--multiple .select2-selection__choice {
- background-color: #e4e4e4;
- border: 1px solid #aaa;
- border-radius: 4px;
- cursor: default;
- float: left;
- margin-right: 5px;
- margin-top: 5px;
- padding: 0 5px; }
- .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
- color: #999;
- cursor: pointer;
- display: inline-block;
- font-weight: bold;
- margin-right: 2px; }
- .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
- color: #333; }
-
-.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
- float: right; }
-
-.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
- margin-left: 5px;
- margin-right: auto; }
-
-.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
- margin-left: 2px;
- margin-right: auto; }
-
-.select2-container--default.select2-container--focus .select2-selection--multiple {
- border: solid black 1px;
- outline: 0; }
-
-.select2-container--default.select2-container--disabled .select2-selection--multiple {
- background-color: #eee;
- cursor: default; }
-
-.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
- display: none; }
-
-.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
- border-top-left-radius: 0;
- border-top-right-radius: 0; }
-
-.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
- border-bottom-left-radius: 0;
- border-bottom-right-radius: 0; }
-
-.select2-container--default .select2-search--dropdown .select2-search__field {
- border: 1px solid #aaa; }
-
-.select2-container--default .select2-search--inline .select2-search__field {
- background: transparent;
- border: none;
- outline: 0;
- box-shadow: none;
- -webkit-appearance: textfield; }
-
-.select2-container--default .select2-results > .select2-results__options {
- max-height: 200px;
- overflow-y: auto; }
-
-.select2-container--default .select2-results__option[role=group] {
- padding: 0; }
-
-.select2-container--default .select2-results__option[aria-disabled=true] {
- color: #999; }
-
-.select2-container--default .select2-results__option[aria-selected=true] {
- background-color: #ddd; }
-
-.select2-container--default .select2-results__option .select2-results__option {
- padding-left: 1em; }
- .select2-container--default .select2-results__option .select2-results__option .select2-results__group {
- padding-left: 0; }
- .select2-container--default .select2-results__option .select2-results__option .select2-results__option {
- margin-left: -1em;
- padding-left: 2em; }
- .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
- margin-left: -2em;
- padding-left: 3em; }
- .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
- margin-left: -3em;
- padding-left: 4em; }
- .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
- margin-left: -4em;
- padding-left: 5em; }
- .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
- margin-left: -5em;
- padding-left: 6em; }
-
-.select2-container--default .select2-results__option--highlighted[aria-selected] {
- background-color: #5897fb;
- color: white; }
-
-.select2-container--default .select2-results__group {
- cursor: default;
- display: block;
- padding: 6px; }
-
-.select2-container--classic .select2-selection--single {
- background-color: #f7f7f7;
- border: 1px solid #aaa;
- border-radius: 4px;
- outline: 0;
- background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
- background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
- background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
- background-repeat: repeat-x;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
- .select2-container--classic .select2-selection--single:focus {
- border: 1px solid #5897fb; }
- .select2-container--classic .select2-selection--single .select2-selection__rendered {
- color: #444;
- line-height: 28px; }
- .select2-container--classic .select2-selection--single .select2-selection__clear {
- cursor: pointer;
- float: right;
- font-weight: bold;
- margin-right: 10px; }
- .select2-container--classic .select2-selection--single .select2-selection__placeholder {
- color: #999; }
- .select2-container--classic .select2-selection--single .select2-selection__arrow {
- background-color: #ddd;
- border: none;
- border-left: 1px solid #aaa;
- border-top-right-radius: 4px;
- border-bottom-right-radius: 4px;
- height: 26px;
- position: absolute;
- top: 1px;
- right: 1px;
- width: 20px;
- background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
- background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
- background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
- background-repeat: repeat-x;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }
- .select2-container--classic .select2-selection--single .select2-selection__arrow b {
- border-color: #888 transparent transparent transparent;
- border-style: solid;
- border-width: 5px 4px 0 4px;
- height: 0;
- left: 50%;
- margin-left: -4px;
- margin-top: -2px;
- position: absolute;
- top: 50%;
- width: 0; }
-
-.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
- float: left; }
-
-.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
- border: none;
- border-right: 1px solid #aaa;
- border-radius: 0;
- border-top-left-radius: 4px;
- border-bottom-left-radius: 4px;
- left: 1px;
- right: auto; }
-
-.select2-container--classic.select2-container--open .select2-selection--single {
- border: 1px solid #5897fb; }
- .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
- background: transparent;
- border: none; }
- .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
- border-color: transparent transparent #888 transparent;
- border-width: 0 4px 5px 4px; }
-
-.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
- border-top: none;
- border-top-left-radius: 0;
- border-top-right-radius: 0;
- background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
- background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
- background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
- background-repeat: repeat-x;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
-
-.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
- border-bottom: none;
- border-bottom-left-radius: 0;
- border-bottom-right-radius: 0;
- background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
- background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
- background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
- background-repeat: repeat-x;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }
-
-.select2-container--classic .select2-selection--multiple {
- background-color: white;
- border: 1px solid #aaa;
- border-radius: 4px;
- cursor: text;
- outline: 0; }
- .select2-container--classic .select2-selection--multiple:focus {
- border: 1px solid #5897fb; }
- .select2-container--classic .select2-selection--multiple .select2-selection__rendered {
- list-style: none;
- margin: 0;
- padding: 0 5px; }
- .select2-container--classic .select2-selection--multiple .select2-selection__clear {
- display: none; }
- .select2-container--classic .select2-selection--multiple .select2-selection__choice {
- background-color: #e4e4e4;
- border: 1px solid #aaa;
- border-radius: 4px;
- cursor: default;
- float: left;
- margin-right: 5px;
- margin-top: 5px;
- padding: 0 5px; }
- .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
- color: #888;
- cursor: pointer;
- display: inline-block;
- font-weight: bold;
- margin-right: 2px; }
- .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
- color: #555; }
-
-.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
- float: right;
- margin-left: 5px;
- margin-right: auto; }
-
-.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
- margin-left: 2px;
- margin-right: auto; }
-
-.select2-container--classic.select2-container--open .select2-selection--multiple {
- border: 1px solid #5897fb; }
-
-.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
- border-top: none;
- border-top-left-radius: 0;
- border-top-right-radius: 0; }
-
-.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
- border-bottom: none;
- border-bottom-left-radius: 0;
- border-bottom-right-radius: 0; }
-
-.select2-container--classic .select2-search--dropdown .select2-search__field {
- border: 1px solid #aaa;
- outline: 0; }
-
-.select2-container--classic .select2-search--inline .select2-search__field {
- outline: 0;
- box-shadow: none; }
-
-.select2-container--classic .select2-dropdown {
- background-color: white;
- border: 1px solid transparent; }
-
-.select2-container--classic .select2-dropdown--above {
- border-bottom: none; }
-
-.select2-container--classic .select2-dropdown--below {
- border-top: none; }
-
-.select2-container--classic .select2-results > .select2-results__options {
- max-height: 200px;
- overflow-y: auto; }
-
-.select2-container--classic .select2-results__option[role=group] {
- padding: 0; }
-
-.select2-container--classic .select2-results__option[aria-disabled=true] {
- color: grey; }
-
-.select2-container--classic .select2-results__option--highlighted[aria-selected] {
- background-color: #3875d7;
- color: white; }
-
-.select2-container--classic .select2-results__group {
- cursor: default;
- display: block;
- padding: 6px; }
-
-.select2-container--classic.select2-container--open .select2-dropdown {
- border-color: #5897fb; }
diff --git a/ui/lib/select2/css/select2.min.css b/ui/lib/select2/css/select2.min.css
deleted file mode 100644
index 7c18ad59d..000000000
--- a/ui/lib/select2/css/select2.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
diff --git a/ui/lib/select2/js/i18n/af.js b/ui/lib/select2/js/i18n/af.js
deleted file mode 100644
index 32e5ac7de..000000000
--- a/ui/lib/select2/js/i18n/af.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/af",[],function(){return{errorLoading:function(){return"Die resultate kon nie gelaai word nie."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Verwyders asseblief "+n+" character";return 1!=n&&(r+="s"),r},inputTooShort:function(e){return"Voer asseblief "+(e.minimum-e.input.length)+" of meer karakters"},loadingMore:function(){return"Meer resultate word gelaai…"},maximumSelected:function(e){var n="Kies asseblief net "+e.maximum+" item";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"Geen resultate gevind"},searching:function(){return"Besig…"},removeAllItems:function(){return"Verwyder alle items"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/ar.js b/ui/lib/select2/js/i18n/ar.js
deleted file mode 100644
index 64e1caad3..000000000
--- a/ui/lib/select2/js/i18n/ar.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(n){return"الرجاء حذف "+(n.input.length-n.maximum)+" عناصر"},inputTooShort:function(n){return"الرجاء إضافة "+(n.minimum-n.input.length)+" عناصر"},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(n){return"تستطيع إختيار "+n.maximum+" بنود فقط"},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"},removeAllItems:function(){return"قم بإزالة كل العناصر"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/az.js b/ui/lib/select2/js/i18n/az.js
deleted file mode 100644
index 1d52c260f..000000000
--- a/ui/lib/select2/js/i18n/az.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/az",[],function(){return{inputTooLong:function(n){return n.input.length-n.maximum+" simvol silin"},inputTooShort:function(n){return n.minimum-n.input.length+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(n){return"Sadəcə "+n.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"},removeAllItems:function(){return"Bütün elementləri sil"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/bg.js b/ui/lib/select2/js/i18n/bg.js
deleted file mode 100644
index 73b730a70..000000000
--- a/ui/lib/select2/js/i18n/bg.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bg",[],function(){return{inputTooLong:function(n){var e=n.input.length-n.maximum,u="Моля въведете с "+e+" по-малко символ";return e>1&&(u+="a"),u},inputTooShort:function(n){var e=n.minimum-n.input.length,u="Моля въведете още "+e+" символ";return e>1&&(u+="a"),u},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(n){var e="Можете да направите до "+n.maximum+" ";return n.maximum>1?e+="избора":e+="избор",e},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"},removeAllItems:function(){return"Премахнете всички елементи"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/bn.js b/ui/lib/select2/js/i18n/bn.js
deleted file mode 100644
index 2d17b9d8e..000000000
--- a/ui/lib/select2/js/i18n/bn.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bn",[],function(){return{errorLoading:function(){return"ফলাফলগুলি লোড করা যায়নি।"},inputTooLong:function(n){var e=n.input.length-n.maximum,u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।";return 1!=e&&(u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।"),u},inputTooShort:function(n){return n.minimum-n.input.length+" টি অক্ষর অথবা অধিক অক্ষর লিখুন।"},loadingMore:function(){return"আরো ফলাফল লোড হচ্ছে ..."},maximumSelected:function(n){var e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।";return 1!=n.maximum&&(e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।"),e},noResults:function(){return"কোন ফলাফল পাওয়া যায়নি।"},searching:function(){return"অনুসন্ধান করা হচ্ছে ..."}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/bs.js b/ui/lib/select2/js/i18n/bs.js
deleted file mode 100644
index 46b084d75..000000000
--- a/ui/lib/select2/js/i18n/bs.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/bs",[],function(){function e(e,n,r,t){return e%10==1&&e%100!=11?n:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?r:t}return{errorLoading:function(){return"Preuzimanje nije uspijelo."},inputTooLong:function(n){var r=n.input.length-n.maximum,t="Obrišite "+r+" simbol";return t+=e(r,"","a","a")},inputTooShort:function(n){var r=n.minimum-n.input.length,t="Ukucajte bar još "+r+" simbol";return t+=e(r,"","a","a")},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(n){var r="Možete izabrati samo "+n.maximum+" stavk";return r+=e(n.maximum,"u","e","i")},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Uklonite sve stavke"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/ca.js b/ui/lib/select2/js/i18n/ca.js
deleted file mode 100644
index 82dbbb7a2..000000000
--- a/ui/lib/select2/js/i18n/ca.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Si us plau, elimina "+n+" car";return r+=1==n?"àcter":"àcters"},inputTooShort:function(e){var n=e.minimum-e.input.length,r="Si us plau, introdueix "+n+" car";return r+=1==n?"àcter":"àcters"},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var n="Només es pot seleccionar "+e.maximum+" element";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"},removeAllItems:function(){return"Treu tots els elements"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/cs.js b/ui/lib/select2/js/i18n/cs.js
deleted file mode 100644
index 7116d6c1d..000000000
--- a/ui/lib/select2/js/i18n/cs.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/cs",[],function(){function e(e,n){switch(e){case 2:return n?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?"Prosím, zadejte o jeden znak méně.":t<=4?"Prosím, zadejte o "+e(t,!0)+" znaky méně.":"Prosím, zadejte o "+t+" znaků méně."},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?"Prosím, zadejte ještě jeden znak.":t<=4?"Prosím, zadejte ještě další "+e(t,!0)+" znaky.":"Prosím, zadejte ještě dalších "+t+" znaků."},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(n){var t=n.maximum;return 1==t?"Můžete zvolit jen jednu položku.":t<=4?"Můžete zvolit maximálně "+e(t,!1)+" položky.":"Můžete zvolit maximálně "+t+" položek."},noResults:function(){return"Nenalezeny žádné položky."},searching:function(){return"Vyhledávání…"},removeAllItems:function(){return"Odstraňte všechny položky"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/da.js b/ui/lib/select2/js/i18n/da.js
deleted file mode 100644
index cda32c34a..000000000
--- a/ui/lib/select2/js/i18n/da.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){return"Angiv venligst "+(e.input.length-e.maximum)+" tegn mindre"},inputTooShort:function(e){return"Angiv venligst "+(e.minimum-e.input.length)+" tegn mere"},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var n="Du kan kun vælge "+e.maximum+" emne";return 1!=e.maximum&&(n+="r"),n},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"},removeAllItems:function(){return"Fjern alle elementer"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/de.js b/ui/lib/select2/js/i18n/de.js
deleted file mode 100644
index c2e61e580..000000000
--- a/ui/lib/select2/js/i18n/de.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/de",[],function(){return{errorLoading:function(){return"Die Ergebnisse konnten nicht geladen werden."},inputTooLong:function(e){return"Bitte "+(e.input.length-e.maximum)+" Zeichen weniger eingeben"},inputTooShort:function(e){return"Bitte "+(e.minimum-e.input.length)+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var n="Sie können nur "+e.maximum+" Element";return 1!=e.maximum&&(n+="e"),n+=" auswählen"},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"},removeAllItems:function(){return"Entferne alle Elemente"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/dsb.js b/ui/lib/select2/js/i18n/dsb.js
deleted file mode 100644
index 02f283aba..000000000
--- a/ui/lib/select2/js/i18n/dsb.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/dsb",[],function(){var n=["znamuško","znamušce","znamuška","znamuškow"],e=["zapisk","zapiska","zapiski","zapiskow"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return"Wuslědki njejsu se dali zacytaś."},inputTooLong:function(e){var a=e.input.length-e.maximum;return"Pšosym lašuj "+a+" "+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return"Pšosym zapódaj nanejmjenjej "+a+" "+u(a,n)},loadingMore:function(){return"Dalšne wuslědki se zacytaju…"},maximumSelected:function(n){return"Móžoš jano "+n.maximum+" "+u(n.maximum,e)+"wubraś."},noResults:function(){return"Žedne wuslědki namakane"},searching:function(){return"Pyta se…"},removeAllItems:function(){return"Remove all items"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/el.js b/ui/lib/select2/js/i18n/el.js
deleted file mode 100644
index d4922a1df..000000000
--- a/ui/lib/select2/js/i18n/el.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(n){var e=n.input.length-n.maximum,u="Παρακαλώ διαγράψτε "+e+" χαρακτήρ";return 1==e&&(u+="α"),1!=e&&(u+="ες"),u},inputTooShort:function(n){return"Παρακαλώ συμπληρώστε "+(n.minimum-n.input.length)+" ή περισσότερους χαρακτήρες"},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(n){var e="Μπορείτε να επιλέξετε μόνο "+n.maximum+" επιλογ";return 1==n.maximum&&(e+="ή"),1!=n.maximum&&(e+="ές"),e},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"},removeAllItems:function(){return"Καταργήστε όλα τα στοιχεία"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/en.js b/ui/lib/select2/js/i18n/en.js
deleted file mode 100644
index 3b1928573..000000000
--- a/ui/lib/select2/js/i18n/en.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Please delete "+n+" character";return 1!=n&&(r+="s"),r},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var n="You can only select "+e.maximum+" item";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No results found"},searching:function(){return"Searching…"},removeAllItems:function(){return"Remove all items"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/es.js b/ui/lib/select2/js/i18n/es.js
deleted file mode 100644
index 68afd6d25..000000000
--- a/ui/lib/select2/js/i18n/es.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"No se pudieron cargar los resultados"},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Por favor, elimine "+n+" car";return r+=1==n?"ácter":"acteres"},inputTooShort:function(e){var n=e.minimum-e.input.length,r="Por favor, introduzca "+n+" car";return r+=1==n?"ácter":"acteres"},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var n="Sólo puede seleccionar "+e.maximum+" elemento";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Eliminar todos los elementos"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/et.js b/ui/lib/select2/js/i18n/et.js
deleted file mode 100644
index 070b61a26..000000000
--- a/ui/lib/select2/js/i18n/et.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var n=e.input.length-e.maximum,t="Sisesta "+n+" täht";return 1!=n&&(t+="e"),t+=" vähem"},inputTooShort:function(e){var n=e.minimum-e.input.length,t="Sisesta "+n+" täht";return 1!=n&&(t+="e"),t+=" rohkem"},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var n="Saad vaid "+e.maximum+" tulemus";return 1==e.maximum?n+="e":n+="t",n+=" valida"},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"},removeAllItems:function(){return"Eemalda kõik esemed"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/eu.js b/ui/lib/select2/js/i18n/eu.js
deleted file mode 100644
index 90d5e73f8..000000000
--- a/ui/lib/select2/js/i18n/eu.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return n+=1==t?"karaktere bat":t+" karaktere",n+=" gutxiago"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return n+=1==t?"karaktere bat":t+" karaktere",n+=" gehiago"},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return 1===e.maximum?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"},removeAllItems:function(){return"Kendu elementu guztiak"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/fa.js b/ui/lib/select2/js/i18n/fa.js
deleted file mode 100644
index e1ffdbed0..000000000
--- a/ui/lib/select2/js/i18n/fa.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(n){return"لطفاً "+(n.input.length-n.maximum)+" کاراکتر را حذف نمایید"},inputTooShort:function(n){return"لطفاً تعداد "+(n.minimum-n.input.length)+" کاراکتر یا بیشتر وارد نمایید"},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(n){return"شما تنها میتوانید "+n.maximum+" آیتم را انتخاب نمایید"},noResults:function(){return"هیچ نتیجهای یافت نشد"},searching:function(){return"در حال جستجو..."},removeAllItems:function(){return"همه موارد را حذف کنید"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/fi.js b/ui/lib/select2/js/i18n/fi.js
deleted file mode 100644
index ffed1247d..000000000
--- a/ui/lib/select2/js/i18n/fi.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/fi",[],function(){return{errorLoading:function(){return"Tuloksia ei saatu ladattua."},inputTooLong:function(n){return"Ole hyvä ja anna "+(n.input.length-n.maximum)+" merkkiä vähemmän"},inputTooShort:function(n){return"Ole hyvä ja anna "+(n.minimum-n.input.length)+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(n){return"Voit valita ainoastaan "+n.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){return"Haetaan…"},removeAllItems:function(){return"Poista kaikki kohteet"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/fr.js b/ui/lib/select2/js/i18n/fr.js
deleted file mode 100644
index dd02f973f..000000000
--- a/ui/lib/select2/js/i18n/fr.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var n=e.input.length-e.maximum;return"Supprimez "+n+" caractère"+(n>1?"s":"")},inputTooShort:function(e){var n=e.minimum-e.input.length;return"Saisissez au moins "+n+" caractère"+(n>1?"s":"")},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){return"Vous pouvez seulement sélectionner "+e.maximum+" élément"+(e.maximum>1?"s":"")},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"},removeAllItems:function(){return"Supprimer tous les éléments"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/gl.js b/ui/lib/select2/js/i18n/gl.js
deleted file mode 100644
index 208a00570..000000000
--- a/ui/lib/select2/js/i18n/gl.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/gl",[],function(){return{errorLoading:function(){return"Non foi posíbel cargar os resultados."},inputTooLong:function(e){var n=e.input.length-e.maximum;return 1===n?"Elimine un carácter":"Elimine "+n+" caracteres"},inputTooShort:function(e){var n=e.minimum-e.input.length;return 1===n?"Engada un carácter":"Engada "+n+" caracteres"},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){return 1===e.maximum?"Só pode seleccionar un elemento":"Só pode seleccionar "+e.maximum+" elementos"},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Elimina todos os elementos"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/he.js b/ui/lib/select2/js/i18n/he.js
deleted file mode 100644
index 25a8805aa..000000000
--- a/ui/lib/select2/js/i18n/he.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(n){var e=n.input.length-n.maximum,r="נא למחוק ";return r+=1===e?"תו אחד":e+" תווים"},inputTooShort:function(n){var e=n.minimum-n.input.length,r="נא להכניס ";return r+=1===e?"תו אחד":e+" תווים",r+=" או יותר"},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(n){var e="באפשרותך לבחור עד ";return 1===n.maximum?e+="פריט אחד":e+=n.maximum+" פריטים",e},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"},removeAllItems:function(){return"הסר את כל הפריטים"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/hi.js b/ui/lib/select2/js/i18n/hi.js
deleted file mode 100644
index f3ed79843..000000000
--- a/ui/lib/select2/js/i18n/hi.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(n){var e=n.input.length-n.maximum,r=e+" अक्षर को हटा दें";return e>1&&(r=e+" अक्षरों को हटा दें "),r},inputTooShort:function(n){return"कृपया "+(n.minimum-n.input.length)+" या अधिक अक्षर दर्ज करें"},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(n){return"आप केवल "+n.maximum+" आइटम का चयन कर सकते हैं"},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."},removeAllItems:function(){return"सभी वस्तुओं को हटा दें"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/hr.js b/ui/lib/select2/js/i18n/hr.js
deleted file mode 100644
index cb3268db1..000000000
--- a/ui/lib/select2/js/i18n/hr.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hr",[],function(){function n(n){var e=" "+n+" znak";return n%10<5&&n%10>0&&(n%100<5||n%100>19)?n%10>1&&(e+="a"):e+="ova",e}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(e){return"Unesite "+n(e.input.length-e.maximum)},inputTooShort:function(e){return"Unesite još "+n(e.minimum-e.input.length)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(n){return"Maksimalan broj odabranih stavki je "+n.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Ukloni sve stavke"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/hsb.js b/ui/lib/select2/js/i18n/hsb.js
deleted file mode 100644
index 3d5bf09db..000000000
--- a/ui/lib/select2/js/i18n/hsb.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hsb",[],function(){var n=["znamješko","znamješce","znamješka","znamješkow"],e=["zapisk","zapiskaj","zapiski","zapiskow"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return"Wuslědki njedachu so začitać."},inputTooLong:function(e){var a=e.input.length-e.maximum;return"Prošu zhašej "+a+" "+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return"Prošu zapodaj znajmjeńša "+a+" "+u(a,n)},loadingMore:function(){return"Dalše wuslědki so začitaja…"},maximumSelected:function(n){return"Móžeš jenož "+n.maximum+" "+u(n.maximum,e)+"wubrać"},noResults:function(){return"Žane wuslědki namakane"},searching:function(){return"Pyta so…"},removeAllItems:function(){return"Remove all items"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/hu.js b/ui/lib/select2/js/i18n/hu.js
deleted file mode 100644
index 4893aa2f7..000000000
--- a/ui/lib/select2/js/i18n/hu.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/hu",[],function(){return{errorLoading:function(){return"Az eredmények betöltése nem sikerült."},inputTooLong:function(e){return"Túl hosszú. "+(e.input.length-e.maximum)+" karakterrel több, mint kellene."},inputTooShort:function(e){return"Túl rövid. Még "+(e.minimum-e.input.length)+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"},removeAllItems:function(){return"Távolítson el minden elemet"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/hy.js b/ui/lib/select2/js/i18n/hy.js
deleted file mode 100644
index 823000714..000000000
--- a/ui/lib/select2/js/i18n/hy.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hy",[],function(){return{errorLoading:function(){return"Արդյունքները հնարավոր չէ բեռնել։"},inputTooLong:function(n){return"Խնդրում ենք հեռացնել "+(n.input.length-n.maximum)+" նշան"},inputTooShort:function(n){return"Խնդրում ենք մուտքագրել "+(n.minimum-n.input.length)+" կամ ավել նշաններ"},loadingMore:function(){return"Բեռնվում են նոր արդյունքներ․․․"},maximumSelected:function(n){return"Դուք կարող եք ընտրել առավելագույնը "+n.maximum+" կետ"},noResults:function(){return"Արդյունքներ չեն գտնվել"},searching:function(){return"Որոնում․․․"},removeAllItems:function(){return"Հեռացնել բոլոր տարրերը"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/id.js b/ui/lib/select2/js/i18n/id.js
deleted file mode 100644
index 4a0b3bf00..000000000
--- a/ui/lib/select2/js/i18n/id.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(n){return"Hapuskan "+(n.input.length-n.maximum)+" huruf"},inputTooShort:function(n){return"Masukkan "+(n.minimum-n.input.length)+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(n){return"Anda hanya dapat memilih "+n.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"},removeAllItems:function(){return"Hapus semua item"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/is.js b/ui/lib/select2/js/i18n/is.js
deleted file mode 100644
index cca5bbecf..000000000
--- a/ui/lib/select2/js/i18n/is.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/is",[],function(){return{inputTooLong:function(n){var t=n.input.length-n.maximum,e="Vinsamlegast styttið texta um "+t+" staf";return t<=1?e:e+"i"},inputTooShort:function(n){var t=n.minimum-n.input.length,e="Vinsamlegast skrifið "+t+" staf";return t>1&&(e+="i"),e+=" í viðbót"},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(n){return"Þú getur aðeins valið "+n.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"},removeAllItems:function(){return"Fjarlægðu öll atriði"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/it.js b/ui/lib/select2/js/i18n/it.js
deleted file mode 100644
index 507c7d9f2..000000000
--- a/ui/lib/select2/js/i18n/it.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Per favore cancella "+n+" caratter";return t+=1!==n?"i":"e"},inputTooShort:function(e){return"Per favore inserisci "+(e.minimum-e.input.length)+" o più caratteri"},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var n="Puoi selezionare solo "+e.maximum+" element";return 1!==e.maximum?n+="i":n+="o",n},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"},removeAllItems:function(){return"Rimuovi tutti gli oggetti"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/ja.js b/ui/lib/select2/js/i18n/ja.js
deleted file mode 100644
index 451025e2c..000000000
--- a/ui/lib/select2/js/i18n/ja.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(n){return n.input.length-n.maximum+" 文字を削除してください"},inputTooShort:function(n){return"少なくとも "+(n.minimum-n.input.length)+" 文字を入力してください"},loadingMore:function(){return"読み込み中…"},maximumSelected:function(n){return n.maximum+" 件しか選択できません"},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"},removeAllItems:function(){return"すべてのアイテムを削除"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/ka.js b/ui/lib/select2/js/i18n/ka.js
deleted file mode 100644
index 60c593b70..000000000
--- a/ui/lib/select2/js/i18n/ka.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ka",[],function(){return{errorLoading:function(){return"მონაცემების ჩატვირთვა შეუძლებელია."},inputTooLong:function(n){return"გთხოვთ აკრიფეთ "+(n.input.length-n.maximum)+" სიმბოლოთი ნაკლები"},inputTooShort:function(n){return"გთხოვთ აკრიფეთ "+(n.minimum-n.input.length)+" სიმბოლო ან მეტი"},loadingMore:function(){return"მონაცემების ჩატვირთვა…"},maximumSelected:function(n){return"თქვენ შეგიძლიათ აირჩიოთ არაუმეტეს "+n.maximum+" ელემენტი"},noResults:function(){return"რეზულტატი არ მოიძებნა"},searching:function(){return"ძიება…"},removeAllItems:function(){return"ამოიღე ყველა ელემენტი"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/km.js b/ui/lib/select2/js/i18n/km.js
deleted file mode 100644
index 4dca94f41..000000000
--- a/ui/lib/select2/js/i18n/km.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(n){return"សូមលុបចេញ "+(n.input.length-n.maximum)+" អក្សរ"},inputTooShort:function(n){return"សូមបញ្ចូល"+(n.minimum-n.input.length)+" អក្សរ រឺ ច្រើនជាងនេះ"},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(n){return"អ្នកអាចជ្រើសរើសបានតែ "+n.maximum+" ជម្រើសប៉ុណ្ណោះ"},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."},removeAllItems:function(){return"លុបធាតុទាំងអស់"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/ko.js b/ui/lib/select2/js/i18n/ko.js
deleted file mode 100644
index f2880fb00..000000000
--- a/ui/lib/select2/js/i18n/ko.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(n){return"너무 깁니다. "+(n.input.length-n.maximum)+" 글자 지워주세요."},inputTooShort:function(n){return"너무 짧습니다. "+(n.minimum-n.input.length)+" 글자 더 입력해주세요."},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(n){return"최대 "+n.maximum+"개까지만 선택 가능합니다."},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"},removeAllItems:function(){return"모든 항목 삭제"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/lt.js b/ui/lib/select2/js/i18n/lt.js
deleted file mode 100644
index f6a42155a..000000000
--- a/ui/lib/select2/js/i18n/lt.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/lt",[],function(){function n(n,e,i,t){return n%10==1&&(n%100<11||n%100>19)?e:n%10>=2&&n%10<=9&&(n%100<11||n%100>19)?i:t}return{inputTooLong:function(e){var i=e.input.length-e.maximum,t="Pašalinkite "+i+" simbol";return t+=n(i,"į","ius","ių")},inputTooShort:function(e){var i=e.minimum-e.input.length,t="Įrašykite dar "+i+" simbol";return t+=n(i,"į","ius","ių")},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(e){var i="Jūs galite pasirinkti tik "+e.maximum+" element";return i+=n(e.maximum,"ą","us","ų")},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"},removeAllItems:function(){return"Pašalinti visus elementus"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/lv.js b/ui/lib/select2/js/i18n/lv.js
deleted file mode 100644
index 806dc5c43..000000000
--- a/ui/lib/select2/js/i18n/lv.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/lv",[],function(){function e(e,n,u,i){return 11===e?n:e%10==1?u:i}return{inputTooLong:function(n){var u=n.input.length-n.maximum,i="Lūdzu ievadiet par "+u;return(i+=" simbol"+e(u,"iem","u","iem"))+" mazāk"},inputTooShort:function(n){var u=n.minimum-n.input.length,i="Lūdzu ievadiet vēl "+u;return i+=" simbol"+e(u,"us","u","us")},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(n){var u="Jūs varat izvēlēties ne vairāk kā "+n.maximum;return u+=" element"+e(n.maximum,"us","u","us")},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"},removeAllItems:function(){return"Noņemt visus vienumus"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/mk.js b/ui/lib/select2/js/i18n/mk.js
deleted file mode 100644
index cb7b84a26..000000000
--- a/ui/lib/select2/js/i18n/mk.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/mk",[],function(){return{inputTooLong:function(n){var e=(n.input.length,n.maximum,"Ве молиме внесете "+n.maximum+" помалку карактер");return 1!==n.maximum&&(e+="и"),e},inputTooShort:function(n){var e=(n.minimum,n.input.length,"Ве молиме внесете уште "+n.maximum+" карактер");return 1!==n.maximum&&(e+="и"),e},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(n){var e="Можете да изберете само "+n.maximum+" ставк";return 1===n.maximum?e+="а":e+="и",e},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"},removeAllItems:function(){return"Отстрани ги сите предмети"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/ms.js b/ui/lib/select2/js/i18n/ms.js
deleted file mode 100644
index 6bd7eaa3e..000000000
--- a/ui/lib/select2/js/i18n/ms.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(n){return"Sila hapuskan "+(n.input.length-n.maximum)+" aksara"},inputTooShort:function(n){return"Sila masukkan "+(n.minimum-n.input.length)+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(n){return"Anda hanya boleh memilih "+n.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"},removeAllItems:function(){return"Keluarkan semua item"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/nb.js b/ui/lib/select2/js/i18n/nb.js
deleted file mode 100644
index 25d89c687..000000000
--- a/ui/lib/select2/js/i18n/nb.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){return"Vennligst fjern "+(e.input.length-e.maximum)+" tegn"},inputTooShort:function(e){return"Vennligst skriv inn "+(e.minimum-e.input.length)+" tegn til"},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"},removeAllItems:function(){return"Fjern alle elementer"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/ne.js b/ui/lib/select2/js/i18n/ne.js
deleted file mode 100644
index 1c39f6721..000000000
--- a/ui/lib/select2/js/i18n/ne.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ne",[],function(){return{errorLoading:function(){return"नतिजाहरु देखाउन सकिएन।"},inputTooLong:function(n){var e=n.input.length-n.maximum,u="कृपया "+e+" अक्षर मेटाउनुहोस्।";return 1!=e&&(u+="कृपया "+e+" अक्षरहरु मेटाउनुहोस्।"),u},inputTooShort:function(n){return"कृपया बाँकी रहेका "+(n.minimum-n.input.length)+" वा अरु धेरै अक्षरहरु भर्नुहोस्।"},loadingMore:function(){return"अरु नतिजाहरु भरिँदैछन् …"},maximumSelected:function(n){var e="तँपाई "+n.maximum+" वस्तु मात्र छान्न पाउँनुहुन्छ।";return 1!=n.maximum&&(e="तँपाई "+n.maximum+" वस्तुहरु मात्र छान्न पाउँनुहुन्छ।"),e},noResults:function(){return"कुनै पनि नतिजा भेटिएन।"},searching:function(){return"खोजि हुँदैछ…"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/nl.js b/ui/lib/select2/js/i18n/nl.js
deleted file mode 100644
index 2b74058d2..000000000
--- a/ui/lib/select2/js/i18n/nl.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){return"Gelieve "+(e.input.length-e.maximum)+" karakters te verwijderen"},inputTooShort:function(e){return"Gelieve "+(e.minimum-e.input.length)+" of meer karakters in te voeren"},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var n=1==e.maximum?"kan":"kunnen",r="Er "+n+" maar "+e.maximum+" item";return 1!=e.maximum&&(r+="s"),r+=" worden geselecteerd"},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"},removeAllItems:function(){return"Verwijder alle items"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/pl.js b/ui/lib/select2/js/i18n/pl.js
deleted file mode 100644
index 4ca5748c3..000000000
--- a/ui/lib/select2/js/i18n/pl.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/pl",[],function(){var n=["znak","znaki","znaków"],e=["element","elementy","elementów"],r=function(n,e){return 1===n?e[0]:n>1&&n<=4?e[1]:n>=5?e[2]:void 0};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Usuń "+t+" "+r(t,n)},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Podaj przynajmniej "+t+" "+r(t,n)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(n){return"Możesz zaznaczyć tylko "+n.maximum+" "+r(n.maximum,e)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"},removeAllItems:function(){return"Usuń wszystkie przedmioty"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/ps.js b/ui/lib/select2/js/i18n/ps.js
deleted file mode 100644
index 9b008e4c1..000000000
--- a/ui/lib/select2/js/i18n/ps.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ps",[],function(){return{errorLoading:function(){return"پايلي نه سي ترلاسه کېدای"},inputTooLong:function(n){var e=n.input.length-n.maximum,r="د مهربانۍ لمخي "+e+" توری ړنګ کړئ";return 1!=e&&(r=r.replace("توری","توري")),r},inputTooShort:function(n){return"لږ تر لږه "+(n.minimum-n.input.length)+" يا ډېر توري وليکئ"},loadingMore:function(){return"نوري پايلي ترلاسه کيږي..."},maximumSelected:function(n){var e="تاسو يوازي "+n.maximum+" قلم په نښه کولای سی";return 1!=n.maximum&&(e=e.replace("قلم","قلمونه")),e},noResults:function(){return"پايلي و نه موندل سوې"},searching:function(){return"لټول کيږي..."},removeAllItems:function(){return"ټول توکي لرې کړئ"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/pt-BR.js b/ui/lib/select2/js/i18n/pt-BR.js
deleted file mode 100644
index c991e2550..000000000
--- a/ui/lib/select2/js/i18n/pt-BR.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Apague "+n+" caracter";return 1!=n&&(r+="es"),r},inputTooShort:function(e){return"Digite "+(e.minimum-e.input.length)+" ou mais caracteres"},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var n="Você só pode selecionar "+e.maximum+" ite";return 1==e.maximum?n+="m":n+="ns",n},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Remover todos os itens"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/pt.js b/ui/lib/select2/js/i18n/pt.js
deleted file mode 100644
index b5da1a6b4..000000000
--- a/ui/lib/select2/js/i18n/pt.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var r=e.input.length-e.maximum,n="Por favor apague "+r+" ";return n+=1!=r?"caracteres":"caractere"},inputTooShort:function(e){return"Introduza "+(e.minimum-e.input.length)+" ou mais caracteres"},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var r="Apenas pode seleccionar "+e.maximum+" ";return r+=1!=e.maximum?"itens":"item"},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"},removeAllItems:function(){return"Remover todos os itens"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/ro.js b/ui/lib/select2/js/i18n/ro.js
deleted file mode 100644
index 1ba7b40be..000000000
--- a/ui/lib/select2/js/i18n/ro.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return 1!==t&&(n+="e"),n},inputTooShort:function(e){return"Vă rugăm să introduceți "+(e.minimum-e.input.length)+" sau mai multe caractere"},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",1!==e.maximum&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"},removeAllItems:function(){return"Eliminați toate elementele"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/ru.js b/ui/lib/select2/js/i18n/ru.js
deleted file mode 100644
index 63a7d66c3..000000000
--- a/ui/lib/select2/js/i18n/ru.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ru",[],function(){function n(n,e,r,u){return n%10<5&&n%10>0&&n%100<5||n%100>20?n%10>1?r:e:u}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Пожалуйста, введите на "+r+" символ";return u+=n(r,"","a","ов"),u+=" меньше"},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Пожалуйста, введите ещё хотя бы "+r+" символ";return u+=n(r,"","a","ов")},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(e){var r="Вы можете выбрать не более "+e.maximum+" элемент";return r+=n(e.maximum,"","a","ов")},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"},removeAllItems:function(){return"Удалить все элементы"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/sk.js b/ui/lib/select2/js/i18n/sk.js
deleted file mode 100644
index 5049528ad..000000000
--- a/ui/lib/select2/js/i18n/sk.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{errorLoading:function(){return"Výsledky sa nepodarilo načítať."},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?"Prosím, zadajte o jeden znak menej":t>=2&&t<=4?"Prosím, zadajte o "+e[t](!0)+" znaky menej":"Prosím, zadajte o "+t+" znakov menej"},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?"Prosím, zadajte ešte jeden znak":t<=4?"Prosím, zadajte ešte ďalšie "+e[t](!0)+" znaky":"Prosím, zadajte ešte ďalších "+t+" znakov"},loadingMore:function(){return"Načítanie ďalších výsledkov…"},maximumSelected:function(n){return 1==n.maximum?"Môžete zvoliť len jednu položku":n.maximum>=2&&n.maximum<=4?"Môžete zvoliť najviac "+e[n.maximum](!1)+" položky":"Môžete zvoliť najviac "+n.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"},removeAllItems:function(){return"Odstráňte všetky položky"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/sl.js b/ui/lib/select2/js/i18n/sl.js
deleted file mode 100644
index 4d0b7d3e3..000000000
--- a/ui/lib/select2/js/i18n/sl.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sl",[],function(){return{errorLoading:function(){return"Zadetkov iskanja ni bilo mogoče naložiti."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Prosim zbrišite "+n+" znak";return 2==n?t+="a":1!=n&&(t+="e"),t},inputTooShort:function(e){var n=e.minimum-e.input.length,t="Prosim vpišite še "+n+" znak";return 2==n?t+="a":1!=n&&(t+="e"),t},loadingMore:function(){return"Nalagam več zadetkov…"},maximumSelected:function(e){var n="Označite lahko največ "+e.maximum+" predmet";return 2==e.maximum?n+="a":1!=e.maximum&&(n+="e"),n},noResults:function(){return"Ni zadetkov."},searching:function(){return"Iščem…"},removeAllItems:function(){return"Odstranite vse elemente"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/sq.js b/ui/lib/select2/js/i18n/sq.js
deleted file mode 100644
index 59162024e..000000000
--- a/ui/lib/select2/js/i18n/sq.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sq",[],function(){return{errorLoading:function(){return"Rezultatet nuk mund të ngarkoheshin."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Të lutem fshi "+n+" karakter";return 1!=n&&(t+="e"),t},inputTooShort:function(e){return"Të lutem shkruaj "+(e.minimum-e.input.length)+" ose më shumë karaktere"},loadingMore:function(){return"Duke ngarkuar më shumë rezultate…"},maximumSelected:function(e){var n="Mund të zgjedhësh vetëm "+e.maximum+" element";return 1!=e.maximum&&(n+="e"),n},noResults:function(){return"Nuk u gjet asnjë rezultat"},searching:function(){return"Duke kërkuar…"},removeAllItems:function(){return"Hiq të gjitha sendet"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/sr-Cyrl.js b/ui/lib/select2/js/i18n/sr-Cyrl.js
deleted file mode 100644
index ce13ce8f9..000000000
--- a/ui/lib/select2/js/i18n/sr-Cyrl.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sr-Cyrl",[],function(){function n(n,e,r,u){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:u}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Обришите "+r+" симбол";return u+=n(r,"","а","а")},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Укуцајте бар још "+r+" симбол";return u+=n(r,"","а","а")},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(e){var r="Можете изабрати само "+e.maximum+" ставк";return r+=n(e.maximum,"у","е","и")},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"},removeAllItems:function(){return"Уклоните све ставке"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/sr.js b/ui/lib/select2/js/i18n/sr.js
deleted file mode 100644
index dd407a06d..000000000
--- a/ui/lib/select2/js/i18n/sr.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sr",[],function(){function n(n,e,r,t){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:t}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(e){var r=e.input.length-e.maximum,t="Obrišite "+r+" simbol";return t+=n(r,"","a","a")},inputTooShort:function(e){var r=e.minimum-e.input.length,t="Ukucajte bar još "+r+" simbol";return t+=n(r,"","a","a")},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(e){var r="Možete izabrati samo "+e.maximum+" stavk";return r+=n(e.maximum,"u","e","i")},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Уклоните све ставке"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/sv.js b/ui/lib/select2/js/i18n/sv.js
deleted file mode 100644
index 1bc8724a7..000000000
--- a/ui/lib/select2/js/i18n/sv.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(n){return"Vänligen sudda ut "+(n.input.length-n.maximum)+" tecken"},inputTooShort:function(n){return"Vänligen skriv in "+(n.minimum-n.input.length)+" eller fler tecken"},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(n){return"Du kan max välja "+n.maximum+" element"},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"},removeAllItems:function(){return"Ta bort alla objekt"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/th.js b/ui/lib/select2/js/i18n/th.js
deleted file mode 100644
index 63eab7114..000000000
--- a/ui/lib/select2/js/i18n/th.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/th",[],function(){return{errorLoading:function(){return"ไม่สามารถค้นข้อมูลได้"},inputTooLong:function(n){return"โปรดลบออก "+(n.input.length-n.maximum)+" ตัวอักษร"},inputTooShort:function(n){return"โปรดพิมพ์เพิ่มอีก "+(n.minimum-n.input.length)+" ตัวอักษร"},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(n){return"คุณสามารถเลือกได้ไม่เกิน "+n.maximum+" รายการ"},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"},removeAllItems:function(){return"ลบรายการทั้งหมด"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/tk.js b/ui/lib/select2/js/i18n/tk.js
deleted file mode 100644
index 30255ff37..000000000
--- a/ui/lib/select2/js/i18n/tk.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/tk",[],function(){return{errorLoading:function(){return"Netije ýüklenmedi."},inputTooLong:function(e){return e.input.length-e.maximum+" harp bozuň."},inputTooShort:function(e){return"Ýene-de iň az "+(e.minimum-e.input.length)+" harp ýazyň."},loadingMore:function(){return"Köpräk netije görkezilýär…"},maximumSelected:function(e){return"Diňe "+e.maximum+" sanysyny saýlaň."},noResults:function(){return"Netije tapylmady."},searching:function(){return"Gözlenýär…"},removeAllItems:function(){return"Remove all items"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/tr.js b/ui/lib/select2/js/i18n/tr.js
deleted file mode 100644
index fc4c0bf05..000000000
--- a/ui/lib/select2/js/i18n/tr.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/tr",[],function(){return{errorLoading:function(){return"Sonuç yüklenemedi"},inputTooLong:function(n){return n.input.length-n.maximum+" karakter daha girmelisiniz"},inputTooShort:function(n){return"En az "+(n.minimum-n.input.length)+" karakter daha girmelisiniz"},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(n){return"Sadece "+n.maximum+" seçim yapabilirsiniz"},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"},removeAllItems:function(){return"Tüm öğeleri kaldır"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/uk.js b/ui/lib/select2/js/i18n/uk.js
deleted file mode 100644
index 63697e388..000000000
--- a/ui/lib/select2/js/i18n/uk.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/uk",[],function(){function n(n,e,u,r){return n%100>10&&n%100<15?r:n%10==1?e:n%10>1&&n%10<5?u:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(e){return"Будь ласка, видаліть "+(e.input.length-e.maximum)+" "+n(e.maximum,"літеру","літери","літер")},inputTooShort:function(n){return"Будь ласка, введіть "+(n.minimum-n.input.length)+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(e){return"Ви можете вибрати лише "+e.maximum+" "+n(e.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"},removeAllItems:function(){return"Видалити всі елементи"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/vi.js b/ui/lib/select2/js/i18n/vi.js
deleted file mode 100644
index 24f3bc2d6..000000000
--- a/ui/lib/select2/js/i18n/vi.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/vi",[],function(){return{inputTooLong:function(n){return"Vui lòng xóa bớt "+(n.input.length-n.maximum)+" ký tự"},inputTooShort:function(n){return"Vui lòng nhập thêm từ "+(n.minimum-n.input.length)+" ký tự trở lên"},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(n){return"Chỉ có thể chọn được "+n.maximum+" lựa chọn"},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"},removeAllItems:function(){return"Xóa tất cả các mục"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/zh-CN.js b/ui/lib/select2/js/i18n/zh-CN.js
deleted file mode 100644
index 2c5649d31..000000000
--- a/ui/lib/select2/js/i18n/zh-CN.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(n){return"请删除"+(n.input.length-n.maximum)+"个字符"},inputTooShort:function(n){return"请再输入至少"+(n.minimum-n.input.length)+"个字符"},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(n){return"最多只能选择"+n.maximum+"个项目"},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"},removeAllItems:function(){return"删除所有项目"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/i18n/zh-TW.js b/ui/lib/select2/js/i18n/zh-TW.js
deleted file mode 100644
index 570a56693..000000000
--- a/ui/lib/select2/js/i18n/zh-TW.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(n){return"請刪掉"+(n.input.length-n.maximum)+"個字元"},inputTooShort:function(n){return"請再輸入"+(n.minimum-n.input.length)+"個字元"},loadingMore:function(){return"載入中…"},maximumSelected:function(n){return"你只能選擇最多"+n.maximum+"項"},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"},removeAllItems:function(){return"刪除所有項目"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/ui/lib/select2/js/select2.full.js b/ui/lib/select2/js/select2.full.js
deleted file mode 100644
index 358572a65..000000000
--- a/ui/lib/select2/js/select2.full.js
+++ /dev/null
@@ -1,6820 +0,0 @@
-/*!
- * Select2 4.0.13
- * https://select2.github.io
- *
- * Released under the MIT license
- * https://github.com/select2/select2/blob/master/LICENSE.md
- */
-;(function (factory) {
- if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define(['jquery'], factory);
- } else if (typeof module === 'object' && module.exports) {
- // Node/CommonJS
- module.exports = function (root, jQuery) {
- if (jQuery === undefined) {
- // require('jQuery') returns a factory that requires window to
- // build a jQuery instance, we normalize how we use modules
- // that require this pattern but the window provided is a noop
- // if it's defined (how jquery works)
- if (typeof window !== 'undefined') {
- jQuery = require('jquery');
- }
- else {
- jQuery = require('jquery')(root);
- }
- }
- factory(jQuery);
- return jQuery;
- };
- } else {
- // Browser globals
- factory(jQuery);
- }
-} (function (jQuery) {
- // This is needed so we can catch the AMD loader configuration and use it
- // The inner file should be wrapped (by `banner.start.js`) in a function that
- // returns the AMD loader references.
- var S2 =(function () {
- // Restore the Select2 AMD loader so it can be used
- // Needed mostly in the language files, where the loader is not inserted
- if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {
- var S2 = jQuery.fn.select2.amd;
- }
-var S2;(function () { if (!S2 || !S2.requirejs) {
-if (!S2) { S2 = {}; } else { require = S2; }
-/**
- * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.
- * Released under MIT license, http://github.com/requirejs/almond/LICENSE
- */
-//Going sloppy to avoid 'use strict' string cost, but strict practices should
-//be followed.
-/*global setTimeout: false */
-
-var requirejs, require, define;
-(function (undef) {
- var main, req, makeMap, handlers,
- defined = {},
- waiting = {},
- config = {},
- defining = {},
- hasOwn = Object.prototype.hasOwnProperty,
- aps = [].slice,
- jsSuffixRegExp = /\.js$/;
-
- function hasProp(obj, prop) {
- return hasOwn.call(obj, prop);
- }
-
- /**
- * Given a relative module name, like ./something, normalize it to
- * a real name that can be mapped to a path.
- * @param {String} name the relative name
- * @param {String} baseName a real name that the name arg is relative
- * to.
- * @returns {String} normalized name
- */
- function normalize(name, baseName) {
- var nameParts, nameSegment, mapValue, foundMap, lastIndex,
- foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,
- baseParts = baseName && baseName.split("/"),
- map = config.map,
- starMap = (map && map['*']) || {};
-
- //Adjust any relative paths.
- if (name) {
- name = name.split('/');
- lastIndex = name.length - 1;
-
- // If wanting node ID compatibility, strip .js from end
- // of IDs. Have to do this here, and not in nameToUrl
- // because node allows either .js or non .js to map
- // to same file.
- if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
- name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
- }
-
- // Starts with a '.' so need the baseName
- if (name[0].charAt(0) === '.' && baseParts) {
- //Convert baseName to array, and lop off the last part,
- //so that . matches that 'directory' and not name of the baseName's
- //module. For instance, baseName of 'one/two/three', maps to
- //'one/two/three.js', but we want the directory, 'one/two' for
- //this normalization.
- normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
- name = normalizedBaseParts.concat(name);
- }
-
- //start trimDots
- for (i = 0; i < name.length; i++) {
- part = name[i];
- if (part === '.') {
- name.splice(i, 1);
- i -= 1;
- } else if (part === '..') {
- // If at the start, or previous value is still ..,
- // keep them so that when converted to a path it may
- // still work when converted to a path, even though
- // as an ID it is less than ideal. In larger point
- // releases, may be better to just kick out an error.
- if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {
- continue;
- } else if (i > 0) {
- name.splice(i - 1, 2);
- i -= 2;
- }
- }
- }
- //end trimDots
-
- name = name.join('/');
- }
-
- //Apply map config if available.
- if ((baseParts || starMap) && map) {
- nameParts = name.split('/');
-
- for (i = nameParts.length; i > 0; i -= 1) {
- nameSegment = nameParts.slice(0, i).join("/");
-
- if (baseParts) {
- //Find the longest baseName segment match in the config.
- //So, do joins on the biggest to smallest lengths of baseParts.
- for (j = baseParts.length; j > 0; j -= 1) {
- mapValue = map[baseParts.slice(0, j).join('/')];
-
- //baseName segment has config, find if it has one for
- //this name.
- if (mapValue) {
- mapValue = mapValue[nameSegment];
- if (mapValue) {
- //Match, update name to the new value.
- foundMap = mapValue;
- foundI = i;
- break;
- }
- }
- }
- }
-
- if (foundMap) {
- break;
- }
-
- //Check for a star map match, but just hold on to it,
- //if there is a shorter segment match later in a matching
- //config, then favor over this star map.
- if (!foundStarMap && starMap && starMap[nameSegment]) {
- foundStarMap = starMap[nameSegment];
- starI = i;
- }
- }
-
- if (!foundMap && foundStarMap) {
- foundMap = foundStarMap;
- foundI = starI;
- }
-
- if (foundMap) {
- nameParts.splice(0, foundI, foundMap);
- name = nameParts.join('/');
- }
- }
-
- return name;
- }
-
- function makeRequire(relName, forceSync) {
- return function () {
- //A version of a require function that passes a moduleName
- //value for items that may need to
- //look up paths relative to the moduleName
- var args = aps.call(arguments, 0);
-
- //If first arg is not require('string'), and there is only
- //one arg, it is the array form without a callback. Insert
- //a null so that the following concat is correct.
- if (typeof args[0] !== 'string' && args.length === 1) {
- args.push(null);
- }
- return req.apply(undef, args.concat([relName, forceSync]));
- };
- }
-
- function makeNormalize(relName) {
- return function (name) {
- return normalize(name, relName);
- };
- }
-
- function makeLoad(depName) {
- return function (value) {
- defined[depName] = value;
- };
- }
-
- function callDep(name) {
- if (hasProp(waiting, name)) {
- var args = waiting[name];
- delete waiting[name];
- defining[name] = true;
- main.apply(undef, args);
- }
-
- if (!hasProp(defined, name) && !hasProp(defining, name)) {
- throw new Error('No ' + name);
- }
- return defined[name];
- }
-
- //Turns a plugin!resource to [plugin, resource]
- //with the plugin being undefined if the name
- //did not have a plugin prefix.
- function splitPrefix(name) {
- var prefix,
- index = name ? name.indexOf('!') : -1;
- if (index > -1) {
- prefix = name.substring(0, index);
- name = name.substring(index + 1, name.length);
- }
- return [prefix, name];
- }
-
- //Creates a parts array for a relName where first part is plugin ID,
- //second part is resource ID. Assumes relName has already been normalized.
- function makeRelParts(relName) {
- return relName ? splitPrefix(relName) : [];
- }
-
- /**
- * Makes a name map, normalizing the name, and using a plugin
- * for normalization if necessary. Grabs a ref to plugin
- * too, as an optimization.
- */
- makeMap = function (name, relParts) {
- var plugin,
- parts = splitPrefix(name),
- prefix = parts[0],
- relResourceName = relParts[1];
-
- name = parts[1];
-
- if (prefix) {
- prefix = normalize(prefix, relResourceName);
- plugin = callDep(prefix);
- }
-
- //Normalize according
- if (prefix) {
- if (plugin && plugin.normalize) {
- name = plugin.normalize(name, makeNormalize(relResourceName));
- } else {
- name = normalize(name, relResourceName);
- }
- } else {
- name = normalize(name, relResourceName);
- parts = splitPrefix(name);
- prefix = parts[0];
- name = parts[1];
- if (prefix) {
- plugin = callDep(prefix);
- }
- }
-
- //Using ridiculous property names for space reasons
- return {
- f: prefix ? prefix + '!' + name : name, //fullName
- n: name,
- pr: prefix,
- p: plugin
- };
- };
-
- function makeConfig(name) {
- return function () {
- return (config && config.config && config.config[name]) || {};
- };
- }
-
- handlers = {
- require: function (name) {
- return makeRequire(name);
- },
- exports: function (name) {
- var e = defined[name];
- if (typeof e !== 'undefined') {
- return e;
- } else {
- return (defined[name] = {});
- }
- },
- module: function (name) {
- return {
- id: name,
- uri: '',
- exports: defined[name],
- config: makeConfig(name)
- };
- }
- };
-
- main = function (name, deps, callback, relName) {
- var cjsModule, depName, ret, map, i, relParts,
- args = [],
- callbackType = typeof callback,
- usingExports;
-
- //Use name if no relName
- relName = relName || name;
- relParts = makeRelParts(relName);
-
- //Call the callback to define the module, if necessary.
- if (callbackType === 'undefined' || callbackType === 'function') {
- //Pull out the defined dependencies and pass the ordered
- //values to the callback.
- //Default to [require, exports, module] if no deps
- deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;
- for (i = 0; i < deps.length; i += 1) {
- map = makeMap(deps[i], relParts);
- depName = map.f;
-
- //Fast path CommonJS standard dependencies.
- if (depName === "require") {
- args[i] = handlers.require(name);
- } else if (depName === "exports") {
- //CommonJS module spec 1.1
- args[i] = handlers.exports(name);
- usingExports = true;
- } else if (depName === "module") {
- //CommonJS module spec 1.1
- cjsModule = args[i] = handlers.module(name);
- } else if (hasProp(defined, depName) ||
- hasProp(waiting, depName) ||
- hasProp(defining, depName)) {
- args[i] = callDep(depName);
- } else if (map.p) {
- map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});
- args[i] = defined[depName];
- } else {
- throw new Error(name + ' missing ' + depName);
- }
- }
-
- ret = callback ? callback.apply(defined[name], args) : undefined;
-
- if (name) {
- //If setting exports via "module" is in play,
- //favor that over return value and exports. After that,
- //favor a non-undefined return value over exports use.
- if (cjsModule && cjsModule.exports !== undef &&
- cjsModule.exports !== defined[name]) {
- defined[name] = cjsModule.exports;
- } else if (ret !== undef || !usingExports) {
- //Use the return value from the function.
- defined[name] = ret;
- }
- }
- } else if (name) {
- //May just be an object definition for the module. Only
- //worry about defining if have a module name.
- defined[name] = callback;
- }
- };
-
- requirejs = require = req = function (deps, callback, relName, forceSync, alt) {
- if (typeof deps === "string") {
- if (handlers[deps]) {
- //callback in this case is really relName
- return handlers[deps](callback);
- }
- //Just return the module wanted. In this scenario, the
- //deps arg is the module name, and second arg (if passed)
- //is just the relName.
- //Normalize module name, if it contains . or ..
- return callDep(makeMap(deps, makeRelParts(callback)).f);
- } else if (!deps.splice) {
- //deps is a config object, not an array.
- config = deps;
- if (config.deps) {
- req(config.deps, config.callback);
- }
- if (!callback) {
- return;
- }
-
- if (callback.splice) {
- //callback is an array, which means it is a dependency list.
- //Adjust args if there are dependencies
- deps = callback;
- callback = relName;
- relName = null;
- } else {
- deps = undef;
- }
- }
-
- //Support require(['a'])
- callback = callback || function () {};
-
- //If relName is a function, it is an errback handler,
- //so remove it.
- if (typeof relName === 'function') {
- relName = forceSync;
- forceSync = alt;
- }
-
- //Simulate async callback;
- if (forceSync) {
- main(undef, deps, callback, relName);
- } else {
- //Using a non-zero value because of concern for what old browsers
- //do, and latest browsers "upgrade" to 4 if lower value is used:
- //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:
- //If want a value immediately, use require('id') instead -- something
- //that works in almond on the global level, but not guaranteed and
- //unlikely to work in other AMD implementations.
- setTimeout(function () {
- main(undef, deps, callback, relName);
- }, 4);
- }
-
- return req;
- };
-
- /**
- * Just drops the config on the floor, but returns req in case
- * the config return value is used.
- */
- req.config = function (cfg) {
- return req(cfg);
- };
-
- /**
- * Expose module registry for debugging and tooling
- */
- requirejs._defined = defined;
-
- define = function (name, deps, callback) {
- if (typeof name !== 'string') {
- throw new Error('See almond README: incorrect module build, no module name');
- }
-
- //This module may not have dependencies
- if (!deps.splice) {
- //deps is not an array, so probably means
- //an object literal or factory function for
- //the value. Adjust args.
- callback = deps;
- deps = [];
- }
-
- if (!hasProp(defined, name) && !hasProp(waiting, name)) {
- waiting[name] = [name, deps, callback];
- }
- };
-
- define.amd = {
- jQuery: true
- };
-}());
-
-S2.requirejs = requirejs;S2.require = require;S2.define = define;
-}
-}());
-S2.define("almond", function(){});
-
-/* global jQuery:false, $:false */
-S2.define('jquery',[],function () {
- var _$ = jQuery || $;
-
- if (_$ == null && console && console.error) {
- console.error(
- 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +
- 'found. Make sure that you are including jQuery before Select2 on your ' +
- 'web page.'
- );
- }
-
- return _$;
-});
-
-S2.define('select2/utils',[
- 'jquery'
-], function ($) {
- var Utils = {};
-
- Utils.Extend = function (ChildClass, SuperClass) {
- var __hasProp = {}.hasOwnProperty;
-
- function BaseConstructor () {
- this.constructor = ChildClass;
- }
-
- for (var key in SuperClass) {
- if (__hasProp.call(SuperClass, key)) {
- ChildClass[key] = SuperClass[key];
- }
- }
-
- BaseConstructor.prototype = SuperClass.prototype;
- ChildClass.prototype = new BaseConstructor();
- ChildClass.__super__ = SuperClass.prototype;
-
- return ChildClass;
- };
-
- function getMethods (theClass) {
- var proto = theClass.prototype;
-
- var methods = [];
-
- for (var methodName in proto) {
- var m = proto[methodName];
-
- if (typeof m !== 'function') {
- continue;
- }
-
- if (methodName === 'constructor') {
- continue;
- }
-
- methods.push(methodName);
- }
-
- return methods;
- }
-
- Utils.Decorate = function (SuperClass, DecoratorClass) {
- var decoratedMethods = getMethods(DecoratorClass);
- var superMethods = getMethods(SuperClass);
-
- function DecoratedClass () {
- var unshift = Array.prototype.unshift;
-
- var argCount = DecoratorClass.prototype.constructor.length;
-
- var calledConstructor = SuperClass.prototype.constructor;
-
- if (argCount > 0) {
- unshift.call(arguments, SuperClass.prototype.constructor);
-
- calledConstructor = DecoratorClass.prototype.constructor;
- }
-
- calledConstructor.apply(this, arguments);
- }
-
- DecoratorClass.displayName = SuperClass.displayName;
-
- function ctr () {
- this.constructor = DecoratedClass;
- }
-
- DecoratedClass.prototype = new ctr();
-
- for (var m = 0; m < superMethods.length; m++) {
- var superMethod = superMethods[m];
-
- DecoratedClass.prototype[superMethod] =
- SuperClass.prototype[superMethod];
- }
-
- var calledMethod = function (methodName) {
- // Stub out the original method if it's not decorating an actual method
- var originalMethod = function () {};
-
- if (methodName in DecoratedClass.prototype) {
- originalMethod = DecoratedClass.prototype[methodName];
- }
-
- var decoratedMethod = DecoratorClass.prototype[methodName];
-
- return function () {
- var unshift = Array.prototype.unshift;
-
- unshift.call(arguments, originalMethod);
-
- return decoratedMethod.apply(this, arguments);
- };
- };
-
- for (var d = 0; d < decoratedMethods.length; d++) {
- var decoratedMethod = decoratedMethods[d];
-
- DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);
- }
-
- return DecoratedClass;
- };
-
- var Observable = function () {
- this.listeners = {};
- };
-
- Observable.prototype.on = function (event, callback) {
- this.listeners = this.listeners || {};
-
- if (event in this.listeners) {
- this.listeners[event].push(callback);
- } else {
- this.listeners[event] = [callback];
- }
- };
-
- Observable.prototype.trigger = function (event) {
- var slice = Array.prototype.slice;
- var params = slice.call(arguments, 1);
-
- this.listeners = this.listeners || {};
-
- // Params should always come in as an array
- if (params == null) {
- params = [];
- }
-
- // If there are no arguments to the event, use a temporary object
- if (params.length === 0) {
- params.push({});
- }
-
- // Set the `_type` of the first object to the event
- params[0]._type = event;
-
- if (event in this.listeners) {
- this.invoke(this.listeners[event], slice.call(arguments, 1));
- }
-
- if ('*' in this.listeners) {
- this.invoke(this.listeners['*'], arguments);
- }
- };
-
- Observable.prototype.invoke = function (listeners, params) {
- for (var i = 0, len = listeners.length; i < len; i++) {
- listeners[i].apply(this, params);
- }
- };
-
- Utils.Observable = Observable;
-
- Utils.generateChars = function (length) {
- var chars = '';
-
- for (var i = 0; i < length; i++) {
- var randomChar = Math.floor(Math.random() * 36);
- chars += randomChar.toString(36);
- }
-
- return chars;
- };
-
- Utils.bind = function (func, context) {
- return function () {
- func.apply(context, arguments);
- };
- };
-
- Utils._convertData = function (data) {
- for (var originalKey in data) {
- var keys = originalKey.split('-');
-
- var dataLevel = data;
-
- if (keys.length === 1) {
- continue;
- }
-
- for (var k = 0; k < keys.length; k++) {
- var key = keys[k];
-
- // Lowercase the first letter
- // By default, dash-separated becomes camelCase
- key = key.substring(0, 1).toLowerCase() + key.substring(1);
-
- if (!(key in dataLevel)) {
- dataLevel[key] = {};
- }
-
- if (k == keys.length - 1) {
- dataLevel[key] = data[originalKey];
- }
-
- dataLevel = dataLevel[key];
- }
-
- delete data[originalKey];
- }
-
- return data;
- };
-
- Utils.hasScroll = function (index, el) {
- // Adapted from the function created by @ShadowScripter
- // and adapted by @BillBarry on the Stack Exchange Code Review website.
- // The original code can be found at
- // http://codereview.stackexchange.com/q/13338
- // and was designed to be used with the Sizzle selector engine.
-
- var $el = $(el);
- var overflowX = el.style.overflowX;
- var overflowY = el.style.overflowY;
-
- //Check both x and y declarations
- if (overflowX === overflowY &&
- (overflowY === 'hidden' || overflowY === 'visible')) {
- return false;
- }
-
- if (overflowX === 'scroll' || overflowY === 'scroll') {
- return true;
- }
-
- return ($el.innerHeight() < el.scrollHeight ||
- $el.innerWidth() < el.scrollWidth);
- };
-
- Utils.escapeMarkup = function (markup) {
- var replaceMap = {
- '\\': '\',
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- '\'': ''',
- '/': '/'
- };
-
- // Do not try to escape the markup if it's not a string
- if (typeof markup !== 'string') {
- return markup;
- }
-
- return String(markup).replace(/[&<>"'\/\\]/g, function (match) {
- return replaceMap[match];
- });
- };
-
- // Append an array of jQuery nodes to a given element.
- Utils.appendMany = function ($element, $nodes) {
- // jQuery 1.7.x does not support $.fn.append() with an array
- // Fall back to a jQuery object collection using $.fn.add()
- if ($.fn.jquery.substr(0, 3) === '1.7') {
- var $jqNodes = $();
-
- $.map($nodes, function (node) {
- $jqNodes = $jqNodes.add(node);
- });
-
- $nodes = $jqNodes;
- }
-
- $element.append($nodes);
- };
-
- // Cache objects in Utils.__cache instead of $.data (see #4346)
- Utils.__cache = {};
-
- var id = 0;
- Utils.GetUniqueElementId = function (element) {
- // Get a unique element Id. If element has no id,
- // creates a new unique number, stores it in the id
- // attribute and returns the new id.
- // If an id already exists, it simply returns it.
-
- var select2Id = element.getAttribute('data-select2-id');
- if (select2Id == null) {
- // If element has id, use it.
- if (element.id) {
- select2Id = element.id;
- element.setAttribute('data-select2-id', select2Id);
- } else {
- element.setAttribute('data-select2-id', ++id);
- select2Id = id.toString();
- }
- }
- return select2Id;
- };
-
- Utils.StoreData = function (element, name, value) {
- // Stores an item in the cache for a specified element.
- // name is the cache key.
- var id = Utils.GetUniqueElementId(element);
- if (!Utils.__cache[id]) {
- Utils.__cache[id] = {};
- }
-
- Utils.__cache[id][name] = value;
- };
-
- Utils.GetData = function (element, name) {
- // Retrieves a value from the cache by its key (name)
- // name is optional. If no name specified, return
- // all cache items for the specified element.
- // and for a specified element.
- var id = Utils.GetUniqueElementId(element);
- if (name) {
- if (Utils.__cache[id]) {
- if (Utils.__cache[id][name] != null) {
- return Utils.__cache[id][name];
- }
- return $(element).data(name); // Fallback to HTML5 data attribs.
- }
- return $(element).data(name); // Fallback to HTML5 data attribs.
- } else {
- return Utils.__cache[id];
- }
- };
-
- Utils.RemoveData = function (element) {
- // Removes all cached items for a specified element.
- var id = Utils.GetUniqueElementId(element);
- if (Utils.__cache[id] != null) {
- delete Utils.__cache[id];
- }
-
- element.removeAttribute('data-select2-id');
- };
-
- return Utils;
-});
-
-S2.define('select2/results',[
- 'jquery',
- './utils'
-], function ($, Utils) {
- function Results ($element, options, dataAdapter) {
- this.$element = $element;
- this.data = dataAdapter;
- this.options = options;
-
- Results.__super__.constructor.call(this);
- }
-
- Utils.Extend(Results, Utils.Observable);
-
- Results.prototype.render = function () {
- var $results = $(
- '
'
- );
-
- if (this.options.get('multiple')) {
- $results.attr('aria-multiselectable', 'true');
- }
-
- this.$results = $results;
-
- return $results;
- };
-
- Results.prototype.clear = function () {
- this.$results.empty();
- };
-
- Results.prototype.displayMessage = function (params) {
- var escapeMarkup = this.options.get('escapeMarkup');
-
- this.clear();
- this.hideLoading();
-
- var $message = $(
- '
'
- );
-
- var message = this.options.get('translations').get(params.message);
-
- $message.append(
- escapeMarkup(
- message(params.args)
- )
- );
-
- $message[0].className += ' select2-results__message';
-
- this.$results.append($message);
- };
-
- Results.prototype.hideMessages = function () {
- this.$results.find('.select2-results__message').remove();
- };
-
- Results.prototype.append = function (data) {
- this.hideLoading();
-
- var $options = [];
-
- if (data.results == null || data.results.length === 0) {
- if (this.$results.children().length === 0) {
- this.trigger('results:message', {
- message: 'noResults'
- });
- }
-
- return;
- }
-
- data.results = this.sort(data.results);
-
- for (var d = 0; d < data.results.length; d++) {
- var item = data.results[d];
-
- var $option = this.option(item);
-
- $options.push($option);
- }
-
- this.$results.append($options);
- };
-
- Results.prototype.position = function ($results, $dropdown) {
- var $resultsContainer = $dropdown.find('.select2-results');
- $resultsContainer.append($results);
- };
-
- Results.prototype.sort = function (data) {
- var sorter = this.options.get('sorter');
-
- return sorter(data);
- };
-
- Results.prototype.highlightFirstItem = function () {
- var $options = this.$results
- .find('.select2-results__option[aria-selected]');
-
- var $selected = $options.filter('[aria-selected=true]');
-
- // Check if there are any selected options
- if ($selected.length > 0) {
- // If there are selected options, highlight the first
- $selected.first().trigger('mouseenter');
- } else {
- // If there are no selected options, highlight the first option
- // in the dropdown
- $options.first().trigger('mouseenter');
- }
-
- this.ensureHighlightVisible();
- };
-
- Results.prototype.setClasses = function () {
- var self = this;
-
- this.data.current(function (selected) {
- var selectedIds = $.map(selected, function (s) {
- return s.id.toString();
- });
-
- var $options = self.$results
- .find('.select2-results__option[aria-selected]');
-
- $options.each(function () {
- var $option = $(this);
-
- var item = Utils.GetData(this, 'data');
-
- // id needs to be converted to a string when comparing
- var id = '' + item.id;
-
- if ((item.element != null && item.element.selected) ||
- (item.element == null && $.inArray(id, selectedIds) > -1)) {
- $option.attr('aria-selected', 'true');
- } else {
- $option.attr('aria-selected', 'false');
- }
- });
-
- });
- };
-
- Results.prototype.showLoading = function (params) {
- this.hideLoading();
-
- var loadingMore = this.options.get('translations').get('searching');
-
- var loading = {
- disabled: true,
- loading: true,
- text: loadingMore(params)
- };
- var $loading = this.option(loading);
- $loading.className += ' loading-results';
-
- this.$results.prepend($loading);
- };
-
- Results.prototype.hideLoading = function () {
- this.$results.find('.loading-results').remove();
- };
-
- Results.prototype.option = function (data) {
- var option = document.createElement('li');
- option.className = 'select2-results__option';
-
- var attrs = {
- 'role': 'option',
- 'aria-selected': 'false'
- };
-
- var matches = window.Element.prototype.matches ||
- window.Element.prototype.msMatchesSelector ||
- window.Element.prototype.webkitMatchesSelector;
-
- if ((data.element != null && matches.call(data.element, ':disabled')) ||
- (data.element == null && data.disabled)) {
- delete attrs['aria-selected'];
- attrs['aria-disabled'] = 'true';
- }
-
- if (data.id == null) {
- delete attrs['aria-selected'];
- }
-
- if (data._resultId != null) {
- option.id = data._resultId;
- }
-
- if (data.title) {
- option.title = data.title;
- }
-
- if (data.children) {
- attrs.role = 'group';
- attrs['aria-label'] = data.text;
- delete attrs['aria-selected'];
- }
-
- for (var attr in attrs) {
- var val = attrs[attr];
-
- option.setAttribute(attr, val);
- }
-
- if (data.children) {
- var $option = $(option);
-
- var label = document.createElement('strong');
- label.className = 'select2-results__group';
-
- var $label = $(label);
- this.template(data, label);
-
- var $children = [];
-
- for (var c = 0; c < data.children.length; c++) {
- var child = data.children[c];
-
- var $child = this.option(child);
-
- $children.push($child);
- }
-
- var $childrenContainer = $('
', {
- 'class': 'select2-results__options select2-results__options--nested'
- });
-
- $childrenContainer.append($children);
-
- $option.append(label);
- $option.append($childrenContainer);
- } else {
- this.template(data, option);
- }
-
- Utils.StoreData(option, 'data', data);
-
- return option;
- };
-
- Results.prototype.bind = function (container, $container) {
- var self = this;
-
- var id = container.id + '-results';
-
- this.$results.attr('id', id);
-
- container.on('results:all', function (params) {
- self.clear();
- self.append(params.data);
-
- if (container.isOpen()) {
- self.setClasses();
- self.highlightFirstItem();
- }
- });
-
- container.on('results:append', function (params) {
- self.append(params.data);
-
- if (container.isOpen()) {
- self.setClasses();
- }
- });
-
- container.on('query', function (params) {
- self.hideMessages();
- self.showLoading(params);
- });
-
- container.on('select', function () {
- if (!container.isOpen()) {
- return;
- }
-
- self.setClasses();
-
- if (self.options.get('scrollAfterSelect')) {
- self.highlightFirstItem();
- }
- });
-
- container.on('unselect', function () {
- if (!container.isOpen()) {
- return;
- }
-
- self.setClasses();
-
- if (self.options.get('scrollAfterSelect')) {
- self.highlightFirstItem();
- }
- });
-
- container.on('open', function () {
- // When the dropdown is open, aria-expended="true"
- self.$results.attr('aria-expanded', 'true');
- self.$results.attr('aria-hidden', 'false');
-
- self.setClasses();
- self.ensureHighlightVisible();
- });
-
- container.on('close', function () {
- // When the dropdown is closed, aria-expended="false"
- self.$results.attr('aria-expanded', 'false');
- self.$results.attr('aria-hidden', 'true');
- self.$results.removeAttr('aria-activedescendant');
- });
-
- container.on('results:toggle', function () {
- var $highlighted = self.getHighlightedResults();
-
- if ($highlighted.length === 0) {
- return;
- }
-
- $highlighted.trigger('mouseup');
- });
-
- container.on('results:select', function () {
- var $highlighted = self.getHighlightedResults();
-
- if ($highlighted.length === 0) {
- return;
- }
-
- var data = Utils.GetData($highlighted[0], 'data');
-
- if ($highlighted.attr('aria-selected') == 'true') {
- self.trigger('close', {});
- } else {
- self.trigger('select', {
- data: data
- });
- }
- });
-
- container.on('results:previous', function () {
- var $highlighted = self.getHighlightedResults();
-
- var $options = self.$results.find('[aria-selected]');
-
- var currentIndex = $options.index($highlighted);
-
- // If we are already at the top, don't move further
- // If no options, currentIndex will be -1
- if (currentIndex <= 0) {
- return;
- }
-
- var nextIndex = currentIndex - 1;
-
- // If none are highlighted, highlight the first
- if ($highlighted.length === 0) {
- nextIndex = 0;
- }
-
- var $next = $options.eq(nextIndex);
-
- $next.trigger('mouseenter');
-
- var currentOffset = self.$results.offset().top;
- var nextTop = $next.offset().top;
- var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);
-
- if (nextIndex === 0) {
- self.$results.scrollTop(0);
- } else if (nextTop - currentOffset < 0) {
- self.$results.scrollTop(nextOffset);
- }
- });
-
- container.on('results:next', function () {
- var $highlighted = self.getHighlightedResults();
-
- var $options = self.$results.find('[aria-selected]');
-
- var currentIndex = $options.index($highlighted);
-
- var nextIndex = currentIndex + 1;
-
- // If we are at the last option, stay there
- if (nextIndex >= $options.length) {
- return;
- }
-
- var $next = $options.eq(nextIndex);
-
- $next.trigger('mouseenter');
-
- var currentOffset = self.$results.offset().top +
- self.$results.outerHeight(false);
- var nextBottom = $next.offset().top + $next.outerHeight(false);
- var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;
-
- if (nextIndex === 0) {
- self.$results.scrollTop(0);
- } else if (nextBottom > currentOffset) {
- self.$results.scrollTop(nextOffset);
- }
- });
-
- container.on('results:focus', function (params) {
- params.element.addClass('select2-results__option--highlighted');
- });
-
- container.on('results:message', function (params) {
- self.displayMessage(params);
- });
-
- if ($.fn.mousewheel) {
- this.$results.on('mousewheel', function (e) {
- var top = self.$results.scrollTop();
-
- var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;
-
- var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;
- var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();
-
- if (isAtTop) {
- self.$results.scrollTop(0);
-
- e.preventDefault();
- e.stopPropagation();
- } else if (isAtBottom) {
- self.$results.scrollTop(
- self.$results.get(0).scrollHeight - self.$results.height()
- );
-
- e.preventDefault();
- e.stopPropagation();
- }
- });
- }
-
- this.$results.on('mouseup', '.select2-results__option[aria-selected]',
- function (evt) {
- var $this = $(this);
-
- var data = Utils.GetData(this, 'data');
-
- if ($this.attr('aria-selected') === 'true') {
- if (self.options.get('multiple')) {
- self.trigger('unselect', {
- originalEvent: evt,
- data: data
- });
- } else {
- self.trigger('close', {});
- }
-
- return;
- }
-
- self.trigger('select', {
- originalEvent: evt,
- data: data
- });
- });
-
- this.$results.on('mouseenter', '.select2-results__option[aria-selected]',
- function (evt) {
- var data = Utils.GetData(this, 'data');
-
- self.getHighlightedResults()
- .removeClass('select2-results__option--highlighted');
-
- self.trigger('results:focus', {
- data: data,
- element: $(this)
- });
- });
- };
-
- Results.prototype.getHighlightedResults = function () {
- var $highlighted = this.$results
- .find('.select2-results__option--highlighted');
-
- return $highlighted;
- };
-
- Results.prototype.destroy = function () {
- this.$results.remove();
- };
-
- Results.prototype.ensureHighlightVisible = function () {
- var $highlighted = this.getHighlightedResults();
-
- if ($highlighted.length === 0) {
- return;
- }
-
- var $options = this.$results.find('[aria-selected]');
-
- var currentIndex = $options.index($highlighted);
-
- var currentOffset = this.$results.offset().top;
- var nextTop = $highlighted.offset().top;
- var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);
-
- var offsetDelta = nextTop - currentOffset;
- nextOffset -= $highlighted.outerHeight(false) * 2;
-
- if (currentIndex <= 2) {
- this.$results.scrollTop(0);
- } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {
- this.$results.scrollTop(nextOffset);
- }
- };
-
- Results.prototype.template = function (result, container) {
- var template = this.options.get('templateResult');
- var escapeMarkup = this.options.get('escapeMarkup');
-
- var content = template(result, container);
-
- if (content == null) {
- container.style.display = 'none';
- } else if (typeof content === 'string') {
- container.innerHTML = escapeMarkup(content);
- } else {
- $(container).append(content);
- }
- };
-
- return Results;
-});
-
-S2.define('select2/keys',[
-
-], function () {
- var KEYS = {
- BACKSPACE: 8,
- TAB: 9,
- ENTER: 13,
- SHIFT: 16,
- CTRL: 17,
- ALT: 18,
- ESC: 27,
- SPACE: 32,
- PAGE_UP: 33,
- PAGE_DOWN: 34,
- END: 35,
- HOME: 36,
- LEFT: 37,
- UP: 38,
- RIGHT: 39,
- DOWN: 40,
- DELETE: 46
- };
-
- return KEYS;
-});
-
-S2.define('select2/selection/base',[
- 'jquery',
- '../utils',
- '../keys'
-], function ($, Utils, KEYS) {
- function BaseSelection ($element, options) {
- this.$element = $element;
- this.options = options;
-
- BaseSelection.__super__.constructor.call(this);
- }
-
- Utils.Extend(BaseSelection, Utils.Observable);
-
- BaseSelection.prototype.render = function () {
- var $selection = $(
- '
' +
- ' '
- );
-
- this._tabindex = 0;
-
- if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {
- this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');
- } else if (this.$element.attr('tabindex') != null) {
- this._tabindex = this.$element.attr('tabindex');
- }
-
- $selection.attr('title', this.$element.attr('title'));
- $selection.attr('tabindex', this._tabindex);
- $selection.attr('aria-disabled', 'false');
-
- this.$selection = $selection;
-
- return $selection;
- };
-
- BaseSelection.prototype.bind = function (container, $container) {
- var self = this;
-
- var resultsId = container.id + '-results';
-
- this.container = container;
-
- this.$selection.on('focus', function (evt) {
- self.trigger('focus', evt);
- });
-
- this.$selection.on('blur', function (evt) {
- self._handleBlur(evt);
- });
-
- this.$selection.on('keydown', function (evt) {
- self.trigger('keypress', evt);
-
- if (evt.which === KEYS.SPACE) {
- evt.preventDefault();
- }
- });
-
- container.on('results:focus', function (params) {
- self.$selection.attr('aria-activedescendant', params.data._resultId);
- });
-
- container.on('selection:update', function (params) {
- self.update(params.data);
- });
-
- container.on('open', function () {
- // When the dropdown is open, aria-expanded="true"
- self.$selection.attr('aria-expanded', 'true');
- self.$selection.attr('aria-owns', resultsId);
-
- self._attachCloseHandler(container);
- });
-
- container.on('close', function () {
- // When the dropdown is closed, aria-expanded="false"
- self.$selection.attr('aria-expanded', 'false');
- self.$selection.removeAttr('aria-activedescendant');
- self.$selection.removeAttr('aria-owns');
-
- self.$selection.trigger('focus');
-
- self._detachCloseHandler(container);
- });
-
- container.on('enable', function () {
- self.$selection.attr('tabindex', self._tabindex);
- self.$selection.attr('aria-disabled', 'false');
- });
-
- container.on('disable', function () {
- self.$selection.attr('tabindex', '-1');
- self.$selection.attr('aria-disabled', 'true');
- });
- };
-
- BaseSelection.prototype._handleBlur = function (evt) {
- var self = this;
-
- // This needs to be delayed as the active element is the body when the tab
- // key is pressed, possibly along with others.
- window.setTimeout(function () {
- // Don't trigger `blur` if the focus is still in the selection
- if (
- (document.activeElement == self.$selection[0]) ||
- ($.contains(self.$selection[0], document.activeElement))
- ) {
- return;
- }
-
- self.trigger('blur', evt);
- }, 1);
- };
-
- BaseSelection.prototype._attachCloseHandler = function (container) {
-
- $(document.body).on('mousedown.select2.' + container.id, function (e) {
- var $target = $(e.target);
-
- var $select = $target.closest('.select2');
-
- var $all = $('.select2.select2-container--open');
-
- $all.each(function () {
- if (this == $select[0]) {
- return;
- }
-
- var $element = Utils.GetData(this, 'element');
-
- $element.select2('close');
- });
- });
- };
-
- BaseSelection.prototype._detachCloseHandler = function (container) {
- $(document.body).off('mousedown.select2.' + container.id);
- };
-
- BaseSelection.prototype.position = function ($selection, $container) {
- var $selectionContainer = $container.find('.selection');
- $selectionContainer.append($selection);
- };
-
- BaseSelection.prototype.destroy = function () {
- this._detachCloseHandler(this.container);
- };
-
- BaseSelection.prototype.update = function (data) {
- throw new Error('The `update` method must be defined in child classes.');
- };
-
- /**
- * Helper method to abstract the "enabled" (not "disabled") state of this
- * object.
- *
- * @return {true} if the instance is not disabled.
- * @return {false} if the instance is disabled.
- */
- BaseSelection.prototype.isEnabled = function () {
- return !this.isDisabled();
- };
-
- /**
- * Helper method to abstract the "disabled" state of this object.
- *
- * @return {true} if the disabled option is true.
- * @return {false} if the disabled option is false.
- */
- BaseSelection.prototype.isDisabled = function () {
- return this.options.get('disabled');
- };
-
- return BaseSelection;
-});
-
-S2.define('select2/selection/single',[
- 'jquery',
- './base',
- '../utils',
- '../keys'
-], function ($, BaseSelection, Utils, KEYS) {
- function SingleSelection () {
- SingleSelection.__super__.constructor.apply(this, arguments);
- }
-
- Utils.Extend(SingleSelection, BaseSelection);
-
- SingleSelection.prototype.render = function () {
- var $selection = SingleSelection.__super__.render.call(this);
-
- $selection.addClass('select2-selection--single');
-
- $selection.html(
- '
' +
- '
' +
- ' ' +
- ' '
- );
-
- return $selection;
- };
-
- SingleSelection.prototype.bind = function (container, $container) {
- var self = this;
-
- SingleSelection.__super__.bind.apply(this, arguments);
-
- var id = container.id + '-container';
-
- this.$selection.find('.select2-selection__rendered')
- .attr('id', id)
- .attr('role', 'textbox')
- .attr('aria-readonly', 'true');
- this.$selection.attr('aria-labelledby', id);
-
- this.$selection.on('mousedown', function (evt) {
- // Only respond to left clicks
- if (evt.which !== 1) {
- return;
- }
-
- self.trigger('toggle', {
- originalEvent: evt
- });
- });
-
- this.$selection.on('focus', function (evt) {
- // User focuses on the container
- });
-
- this.$selection.on('blur', function (evt) {
- // User exits the container
- });
-
- container.on('focus', function (evt) {
- if (!container.isOpen()) {
- self.$selection.trigger('focus');
- }
- });
- };
-
- SingleSelection.prototype.clear = function () {
- var $rendered = this.$selection.find('.select2-selection__rendered');
- $rendered.empty();
- $rendered.removeAttr('title'); // clear tooltip on empty
- };
-
- SingleSelection.prototype.display = function (data, container) {
- var template = this.options.get('templateSelection');
- var escapeMarkup = this.options.get('escapeMarkup');
-
- return escapeMarkup(template(data, container));
- };
-
- SingleSelection.prototype.selectionContainer = function () {
- return $('
');
- };
-
- SingleSelection.prototype.update = function (data) {
- if (data.length === 0) {
- this.clear();
- return;
- }
-
- var selection = data[0];
-
- var $rendered = this.$selection.find('.select2-selection__rendered');
- var formatted = this.display(selection, $rendered);
-
- $rendered.empty().append(formatted);
-
- var title = selection.title || selection.text;
-
- if (title) {
- $rendered.attr('title', title);
- } else {
- $rendered.removeAttr('title');
- }
- };
-
- return SingleSelection;
-});
-
-S2.define('select2/selection/multiple',[
- 'jquery',
- './base',
- '../utils'
-], function ($, BaseSelection, Utils) {
- function MultipleSelection ($element, options) {
- MultipleSelection.__super__.constructor.apply(this, arguments);
- }
-
- Utils.Extend(MultipleSelection, BaseSelection);
-
- MultipleSelection.prototype.render = function () {
- var $selection = MultipleSelection.__super__.render.call(this);
-
- $selection.addClass('select2-selection--multiple');
-
- $selection.html(
- '
'
- );
-
- return $selection;
- };
-
- MultipleSelection.prototype.bind = function (container, $container) {
- var self = this;
-
- MultipleSelection.__super__.bind.apply(this, arguments);
-
- this.$selection.on('click', function (evt) {
- self.trigger('toggle', {
- originalEvent: evt
- });
- });
-
- this.$selection.on(
- 'click',
- '.select2-selection__choice__remove',
- function (evt) {
- // Ignore the event if it is disabled
- if (self.isDisabled()) {
- return;
- }
-
- var $remove = $(this);
- var $selection = $remove.parent();
-
- var data = Utils.GetData($selection[0], 'data');
-
- self.trigger('unselect', {
- originalEvent: evt,
- data: data
- });
- }
- );
- };
-
- MultipleSelection.prototype.clear = function () {
- var $rendered = this.$selection.find('.select2-selection__rendered');
- $rendered.empty();
- $rendered.removeAttr('title');
- };
-
- MultipleSelection.prototype.display = function (data, container) {
- var template = this.options.get('templateSelection');
- var escapeMarkup = this.options.get('escapeMarkup');
-
- return escapeMarkup(template(data, container));
- };
-
- MultipleSelection.prototype.selectionContainer = function () {
- var $container = $(
- '
' +
- '' +
- '×' +
- ' ' +
- ' '
- );
-
- return $container;
- };
-
- MultipleSelection.prototype.update = function (data) {
- this.clear();
-
- if (data.length === 0) {
- return;
- }
-
- var $selections = [];
-
- for (var d = 0; d < data.length; d++) {
- var selection = data[d];
-
- var $selection = this.selectionContainer();
- var formatted = this.display(selection, $selection);
-
- $selection.append(formatted);
-
- var title = selection.title || selection.text;
-
- if (title) {
- $selection.attr('title', title);
- }
-
- Utils.StoreData($selection[0], 'data', selection);
-
- $selections.push($selection);
- }
-
- var $rendered = this.$selection.find('.select2-selection__rendered');
-
- Utils.appendMany($rendered, $selections);
- };
-
- return MultipleSelection;
-});
-
-S2.define('select2/selection/placeholder',[
- '../utils'
-], function (Utils) {
- function Placeholder (decorated, $element, options) {
- this.placeholder = this.normalizePlaceholder(options.get('placeholder'));
-
- decorated.call(this, $element, options);
- }
-
- Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {
- if (typeof placeholder === 'string') {
- placeholder = {
- id: '',
- text: placeholder
- };
- }
-
- return placeholder;
- };
-
- Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {
- var $placeholder = this.selectionContainer();
-
- $placeholder.html(this.display(placeholder));
- $placeholder.addClass('select2-selection__placeholder')
- .removeClass('select2-selection__choice');
-
- return $placeholder;
- };
-
- Placeholder.prototype.update = function (decorated, data) {
- var singlePlaceholder = (
- data.length == 1 && data[0].id != this.placeholder.id
- );
- var multipleSelections = data.length > 1;
-
- if (multipleSelections || singlePlaceholder) {
- return decorated.call(this, data);
- }
-
- this.clear();
-
- var $placeholder = this.createPlaceholder(this.placeholder);
-
- this.$selection.find('.select2-selection__rendered').append($placeholder);
- };
-
- return Placeholder;
-});
-
-S2.define('select2/selection/allowClear',[
- 'jquery',
- '../keys',
- '../utils'
-], function ($, KEYS, Utils) {
- function AllowClear () { }
-
- AllowClear.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- decorated.call(this, container, $container);
-
- if (this.placeholder == null) {
- if (this.options.get('debug') && window.console && console.error) {
- console.error(
- 'Select2: The `allowClear` option should be used in combination ' +
- 'with the `placeholder` option.'
- );
- }
- }
-
- this.$selection.on('mousedown', '.select2-selection__clear',
- function (evt) {
- self._handleClear(evt);
- });
-
- container.on('keypress', function (evt) {
- self._handleKeyboardClear(evt, container);
- });
- };
-
- AllowClear.prototype._handleClear = function (_, evt) {
- // Ignore the event if it is disabled
- if (this.isDisabled()) {
- return;
- }
-
- var $clear = this.$selection.find('.select2-selection__clear');
-
- // Ignore the event if nothing has been selected
- if ($clear.length === 0) {
- return;
- }
-
- evt.stopPropagation();
-
- var data = Utils.GetData($clear[0], 'data');
-
- var previousVal = this.$element.val();
- this.$element.val(this.placeholder.id);
-
- var unselectData = {
- data: data
- };
- this.trigger('clear', unselectData);
- if (unselectData.prevented) {
- this.$element.val(previousVal);
- return;
- }
-
- for (var d = 0; d < data.length; d++) {
- unselectData = {
- data: data[d]
- };
-
- // Trigger the `unselect` event, so people can prevent it from being
- // cleared.
- this.trigger('unselect', unselectData);
-
- // If the event was prevented, don't clear it out.
- if (unselectData.prevented) {
- this.$element.val(previousVal);
- return;
- }
- }
-
- this.$element.trigger('input').trigger('change');
-
- this.trigger('toggle', {});
- };
-
- AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {
- if (container.isOpen()) {
- return;
- }
-
- if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {
- this._handleClear(evt);
- }
- };
-
- AllowClear.prototype.update = function (decorated, data) {
- decorated.call(this, data);
-
- if (this.$selection.find('.select2-selection__placeholder').length > 0 ||
- data.length === 0) {
- return;
- }
-
- var removeAll = this.options.get('translations').get('removeAllItems');
-
- var $remove = $(
- '
' +
- '×' +
- ' '
- );
- Utils.StoreData($remove[0], 'data', data);
-
- this.$selection.find('.select2-selection__rendered').prepend($remove);
- };
-
- return AllowClear;
-});
-
-S2.define('select2/selection/search',[
- 'jquery',
- '../utils',
- '../keys'
-], function ($, Utils, KEYS) {
- function Search (decorated, $element, options) {
- decorated.call(this, $element, options);
- }
-
- Search.prototype.render = function (decorated) {
- var $search = $(
- '
' +
- ' ' +
- ' '
- );
-
- this.$searchContainer = $search;
- this.$search = $search.find('input');
-
- var $rendered = decorated.call(this);
-
- this._transferTabIndex();
-
- return $rendered;
- };
-
- Search.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- var resultsId = container.id + '-results';
-
- decorated.call(this, container, $container);
-
- container.on('open', function () {
- self.$search.attr('aria-controls', resultsId);
- self.$search.trigger('focus');
- });
-
- container.on('close', function () {
- self.$search.val('');
- self.$search.removeAttr('aria-controls');
- self.$search.removeAttr('aria-activedescendant');
- self.$search.trigger('focus');
- });
-
- container.on('enable', function () {
- self.$search.prop('disabled', false);
-
- self._transferTabIndex();
- });
-
- container.on('disable', function () {
- self.$search.prop('disabled', true);
- });
-
- container.on('focus', function (evt) {
- self.$search.trigger('focus');
- });
-
- container.on('results:focus', function (params) {
- if (params.data._resultId) {
- self.$search.attr('aria-activedescendant', params.data._resultId);
- } else {
- self.$search.removeAttr('aria-activedescendant');
- }
- });
-
- this.$selection.on('focusin', '.select2-search--inline', function (evt) {
- self.trigger('focus', evt);
- });
-
- this.$selection.on('focusout', '.select2-search--inline', function (evt) {
- self._handleBlur(evt);
- });
-
- this.$selection.on('keydown', '.select2-search--inline', function (evt) {
- evt.stopPropagation();
-
- self.trigger('keypress', evt);
-
- self._keyUpPrevented = evt.isDefaultPrevented();
-
- var key = evt.which;
-
- if (key === KEYS.BACKSPACE && self.$search.val() === '') {
- var $previousChoice = self.$searchContainer
- .prev('.select2-selection__choice');
-
- if ($previousChoice.length > 0) {
- var item = Utils.GetData($previousChoice[0], 'data');
-
- self.searchRemoveChoice(item);
-
- evt.preventDefault();
- }
- }
- });
-
- this.$selection.on('click', '.select2-search--inline', function (evt) {
- if (self.$search.val()) {
- evt.stopPropagation();
- }
- });
-
- // Try to detect the IE version should the `documentMode` property that
- // is stored on the document. This is only implemented in IE and is
- // slightly cleaner than doing a user agent check.
- // This property is not available in Edge, but Edge also doesn't have
- // this bug.
- var msie = document.documentMode;
- var disableInputEvents = msie && msie <= 11;
-
- // Workaround for browsers which do not support the `input` event
- // This will prevent double-triggering of events for browsers which support
- // both the `keyup` and `input` events.
- this.$selection.on(
- 'input.searchcheck',
- '.select2-search--inline',
- function (evt) {
- // IE will trigger the `input` event when a placeholder is used on a
- // search box. To get around this issue, we are forced to ignore all
- // `input` events in IE and keep using `keyup`.
- if (disableInputEvents) {
- self.$selection.off('input.search input.searchcheck');
- return;
- }
-
- // Unbind the duplicated `keyup` event
- self.$selection.off('keyup.search');
- }
- );
-
- this.$selection.on(
- 'keyup.search input.search',
- '.select2-search--inline',
- function (evt) {
- // IE will trigger the `input` event when a placeholder is used on a
- // search box. To get around this issue, we are forced to ignore all
- // `input` events in IE and keep using `keyup`.
- if (disableInputEvents && evt.type === 'input') {
- self.$selection.off('input.search input.searchcheck');
- return;
- }
-
- var key = evt.which;
-
- // We can freely ignore events from modifier keys
- if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {
- return;
- }
-
- // Tabbing will be handled during the `keydown` phase
- if (key == KEYS.TAB) {
- return;
- }
-
- self.handleSearch(evt);
- }
- );
- };
-
- /**
- * This method will transfer the tabindex attribute from the rendered
- * selection to the search box. This allows for the search box to be used as
- * the primary focus instead of the selection container.
- *
- * @private
- */
- Search.prototype._transferTabIndex = function (decorated) {
- this.$search.attr('tabindex', this.$selection.attr('tabindex'));
- this.$selection.attr('tabindex', '-1');
- };
-
- Search.prototype.createPlaceholder = function (decorated, placeholder) {
- this.$search.attr('placeholder', placeholder.text);
- };
-
- Search.prototype.update = function (decorated, data) {
- var searchHadFocus = this.$search[0] == document.activeElement;
-
- this.$search.attr('placeholder', '');
-
- decorated.call(this, data);
-
- this.$selection.find('.select2-selection__rendered')
- .append(this.$searchContainer);
-
- this.resizeSearch();
- if (searchHadFocus) {
- this.$search.trigger('focus');
- }
- };
-
- Search.prototype.handleSearch = function () {
- this.resizeSearch();
-
- if (!this._keyUpPrevented) {
- var input = this.$search.val();
-
- this.trigger('query', {
- term: input
- });
- }
-
- this._keyUpPrevented = false;
- };
-
- Search.prototype.searchRemoveChoice = function (decorated, item) {
- this.trigger('unselect', {
- data: item
- });
-
- this.$search.val(item.text);
- this.handleSearch();
- };
-
- Search.prototype.resizeSearch = function () {
- this.$search.css('width', '25px');
-
- var width = '';
-
- if (this.$search.attr('placeholder') !== '') {
- width = this.$selection.find('.select2-selection__rendered').width();
- } else {
- var minimumWidth = this.$search.val().length + 1;
-
- width = (minimumWidth * 0.75) + 'em';
- }
-
- this.$search.css('width', width);
- };
-
- return Search;
-});
-
-S2.define('select2/selection/eventRelay',[
- 'jquery'
-], function ($) {
- function EventRelay () { }
-
- EventRelay.prototype.bind = function (decorated, container, $container) {
- var self = this;
- var relayEvents = [
- 'open', 'opening',
- 'close', 'closing',
- 'select', 'selecting',
- 'unselect', 'unselecting',
- 'clear', 'clearing'
- ];
-
- var preventableEvents = [
- 'opening', 'closing', 'selecting', 'unselecting', 'clearing'
- ];
-
- decorated.call(this, container, $container);
-
- container.on('*', function (name, params) {
- // Ignore events that should not be relayed
- if ($.inArray(name, relayEvents) === -1) {
- return;
- }
-
- // The parameters should always be an object
- params = params || {};
-
- // Generate the jQuery event for the Select2 event
- var evt = $.Event('select2:' + name, {
- params: params
- });
-
- self.$element.trigger(evt);
-
- // Only handle preventable events if it was one
- if ($.inArray(name, preventableEvents) === -1) {
- return;
- }
-
- params.prevented = evt.isDefaultPrevented();
- });
- };
-
- return EventRelay;
-});
-
-S2.define('select2/translation',[
- 'jquery',
- 'require'
-], function ($, require) {
- function Translation (dict) {
- this.dict = dict || {};
- }
-
- Translation.prototype.all = function () {
- return this.dict;
- };
-
- Translation.prototype.get = function (key) {
- return this.dict[key];
- };
-
- Translation.prototype.extend = function (translation) {
- this.dict = $.extend({}, translation.all(), this.dict);
- };
-
- // Static functions
-
- Translation._cache = {};
-
- Translation.loadPath = function (path) {
- if (!(path in Translation._cache)) {
- var translations = require(path);
-
- Translation._cache[path] = translations;
- }
-
- return new Translation(Translation._cache[path]);
- };
-
- return Translation;
-});
-
-S2.define('select2/diacritics',[
-
-], function () {
- var diacritics = {
- '\u24B6': 'A',
- '\uFF21': 'A',
- '\u00C0': 'A',
- '\u00C1': 'A',
- '\u00C2': 'A',
- '\u1EA6': 'A',
- '\u1EA4': 'A',
- '\u1EAA': 'A',
- '\u1EA8': 'A',
- '\u00C3': 'A',
- '\u0100': 'A',
- '\u0102': 'A',
- '\u1EB0': 'A',
- '\u1EAE': 'A',
- '\u1EB4': 'A',
- '\u1EB2': 'A',
- '\u0226': 'A',
- '\u01E0': 'A',
- '\u00C4': 'A',
- '\u01DE': 'A',
- '\u1EA2': 'A',
- '\u00C5': 'A',
- '\u01FA': 'A',
- '\u01CD': 'A',
- '\u0200': 'A',
- '\u0202': 'A',
- '\u1EA0': 'A',
- '\u1EAC': 'A',
- '\u1EB6': 'A',
- '\u1E00': 'A',
- '\u0104': 'A',
- '\u023A': 'A',
- '\u2C6F': 'A',
- '\uA732': 'AA',
- '\u00C6': 'AE',
- '\u01FC': 'AE',
- '\u01E2': 'AE',
- '\uA734': 'AO',
- '\uA736': 'AU',
- '\uA738': 'AV',
- '\uA73A': 'AV',
- '\uA73C': 'AY',
- '\u24B7': 'B',
- '\uFF22': 'B',
- '\u1E02': 'B',
- '\u1E04': 'B',
- '\u1E06': 'B',
- '\u0243': 'B',
- '\u0182': 'B',
- '\u0181': 'B',
- '\u24B8': 'C',
- '\uFF23': 'C',
- '\u0106': 'C',
- '\u0108': 'C',
- '\u010A': 'C',
- '\u010C': 'C',
- '\u00C7': 'C',
- '\u1E08': 'C',
- '\u0187': 'C',
- '\u023B': 'C',
- '\uA73E': 'C',
- '\u24B9': 'D',
- '\uFF24': 'D',
- '\u1E0A': 'D',
- '\u010E': 'D',
- '\u1E0C': 'D',
- '\u1E10': 'D',
- '\u1E12': 'D',
- '\u1E0E': 'D',
- '\u0110': 'D',
- '\u018B': 'D',
- '\u018A': 'D',
- '\u0189': 'D',
- '\uA779': 'D',
- '\u01F1': 'DZ',
- '\u01C4': 'DZ',
- '\u01F2': 'Dz',
- '\u01C5': 'Dz',
- '\u24BA': 'E',
- '\uFF25': 'E',
- '\u00C8': 'E',
- '\u00C9': 'E',
- '\u00CA': 'E',
- '\u1EC0': 'E',
- '\u1EBE': 'E',
- '\u1EC4': 'E',
- '\u1EC2': 'E',
- '\u1EBC': 'E',
- '\u0112': 'E',
- '\u1E14': 'E',
- '\u1E16': 'E',
- '\u0114': 'E',
- '\u0116': 'E',
- '\u00CB': 'E',
- '\u1EBA': 'E',
- '\u011A': 'E',
- '\u0204': 'E',
- '\u0206': 'E',
- '\u1EB8': 'E',
- '\u1EC6': 'E',
- '\u0228': 'E',
- '\u1E1C': 'E',
- '\u0118': 'E',
- '\u1E18': 'E',
- '\u1E1A': 'E',
- '\u0190': 'E',
- '\u018E': 'E',
- '\u24BB': 'F',
- '\uFF26': 'F',
- '\u1E1E': 'F',
- '\u0191': 'F',
- '\uA77B': 'F',
- '\u24BC': 'G',
- '\uFF27': 'G',
- '\u01F4': 'G',
- '\u011C': 'G',
- '\u1E20': 'G',
- '\u011E': 'G',
- '\u0120': 'G',
- '\u01E6': 'G',
- '\u0122': 'G',
- '\u01E4': 'G',
- '\u0193': 'G',
- '\uA7A0': 'G',
- '\uA77D': 'G',
- '\uA77E': 'G',
- '\u24BD': 'H',
- '\uFF28': 'H',
- '\u0124': 'H',
- '\u1E22': 'H',
- '\u1E26': 'H',
- '\u021E': 'H',
- '\u1E24': 'H',
- '\u1E28': 'H',
- '\u1E2A': 'H',
- '\u0126': 'H',
- '\u2C67': 'H',
- '\u2C75': 'H',
- '\uA78D': 'H',
- '\u24BE': 'I',
- '\uFF29': 'I',
- '\u00CC': 'I',
- '\u00CD': 'I',
- '\u00CE': 'I',
- '\u0128': 'I',
- '\u012A': 'I',
- '\u012C': 'I',
- '\u0130': 'I',
- '\u00CF': 'I',
- '\u1E2E': 'I',
- '\u1EC8': 'I',
- '\u01CF': 'I',
- '\u0208': 'I',
- '\u020A': 'I',
- '\u1ECA': 'I',
- '\u012E': 'I',
- '\u1E2C': 'I',
- '\u0197': 'I',
- '\u24BF': 'J',
- '\uFF2A': 'J',
- '\u0134': 'J',
- '\u0248': 'J',
- '\u24C0': 'K',
- '\uFF2B': 'K',
- '\u1E30': 'K',
- '\u01E8': 'K',
- '\u1E32': 'K',
- '\u0136': 'K',
- '\u1E34': 'K',
- '\u0198': 'K',
- '\u2C69': 'K',
- '\uA740': 'K',
- '\uA742': 'K',
- '\uA744': 'K',
- '\uA7A2': 'K',
- '\u24C1': 'L',
- '\uFF2C': 'L',
- '\u013F': 'L',
- '\u0139': 'L',
- '\u013D': 'L',
- '\u1E36': 'L',
- '\u1E38': 'L',
- '\u013B': 'L',
- '\u1E3C': 'L',
- '\u1E3A': 'L',
- '\u0141': 'L',
- '\u023D': 'L',
- '\u2C62': 'L',
- '\u2C60': 'L',
- '\uA748': 'L',
- '\uA746': 'L',
- '\uA780': 'L',
- '\u01C7': 'LJ',
- '\u01C8': 'Lj',
- '\u24C2': 'M',
- '\uFF2D': 'M',
- '\u1E3E': 'M',
- '\u1E40': 'M',
- '\u1E42': 'M',
- '\u2C6E': 'M',
- '\u019C': 'M',
- '\u24C3': 'N',
- '\uFF2E': 'N',
- '\u01F8': 'N',
- '\u0143': 'N',
- '\u00D1': 'N',
- '\u1E44': 'N',
- '\u0147': 'N',
- '\u1E46': 'N',
- '\u0145': 'N',
- '\u1E4A': 'N',
- '\u1E48': 'N',
- '\u0220': 'N',
- '\u019D': 'N',
- '\uA790': 'N',
- '\uA7A4': 'N',
- '\u01CA': 'NJ',
- '\u01CB': 'Nj',
- '\u24C4': 'O',
- '\uFF2F': 'O',
- '\u00D2': 'O',
- '\u00D3': 'O',
- '\u00D4': 'O',
- '\u1ED2': 'O',
- '\u1ED0': 'O',
- '\u1ED6': 'O',
- '\u1ED4': 'O',
- '\u00D5': 'O',
- '\u1E4C': 'O',
- '\u022C': 'O',
- '\u1E4E': 'O',
- '\u014C': 'O',
- '\u1E50': 'O',
- '\u1E52': 'O',
- '\u014E': 'O',
- '\u022E': 'O',
- '\u0230': 'O',
- '\u00D6': 'O',
- '\u022A': 'O',
- '\u1ECE': 'O',
- '\u0150': 'O',
- '\u01D1': 'O',
- '\u020C': 'O',
- '\u020E': 'O',
- '\u01A0': 'O',
- '\u1EDC': 'O',
- '\u1EDA': 'O',
- '\u1EE0': 'O',
- '\u1EDE': 'O',
- '\u1EE2': 'O',
- '\u1ECC': 'O',
- '\u1ED8': 'O',
- '\u01EA': 'O',
- '\u01EC': 'O',
- '\u00D8': 'O',
- '\u01FE': 'O',
- '\u0186': 'O',
- '\u019F': 'O',
- '\uA74A': 'O',
- '\uA74C': 'O',
- '\u0152': 'OE',
- '\u01A2': 'OI',
- '\uA74E': 'OO',
- '\u0222': 'OU',
- '\u24C5': 'P',
- '\uFF30': 'P',
- '\u1E54': 'P',
- '\u1E56': 'P',
- '\u01A4': 'P',
- '\u2C63': 'P',
- '\uA750': 'P',
- '\uA752': 'P',
- '\uA754': 'P',
- '\u24C6': 'Q',
- '\uFF31': 'Q',
- '\uA756': 'Q',
- '\uA758': 'Q',
- '\u024A': 'Q',
- '\u24C7': 'R',
- '\uFF32': 'R',
- '\u0154': 'R',
- '\u1E58': 'R',
- '\u0158': 'R',
- '\u0210': 'R',
- '\u0212': 'R',
- '\u1E5A': 'R',
- '\u1E5C': 'R',
- '\u0156': 'R',
- '\u1E5E': 'R',
- '\u024C': 'R',
- '\u2C64': 'R',
- '\uA75A': 'R',
- '\uA7A6': 'R',
- '\uA782': 'R',
- '\u24C8': 'S',
- '\uFF33': 'S',
- '\u1E9E': 'S',
- '\u015A': 'S',
- '\u1E64': 'S',
- '\u015C': 'S',
- '\u1E60': 'S',
- '\u0160': 'S',
- '\u1E66': 'S',
- '\u1E62': 'S',
- '\u1E68': 'S',
- '\u0218': 'S',
- '\u015E': 'S',
- '\u2C7E': 'S',
- '\uA7A8': 'S',
- '\uA784': 'S',
- '\u24C9': 'T',
- '\uFF34': 'T',
- '\u1E6A': 'T',
- '\u0164': 'T',
- '\u1E6C': 'T',
- '\u021A': 'T',
- '\u0162': 'T',
- '\u1E70': 'T',
- '\u1E6E': 'T',
- '\u0166': 'T',
- '\u01AC': 'T',
- '\u01AE': 'T',
- '\u023E': 'T',
- '\uA786': 'T',
- '\uA728': 'TZ',
- '\u24CA': 'U',
- '\uFF35': 'U',
- '\u00D9': 'U',
- '\u00DA': 'U',
- '\u00DB': 'U',
- '\u0168': 'U',
- '\u1E78': 'U',
- '\u016A': 'U',
- '\u1E7A': 'U',
- '\u016C': 'U',
- '\u00DC': 'U',
- '\u01DB': 'U',
- '\u01D7': 'U',
- '\u01D5': 'U',
- '\u01D9': 'U',
- '\u1EE6': 'U',
- '\u016E': 'U',
- '\u0170': 'U',
- '\u01D3': 'U',
- '\u0214': 'U',
- '\u0216': 'U',
- '\u01AF': 'U',
- '\u1EEA': 'U',
- '\u1EE8': 'U',
- '\u1EEE': 'U',
- '\u1EEC': 'U',
- '\u1EF0': 'U',
- '\u1EE4': 'U',
- '\u1E72': 'U',
- '\u0172': 'U',
- '\u1E76': 'U',
- '\u1E74': 'U',
- '\u0244': 'U',
- '\u24CB': 'V',
- '\uFF36': 'V',
- '\u1E7C': 'V',
- '\u1E7E': 'V',
- '\u01B2': 'V',
- '\uA75E': 'V',
- '\u0245': 'V',
- '\uA760': 'VY',
- '\u24CC': 'W',
- '\uFF37': 'W',
- '\u1E80': 'W',
- '\u1E82': 'W',
- '\u0174': 'W',
- '\u1E86': 'W',
- '\u1E84': 'W',
- '\u1E88': 'W',
- '\u2C72': 'W',
- '\u24CD': 'X',
- '\uFF38': 'X',
- '\u1E8A': 'X',
- '\u1E8C': 'X',
- '\u24CE': 'Y',
- '\uFF39': 'Y',
- '\u1EF2': 'Y',
- '\u00DD': 'Y',
- '\u0176': 'Y',
- '\u1EF8': 'Y',
- '\u0232': 'Y',
- '\u1E8E': 'Y',
- '\u0178': 'Y',
- '\u1EF6': 'Y',
- '\u1EF4': 'Y',
- '\u01B3': 'Y',
- '\u024E': 'Y',
- '\u1EFE': 'Y',
- '\u24CF': 'Z',
- '\uFF3A': 'Z',
- '\u0179': 'Z',
- '\u1E90': 'Z',
- '\u017B': 'Z',
- '\u017D': 'Z',
- '\u1E92': 'Z',
- '\u1E94': 'Z',
- '\u01B5': 'Z',
- '\u0224': 'Z',
- '\u2C7F': 'Z',
- '\u2C6B': 'Z',
- '\uA762': 'Z',
- '\u24D0': 'a',
- '\uFF41': 'a',
- '\u1E9A': 'a',
- '\u00E0': 'a',
- '\u00E1': 'a',
- '\u00E2': 'a',
- '\u1EA7': 'a',
- '\u1EA5': 'a',
- '\u1EAB': 'a',
- '\u1EA9': 'a',
- '\u00E3': 'a',
- '\u0101': 'a',
- '\u0103': 'a',
- '\u1EB1': 'a',
- '\u1EAF': 'a',
- '\u1EB5': 'a',
- '\u1EB3': 'a',
- '\u0227': 'a',
- '\u01E1': 'a',
- '\u00E4': 'a',
- '\u01DF': 'a',
- '\u1EA3': 'a',
- '\u00E5': 'a',
- '\u01FB': 'a',
- '\u01CE': 'a',
- '\u0201': 'a',
- '\u0203': 'a',
- '\u1EA1': 'a',
- '\u1EAD': 'a',
- '\u1EB7': 'a',
- '\u1E01': 'a',
- '\u0105': 'a',
- '\u2C65': 'a',
- '\u0250': 'a',
- '\uA733': 'aa',
- '\u00E6': 'ae',
- '\u01FD': 'ae',
- '\u01E3': 'ae',
- '\uA735': 'ao',
- '\uA737': 'au',
- '\uA739': 'av',
- '\uA73B': 'av',
- '\uA73D': 'ay',
- '\u24D1': 'b',
- '\uFF42': 'b',
- '\u1E03': 'b',
- '\u1E05': 'b',
- '\u1E07': 'b',
- '\u0180': 'b',
- '\u0183': 'b',
- '\u0253': 'b',
- '\u24D2': 'c',
- '\uFF43': 'c',
- '\u0107': 'c',
- '\u0109': 'c',
- '\u010B': 'c',
- '\u010D': 'c',
- '\u00E7': 'c',
- '\u1E09': 'c',
- '\u0188': 'c',
- '\u023C': 'c',
- '\uA73F': 'c',
- '\u2184': 'c',
- '\u24D3': 'd',
- '\uFF44': 'd',
- '\u1E0B': 'd',
- '\u010F': 'd',
- '\u1E0D': 'd',
- '\u1E11': 'd',
- '\u1E13': 'd',
- '\u1E0F': 'd',
- '\u0111': 'd',
- '\u018C': 'd',
- '\u0256': 'd',
- '\u0257': 'd',
- '\uA77A': 'd',
- '\u01F3': 'dz',
- '\u01C6': 'dz',
- '\u24D4': 'e',
- '\uFF45': 'e',
- '\u00E8': 'e',
- '\u00E9': 'e',
- '\u00EA': 'e',
- '\u1EC1': 'e',
- '\u1EBF': 'e',
- '\u1EC5': 'e',
- '\u1EC3': 'e',
- '\u1EBD': 'e',
- '\u0113': 'e',
- '\u1E15': 'e',
- '\u1E17': 'e',
- '\u0115': 'e',
- '\u0117': 'e',
- '\u00EB': 'e',
- '\u1EBB': 'e',
- '\u011B': 'e',
- '\u0205': 'e',
- '\u0207': 'e',
- '\u1EB9': 'e',
- '\u1EC7': 'e',
- '\u0229': 'e',
- '\u1E1D': 'e',
- '\u0119': 'e',
- '\u1E19': 'e',
- '\u1E1B': 'e',
- '\u0247': 'e',
- '\u025B': 'e',
- '\u01DD': 'e',
- '\u24D5': 'f',
- '\uFF46': 'f',
- '\u1E1F': 'f',
- '\u0192': 'f',
- '\uA77C': 'f',
- '\u24D6': 'g',
- '\uFF47': 'g',
- '\u01F5': 'g',
- '\u011D': 'g',
- '\u1E21': 'g',
- '\u011F': 'g',
- '\u0121': 'g',
- '\u01E7': 'g',
- '\u0123': 'g',
- '\u01E5': 'g',
- '\u0260': 'g',
- '\uA7A1': 'g',
- '\u1D79': 'g',
- '\uA77F': 'g',
- '\u24D7': 'h',
- '\uFF48': 'h',
- '\u0125': 'h',
- '\u1E23': 'h',
- '\u1E27': 'h',
- '\u021F': 'h',
- '\u1E25': 'h',
- '\u1E29': 'h',
- '\u1E2B': 'h',
- '\u1E96': 'h',
- '\u0127': 'h',
- '\u2C68': 'h',
- '\u2C76': 'h',
- '\u0265': 'h',
- '\u0195': 'hv',
- '\u24D8': 'i',
- '\uFF49': 'i',
- '\u00EC': 'i',
- '\u00ED': 'i',
- '\u00EE': 'i',
- '\u0129': 'i',
- '\u012B': 'i',
- '\u012D': 'i',
- '\u00EF': 'i',
- '\u1E2F': 'i',
- '\u1EC9': 'i',
- '\u01D0': 'i',
- '\u0209': 'i',
- '\u020B': 'i',
- '\u1ECB': 'i',
- '\u012F': 'i',
- '\u1E2D': 'i',
- '\u0268': 'i',
- '\u0131': 'i',
- '\u24D9': 'j',
- '\uFF4A': 'j',
- '\u0135': 'j',
- '\u01F0': 'j',
- '\u0249': 'j',
- '\u24DA': 'k',
- '\uFF4B': 'k',
- '\u1E31': 'k',
- '\u01E9': 'k',
- '\u1E33': 'k',
- '\u0137': 'k',
- '\u1E35': 'k',
- '\u0199': 'k',
- '\u2C6A': 'k',
- '\uA741': 'k',
- '\uA743': 'k',
- '\uA745': 'k',
- '\uA7A3': 'k',
- '\u24DB': 'l',
- '\uFF4C': 'l',
- '\u0140': 'l',
- '\u013A': 'l',
- '\u013E': 'l',
- '\u1E37': 'l',
- '\u1E39': 'l',
- '\u013C': 'l',
- '\u1E3D': 'l',
- '\u1E3B': 'l',
- '\u017F': 'l',
- '\u0142': 'l',
- '\u019A': 'l',
- '\u026B': 'l',
- '\u2C61': 'l',
- '\uA749': 'l',
- '\uA781': 'l',
- '\uA747': 'l',
- '\u01C9': 'lj',
- '\u24DC': 'm',
- '\uFF4D': 'm',
- '\u1E3F': 'm',
- '\u1E41': 'm',
- '\u1E43': 'm',
- '\u0271': 'm',
- '\u026F': 'm',
- '\u24DD': 'n',
- '\uFF4E': 'n',
- '\u01F9': 'n',
- '\u0144': 'n',
- '\u00F1': 'n',
- '\u1E45': 'n',
- '\u0148': 'n',
- '\u1E47': 'n',
- '\u0146': 'n',
- '\u1E4B': 'n',
- '\u1E49': 'n',
- '\u019E': 'n',
- '\u0272': 'n',
- '\u0149': 'n',
- '\uA791': 'n',
- '\uA7A5': 'n',
- '\u01CC': 'nj',
- '\u24DE': 'o',
- '\uFF4F': 'o',
- '\u00F2': 'o',
- '\u00F3': 'o',
- '\u00F4': 'o',
- '\u1ED3': 'o',
- '\u1ED1': 'o',
- '\u1ED7': 'o',
- '\u1ED5': 'o',
- '\u00F5': 'o',
- '\u1E4D': 'o',
- '\u022D': 'o',
- '\u1E4F': 'o',
- '\u014D': 'o',
- '\u1E51': 'o',
- '\u1E53': 'o',
- '\u014F': 'o',
- '\u022F': 'o',
- '\u0231': 'o',
- '\u00F6': 'o',
- '\u022B': 'o',
- '\u1ECF': 'o',
- '\u0151': 'o',
- '\u01D2': 'o',
- '\u020D': 'o',
- '\u020F': 'o',
- '\u01A1': 'o',
- '\u1EDD': 'o',
- '\u1EDB': 'o',
- '\u1EE1': 'o',
- '\u1EDF': 'o',
- '\u1EE3': 'o',
- '\u1ECD': 'o',
- '\u1ED9': 'o',
- '\u01EB': 'o',
- '\u01ED': 'o',
- '\u00F8': 'o',
- '\u01FF': 'o',
- '\u0254': 'o',
- '\uA74B': 'o',
- '\uA74D': 'o',
- '\u0275': 'o',
- '\u0153': 'oe',
- '\u01A3': 'oi',
- '\u0223': 'ou',
- '\uA74F': 'oo',
- '\u24DF': 'p',
- '\uFF50': 'p',
- '\u1E55': 'p',
- '\u1E57': 'p',
- '\u01A5': 'p',
- '\u1D7D': 'p',
- '\uA751': 'p',
- '\uA753': 'p',
- '\uA755': 'p',
- '\u24E0': 'q',
- '\uFF51': 'q',
- '\u024B': 'q',
- '\uA757': 'q',
- '\uA759': 'q',
- '\u24E1': 'r',
- '\uFF52': 'r',
- '\u0155': 'r',
- '\u1E59': 'r',
- '\u0159': 'r',
- '\u0211': 'r',
- '\u0213': 'r',
- '\u1E5B': 'r',
- '\u1E5D': 'r',
- '\u0157': 'r',
- '\u1E5F': 'r',
- '\u024D': 'r',
- '\u027D': 'r',
- '\uA75B': 'r',
- '\uA7A7': 'r',
- '\uA783': 'r',
- '\u24E2': 's',
- '\uFF53': 's',
- '\u00DF': 's',
- '\u015B': 's',
- '\u1E65': 's',
- '\u015D': 's',
- '\u1E61': 's',
- '\u0161': 's',
- '\u1E67': 's',
- '\u1E63': 's',
- '\u1E69': 's',
- '\u0219': 's',
- '\u015F': 's',
- '\u023F': 's',
- '\uA7A9': 's',
- '\uA785': 's',
- '\u1E9B': 's',
- '\u24E3': 't',
- '\uFF54': 't',
- '\u1E6B': 't',
- '\u1E97': 't',
- '\u0165': 't',
- '\u1E6D': 't',
- '\u021B': 't',
- '\u0163': 't',
- '\u1E71': 't',
- '\u1E6F': 't',
- '\u0167': 't',
- '\u01AD': 't',
- '\u0288': 't',
- '\u2C66': 't',
- '\uA787': 't',
- '\uA729': 'tz',
- '\u24E4': 'u',
- '\uFF55': 'u',
- '\u00F9': 'u',
- '\u00FA': 'u',
- '\u00FB': 'u',
- '\u0169': 'u',
- '\u1E79': 'u',
- '\u016B': 'u',
- '\u1E7B': 'u',
- '\u016D': 'u',
- '\u00FC': 'u',
- '\u01DC': 'u',
- '\u01D8': 'u',
- '\u01D6': 'u',
- '\u01DA': 'u',
- '\u1EE7': 'u',
- '\u016F': 'u',
- '\u0171': 'u',
- '\u01D4': 'u',
- '\u0215': 'u',
- '\u0217': 'u',
- '\u01B0': 'u',
- '\u1EEB': 'u',
- '\u1EE9': 'u',
- '\u1EEF': 'u',
- '\u1EED': 'u',
- '\u1EF1': 'u',
- '\u1EE5': 'u',
- '\u1E73': 'u',
- '\u0173': 'u',
- '\u1E77': 'u',
- '\u1E75': 'u',
- '\u0289': 'u',
- '\u24E5': 'v',
- '\uFF56': 'v',
- '\u1E7D': 'v',
- '\u1E7F': 'v',
- '\u028B': 'v',
- '\uA75F': 'v',
- '\u028C': 'v',
- '\uA761': 'vy',
- '\u24E6': 'w',
- '\uFF57': 'w',
- '\u1E81': 'w',
- '\u1E83': 'w',
- '\u0175': 'w',
- '\u1E87': 'w',
- '\u1E85': 'w',
- '\u1E98': 'w',
- '\u1E89': 'w',
- '\u2C73': 'w',
- '\u24E7': 'x',
- '\uFF58': 'x',
- '\u1E8B': 'x',
- '\u1E8D': 'x',
- '\u24E8': 'y',
- '\uFF59': 'y',
- '\u1EF3': 'y',
- '\u00FD': 'y',
- '\u0177': 'y',
- '\u1EF9': 'y',
- '\u0233': 'y',
- '\u1E8F': 'y',
- '\u00FF': 'y',
- '\u1EF7': 'y',
- '\u1E99': 'y',
- '\u1EF5': 'y',
- '\u01B4': 'y',
- '\u024F': 'y',
- '\u1EFF': 'y',
- '\u24E9': 'z',
- '\uFF5A': 'z',
- '\u017A': 'z',
- '\u1E91': 'z',
- '\u017C': 'z',
- '\u017E': 'z',
- '\u1E93': 'z',
- '\u1E95': 'z',
- '\u01B6': 'z',
- '\u0225': 'z',
- '\u0240': 'z',
- '\u2C6C': 'z',
- '\uA763': 'z',
- '\u0386': '\u0391',
- '\u0388': '\u0395',
- '\u0389': '\u0397',
- '\u038A': '\u0399',
- '\u03AA': '\u0399',
- '\u038C': '\u039F',
- '\u038E': '\u03A5',
- '\u03AB': '\u03A5',
- '\u038F': '\u03A9',
- '\u03AC': '\u03B1',
- '\u03AD': '\u03B5',
- '\u03AE': '\u03B7',
- '\u03AF': '\u03B9',
- '\u03CA': '\u03B9',
- '\u0390': '\u03B9',
- '\u03CC': '\u03BF',
- '\u03CD': '\u03C5',
- '\u03CB': '\u03C5',
- '\u03B0': '\u03C5',
- '\u03CE': '\u03C9',
- '\u03C2': '\u03C3',
- '\u2019': '\''
- };
-
- return diacritics;
-});
-
-S2.define('select2/data/base',[
- '../utils'
-], function (Utils) {
- function BaseAdapter ($element, options) {
- BaseAdapter.__super__.constructor.call(this);
- }
-
- Utils.Extend(BaseAdapter, Utils.Observable);
-
- BaseAdapter.prototype.current = function (callback) {
- throw new Error('The `current` method must be defined in child classes.');
- };
-
- BaseAdapter.prototype.query = function (params, callback) {
- throw new Error('The `query` method must be defined in child classes.');
- };
-
- BaseAdapter.prototype.bind = function (container, $container) {
- // Can be implemented in subclasses
- };
-
- BaseAdapter.prototype.destroy = function () {
- // Can be implemented in subclasses
- };
-
- BaseAdapter.prototype.generateResultId = function (container, data) {
- var id = container.id + '-result-';
-
- id += Utils.generateChars(4);
-
- if (data.id != null) {
- id += '-' + data.id.toString();
- } else {
- id += '-' + Utils.generateChars(4);
- }
- return id;
- };
-
- return BaseAdapter;
-});
-
-S2.define('select2/data/select',[
- './base',
- '../utils',
- 'jquery'
-], function (BaseAdapter, Utils, $) {
- function SelectAdapter ($element, options) {
- this.$element = $element;
- this.options = options;
-
- SelectAdapter.__super__.constructor.call(this);
- }
-
- Utils.Extend(SelectAdapter, BaseAdapter);
-
- SelectAdapter.prototype.current = function (callback) {
- var data = [];
- var self = this;
-
- this.$element.find(':selected').each(function () {
- var $option = $(this);
-
- var option = self.item($option);
-
- data.push(option);
- });
-
- callback(data);
- };
-
- SelectAdapter.prototype.select = function (data) {
- var self = this;
-
- data.selected = true;
-
- // If data.element is a DOM node, use it instead
- if ($(data.element).is('option')) {
- data.element.selected = true;
-
- this.$element.trigger('input').trigger('change');
-
- return;
- }
-
- if (this.$element.prop('multiple')) {
- this.current(function (currentData) {
- var val = [];
-
- data = [data];
- data.push.apply(data, currentData);
-
- for (var d = 0; d < data.length; d++) {
- var id = data[d].id;
-
- if ($.inArray(id, val) === -1) {
- val.push(id);
- }
- }
-
- self.$element.val(val);
- self.$element.trigger('input').trigger('change');
- });
- } else {
- var val = data.id;
-
- this.$element.val(val);
- this.$element.trigger('input').trigger('change');
- }
- };
-
- SelectAdapter.prototype.unselect = function (data) {
- var self = this;
-
- if (!this.$element.prop('multiple')) {
- return;
- }
-
- data.selected = false;
-
- if ($(data.element).is('option')) {
- data.element.selected = false;
-
- this.$element.trigger('input').trigger('change');
-
- return;
- }
-
- this.current(function (currentData) {
- var val = [];
-
- for (var d = 0; d < currentData.length; d++) {
- var id = currentData[d].id;
-
- if (id !== data.id && $.inArray(id, val) === -1) {
- val.push(id);
- }
- }
-
- self.$element.val(val);
-
- self.$element.trigger('input').trigger('change');
- });
- };
-
- SelectAdapter.prototype.bind = function (container, $container) {
- var self = this;
-
- this.container = container;
-
- container.on('select', function (params) {
- self.select(params.data);
- });
-
- container.on('unselect', function (params) {
- self.unselect(params.data);
- });
- };
-
- SelectAdapter.prototype.destroy = function () {
- // Remove anything added to child elements
- this.$element.find('*').each(function () {
- // Remove any custom data set by Select2
- Utils.RemoveData(this);
- });
- };
-
- SelectAdapter.prototype.query = function (params, callback) {
- var data = [];
- var self = this;
-
- var $options = this.$element.children();
-
- $options.each(function () {
- var $option = $(this);
-
- if (!$option.is('option') && !$option.is('optgroup')) {
- return;
- }
-
- var option = self.item($option);
-
- var matches = self.matches(params, option);
-
- if (matches !== null) {
- data.push(matches);
- }
- });
-
- callback({
- results: data
- });
- };
-
- SelectAdapter.prototype.addOptions = function ($options) {
- Utils.appendMany(this.$element, $options);
- };
-
- SelectAdapter.prototype.option = function (data) {
- var option;
-
- if (data.children) {
- option = document.createElement('optgroup');
- option.label = data.text;
- } else {
- option = document.createElement('option');
-
- if (option.textContent !== undefined) {
- option.textContent = data.text;
- } else {
- option.innerText = data.text;
- }
- }
-
- if (data.id !== undefined) {
- option.value = data.id;
- }
-
- if (data.disabled) {
- option.disabled = true;
- }
-
- if (data.selected) {
- option.selected = true;
- }
-
- if (data.title) {
- option.title = data.title;
- }
-
- var $option = $(option);
-
- var normalizedData = this._normalizeItem(data);
- normalizedData.element = option;
-
- // Override the option's data with the combined data
- Utils.StoreData(option, 'data', normalizedData);
-
- return $option;
- };
-
- SelectAdapter.prototype.item = function ($option) {
- var data = {};
-
- data = Utils.GetData($option[0], 'data');
-
- if (data != null) {
- return data;
- }
-
- if ($option.is('option')) {
- data = {
- id: $option.val(),
- text: $option.text(),
- disabled: $option.prop('disabled'),
- selected: $option.prop('selected'),
- title: $option.prop('title')
- };
- } else if ($option.is('optgroup')) {
- data = {
- text: $option.prop('label'),
- children: [],
- title: $option.prop('title')
- };
-
- var $children = $option.children('option');
- var children = [];
-
- for (var c = 0; c < $children.length; c++) {
- var $child = $($children[c]);
-
- var child = this.item($child);
-
- children.push(child);
- }
-
- data.children = children;
- }
-
- data = this._normalizeItem(data);
- data.element = $option[0];
-
- Utils.StoreData($option[0], 'data', data);
-
- return data;
- };
-
- SelectAdapter.prototype._normalizeItem = function (item) {
- if (item !== Object(item)) {
- item = {
- id: item,
- text: item
- };
- }
-
- item = $.extend({}, {
- text: ''
- }, item);
-
- var defaults = {
- selected: false,
- disabled: false
- };
-
- if (item.id != null) {
- item.id = item.id.toString();
- }
-
- if (item.text != null) {
- item.text = item.text.toString();
- }
-
- if (item._resultId == null && item.id && this.container != null) {
- item._resultId = this.generateResultId(this.container, item);
- }
-
- return $.extend({}, defaults, item);
- };
-
- SelectAdapter.prototype.matches = function (params, data) {
- var matcher = this.options.get('matcher');
-
- return matcher(params, data);
- };
-
- return SelectAdapter;
-});
-
-S2.define('select2/data/array',[
- './select',
- '../utils',
- 'jquery'
-], function (SelectAdapter, Utils, $) {
- function ArrayAdapter ($element, options) {
- this._dataToConvert = options.get('data') || [];
-
- ArrayAdapter.__super__.constructor.call(this, $element, options);
- }
-
- Utils.Extend(ArrayAdapter, SelectAdapter);
-
- ArrayAdapter.prototype.bind = function (container, $container) {
- ArrayAdapter.__super__.bind.call(this, container, $container);
-
- this.addOptions(this.convertToOptions(this._dataToConvert));
- };
-
- ArrayAdapter.prototype.select = function (data) {
- var $option = this.$element.find('option').filter(function (i, elm) {
- return elm.value == data.id.toString();
- });
-
- if ($option.length === 0) {
- $option = this.option(data);
-
- this.addOptions($option);
- }
-
- ArrayAdapter.__super__.select.call(this, data);
- };
-
- ArrayAdapter.prototype.convertToOptions = function (data) {
- var self = this;
-
- var $existing = this.$element.find('option');
- var existingIds = $existing.map(function () {
- return self.item($(this)).id;
- }).get();
-
- var $options = [];
-
- // Filter out all items except for the one passed in the argument
- function onlyItem (item) {
- return function () {
- return $(this).val() == item.id;
- };
- }
-
- for (var d = 0; d < data.length; d++) {
- var item = this._normalizeItem(data[d]);
-
- // Skip items which were pre-loaded, only merge the data
- if ($.inArray(item.id, existingIds) >= 0) {
- var $existingOption = $existing.filter(onlyItem(item));
-
- var existingData = this.item($existingOption);
- var newData = $.extend(true, {}, item, existingData);
-
- var $newOption = this.option(newData);
-
- $existingOption.replaceWith($newOption);
-
- continue;
- }
-
- var $option = this.option(item);
-
- if (item.children) {
- var $children = this.convertToOptions(item.children);
-
- Utils.appendMany($option, $children);
- }
-
- $options.push($option);
- }
-
- return $options;
- };
-
- return ArrayAdapter;
-});
-
-S2.define('select2/data/ajax',[
- './array',
- '../utils',
- 'jquery'
-], function (ArrayAdapter, Utils, $) {
- function AjaxAdapter ($element, options) {
- this.ajaxOptions = this._applyDefaults(options.get('ajax'));
-
- if (this.ajaxOptions.processResults != null) {
- this.processResults = this.ajaxOptions.processResults;
- }
-
- AjaxAdapter.__super__.constructor.call(this, $element, options);
- }
-
- Utils.Extend(AjaxAdapter, ArrayAdapter);
-
- AjaxAdapter.prototype._applyDefaults = function (options) {
- var defaults = {
- data: function (params) {
- return $.extend({}, params, {
- q: params.term
- });
- },
- transport: function (params, success, failure) {
- var $request = $.ajax(params);
-
- $request.then(success);
- $request.fail(failure);
-
- return $request;
- }
- };
-
- return $.extend({}, defaults, options, true);
- };
-
- AjaxAdapter.prototype.processResults = function (results) {
- return results;
- };
-
- AjaxAdapter.prototype.query = function (params, callback) {
- var matches = [];
- var self = this;
-
- if (this._request != null) {
- // JSONP requests cannot always be aborted
- if ($.isFunction(this._request.abort)) {
- this._request.abort();
- }
-
- this._request = null;
- }
-
- var options = $.extend({
- type: 'GET'
- }, this.ajaxOptions);
-
- if (typeof options.url === 'function') {
- options.url = options.url.call(this.$element, params);
- }
-
- if (typeof options.data === 'function') {
- options.data = options.data.call(this.$element, params);
- }
-
- function request () {
- var $request = options.transport(options, function (data) {
- var results = self.processResults(data, params);
-
- if (self.options.get('debug') && window.console && console.error) {
- // Check to make sure that the response included a `results` key.
- if (!results || !results.results || !$.isArray(results.results)) {
- console.error(
- 'Select2: The AJAX results did not return an array in the ' +
- '`results` key of the response.'
- );
- }
- }
-
- callback(results);
- }, function () {
- // Attempt to detect if a request was aborted
- // Only works if the transport exposes a status property
- if ('status' in $request &&
- ($request.status === 0 || $request.status === '0')) {
- return;
- }
-
- self.trigger('results:message', {
- message: 'errorLoading'
- });
- });
-
- self._request = $request;
- }
-
- if (this.ajaxOptions.delay && params.term != null) {
- if (this._queryTimeout) {
- window.clearTimeout(this._queryTimeout);
- }
-
- this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);
- } else {
- request();
- }
- };
-
- return AjaxAdapter;
-});
-
-S2.define('select2/data/tags',[
- 'jquery'
-], function ($) {
- function Tags (decorated, $element, options) {
- var tags = options.get('tags');
-
- var createTag = options.get('createTag');
-
- if (createTag !== undefined) {
- this.createTag = createTag;
- }
-
- var insertTag = options.get('insertTag');
-
- if (insertTag !== undefined) {
- this.insertTag = insertTag;
- }
-
- decorated.call(this, $element, options);
-
- if ($.isArray(tags)) {
- for (var t = 0; t < tags.length; t++) {
- var tag = tags[t];
- var item = this._normalizeItem(tag);
-
- var $option = this.option(item);
-
- this.$element.append($option);
- }
- }
- }
-
- Tags.prototype.query = function (decorated, params, callback) {
- var self = this;
-
- this._removeOldTags();
-
- if (params.term == null || params.page != null) {
- decorated.call(this, params, callback);
- return;
- }
-
- function wrapper (obj, child) {
- var data = obj.results;
-
- for (var i = 0; i < data.length; i++) {
- var option = data[i];
-
- var checkChildren = (
- option.children != null &&
- !wrapper({
- results: option.children
- }, true)
- );
-
- var optionText = (option.text || '').toUpperCase();
- var paramsTerm = (params.term || '').toUpperCase();
-
- var checkText = optionText === paramsTerm;
-
- if (checkText || checkChildren) {
- if (child) {
- return false;
- }
-
- obj.data = data;
- callback(obj);
-
- return;
- }
- }
-
- if (child) {
- return true;
- }
-
- var tag = self.createTag(params);
-
- if (tag != null) {
- var $option = self.option(tag);
- $option.attr('data-select2-tag', true);
-
- self.addOptions([$option]);
-
- self.insertTag(data, tag);
- }
-
- obj.results = data;
-
- callback(obj);
- }
-
- decorated.call(this, params, wrapper);
- };
-
- Tags.prototype.createTag = function (decorated, params) {
- var term = $.trim(params.term);
-
- if (term === '') {
- return null;
- }
-
- return {
- id: term,
- text: term
- };
- };
-
- Tags.prototype.insertTag = function (_, data, tag) {
- data.unshift(tag);
- };
-
- Tags.prototype._removeOldTags = function (_) {
- var $options = this.$element.find('option[data-select2-tag]');
-
- $options.each(function () {
- if (this.selected) {
- return;
- }
-
- $(this).remove();
- });
- };
-
- return Tags;
-});
-
-S2.define('select2/data/tokenizer',[
- 'jquery'
-], function ($) {
- function Tokenizer (decorated, $element, options) {
- var tokenizer = options.get('tokenizer');
-
- if (tokenizer !== undefined) {
- this.tokenizer = tokenizer;
- }
-
- decorated.call(this, $element, options);
- }
-
- Tokenizer.prototype.bind = function (decorated, container, $container) {
- decorated.call(this, container, $container);
-
- this.$search = container.dropdown.$search || container.selection.$search ||
- $container.find('.select2-search__field');
- };
-
- Tokenizer.prototype.query = function (decorated, params, callback) {
- var self = this;
-
- function createAndSelect (data) {
- // Normalize the data object so we can use it for checks
- var item = self._normalizeItem(data);
-
- // Check if the data object already exists as a tag
- // Select it if it doesn't
- var $existingOptions = self.$element.find('option').filter(function () {
- return $(this).val() === item.id;
- });
-
- // If an existing option wasn't found for it, create the option
- if (!$existingOptions.length) {
- var $option = self.option(item);
- $option.attr('data-select2-tag', true);
-
- self._removeOldTags();
- self.addOptions([$option]);
- }
-
- // Select the item, now that we know there is an option for it
- select(item);
- }
-
- function select (data) {
- self.trigger('select', {
- data: data
- });
- }
-
- params.term = params.term || '';
-
- var tokenData = this.tokenizer(params, this.options, createAndSelect);
-
- if (tokenData.term !== params.term) {
- // Replace the search term if we have the search box
- if (this.$search.length) {
- this.$search.val(tokenData.term);
- this.$search.trigger('focus');
- }
-
- params.term = tokenData.term;
- }
-
- decorated.call(this, params, callback);
- };
-
- Tokenizer.prototype.tokenizer = function (_, params, options, callback) {
- var separators = options.get('tokenSeparators') || [];
- var term = params.term;
- var i = 0;
-
- var createTag = this.createTag || function (params) {
- return {
- id: params.term,
- text: params.term
- };
- };
-
- while (i < term.length) {
- var termChar = term[i];
-
- if ($.inArray(termChar, separators) === -1) {
- i++;
-
- continue;
- }
-
- var part = term.substr(0, i);
- var partParams = $.extend({}, params, {
- term: part
- });
-
- var data = createTag(partParams);
-
- if (data == null) {
- i++;
- continue;
- }
-
- callback(data);
-
- // Reset the term to not include the tokenized portion
- term = term.substr(i + 1) || '';
- i = 0;
- }
-
- return {
- term: term
- };
- };
-
- return Tokenizer;
-});
-
-S2.define('select2/data/minimumInputLength',[
-
-], function () {
- function MinimumInputLength (decorated, $e, options) {
- this.minimumInputLength = options.get('minimumInputLength');
-
- decorated.call(this, $e, options);
- }
-
- MinimumInputLength.prototype.query = function (decorated, params, callback) {
- params.term = params.term || '';
-
- if (params.term.length < this.minimumInputLength) {
- this.trigger('results:message', {
- message: 'inputTooShort',
- args: {
- minimum: this.minimumInputLength,
- input: params.term,
- params: params
- }
- });
-
- return;
- }
-
- decorated.call(this, params, callback);
- };
-
- return MinimumInputLength;
-});
-
-S2.define('select2/data/maximumInputLength',[
-
-], function () {
- function MaximumInputLength (decorated, $e, options) {
- this.maximumInputLength = options.get('maximumInputLength');
-
- decorated.call(this, $e, options);
- }
-
- MaximumInputLength.prototype.query = function (decorated, params, callback) {
- params.term = params.term || '';
-
- if (this.maximumInputLength > 0 &&
- params.term.length > this.maximumInputLength) {
- this.trigger('results:message', {
- message: 'inputTooLong',
- args: {
- maximum: this.maximumInputLength,
- input: params.term,
- params: params
- }
- });
-
- return;
- }
-
- decorated.call(this, params, callback);
- };
-
- return MaximumInputLength;
-});
-
-S2.define('select2/data/maximumSelectionLength',[
-
-], function (){
- function MaximumSelectionLength (decorated, $e, options) {
- this.maximumSelectionLength = options.get('maximumSelectionLength');
-
- decorated.call(this, $e, options);
- }
-
- MaximumSelectionLength.prototype.bind =
- function (decorated, container, $container) {
- var self = this;
-
- decorated.call(this, container, $container);
-
- container.on('select', function () {
- self._checkIfMaximumSelected();
- });
- };
-
- MaximumSelectionLength.prototype.query =
- function (decorated, params, callback) {
- var self = this;
-
- this._checkIfMaximumSelected(function () {
- decorated.call(self, params, callback);
- });
- };
-
- MaximumSelectionLength.prototype._checkIfMaximumSelected =
- function (_, successCallback) {
- var self = this;
-
- this.current(function (currentData) {
- var count = currentData != null ? currentData.length : 0;
- if (self.maximumSelectionLength > 0 &&
- count >= self.maximumSelectionLength) {
- self.trigger('results:message', {
- message: 'maximumSelected',
- args: {
- maximum: self.maximumSelectionLength
- }
- });
- return;
- }
-
- if (successCallback) {
- successCallback();
- }
- });
- };
-
- return MaximumSelectionLength;
-});
-
-S2.define('select2/dropdown',[
- 'jquery',
- './utils'
-], function ($, Utils) {
- function Dropdown ($element, options) {
- this.$element = $element;
- this.options = options;
-
- Dropdown.__super__.constructor.call(this);
- }
-
- Utils.Extend(Dropdown, Utils.Observable);
-
- Dropdown.prototype.render = function () {
- var $dropdown = $(
- '
' +
- ' ' +
- ' '
- );
-
- $dropdown.attr('dir', this.options.get('dir'));
-
- this.$dropdown = $dropdown;
-
- return $dropdown;
- };
-
- Dropdown.prototype.bind = function () {
- // Should be implemented in subclasses
- };
-
- Dropdown.prototype.position = function ($dropdown, $container) {
- // Should be implemented in subclasses
- };
-
- Dropdown.prototype.destroy = function () {
- // Remove the dropdown from the DOM
- this.$dropdown.remove();
- };
-
- return Dropdown;
-});
-
-S2.define('select2/dropdown/search',[
- 'jquery',
- '../utils'
-], function ($, Utils) {
- function Search () { }
-
- Search.prototype.render = function (decorated) {
- var $rendered = decorated.call(this);
-
- var $search = $(
- '
' +
- ' ' +
- ' '
- );
-
- this.$searchContainer = $search;
- this.$search = $search.find('input');
-
- $rendered.prepend($search);
-
- return $rendered;
- };
-
- Search.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- var resultsId = container.id + '-results';
-
- decorated.call(this, container, $container);
-
- this.$search.on('keydown', function (evt) {
- self.trigger('keypress', evt);
-
- self._keyUpPrevented = evt.isDefaultPrevented();
- });
-
- // Workaround for browsers which do not support the `input` event
- // This will prevent double-triggering of events for browsers which support
- // both the `keyup` and `input` events.
- this.$search.on('input', function (evt) {
- // Unbind the duplicated `keyup` event
- $(this).off('keyup');
- });
-
- this.$search.on('keyup input', function (evt) {
- self.handleSearch(evt);
- });
-
- container.on('open', function () {
- self.$search.attr('tabindex', 0);
- self.$search.attr('aria-controls', resultsId);
-
- self.$search.trigger('focus');
-
- window.setTimeout(function () {
- self.$search.trigger('focus');
- }, 0);
- });
-
- container.on('close', function () {
- self.$search.attr('tabindex', -1);
- self.$search.removeAttr('aria-controls');
- self.$search.removeAttr('aria-activedescendant');
-
- self.$search.val('');
- self.$search.trigger('blur');
- });
-
- container.on('focus', function () {
- if (!container.isOpen()) {
- self.$search.trigger('focus');
- }
- });
-
- container.on('results:all', function (params) {
- if (params.query.term == null || params.query.term === '') {
- var showSearch = self.showSearch(params);
-
- if (showSearch) {
- self.$searchContainer.removeClass('select2-search--hide');
- } else {
- self.$searchContainer.addClass('select2-search--hide');
- }
- }
- });
-
- container.on('results:focus', function (params) {
- if (params.data._resultId) {
- self.$search.attr('aria-activedescendant', params.data._resultId);
- } else {
- self.$search.removeAttr('aria-activedescendant');
- }
- });
- };
-
- Search.prototype.handleSearch = function (evt) {
- if (!this._keyUpPrevented) {
- var input = this.$search.val();
-
- this.trigger('query', {
- term: input
- });
- }
-
- this._keyUpPrevented = false;
- };
-
- Search.prototype.showSearch = function (_, params) {
- return true;
- };
-
- return Search;
-});
-
-S2.define('select2/dropdown/hidePlaceholder',[
-
-], function () {
- function HidePlaceholder (decorated, $element, options, dataAdapter) {
- this.placeholder = this.normalizePlaceholder(options.get('placeholder'));
-
- decorated.call(this, $element, options, dataAdapter);
- }
-
- HidePlaceholder.prototype.append = function (decorated, data) {
- data.results = this.removePlaceholder(data.results);
-
- decorated.call(this, data);
- };
-
- HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {
- if (typeof placeholder === 'string') {
- placeholder = {
- id: '',
- text: placeholder
- };
- }
-
- return placeholder;
- };
-
- HidePlaceholder.prototype.removePlaceholder = function (_, data) {
- var modifiedData = data.slice(0);
-
- for (var d = data.length - 1; d >= 0; d--) {
- var item = data[d];
-
- if (this.placeholder.id === item.id) {
- modifiedData.splice(d, 1);
- }
- }
-
- return modifiedData;
- };
-
- return HidePlaceholder;
-});
-
-S2.define('select2/dropdown/infiniteScroll',[
- 'jquery'
-], function ($) {
- function InfiniteScroll (decorated, $element, options, dataAdapter) {
- this.lastParams = {};
-
- decorated.call(this, $element, options, dataAdapter);
-
- this.$loadingMore = this.createLoadingMore();
- this.loading = false;
- }
-
- InfiniteScroll.prototype.append = function (decorated, data) {
- this.$loadingMore.remove();
- this.loading = false;
-
- decorated.call(this, data);
-
- if (this.showLoadingMore(data)) {
- this.$results.append(this.$loadingMore);
- this.loadMoreIfNeeded();
- }
- };
-
- InfiniteScroll.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- decorated.call(this, container, $container);
-
- container.on('query', function (params) {
- self.lastParams = params;
- self.loading = true;
- });
-
- container.on('query:append', function (params) {
- self.lastParams = params;
- self.loading = true;
- });
-
- this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));
- };
-
- InfiniteScroll.prototype.loadMoreIfNeeded = function () {
- var isLoadMoreVisible = $.contains(
- document.documentElement,
- this.$loadingMore[0]
- );
-
- if (this.loading || !isLoadMoreVisible) {
- return;
- }
-
- var currentOffset = this.$results.offset().top +
- this.$results.outerHeight(false);
- var loadingMoreOffset = this.$loadingMore.offset().top +
- this.$loadingMore.outerHeight(false);
-
- if (currentOffset + 50 >= loadingMoreOffset) {
- this.loadMore();
- }
- };
-
- InfiniteScroll.prototype.loadMore = function () {
- this.loading = true;
-
- var params = $.extend({}, {page: 1}, this.lastParams);
-
- params.page++;
-
- this.trigger('query:append', params);
- };
-
- InfiniteScroll.prototype.showLoadingMore = function (_, data) {
- return data.pagination && data.pagination.more;
- };
-
- InfiniteScroll.prototype.createLoadingMore = function () {
- var $option = $(
- '
'
- );
-
- var message = this.options.get('translations').get('loadingMore');
-
- $option.html(message(this.lastParams));
-
- return $option;
- };
-
- return InfiniteScroll;
-});
-
-S2.define('select2/dropdown/attachBody',[
- 'jquery',
- '../utils'
-], function ($, Utils) {
- function AttachBody (decorated, $element, options) {
- this.$dropdownParent = $(options.get('dropdownParent') || document.body);
-
- decorated.call(this, $element, options);
- }
-
- AttachBody.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- decorated.call(this, container, $container);
-
- container.on('open', function () {
- self._showDropdown();
- self._attachPositioningHandler(container);
-
- // Must bind after the results handlers to ensure correct sizing
- self._bindContainerResultHandlers(container);
- });
-
- container.on('close', function () {
- self._hideDropdown();
- self._detachPositioningHandler(container);
- });
-
- this.$dropdownContainer.on('mousedown', function (evt) {
- evt.stopPropagation();
- });
- };
-
- AttachBody.prototype.destroy = function (decorated) {
- decorated.call(this);
-
- this.$dropdownContainer.remove();
- };
-
- AttachBody.prototype.position = function (decorated, $dropdown, $container) {
- // Clone all of the container classes
- $dropdown.attr('class', $container.attr('class'));
-
- $dropdown.removeClass('select2');
- $dropdown.addClass('select2-container--open');
-
- $dropdown.css({
- position: 'absolute',
- top: -999999
- });
-
- this.$container = $container;
- };
-
- AttachBody.prototype.render = function (decorated) {
- var $container = $('
');
-
- var $dropdown = decorated.call(this);
- $container.append($dropdown);
-
- this.$dropdownContainer = $container;
-
- return $container;
- };
-
- AttachBody.prototype._hideDropdown = function (decorated) {
- this.$dropdownContainer.detach();
- };
-
- AttachBody.prototype._bindContainerResultHandlers =
- function (decorated, container) {
-
- // These should only be bound once
- if (this._containerResultsHandlersBound) {
- return;
- }
-
- var self = this;
-
- container.on('results:all', function () {
- self._positionDropdown();
- self._resizeDropdown();
- });
-
- container.on('results:append', function () {
- self._positionDropdown();
- self._resizeDropdown();
- });
-
- container.on('results:message', function () {
- self._positionDropdown();
- self._resizeDropdown();
- });
-
- container.on('select', function () {
- self._positionDropdown();
- self._resizeDropdown();
- });
-
- container.on('unselect', function () {
- self._positionDropdown();
- self._resizeDropdown();
- });
-
- this._containerResultsHandlersBound = true;
- };
-
- AttachBody.prototype._attachPositioningHandler =
- function (decorated, container) {
- var self = this;
-
- var scrollEvent = 'scroll.select2.' + container.id;
- var resizeEvent = 'resize.select2.' + container.id;
- var orientationEvent = 'orientationchange.select2.' + container.id;
-
- var $watchers = this.$container.parents().filter(Utils.hasScroll);
- $watchers.each(function () {
- Utils.StoreData(this, 'select2-scroll-position', {
- x: $(this).scrollLeft(),
- y: $(this).scrollTop()
- });
- });
-
- $watchers.on(scrollEvent, function (ev) {
- var position = Utils.GetData(this, 'select2-scroll-position');
- $(this).scrollTop(position.y);
- });
-
- $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,
- function (e) {
- self._positionDropdown();
- self._resizeDropdown();
- });
- };
-
- AttachBody.prototype._detachPositioningHandler =
- function (decorated, container) {
- var scrollEvent = 'scroll.select2.' + container.id;
- var resizeEvent = 'resize.select2.' + container.id;
- var orientationEvent = 'orientationchange.select2.' + container.id;
-
- var $watchers = this.$container.parents().filter(Utils.hasScroll);
- $watchers.off(scrollEvent);
-
- $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);
- };
-
- AttachBody.prototype._positionDropdown = function () {
- var $window = $(window);
-
- var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');
- var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');
-
- var newDirection = null;
-
- var offset = this.$container.offset();
-
- offset.bottom = offset.top + this.$container.outerHeight(false);
-
- var container = {
- height: this.$container.outerHeight(false)
- };
-
- container.top = offset.top;
- container.bottom = offset.top + container.height;
-
- var dropdown = {
- height: this.$dropdown.outerHeight(false)
- };
-
- var viewport = {
- top: $window.scrollTop(),
- bottom: $window.scrollTop() + $window.height()
- };
-
- var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);
- var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);
-
- var css = {
- left: offset.left,
- top: container.bottom
- };
-
- // Determine what the parent element is to use for calculating the offset
- var $offsetParent = this.$dropdownParent;
-
- // For statically positioned elements, we need to get the element
- // that is determining the offset
- if ($offsetParent.css('position') === 'static') {
- $offsetParent = $offsetParent.offsetParent();
- }
-
- var parentOffset = {
- top: 0,
- left: 0
- };
-
- if (
- $.contains(document.body, $offsetParent[0]) ||
- $offsetParent[0].isConnected
- ) {
- parentOffset = $offsetParent.offset();
- }
-
- css.top -= parentOffset.top;
- css.left -= parentOffset.left;
-
- if (!isCurrentlyAbove && !isCurrentlyBelow) {
- newDirection = 'below';
- }
-
- if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {
- newDirection = 'above';
- } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {
- newDirection = 'below';
- }
-
- if (newDirection == 'above' ||
- (isCurrentlyAbove && newDirection !== 'below')) {
- css.top = container.top - parentOffset.top - dropdown.height;
- }
-
- if (newDirection != null) {
- this.$dropdown
- .removeClass('select2-dropdown--below select2-dropdown--above')
- .addClass('select2-dropdown--' + newDirection);
- this.$container
- .removeClass('select2-container--below select2-container--above')
- .addClass('select2-container--' + newDirection);
- }
-
- this.$dropdownContainer.css(css);
- };
-
- AttachBody.prototype._resizeDropdown = function () {
- var css = {
- width: this.$container.outerWidth(false) + 'px'
- };
-
- if (this.options.get('dropdownAutoWidth')) {
- css.minWidth = css.width;
- css.position = 'relative';
- css.width = 'auto';
- }
-
- this.$dropdown.css(css);
- };
-
- AttachBody.prototype._showDropdown = function (decorated) {
- this.$dropdownContainer.appendTo(this.$dropdownParent);
-
- this._positionDropdown();
- this._resizeDropdown();
- };
-
- return AttachBody;
-});
-
-S2.define('select2/dropdown/minimumResultsForSearch',[
-
-], function () {
- function countResults (data) {
- var count = 0;
-
- for (var d = 0; d < data.length; d++) {
- var item = data[d];
-
- if (item.children) {
- count += countResults(item.children);
- } else {
- count++;
- }
- }
-
- return count;
- }
-
- function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {
- this.minimumResultsForSearch = options.get('minimumResultsForSearch');
-
- if (this.minimumResultsForSearch < 0) {
- this.minimumResultsForSearch = Infinity;
- }
-
- decorated.call(this, $element, options, dataAdapter);
- }
-
- MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {
- if (countResults(params.data.results) < this.minimumResultsForSearch) {
- return false;
- }
-
- return decorated.call(this, params);
- };
-
- return MinimumResultsForSearch;
-});
-
-S2.define('select2/dropdown/selectOnClose',[
- '../utils'
-], function (Utils) {
- function SelectOnClose () { }
-
- SelectOnClose.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- decorated.call(this, container, $container);
-
- container.on('close', function (params) {
- self._handleSelectOnClose(params);
- });
- };
-
- SelectOnClose.prototype._handleSelectOnClose = function (_, params) {
- if (params && params.originalSelect2Event != null) {
- var event = params.originalSelect2Event;
-
- // Don't select an item if the close event was triggered from a select or
- // unselect event
- if (event._type === 'select' || event._type === 'unselect') {
- return;
- }
- }
-
- var $highlightedResults = this.getHighlightedResults();
-
- // Only select highlighted results
- if ($highlightedResults.length < 1) {
- return;
- }
-
- var data = Utils.GetData($highlightedResults[0], 'data');
-
- // Don't re-select already selected resulte
- if (
- (data.element != null && data.element.selected) ||
- (data.element == null && data.selected)
- ) {
- return;
- }
-
- this.trigger('select', {
- data: data
- });
- };
-
- return SelectOnClose;
-});
-
-S2.define('select2/dropdown/closeOnSelect',[
-
-], function () {
- function CloseOnSelect () { }
-
- CloseOnSelect.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- decorated.call(this, container, $container);
-
- container.on('select', function (evt) {
- self._selectTriggered(evt);
- });
-
- container.on('unselect', function (evt) {
- self._selectTriggered(evt);
- });
- };
-
- CloseOnSelect.prototype._selectTriggered = function (_, evt) {
- var originalEvent = evt.originalEvent;
-
- // Don't close if the control key is being held
- if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {
- return;
- }
-
- this.trigger('close', {
- originalEvent: originalEvent,
- originalSelect2Event: evt
- });
- };
-
- return CloseOnSelect;
-});
-
-S2.define('select2/i18n/en',[],function () {
- // English
- return {
- errorLoading: function () {
- return 'The results could not be loaded.';
- },
- inputTooLong: function (args) {
- var overChars = args.input.length - args.maximum;
-
- var message = 'Please delete ' + overChars + ' character';
-
- if (overChars != 1) {
- message += 's';
- }
-
- return message;
- },
- inputTooShort: function (args) {
- var remainingChars = args.minimum - args.input.length;
-
- var message = 'Please enter ' + remainingChars + ' or more characters';
-
- return message;
- },
- loadingMore: function () {
- return 'Loading more results…';
- },
- maximumSelected: function (args) {
- var message = 'You can only select ' + args.maximum + ' item';
-
- if (args.maximum != 1) {
- message += 's';
- }
-
- return message;
- },
- noResults: function () {
- return 'No results found';
- },
- searching: function () {
- return 'Searching…';
- },
- removeAllItems: function () {
- return 'Remove all items';
- }
- };
-});
-
-S2.define('select2/defaults',[
- 'jquery',
- 'require',
-
- './results',
-
- './selection/single',
- './selection/multiple',
- './selection/placeholder',
- './selection/allowClear',
- './selection/search',
- './selection/eventRelay',
-
- './utils',
- './translation',
- './diacritics',
-
- './data/select',
- './data/array',
- './data/ajax',
- './data/tags',
- './data/tokenizer',
- './data/minimumInputLength',
- './data/maximumInputLength',
- './data/maximumSelectionLength',
-
- './dropdown',
- './dropdown/search',
- './dropdown/hidePlaceholder',
- './dropdown/infiniteScroll',
- './dropdown/attachBody',
- './dropdown/minimumResultsForSearch',
- './dropdown/selectOnClose',
- './dropdown/closeOnSelect',
-
- './i18n/en'
-], function ($, require,
-
- ResultsList,
-
- SingleSelection, MultipleSelection, Placeholder, AllowClear,
- SelectionSearch, EventRelay,
-
- Utils, Translation, DIACRITICS,
-
- SelectData, ArrayData, AjaxData, Tags, Tokenizer,
- MinimumInputLength, MaximumInputLength, MaximumSelectionLength,
-
- Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,
- AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,
-
- EnglishTranslation) {
- function Defaults () {
- this.reset();
- }
-
- Defaults.prototype.apply = function (options) {
- options = $.extend(true, {}, this.defaults, options);
-
- if (options.dataAdapter == null) {
- if (options.ajax != null) {
- options.dataAdapter = AjaxData;
- } else if (options.data != null) {
- options.dataAdapter = ArrayData;
- } else {
- options.dataAdapter = SelectData;
- }
-
- if (options.minimumInputLength > 0) {
- options.dataAdapter = Utils.Decorate(
- options.dataAdapter,
- MinimumInputLength
- );
- }
-
- if (options.maximumInputLength > 0) {
- options.dataAdapter = Utils.Decorate(
- options.dataAdapter,
- MaximumInputLength
- );
- }
-
- if (options.maximumSelectionLength > 0) {
- options.dataAdapter = Utils.Decorate(
- options.dataAdapter,
- MaximumSelectionLength
- );
- }
-
- if (options.tags) {
- options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);
- }
-
- if (options.tokenSeparators != null || options.tokenizer != null) {
- options.dataAdapter = Utils.Decorate(
- options.dataAdapter,
- Tokenizer
- );
- }
-
- if (options.query != null) {
- var Query = require(options.amdBase + 'compat/query');
-
- options.dataAdapter = Utils.Decorate(
- options.dataAdapter,
- Query
- );
- }
-
- if (options.initSelection != null) {
- var InitSelection = require(options.amdBase + 'compat/initSelection');
-
- options.dataAdapter = Utils.Decorate(
- options.dataAdapter,
- InitSelection
- );
- }
- }
-
- if (options.resultsAdapter == null) {
- options.resultsAdapter = ResultsList;
-
- if (options.ajax != null) {
- options.resultsAdapter = Utils.Decorate(
- options.resultsAdapter,
- InfiniteScroll
- );
- }
-
- if (options.placeholder != null) {
- options.resultsAdapter = Utils.Decorate(
- options.resultsAdapter,
- HidePlaceholder
- );
- }
-
- if (options.selectOnClose) {
- options.resultsAdapter = Utils.Decorate(
- options.resultsAdapter,
- SelectOnClose
- );
- }
- }
-
- if (options.dropdownAdapter == null) {
- if (options.multiple) {
- options.dropdownAdapter = Dropdown;
- } else {
- var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);
-
- options.dropdownAdapter = SearchableDropdown;
- }
-
- if (options.minimumResultsForSearch !== 0) {
- options.dropdownAdapter = Utils.Decorate(
- options.dropdownAdapter,
- MinimumResultsForSearch
- );
- }
-
- if (options.closeOnSelect) {
- options.dropdownAdapter = Utils.Decorate(
- options.dropdownAdapter,
- CloseOnSelect
- );
- }
-
- if (
- options.dropdownCssClass != null ||
- options.dropdownCss != null ||
- options.adaptDropdownCssClass != null
- ) {
- var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');
-
- options.dropdownAdapter = Utils.Decorate(
- options.dropdownAdapter,
- DropdownCSS
- );
- }
-
- options.dropdownAdapter = Utils.Decorate(
- options.dropdownAdapter,
- AttachBody
- );
- }
-
- if (options.selectionAdapter == null) {
- if (options.multiple) {
- options.selectionAdapter = MultipleSelection;
- } else {
- options.selectionAdapter = SingleSelection;
- }
-
- // Add the placeholder mixin if a placeholder was specified
- if (options.placeholder != null) {
- options.selectionAdapter = Utils.Decorate(
- options.selectionAdapter,
- Placeholder
- );
- }
-
- if (options.allowClear) {
- options.selectionAdapter = Utils.Decorate(
- options.selectionAdapter,
- AllowClear
- );
- }
-
- if (options.multiple) {
- options.selectionAdapter = Utils.Decorate(
- options.selectionAdapter,
- SelectionSearch
- );
- }
-
- if (
- options.containerCssClass != null ||
- options.containerCss != null ||
- options.adaptContainerCssClass != null
- ) {
- var ContainerCSS = require(options.amdBase + 'compat/containerCss');
-
- options.selectionAdapter = Utils.Decorate(
- options.selectionAdapter,
- ContainerCSS
- );
- }
-
- options.selectionAdapter = Utils.Decorate(
- options.selectionAdapter,
- EventRelay
- );
- }
-
- // If the defaults were not previously applied from an element, it is
- // possible for the language option to have not been resolved
- options.language = this._resolveLanguage(options.language);
-
- // Always fall back to English since it will always be complete
- options.language.push('en');
-
- var uniqueLanguages = [];
-
- for (var l = 0; l < options.language.length; l++) {
- var language = options.language[l];
-
- if (uniqueLanguages.indexOf(language) === -1) {
- uniqueLanguages.push(language);
- }
- }
-
- options.language = uniqueLanguages;
-
- options.translations = this._processTranslations(
- options.language,
- options.debug
- );
-
- return options;
- };
-
- Defaults.prototype.reset = function () {
- function stripDiacritics (text) {
- // Used 'uni range + named function' from http://jsperf.com/diacritics/18
- function match(a) {
- return DIACRITICS[a] || a;
- }
-
- return text.replace(/[^\u0000-\u007E]/g, match);
- }
-
- function matcher (params, data) {
- // Always return the object if there is nothing to compare
- if ($.trim(params.term) === '') {
- return data;
- }
-
- // Do a recursive check for options with children
- if (data.children && data.children.length > 0) {
- // Clone the data object if there are children
- // This is required as we modify the object to remove any non-matches
- var match = $.extend(true, {}, data);
-
- // Check each child of the option
- for (var c = data.children.length - 1; c >= 0; c--) {
- var child = data.children[c];
-
- var matches = matcher(params, child);
-
- // If there wasn't a match, remove the object in the array
- if (matches == null) {
- match.children.splice(c, 1);
- }
- }
-
- // If any children matched, return the new object
- if (match.children.length > 0) {
- return match;
- }
-
- // If there were no matching children, check just the plain object
- return matcher(params, match);
- }
-
- var original = stripDiacritics(data.text).toUpperCase();
- var term = stripDiacritics(params.term).toUpperCase();
-
- // Check if the text contains the term
- if (original.indexOf(term) > -1) {
- return data;
- }
-
- // If it doesn't contain the term, don't return anything
- return null;
- }
-
- this.defaults = {
- amdBase: './',
- amdLanguageBase: './i18n/',
- closeOnSelect: true,
- debug: false,
- dropdownAutoWidth: false,
- escapeMarkup: Utils.escapeMarkup,
- language: {},
- matcher: matcher,
- minimumInputLength: 0,
- maximumInputLength: 0,
- maximumSelectionLength: 0,
- minimumResultsForSearch: 0,
- selectOnClose: false,
- scrollAfterSelect: false,
- sorter: function (data) {
- return data;
- },
- templateResult: function (result) {
- return result.text;
- },
- templateSelection: function (selection) {
- return selection.text;
- },
- theme: 'default',
- width: 'resolve'
- };
- };
-
- Defaults.prototype.applyFromElement = function (options, $element) {
- var optionLanguage = options.language;
- var defaultLanguage = this.defaults.language;
- var elementLanguage = $element.prop('lang');
- var parentLanguage = $element.closest('[lang]').prop('lang');
-
- var languages = Array.prototype.concat.call(
- this._resolveLanguage(elementLanguage),
- this._resolveLanguage(optionLanguage),
- this._resolveLanguage(defaultLanguage),
- this._resolveLanguage(parentLanguage)
- );
-
- options.language = languages;
-
- return options;
- };
-
- Defaults.prototype._resolveLanguage = function (language) {
- if (!language) {
- return [];
- }
-
- if ($.isEmptyObject(language)) {
- return [];
- }
-
- if ($.isPlainObject(language)) {
- return [language];
- }
-
- var languages;
-
- if (!$.isArray(language)) {
- languages = [language];
- } else {
- languages = language;
- }
-
- var resolvedLanguages = [];
-
- for (var l = 0; l < languages.length; l++) {
- resolvedLanguages.push(languages[l]);
-
- if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {
- // Extract the region information if it is included
- var languageParts = languages[l].split('-');
- var baseLanguage = languageParts[0];
-
- resolvedLanguages.push(baseLanguage);
- }
- }
-
- return resolvedLanguages;
- };
-
- Defaults.prototype._processTranslations = function (languages, debug) {
- var translations = new Translation();
-
- for (var l = 0; l < languages.length; l++) {
- var languageData = new Translation();
-
- var language = languages[l];
-
- if (typeof language === 'string') {
- try {
- // Try to load it with the original name
- languageData = Translation.loadPath(language);
- } catch (e) {
- try {
- // If we couldn't load it, check if it wasn't the full path
- language = this.defaults.amdLanguageBase + language;
- languageData = Translation.loadPath(language);
- } catch (ex) {
- // The translation could not be loaded at all. Sometimes this is
- // because of a configuration problem, other times this can be
- // because of how Select2 helps load all possible translation files
- if (debug && window.console && console.warn) {
- console.warn(
- 'Select2: The language file for "' + language + '" could ' +
- 'not be automatically loaded. A fallback will be used instead.'
- );
- }
- }
- }
- } else if ($.isPlainObject(language)) {
- languageData = new Translation(language);
- } else {
- languageData = language;
- }
-
- translations.extend(languageData);
- }
-
- return translations;
- };
-
- Defaults.prototype.set = function (key, value) {
- var camelKey = $.camelCase(key);
-
- var data = {};
- data[camelKey] = value;
-
- var convertedData = Utils._convertData(data);
-
- $.extend(true, this.defaults, convertedData);
- };
-
- var defaults = new Defaults();
-
- return defaults;
-});
-
-S2.define('select2/options',[
- 'require',
- 'jquery',
- './defaults',
- './utils'
-], function (require, $, Defaults, Utils) {
- function Options (options, $element) {
- this.options = options;
-
- if ($element != null) {
- this.fromElement($element);
- }
-
- if ($element != null) {
- this.options = Defaults.applyFromElement(this.options, $element);
- }
-
- this.options = Defaults.apply(this.options);
-
- if ($element && $element.is('input')) {
- var InputCompat = require(this.get('amdBase') + 'compat/inputData');
-
- this.options.dataAdapter = Utils.Decorate(
- this.options.dataAdapter,
- InputCompat
- );
- }
- }
-
- Options.prototype.fromElement = function ($e) {
- var excludedData = ['select2'];
-
- if (this.options.multiple == null) {
- this.options.multiple = $e.prop('multiple');
- }
-
- if (this.options.disabled == null) {
- this.options.disabled = $e.prop('disabled');
- }
-
- if (this.options.dir == null) {
- if ($e.prop('dir')) {
- this.options.dir = $e.prop('dir');
- } else if ($e.closest('[dir]').prop('dir')) {
- this.options.dir = $e.closest('[dir]').prop('dir');
- } else {
- this.options.dir = 'ltr';
- }
- }
-
- $e.prop('disabled', this.options.disabled);
- $e.prop('multiple', this.options.multiple);
-
- if (Utils.GetData($e[0], 'select2Tags')) {
- if (this.options.debug && window.console && console.warn) {
- console.warn(
- 'Select2: The `data-select2-tags` attribute has been changed to ' +
- 'use the `data-data` and `data-tags="true"` attributes and will be ' +
- 'removed in future versions of Select2.'
- );
- }
-
- Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));
- Utils.StoreData($e[0], 'tags', true);
- }
-
- if (Utils.GetData($e[0], 'ajaxUrl')) {
- if (this.options.debug && window.console && console.warn) {
- console.warn(
- 'Select2: The `data-ajax-url` attribute has been changed to ' +
- '`data-ajax--url` and support for the old attribute will be removed' +
- ' in future versions of Select2.'
- );
- }
-
- $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));
- Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));
- }
-
- var dataset = {};
-
- function upperCaseLetter(_, letter) {
- return letter.toUpperCase();
- }
-
- // Pre-load all of the attributes which are prefixed with `data-`
- for (var attr = 0; attr < $e[0].attributes.length; attr++) {
- var attributeName = $e[0].attributes[attr].name;
- var prefix = 'data-';
-
- if (attributeName.substr(0, prefix.length) == prefix) {
- // Get the contents of the attribute after `data-`
- var dataName = attributeName.substring(prefix.length);
-
- // Get the data contents from the consistent source
- // This is more than likely the jQuery data helper
- var dataValue = Utils.GetData($e[0], dataName);
-
- // camelCase the attribute name to match the spec
- var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter);
-
- // Store the data attribute contents into the dataset since
- dataset[camelDataName] = dataValue;
- }
- }
-
- // Prefer the element's `dataset` attribute if it exists
- // jQuery 1.x does not correctly handle data attributes with multiple dashes
- if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {
- dataset = $.extend(true, {}, $e[0].dataset, dataset);
- }
-
- // Prefer our internal data cache if it exists
- var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);
-
- data = Utils._convertData(data);
-
- for (var key in data) {
- if ($.inArray(key, excludedData) > -1) {
- continue;
- }
-
- if ($.isPlainObject(this.options[key])) {
- $.extend(this.options[key], data[key]);
- } else {
- this.options[key] = data[key];
- }
- }
-
- return this;
- };
-
- Options.prototype.get = function (key) {
- return this.options[key];
- };
-
- Options.prototype.set = function (key, val) {
- this.options[key] = val;
- };
-
- return Options;
-});
-
-S2.define('select2/core',[
- 'jquery',
- './options',
- './utils',
- './keys'
-], function ($, Options, Utils, KEYS) {
- var Select2 = function ($element, options) {
- if (Utils.GetData($element[0], 'select2') != null) {
- Utils.GetData($element[0], 'select2').destroy();
- }
-
- this.$element = $element;
-
- this.id = this._generateId($element);
-
- options = options || {};
-
- this.options = new Options(options, $element);
-
- Select2.__super__.constructor.call(this);
-
- // Set up the tabindex
-
- var tabindex = $element.attr('tabindex') || 0;
- Utils.StoreData($element[0], 'old-tabindex', tabindex);
- $element.attr('tabindex', '-1');
-
- // Set up containers and adapters
-
- var DataAdapter = this.options.get('dataAdapter');
- this.dataAdapter = new DataAdapter($element, this.options);
-
- var $container = this.render();
-
- this._placeContainer($container);
-
- var SelectionAdapter = this.options.get('selectionAdapter');
- this.selection = new SelectionAdapter($element, this.options);
- this.$selection = this.selection.render();
-
- this.selection.position(this.$selection, $container);
-
- var DropdownAdapter = this.options.get('dropdownAdapter');
- this.dropdown = new DropdownAdapter($element, this.options);
- this.$dropdown = this.dropdown.render();
-
- this.dropdown.position(this.$dropdown, $container);
-
- var ResultsAdapter = this.options.get('resultsAdapter');
- this.results = new ResultsAdapter($element, this.options, this.dataAdapter);
- this.$results = this.results.render();
-
- this.results.position(this.$results, this.$dropdown);
-
- // Bind events
-
- var self = this;
-
- // Bind the container to all of the adapters
- this._bindAdapters();
-
- // Register any DOM event handlers
- this._registerDomEvents();
-
- // Register any internal event handlers
- this._registerDataEvents();
- this._registerSelectionEvents();
- this._registerDropdownEvents();
- this._registerResultsEvents();
- this._registerEvents();
-
- // Set the initial state
- this.dataAdapter.current(function (initialData) {
- self.trigger('selection:update', {
- data: initialData
- });
- });
-
- // Hide the original select
- $element.addClass('select2-hidden-accessible');
- $element.attr('aria-hidden', 'true');
-
- // Synchronize any monitored attributes
- this._syncAttributes();
-
- Utils.StoreData($element[0], 'select2', this);
-
- // Ensure backwards compatibility with $element.data('select2').
- $element.data('select2', this);
- };
-
- Utils.Extend(Select2, Utils.Observable);
-
- Select2.prototype._generateId = function ($element) {
- var id = '';
-
- if ($element.attr('id') != null) {
- id = $element.attr('id');
- } else if ($element.attr('name') != null) {
- id = $element.attr('name') + '-' + Utils.generateChars(2);
- } else {
- id = Utils.generateChars(4);
- }
-
- id = id.replace(/(:|\.|\[|\]|,)/g, '');
- id = 'select2-' + id;
-
- return id;
- };
-
- Select2.prototype._placeContainer = function ($container) {
- $container.insertAfter(this.$element);
-
- var width = this._resolveWidth(this.$element, this.options.get('width'));
-
- if (width != null) {
- $container.css('width', width);
- }
- };
-
- Select2.prototype._resolveWidth = function ($element, method) {
- var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;
-
- if (method == 'resolve') {
- var styleWidth = this._resolveWidth($element, 'style');
-
- if (styleWidth != null) {
- return styleWidth;
- }
-
- return this._resolveWidth($element, 'element');
- }
-
- if (method == 'element') {
- var elementWidth = $element.outerWidth(false);
-
- if (elementWidth <= 0) {
- return 'auto';
- }
-
- return elementWidth + 'px';
- }
-
- if (method == 'style') {
- var style = $element.attr('style');
-
- if (typeof(style) !== 'string') {
- return null;
- }
-
- var attrs = style.split(';');
-
- for (var i = 0, l = attrs.length; i < l; i = i + 1) {
- var attr = attrs[i].replace(/\s/g, '');
- var matches = attr.match(WIDTH);
-
- if (matches !== null && matches.length >= 1) {
- return matches[1];
- }
- }
-
- return null;
- }
-
- if (method == 'computedstyle') {
- var computedStyle = window.getComputedStyle($element[0]);
-
- return computedStyle.width;
- }
-
- return method;
- };
-
- Select2.prototype._bindAdapters = function () {
- this.dataAdapter.bind(this, this.$container);
- this.selection.bind(this, this.$container);
-
- this.dropdown.bind(this, this.$container);
- this.results.bind(this, this.$container);
- };
-
- Select2.prototype._registerDomEvents = function () {
- var self = this;
-
- this.$element.on('change.select2', function () {
- self.dataAdapter.current(function (data) {
- self.trigger('selection:update', {
- data: data
- });
- });
- });
-
- this.$element.on('focus.select2', function (evt) {
- self.trigger('focus', evt);
- });
-
- this._syncA = Utils.bind(this._syncAttributes, this);
- this._syncS = Utils.bind(this._syncSubtree, this);
-
- if (this.$element[0].attachEvent) {
- this.$element[0].attachEvent('onpropertychange', this._syncA);
- }
-
- var observer = window.MutationObserver ||
- window.WebKitMutationObserver ||
- window.MozMutationObserver
- ;
-
- if (observer != null) {
- this._observer = new observer(function (mutations) {
- self._syncA();
- self._syncS(null, mutations);
- });
- this._observer.observe(this.$element[0], {
- attributes: true,
- childList: true,
- subtree: false
- });
- } else if (this.$element[0].addEventListener) {
- this.$element[0].addEventListener(
- 'DOMAttrModified',
- self._syncA,
- false
- );
- this.$element[0].addEventListener(
- 'DOMNodeInserted',
- self._syncS,
- false
- );
- this.$element[0].addEventListener(
- 'DOMNodeRemoved',
- self._syncS,
- false
- );
- }
- };
-
- Select2.prototype._registerDataEvents = function () {
- var self = this;
-
- this.dataAdapter.on('*', function (name, params) {
- self.trigger(name, params);
- });
- };
-
- Select2.prototype._registerSelectionEvents = function () {
- var self = this;
- var nonRelayEvents = ['toggle', 'focus'];
-
- this.selection.on('toggle', function () {
- self.toggleDropdown();
- });
-
- this.selection.on('focus', function (params) {
- self.focus(params);
- });
-
- this.selection.on('*', function (name, params) {
- if ($.inArray(name, nonRelayEvents) !== -1) {
- return;
- }
-
- self.trigger(name, params);
- });
- };
-
- Select2.prototype._registerDropdownEvents = function () {
- var self = this;
-
- this.dropdown.on('*', function (name, params) {
- self.trigger(name, params);
- });
- };
-
- Select2.prototype._registerResultsEvents = function () {
- var self = this;
-
- this.results.on('*', function (name, params) {
- self.trigger(name, params);
- });
- };
-
- Select2.prototype._registerEvents = function () {
- var self = this;
-
- this.on('open', function () {
- self.$container.addClass('select2-container--open');
- });
-
- this.on('close', function () {
- self.$container.removeClass('select2-container--open');
- });
-
- this.on('enable', function () {
- self.$container.removeClass('select2-container--disabled');
- });
-
- this.on('disable', function () {
- self.$container.addClass('select2-container--disabled');
- });
-
- this.on('blur', function () {
- self.$container.removeClass('select2-container--focus');
- });
-
- this.on('query', function (params) {
- if (!self.isOpen()) {
- self.trigger('open', {});
- }
-
- this.dataAdapter.query(params, function (data) {
- self.trigger('results:all', {
- data: data,
- query: params
- });
- });
- });
-
- this.on('query:append', function (params) {
- this.dataAdapter.query(params, function (data) {
- self.trigger('results:append', {
- data: data,
- query: params
- });
- });
- });
-
- this.on('keypress', function (evt) {
- var key = evt.which;
-
- if (self.isOpen()) {
- if (key === KEYS.ESC || key === KEYS.TAB ||
- (key === KEYS.UP && evt.altKey)) {
- self.close(evt);
-
- evt.preventDefault();
- } else if (key === KEYS.ENTER) {
- self.trigger('results:select', {});
-
- evt.preventDefault();
- } else if ((key === KEYS.SPACE && evt.ctrlKey)) {
- self.trigger('results:toggle', {});
-
- evt.preventDefault();
- } else if (key === KEYS.UP) {
- self.trigger('results:previous', {});
-
- evt.preventDefault();
- } else if (key === KEYS.DOWN) {
- self.trigger('results:next', {});
-
- evt.preventDefault();
- }
- } else {
- if (key === KEYS.ENTER || key === KEYS.SPACE ||
- (key === KEYS.DOWN && evt.altKey)) {
- self.open();
-
- evt.preventDefault();
- }
- }
- });
- };
-
- Select2.prototype._syncAttributes = function () {
- this.options.set('disabled', this.$element.prop('disabled'));
-
- if (this.isDisabled()) {
- if (this.isOpen()) {
- this.close();
- }
-
- this.trigger('disable', {});
- } else {
- this.trigger('enable', {});
- }
- };
-
- Select2.prototype._isChangeMutation = function (evt, mutations) {
- var changed = false;
- var self = this;
-
- // Ignore any mutation events raised for elements that aren't options or
- // optgroups. This handles the case when the select element is destroyed
- if (
- evt && evt.target && (
- evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'
- )
- ) {
- return;
- }
-
- if (!mutations) {
- // If mutation events aren't supported, then we can only assume that the
- // change affected the selections
- changed = true;
- } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {
- for (var n = 0; n < mutations.addedNodes.length; n++) {
- var node = mutations.addedNodes[n];
-
- if (node.selected) {
- changed = true;
- }
- }
- } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {
- changed = true;
- } else if ($.isArray(mutations)) {
- $.each(mutations, function(evt, mutation) {
- if (self._isChangeMutation(evt, mutation)) {
- // We've found a change mutation.
- // Let's escape from the loop and continue
- changed = true;
- return false;
- }
- });
- }
- return changed;
- };
-
- Select2.prototype._syncSubtree = function (evt, mutations) {
- var changed = this._isChangeMutation(evt, mutations);
- var self = this;
-
- // Only re-pull the data if we think there is a change
- if (changed) {
- this.dataAdapter.current(function (currentData) {
- self.trigger('selection:update', {
- data: currentData
- });
- });
- }
- };
-
- /**
- * Override the trigger method to automatically trigger pre-events when
- * there are events that can be prevented.
- */
- Select2.prototype.trigger = function (name, args) {
- var actualTrigger = Select2.__super__.trigger;
- var preTriggerMap = {
- 'open': 'opening',
- 'close': 'closing',
- 'select': 'selecting',
- 'unselect': 'unselecting',
- 'clear': 'clearing'
- };
-
- if (args === undefined) {
- args = {};
- }
-
- if (name in preTriggerMap) {
- var preTriggerName = preTriggerMap[name];
- var preTriggerArgs = {
- prevented: false,
- name: name,
- args: args
- };
-
- actualTrigger.call(this, preTriggerName, preTriggerArgs);
-
- if (preTriggerArgs.prevented) {
- args.prevented = true;
-
- return;
- }
- }
-
- actualTrigger.call(this, name, args);
- };
-
- Select2.prototype.toggleDropdown = function () {
- if (this.isDisabled()) {
- return;
- }
-
- if (this.isOpen()) {
- this.close();
- } else {
- this.open();
- }
- };
-
- Select2.prototype.open = function () {
- if (this.isOpen()) {
- return;
- }
-
- if (this.isDisabled()) {
- return;
- }
-
- this.trigger('query', {});
- };
-
- Select2.prototype.close = function (evt) {
- if (!this.isOpen()) {
- return;
- }
-
- this.trigger('close', { originalEvent : evt });
- };
-
- /**
- * Helper method to abstract the "enabled" (not "disabled") state of this
- * object.
- *
- * @return {true} if the instance is not disabled.
- * @return {false} if the instance is disabled.
- */
- Select2.prototype.isEnabled = function () {
- return !this.isDisabled();
- };
-
- /**
- * Helper method to abstract the "disabled" state of this object.
- *
- * @return {true} if the disabled option is true.
- * @return {false} if the disabled option is false.
- */
- Select2.prototype.isDisabled = function () {
- return this.options.get('disabled');
- };
-
- Select2.prototype.isOpen = function () {
- return this.$container.hasClass('select2-container--open');
- };
-
- Select2.prototype.hasFocus = function () {
- return this.$container.hasClass('select2-container--focus');
- };
-
- Select2.prototype.focus = function (data) {
- // No need to re-trigger focus events if we are already focused
- if (this.hasFocus()) {
- return;
- }
-
- this.$container.addClass('select2-container--focus');
- this.trigger('focus', {});
- };
-
- Select2.prototype.enable = function (args) {
- if (this.options.get('debug') && window.console && console.warn) {
- console.warn(
- 'Select2: The `select2("enable")` method has been deprecated and will' +
- ' be removed in later Select2 versions. Use $element.prop("disabled")' +
- ' instead.'
- );
- }
-
- if (args == null || args.length === 0) {
- args = [true];
- }
-
- var disabled = !args[0];
-
- this.$element.prop('disabled', disabled);
- };
-
- Select2.prototype.data = function () {
- if (this.options.get('debug') &&
- arguments.length > 0 && window.console && console.warn) {
- console.warn(
- 'Select2: Data can no longer be set using `select2("data")`. You ' +
- 'should consider setting the value instead using `$element.val()`.'
- );
- }
-
- var data = [];
-
- this.dataAdapter.current(function (currentData) {
- data = currentData;
- });
-
- return data;
- };
-
- Select2.prototype.val = function (args) {
- if (this.options.get('debug') && window.console && console.warn) {
- console.warn(
- 'Select2: The `select2("val")` method has been deprecated and will be' +
- ' removed in later Select2 versions. Use $element.val() instead.'
- );
- }
-
- if (args == null || args.length === 0) {
- return this.$element.val();
- }
-
- var newVal = args[0];
-
- if ($.isArray(newVal)) {
- newVal = $.map(newVal, function (obj) {
- return obj.toString();
- });
- }
-
- this.$element.val(newVal).trigger('input').trigger('change');
- };
-
- Select2.prototype.destroy = function () {
- this.$container.remove();
-
- if (this.$element[0].detachEvent) {
- this.$element[0].detachEvent('onpropertychange', this._syncA);
- }
-
- if (this._observer != null) {
- this._observer.disconnect();
- this._observer = null;
- } else if (this.$element[0].removeEventListener) {
- this.$element[0]
- .removeEventListener('DOMAttrModified', this._syncA, false);
- this.$element[0]
- .removeEventListener('DOMNodeInserted', this._syncS, false);
- this.$element[0]
- .removeEventListener('DOMNodeRemoved', this._syncS, false);
- }
-
- this._syncA = null;
- this._syncS = null;
-
- this.$element.off('.select2');
- this.$element.attr('tabindex',
- Utils.GetData(this.$element[0], 'old-tabindex'));
-
- this.$element.removeClass('select2-hidden-accessible');
- this.$element.attr('aria-hidden', 'false');
- Utils.RemoveData(this.$element[0]);
- this.$element.removeData('select2');
-
- this.dataAdapter.destroy();
- this.selection.destroy();
- this.dropdown.destroy();
- this.results.destroy();
-
- this.dataAdapter = null;
- this.selection = null;
- this.dropdown = null;
- this.results = null;
- };
-
- Select2.prototype.render = function () {
- var $container = $(
- '
' +
- ' ' +
- ' ' +
- ' '
- );
-
- $container.attr('dir', this.options.get('dir'));
-
- this.$container = $container;
-
- this.$container.addClass('select2-container--' + this.options.get('theme'));
-
- Utils.StoreData($container[0], 'element', this.$element);
-
- return $container;
- };
-
- return Select2;
-});
-
-S2.define('select2/compat/utils',[
- 'jquery'
-], function ($) {
- function syncCssClasses ($dest, $src, adapter) {
- var classes, replacements = [], adapted;
-
- classes = $.trim($dest.attr('class'));
-
- if (classes) {
- classes = '' + classes; // for IE which returns object
-
- $(classes.split(/\s+/)).each(function () {
- // Save all Select2 classes
- if (this.indexOf('select2-') === 0) {
- replacements.push(this);
- }
- });
- }
-
- classes = $.trim($src.attr('class'));
-
- if (classes) {
- classes = '' + classes; // for IE which returns object
-
- $(classes.split(/\s+/)).each(function () {
- // Only adapt non-Select2 classes
- if (this.indexOf('select2-') !== 0) {
- adapted = adapter(this);
-
- if (adapted != null) {
- replacements.push(adapted);
- }
- }
- });
- }
-
- $dest.attr('class', replacements.join(' '));
- }
-
- return {
- syncCssClasses: syncCssClasses
- };
-});
-
-S2.define('select2/compat/containerCss',[
- 'jquery',
- './utils'
-], function ($, CompatUtils) {
- // No-op CSS adapter that discards all classes by default
- function _containerAdapter (clazz) {
- return null;
- }
-
- function ContainerCSS () { }
-
- ContainerCSS.prototype.render = function (decorated) {
- var $container = decorated.call(this);
-
- var containerCssClass = this.options.get('containerCssClass') || '';
-
- if ($.isFunction(containerCssClass)) {
- containerCssClass = containerCssClass(this.$element);
- }
-
- var containerCssAdapter = this.options.get('adaptContainerCssClass');
- containerCssAdapter = containerCssAdapter || _containerAdapter;
-
- if (containerCssClass.indexOf(':all:') !== -1) {
- containerCssClass = containerCssClass.replace(':all:', '');
-
- var _cssAdapter = containerCssAdapter;
-
- containerCssAdapter = function (clazz) {
- var adapted = _cssAdapter(clazz);
-
- if (adapted != null) {
- // Append the old one along with the adapted one
- return adapted + ' ' + clazz;
- }
-
- return clazz;
- };
- }
-
- var containerCss = this.options.get('containerCss') || {};
-
- if ($.isFunction(containerCss)) {
- containerCss = containerCss(this.$element);
- }
-
- CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter);
-
- $container.css(containerCss);
- $container.addClass(containerCssClass);
-
- return $container;
- };
-
- return ContainerCSS;
-});
-
-S2.define('select2/compat/dropdownCss',[
- 'jquery',
- './utils'
-], function ($, CompatUtils) {
- // No-op CSS adapter that discards all classes by default
- function _dropdownAdapter (clazz) {
- return null;
- }
-
- function DropdownCSS () { }
-
- DropdownCSS.prototype.render = function (decorated) {
- var $dropdown = decorated.call(this);
-
- var dropdownCssClass = this.options.get('dropdownCssClass') || '';
-
- if ($.isFunction(dropdownCssClass)) {
- dropdownCssClass = dropdownCssClass(this.$element);
- }
-
- var dropdownCssAdapter = this.options.get('adaptDropdownCssClass');
- dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter;
-
- if (dropdownCssClass.indexOf(':all:') !== -1) {
- dropdownCssClass = dropdownCssClass.replace(':all:', '');
-
- var _cssAdapter = dropdownCssAdapter;
-
- dropdownCssAdapter = function (clazz) {
- var adapted = _cssAdapter(clazz);
-
- if (adapted != null) {
- // Append the old one along with the adapted one
- return adapted + ' ' + clazz;
- }
-
- return clazz;
- };
- }
-
- var dropdownCss = this.options.get('dropdownCss') || {};
-
- if ($.isFunction(dropdownCss)) {
- dropdownCss = dropdownCss(this.$element);
- }
-
- CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter);
-
- $dropdown.css(dropdownCss);
- $dropdown.addClass(dropdownCssClass);
-
- return $dropdown;
- };
-
- return DropdownCSS;
-});
-
-S2.define('select2/compat/initSelection',[
- 'jquery'
-], function ($) {
- function InitSelection (decorated, $element, options) {
- if (options.get('debug') && window.console && console.warn) {
- console.warn(
- 'Select2: The `initSelection` option has been deprecated in favor' +
- ' of a custom data adapter that overrides the `current` method. ' +
- 'This method is now called multiple times instead of a single ' +
- 'time when the instance is initialized. Support will be removed ' +
- 'for the `initSelection` option in future versions of Select2'
- );
- }
-
- this.initSelection = options.get('initSelection');
- this._isInitialized = false;
-
- decorated.call(this, $element, options);
- }
-
- InitSelection.prototype.current = function (decorated, callback) {
- var self = this;
-
- if (this._isInitialized) {
- decorated.call(this, callback);
-
- return;
- }
-
- this.initSelection.call(null, this.$element, function (data) {
- self._isInitialized = true;
-
- if (!$.isArray(data)) {
- data = [data];
- }
-
- callback(data);
- });
- };
-
- return InitSelection;
-});
-
-S2.define('select2/compat/inputData',[
- 'jquery',
- '../utils'
-], function ($, Utils) {
- function InputData (decorated, $element, options) {
- this._currentData = [];
- this._valueSeparator = options.get('valueSeparator') || ',';
-
- if ($element.prop('type') === 'hidden') {
- if (options.get('debug') && console && console.warn) {
- console.warn(
- 'Select2: Using a hidden input with Select2 is no longer ' +
- 'supported and may stop working in the future. It is recommended ' +
- 'to use a `
` element instead.'
- );
- }
- }
-
- decorated.call(this, $element, options);
- }
-
- InputData.prototype.current = function (_, callback) {
- function getSelected (data, selectedIds) {
- var selected = [];
-
- if (data.selected || $.inArray(data.id, selectedIds) !== -1) {
- data.selected = true;
- selected.push(data);
- } else {
- data.selected = false;
- }
-
- if (data.children) {
- selected.push.apply(selected, getSelected(data.children, selectedIds));
- }
-
- return selected;
- }
-
- var selected = [];
-
- for (var d = 0; d < this._currentData.length; d++) {
- var data = this._currentData[d];
-
- selected.push.apply(
- selected,
- getSelected(
- data,
- this.$element.val().split(
- this._valueSeparator
- )
- )
- );
- }
-
- callback(selected);
- };
-
- InputData.prototype.select = function (_, data) {
- if (!this.options.get('multiple')) {
- this.current(function (allData) {
- $.map(allData, function (data) {
- data.selected = false;
- });
- });
-
- this.$element.val(data.id);
- this.$element.trigger('input').trigger('change');
- } else {
- var value = this.$element.val();
- value += this._valueSeparator + data.id;
-
- this.$element.val(value);
- this.$element.trigger('input').trigger('change');
- }
- };
-
- InputData.prototype.unselect = function (_, data) {
- var self = this;
-
- data.selected = false;
-
- this.current(function (allData) {
- var values = [];
-
- for (var d = 0; d < allData.length; d++) {
- var item = allData[d];
-
- if (data.id == item.id) {
- continue;
- }
-
- values.push(item.id);
- }
-
- self.$element.val(values.join(self._valueSeparator));
- self.$element.trigger('input').trigger('change');
- });
- };
-
- InputData.prototype.query = function (_, params, callback) {
- var results = [];
-
- for (var d = 0; d < this._currentData.length; d++) {
- var data = this._currentData[d];
-
- var matches = this.matches(params, data);
-
- if (matches !== null) {
- results.push(matches);
- }
- }
-
- callback({
- results: results
- });
- };
-
- InputData.prototype.addOptions = function (_, $options) {
- var options = $.map($options, function ($option) {
- return Utils.GetData($option[0], 'data');
- });
-
- this._currentData.push.apply(this._currentData, options);
- };
-
- return InputData;
-});
-
-S2.define('select2/compat/matcher',[
- 'jquery'
-], function ($) {
- function oldMatcher (matcher) {
- function wrappedMatcher (params, data) {
- var match = $.extend(true, {}, data);
-
- if (params.term == null || $.trim(params.term) === '') {
- return match;
- }
-
- if (data.children) {
- for (var c = data.children.length - 1; c >= 0; c--) {
- var child = data.children[c];
-
- // Check if the child object matches
- // The old matcher returned a boolean true or false
- var doesMatch = matcher(params.term, child.text, child);
-
- // If the child didn't match, pop it off
- if (!doesMatch) {
- match.children.splice(c, 1);
- }
- }
-
- if (match.children.length > 0) {
- return match;
- }
- }
-
- if (matcher(params.term, data.text, data)) {
- return match;
- }
-
- return null;
- }
-
- return wrappedMatcher;
- }
-
- return oldMatcher;
-});
-
-S2.define('select2/compat/query',[
-
-], function () {
- function Query (decorated, $element, options) {
- if (options.get('debug') && window.console && console.warn) {
- console.warn(
- 'Select2: The `query` option has been deprecated in favor of a ' +
- 'custom data adapter that overrides the `query` method. Support ' +
- 'will be removed for the `query` option in future versions of ' +
- 'Select2.'
- );
- }
-
- decorated.call(this, $element, options);
- }
-
- Query.prototype.query = function (_, params, callback) {
- params.callback = callback;
-
- var query = this.options.get('query');
-
- query.call(null, params);
- };
-
- return Query;
-});
-
-S2.define('select2/dropdown/attachContainer',[
-
-], function () {
- function AttachContainer (decorated, $element, options) {
- decorated.call(this, $element, options);
- }
-
- AttachContainer.prototype.position =
- function (decorated, $dropdown, $container) {
- var $dropdownContainer = $container.find('.dropdown-wrapper');
- $dropdownContainer.append($dropdown);
-
- $dropdown.addClass('select2-dropdown--below');
- $container.addClass('select2-container--below');
- };
-
- return AttachContainer;
-});
-
-S2.define('select2/dropdown/stopPropagation',[
-
-], function () {
- function StopPropagation () { }
-
- StopPropagation.prototype.bind = function (decorated, container, $container) {
- decorated.call(this, container, $container);
-
- var stoppedEvents = [
- 'blur',
- 'change',
- 'click',
- 'dblclick',
- 'focus',
- 'focusin',
- 'focusout',
- 'input',
- 'keydown',
- 'keyup',
- 'keypress',
- 'mousedown',
- 'mouseenter',
- 'mouseleave',
- 'mousemove',
- 'mouseover',
- 'mouseup',
- 'search',
- 'touchend',
- 'touchstart'
- ];
-
- this.$dropdown.on(stoppedEvents.join(' '), function (evt) {
- evt.stopPropagation();
- });
- };
-
- return StopPropagation;
-});
-
-S2.define('select2/selection/stopPropagation',[
-
-], function () {
- function StopPropagation () { }
-
- StopPropagation.prototype.bind = function (decorated, container, $container) {
- decorated.call(this, container, $container);
-
- var stoppedEvents = [
- 'blur',
- 'change',
- 'click',
- 'dblclick',
- 'focus',
- 'focusin',
- 'focusout',
- 'input',
- 'keydown',
- 'keyup',
- 'keypress',
- 'mousedown',
- 'mouseenter',
- 'mouseleave',
- 'mousemove',
- 'mouseover',
- 'mouseup',
- 'search',
- 'touchend',
- 'touchstart'
- ];
-
- this.$selection.on(stoppedEvents.join(' '), function (evt) {
- evt.stopPropagation();
- });
- };
-
- return StopPropagation;
-});
-
-/*!
- * jQuery Mousewheel 3.1.13
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- */
-
-(function (factory) {
- if ( typeof S2.define === 'function' && S2.define.amd ) {
- // AMD. Register as an anonymous module.
- S2.define('jquery-mousewheel',['jquery'], factory);
- } else if (typeof exports === 'object') {
- // Node/CommonJS style for Browserify
- module.exports = factory;
- } else {
- // Browser globals
- factory(jQuery);
- }
-}(function ($) {
-
- var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],
- toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?
- ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],
- slice = Array.prototype.slice,
- nullLowestDeltaTimeout, lowestDelta;
-
- if ( $.event.fixHooks ) {
- for ( var i = toFix.length; i; ) {
- $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;
- }
- }
-
- var special = $.event.special.mousewheel = {
- version: '3.1.12',
-
- setup: function() {
- if ( this.addEventListener ) {
- for ( var i = toBind.length; i; ) {
- this.addEventListener( toBind[--i], handler, false );
- }
- } else {
- this.onmousewheel = handler;
- }
- // Store the line height and page height for this particular element
- $.data(this, 'mousewheel-line-height', special.getLineHeight(this));
- $.data(this, 'mousewheel-page-height', special.getPageHeight(this));
- },
-
- teardown: function() {
- if ( this.removeEventListener ) {
- for ( var i = toBind.length; i; ) {
- this.removeEventListener( toBind[--i], handler, false );
- }
- } else {
- this.onmousewheel = null;
- }
- // Clean up the data we added to the element
- $.removeData(this, 'mousewheel-line-height');
- $.removeData(this, 'mousewheel-page-height');
- },
-
- getLineHeight: function(elem) {
- var $elem = $(elem),
- $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();
- if (!$parent.length) {
- $parent = $('body');
- }
- return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;
- },
-
- getPageHeight: function(elem) {
- return $(elem).height();
- },
-
- settings: {
- adjustOldDeltas: true, // see shouldAdjustOldDeltas() below
- normalizeOffset: true // calls getBoundingClientRect for each event
- }
- };
-
- $.fn.extend({
- mousewheel: function(fn) {
- return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');
- },
-
- unmousewheel: function(fn) {
- return this.unbind('mousewheel', fn);
- }
- });
-
-
- function handler(event) {
- var orgEvent = event || window.event,
- args = slice.call(arguments, 1),
- delta = 0,
- deltaX = 0,
- deltaY = 0,
- absDelta = 0,
- offsetX = 0,
- offsetY = 0;
- event = $.event.fix(orgEvent);
- event.type = 'mousewheel';
-
- // Old school scrollwheel delta
- if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; }
- if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; }
- if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; }
- if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }
-
- // Firefox < 17 horizontal scrolling related to DOMMouseScroll event
- if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
- deltaX = deltaY * -1;
- deltaY = 0;
- }
-
- // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy
- delta = deltaY === 0 ? deltaX : deltaY;
-
- // New school wheel delta (wheel event)
- if ( 'deltaY' in orgEvent ) {
- deltaY = orgEvent.deltaY * -1;
- delta = deltaY;
- }
- if ( 'deltaX' in orgEvent ) {
- deltaX = orgEvent.deltaX;
- if ( deltaY === 0 ) { delta = deltaX * -1; }
- }
-
- // No change actually happened, no reason to go any further
- if ( deltaY === 0 && deltaX === 0 ) { return; }
-
- // Need to convert lines and pages to pixels if we aren't already in pixels
- // There are three delta modes:
- // * deltaMode 0 is by pixels, nothing to do
- // * deltaMode 1 is by lines
- // * deltaMode 2 is by pages
- if ( orgEvent.deltaMode === 1 ) {
- var lineHeight = $.data(this, 'mousewheel-line-height');
- delta *= lineHeight;
- deltaY *= lineHeight;
- deltaX *= lineHeight;
- } else if ( orgEvent.deltaMode === 2 ) {
- var pageHeight = $.data(this, 'mousewheel-page-height');
- delta *= pageHeight;
- deltaY *= pageHeight;
- deltaX *= pageHeight;
- }
-
- // Store lowest absolute delta to normalize the delta values
- absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );
-
- if ( !lowestDelta || absDelta < lowestDelta ) {
- lowestDelta = absDelta;
-
- // Adjust older deltas if necessary
- if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
- lowestDelta /= 40;
- }
- }
-
- // Adjust older deltas if necessary
- if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
- // Divide all the things by 40!
- delta /= 40;
- deltaX /= 40;
- deltaY /= 40;
- }
-
- // Get a whole, normalized value for the deltas
- delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta);
- deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);
- deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);
-
- // Normalise offsetX and offsetY properties
- if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {
- var boundingRect = this.getBoundingClientRect();
- offsetX = event.clientX - boundingRect.left;
- offsetY = event.clientY - boundingRect.top;
- }
-
- // Add information to the event object
- event.deltaX = deltaX;
- event.deltaY = deltaY;
- event.deltaFactor = lowestDelta;
- event.offsetX = offsetX;
- event.offsetY = offsetY;
- // Go ahead and set deltaMode to 0 since we converted to pixels
- // Although this is a little odd since we overwrite the deltaX/Y
- // properties with normalized deltas.
- event.deltaMode = 0;
-
- // Add event and delta to the front of the arguments
- args.unshift(event, delta, deltaX, deltaY);
-
- // Clearout lowestDelta after sometime to better
- // handle multiple device types that give different
- // a different lowestDelta
- // Ex: trackpad = 3 and mouse wheel = 120
- if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }
- nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);
-
- return ($.event.dispatch || $.event.handle).apply(this, args);
- }
-
- function nullLowestDelta() {
- lowestDelta = null;
- }
-
- function shouldAdjustOldDeltas(orgEvent, absDelta) {
- // If this is an older event and the delta is divisable by 120,
- // then we are assuming that the browser is treating this as an
- // older mouse wheel event and that we should divide the deltas
- // by 40 to try and get a more usable deltaFactor.
- // Side note, this actually impacts the reported scroll distance
- // in older browsers and can cause scrolling to be slower than native.
- // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.
- return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;
- }
-
-}));
-
-S2.define('jquery.select2',[
- 'jquery',
- 'jquery-mousewheel',
-
- './select2/core',
- './select2/defaults',
- './select2/utils'
-], function ($, _, Select2, Defaults, Utils) {
- if ($.fn.select2 == null) {
- // All methods that should return the element
- var thisMethods = ['open', 'close', 'destroy'];
-
- $.fn.select2 = function (options) {
- options = options || {};
-
- if (typeof options === 'object') {
- this.each(function () {
- var instanceOptions = $.extend(true, {}, options);
-
- var instance = new Select2($(this), instanceOptions);
- });
-
- return this;
- } else if (typeof options === 'string') {
- var ret;
- var args = Array.prototype.slice.call(arguments, 1);
-
- this.each(function () {
- var instance = Utils.GetData(this, 'select2');
-
- if (instance == null && window.console && console.error) {
- console.error(
- 'The select2(\'' + options + '\') method was called on an ' +
- 'element that is not using Select2.'
- );
- }
-
- ret = instance[options].apply(instance, args);
- });
-
- // Check if we should be returning `this`
- if ($.inArray(options, thisMethods) > -1) {
- return this;
- }
-
- return ret;
- } else {
- throw new Error('Invalid arguments for Select2: ' + options);
- }
- };
- }
-
- if ($.fn.select2.defaults == null) {
- $.fn.select2.defaults = Defaults;
- }
-
- return Select2;
-});
-
- // Return the AMD loader configuration so it can be used outside of this file
- return {
- define: S2.define,
- require: S2.require
- };
-}());
-
- // Autoload the jQuery bindings
- // We know that all of the modules exist above this, so we're safe
- var select2 = S2.require('jquery.select2');
-
- // Hold the AMD module references on the jQuery function that was just loaded
- // This allows Select2 to use the internal loader outside of this file, such
- // as in the language files.
- jQuery.fn.select2.amd = S2;
-
- // Return the Select2 instance for anyone who is importing it.
- return select2;
-}));
diff --git a/ui/lib/select2/js/select2.full.min.js b/ui/lib/select2/js/select2.full.min.js
deleted file mode 100644
index fa781916e..000000000
--- a/ui/lib/select2/js/select2.full.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-!function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(d){var e=function(){if(d&&d.fn&&d.fn.select2&&d.fn.select2.amd)var e=d.fn.select2.amd;var t,n,i,h,o,s,f,g,m,v,y,_,r,a,w,l;function b(e,t){return r.call(e,t)}function c(e,t){var n,i,r,o,s,a,l,c,u,d,p,h=t&&t.split("/"),f=y.map,g=f&&f["*"]||{};if(e){for(s=(e=e.split("/")).length-1,y.nodeIdCompat&&w.test(e[s])&&(e[s]=e[s].replace(w,"")),"."===e[0].charAt(0)&&h&&(e=h.slice(0,h.length-1).concat(e)),u=0;u":">",'"':""","'":"'","/":"/"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},r.appendMany=function(e,t){if("1.7"===o.fn.jquery.substr(0,3)){var n=o();o.map(t,function(e){n=n.add(e)}),t=n}e.append(t)},r.__cache={};var n=0;return r.GetUniqueElementId=function(e){var t=e.getAttribute("data-select2-id");return null==t&&(e.id?(t=e.id,e.setAttribute("data-select2-id",t)):(e.setAttribute("data-select2-id",++n),t=n.toString())),t},r.StoreData=function(e,t,n){var i=r.GetUniqueElementId(e);r.__cache[i]||(r.__cache[i]={}),r.__cache[i][t]=n},r.GetData=function(e,t){var n=r.GetUniqueElementId(e);return t?r.__cache[n]&&null!=r.__cache[n][t]?r.__cache[n][t]:o(e).data(t):r.__cache[n]},r.RemoveData=function(e){var t=r.GetUniqueElementId(e);null!=r.__cache[t]&&delete r.__cache[t],e.removeAttribute("data-select2-id")},r}),e.define("select2/results",["jquery","./utils"],function(h,f){function i(e,t,n){this.$element=e,this.data=n,this.options=t,i.__super__.constructor.call(this)}return f.Extend(i,f.Observable),i.prototype.render=function(){var e=h('');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},i.prototype.clear=function(){this.$results.empty()},i.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=h(' '),i=this.options.get("translations").get(e.message);n.append(t(i(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},i.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},i.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n",{class:"select2-results__options select2-results__options--nested"});p.append(l),s.append(a),s.append(p)}else this.template(e,t);return f.StoreData(t,"data",e),t},i.prototype.bind=function(t,e){var l=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){l.clear(),l.append(e.data),t.isOpen()&&(l.setClasses(),l.highlightFirstItem())}),t.on("results:append",function(e){l.append(e.data),t.isOpen()&&l.setClasses()}),t.on("query",function(e){l.hideMessages(),l.showLoading(e)}),t.on("select",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("open",function(){l.$results.attr("aria-expanded","true"),l.$results.attr("aria-hidden","false"),l.setClasses(),l.ensureHighlightVisible()}),t.on("close",function(){l.$results.attr("aria-expanded","false"),l.$results.attr("aria-hidden","true"),l.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=l.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=l.getHighlightedResults();if(0!==e.length){var t=f.GetData(e[0],"data");"true"==e.attr("aria-selected")?l.trigger("close",{}):l.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e);if(!(n<=0)){var i=n-1;0===e.length&&(i=0);var r=t.eq(i);r.trigger("mouseenter");var o=l.$results.offset().top,s=r.offset().top,a=l.$results.scrollTop()+(s-o);0===i?l.$results.scrollTop(0):s-o<0&&l.$results.scrollTop(a)}}),t.on("results:next",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e)+1;if(!(n>=t.length)){var i=t.eq(n);i.trigger("mouseenter");var r=l.$results.offset().top+l.$results.outerHeight(!1),o=i.offset().top+i.outerHeight(!1),s=l.$results.scrollTop()+o-r;0===n?l.$results.scrollTop(0):rthis.$results.outerHeight()||o<0)&&this.$results.scrollTop(r)}},i.prototype.template=function(e,t){var n=this.options.get("templateResult"),i=this.options.get("escapeMarkup"),r=n(e,t);null==r?t.style.display="none":"string"==typeof r?t.innerHTML=i(r):h(t).append(r)},i}),e.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),e.define("select2/selection/base",["jquery","../utils","../keys"],function(n,i,r){function o(e,t){this.$element=e,this.options=t,o.__super__.constructor.call(this)}return i.Extend(o,i.Observable),o.prototype.render=function(){var e=n(' ');return this._tabindex=0,null!=i.GetData(this.$element[0],"old-tabindex")?this._tabindex=i.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),e.attr("aria-disabled","false"),this.$selection=e},o.prototype.bind=function(e,t){var n=this,i=e.id+"-results";this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===r.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",i),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),n.$selection.trigger("focus"),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex),n.$selection.attr("aria-disabled","false")}),e.on("disable",function(){n.$selection.attr("tabindex","-1"),n.$selection.attr("aria-disabled","true")})},o.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},o.prototype._attachCloseHandler=function(e){n(document.body).on("mousedown.select2."+e.id,function(e){var t=n(e.target).closest(".select2");n(".select2.select2-container--open").each(function(){this!=t[0]&&i.GetData(this,"element").select2("close")})})},o.prototype._detachCloseHandler=function(e){n(document.body).off("mousedown.select2."+e.id)},o.prototype.position=function(e,t){t.find(".selection").append(e)},o.prototype.destroy=function(){this._detachCloseHandler(this.container)},o.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},o.prototype.isEnabled=function(){return!this.isDisabled()},o.prototype.isDisabled=function(){return this.options.get("disabled")},o}),e.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,i){function r(){r.__super__.constructor.apply(this,arguments)}return n.Extend(r,t),r.prototype.render=function(){var e=r.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html(' '),e},r.prototype.bind=function(t,e){var n=this;r.__super__.bind.apply(this,arguments);var i=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",i).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",i),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.trigger("focus")})},r.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},r.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},r.prototype.selectionContainer=function(){return e(" ")},r.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),i=this.display(t,n);n.empty().append(i);var r=t.title||t.text;r?n.attr("title",r):n.removeAttr("title")}else this.clear()},r}),e.define("select2/selection/multiple",["jquery","./base","../utils"],function(r,e,l){function n(e,t){n.__super__.constructor.apply(this,arguments)}return l.Extend(n,e),n.prototype.render=function(){var e=n.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html(''),e},n.prototype.bind=function(e,t){var i=this;n.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){i.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){if(!i.isDisabled()){var t=r(this).parent(),n=l.GetData(t[0],"data");i.trigger("unselect",{originalEvent:e,data:n})}})},n.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},n.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},n.prototype.selectionContainer=function(){return r('× ')},n.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n×');a.StoreData(i[0],"data",t),this.$selection.find(".select2-selection__rendered").prepend(i)}},e}),e.define("select2/selection/search",["jquery","../utils","../keys"],function(i,a,l){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=i(' ');this.$searchContainer=t,this.$search=t.find("input");var n=e.call(this);return this._transferTabIndex(),n},e.prototype.bind=function(e,t,n){var i=this,r=t.id+"-results";e.call(this,t,n),t.on("open",function(){i.$search.attr("aria-controls",r),i.$search.trigger("focus")}),t.on("close",function(){i.$search.val(""),i.$search.removeAttr("aria-controls"),i.$search.removeAttr("aria-activedescendant"),i.$search.trigger("focus")}),t.on("enable",function(){i.$search.prop("disabled",!1),i._transferTabIndex()}),t.on("disable",function(){i.$search.prop("disabled",!0)}),t.on("focus",function(e){i.$search.trigger("focus")}),t.on("results:focus",function(e){e.data._resultId?i.$search.attr("aria-activedescendant",e.data._resultId):i.$search.removeAttr("aria-activedescendant")}),this.$selection.on("focusin",".select2-search--inline",function(e){i.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){i._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),i.trigger("keypress",e),i._keyUpPrevented=e.isDefaultPrevented(),e.which===l.BACKSPACE&&""===i.$search.val()){var t=i.$searchContainer.prev(".select2-selection__choice");if(0this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("select",function(){i._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var i=this;this._checkIfMaximumSelected(function(){e.call(i,t,n)})},e.prototype._checkIfMaximumSelected=function(e,n){var i=this;this.current(function(e){var t=null!=e?e.length:0;0=i.maximumSelectionLength?i.trigger("results:message",{message:"maximumSelected",args:{maximum:i.maximumSelectionLength}}):n&&n()})},e}),e.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t(' ');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),e.define("select2/dropdown/search",["jquery","../utils"],function(o,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),n=o(' ');return this.$searchContainer=n,this.$search=n.find("input"),t.prepend(n),t},t.prototype.bind=function(e,t,n){var i=this,r=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){i.trigger("keypress",e),i._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){o(this).off("keyup")}),this.$search.on("keyup input",function(e){i.handleSearch(e)}),t.on("open",function(){i.$search.attr("tabindex",0),i.$search.attr("aria-controls",r),i.$search.trigger("focus"),window.setTimeout(function(){i.$search.trigger("focus")},0)}),t.on("close",function(){i.$search.attr("tabindex",-1),i.$search.removeAttr("aria-controls"),i.$search.removeAttr("aria-activedescendant"),i.$search.val(""),i.$search.trigger("blur")}),t.on("focus",function(){t.isOpen()||i.$search.trigger("focus")}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(i.showSearch(e)?i.$searchContainer.removeClass("select2-search--hide"):i.$searchContainer.addClass("select2-search--hide"))}),t.on("results:focus",function(e){e.data._resultId?i.$search.attr("aria-activedescendant",e.data._resultId):i.$search.removeAttr("aria-activedescendant")})},t.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),e.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,i){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,i)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),i=t.length-1;0<=i;i--){var r=t[i];this.placeholder.id===r.id&&n.splice(i,1)}return n},e}),e.define("select2/dropdown/infiniteScroll",["jquery"],function(n){function e(e,t,n,i){this.lastParams={},e.call(this,t,n,i),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("query",function(e){i.lastParams=e,i.loading=!0}),t.on("query:append",function(e){i.lastParams=e,i.loading=!0}),this.$results.on("scroll",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);if(!this.loading&&e){var t=this.$results.offset().top+this.$results.outerHeight(!1);this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=t+50&&this.loadMore()}},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n(' '),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),e.define("select2/dropdown/attachBody",["jquery","../utils"],function(f,a){function e(e,t,n){this.$dropdownParent=f(n.get("dropdownParent")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("open",function(){i._showDropdown(),i._attachPositioningHandler(t),i._bindContainerResultHandlers(t)}),t.on("close",function(){i._hideDropdown(),i._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=f(" "),n=e.call(this);return t.append(n),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){if(!this._containerResultsHandlersBound){var n=this;t.on("results:all",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:append",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:message",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("select",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("unselect",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0}},e.prototype._attachPositioningHandler=function(e,t){var n=this,i="scroll.select2."+t.id,r="resize.select2."+t.id,o="orientationchange.select2."+t.id,s=this.$container.parents().filter(a.hasScroll);s.each(function(){a.StoreData(this,"select2-scroll-position",{x:f(this).scrollLeft(),y:f(this).scrollTop()})}),s.on(i,function(e){var t=a.GetData(this,"select2-scroll-position");f(this).scrollTop(t.y)}),f(window).on(i+" "+r+" "+o,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,i="resize.select2."+t.id,r="orientationchange.select2."+t.id;this.$container.parents().filter(a.hasScroll).off(n),f(window).off(n+" "+i+" "+r)},e.prototype._positionDropdown=function(){var e=f(window),t=this.$dropdown.hasClass("select2-dropdown--above"),n=this.$dropdown.hasClass("select2-dropdown--below"),i=null,r=this.$container.offset();r.bottom=r.top+this.$container.outerHeight(!1);var o={height:this.$container.outerHeight(!1)};o.top=r.top,o.bottom=r.top+o.height;var s=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=ar.bottom+s,d={left:r.left,top:o.bottom},p=this.$dropdownParent;"static"===p.css("position")&&(p=p.offsetParent());var h={top:0,left:0};(f.contains(document.body,p[0])||p[0].isConnected)&&(h=p.offset()),d.top-=h.top,d.left-=h.left,t||n||(i="below"),u||!c||t?!c&&u&&t&&(i="below"):i="above",("above"==i||t&&"below"!==i)&&(d.top=o.top-h.top-s),null!=i&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+i),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+i)),this.$dropdownContainer.css(d)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),e.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,i){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,i)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,i=0;i ');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container.addClass("select2-container--"+this.options.get("theme")),u.StoreData(e[0],"element",this.$element),e},d}),e.define("select2/compat/utils",["jquery"],function(s){return{syncCssClasses:function(e,t,n){var i,r,o=[];(i=s.trim(e.attr("class")))&&s((i=""+i).split(/\s+/)).each(function(){0===this.indexOf("select2-")&&o.push(this)}),(i=s.trim(t.attr("class")))&&s((i=""+i).split(/\s+/)).each(function(){0!==this.indexOf("select2-")&&null!=(r=n(this))&&o.push(r)}),e.attr("class",o.join(" "))}}}),e.define("select2/compat/containerCss",["jquery","./utils"],function(s,a){function l(e){return null}function e(){}return e.prototype.render=function(e){var t=e.call(this),n=this.options.get("containerCssClass")||"";s.isFunction(n)&&(n=n(this.$element));var i=this.options.get("adaptContainerCssClass");if(i=i||l,-1!==n.indexOf(":all:")){n=n.replace(":all:","");var r=i;i=function(e){var t=r(e);return null!=t?t+" "+e:e}}var o=this.options.get("containerCss")||{};return s.isFunction(o)&&(o=o(this.$element)),a.syncCssClasses(t,this.$element,i),t.css(o),t.addClass(n),t},e}),e.define("select2/compat/dropdownCss",["jquery","./utils"],function(s,a){function l(e){return null}function e(){}return e.prototype.render=function(e){var t=e.call(this),n=this.options.get("dropdownCssClass")||"";s.isFunction(n)&&(n=n(this.$element));var i=this.options.get("adaptDropdownCssClass");if(i=i||l,-1!==n.indexOf(":all:")){n=n.replace(":all:","");var r=i;i=function(e){var t=r(e);return null!=t?t+" "+e:e}}var o=this.options.get("dropdownCss")||{};return s.isFunction(o)&&(o=o(this.$element)),a.syncCssClasses(t,this.$element,i),t.css(o),t.addClass(n),t},e}),e.define("select2/compat/initSelection",["jquery"],function(i){function e(e,t,n){n.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"),this.initSelection=n.get("initSelection"),this._isInitialized=!1,e.call(this,t,n)}return e.prototype.current=function(e,t){var n=this;this._isInitialized?e.call(this,t):this.initSelection.call(null,this.$element,function(e){n._isInitialized=!0,i.isArray(e)||(e=[e]),t(e)})},e}),e.define("select2/compat/inputData",["jquery","../utils"],function(s,i){function e(e,t,n){this._currentData=[],this._valueSeparator=n.get("valueSeparator")||",","hidden"===t.prop("type")&&n.get("debug")&&console&&console.warn&&console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `` element instead."),e.call(this,t,n)}return e.prototype.current=function(e,t){function i(e,t){var n=[];return e.selected||-1!==s.inArray(e.id,t)?(e.selected=!0,n.push(e)):e.selected=!1,e.children&&n.push.apply(n,i(e.children,t)),n}for(var n=[],r=0;r 0) {
- name.splice(i - 1, 2);
- i -= 2;
- }
- }
- }
- //end trimDots
-
- name = name.join('/');
- }
-
- //Apply map config if available.
- if ((baseParts || starMap) && map) {
- nameParts = name.split('/');
-
- for (i = nameParts.length; i > 0; i -= 1) {
- nameSegment = nameParts.slice(0, i).join("/");
-
- if (baseParts) {
- //Find the longest baseName segment match in the config.
- //So, do joins on the biggest to smallest lengths of baseParts.
- for (j = baseParts.length; j > 0; j -= 1) {
- mapValue = map[baseParts.slice(0, j).join('/')];
-
- //baseName segment has config, find if it has one for
- //this name.
- if (mapValue) {
- mapValue = mapValue[nameSegment];
- if (mapValue) {
- //Match, update name to the new value.
- foundMap = mapValue;
- foundI = i;
- break;
- }
- }
- }
- }
-
- if (foundMap) {
- break;
- }
-
- //Check for a star map match, but just hold on to it,
- //if there is a shorter segment match later in a matching
- //config, then favor over this star map.
- if (!foundStarMap && starMap && starMap[nameSegment]) {
- foundStarMap = starMap[nameSegment];
- starI = i;
- }
- }
-
- if (!foundMap && foundStarMap) {
- foundMap = foundStarMap;
- foundI = starI;
- }
-
- if (foundMap) {
- nameParts.splice(0, foundI, foundMap);
- name = nameParts.join('/');
- }
- }
-
- return name;
- }
-
- function makeRequire(relName, forceSync) {
- return function () {
- //A version of a require function that passes a moduleName
- //value for items that may need to
- //look up paths relative to the moduleName
- var args = aps.call(arguments, 0);
-
- //If first arg is not require('string'), and there is only
- //one arg, it is the array form without a callback. Insert
- //a null so that the following concat is correct.
- if (typeof args[0] !== 'string' && args.length === 1) {
- args.push(null);
- }
- return req.apply(undef, args.concat([relName, forceSync]));
- };
- }
-
- function makeNormalize(relName) {
- return function (name) {
- return normalize(name, relName);
- };
- }
-
- function makeLoad(depName) {
- return function (value) {
- defined[depName] = value;
- };
- }
-
- function callDep(name) {
- if (hasProp(waiting, name)) {
- var args = waiting[name];
- delete waiting[name];
- defining[name] = true;
- main.apply(undef, args);
- }
-
- if (!hasProp(defined, name) && !hasProp(defining, name)) {
- throw new Error('No ' + name);
- }
- return defined[name];
- }
-
- //Turns a plugin!resource to [plugin, resource]
- //with the plugin being undefined if the name
- //did not have a plugin prefix.
- function splitPrefix(name) {
- var prefix,
- index = name ? name.indexOf('!') : -1;
- if (index > -1) {
- prefix = name.substring(0, index);
- name = name.substring(index + 1, name.length);
- }
- return [prefix, name];
- }
-
- //Creates a parts array for a relName where first part is plugin ID,
- //second part is resource ID. Assumes relName has already been normalized.
- function makeRelParts(relName) {
- return relName ? splitPrefix(relName) : [];
- }
-
- /**
- * Makes a name map, normalizing the name, and using a plugin
- * for normalization if necessary. Grabs a ref to plugin
- * too, as an optimization.
- */
- makeMap = function (name, relParts) {
- var plugin,
- parts = splitPrefix(name),
- prefix = parts[0],
- relResourceName = relParts[1];
-
- name = parts[1];
-
- if (prefix) {
- prefix = normalize(prefix, relResourceName);
- plugin = callDep(prefix);
- }
-
- //Normalize according
- if (prefix) {
- if (plugin && plugin.normalize) {
- name = plugin.normalize(name, makeNormalize(relResourceName));
- } else {
- name = normalize(name, relResourceName);
- }
- } else {
- name = normalize(name, relResourceName);
- parts = splitPrefix(name);
- prefix = parts[0];
- name = parts[1];
- if (prefix) {
- plugin = callDep(prefix);
- }
- }
-
- //Using ridiculous property names for space reasons
- return {
- f: prefix ? prefix + '!' + name : name, //fullName
- n: name,
- pr: prefix,
- p: plugin
- };
- };
-
- function makeConfig(name) {
- return function () {
- return (config && config.config && config.config[name]) || {};
- };
- }
-
- handlers = {
- require: function (name) {
- return makeRequire(name);
- },
- exports: function (name) {
- var e = defined[name];
- if (typeof e !== 'undefined') {
- return e;
- } else {
- return (defined[name] = {});
- }
- },
- module: function (name) {
- return {
- id: name,
- uri: '',
- exports: defined[name],
- config: makeConfig(name)
- };
- }
- };
-
- main = function (name, deps, callback, relName) {
- var cjsModule, depName, ret, map, i, relParts,
- args = [],
- callbackType = typeof callback,
- usingExports;
-
- //Use name if no relName
- relName = relName || name;
- relParts = makeRelParts(relName);
-
- //Call the callback to define the module, if necessary.
- if (callbackType === 'undefined' || callbackType === 'function') {
- //Pull out the defined dependencies and pass the ordered
- //values to the callback.
- //Default to [require, exports, module] if no deps
- deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;
- for (i = 0; i < deps.length; i += 1) {
- map = makeMap(deps[i], relParts);
- depName = map.f;
-
- //Fast path CommonJS standard dependencies.
- if (depName === "require") {
- args[i] = handlers.require(name);
- } else if (depName === "exports") {
- //CommonJS module spec 1.1
- args[i] = handlers.exports(name);
- usingExports = true;
- } else if (depName === "module") {
- //CommonJS module spec 1.1
- cjsModule = args[i] = handlers.module(name);
- } else if (hasProp(defined, depName) ||
- hasProp(waiting, depName) ||
- hasProp(defining, depName)) {
- args[i] = callDep(depName);
- } else if (map.p) {
- map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});
- args[i] = defined[depName];
- } else {
- throw new Error(name + ' missing ' + depName);
- }
- }
-
- ret = callback ? callback.apply(defined[name], args) : undefined;
-
- if (name) {
- //If setting exports via "module" is in play,
- //favor that over return value and exports. After that,
- //favor a non-undefined return value over exports use.
- if (cjsModule && cjsModule.exports !== undef &&
- cjsModule.exports !== defined[name]) {
- defined[name] = cjsModule.exports;
- } else if (ret !== undef || !usingExports) {
- //Use the return value from the function.
- defined[name] = ret;
- }
- }
- } else if (name) {
- //May just be an object definition for the module. Only
- //worry about defining if have a module name.
- defined[name] = callback;
- }
- };
-
- requirejs = require = req = function (deps, callback, relName, forceSync, alt) {
- if (typeof deps === "string") {
- if (handlers[deps]) {
- //callback in this case is really relName
- return handlers[deps](callback);
- }
- //Just return the module wanted. In this scenario, the
- //deps arg is the module name, and second arg (if passed)
- //is just the relName.
- //Normalize module name, if it contains . or ..
- return callDep(makeMap(deps, makeRelParts(callback)).f);
- } else if (!deps.splice) {
- //deps is a config object, not an array.
- config = deps;
- if (config.deps) {
- req(config.deps, config.callback);
- }
- if (!callback) {
- return;
- }
-
- if (callback.splice) {
- //callback is an array, which means it is a dependency list.
- //Adjust args if there are dependencies
- deps = callback;
- callback = relName;
- relName = null;
- } else {
- deps = undef;
- }
- }
-
- //Support require(['a'])
- callback = callback || function () {};
-
- //If relName is a function, it is an errback handler,
- //so remove it.
- if (typeof relName === 'function') {
- relName = forceSync;
- forceSync = alt;
- }
-
- //Simulate async callback;
- if (forceSync) {
- main(undef, deps, callback, relName);
- } else {
- //Using a non-zero value because of concern for what old browsers
- //do, and latest browsers "upgrade" to 4 if lower value is used:
- //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:
- //If want a value immediately, use require('id') instead -- something
- //that works in almond on the global level, but not guaranteed and
- //unlikely to work in other AMD implementations.
- setTimeout(function () {
- main(undef, deps, callback, relName);
- }, 4);
- }
-
- return req;
- };
-
- /**
- * Just drops the config on the floor, but returns req in case
- * the config return value is used.
- */
- req.config = function (cfg) {
- return req(cfg);
- };
-
- /**
- * Expose module registry for debugging and tooling
- */
- requirejs._defined = defined;
-
- define = function (name, deps, callback) {
- if (typeof name !== 'string') {
- throw new Error('See almond README: incorrect module build, no module name');
- }
-
- //This module may not have dependencies
- if (!deps.splice) {
- //deps is not an array, so probably means
- //an object literal or factory function for
- //the value. Adjust args.
- callback = deps;
- deps = [];
- }
-
- if (!hasProp(defined, name) && !hasProp(waiting, name)) {
- waiting[name] = [name, deps, callback];
- }
- };
-
- define.amd = {
- jQuery: true
- };
-}());
-
-S2.requirejs = requirejs;S2.require = require;S2.define = define;
-}
-}());
-S2.define("almond", function(){});
-
-/* global jQuery:false, $:false */
-S2.define('jquery',[],function () {
- var _$ = jQuery || $;
-
- if (_$ == null && console && console.error) {
- console.error(
- 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +
- 'found. Make sure that you are including jQuery before Select2 on your ' +
- 'web page.'
- );
- }
-
- return _$;
-});
-
-S2.define('select2/utils',[
- 'jquery'
-], function ($) {
- var Utils = {};
-
- Utils.Extend = function (ChildClass, SuperClass) {
- var __hasProp = {}.hasOwnProperty;
-
- function BaseConstructor () {
- this.constructor = ChildClass;
- }
-
- for (var key in SuperClass) {
- if (__hasProp.call(SuperClass, key)) {
- ChildClass[key] = SuperClass[key];
- }
- }
-
- BaseConstructor.prototype = SuperClass.prototype;
- ChildClass.prototype = new BaseConstructor();
- ChildClass.__super__ = SuperClass.prototype;
-
- return ChildClass;
- };
-
- function getMethods (theClass) {
- var proto = theClass.prototype;
-
- var methods = [];
-
- for (var methodName in proto) {
- var m = proto[methodName];
-
- if (typeof m !== 'function') {
- continue;
- }
-
- if (methodName === 'constructor') {
- continue;
- }
-
- methods.push(methodName);
- }
-
- return methods;
- }
-
- Utils.Decorate = function (SuperClass, DecoratorClass) {
- var decoratedMethods = getMethods(DecoratorClass);
- var superMethods = getMethods(SuperClass);
-
- function DecoratedClass () {
- var unshift = Array.prototype.unshift;
-
- var argCount = DecoratorClass.prototype.constructor.length;
-
- var calledConstructor = SuperClass.prototype.constructor;
-
- if (argCount > 0) {
- unshift.call(arguments, SuperClass.prototype.constructor);
-
- calledConstructor = DecoratorClass.prototype.constructor;
- }
-
- calledConstructor.apply(this, arguments);
- }
-
- DecoratorClass.displayName = SuperClass.displayName;
-
- function ctr () {
- this.constructor = DecoratedClass;
- }
-
- DecoratedClass.prototype = new ctr();
-
- for (var m = 0; m < superMethods.length; m++) {
- var superMethod = superMethods[m];
-
- DecoratedClass.prototype[superMethod] =
- SuperClass.prototype[superMethod];
- }
-
- var calledMethod = function (methodName) {
- // Stub out the original method if it's not decorating an actual method
- var originalMethod = function () {};
-
- if (methodName in DecoratedClass.prototype) {
- originalMethod = DecoratedClass.prototype[methodName];
- }
-
- var decoratedMethod = DecoratorClass.prototype[methodName];
-
- return function () {
- var unshift = Array.prototype.unshift;
-
- unshift.call(arguments, originalMethod);
-
- return decoratedMethod.apply(this, arguments);
- };
- };
-
- for (var d = 0; d < decoratedMethods.length; d++) {
- var decoratedMethod = decoratedMethods[d];
-
- DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);
- }
-
- return DecoratedClass;
- };
-
- var Observable = function () {
- this.listeners = {};
- };
-
- Observable.prototype.on = function (event, callback) {
- this.listeners = this.listeners || {};
-
- if (event in this.listeners) {
- this.listeners[event].push(callback);
- } else {
- this.listeners[event] = [callback];
- }
- };
-
- Observable.prototype.trigger = function (event) {
- var slice = Array.prototype.slice;
- var params = slice.call(arguments, 1);
-
- this.listeners = this.listeners || {};
-
- // Params should always come in as an array
- if (params == null) {
- params = [];
- }
-
- // If there are no arguments to the event, use a temporary object
- if (params.length === 0) {
- params.push({});
- }
-
- // Set the `_type` of the first object to the event
- params[0]._type = event;
-
- if (event in this.listeners) {
- this.invoke(this.listeners[event], slice.call(arguments, 1));
- }
-
- if ('*' in this.listeners) {
- this.invoke(this.listeners['*'], arguments);
- }
- };
-
- Observable.prototype.invoke = function (listeners, params) {
- for (var i = 0, len = listeners.length; i < len; i++) {
- listeners[i].apply(this, params);
- }
- };
-
- Utils.Observable = Observable;
-
- Utils.generateChars = function (length) {
- var chars = '';
-
- for (var i = 0; i < length; i++) {
- var randomChar = Math.floor(Math.random() * 36);
- chars += randomChar.toString(36);
- }
-
- return chars;
- };
-
- Utils.bind = function (func, context) {
- return function () {
- func.apply(context, arguments);
- };
- };
-
- Utils._convertData = function (data) {
- for (var originalKey in data) {
- var keys = originalKey.split('-');
-
- var dataLevel = data;
-
- if (keys.length === 1) {
- continue;
- }
-
- for (var k = 0; k < keys.length; k++) {
- var key = keys[k];
-
- // Lowercase the first letter
- // By default, dash-separated becomes camelCase
- key = key.substring(0, 1).toLowerCase() + key.substring(1);
-
- if (!(key in dataLevel)) {
- dataLevel[key] = {};
- }
-
- if (k == keys.length - 1) {
- dataLevel[key] = data[originalKey];
- }
-
- dataLevel = dataLevel[key];
- }
-
- delete data[originalKey];
- }
-
- return data;
- };
-
- Utils.hasScroll = function (index, el) {
- // Adapted from the function created by @ShadowScripter
- // and adapted by @BillBarry on the Stack Exchange Code Review website.
- // The original code can be found at
- // http://codereview.stackexchange.com/q/13338
- // and was designed to be used with the Sizzle selector engine.
-
- var $el = $(el);
- var overflowX = el.style.overflowX;
- var overflowY = el.style.overflowY;
-
- //Check both x and y declarations
- if (overflowX === overflowY &&
- (overflowY === 'hidden' || overflowY === 'visible')) {
- return false;
- }
-
- if (overflowX === 'scroll' || overflowY === 'scroll') {
- return true;
- }
-
- return ($el.innerHeight() < el.scrollHeight ||
- $el.innerWidth() < el.scrollWidth);
- };
-
- Utils.escapeMarkup = function (markup) {
- var replaceMap = {
- '\\': '\',
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- '\'': ''',
- '/': '/'
- };
-
- // Do not try to escape the markup if it's not a string
- if (typeof markup !== 'string') {
- return markup;
- }
-
- return String(markup).replace(/[&<>"'\/\\]/g, function (match) {
- return replaceMap[match];
- });
- };
-
- // Append an array of jQuery nodes to a given element.
- Utils.appendMany = function ($element, $nodes) {
- // jQuery 1.7.x does not support $.fn.append() with an array
- // Fall back to a jQuery object collection using $.fn.add()
- if ($.fn.jquery.substr(0, 3) === '1.7') {
- var $jqNodes = $();
-
- $.map($nodes, function (node) {
- $jqNodes = $jqNodes.add(node);
- });
-
- $nodes = $jqNodes;
- }
-
- $element.append($nodes);
- };
-
- // Cache objects in Utils.__cache instead of $.data (see #4346)
- Utils.__cache = {};
-
- var id = 0;
- Utils.GetUniqueElementId = function (element) {
- // Get a unique element Id. If element has no id,
- // creates a new unique number, stores it in the id
- // attribute and returns the new id.
- // If an id already exists, it simply returns it.
-
- var select2Id = element.getAttribute('data-select2-id');
- if (select2Id == null) {
- // If element has id, use it.
- if (element.id) {
- select2Id = element.id;
- element.setAttribute('data-select2-id', select2Id);
- } else {
- element.setAttribute('data-select2-id', ++id);
- select2Id = id.toString();
- }
- }
- return select2Id;
- };
-
- Utils.StoreData = function (element, name, value) {
- // Stores an item in the cache for a specified element.
- // name is the cache key.
- var id = Utils.GetUniqueElementId(element);
- if (!Utils.__cache[id]) {
- Utils.__cache[id] = {};
- }
-
- Utils.__cache[id][name] = value;
- };
-
- Utils.GetData = function (element, name) {
- // Retrieves a value from the cache by its key (name)
- // name is optional. If no name specified, return
- // all cache items for the specified element.
- // and for a specified element.
- var id = Utils.GetUniqueElementId(element);
- if (name) {
- if (Utils.__cache[id]) {
- if (Utils.__cache[id][name] != null) {
- return Utils.__cache[id][name];
- }
- return $(element).data(name); // Fallback to HTML5 data attribs.
- }
- return $(element).data(name); // Fallback to HTML5 data attribs.
- } else {
- return Utils.__cache[id];
- }
- };
-
- Utils.RemoveData = function (element) {
- // Removes all cached items for a specified element.
- var id = Utils.GetUniqueElementId(element);
- if (Utils.__cache[id] != null) {
- delete Utils.__cache[id];
- }
-
- element.removeAttribute('data-select2-id');
- };
-
- return Utils;
-});
-
-S2.define('select2/results',[
- 'jquery',
- './utils'
-], function ($, Utils) {
- function Results ($element, options, dataAdapter) {
- this.$element = $element;
- this.data = dataAdapter;
- this.options = options;
-
- Results.__super__.constructor.call(this);
- }
-
- Utils.Extend(Results, Utils.Observable);
-
- Results.prototype.render = function () {
- var $results = $(
- ''
- );
-
- if (this.options.get('multiple')) {
- $results.attr('aria-multiselectable', 'true');
- }
-
- this.$results = $results;
-
- return $results;
- };
-
- Results.prototype.clear = function () {
- this.$results.empty();
- };
-
- Results.prototype.displayMessage = function (params) {
- var escapeMarkup = this.options.get('escapeMarkup');
-
- this.clear();
- this.hideLoading();
-
- var $message = $(
- ' '
- );
-
- var message = this.options.get('translations').get(params.message);
-
- $message.append(
- escapeMarkup(
- message(params.args)
- )
- );
-
- $message[0].className += ' select2-results__message';
-
- this.$results.append($message);
- };
-
- Results.prototype.hideMessages = function () {
- this.$results.find('.select2-results__message').remove();
- };
-
- Results.prototype.append = function (data) {
- this.hideLoading();
-
- var $options = [];
-
- if (data.results == null || data.results.length === 0) {
- if (this.$results.children().length === 0) {
- this.trigger('results:message', {
- message: 'noResults'
- });
- }
-
- return;
- }
-
- data.results = this.sort(data.results);
-
- for (var d = 0; d < data.results.length; d++) {
- var item = data.results[d];
-
- var $option = this.option(item);
-
- $options.push($option);
- }
-
- this.$results.append($options);
- };
-
- Results.prototype.position = function ($results, $dropdown) {
- var $resultsContainer = $dropdown.find('.select2-results');
- $resultsContainer.append($results);
- };
-
- Results.prototype.sort = function (data) {
- var sorter = this.options.get('sorter');
-
- return sorter(data);
- };
-
- Results.prototype.highlightFirstItem = function () {
- var $options = this.$results
- .find('.select2-results__option[aria-selected]');
-
- var $selected = $options.filter('[aria-selected=true]');
-
- // Check if there are any selected options
- if ($selected.length > 0) {
- // If there are selected options, highlight the first
- $selected.first().trigger('mouseenter');
- } else {
- // If there are no selected options, highlight the first option
- // in the dropdown
- $options.first().trigger('mouseenter');
- }
-
- this.ensureHighlightVisible();
- };
-
- Results.prototype.setClasses = function () {
- var self = this;
-
- this.data.current(function (selected) {
- var selectedIds = $.map(selected, function (s) {
- return s.id.toString();
- });
-
- var $options = self.$results
- .find('.select2-results__option[aria-selected]');
-
- $options.each(function () {
- var $option = $(this);
-
- var item = Utils.GetData(this, 'data');
-
- // id needs to be converted to a string when comparing
- var id = '' + item.id;
-
- if ((item.element != null && item.element.selected) ||
- (item.element == null && $.inArray(id, selectedIds) > -1)) {
- $option.attr('aria-selected', 'true');
- } else {
- $option.attr('aria-selected', 'false');
- }
- });
-
- });
- };
-
- Results.prototype.showLoading = function (params) {
- this.hideLoading();
-
- var loadingMore = this.options.get('translations').get('searching');
-
- var loading = {
- disabled: true,
- loading: true,
- text: loadingMore(params)
- };
- var $loading = this.option(loading);
- $loading.className += ' loading-results';
-
- this.$results.prepend($loading);
- };
-
- Results.prototype.hideLoading = function () {
- this.$results.find('.loading-results').remove();
- };
-
- Results.prototype.option = function (data) {
- var option = document.createElement('li');
- option.className = 'select2-results__option';
-
- var attrs = {
- 'role': 'option',
- 'aria-selected': 'false'
- };
-
- var matches = window.Element.prototype.matches ||
- window.Element.prototype.msMatchesSelector ||
- window.Element.prototype.webkitMatchesSelector;
-
- if ((data.element != null && matches.call(data.element, ':disabled')) ||
- (data.element == null && data.disabled)) {
- delete attrs['aria-selected'];
- attrs['aria-disabled'] = 'true';
- }
-
- if (data.id == null) {
- delete attrs['aria-selected'];
- }
-
- if (data._resultId != null) {
- option.id = data._resultId;
- }
-
- if (data.title) {
- option.title = data.title;
- }
-
- if (data.children) {
- attrs.role = 'group';
- attrs['aria-label'] = data.text;
- delete attrs['aria-selected'];
- }
-
- for (var attr in attrs) {
- var val = attrs[attr];
-
- option.setAttribute(attr, val);
- }
-
- if (data.children) {
- var $option = $(option);
-
- var label = document.createElement('strong');
- label.className = 'select2-results__group';
-
- var $label = $(label);
- this.template(data, label);
-
- var $children = [];
-
- for (var c = 0; c < data.children.length; c++) {
- var child = data.children[c];
-
- var $child = this.option(child);
-
- $children.push($child);
- }
-
- var $childrenContainer = $('', {
- 'class': 'select2-results__options select2-results__options--nested'
- });
-
- $childrenContainer.append($children);
-
- $option.append(label);
- $option.append($childrenContainer);
- } else {
- this.template(data, option);
- }
-
- Utils.StoreData(option, 'data', data);
-
- return option;
- };
-
- Results.prototype.bind = function (container, $container) {
- var self = this;
-
- var id = container.id + '-results';
-
- this.$results.attr('id', id);
-
- container.on('results:all', function (params) {
- self.clear();
- self.append(params.data);
-
- if (container.isOpen()) {
- self.setClasses();
- self.highlightFirstItem();
- }
- });
-
- container.on('results:append', function (params) {
- self.append(params.data);
-
- if (container.isOpen()) {
- self.setClasses();
- }
- });
-
- container.on('query', function (params) {
- self.hideMessages();
- self.showLoading(params);
- });
-
- container.on('select', function () {
- if (!container.isOpen()) {
- return;
- }
-
- self.setClasses();
-
- if (self.options.get('scrollAfterSelect')) {
- self.highlightFirstItem();
- }
- });
-
- container.on('unselect', function () {
- if (!container.isOpen()) {
- return;
- }
-
- self.setClasses();
-
- if (self.options.get('scrollAfterSelect')) {
- self.highlightFirstItem();
- }
- });
-
- container.on('open', function () {
- // When the dropdown is open, aria-expended="true"
- self.$results.attr('aria-expanded', 'true');
- self.$results.attr('aria-hidden', 'false');
-
- self.setClasses();
- self.ensureHighlightVisible();
- });
-
- container.on('close', function () {
- // When the dropdown is closed, aria-expended="false"
- self.$results.attr('aria-expanded', 'false');
- self.$results.attr('aria-hidden', 'true');
- self.$results.removeAttr('aria-activedescendant');
- });
-
- container.on('results:toggle', function () {
- var $highlighted = self.getHighlightedResults();
-
- if ($highlighted.length === 0) {
- return;
- }
-
- $highlighted.trigger('mouseup');
- });
-
- container.on('results:select', function () {
- var $highlighted = self.getHighlightedResults();
-
- if ($highlighted.length === 0) {
- return;
- }
-
- var data = Utils.GetData($highlighted[0], 'data');
-
- if ($highlighted.attr('aria-selected') == 'true') {
- self.trigger('close', {});
- } else {
- self.trigger('select', {
- data: data
- });
- }
- });
-
- container.on('results:previous', function () {
- var $highlighted = self.getHighlightedResults();
-
- var $options = self.$results.find('[aria-selected]');
-
- var currentIndex = $options.index($highlighted);
-
- // If we are already at the top, don't move further
- // If no options, currentIndex will be -1
- if (currentIndex <= 0) {
- return;
- }
-
- var nextIndex = currentIndex - 1;
-
- // If none are highlighted, highlight the first
- if ($highlighted.length === 0) {
- nextIndex = 0;
- }
-
- var $next = $options.eq(nextIndex);
-
- $next.trigger('mouseenter');
-
- var currentOffset = self.$results.offset().top;
- var nextTop = $next.offset().top;
- var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);
-
- if (nextIndex === 0) {
- self.$results.scrollTop(0);
- } else if (nextTop - currentOffset < 0) {
- self.$results.scrollTop(nextOffset);
- }
- });
-
- container.on('results:next', function () {
- var $highlighted = self.getHighlightedResults();
-
- var $options = self.$results.find('[aria-selected]');
-
- var currentIndex = $options.index($highlighted);
-
- var nextIndex = currentIndex + 1;
-
- // If we are at the last option, stay there
- if (nextIndex >= $options.length) {
- return;
- }
-
- var $next = $options.eq(nextIndex);
-
- $next.trigger('mouseenter');
-
- var currentOffset = self.$results.offset().top +
- self.$results.outerHeight(false);
- var nextBottom = $next.offset().top + $next.outerHeight(false);
- var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;
-
- if (nextIndex === 0) {
- self.$results.scrollTop(0);
- } else if (nextBottom > currentOffset) {
- self.$results.scrollTop(nextOffset);
- }
- });
-
- container.on('results:focus', function (params) {
- params.element.addClass('select2-results__option--highlighted');
- });
-
- container.on('results:message', function (params) {
- self.displayMessage(params);
- });
-
- if ($.fn.mousewheel) {
- this.$results.on('mousewheel', function (e) {
- var top = self.$results.scrollTop();
-
- var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;
-
- var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;
- var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();
-
- if (isAtTop) {
- self.$results.scrollTop(0);
-
- e.preventDefault();
- e.stopPropagation();
- } else if (isAtBottom) {
- self.$results.scrollTop(
- self.$results.get(0).scrollHeight - self.$results.height()
- );
-
- e.preventDefault();
- e.stopPropagation();
- }
- });
- }
-
- this.$results.on('mouseup', '.select2-results__option[aria-selected]',
- function (evt) {
- var $this = $(this);
-
- var data = Utils.GetData(this, 'data');
-
- if ($this.attr('aria-selected') === 'true') {
- if (self.options.get('multiple')) {
- self.trigger('unselect', {
- originalEvent: evt,
- data: data
- });
- } else {
- self.trigger('close', {});
- }
-
- return;
- }
-
- self.trigger('select', {
- originalEvent: evt,
- data: data
- });
- });
-
- this.$results.on('mouseenter', '.select2-results__option[aria-selected]',
- function (evt) {
- var data = Utils.GetData(this, 'data');
-
- self.getHighlightedResults()
- .removeClass('select2-results__option--highlighted');
-
- self.trigger('results:focus', {
- data: data,
- element: $(this)
- });
- });
- };
-
- Results.prototype.getHighlightedResults = function () {
- var $highlighted = this.$results
- .find('.select2-results__option--highlighted');
-
- return $highlighted;
- };
-
- Results.prototype.destroy = function () {
- this.$results.remove();
- };
-
- Results.prototype.ensureHighlightVisible = function () {
- var $highlighted = this.getHighlightedResults();
-
- if ($highlighted.length === 0) {
- return;
- }
-
- var $options = this.$results.find('[aria-selected]');
-
- var currentIndex = $options.index($highlighted);
-
- var currentOffset = this.$results.offset().top;
- var nextTop = $highlighted.offset().top;
- var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);
-
- var offsetDelta = nextTop - currentOffset;
- nextOffset -= $highlighted.outerHeight(false) * 2;
-
- if (currentIndex <= 2) {
- this.$results.scrollTop(0);
- } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {
- this.$results.scrollTop(nextOffset);
- }
- };
-
- Results.prototype.template = function (result, container) {
- var template = this.options.get('templateResult');
- var escapeMarkup = this.options.get('escapeMarkup');
-
- var content = template(result, container);
-
- if (content == null) {
- container.style.display = 'none';
- } else if (typeof content === 'string') {
- container.innerHTML = escapeMarkup(content);
- } else {
- $(container).append(content);
- }
- };
-
- return Results;
-});
-
-S2.define('select2/keys',[
-
-], function () {
- var KEYS = {
- BACKSPACE: 8,
- TAB: 9,
- ENTER: 13,
- SHIFT: 16,
- CTRL: 17,
- ALT: 18,
- ESC: 27,
- SPACE: 32,
- PAGE_UP: 33,
- PAGE_DOWN: 34,
- END: 35,
- HOME: 36,
- LEFT: 37,
- UP: 38,
- RIGHT: 39,
- DOWN: 40,
- DELETE: 46
- };
-
- return KEYS;
-});
-
-S2.define('select2/selection/base',[
- 'jquery',
- '../utils',
- '../keys'
-], function ($, Utils, KEYS) {
- function BaseSelection ($element, options) {
- this.$element = $element;
- this.options = options;
-
- BaseSelection.__super__.constructor.call(this);
- }
-
- Utils.Extend(BaseSelection, Utils.Observable);
-
- BaseSelection.prototype.render = function () {
- var $selection = $(
- '' +
- ' '
- );
-
- this._tabindex = 0;
-
- if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {
- this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');
- } else if (this.$element.attr('tabindex') != null) {
- this._tabindex = this.$element.attr('tabindex');
- }
-
- $selection.attr('title', this.$element.attr('title'));
- $selection.attr('tabindex', this._tabindex);
- $selection.attr('aria-disabled', 'false');
-
- this.$selection = $selection;
-
- return $selection;
- };
-
- BaseSelection.prototype.bind = function (container, $container) {
- var self = this;
-
- var resultsId = container.id + '-results';
-
- this.container = container;
-
- this.$selection.on('focus', function (evt) {
- self.trigger('focus', evt);
- });
-
- this.$selection.on('blur', function (evt) {
- self._handleBlur(evt);
- });
-
- this.$selection.on('keydown', function (evt) {
- self.trigger('keypress', evt);
-
- if (evt.which === KEYS.SPACE) {
- evt.preventDefault();
- }
- });
-
- container.on('results:focus', function (params) {
- self.$selection.attr('aria-activedescendant', params.data._resultId);
- });
-
- container.on('selection:update', function (params) {
- self.update(params.data);
- });
-
- container.on('open', function () {
- // When the dropdown is open, aria-expanded="true"
- self.$selection.attr('aria-expanded', 'true');
- self.$selection.attr('aria-owns', resultsId);
-
- self._attachCloseHandler(container);
- });
-
- container.on('close', function () {
- // When the dropdown is closed, aria-expanded="false"
- self.$selection.attr('aria-expanded', 'false');
- self.$selection.removeAttr('aria-activedescendant');
- self.$selection.removeAttr('aria-owns');
-
- self.$selection.trigger('focus');
-
- self._detachCloseHandler(container);
- });
-
- container.on('enable', function () {
- self.$selection.attr('tabindex', self._tabindex);
- self.$selection.attr('aria-disabled', 'false');
- });
-
- container.on('disable', function () {
- self.$selection.attr('tabindex', '-1');
- self.$selection.attr('aria-disabled', 'true');
- });
- };
-
- BaseSelection.prototype._handleBlur = function (evt) {
- var self = this;
-
- // This needs to be delayed as the active element is the body when the tab
- // key is pressed, possibly along with others.
- window.setTimeout(function () {
- // Don't trigger `blur` if the focus is still in the selection
- if (
- (document.activeElement == self.$selection[0]) ||
- ($.contains(self.$selection[0], document.activeElement))
- ) {
- return;
- }
-
- self.trigger('blur', evt);
- }, 1);
- };
-
- BaseSelection.prototype._attachCloseHandler = function (container) {
-
- $(document.body).on('mousedown.select2.' + container.id, function (e) {
- var $target = $(e.target);
-
- var $select = $target.closest('.select2');
-
- var $all = $('.select2.select2-container--open');
-
- $all.each(function () {
- if (this == $select[0]) {
- return;
- }
-
- var $element = Utils.GetData(this, 'element');
-
- $element.select2('close');
- });
- });
- };
-
- BaseSelection.prototype._detachCloseHandler = function (container) {
- $(document.body).off('mousedown.select2.' + container.id);
- };
-
- BaseSelection.prototype.position = function ($selection, $container) {
- var $selectionContainer = $container.find('.selection');
- $selectionContainer.append($selection);
- };
-
- BaseSelection.prototype.destroy = function () {
- this._detachCloseHandler(this.container);
- };
-
- BaseSelection.prototype.update = function (data) {
- throw new Error('The `update` method must be defined in child classes.');
- };
-
- /**
- * Helper method to abstract the "enabled" (not "disabled") state of this
- * object.
- *
- * @return {true} if the instance is not disabled.
- * @return {false} if the instance is disabled.
- */
- BaseSelection.prototype.isEnabled = function () {
- return !this.isDisabled();
- };
-
- /**
- * Helper method to abstract the "disabled" state of this object.
- *
- * @return {true} if the disabled option is true.
- * @return {false} if the disabled option is false.
- */
- BaseSelection.prototype.isDisabled = function () {
- return this.options.get('disabled');
- };
-
- return BaseSelection;
-});
-
-S2.define('select2/selection/single',[
- 'jquery',
- './base',
- '../utils',
- '../keys'
-], function ($, BaseSelection, Utils, KEYS) {
- function SingleSelection () {
- SingleSelection.__super__.constructor.apply(this, arguments);
- }
-
- Utils.Extend(SingleSelection, BaseSelection);
-
- SingleSelection.prototype.render = function () {
- var $selection = SingleSelection.__super__.render.call(this);
-
- $selection.addClass('select2-selection--single');
-
- $selection.html(
- ' ' +
- '' +
- ' ' +
- ' '
- );
-
- return $selection;
- };
-
- SingleSelection.prototype.bind = function (container, $container) {
- var self = this;
-
- SingleSelection.__super__.bind.apply(this, arguments);
-
- var id = container.id + '-container';
-
- this.$selection.find('.select2-selection__rendered')
- .attr('id', id)
- .attr('role', 'textbox')
- .attr('aria-readonly', 'true');
- this.$selection.attr('aria-labelledby', id);
-
- this.$selection.on('mousedown', function (evt) {
- // Only respond to left clicks
- if (evt.which !== 1) {
- return;
- }
-
- self.trigger('toggle', {
- originalEvent: evt
- });
- });
-
- this.$selection.on('focus', function (evt) {
- // User focuses on the container
- });
-
- this.$selection.on('blur', function (evt) {
- // User exits the container
- });
-
- container.on('focus', function (evt) {
- if (!container.isOpen()) {
- self.$selection.trigger('focus');
- }
- });
- };
-
- SingleSelection.prototype.clear = function () {
- var $rendered = this.$selection.find('.select2-selection__rendered');
- $rendered.empty();
- $rendered.removeAttr('title'); // clear tooltip on empty
- };
-
- SingleSelection.prototype.display = function (data, container) {
- var template = this.options.get('templateSelection');
- var escapeMarkup = this.options.get('escapeMarkup');
-
- return escapeMarkup(template(data, container));
- };
-
- SingleSelection.prototype.selectionContainer = function () {
- return $(' ');
- };
-
- SingleSelection.prototype.update = function (data) {
- if (data.length === 0) {
- this.clear();
- return;
- }
-
- var selection = data[0];
-
- var $rendered = this.$selection.find('.select2-selection__rendered');
- var formatted = this.display(selection, $rendered);
-
- $rendered.empty().append(formatted);
-
- var title = selection.title || selection.text;
-
- if (title) {
- $rendered.attr('title', title);
- } else {
- $rendered.removeAttr('title');
- }
- };
-
- return SingleSelection;
-});
-
-S2.define('select2/selection/multiple',[
- 'jquery',
- './base',
- '../utils'
-], function ($, BaseSelection, Utils) {
- function MultipleSelection ($element, options) {
- MultipleSelection.__super__.constructor.apply(this, arguments);
- }
-
- Utils.Extend(MultipleSelection, BaseSelection);
-
- MultipleSelection.prototype.render = function () {
- var $selection = MultipleSelection.__super__.render.call(this);
-
- $selection.addClass('select2-selection--multiple');
-
- $selection.html(
- ''
- );
-
- return $selection;
- };
-
- MultipleSelection.prototype.bind = function (container, $container) {
- var self = this;
-
- MultipleSelection.__super__.bind.apply(this, arguments);
-
- this.$selection.on('click', function (evt) {
- self.trigger('toggle', {
- originalEvent: evt
- });
- });
-
- this.$selection.on(
- 'click',
- '.select2-selection__choice__remove',
- function (evt) {
- // Ignore the event if it is disabled
- if (self.isDisabled()) {
- return;
- }
-
- var $remove = $(this);
- var $selection = $remove.parent();
-
- var data = Utils.GetData($selection[0], 'data');
-
- self.trigger('unselect', {
- originalEvent: evt,
- data: data
- });
- }
- );
- };
-
- MultipleSelection.prototype.clear = function () {
- var $rendered = this.$selection.find('.select2-selection__rendered');
- $rendered.empty();
- $rendered.removeAttr('title');
- };
-
- MultipleSelection.prototype.display = function (data, container) {
- var template = this.options.get('templateSelection');
- var escapeMarkup = this.options.get('escapeMarkup');
-
- return escapeMarkup(template(data, container));
- };
-
- MultipleSelection.prototype.selectionContainer = function () {
- var $container = $(
- '' +
- '' +
- '×' +
- ' ' +
- ' '
- );
-
- return $container;
- };
-
- MultipleSelection.prototype.update = function (data) {
- this.clear();
-
- if (data.length === 0) {
- return;
- }
-
- var $selections = [];
-
- for (var d = 0; d < data.length; d++) {
- var selection = data[d];
-
- var $selection = this.selectionContainer();
- var formatted = this.display(selection, $selection);
-
- $selection.append(formatted);
-
- var title = selection.title || selection.text;
-
- if (title) {
- $selection.attr('title', title);
- }
-
- Utils.StoreData($selection[0], 'data', selection);
-
- $selections.push($selection);
- }
-
- var $rendered = this.$selection.find('.select2-selection__rendered');
-
- Utils.appendMany($rendered, $selections);
- };
-
- return MultipleSelection;
-});
-
-S2.define('select2/selection/placeholder',[
- '../utils'
-], function (Utils) {
- function Placeholder (decorated, $element, options) {
- this.placeholder = this.normalizePlaceholder(options.get('placeholder'));
-
- decorated.call(this, $element, options);
- }
-
- Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {
- if (typeof placeholder === 'string') {
- placeholder = {
- id: '',
- text: placeholder
- };
- }
-
- return placeholder;
- };
-
- Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {
- var $placeholder = this.selectionContainer();
-
- $placeholder.html(this.display(placeholder));
- $placeholder.addClass('select2-selection__placeholder')
- .removeClass('select2-selection__choice');
-
- return $placeholder;
- };
-
- Placeholder.prototype.update = function (decorated, data) {
- var singlePlaceholder = (
- data.length == 1 && data[0].id != this.placeholder.id
- );
- var multipleSelections = data.length > 1;
-
- if (multipleSelections || singlePlaceholder) {
- return decorated.call(this, data);
- }
-
- this.clear();
-
- var $placeholder = this.createPlaceholder(this.placeholder);
-
- this.$selection.find('.select2-selection__rendered').append($placeholder);
- };
-
- return Placeholder;
-});
-
-S2.define('select2/selection/allowClear',[
- 'jquery',
- '../keys',
- '../utils'
-], function ($, KEYS, Utils) {
- function AllowClear () { }
-
- AllowClear.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- decorated.call(this, container, $container);
-
- if (this.placeholder == null) {
- if (this.options.get('debug') && window.console && console.error) {
- console.error(
- 'Select2: The `allowClear` option should be used in combination ' +
- 'with the `placeholder` option.'
- );
- }
- }
-
- this.$selection.on('mousedown', '.select2-selection__clear',
- function (evt) {
- self._handleClear(evt);
- });
-
- container.on('keypress', function (evt) {
- self._handleKeyboardClear(evt, container);
- });
- };
-
- AllowClear.prototype._handleClear = function (_, evt) {
- // Ignore the event if it is disabled
- if (this.isDisabled()) {
- return;
- }
-
- var $clear = this.$selection.find('.select2-selection__clear');
-
- // Ignore the event if nothing has been selected
- if ($clear.length === 0) {
- return;
- }
-
- evt.stopPropagation();
-
- var data = Utils.GetData($clear[0], 'data');
-
- var previousVal = this.$element.val();
- this.$element.val(this.placeholder.id);
-
- var unselectData = {
- data: data
- };
- this.trigger('clear', unselectData);
- if (unselectData.prevented) {
- this.$element.val(previousVal);
- return;
- }
-
- for (var d = 0; d < data.length; d++) {
- unselectData = {
- data: data[d]
- };
-
- // Trigger the `unselect` event, so people can prevent it from being
- // cleared.
- this.trigger('unselect', unselectData);
-
- // If the event was prevented, don't clear it out.
- if (unselectData.prevented) {
- this.$element.val(previousVal);
- return;
- }
- }
-
- this.$element.trigger('input').trigger('change');
-
- this.trigger('toggle', {});
- };
-
- AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {
- if (container.isOpen()) {
- return;
- }
-
- if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {
- this._handleClear(evt);
- }
- };
-
- AllowClear.prototype.update = function (decorated, data) {
- decorated.call(this, data);
-
- if (this.$selection.find('.select2-selection__placeholder').length > 0 ||
- data.length === 0) {
- return;
- }
-
- var removeAll = this.options.get('translations').get('removeAllItems');
-
- var $remove = $(
- '' +
- '×' +
- ' '
- );
- Utils.StoreData($remove[0], 'data', data);
-
- this.$selection.find('.select2-selection__rendered').prepend($remove);
- };
-
- return AllowClear;
-});
-
-S2.define('select2/selection/search',[
- 'jquery',
- '../utils',
- '../keys'
-], function ($, Utils, KEYS) {
- function Search (decorated, $element, options) {
- decorated.call(this, $element, options);
- }
-
- Search.prototype.render = function (decorated) {
- var $search = $(
- '' +
- ' ' +
- ' '
- );
-
- this.$searchContainer = $search;
- this.$search = $search.find('input');
-
- var $rendered = decorated.call(this);
-
- this._transferTabIndex();
-
- return $rendered;
- };
-
- Search.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- var resultsId = container.id + '-results';
-
- decorated.call(this, container, $container);
-
- container.on('open', function () {
- self.$search.attr('aria-controls', resultsId);
- self.$search.trigger('focus');
- });
-
- container.on('close', function () {
- self.$search.val('');
- self.$search.removeAttr('aria-controls');
- self.$search.removeAttr('aria-activedescendant');
- self.$search.trigger('focus');
- });
-
- container.on('enable', function () {
- self.$search.prop('disabled', false);
-
- self._transferTabIndex();
- });
-
- container.on('disable', function () {
- self.$search.prop('disabled', true);
- });
-
- container.on('focus', function (evt) {
- self.$search.trigger('focus');
- });
-
- container.on('results:focus', function (params) {
- if (params.data._resultId) {
- self.$search.attr('aria-activedescendant', params.data._resultId);
- } else {
- self.$search.removeAttr('aria-activedescendant');
- }
- });
-
- this.$selection.on('focusin', '.select2-search--inline', function (evt) {
- self.trigger('focus', evt);
- });
-
- this.$selection.on('focusout', '.select2-search--inline', function (evt) {
- self._handleBlur(evt);
- });
-
- this.$selection.on('keydown', '.select2-search--inline', function (evt) {
- evt.stopPropagation();
-
- self.trigger('keypress', evt);
-
- self._keyUpPrevented = evt.isDefaultPrevented();
-
- var key = evt.which;
-
- if (key === KEYS.BACKSPACE && self.$search.val() === '') {
- var $previousChoice = self.$searchContainer
- .prev('.select2-selection__choice');
-
- if ($previousChoice.length > 0) {
- var item = Utils.GetData($previousChoice[0], 'data');
-
- self.searchRemoveChoice(item);
-
- evt.preventDefault();
- }
- }
- });
-
- this.$selection.on('click', '.select2-search--inline', function (evt) {
- if (self.$search.val()) {
- evt.stopPropagation();
- }
- });
-
- // Try to detect the IE version should the `documentMode` property that
- // is stored on the document. This is only implemented in IE and is
- // slightly cleaner than doing a user agent check.
- // This property is not available in Edge, but Edge also doesn't have
- // this bug.
- var msie = document.documentMode;
- var disableInputEvents = msie && msie <= 11;
-
- // Workaround for browsers which do not support the `input` event
- // This will prevent double-triggering of events for browsers which support
- // both the `keyup` and `input` events.
- this.$selection.on(
- 'input.searchcheck',
- '.select2-search--inline',
- function (evt) {
- // IE will trigger the `input` event when a placeholder is used on a
- // search box. To get around this issue, we are forced to ignore all
- // `input` events in IE and keep using `keyup`.
- if (disableInputEvents) {
- self.$selection.off('input.search input.searchcheck');
- return;
- }
-
- // Unbind the duplicated `keyup` event
- self.$selection.off('keyup.search');
- }
- );
-
- this.$selection.on(
- 'keyup.search input.search',
- '.select2-search--inline',
- function (evt) {
- // IE will trigger the `input` event when a placeholder is used on a
- // search box. To get around this issue, we are forced to ignore all
- // `input` events in IE and keep using `keyup`.
- if (disableInputEvents && evt.type === 'input') {
- self.$selection.off('input.search input.searchcheck');
- return;
- }
-
- var key = evt.which;
-
- // We can freely ignore events from modifier keys
- if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {
- return;
- }
-
- // Tabbing will be handled during the `keydown` phase
- if (key == KEYS.TAB) {
- return;
- }
-
- self.handleSearch(evt);
- }
- );
- };
-
- /**
- * This method will transfer the tabindex attribute from the rendered
- * selection to the search box. This allows for the search box to be used as
- * the primary focus instead of the selection container.
- *
- * @private
- */
- Search.prototype._transferTabIndex = function (decorated) {
- this.$search.attr('tabindex', this.$selection.attr('tabindex'));
- this.$selection.attr('tabindex', '-1');
- };
-
- Search.prototype.createPlaceholder = function (decorated, placeholder) {
- this.$search.attr('placeholder', placeholder.text);
- };
-
- Search.prototype.update = function (decorated, data) {
- var searchHadFocus = this.$search[0] == document.activeElement;
-
- this.$search.attr('placeholder', '');
-
- decorated.call(this, data);
-
- this.$selection.find('.select2-selection__rendered')
- .append(this.$searchContainer);
-
- this.resizeSearch();
- if (searchHadFocus) {
- this.$search.trigger('focus');
- }
- };
-
- Search.prototype.handleSearch = function () {
- this.resizeSearch();
-
- if (!this._keyUpPrevented) {
- var input = this.$search.val();
-
- this.trigger('query', {
- term: input
- });
- }
-
- this._keyUpPrevented = false;
- };
-
- Search.prototype.searchRemoveChoice = function (decorated, item) {
- this.trigger('unselect', {
- data: item
- });
-
- this.$search.val(item.text);
- this.handleSearch();
- };
-
- Search.prototype.resizeSearch = function () {
- this.$search.css('width', '25px');
-
- var width = '';
-
- if (this.$search.attr('placeholder') !== '') {
- width = this.$selection.find('.select2-selection__rendered').width();
- } else {
- var minimumWidth = this.$search.val().length + 1;
-
- width = (minimumWidth * 0.75) + 'em';
- }
-
- this.$search.css('width', width);
- };
-
- return Search;
-});
-
-S2.define('select2/selection/eventRelay',[
- 'jquery'
-], function ($) {
- function EventRelay () { }
-
- EventRelay.prototype.bind = function (decorated, container, $container) {
- var self = this;
- var relayEvents = [
- 'open', 'opening',
- 'close', 'closing',
- 'select', 'selecting',
- 'unselect', 'unselecting',
- 'clear', 'clearing'
- ];
-
- var preventableEvents = [
- 'opening', 'closing', 'selecting', 'unselecting', 'clearing'
- ];
-
- decorated.call(this, container, $container);
-
- container.on('*', function (name, params) {
- // Ignore events that should not be relayed
- if ($.inArray(name, relayEvents) === -1) {
- return;
- }
-
- // The parameters should always be an object
- params = params || {};
-
- // Generate the jQuery event for the Select2 event
- var evt = $.Event('select2:' + name, {
- params: params
- });
-
- self.$element.trigger(evt);
-
- // Only handle preventable events if it was one
- if ($.inArray(name, preventableEvents) === -1) {
- return;
- }
-
- params.prevented = evt.isDefaultPrevented();
- });
- };
-
- return EventRelay;
-});
-
-S2.define('select2/translation',[
- 'jquery',
- 'require'
-], function ($, require) {
- function Translation (dict) {
- this.dict = dict || {};
- }
-
- Translation.prototype.all = function () {
- return this.dict;
- };
-
- Translation.prototype.get = function (key) {
- return this.dict[key];
- };
-
- Translation.prototype.extend = function (translation) {
- this.dict = $.extend({}, translation.all(), this.dict);
- };
-
- // Static functions
-
- Translation._cache = {};
-
- Translation.loadPath = function (path) {
- if (!(path in Translation._cache)) {
- var translations = require(path);
-
- Translation._cache[path] = translations;
- }
-
- return new Translation(Translation._cache[path]);
- };
-
- return Translation;
-});
-
-S2.define('select2/diacritics',[
-
-], function () {
- var diacritics = {
- '\u24B6': 'A',
- '\uFF21': 'A',
- '\u00C0': 'A',
- '\u00C1': 'A',
- '\u00C2': 'A',
- '\u1EA6': 'A',
- '\u1EA4': 'A',
- '\u1EAA': 'A',
- '\u1EA8': 'A',
- '\u00C3': 'A',
- '\u0100': 'A',
- '\u0102': 'A',
- '\u1EB0': 'A',
- '\u1EAE': 'A',
- '\u1EB4': 'A',
- '\u1EB2': 'A',
- '\u0226': 'A',
- '\u01E0': 'A',
- '\u00C4': 'A',
- '\u01DE': 'A',
- '\u1EA2': 'A',
- '\u00C5': 'A',
- '\u01FA': 'A',
- '\u01CD': 'A',
- '\u0200': 'A',
- '\u0202': 'A',
- '\u1EA0': 'A',
- '\u1EAC': 'A',
- '\u1EB6': 'A',
- '\u1E00': 'A',
- '\u0104': 'A',
- '\u023A': 'A',
- '\u2C6F': 'A',
- '\uA732': 'AA',
- '\u00C6': 'AE',
- '\u01FC': 'AE',
- '\u01E2': 'AE',
- '\uA734': 'AO',
- '\uA736': 'AU',
- '\uA738': 'AV',
- '\uA73A': 'AV',
- '\uA73C': 'AY',
- '\u24B7': 'B',
- '\uFF22': 'B',
- '\u1E02': 'B',
- '\u1E04': 'B',
- '\u1E06': 'B',
- '\u0243': 'B',
- '\u0182': 'B',
- '\u0181': 'B',
- '\u24B8': 'C',
- '\uFF23': 'C',
- '\u0106': 'C',
- '\u0108': 'C',
- '\u010A': 'C',
- '\u010C': 'C',
- '\u00C7': 'C',
- '\u1E08': 'C',
- '\u0187': 'C',
- '\u023B': 'C',
- '\uA73E': 'C',
- '\u24B9': 'D',
- '\uFF24': 'D',
- '\u1E0A': 'D',
- '\u010E': 'D',
- '\u1E0C': 'D',
- '\u1E10': 'D',
- '\u1E12': 'D',
- '\u1E0E': 'D',
- '\u0110': 'D',
- '\u018B': 'D',
- '\u018A': 'D',
- '\u0189': 'D',
- '\uA779': 'D',
- '\u01F1': 'DZ',
- '\u01C4': 'DZ',
- '\u01F2': 'Dz',
- '\u01C5': 'Dz',
- '\u24BA': 'E',
- '\uFF25': 'E',
- '\u00C8': 'E',
- '\u00C9': 'E',
- '\u00CA': 'E',
- '\u1EC0': 'E',
- '\u1EBE': 'E',
- '\u1EC4': 'E',
- '\u1EC2': 'E',
- '\u1EBC': 'E',
- '\u0112': 'E',
- '\u1E14': 'E',
- '\u1E16': 'E',
- '\u0114': 'E',
- '\u0116': 'E',
- '\u00CB': 'E',
- '\u1EBA': 'E',
- '\u011A': 'E',
- '\u0204': 'E',
- '\u0206': 'E',
- '\u1EB8': 'E',
- '\u1EC6': 'E',
- '\u0228': 'E',
- '\u1E1C': 'E',
- '\u0118': 'E',
- '\u1E18': 'E',
- '\u1E1A': 'E',
- '\u0190': 'E',
- '\u018E': 'E',
- '\u24BB': 'F',
- '\uFF26': 'F',
- '\u1E1E': 'F',
- '\u0191': 'F',
- '\uA77B': 'F',
- '\u24BC': 'G',
- '\uFF27': 'G',
- '\u01F4': 'G',
- '\u011C': 'G',
- '\u1E20': 'G',
- '\u011E': 'G',
- '\u0120': 'G',
- '\u01E6': 'G',
- '\u0122': 'G',
- '\u01E4': 'G',
- '\u0193': 'G',
- '\uA7A0': 'G',
- '\uA77D': 'G',
- '\uA77E': 'G',
- '\u24BD': 'H',
- '\uFF28': 'H',
- '\u0124': 'H',
- '\u1E22': 'H',
- '\u1E26': 'H',
- '\u021E': 'H',
- '\u1E24': 'H',
- '\u1E28': 'H',
- '\u1E2A': 'H',
- '\u0126': 'H',
- '\u2C67': 'H',
- '\u2C75': 'H',
- '\uA78D': 'H',
- '\u24BE': 'I',
- '\uFF29': 'I',
- '\u00CC': 'I',
- '\u00CD': 'I',
- '\u00CE': 'I',
- '\u0128': 'I',
- '\u012A': 'I',
- '\u012C': 'I',
- '\u0130': 'I',
- '\u00CF': 'I',
- '\u1E2E': 'I',
- '\u1EC8': 'I',
- '\u01CF': 'I',
- '\u0208': 'I',
- '\u020A': 'I',
- '\u1ECA': 'I',
- '\u012E': 'I',
- '\u1E2C': 'I',
- '\u0197': 'I',
- '\u24BF': 'J',
- '\uFF2A': 'J',
- '\u0134': 'J',
- '\u0248': 'J',
- '\u24C0': 'K',
- '\uFF2B': 'K',
- '\u1E30': 'K',
- '\u01E8': 'K',
- '\u1E32': 'K',
- '\u0136': 'K',
- '\u1E34': 'K',
- '\u0198': 'K',
- '\u2C69': 'K',
- '\uA740': 'K',
- '\uA742': 'K',
- '\uA744': 'K',
- '\uA7A2': 'K',
- '\u24C1': 'L',
- '\uFF2C': 'L',
- '\u013F': 'L',
- '\u0139': 'L',
- '\u013D': 'L',
- '\u1E36': 'L',
- '\u1E38': 'L',
- '\u013B': 'L',
- '\u1E3C': 'L',
- '\u1E3A': 'L',
- '\u0141': 'L',
- '\u023D': 'L',
- '\u2C62': 'L',
- '\u2C60': 'L',
- '\uA748': 'L',
- '\uA746': 'L',
- '\uA780': 'L',
- '\u01C7': 'LJ',
- '\u01C8': 'Lj',
- '\u24C2': 'M',
- '\uFF2D': 'M',
- '\u1E3E': 'M',
- '\u1E40': 'M',
- '\u1E42': 'M',
- '\u2C6E': 'M',
- '\u019C': 'M',
- '\u24C3': 'N',
- '\uFF2E': 'N',
- '\u01F8': 'N',
- '\u0143': 'N',
- '\u00D1': 'N',
- '\u1E44': 'N',
- '\u0147': 'N',
- '\u1E46': 'N',
- '\u0145': 'N',
- '\u1E4A': 'N',
- '\u1E48': 'N',
- '\u0220': 'N',
- '\u019D': 'N',
- '\uA790': 'N',
- '\uA7A4': 'N',
- '\u01CA': 'NJ',
- '\u01CB': 'Nj',
- '\u24C4': 'O',
- '\uFF2F': 'O',
- '\u00D2': 'O',
- '\u00D3': 'O',
- '\u00D4': 'O',
- '\u1ED2': 'O',
- '\u1ED0': 'O',
- '\u1ED6': 'O',
- '\u1ED4': 'O',
- '\u00D5': 'O',
- '\u1E4C': 'O',
- '\u022C': 'O',
- '\u1E4E': 'O',
- '\u014C': 'O',
- '\u1E50': 'O',
- '\u1E52': 'O',
- '\u014E': 'O',
- '\u022E': 'O',
- '\u0230': 'O',
- '\u00D6': 'O',
- '\u022A': 'O',
- '\u1ECE': 'O',
- '\u0150': 'O',
- '\u01D1': 'O',
- '\u020C': 'O',
- '\u020E': 'O',
- '\u01A0': 'O',
- '\u1EDC': 'O',
- '\u1EDA': 'O',
- '\u1EE0': 'O',
- '\u1EDE': 'O',
- '\u1EE2': 'O',
- '\u1ECC': 'O',
- '\u1ED8': 'O',
- '\u01EA': 'O',
- '\u01EC': 'O',
- '\u00D8': 'O',
- '\u01FE': 'O',
- '\u0186': 'O',
- '\u019F': 'O',
- '\uA74A': 'O',
- '\uA74C': 'O',
- '\u0152': 'OE',
- '\u01A2': 'OI',
- '\uA74E': 'OO',
- '\u0222': 'OU',
- '\u24C5': 'P',
- '\uFF30': 'P',
- '\u1E54': 'P',
- '\u1E56': 'P',
- '\u01A4': 'P',
- '\u2C63': 'P',
- '\uA750': 'P',
- '\uA752': 'P',
- '\uA754': 'P',
- '\u24C6': 'Q',
- '\uFF31': 'Q',
- '\uA756': 'Q',
- '\uA758': 'Q',
- '\u024A': 'Q',
- '\u24C7': 'R',
- '\uFF32': 'R',
- '\u0154': 'R',
- '\u1E58': 'R',
- '\u0158': 'R',
- '\u0210': 'R',
- '\u0212': 'R',
- '\u1E5A': 'R',
- '\u1E5C': 'R',
- '\u0156': 'R',
- '\u1E5E': 'R',
- '\u024C': 'R',
- '\u2C64': 'R',
- '\uA75A': 'R',
- '\uA7A6': 'R',
- '\uA782': 'R',
- '\u24C8': 'S',
- '\uFF33': 'S',
- '\u1E9E': 'S',
- '\u015A': 'S',
- '\u1E64': 'S',
- '\u015C': 'S',
- '\u1E60': 'S',
- '\u0160': 'S',
- '\u1E66': 'S',
- '\u1E62': 'S',
- '\u1E68': 'S',
- '\u0218': 'S',
- '\u015E': 'S',
- '\u2C7E': 'S',
- '\uA7A8': 'S',
- '\uA784': 'S',
- '\u24C9': 'T',
- '\uFF34': 'T',
- '\u1E6A': 'T',
- '\u0164': 'T',
- '\u1E6C': 'T',
- '\u021A': 'T',
- '\u0162': 'T',
- '\u1E70': 'T',
- '\u1E6E': 'T',
- '\u0166': 'T',
- '\u01AC': 'T',
- '\u01AE': 'T',
- '\u023E': 'T',
- '\uA786': 'T',
- '\uA728': 'TZ',
- '\u24CA': 'U',
- '\uFF35': 'U',
- '\u00D9': 'U',
- '\u00DA': 'U',
- '\u00DB': 'U',
- '\u0168': 'U',
- '\u1E78': 'U',
- '\u016A': 'U',
- '\u1E7A': 'U',
- '\u016C': 'U',
- '\u00DC': 'U',
- '\u01DB': 'U',
- '\u01D7': 'U',
- '\u01D5': 'U',
- '\u01D9': 'U',
- '\u1EE6': 'U',
- '\u016E': 'U',
- '\u0170': 'U',
- '\u01D3': 'U',
- '\u0214': 'U',
- '\u0216': 'U',
- '\u01AF': 'U',
- '\u1EEA': 'U',
- '\u1EE8': 'U',
- '\u1EEE': 'U',
- '\u1EEC': 'U',
- '\u1EF0': 'U',
- '\u1EE4': 'U',
- '\u1E72': 'U',
- '\u0172': 'U',
- '\u1E76': 'U',
- '\u1E74': 'U',
- '\u0244': 'U',
- '\u24CB': 'V',
- '\uFF36': 'V',
- '\u1E7C': 'V',
- '\u1E7E': 'V',
- '\u01B2': 'V',
- '\uA75E': 'V',
- '\u0245': 'V',
- '\uA760': 'VY',
- '\u24CC': 'W',
- '\uFF37': 'W',
- '\u1E80': 'W',
- '\u1E82': 'W',
- '\u0174': 'W',
- '\u1E86': 'W',
- '\u1E84': 'W',
- '\u1E88': 'W',
- '\u2C72': 'W',
- '\u24CD': 'X',
- '\uFF38': 'X',
- '\u1E8A': 'X',
- '\u1E8C': 'X',
- '\u24CE': 'Y',
- '\uFF39': 'Y',
- '\u1EF2': 'Y',
- '\u00DD': 'Y',
- '\u0176': 'Y',
- '\u1EF8': 'Y',
- '\u0232': 'Y',
- '\u1E8E': 'Y',
- '\u0178': 'Y',
- '\u1EF6': 'Y',
- '\u1EF4': 'Y',
- '\u01B3': 'Y',
- '\u024E': 'Y',
- '\u1EFE': 'Y',
- '\u24CF': 'Z',
- '\uFF3A': 'Z',
- '\u0179': 'Z',
- '\u1E90': 'Z',
- '\u017B': 'Z',
- '\u017D': 'Z',
- '\u1E92': 'Z',
- '\u1E94': 'Z',
- '\u01B5': 'Z',
- '\u0224': 'Z',
- '\u2C7F': 'Z',
- '\u2C6B': 'Z',
- '\uA762': 'Z',
- '\u24D0': 'a',
- '\uFF41': 'a',
- '\u1E9A': 'a',
- '\u00E0': 'a',
- '\u00E1': 'a',
- '\u00E2': 'a',
- '\u1EA7': 'a',
- '\u1EA5': 'a',
- '\u1EAB': 'a',
- '\u1EA9': 'a',
- '\u00E3': 'a',
- '\u0101': 'a',
- '\u0103': 'a',
- '\u1EB1': 'a',
- '\u1EAF': 'a',
- '\u1EB5': 'a',
- '\u1EB3': 'a',
- '\u0227': 'a',
- '\u01E1': 'a',
- '\u00E4': 'a',
- '\u01DF': 'a',
- '\u1EA3': 'a',
- '\u00E5': 'a',
- '\u01FB': 'a',
- '\u01CE': 'a',
- '\u0201': 'a',
- '\u0203': 'a',
- '\u1EA1': 'a',
- '\u1EAD': 'a',
- '\u1EB7': 'a',
- '\u1E01': 'a',
- '\u0105': 'a',
- '\u2C65': 'a',
- '\u0250': 'a',
- '\uA733': 'aa',
- '\u00E6': 'ae',
- '\u01FD': 'ae',
- '\u01E3': 'ae',
- '\uA735': 'ao',
- '\uA737': 'au',
- '\uA739': 'av',
- '\uA73B': 'av',
- '\uA73D': 'ay',
- '\u24D1': 'b',
- '\uFF42': 'b',
- '\u1E03': 'b',
- '\u1E05': 'b',
- '\u1E07': 'b',
- '\u0180': 'b',
- '\u0183': 'b',
- '\u0253': 'b',
- '\u24D2': 'c',
- '\uFF43': 'c',
- '\u0107': 'c',
- '\u0109': 'c',
- '\u010B': 'c',
- '\u010D': 'c',
- '\u00E7': 'c',
- '\u1E09': 'c',
- '\u0188': 'c',
- '\u023C': 'c',
- '\uA73F': 'c',
- '\u2184': 'c',
- '\u24D3': 'd',
- '\uFF44': 'd',
- '\u1E0B': 'd',
- '\u010F': 'd',
- '\u1E0D': 'd',
- '\u1E11': 'd',
- '\u1E13': 'd',
- '\u1E0F': 'd',
- '\u0111': 'd',
- '\u018C': 'd',
- '\u0256': 'd',
- '\u0257': 'd',
- '\uA77A': 'd',
- '\u01F3': 'dz',
- '\u01C6': 'dz',
- '\u24D4': 'e',
- '\uFF45': 'e',
- '\u00E8': 'e',
- '\u00E9': 'e',
- '\u00EA': 'e',
- '\u1EC1': 'e',
- '\u1EBF': 'e',
- '\u1EC5': 'e',
- '\u1EC3': 'e',
- '\u1EBD': 'e',
- '\u0113': 'e',
- '\u1E15': 'e',
- '\u1E17': 'e',
- '\u0115': 'e',
- '\u0117': 'e',
- '\u00EB': 'e',
- '\u1EBB': 'e',
- '\u011B': 'e',
- '\u0205': 'e',
- '\u0207': 'e',
- '\u1EB9': 'e',
- '\u1EC7': 'e',
- '\u0229': 'e',
- '\u1E1D': 'e',
- '\u0119': 'e',
- '\u1E19': 'e',
- '\u1E1B': 'e',
- '\u0247': 'e',
- '\u025B': 'e',
- '\u01DD': 'e',
- '\u24D5': 'f',
- '\uFF46': 'f',
- '\u1E1F': 'f',
- '\u0192': 'f',
- '\uA77C': 'f',
- '\u24D6': 'g',
- '\uFF47': 'g',
- '\u01F5': 'g',
- '\u011D': 'g',
- '\u1E21': 'g',
- '\u011F': 'g',
- '\u0121': 'g',
- '\u01E7': 'g',
- '\u0123': 'g',
- '\u01E5': 'g',
- '\u0260': 'g',
- '\uA7A1': 'g',
- '\u1D79': 'g',
- '\uA77F': 'g',
- '\u24D7': 'h',
- '\uFF48': 'h',
- '\u0125': 'h',
- '\u1E23': 'h',
- '\u1E27': 'h',
- '\u021F': 'h',
- '\u1E25': 'h',
- '\u1E29': 'h',
- '\u1E2B': 'h',
- '\u1E96': 'h',
- '\u0127': 'h',
- '\u2C68': 'h',
- '\u2C76': 'h',
- '\u0265': 'h',
- '\u0195': 'hv',
- '\u24D8': 'i',
- '\uFF49': 'i',
- '\u00EC': 'i',
- '\u00ED': 'i',
- '\u00EE': 'i',
- '\u0129': 'i',
- '\u012B': 'i',
- '\u012D': 'i',
- '\u00EF': 'i',
- '\u1E2F': 'i',
- '\u1EC9': 'i',
- '\u01D0': 'i',
- '\u0209': 'i',
- '\u020B': 'i',
- '\u1ECB': 'i',
- '\u012F': 'i',
- '\u1E2D': 'i',
- '\u0268': 'i',
- '\u0131': 'i',
- '\u24D9': 'j',
- '\uFF4A': 'j',
- '\u0135': 'j',
- '\u01F0': 'j',
- '\u0249': 'j',
- '\u24DA': 'k',
- '\uFF4B': 'k',
- '\u1E31': 'k',
- '\u01E9': 'k',
- '\u1E33': 'k',
- '\u0137': 'k',
- '\u1E35': 'k',
- '\u0199': 'k',
- '\u2C6A': 'k',
- '\uA741': 'k',
- '\uA743': 'k',
- '\uA745': 'k',
- '\uA7A3': 'k',
- '\u24DB': 'l',
- '\uFF4C': 'l',
- '\u0140': 'l',
- '\u013A': 'l',
- '\u013E': 'l',
- '\u1E37': 'l',
- '\u1E39': 'l',
- '\u013C': 'l',
- '\u1E3D': 'l',
- '\u1E3B': 'l',
- '\u017F': 'l',
- '\u0142': 'l',
- '\u019A': 'l',
- '\u026B': 'l',
- '\u2C61': 'l',
- '\uA749': 'l',
- '\uA781': 'l',
- '\uA747': 'l',
- '\u01C9': 'lj',
- '\u24DC': 'm',
- '\uFF4D': 'm',
- '\u1E3F': 'm',
- '\u1E41': 'm',
- '\u1E43': 'm',
- '\u0271': 'm',
- '\u026F': 'm',
- '\u24DD': 'n',
- '\uFF4E': 'n',
- '\u01F9': 'n',
- '\u0144': 'n',
- '\u00F1': 'n',
- '\u1E45': 'n',
- '\u0148': 'n',
- '\u1E47': 'n',
- '\u0146': 'n',
- '\u1E4B': 'n',
- '\u1E49': 'n',
- '\u019E': 'n',
- '\u0272': 'n',
- '\u0149': 'n',
- '\uA791': 'n',
- '\uA7A5': 'n',
- '\u01CC': 'nj',
- '\u24DE': 'o',
- '\uFF4F': 'o',
- '\u00F2': 'o',
- '\u00F3': 'o',
- '\u00F4': 'o',
- '\u1ED3': 'o',
- '\u1ED1': 'o',
- '\u1ED7': 'o',
- '\u1ED5': 'o',
- '\u00F5': 'o',
- '\u1E4D': 'o',
- '\u022D': 'o',
- '\u1E4F': 'o',
- '\u014D': 'o',
- '\u1E51': 'o',
- '\u1E53': 'o',
- '\u014F': 'o',
- '\u022F': 'o',
- '\u0231': 'o',
- '\u00F6': 'o',
- '\u022B': 'o',
- '\u1ECF': 'o',
- '\u0151': 'o',
- '\u01D2': 'o',
- '\u020D': 'o',
- '\u020F': 'o',
- '\u01A1': 'o',
- '\u1EDD': 'o',
- '\u1EDB': 'o',
- '\u1EE1': 'o',
- '\u1EDF': 'o',
- '\u1EE3': 'o',
- '\u1ECD': 'o',
- '\u1ED9': 'o',
- '\u01EB': 'o',
- '\u01ED': 'o',
- '\u00F8': 'o',
- '\u01FF': 'o',
- '\u0254': 'o',
- '\uA74B': 'o',
- '\uA74D': 'o',
- '\u0275': 'o',
- '\u0153': 'oe',
- '\u01A3': 'oi',
- '\u0223': 'ou',
- '\uA74F': 'oo',
- '\u24DF': 'p',
- '\uFF50': 'p',
- '\u1E55': 'p',
- '\u1E57': 'p',
- '\u01A5': 'p',
- '\u1D7D': 'p',
- '\uA751': 'p',
- '\uA753': 'p',
- '\uA755': 'p',
- '\u24E0': 'q',
- '\uFF51': 'q',
- '\u024B': 'q',
- '\uA757': 'q',
- '\uA759': 'q',
- '\u24E1': 'r',
- '\uFF52': 'r',
- '\u0155': 'r',
- '\u1E59': 'r',
- '\u0159': 'r',
- '\u0211': 'r',
- '\u0213': 'r',
- '\u1E5B': 'r',
- '\u1E5D': 'r',
- '\u0157': 'r',
- '\u1E5F': 'r',
- '\u024D': 'r',
- '\u027D': 'r',
- '\uA75B': 'r',
- '\uA7A7': 'r',
- '\uA783': 'r',
- '\u24E2': 's',
- '\uFF53': 's',
- '\u00DF': 's',
- '\u015B': 's',
- '\u1E65': 's',
- '\u015D': 's',
- '\u1E61': 's',
- '\u0161': 's',
- '\u1E67': 's',
- '\u1E63': 's',
- '\u1E69': 's',
- '\u0219': 's',
- '\u015F': 's',
- '\u023F': 's',
- '\uA7A9': 's',
- '\uA785': 's',
- '\u1E9B': 's',
- '\u24E3': 't',
- '\uFF54': 't',
- '\u1E6B': 't',
- '\u1E97': 't',
- '\u0165': 't',
- '\u1E6D': 't',
- '\u021B': 't',
- '\u0163': 't',
- '\u1E71': 't',
- '\u1E6F': 't',
- '\u0167': 't',
- '\u01AD': 't',
- '\u0288': 't',
- '\u2C66': 't',
- '\uA787': 't',
- '\uA729': 'tz',
- '\u24E4': 'u',
- '\uFF55': 'u',
- '\u00F9': 'u',
- '\u00FA': 'u',
- '\u00FB': 'u',
- '\u0169': 'u',
- '\u1E79': 'u',
- '\u016B': 'u',
- '\u1E7B': 'u',
- '\u016D': 'u',
- '\u00FC': 'u',
- '\u01DC': 'u',
- '\u01D8': 'u',
- '\u01D6': 'u',
- '\u01DA': 'u',
- '\u1EE7': 'u',
- '\u016F': 'u',
- '\u0171': 'u',
- '\u01D4': 'u',
- '\u0215': 'u',
- '\u0217': 'u',
- '\u01B0': 'u',
- '\u1EEB': 'u',
- '\u1EE9': 'u',
- '\u1EEF': 'u',
- '\u1EED': 'u',
- '\u1EF1': 'u',
- '\u1EE5': 'u',
- '\u1E73': 'u',
- '\u0173': 'u',
- '\u1E77': 'u',
- '\u1E75': 'u',
- '\u0289': 'u',
- '\u24E5': 'v',
- '\uFF56': 'v',
- '\u1E7D': 'v',
- '\u1E7F': 'v',
- '\u028B': 'v',
- '\uA75F': 'v',
- '\u028C': 'v',
- '\uA761': 'vy',
- '\u24E6': 'w',
- '\uFF57': 'w',
- '\u1E81': 'w',
- '\u1E83': 'w',
- '\u0175': 'w',
- '\u1E87': 'w',
- '\u1E85': 'w',
- '\u1E98': 'w',
- '\u1E89': 'w',
- '\u2C73': 'w',
- '\u24E7': 'x',
- '\uFF58': 'x',
- '\u1E8B': 'x',
- '\u1E8D': 'x',
- '\u24E8': 'y',
- '\uFF59': 'y',
- '\u1EF3': 'y',
- '\u00FD': 'y',
- '\u0177': 'y',
- '\u1EF9': 'y',
- '\u0233': 'y',
- '\u1E8F': 'y',
- '\u00FF': 'y',
- '\u1EF7': 'y',
- '\u1E99': 'y',
- '\u1EF5': 'y',
- '\u01B4': 'y',
- '\u024F': 'y',
- '\u1EFF': 'y',
- '\u24E9': 'z',
- '\uFF5A': 'z',
- '\u017A': 'z',
- '\u1E91': 'z',
- '\u017C': 'z',
- '\u017E': 'z',
- '\u1E93': 'z',
- '\u1E95': 'z',
- '\u01B6': 'z',
- '\u0225': 'z',
- '\u0240': 'z',
- '\u2C6C': 'z',
- '\uA763': 'z',
- '\u0386': '\u0391',
- '\u0388': '\u0395',
- '\u0389': '\u0397',
- '\u038A': '\u0399',
- '\u03AA': '\u0399',
- '\u038C': '\u039F',
- '\u038E': '\u03A5',
- '\u03AB': '\u03A5',
- '\u038F': '\u03A9',
- '\u03AC': '\u03B1',
- '\u03AD': '\u03B5',
- '\u03AE': '\u03B7',
- '\u03AF': '\u03B9',
- '\u03CA': '\u03B9',
- '\u0390': '\u03B9',
- '\u03CC': '\u03BF',
- '\u03CD': '\u03C5',
- '\u03CB': '\u03C5',
- '\u03B0': '\u03C5',
- '\u03CE': '\u03C9',
- '\u03C2': '\u03C3',
- '\u2019': '\''
- };
-
- return diacritics;
-});
-
-S2.define('select2/data/base',[
- '../utils'
-], function (Utils) {
- function BaseAdapter ($element, options) {
- BaseAdapter.__super__.constructor.call(this);
- }
-
- Utils.Extend(BaseAdapter, Utils.Observable);
-
- BaseAdapter.prototype.current = function (callback) {
- throw new Error('The `current` method must be defined in child classes.');
- };
-
- BaseAdapter.prototype.query = function (params, callback) {
- throw new Error('The `query` method must be defined in child classes.');
- };
-
- BaseAdapter.prototype.bind = function (container, $container) {
- // Can be implemented in subclasses
- };
-
- BaseAdapter.prototype.destroy = function () {
- // Can be implemented in subclasses
- };
-
- BaseAdapter.prototype.generateResultId = function (container, data) {
- var id = container.id + '-result-';
-
- id += Utils.generateChars(4);
-
- if (data.id != null) {
- id += '-' + data.id.toString();
- } else {
- id += '-' + Utils.generateChars(4);
- }
- return id;
- };
-
- return BaseAdapter;
-});
-
-S2.define('select2/data/select',[
- './base',
- '../utils',
- 'jquery'
-], function (BaseAdapter, Utils, $) {
- function SelectAdapter ($element, options) {
- this.$element = $element;
- this.options = options;
-
- SelectAdapter.__super__.constructor.call(this);
- }
-
- Utils.Extend(SelectAdapter, BaseAdapter);
-
- SelectAdapter.prototype.current = function (callback) {
- var data = [];
- var self = this;
-
- this.$element.find(':selected').each(function () {
- var $option = $(this);
-
- var option = self.item($option);
-
- data.push(option);
- });
-
- callback(data);
- };
-
- SelectAdapter.prototype.select = function (data) {
- var self = this;
-
- data.selected = true;
-
- // If data.element is a DOM node, use it instead
- if ($(data.element).is('option')) {
- data.element.selected = true;
-
- this.$element.trigger('input').trigger('change');
-
- return;
- }
-
- if (this.$element.prop('multiple')) {
- this.current(function (currentData) {
- var val = [];
-
- data = [data];
- data.push.apply(data, currentData);
-
- for (var d = 0; d < data.length; d++) {
- var id = data[d].id;
-
- if ($.inArray(id, val) === -1) {
- val.push(id);
- }
- }
-
- self.$element.val(val);
- self.$element.trigger('input').trigger('change');
- });
- } else {
- var val = data.id;
-
- this.$element.val(val);
- this.$element.trigger('input').trigger('change');
- }
- };
-
- SelectAdapter.prototype.unselect = function (data) {
- var self = this;
-
- if (!this.$element.prop('multiple')) {
- return;
- }
-
- data.selected = false;
-
- if ($(data.element).is('option')) {
- data.element.selected = false;
-
- this.$element.trigger('input').trigger('change');
-
- return;
- }
-
- this.current(function (currentData) {
- var val = [];
-
- for (var d = 0; d < currentData.length; d++) {
- var id = currentData[d].id;
-
- if (id !== data.id && $.inArray(id, val) === -1) {
- val.push(id);
- }
- }
-
- self.$element.val(val);
-
- self.$element.trigger('input').trigger('change');
- });
- };
-
- SelectAdapter.prototype.bind = function (container, $container) {
- var self = this;
-
- this.container = container;
-
- container.on('select', function (params) {
- self.select(params.data);
- });
-
- container.on('unselect', function (params) {
- self.unselect(params.data);
- });
- };
-
- SelectAdapter.prototype.destroy = function () {
- // Remove anything added to child elements
- this.$element.find('*').each(function () {
- // Remove any custom data set by Select2
- Utils.RemoveData(this);
- });
- };
-
- SelectAdapter.prototype.query = function (params, callback) {
- var data = [];
- var self = this;
-
- var $options = this.$element.children();
-
- $options.each(function () {
- var $option = $(this);
-
- if (!$option.is('option') && !$option.is('optgroup')) {
- return;
- }
-
- var option = self.item($option);
-
- var matches = self.matches(params, option);
-
- if (matches !== null) {
- data.push(matches);
- }
- });
-
- callback({
- results: data
- });
- };
-
- SelectAdapter.prototype.addOptions = function ($options) {
- Utils.appendMany(this.$element, $options);
- };
-
- SelectAdapter.prototype.option = function (data) {
- var option;
-
- if (data.children) {
- option = document.createElement('optgroup');
- option.label = data.text;
- } else {
- option = document.createElement('option');
-
- if (option.textContent !== undefined) {
- option.textContent = data.text;
- } else {
- option.innerText = data.text;
- }
- }
-
- if (data.id !== undefined) {
- option.value = data.id;
- }
-
- if (data.disabled) {
- option.disabled = true;
- }
-
- if (data.selected) {
- option.selected = true;
- }
-
- if (data.title) {
- option.title = data.title;
- }
-
- var $option = $(option);
-
- var normalizedData = this._normalizeItem(data);
- normalizedData.element = option;
-
- // Override the option's data with the combined data
- Utils.StoreData(option, 'data', normalizedData);
-
- return $option;
- };
-
- SelectAdapter.prototype.item = function ($option) {
- var data = {};
-
- data = Utils.GetData($option[0], 'data');
-
- if (data != null) {
- return data;
- }
-
- if ($option.is('option')) {
- data = {
- id: $option.val(),
- text: $option.text(),
- disabled: $option.prop('disabled'),
- selected: $option.prop('selected'),
- title: $option.prop('title')
- };
- } else if ($option.is('optgroup')) {
- data = {
- text: $option.prop('label'),
- children: [],
- title: $option.prop('title')
- };
-
- var $children = $option.children('option');
- var children = [];
-
- for (var c = 0; c < $children.length; c++) {
- var $child = $($children[c]);
-
- var child = this.item($child);
-
- children.push(child);
- }
-
- data.children = children;
- }
-
- data = this._normalizeItem(data);
- data.element = $option[0];
-
- Utils.StoreData($option[0], 'data', data);
-
- return data;
- };
-
- SelectAdapter.prototype._normalizeItem = function (item) {
- if (item !== Object(item)) {
- item = {
- id: item,
- text: item
- };
- }
-
- item = $.extend({}, {
- text: ''
- }, item);
-
- var defaults = {
- selected: false,
- disabled: false
- };
-
- if (item.id != null) {
- item.id = item.id.toString();
- }
-
- if (item.text != null) {
- item.text = item.text.toString();
- }
-
- if (item._resultId == null && item.id && this.container != null) {
- item._resultId = this.generateResultId(this.container, item);
- }
-
- return $.extend({}, defaults, item);
- };
-
- SelectAdapter.prototype.matches = function (params, data) {
- var matcher = this.options.get('matcher');
-
- return matcher(params, data);
- };
-
- return SelectAdapter;
-});
-
-S2.define('select2/data/array',[
- './select',
- '../utils',
- 'jquery'
-], function (SelectAdapter, Utils, $) {
- function ArrayAdapter ($element, options) {
- this._dataToConvert = options.get('data') || [];
-
- ArrayAdapter.__super__.constructor.call(this, $element, options);
- }
-
- Utils.Extend(ArrayAdapter, SelectAdapter);
-
- ArrayAdapter.prototype.bind = function (container, $container) {
- ArrayAdapter.__super__.bind.call(this, container, $container);
-
- this.addOptions(this.convertToOptions(this._dataToConvert));
- };
-
- ArrayAdapter.prototype.select = function (data) {
- var $option = this.$element.find('option').filter(function (i, elm) {
- return elm.value == data.id.toString();
- });
-
- if ($option.length === 0) {
- $option = this.option(data);
-
- this.addOptions($option);
- }
-
- ArrayAdapter.__super__.select.call(this, data);
- };
-
- ArrayAdapter.prototype.convertToOptions = function (data) {
- var self = this;
-
- var $existing = this.$element.find('option');
- var existingIds = $existing.map(function () {
- return self.item($(this)).id;
- }).get();
-
- var $options = [];
-
- // Filter out all items except for the one passed in the argument
- function onlyItem (item) {
- return function () {
- return $(this).val() == item.id;
- };
- }
-
- for (var d = 0; d < data.length; d++) {
- var item = this._normalizeItem(data[d]);
-
- // Skip items which were pre-loaded, only merge the data
- if ($.inArray(item.id, existingIds) >= 0) {
- var $existingOption = $existing.filter(onlyItem(item));
-
- var existingData = this.item($existingOption);
- var newData = $.extend(true, {}, item, existingData);
-
- var $newOption = this.option(newData);
-
- $existingOption.replaceWith($newOption);
-
- continue;
- }
-
- var $option = this.option(item);
-
- if (item.children) {
- var $children = this.convertToOptions(item.children);
-
- Utils.appendMany($option, $children);
- }
-
- $options.push($option);
- }
-
- return $options;
- };
-
- return ArrayAdapter;
-});
-
-S2.define('select2/data/ajax',[
- './array',
- '../utils',
- 'jquery'
-], function (ArrayAdapter, Utils, $) {
- function AjaxAdapter ($element, options) {
- this.ajaxOptions = this._applyDefaults(options.get('ajax'));
-
- if (this.ajaxOptions.processResults != null) {
- this.processResults = this.ajaxOptions.processResults;
- }
-
- AjaxAdapter.__super__.constructor.call(this, $element, options);
- }
-
- Utils.Extend(AjaxAdapter, ArrayAdapter);
-
- AjaxAdapter.prototype._applyDefaults = function (options) {
- var defaults = {
- data: function (params) {
- return $.extend({}, params, {
- q: params.term
- });
- },
- transport: function (params, success, failure) {
- var $request = $.ajax(params);
-
- $request.then(success);
- $request.fail(failure);
-
- return $request;
- }
- };
-
- return $.extend({}, defaults, options, true);
- };
-
- AjaxAdapter.prototype.processResults = function (results) {
- return results;
- };
-
- AjaxAdapter.prototype.query = function (params, callback) {
- var matches = [];
- var self = this;
-
- if (this._request != null) {
- // JSONP requests cannot always be aborted
- if ($.isFunction(this._request.abort)) {
- this._request.abort();
- }
-
- this._request = null;
- }
-
- var options = $.extend({
- type: 'GET'
- }, this.ajaxOptions);
-
- if (typeof options.url === 'function') {
- options.url = options.url.call(this.$element, params);
- }
-
- if (typeof options.data === 'function') {
- options.data = options.data.call(this.$element, params);
- }
-
- function request () {
- var $request = options.transport(options, function (data) {
- var results = self.processResults(data, params);
-
- if (self.options.get('debug') && window.console && console.error) {
- // Check to make sure that the response included a `results` key.
- if (!results || !results.results || !$.isArray(results.results)) {
- console.error(
- 'Select2: The AJAX results did not return an array in the ' +
- '`results` key of the response.'
- );
- }
- }
-
- callback(results);
- }, function () {
- // Attempt to detect if a request was aborted
- // Only works if the transport exposes a status property
- if ('status' in $request &&
- ($request.status === 0 || $request.status === '0')) {
- return;
- }
-
- self.trigger('results:message', {
- message: 'errorLoading'
- });
- });
-
- self._request = $request;
- }
-
- if (this.ajaxOptions.delay && params.term != null) {
- if (this._queryTimeout) {
- window.clearTimeout(this._queryTimeout);
- }
-
- this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);
- } else {
- request();
- }
- };
-
- return AjaxAdapter;
-});
-
-S2.define('select2/data/tags',[
- 'jquery'
-], function ($) {
- function Tags (decorated, $element, options) {
- var tags = options.get('tags');
-
- var createTag = options.get('createTag');
-
- if (createTag !== undefined) {
- this.createTag = createTag;
- }
-
- var insertTag = options.get('insertTag');
-
- if (insertTag !== undefined) {
- this.insertTag = insertTag;
- }
-
- decorated.call(this, $element, options);
-
- if ($.isArray(tags)) {
- for (var t = 0; t < tags.length; t++) {
- var tag = tags[t];
- var item = this._normalizeItem(tag);
-
- var $option = this.option(item);
-
- this.$element.append($option);
- }
- }
- }
-
- Tags.prototype.query = function (decorated, params, callback) {
- var self = this;
-
- this._removeOldTags();
-
- if (params.term == null || params.page != null) {
- decorated.call(this, params, callback);
- return;
- }
-
- function wrapper (obj, child) {
- var data = obj.results;
-
- for (var i = 0; i < data.length; i++) {
- var option = data[i];
-
- var checkChildren = (
- option.children != null &&
- !wrapper({
- results: option.children
- }, true)
- );
-
- var optionText = (option.text || '').toUpperCase();
- var paramsTerm = (params.term || '').toUpperCase();
-
- var checkText = optionText === paramsTerm;
-
- if (checkText || checkChildren) {
- if (child) {
- return false;
- }
-
- obj.data = data;
- callback(obj);
-
- return;
- }
- }
-
- if (child) {
- return true;
- }
-
- var tag = self.createTag(params);
-
- if (tag != null) {
- var $option = self.option(tag);
- $option.attr('data-select2-tag', true);
-
- self.addOptions([$option]);
-
- self.insertTag(data, tag);
- }
-
- obj.results = data;
-
- callback(obj);
- }
-
- decorated.call(this, params, wrapper);
- };
-
- Tags.prototype.createTag = function (decorated, params) {
- var term = $.trim(params.term);
-
- if (term === '') {
- return null;
- }
-
- return {
- id: term,
- text: term
- };
- };
-
- Tags.prototype.insertTag = function (_, data, tag) {
- data.unshift(tag);
- };
-
- Tags.prototype._removeOldTags = function (_) {
- var $options = this.$element.find('option[data-select2-tag]');
-
- $options.each(function () {
- if (this.selected) {
- return;
- }
-
- $(this).remove();
- });
- };
-
- return Tags;
-});
-
-S2.define('select2/data/tokenizer',[
- 'jquery'
-], function ($) {
- function Tokenizer (decorated, $element, options) {
- var tokenizer = options.get('tokenizer');
-
- if (tokenizer !== undefined) {
- this.tokenizer = tokenizer;
- }
-
- decorated.call(this, $element, options);
- }
-
- Tokenizer.prototype.bind = function (decorated, container, $container) {
- decorated.call(this, container, $container);
-
- this.$search = container.dropdown.$search || container.selection.$search ||
- $container.find('.select2-search__field');
- };
-
- Tokenizer.prototype.query = function (decorated, params, callback) {
- var self = this;
-
- function createAndSelect (data) {
- // Normalize the data object so we can use it for checks
- var item = self._normalizeItem(data);
-
- // Check if the data object already exists as a tag
- // Select it if it doesn't
- var $existingOptions = self.$element.find('option').filter(function () {
- return $(this).val() === item.id;
- });
-
- // If an existing option wasn't found for it, create the option
- if (!$existingOptions.length) {
- var $option = self.option(item);
- $option.attr('data-select2-tag', true);
-
- self._removeOldTags();
- self.addOptions([$option]);
- }
-
- // Select the item, now that we know there is an option for it
- select(item);
- }
-
- function select (data) {
- self.trigger('select', {
- data: data
- });
- }
-
- params.term = params.term || '';
-
- var tokenData = this.tokenizer(params, this.options, createAndSelect);
-
- if (tokenData.term !== params.term) {
- // Replace the search term if we have the search box
- if (this.$search.length) {
- this.$search.val(tokenData.term);
- this.$search.trigger('focus');
- }
-
- params.term = tokenData.term;
- }
-
- decorated.call(this, params, callback);
- };
-
- Tokenizer.prototype.tokenizer = function (_, params, options, callback) {
- var separators = options.get('tokenSeparators') || [];
- var term = params.term;
- var i = 0;
-
- var createTag = this.createTag || function (params) {
- return {
- id: params.term,
- text: params.term
- };
- };
-
- while (i < term.length) {
- var termChar = term[i];
-
- if ($.inArray(termChar, separators) === -1) {
- i++;
-
- continue;
- }
-
- var part = term.substr(0, i);
- var partParams = $.extend({}, params, {
- term: part
- });
-
- var data = createTag(partParams);
-
- if (data == null) {
- i++;
- continue;
- }
-
- callback(data);
-
- // Reset the term to not include the tokenized portion
- term = term.substr(i + 1) || '';
- i = 0;
- }
-
- return {
- term: term
- };
- };
-
- return Tokenizer;
-});
-
-S2.define('select2/data/minimumInputLength',[
-
-], function () {
- function MinimumInputLength (decorated, $e, options) {
- this.minimumInputLength = options.get('minimumInputLength');
-
- decorated.call(this, $e, options);
- }
-
- MinimumInputLength.prototype.query = function (decorated, params, callback) {
- params.term = params.term || '';
-
- if (params.term.length < this.minimumInputLength) {
- this.trigger('results:message', {
- message: 'inputTooShort',
- args: {
- minimum: this.minimumInputLength,
- input: params.term,
- params: params
- }
- });
-
- return;
- }
-
- decorated.call(this, params, callback);
- };
-
- return MinimumInputLength;
-});
-
-S2.define('select2/data/maximumInputLength',[
-
-], function () {
- function MaximumInputLength (decorated, $e, options) {
- this.maximumInputLength = options.get('maximumInputLength');
-
- decorated.call(this, $e, options);
- }
-
- MaximumInputLength.prototype.query = function (decorated, params, callback) {
- params.term = params.term || '';
-
- if (this.maximumInputLength > 0 &&
- params.term.length > this.maximumInputLength) {
- this.trigger('results:message', {
- message: 'inputTooLong',
- args: {
- maximum: this.maximumInputLength,
- input: params.term,
- params: params
- }
- });
-
- return;
- }
-
- decorated.call(this, params, callback);
- };
-
- return MaximumInputLength;
-});
-
-S2.define('select2/data/maximumSelectionLength',[
-
-], function (){
- function MaximumSelectionLength (decorated, $e, options) {
- this.maximumSelectionLength = options.get('maximumSelectionLength');
-
- decorated.call(this, $e, options);
- }
-
- MaximumSelectionLength.prototype.bind =
- function (decorated, container, $container) {
- var self = this;
-
- decorated.call(this, container, $container);
-
- container.on('select', function () {
- self._checkIfMaximumSelected();
- });
- };
-
- MaximumSelectionLength.prototype.query =
- function (decorated, params, callback) {
- var self = this;
-
- this._checkIfMaximumSelected(function () {
- decorated.call(self, params, callback);
- });
- };
-
- MaximumSelectionLength.prototype._checkIfMaximumSelected =
- function (_, successCallback) {
- var self = this;
-
- this.current(function (currentData) {
- var count = currentData != null ? currentData.length : 0;
- if (self.maximumSelectionLength > 0 &&
- count >= self.maximumSelectionLength) {
- self.trigger('results:message', {
- message: 'maximumSelected',
- args: {
- maximum: self.maximumSelectionLength
- }
- });
- return;
- }
-
- if (successCallback) {
- successCallback();
- }
- });
- };
-
- return MaximumSelectionLength;
-});
-
-S2.define('select2/dropdown',[
- 'jquery',
- './utils'
-], function ($, Utils) {
- function Dropdown ($element, options) {
- this.$element = $element;
- this.options = options;
-
- Dropdown.__super__.constructor.call(this);
- }
-
- Utils.Extend(Dropdown, Utils.Observable);
-
- Dropdown.prototype.render = function () {
- var $dropdown = $(
- '' +
- ' ' +
- ' '
- );
-
- $dropdown.attr('dir', this.options.get('dir'));
-
- this.$dropdown = $dropdown;
-
- return $dropdown;
- };
-
- Dropdown.prototype.bind = function () {
- // Should be implemented in subclasses
- };
-
- Dropdown.prototype.position = function ($dropdown, $container) {
- // Should be implemented in subclasses
- };
-
- Dropdown.prototype.destroy = function () {
- // Remove the dropdown from the DOM
- this.$dropdown.remove();
- };
-
- return Dropdown;
-});
-
-S2.define('select2/dropdown/search',[
- 'jquery',
- '../utils'
-], function ($, Utils) {
- function Search () { }
-
- Search.prototype.render = function (decorated) {
- var $rendered = decorated.call(this);
-
- var $search = $(
- '' +
- ' ' +
- ' '
- );
-
- this.$searchContainer = $search;
- this.$search = $search.find('input');
-
- $rendered.prepend($search);
-
- return $rendered;
- };
-
- Search.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- var resultsId = container.id + '-results';
-
- decorated.call(this, container, $container);
-
- this.$search.on('keydown', function (evt) {
- self.trigger('keypress', evt);
-
- self._keyUpPrevented = evt.isDefaultPrevented();
- });
-
- // Workaround for browsers which do not support the `input` event
- // This will prevent double-triggering of events for browsers which support
- // both the `keyup` and `input` events.
- this.$search.on('input', function (evt) {
- // Unbind the duplicated `keyup` event
- $(this).off('keyup');
- });
-
- this.$search.on('keyup input', function (evt) {
- self.handleSearch(evt);
- });
-
- container.on('open', function () {
- self.$search.attr('tabindex', 0);
- self.$search.attr('aria-controls', resultsId);
-
- self.$search.trigger('focus');
-
- window.setTimeout(function () {
- self.$search.trigger('focus');
- }, 0);
- });
-
- container.on('close', function () {
- self.$search.attr('tabindex', -1);
- self.$search.removeAttr('aria-controls');
- self.$search.removeAttr('aria-activedescendant');
-
- self.$search.val('');
- self.$search.trigger('blur');
- });
-
- container.on('focus', function () {
- if (!container.isOpen()) {
- self.$search.trigger('focus');
- }
- });
-
- container.on('results:all', function (params) {
- if (params.query.term == null || params.query.term === '') {
- var showSearch = self.showSearch(params);
-
- if (showSearch) {
- self.$searchContainer.removeClass('select2-search--hide');
- } else {
- self.$searchContainer.addClass('select2-search--hide');
- }
- }
- });
-
- container.on('results:focus', function (params) {
- if (params.data._resultId) {
- self.$search.attr('aria-activedescendant', params.data._resultId);
- } else {
- self.$search.removeAttr('aria-activedescendant');
- }
- });
- };
-
- Search.prototype.handleSearch = function (evt) {
- if (!this._keyUpPrevented) {
- var input = this.$search.val();
-
- this.trigger('query', {
- term: input
- });
- }
-
- this._keyUpPrevented = false;
- };
-
- Search.prototype.showSearch = function (_, params) {
- return true;
- };
-
- return Search;
-});
-
-S2.define('select2/dropdown/hidePlaceholder',[
-
-], function () {
- function HidePlaceholder (decorated, $element, options, dataAdapter) {
- this.placeholder = this.normalizePlaceholder(options.get('placeholder'));
-
- decorated.call(this, $element, options, dataAdapter);
- }
-
- HidePlaceholder.prototype.append = function (decorated, data) {
- data.results = this.removePlaceholder(data.results);
-
- decorated.call(this, data);
- };
-
- HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {
- if (typeof placeholder === 'string') {
- placeholder = {
- id: '',
- text: placeholder
- };
- }
-
- return placeholder;
- };
-
- HidePlaceholder.prototype.removePlaceholder = function (_, data) {
- var modifiedData = data.slice(0);
-
- for (var d = data.length - 1; d >= 0; d--) {
- var item = data[d];
-
- if (this.placeholder.id === item.id) {
- modifiedData.splice(d, 1);
- }
- }
-
- return modifiedData;
- };
-
- return HidePlaceholder;
-});
-
-S2.define('select2/dropdown/infiniteScroll',[
- 'jquery'
-], function ($) {
- function InfiniteScroll (decorated, $element, options, dataAdapter) {
- this.lastParams = {};
-
- decorated.call(this, $element, options, dataAdapter);
-
- this.$loadingMore = this.createLoadingMore();
- this.loading = false;
- }
-
- InfiniteScroll.prototype.append = function (decorated, data) {
- this.$loadingMore.remove();
- this.loading = false;
-
- decorated.call(this, data);
-
- if (this.showLoadingMore(data)) {
- this.$results.append(this.$loadingMore);
- this.loadMoreIfNeeded();
- }
- };
-
- InfiniteScroll.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- decorated.call(this, container, $container);
-
- container.on('query', function (params) {
- self.lastParams = params;
- self.loading = true;
- });
-
- container.on('query:append', function (params) {
- self.lastParams = params;
- self.loading = true;
- });
-
- this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));
- };
-
- InfiniteScroll.prototype.loadMoreIfNeeded = function () {
- var isLoadMoreVisible = $.contains(
- document.documentElement,
- this.$loadingMore[0]
- );
-
- if (this.loading || !isLoadMoreVisible) {
- return;
- }
-
- var currentOffset = this.$results.offset().top +
- this.$results.outerHeight(false);
- var loadingMoreOffset = this.$loadingMore.offset().top +
- this.$loadingMore.outerHeight(false);
-
- if (currentOffset + 50 >= loadingMoreOffset) {
- this.loadMore();
- }
- };
-
- InfiniteScroll.prototype.loadMore = function () {
- this.loading = true;
-
- var params = $.extend({}, {page: 1}, this.lastParams);
-
- params.page++;
-
- this.trigger('query:append', params);
- };
-
- InfiniteScroll.prototype.showLoadingMore = function (_, data) {
- return data.pagination && data.pagination.more;
- };
-
- InfiniteScroll.prototype.createLoadingMore = function () {
- var $option = $(
- ' '
- );
-
- var message = this.options.get('translations').get('loadingMore');
-
- $option.html(message(this.lastParams));
-
- return $option;
- };
-
- return InfiniteScroll;
-});
-
-S2.define('select2/dropdown/attachBody',[
- 'jquery',
- '../utils'
-], function ($, Utils) {
- function AttachBody (decorated, $element, options) {
- this.$dropdownParent = $(options.get('dropdownParent') || document.body);
-
- decorated.call(this, $element, options);
- }
-
- AttachBody.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- decorated.call(this, container, $container);
-
- container.on('open', function () {
- self._showDropdown();
- self._attachPositioningHandler(container);
-
- // Must bind after the results handlers to ensure correct sizing
- self._bindContainerResultHandlers(container);
- });
-
- container.on('close', function () {
- self._hideDropdown();
- self._detachPositioningHandler(container);
- });
-
- this.$dropdownContainer.on('mousedown', function (evt) {
- evt.stopPropagation();
- });
- };
-
- AttachBody.prototype.destroy = function (decorated) {
- decorated.call(this);
-
- this.$dropdownContainer.remove();
- };
-
- AttachBody.prototype.position = function (decorated, $dropdown, $container) {
- // Clone all of the container classes
- $dropdown.attr('class', $container.attr('class'));
-
- $dropdown.removeClass('select2');
- $dropdown.addClass('select2-container--open');
-
- $dropdown.css({
- position: 'absolute',
- top: -999999
- });
-
- this.$container = $container;
- };
-
- AttachBody.prototype.render = function (decorated) {
- var $container = $(' ');
-
- var $dropdown = decorated.call(this);
- $container.append($dropdown);
-
- this.$dropdownContainer = $container;
-
- return $container;
- };
-
- AttachBody.prototype._hideDropdown = function (decorated) {
- this.$dropdownContainer.detach();
- };
-
- AttachBody.prototype._bindContainerResultHandlers =
- function (decorated, container) {
-
- // These should only be bound once
- if (this._containerResultsHandlersBound) {
- return;
- }
-
- var self = this;
-
- container.on('results:all', function () {
- self._positionDropdown();
- self._resizeDropdown();
- });
-
- container.on('results:append', function () {
- self._positionDropdown();
- self._resizeDropdown();
- });
-
- container.on('results:message', function () {
- self._positionDropdown();
- self._resizeDropdown();
- });
-
- container.on('select', function () {
- self._positionDropdown();
- self._resizeDropdown();
- });
-
- container.on('unselect', function () {
- self._positionDropdown();
- self._resizeDropdown();
- });
-
- this._containerResultsHandlersBound = true;
- };
-
- AttachBody.prototype._attachPositioningHandler =
- function (decorated, container) {
- var self = this;
-
- var scrollEvent = 'scroll.select2.' + container.id;
- var resizeEvent = 'resize.select2.' + container.id;
- var orientationEvent = 'orientationchange.select2.' + container.id;
-
- var $watchers = this.$container.parents().filter(Utils.hasScroll);
- $watchers.each(function () {
- Utils.StoreData(this, 'select2-scroll-position', {
- x: $(this).scrollLeft(),
- y: $(this).scrollTop()
- });
- });
-
- $watchers.on(scrollEvent, function (ev) {
- var position = Utils.GetData(this, 'select2-scroll-position');
- $(this).scrollTop(position.y);
- });
-
- $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,
- function (e) {
- self._positionDropdown();
- self._resizeDropdown();
- });
- };
-
- AttachBody.prototype._detachPositioningHandler =
- function (decorated, container) {
- var scrollEvent = 'scroll.select2.' + container.id;
- var resizeEvent = 'resize.select2.' + container.id;
- var orientationEvent = 'orientationchange.select2.' + container.id;
-
- var $watchers = this.$container.parents().filter(Utils.hasScroll);
- $watchers.off(scrollEvent);
-
- $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);
- };
-
- AttachBody.prototype._positionDropdown = function () {
- var $window = $(window);
-
- var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');
- var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');
-
- var newDirection = null;
-
- var offset = this.$container.offset();
-
- offset.bottom = offset.top + this.$container.outerHeight(false);
-
- var container = {
- height: this.$container.outerHeight(false)
- };
-
- container.top = offset.top;
- container.bottom = offset.top + container.height;
-
- var dropdown = {
- height: this.$dropdown.outerHeight(false)
- };
-
- var viewport = {
- top: $window.scrollTop(),
- bottom: $window.scrollTop() + $window.height()
- };
-
- var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);
- var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);
-
- var css = {
- left: offset.left,
- top: container.bottom
- };
-
- // Determine what the parent element is to use for calculating the offset
- var $offsetParent = this.$dropdownParent;
-
- // For statically positioned elements, we need to get the element
- // that is determining the offset
- if ($offsetParent.css('position') === 'static') {
- $offsetParent = $offsetParent.offsetParent();
- }
-
- var parentOffset = {
- top: 0,
- left: 0
- };
-
- if (
- $.contains(document.body, $offsetParent[0]) ||
- $offsetParent[0].isConnected
- ) {
- parentOffset = $offsetParent.offset();
- }
-
- css.top -= parentOffset.top;
- css.left -= parentOffset.left;
-
- if (!isCurrentlyAbove && !isCurrentlyBelow) {
- newDirection = 'below';
- }
-
- if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {
- newDirection = 'above';
- } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {
- newDirection = 'below';
- }
-
- if (newDirection == 'above' ||
- (isCurrentlyAbove && newDirection !== 'below')) {
- css.top = container.top - parentOffset.top - dropdown.height;
- }
-
- if (newDirection != null) {
- this.$dropdown
- .removeClass('select2-dropdown--below select2-dropdown--above')
- .addClass('select2-dropdown--' + newDirection);
- this.$container
- .removeClass('select2-container--below select2-container--above')
- .addClass('select2-container--' + newDirection);
- }
-
- this.$dropdownContainer.css(css);
- };
-
- AttachBody.prototype._resizeDropdown = function () {
- var css = {
- width: this.$container.outerWidth(false) + 'px'
- };
-
- if (this.options.get('dropdownAutoWidth')) {
- css.minWidth = css.width;
- css.position = 'relative';
- css.width = 'auto';
- }
-
- this.$dropdown.css(css);
- };
-
- AttachBody.prototype._showDropdown = function (decorated) {
- this.$dropdownContainer.appendTo(this.$dropdownParent);
-
- this._positionDropdown();
- this._resizeDropdown();
- };
-
- return AttachBody;
-});
-
-S2.define('select2/dropdown/minimumResultsForSearch',[
-
-], function () {
- function countResults (data) {
- var count = 0;
-
- for (var d = 0; d < data.length; d++) {
- var item = data[d];
-
- if (item.children) {
- count += countResults(item.children);
- } else {
- count++;
- }
- }
-
- return count;
- }
-
- function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {
- this.minimumResultsForSearch = options.get('minimumResultsForSearch');
-
- if (this.minimumResultsForSearch < 0) {
- this.minimumResultsForSearch = Infinity;
- }
-
- decorated.call(this, $element, options, dataAdapter);
- }
-
- MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {
- if (countResults(params.data.results) < this.minimumResultsForSearch) {
- return false;
- }
-
- return decorated.call(this, params);
- };
-
- return MinimumResultsForSearch;
-});
-
-S2.define('select2/dropdown/selectOnClose',[
- '../utils'
-], function (Utils) {
- function SelectOnClose () { }
-
- SelectOnClose.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- decorated.call(this, container, $container);
-
- container.on('close', function (params) {
- self._handleSelectOnClose(params);
- });
- };
-
- SelectOnClose.prototype._handleSelectOnClose = function (_, params) {
- if (params && params.originalSelect2Event != null) {
- var event = params.originalSelect2Event;
-
- // Don't select an item if the close event was triggered from a select or
- // unselect event
- if (event._type === 'select' || event._type === 'unselect') {
- return;
- }
- }
-
- var $highlightedResults = this.getHighlightedResults();
-
- // Only select highlighted results
- if ($highlightedResults.length < 1) {
- return;
- }
-
- var data = Utils.GetData($highlightedResults[0], 'data');
-
- // Don't re-select already selected resulte
- if (
- (data.element != null && data.element.selected) ||
- (data.element == null && data.selected)
- ) {
- return;
- }
-
- this.trigger('select', {
- data: data
- });
- };
-
- return SelectOnClose;
-});
-
-S2.define('select2/dropdown/closeOnSelect',[
-
-], function () {
- function CloseOnSelect () { }
-
- CloseOnSelect.prototype.bind = function (decorated, container, $container) {
- var self = this;
-
- decorated.call(this, container, $container);
-
- container.on('select', function (evt) {
- self._selectTriggered(evt);
- });
-
- container.on('unselect', function (evt) {
- self._selectTriggered(evt);
- });
- };
-
- CloseOnSelect.prototype._selectTriggered = function (_, evt) {
- var originalEvent = evt.originalEvent;
-
- // Don't close if the control key is being held
- if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {
- return;
- }
-
- this.trigger('close', {
- originalEvent: originalEvent,
- originalSelect2Event: evt
- });
- };
-
- return CloseOnSelect;
-});
-
-S2.define('select2/i18n/en',[],function () {
- // English
- return {
- errorLoading: function () {
- return 'The results could not be loaded.';
- },
- inputTooLong: function (args) {
- var overChars = args.input.length - args.maximum;
-
- var message = 'Please delete ' + overChars + ' character';
-
- if (overChars != 1) {
- message += 's';
- }
-
- return message;
- },
- inputTooShort: function (args) {
- var remainingChars = args.minimum - args.input.length;
-
- var message = 'Please enter ' + remainingChars + ' or more characters';
-
- return message;
- },
- loadingMore: function () {
- return 'Loading more results…';
- },
- maximumSelected: function (args) {
- var message = 'You can only select ' + args.maximum + ' item';
-
- if (args.maximum != 1) {
- message += 's';
- }
-
- return message;
- },
- noResults: function () {
- return 'No results found';
- },
- searching: function () {
- return 'Searching…';
- },
- removeAllItems: function () {
- return 'Remove all items';
- }
- };
-});
-
-S2.define('select2/defaults',[
- 'jquery',
- 'require',
-
- './results',
-
- './selection/single',
- './selection/multiple',
- './selection/placeholder',
- './selection/allowClear',
- './selection/search',
- './selection/eventRelay',
-
- './utils',
- './translation',
- './diacritics',
-
- './data/select',
- './data/array',
- './data/ajax',
- './data/tags',
- './data/tokenizer',
- './data/minimumInputLength',
- './data/maximumInputLength',
- './data/maximumSelectionLength',
-
- './dropdown',
- './dropdown/search',
- './dropdown/hidePlaceholder',
- './dropdown/infiniteScroll',
- './dropdown/attachBody',
- './dropdown/minimumResultsForSearch',
- './dropdown/selectOnClose',
- './dropdown/closeOnSelect',
-
- './i18n/en'
-], function ($, require,
-
- ResultsList,
-
- SingleSelection, MultipleSelection, Placeholder, AllowClear,
- SelectionSearch, EventRelay,
-
- Utils, Translation, DIACRITICS,
-
- SelectData, ArrayData, AjaxData, Tags, Tokenizer,
- MinimumInputLength, MaximumInputLength, MaximumSelectionLength,
-
- Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,
- AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,
-
- EnglishTranslation) {
- function Defaults () {
- this.reset();
- }
-
- Defaults.prototype.apply = function (options) {
- options = $.extend(true, {}, this.defaults, options);
-
- if (options.dataAdapter == null) {
- if (options.ajax != null) {
- options.dataAdapter = AjaxData;
- } else if (options.data != null) {
- options.dataAdapter = ArrayData;
- } else {
- options.dataAdapter = SelectData;
- }
-
- if (options.minimumInputLength > 0) {
- options.dataAdapter = Utils.Decorate(
- options.dataAdapter,
- MinimumInputLength
- );
- }
-
- if (options.maximumInputLength > 0) {
- options.dataAdapter = Utils.Decorate(
- options.dataAdapter,
- MaximumInputLength
- );
- }
-
- if (options.maximumSelectionLength > 0) {
- options.dataAdapter = Utils.Decorate(
- options.dataAdapter,
- MaximumSelectionLength
- );
- }
-
- if (options.tags) {
- options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);
- }
-
- if (options.tokenSeparators != null || options.tokenizer != null) {
- options.dataAdapter = Utils.Decorate(
- options.dataAdapter,
- Tokenizer
- );
- }
-
- if (options.query != null) {
- var Query = require(options.amdBase + 'compat/query');
-
- options.dataAdapter = Utils.Decorate(
- options.dataAdapter,
- Query
- );
- }
-
- if (options.initSelection != null) {
- var InitSelection = require(options.amdBase + 'compat/initSelection');
-
- options.dataAdapter = Utils.Decorate(
- options.dataAdapter,
- InitSelection
- );
- }
- }
-
- if (options.resultsAdapter == null) {
- options.resultsAdapter = ResultsList;
-
- if (options.ajax != null) {
- options.resultsAdapter = Utils.Decorate(
- options.resultsAdapter,
- InfiniteScroll
- );
- }
-
- if (options.placeholder != null) {
- options.resultsAdapter = Utils.Decorate(
- options.resultsAdapter,
- HidePlaceholder
- );
- }
-
- if (options.selectOnClose) {
- options.resultsAdapter = Utils.Decorate(
- options.resultsAdapter,
- SelectOnClose
- );
- }
- }
-
- if (options.dropdownAdapter == null) {
- if (options.multiple) {
- options.dropdownAdapter = Dropdown;
- } else {
- var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);
-
- options.dropdownAdapter = SearchableDropdown;
- }
-
- if (options.minimumResultsForSearch !== 0) {
- options.dropdownAdapter = Utils.Decorate(
- options.dropdownAdapter,
- MinimumResultsForSearch
- );
- }
-
- if (options.closeOnSelect) {
- options.dropdownAdapter = Utils.Decorate(
- options.dropdownAdapter,
- CloseOnSelect
- );
- }
-
- if (
- options.dropdownCssClass != null ||
- options.dropdownCss != null ||
- options.adaptDropdownCssClass != null
- ) {
- var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');
-
- options.dropdownAdapter = Utils.Decorate(
- options.dropdownAdapter,
- DropdownCSS
- );
- }
-
- options.dropdownAdapter = Utils.Decorate(
- options.dropdownAdapter,
- AttachBody
- );
- }
-
- if (options.selectionAdapter == null) {
- if (options.multiple) {
- options.selectionAdapter = MultipleSelection;
- } else {
- options.selectionAdapter = SingleSelection;
- }
-
- // Add the placeholder mixin if a placeholder was specified
- if (options.placeholder != null) {
- options.selectionAdapter = Utils.Decorate(
- options.selectionAdapter,
- Placeholder
- );
- }
-
- if (options.allowClear) {
- options.selectionAdapter = Utils.Decorate(
- options.selectionAdapter,
- AllowClear
- );
- }
-
- if (options.multiple) {
- options.selectionAdapter = Utils.Decorate(
- options.selectionAdapter,
- SelectionSearch
- );
- }
-
- if (
- options.containerCssClass != null ||
- options.containerCss != null ||
- options.adaptContainerCssClass != null
- ) {
- var ContainerCSS = require(options.amdBase + 'compat/containerCss');
-
- options.selectionAdapter = Utils.Decorate(
- options.selectionAdapter,
- ContainerCSS
- );
- }
-
- options.selectionAdapter = Utils.Decorate(
- options.selectionAdapter,
- EventRelay
- );
- }
-
- // If the defaults were not previously applied from an element, it is
- // possible for the language option to have not been resolved
- options.language = this._resolveLanguage(options.language);
-
- // Always fall back to English since it will always be complete
- options.language.push('en');
-
- var uniqueLanguages = [];
-
- for (var l = 0; l < options.language.length; l++) {
- var language = options.language[l];
-
- if (uniqueLanguages.indexOf(language) === -1) {
- uniqueLanguages.push(language);
- }
- }
-
- options.language = uniqueLanguages;
-
- options.translations = this._processTranslations(
- options.language,
- options.debug
- );
-
- return options;
- };
-
- Defaults.prototype.reset = function () {
- function stripDiacritics (text) {
- // Used 'uni range + named function' from http://jsperf.com/diacritics/18
- function match(a) {
- return DIACRITICS[a] || a;
- }
-
- return text.replace(/[^\u0000-\u007E]/g, match);
- }
-
- function matcher (params, data) {
- // Always return the object if there is nothing to compare
- if ($.trim(params.term) === '') {
- return data;
- }
-
- // Do a recursive check for options with children
- if (data.children && data.children.length > 0) {
- // Clone the data object if there are children
- // This is required as we modify the object to remove any non-matches
- var match = $.extend(true, {}, data);
-
- // Check each child of the option
- for (var c = data.children.length - 1; c >= 0; c--) {
- var child = data.children[c];
-
- var matches = matcher(params, child);
-
- // If there wasn't a match, remove the object in the array
- if (matches == null) {
- match.children.splice(c, 1);
- }
- }
-
- // If any children matched, return the new object
- if (match.children.length > 0) {
- return match;
- }
-
- // If there were no matching children, check just the plain object
- return matcher(params, match);
- }
-
- var original = stripDiacritics(data.text).toUpperCase();
- var term = stripDiacritics(params.term).toUpperCase();
-
- // Check if the text contains the term
- if (original.indexOf(term) > -1) {
- return data;
- }
-
- // If it doesn't contain the term, don't return anything
- return null;
- }
-
- this.defaults = {
- amdBase: './',
- amdLanguageBase: './i18n/',
- closeOnSelect: true,
- debug: false,
- dropdownAutoWidth: false,
- escapeMarkup: Utils.escapeMarkup,
- language: {},
- matcher: matcher,
- minimumInputLength: 0,
- maximumInputLength: 0,
- maximumSelectionLength: 0,
- minimumResultsForSearch: 0,
- selectOnClose: false,
- scrollAfterSelect: false,
- sorter: function (data) {
- return data;
- },
- templateResult: function (result) {
- return result.text;
- },
- templateSelection: function (selection) {
- return selection.text;
- },
- theme: 'default',
- width: 'resolve'
- };
- };
-
- Defaults.prototype.applyFromElement = function (options, $element) {
- var optionLanguage = options.language;
- var defaultLanguage = this.defaults.language;
- var elementLanguage = $element.prop('lang');
- var parentLanguage = $element.closest('[lang]').prop('lang');
-
- var languages = Array.prototype.concat.call(
- this._resolveLanguage(elementLanguage),
- this._resolveLanguage(optionLanguage),
- this._resolveLanguage(defaultLanguage),
- this._resolveLanguage(parentLanguage)
- );
-
- options.language = languages;
-
- return options;
- };
-
- Defaults.prototype._resolveLanguage = function (language) {
- if (!language) {
- return [];
- }
-
- if ($.isEmptyObject(language)) {
- return [];
- }
-
- if ($.isPlainObject(language)) {
- return [language];
- }
-
- var languages;
-
- if (!$.isArray(language)) {
- languages = [language];
- } else {
- languages = language;
- }
-
- var resolvedLanguages = [];
-
- for (var l = 0; l < languages.length; l++) {
- resolvedLanguages.push(languages[l]);
-
- if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {
- // Extract the region information if it is included
- var languageParts = languages[l].split('-');
- var baseLanguage = languageParts[0];
-
- resolvedLanguages.push(baseLanguage);
- }
- }
-
- return resolvedLanguages;
- };
-
- Defaults.prototype._processTranslations = function (languages, debug) {
- var translations = new Translation();
-
- for (var l = 0; l < languages.length; l++) {
- var languageData = new Translation();
-
- var language = languages[l];
-
- if (typeof language === 'string') {
- try {
- // Try to load it with the original name
- languageData = Translation.loadPath(language);
- } catch (e) {
- try {
- // If we couldn't load it, check if it wasn't the full path
- language = this.defaults.amdLanguageBase + language;
- languageData = Translation.loadPath(language);
- } catch (ex) {
- // The translation could not be loaded at all. Sometimes this is
- // because of a configuration problem, other times this can be
- // because of how Select2 helps load all possible translation files
- if (debug && window.console && console.warn) {
- console.warn(
- 'Select2: The language file for "' + language + '" could ' +
- 'not be automatically loaded. A fallback will be used instead.'
- );
- }
- }
- }
- } else if ($.isPlainObject(language)) {
- languageData = new Translation(language);
- } else {
- languageData = language;
- }
-
- translations.extend(languageData);
- }
-
- return translations;
- };
-
- Defaults.prototype.set = function (key, value) {
- var camelKey = $.camelCase(key);
-
- var data = {};
- data[camelKey] = value;
-
- var convertedData = Utils._convertData(data);
-
- $.extend(true, this.defaults, convertedData);
- };
-
- var defaults = new Defaults();
-
- return defaults;
-});
-
-S2.define('select2/options',[
- 'require',
- 'jquery',
- './defaults',
- './utils'
-], function (require, $, Defaults, Utils) {
- function Options (options, $element) {
- this.options = options;
-
- if ($element != null) {
- this.fromElement($element);
- }
-
- if ($element != null) {
- this.options = Defaults.applyFromElement(this.options, $element);
- }
-
- this.options = Defaults.apply(this.options);
-
- if ($element && $element.is('input')) {
- var InputCompat = require(this.get('amdBase') + 'compat/inputData');
-
- this.options.dataAdapter = Utils.Decorate(
- this.options.dataAdapter,
- InputCompat
- );
- }
- }
-
- Options.prototype.fromElement = function ($e) {
- var excludedData = ['select2'];
-
- if (this.options.multiple == null) {
- this.options.multiple = $e.prop('multiple');
- }
-
- if (this.options.disabled == null) {
- this.options.disabled = $e.prop('disabled');
- }
-
- if (this.options.dir == null) {
- if ($e.prop('dir')) {
- this.options.dir = $e.prop('dir');
- } else if ($e.closest('[dir]').prop('dir')) {
- this.options.dir = $e.closest('[dir]').prop('dir');
- } else {
- this.options.dir = 'ltr';
- }
- }
-
- $e.prop('disabled', this.options.disabled);
- $e.prop('multiple', this.options.multiple);
-
- if (Utils.GetData($e[0], 'select2Tags')) {
- if (this.options.debug && window.console && console.warn) {
- console.warn(
- 'Select2: The `data-select2-tags` attribute has been changed to ' +
- 'use the `data-data` and `data-tags="true"` attributes and will be ' +
- 'removed in future versions of Select2.'
- );
- }
-
- Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));
- Utils.StoreData($e[0], 'tags', true);
- }
-
- if (Utils.GetData($e[0], 'ajaxUrl')) {
- if (this.options.debug && window.console && console.warn) {
- console.warn(
- 'Select2: The `data-ajax-url` attribute has been changed to ' +
- '`data-ajax--url` and support for the old attribute will be removed' +
- ' in future versions of Select2.'
- );
- }
-
- $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));
- Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));
- }
-
- var dataset = {};
-
- function upperCaseLetter(_, letter) {
- return letter.toUpperCase();
- }
-
- // Pre-load all of the attributes which are prefixed with `data-`
- for (var attr = 0; attr < $e[0].attributes.length; attr++) {
- var attributeName = $e[0].attributes[attr].name;
- var prefix = 'data-';
-
- if (attributeName.substr(0, prefix.length) == prefix) {
- // Get the contents of the attribute after `data-`
- var dataName = attributeName.substring(prefix.length);
-
- // Get the data contents from the consistent source
- // This is more than likely the jQuery data helper
- var dataValue = Utils.GetData($e[0], dataName);
-
- // camelCase the attribute name to match the spec
- var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter);
-
- // Store the data attribute contents into the dataset since
- dataset[camelDataName] = dataValue;
- }
- }
-
- // Prefer the element's `dataset` attribute if it exists
- // jQuery 1.x does not correctly handle data attributes with multiple dashes
- if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {
- dataset = $.extend(true, {}, $e[0].dataset, dataset);
- }
-
- // Prefer our internal data cache if it exists
- var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);
-
- data = Utils._convertData(data);
-
- for (var key in data) {
- if ($.inArray(key, excludedData) > -1) {
- continue;
- }
-
- if ($.isPlainObject(this.options[key])) {
- $.extend(this.options[key], data[key]);
- } else {
- this.options[key] = data[key];
- }
- }
-
- return this;
- };
-
- Options.prototype.get = function (key) {
- return this.options[key];
- };
-
- Options.prototype.set = function (key, val) {
- this.options[key] = val;
- };
-
- return Options;
-});
-
-S2.define('select2/core',[
- 'jquery',
- './options',
- './utils',
- './keys'
-], function ($, Options, Utils, KEYS) {
- var Select2 = function ($element, options) {
- if (Utils.GetData($element[0], 'select2') != null) {
- Utils.GetData($element[0], 'select2').destroy();
- }
-
- this.$element = $element;
-
- this.id = this._generateId($element);
-
- options = options || {};
-
- this.options = new Options(options, $element);
-
- Select2.__super__.constructor.call(this);
-
- // Set up the tabindex
-
- var tabindex = $element.attr('tabindex') || 0;
- Utils.StoreData($element[0], 'old-tabindex', tabindex);
- $element.attr('tabindex', '-1');
-
- // Set up containers and adapters
-
- var DataAdapter = this.options.get('dataAdapter');
- this.dataAdapter = new DataAdapter($element, this.options);
-
- var $container = this.render();
-
- this._placeContainer($container);
-
- var SelectionAdapter = this.options.get('selectionAdapter');
- this.selection = new SelectionAdapter($element, this.options);
- this.$selection = this.selection.render();
-
- this.selection.position(this.$selection, $container);
-
- var DropdownAdapter = this.options.get('dropdownAdapter');
- this.dropdown = new DropdownAdapter($element, this.options);
- this.$dropdown = this.dropdown.render();
-
- this.dropdown.position(this.$dropdown, $container);
-
- var ResultsAdapter = this.options.get('resultsAdapter');
- this.results = new ResultsAdapter($element, this.options, this.dataAdapter);
- this.$results = this.results.render();
-
- this.results.position(this.$results, this.$dropdown);
-
- // Bind events
-
- var self = this;
-
- // Bind the container to all of the adapters
- this._bindAdapters();
-
- // Register any DOM event handlers
- this._registerDomEvents();
-
- // Register any internal event handlers
- this._registerDataEvents();
- this._registerSelectionEvents();
- this._registerDropdownEvents();
- this._registerResultsEvents();
- this._registerEvents();
-
- // Set the initial state
- this.dataAdapter.current(function (initialData) {
- self.trigger('selection:update', {
- data: initialData
- });
- });
-
- // Hide the original select
- $element.addClass('select2-hidden-accessible');
- $element.attr('aria-hidden', 'true');
-
- // Synchronize any monitored attributes
- this._syncAttributes();
-
- Utils.StoreData($element[0], 'select2', this);
-
- // Ensure backwards compatibility with $element.data('select2').
- $element.data('select2', this);
- };
-
- Utils.Extend(Select2, Utils.Observable);
-
- Select2.prototype._generateId = function ($element) {
- var id = '';
-
- if ($element.attr('id') != null) {
- id = $element.attr('id');
- } else if ($element.attr('name') != null) {
- id = $element.attr('name') + '-' + Utils.generateChars(2);
- } else {
- id = Utils.generateChars(4);
- }
-
- id = id.replace(/(:|\.|\[|\]|,)/g, '');
- id = 'select2-' + id;
-
- return id;
- };
-
- Select2.prototype._placeContainer = function ($container) {
- $container.insertAfter(this.$element);
-
- var width = this._resolveWidth(this.$element, this.options.get('width'));
-
- if (width != null) {
- $container.css('width', width);
- }
- };
-
- Select2.prototype._resolveWidth = function ($element, method) {
- var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;
-
- if (method == 'resolve') {
- var styleWidth = this._resolveWidth($element, 'style');
-
- if (styleWidth != null) {
- return styleWidth;
- }
-
- return this._resolveWidth($element, 'element');
- }
-
- if (method == 'element') {
- var elementWidth = $element.outerWidth(false);
-
- if (elementWidth <= 0) {
- return 'auto';
- }
-
- return elementWidth + 'px';
- }
-
- if (method == 'style') {
- var style = $element.attr('style');
-
- if (typeof(style) !== 'string') {
- return null;
- }
-
- var attrs = style.split(';');
-
- for (var i = 0, l = attrs.length; i < l; i = i + 1) {
- var attr = attrs[i].replace(/\s/g, '');
- var matches = attr.match(WIDTH);
-
- if (matches !== null && matches.length >= 1) {
- return matches[1];
- }
- }
-
- return null;
- }
-
- if (method == 'computedstyle') {
- var computedStyle = window.getComputedStyle($element[0]);
-
- return computedStyle.width;
- }
-
- return method;
- };
-
- Select2.prototype._bindAdapters = function () {
- this.dataAdapter.bind(this, this.$container);
- this.selection.bind(this, this.$container);
-
- this.dropdown.bind(this, this.$container);
- this.results.bind(this, this.$container);
- };
-
- Select2.prototype._registerDomEvents = function () {
- var self = this;
-
- this.$element.on('change.select2', function () {
- self.dataAdapter.current(function (data) {
- self.trigger('selection:update', {
- data: data
- });
- });
- });
-
- this.$element.on('focus.select2', function (evt) {
- self.trigger('focus', evt);
- });
-
- this._syncA = Utils.bind(this._syncAttributes, this);
- this._syncS = Utils.bind(this._syncSubtree, this);
-
- if (this.$element[0].attachEvent) {
- this.$element[0].attachEvent('onpropertychange', this._syncA);
- }
-
- var observer = window.MutationObserver ||
- window.WebKitMutationObserver ||
- window.MozMutationObserver
- ;
-
- if (observer != null) {
- this._observer = new observer(function (mutations) {
- self._syncA();
- self._syncS(null, mutations);
- });
- this._observer.observe(this.$element[0], {
- attributes: true,
- childList: true,
- subtree: false
- });
- } else if (this.$element[0].addEventListener) {
- this.$element[0].addEventListener(
- 'DOMAttrModified',
- self._syncA,
- false
- );
- this.$element[0].addEventListener(
- 'DOMNodeInserted',
- self._syncS,
- false
- );
- this.$element[0].addEventListener(
- 'DOMNodeRemoved',
- self._syncS,
- false
- );
- }
- };
-
- Select2.prototype._registerDataEvents = function () {
- var self = this;
-
- this.dataAdapter.on('*', function (name, params) {
- self.trigger(name, params);
- });
- };
-
- Select2.prototype._registerSelectionEvents = function () {
- var self = this;
- var nonRelayEvents = ['toggle', 'focus'];
-
- this.selection.on('toggle', function () {
- self.toggleDropdown();
- });
-
- this.selection.on('focus', function (params) {
- self.focus(params);
- });
-
- this.selection.on('*', function (name, params) {
- if ($.inArray(name, nonRelayEvents) !== -1) {
- return;
- }
-
- self.trigger(name, params);
- });
- };
-
- Select2.prototype._registerDropdownEvents = function () {
- var self = this;
-
- this.dropdown.on('*', function (name, params) {
- self.trigger(name, params);
- });
- };
-
- Select2.prototype._registerResultsEvents = function () {
- var self = this;
-
- this.results.on('*', function (name, params) {
- self.trigger(name, params);
- });
- };
-
- Select2.prototype._registerEvents = function () {
- var self = this;
-
- this.on('open', function () {
- self.$container.addClass('select2-container--open');
- });
-
- this.on('close', function () {
- self.$container.removeClass('select2-container--open');
- });
-
- this.on('enable', function () {
- self.$container.removeClass('select2-container--disabled');
- });
-
- this.on('disable', function () {
- self.$container.addClass('select2-container--disabled');
- });
-
- this.on('blur', function () {
- self.$container.removeClass('select2-container--focus');
- });
-
- this.on('query', function (params) {
- if (!self.isOpen()) {
- self.trigger('open', {});
- }
-
- this.dataAdapter.query(params, function (data) {
- self.trigger('results:all', {
- data: data,
- query: params
- });
- });
- });
-
- this.on('query:append', function (params) {
- this.dataAdapter.query(params, function (data) {
- self.trigger('results:append', {
- data: data,
- query: params
- });
- });
- });
-
- this.on('keypress', function (evt) {
- var key = evt.which;
-
- if (self.isOpen()) {
- if (key === KEYS.ESC || key === KEYS.TAB ||
- (key === KEYS.UP && evt.altKey)) {
- self.close(evt);
-
- evt.preventDefault();
- } else if (key === KEYS.ENTER) {
- self.trigger('results:select', {});
-
- evt.preventDefault();
- } else if ((key === KEYS.SPACE && evt.ctrlKey)) {
- self.trigger('results:toggle', {});
-
- evt.preventDefault();
- } else if (key === KEYS.UP) {
- self.trigger('results:previous', {});
-
- evt.preventDefault();
- } else if (key === KEYS.DOWN) {
- self.trigger('results:next', {});
-
- evt.preventDefault();
- }
- } else {
- if (key === KEYS.ENTER || key === KEYS.SPACE ||
- (key === KEYS.DOWN && evt.altKey)) {
- self.open();
-
- evt.preventDefault();
- }
- }
- });
- };
-
- Select2.prototype._syncAttributes = function () {
- this.options.set('disabled', this.$element.prop('disabled'));
-
- if (this.isDisabled()) {
- if (this.isOpen()) {
- this.close();
- }
-
- this.trigger('disable', {});
- } else {
- this.trigger('enable', {});
- }
- };
-
- Select2.prototype._isChangeMutation = function (evt, mutations) {
- var changed = false;
- var self = this;
-
- // Ignore any mutation events raised for elements that aren't options or
- // optgroups. This handles the case when the select element is destroyed
- if (
- evt && evt.target && (
- evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'
- )
- ) {
- return;
- }
-
- if (!mutations) {
- // If mutation events aren't supported, then we can only assume that the
- // change affected the selections
- changed = true;
- } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {
- for (var n = 0; n < mutations.addedNodes.length; n++) {
- var node = mutations.addedNodes[n];
-
- if (node.selected) {
- changed = true;
- }
- }
- } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {
- changed = true;
- } else if ($.isArray(mutations)) {
- $.each(mutations, function(evt, mutation) {
- if (self._isChangeMutation(evt, mutation)) {
- // We've found a change mutation.
- // Let's escape from the loop and continue
- changed = true;
- return false;
- }
- });
- }
- return changed;
- };
-
- Select2.prototype._syncSubtree = function (evt, mutations) {
- var changed = this._isChangeMutation(evt, mutations);
- var self = this;
-
- // Only re-pull the data if we think there is a change
- if (changed) {
- this.dataAdapter.current(function (currentData) {
- self.trigger('selection:update', {
- data: currentData
- });
- });
- }
- };
-
- /**
- * Override the trigger method to automatically trigger pre-events when
- * there are events that can be prevented.
- */
- Select2.prototype.trigger = function (name, args) {
- var actualTrigger = Select2.__super__.trigger;
- var preTriggerMap = {
- 'open': 'opening',
- 'close': 'closing',
- 'select': 'selecting',
- 'unselect': 'unselecting',
- 'clear': 'clearing'
- };
-
- if (args === undefined) {
- args = {};
- }
-
- if (name in preTriggerMap) {
- var preTriggerName = preTriggerMap[name];
- var preTriggerArgs = {
- prevented: false,
- name: name,
- args: args
- };
-
- actualTrigger.call(this, preTriggerName, preTriggerArgs);
-
- if (preTriggerArgs.prevented) {
- args.prevented = true;
-
- return;
- }
- }
-
- actualTrigger.call(this, name, args);
- };
-
- Select2.prototype.toggleDropdown = function () {
- if (this.isDisabled()) {
- return;
- }
-
- if (this.isOpen()) {
- this.close();
- } else {
- this.open();
- }
- };
-
- Select2.prototype.open = function () {
- if (this.isOpen()) {
- return;
- }
-
- if (this.isDisabled()) {
- return;
- }
-
- this.trigger('query', {});
- };
-
- Select2.prototype.close = function (evt) {
- if (!this.isOpen()) {
- return;
- }
-
- this.trigger('close', { originalEvent : evt });
- };
-
- /**
- * Helper method to abstract the "enabled" (not "disabled") state of this
- * object.
- *
- * @return {true} if the instance is not disabled.
- * @return {false} if the instance is disabled.
- */
- Select2.prototype.isEnabled = function () {
- return !this.isDisabled();
- };
-
- /**
- * Helper method to abstract the "disabled" state of this object.
- *
- * @return {true} if the disabled option is true.
- * @return {false} if the disabled option is false.
- */
- Select2.prototype.isDisabled = function () {
- return this.options.get('disabled');
- };
-
- Select2.prototype.isOpen = function () {
- return this.$container.hasClass('select2-container--open');
- };
-
- Select2.prototype.hasFocus = function () {
- return this.$container.hasClass('select2-container--focus');
- };
-
- Select2.prototype.focus = function (data) {
- // No need to re-trigger focus events if we are already focused
- if (this.hasFocus()) {
- return;
- }
-
- this.$container.addClass('select2-container--focus');
- this.trigger('focus', {});
- };
-
- Select2.prototype.enable = function (args) {
- if (this.options.get('debug') && window.console && console.warn) {
- console.warn(
- 'Select2: The `select2("enable")` method has been deprecated and will' +
- ' be removed in later Select2 versions. Use $element.prop("disabled")' +
- ' instead.'
- );
- }
-
- if (args == null || args.length === 0) {
- args = [true];
- }
-
- var disabled = !args[0];
-
- this.$element.prop('disabled', disabled);
- };
-
- Select2.prototype.data = function () {
- if (this.options.get('debug') &&
- arguments.length > 0 && window.console && console.warn) {
- console.warn(
- 'Select2: Data can no longer be set using `select2("data")`. You ' +
- 'should consider setting the value instead using `$element.val()`.'
- );
- }
-
- var data = [];
-
- this.dataAdapter.current(function (currentData) {
- data = currentData;
- });
-
- return data;
- };
-
- Select2.prototype.val = function (args) {
- if (this.options.get('debug') && window.console && console.warn) {
- console.warn(
- 'Select2: The `select2("val")` method has been deprecated and will be' +
- ' removed in later Select2 versions. Use $element.val() instead.'
- );
- }
-
- if (args == null || args.length === 0) {
- return this.$element.val();
- }
-
- var newVal = args[0];
-
- if ($.isArray(newVal)) {
- newVal = $.map(newVal, function (obj) {
- return obj.toString();
- });
- }
-
- this.$element.val(newVal).trigger('input').trigger('change');
- };
-
- Select2.prototype.destroy = function () {
- this.$container.remove();
-
- if (this.$element[0].detachEvent) {
- this.$element[0].detachEvent('onpropertychange', this._syncA);
- }
-
- if (this._observer != null) {
- this._observer.disconnect();
- this._observer = null;
- } else if (this.$element[0].removeEventListener) {
- this.$element[0]
- .removeEventListener('DOMAttrModified', this._syncA, false);
- this.$element[0]
- .removeEventListener('DOMNodeInserted', this._syncS, false);
- this.$element[0]
- .removeEventListener('DOMNodeRemoved', this._syncS, false);
- }
-
- this._syncA = null;
- this._syncS = null;
-
- this.$element.off('.select2');
- this.$element.attr('tabindex',
- Utils.GetData(this.$element[0], 'old-tabindex'));
-
- this.$element.removeClass('select2-hidden-accessible');
- this.$element.attr('aria-hidden', 'false');
- Utils.RemoveData(this.$element[0]);
- this.$element.removeData('select2');
-
- this.dataAdapter.destroy();
- this.selection.destroy();
- this.dropdown.destroy();
- this.results.destroy();
-
- this.dataAdapter = null;
- this.selection = null;
- this.dropdown = null;
- this.results = null;
- };
-
- Select2.prototype.render = function () {
- var $container = $(
- '' +
- ' ' +
- ' ' +
- ' '
- );
-
- $container.attr('dir', this.options.get('dir'));
-
- this.$container = $container;
-
- this.$container.addClass('select2-container--' + this.options.get('theme'));
-
- Utils.StoreData($container[0], 'element', this.$element);
-
- return $container;
- };
-
- return Select2;
-});
-
-S2.define('jquery-mousewheel',[
- 'jquery'
-], function ($) {
- // Used to shim jQuery.mousewheel for non-full builds.
- return $;
-});
-
-S2.define('jquery.select2',[
- 'jquery',
- 'jquery-mousewheel',
-
- './select2/core',
- './select2/defaults',
- './select2/utils'
-], function ($, _, Select2, Defaults, Utils) {
- if ($.fn.select2 == null) {
- // All methods that should return the element
- var thisMethods = ['open', 'close', 'destroy'];
-
- $.fn.select2 = function (options) {
- options = options || {};
-
- if (typeof options === 'object') {
- this.each(function () {
- var instanceOptions = $.extend(true, {}, options);
-
- var instance = new Select2($(this), instanceOptions);
- });
-
- return this;
- } else if (typeof options === 'string') {
- var ret;
- var args = Array.prototype.slice.call(arguments, 1);
-
- this.each(function () {
- var instance = Utils.GetData(this, 'select2');
-
- if (instance == null && window.console && console.error) {
- console.error(
- 'The select2(\'' + options + '\') method was called on an ' +
- 'element that is not using Select2.'
- );
- }
-
- ret = instance[options].apply(instance, args);
- });
-
- // Check if we should be returning `this`
- if ($.inArray(options, thisMethods) > -1) {
- return this;
- }
-
- return ret;
- } else {
- throw new Error('Invalid arguments for Select2: ' + options);
- }
- };
- }
-
- if ($.fn.select2.defaults == null) {
- $.fn.select2.defaults = Defaults;
- }
-
- return Select2;
-});
-
- // Return the AMD loader configuration so it can be used outside of this file
- return {
- define: S2.define,
- require: S2.require
- };
-}());
-
- // Autoload the jQuery bindings
- // We know that all of the modules exist above this, so we're safe
- var select2 = S2.require('jquery.select2');
-
- // Hold the AMD module references on the jQuery function that was just loaded
- // This allows Select2 to use the internal loader outside of this file, such
- // as in the language files.
- jQuery.fn.select2.amd = S2;
-
- // Return the Select2 instance for anyone who is importing it.
- return select2;
-}));
diff --git a/ui/lib/select2/js/select2.min.js b/ui/lib/select2/js/select2.min.js
deleted file mode 100644
index e42142643..000000000
--- a/ui/lib/select2/js/select2.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-!function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(u){var e=function(){if(u&&u.fn&&u.fn.select2&&u.fn.select2.amd)var e=u.fn.select2.amd;var t,n,r,h,o,s,f,g,m,v,y,_,i,a,b;function w(e,t){return i.call(e,t)}function l(e,t){var n,r,i,o,s,a,l,c,u,d,p,h=t&&t.split("/"),f=y.map,g=f&&f["*"]||{};if(e){for(s=(e=e.split("/")).length-1,y.nodeIdCompat&&b.test(e[s])&&(e[s]=e[s].replace(b,"")),"."===e[0].charAt(0)&&h&&(e=h.slice(0,h.length-1).concat(e)),u=0;u":">",'"':""","'":"'","/":"/"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},i.appendMany=function(e,t){if("1.7"===o.fn.jquery.substr(0,3)){var n=o();o.map(t,function(e){n=n.add(e)}),t=n}e.append(t)},i.__cache={};var n=0;return i.GetUniqueElementId=function(e){var t=e.getAttribute("data-select2-id");return null==t&&(e.id?(t=e.id,e.setAttribute("data-select2-id",t)):(e.setAttribute("data-select2-id",++n),t=n.toString())),t},i.StoreData=function(e,t,n){var r=i.GetUniqueElementId(e);i.__cache[r]||(i.__cache[r]={}),i.__cache[r][t]=n},i.GetData=function(e,t){var n=i.GetUniqueElementId(e);return t?i.__cache[n]&&null!=i.__cache[n][t]?i.__cache[n][t]:o(e).data(t):i.__cache[n]},i.RemoveData=function(e){var t=i.GetUniqueElementId(e);null!=i.__cache[t]&&delete i.__cache[t],e.removeAttribute("data-select2-id")},i}),e.define("select2/results",["jquery","./utils"],function(h,f){function r(e,t,n){this.$element=e,this.data=n,this.options=t,r.__super__.constructor.call(this)}return f.Extend(r,f.Observable),r.prototype.render=function(){var e=h('');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},r.prototype.clear=function(){this.$results.empty()},r.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=h(' '),r=this.options.get("translations").get(e.message);n.append(t(r(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},r.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},r.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n",{class:"select2-results__options select2-results__options--nested"});p.append(l),s.append(a),s.append(p)}else this.template(e,t);return f.StoreData(t,"data",e),t},r.prototype.bind=function(t,e){var l=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){l.clear(),l.append(e.data),t.isOpen()&&(l.setClasses(),l.highlightFirstItem())}),t.on("results:append",function(e){l.append(e.data),t.isOpen()&&l.setClasses()}),t.on("query",function(e){l.hideMessages(),l.showLoading(e)}),t.on("select",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("open",function(){l.$results.attr("aria-expanded","true"),l.$results.attr("aria-hidden","false"),l.setClasses(),l.ensureHighlightVisible()}),t.on("close",function(){l.$results.attr("aria-expanded","false"),l.$results.attr("aria-hidden","true"),l.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=l.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=l.getHighlightedResults();if(0!==e.length){var t=f.GetData(e[0],"data");"true"==e.attr("aria-selected")?l.trigger("close",{}):l.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e);if(!(n<=0)){var r=n-1;0===e.length&&(r=0);var i=t.eq(r);i.trigger("mouseenter");var o=l.$results.offset().top,s=i.offset().top,a=l.$results.scrollTop()+(s-o);0===r?l.$results.scrollTop(0):s-o<0&&l.$results.scrollTop(a)}}),t.on("results:next",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e)+1;if(!(n>=t.length)){var r=t.eq(n);r.trigger("mouseenter");var i=l.$results.offset().top+l.$results.outerHeight(!1),o=r.offset().top+r.outerHeight(!1),s=l.$results.scrollTop()+o-i;0===n?l.$results.scrollTop(0):ithis.$results.outerHeight()||o<0)&&this.$results.scrollTop(i)}},r.prototype.template=function(e,t){var n=this.options.get("templateResult"),r=this.options.get("escapeMarkup"),i=n(e,t);null==i?t.style.display="none":"string"==typeof i?t.innerHTML=r(i):h(t).append(i)},r}),e.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),e.define("select2/selection/base",["jquery","../utils","../keys"],function(n,r,i){function o(e,t){this.$element=e,this.options=t,o.__super__.constructor.call(this)}return r.Extend(o,r.Observable),o.prototype.render=function(){var e=n(' ');return this._tabindex=0,null!=r.GetData(this.$element[0],"old-tabindex")?this._tabindex=r.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),e.attr("aria-disabled","false"),this.$selection=e},o.prototype.bind=function(e,t){var n=this,r=e.id+"-results";this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===i.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",r),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),n.$selection.trigger("focus"),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex),n.$selection.attr("aria-disabled","false")}),e.on("disable",function(){n.$selection.attr("tabindex","-1"),n.$selection.attr("aria-disabled","true")})},o.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},o.prototype._attachCloseHandler=function(e){n(document.body).on("mousedown.select2."+e.id,function(e){var t=n(e.target).closest(".select2");n(".select2.select2-container--open").each(function(){this!=t[0]&&r.GetData(this,"element").select2("close")})})},o.prototype._detachCloseHandler=function(e){n(document.body).off("mousedown.select2."+e.id)},o.prototype.position=function(e,t){t.find(".selection").append(e)},o.prototype.destroy=function(){this._detachCloseHandler(this.container)},o.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},o.prototype.isEnabled=function(){return!this.isDisabled()},o.prototype.isDisabled=function(){return this.options.get("disabled")},o}),e.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,r){function i(){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html(' '),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments);var r=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",r).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",r),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.trigger("focus")})},i.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e(" ")},i.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),r=this.display(t,n);n.empty().append(r);var i=t.title||t.text;i?n.attr("title",i):n.removeAttr("title")}else this.clear()},i}),e.define("select2/selection/multiple",["jquery","./base","../utils"],function(i,e,l){function n(e,t){n.__super__.constructor.apply(this,arguments)}return l.Extend(n,e),n.prototype.render=function(){var e=n.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html(''),e},n.prototype.bind=function(e,t){var r=this;n.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){r.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){if(!r.isDisabled()){var t=i(this).parent(),n=l.GetData(t[0],"data");r.trigger("unselect",{originalEvent:e,data:n})}})},n.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},n.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},n.prototype.selectionContainer=function(){return i('× ')},n.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n×');a.StoreData(r[0],"data",t),this.$selection.find(".select2-selection__rendered").prepend(r)}},e}),e.define("select2/selection/search",["jquery","../utils","../keys"],function(r,a,l){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=r(' ');this.$searchContainer=t,this.$search=t.find("input");var n=e.call(this);return this._transferTabIndex(),n},e.prototype.bind=function(e,t,n){var r=this,i=t.id+"-results";e.call(this,t,n),t.on("open",function(){r.$search.attr("aria-controls",i),r.$search.trigger("focus")}),t.on("close",function(){r.$search.val(""),r.$search.removeAttr("aria-controls"),r.$search.removeAttr("aria-activedescendant"),r.$search.trigger("focus")}),t.on("enable",function(){r.$search.prop("disabled",!1),r._transferTabIndex()}),t.on("disable",function(){r.$search.prop("disabled",!0)}),t.on("focus",function(e){r.$search.trigger("focus")}),t.on("results:focus",function(e){e.data._resultId?r.$search.attr("aria-activedescendant",e.data._resultId):r.$search.removeAttr("aria-activedescendant")}),this.$selection.on("focusin",".select2-search--inline",function(e){r.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){r._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented(),e.which===l.BACKSPACE&&""===r.$search.val()){var t=r.$searchContainer.prev(".select2-selection__choice");if(0this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("select",function(){r._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var r=this;this._checkIfMaximumSelected(function(){e.call(r,t,n)})},e.prototype._checkIfMaximumSelected=function(e,n){var r=this;this.current(function(e){var t=null!=e?e.length:0;0=r.maximumSelectionLength?r.trigger("results:message",{message:"maximumSelected",args:{maximum:r.maximumSelectionLength}}):n&&n()})},e}),e.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t(' ');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),e.define("select2/dropdown/search",["jquery","../utils"],function(o,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),n=o(' ');return this.$searchContainer=n,this.$search=n.find("input"),t.prepend(n),t},t.prototype.bind=function(e,t,n){var r=this,i=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){o(this).off("keyup")}),this.$search.on("keyup input",function(e){r.handleSearch(e)}),t.on("open",function(){r.$search.attr("tabindex",0),r.$search.attr("aria-controls",i),r.$search.trigger("focus"),window.setTimeout(function(){r.$search.trigger("focus")},0)}),t.on("close",function(){r.$search.attr("tabindex",-1),r.$search.removeAttr("aria-controls"),r.$search.removeAttr("aria-activedescendant"),r.$search.val(""),r.$search.trigger("blur")}),t.on("focus",function(){t.isOpen()||r.$search.trigger("focus")}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(r.showSearch(e)?r.$searchContainer.removeClass("select2-search--hide"):r.$searchContainer.addClass("select2-search--hide"))}),t.on("results:focus",function(e){e.data._resultId?r.$search.attr("aria-activedescendant",e.data._resultId):r.$search.removeAttr("aria-activedescendant")})},t.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),e.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,r){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,r)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),r=t.length-1;0<=r;r--){var i=t[r];this.placeholder.id===i.id&&n.splice(r,1)}return n},e}),e.define("select2/dropdown/infiniteScroll",["jquery"],function(n){function e(e,t,n,r){this.lastParams={},e.call(this,t,n,r),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("query",function(e){r.lastParams=e,r.loading=!0}),t.on("query:append",function(e){r.lastParams=e,r.loading=!0}),this.$results.on("scroll",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);if(!this.loading&&e){var t=this.$results.offset().top+this.$results.outerHeight(!1);this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=t+50&&this.loadMore()}},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n(' '),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),e.define("select2/dropdown/attachBody",["jquery","../utils"],function(f,a){function e(e,t,n){this.$dropdownParent=f(n.get("dropdownParent")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("open",function(){r._showDropdown(),r._attachPositioningHandler(t),r._bindContainerResultHandlers(t)}),t.on("close",function(){r._hideDropdown(),r._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=f(" "),n=e.call(this);return t.append(n),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){if(!this._containerResultsHandlersBound){var n=this;t.on("results:all",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:append",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:message",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("select",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("unselect",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0}},e.prototype._attachPositioningHandler=function(e,t){var n=this,r="scroll.select2."+t.id,i="resize.select2."+t.id,o="orientationchange.select2."+t.id,s=this.$container.parents().filter(a.hasScroll);s.each(function(){a.StoreData(this,"select2-scroll-position",{x:f(this).scrollLeft(),y:f(this).scrollTop()})}),s.on(r,function(e){var t=a.GetData(this,"select2-scroll-position");f(this).scrollTop(t.y)}),f(window).on(r+" "+i+" "+o,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,r="resize.select2."+t.id,i="orientationchange.select2."+t.id;this.$container.parents().filter(a.hasScroll).off(n),f(window).off(n+" "+r+" "+i)},e.prototype._positionDropdown=function(){var e=f(window),t=this.$dropdown.hasClass("select2-dropdown--above"),n=this.$dropdown.hasClass("select2-dropdown--below"),r=null,i=this.$container.offset();i.bottom=i.top+this.$container.outerHeight(!1);var o={height:this.$container.outerHeight(!1)};o.top=i.top,o.bottom=i.top+o.height;var s=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=ai.bottom+s,d={left:i.left,top:o.bottom},p=this.$dropdownParent;"static"===p.css("position")&&(p=p.offsetParent());var h={top:0,left:0};(f.contains(document.body,p[0])||p[0].isConnected)&&(h=p.offset()),d.top-=h.top,d.left-=h.left,t||n||(r="below"),u||!c||t?!c&&u&&t&&(r="below"):r="above",("above"==r||t&&"below"!==r)&&(d.top=o.top-h.top-s),null!=r&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+r),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+r)),this.$dropdownContainer.css(d)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),e.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,r){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,r)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,r=0;r ');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container.addClass("select2-container--"+this.options.get("theme")),u.StoreData(e[0],"element",this.$element),e},d}),e.define("jquery-mousewheel",["jquery"],function(e){return e}),e.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(i,e,o,t,s){if(null==i.fn.select2){var a=["open","close","destroy"];i.fn.select2=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var e=i.extend(!0,{},t);new o(i(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=s.GetData(this,"select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,r)}),-1= 0) {
- return this.settings.strings.inPast;
- }
-
- var seconds = Math.abs(distanceMillis) / 1000;
- var minutes = seconds / 60;
- var hours = minutes / 60;
- var days = hours / 24;
- var years = days / 365;
-
- function substitute(stringOrFunction, number) {
- var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction;
- var value = ($l.numbers && $l.numbers[number]) || number;
- return string.replace(/%d/i, value);
- }
-
- var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
- seconds < 90 && substitute($l.minute, 1) ||
- minutes < 45 && substitute($l.minutes, Math.round(minutes)) ||
- minutes < 90 && substitute($l.hour, 1) ||
- hours < 24 && substitute($l.hours, Math.round(hours)) ||
- hours < 42 && substitute($l.day, 1) ||
- days < 30 && substitute($l.days, Math.round(days)) ||
- days < 45 && substitute($l.month, 1) ||
- days < 365 && substitute($l.months, Math.round(days / 30)) ||
- years < 1.5 && substitute($l.year, 1) ||
- substitute($l.years, Math.round(years));
-
- var separator = $l.wordSeparator || "";
- if ($l.wordSeparator === undefined) { separator = " "; }
- return $.trim([prefix, words, suffix].join(separator));
- },
-
- parse: function(iso8601) {
- var s = $.trim(iso8601);
- s = s.replace(/\.\d+/,""); // remove milliseconds
- s = s.replace(/-/,"/").replace(/-/,"/");
- s = s.replace(/T/," ").replace(/Z/," UTC");
- s = s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
- s = s.replace(/([\+\-]\d\d)$/," $100"); // +09 -> +0900
- return new Date(s);
- },
- datetime: function(elem) {
- var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title");
- return $t.parse(iso8601);
- },
- isTime: function(elem) {
- // jQuery's `is()` doesn't play well with HTML5 in IE
- return $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time");
- }
- });
-
- // functions that can be called via $(el).timeago('action')
- // init is default when no action is given
- // functions are called with context of a single element
- var functions = {
- init: function(){
- var refresh_el = $.proxy(refresh, this);
- refresh_el();
- var $s = $t.settings;
- if ($s.refreshMillis > 0) {
- this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis);
- }
- },
- update: function(time){
- var parsedTime = $t.parse(time);
- $(this).data('timeago', { datetime: parsedTime });
- if($t.settings.localeTitle) $(this).attr("title", parsedTime.toLocaleString());
- refresh.apply(this);
- },
- updateFromDOM: function(){
- $(this).data('timeago', { datetime: $t.parse( $t.isTime(this) ? $(this).attr("datetime") : $(this).attr("title") ) });
- refresh.apply(this);
- },
- dispose: function () {
- if (this._timeagoInterval) {
- window.clearInterval(this._timeagoInterval);
- this._timeagoInterval = null;
- }
- }
- };
-
- $.fn.timeago = function(action, options) {
- var fn = action ? functions[action] : functions.init;
- if(!fn){
- throw new Error("Unknown function name '"+ action +"' for timeago");
- }
- // each over objects here and call the requested function
- this.each(function(){
- fn.call(this, options);
- });
- return this;
- };
-
- function refresh() {
- //check if it's still visible
- if(!$.contains(document.documentElement,this)){
- //stop if it has been removed
- $(this).timeago("dispose");
- return this;
- }
-
- var data = prepareData(this);
- var $s = $t.settings;
-
- if (!isNaN(data.datetime)) {
- if ( $s.cutoff == 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {
- $(this).text(inWords(data.datetime));
- }
- }
- return this;
- }
-
- function prepareData(element) {
- element = $(element);
- if (!element.data("timeago")) {
- element.data("timeago", { datetime: $t.datetime(element) });
- var text = $.trim(element.text());
- if ($t.settings.localeTitle) {
- element.attr("title", element.data('timeago').datetime.toLocaleString());
- } else if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) {
- element.attr("title", text);
- }
- }
- return element.data("timeago");
- }
-
- function inWords(date) {
- return $t.inWords(distance(date));
- }
-
- function distance(date) {
- return (new Date().getTime() - date.getTime());
- }
-
- // fix for IE6 suckage
- document.createElement("abbr");
- document.createElement("time");
-}));
diff --git a/ui/lib/timeago/locales/README.md b/ui/lib/timeago/locales/README.md
deleted file mode 100755
index 7557112da..000000000
--- a/ui/lib/timeago/locales/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Locale override examples for timeago
-
-You can represent time statements in most western languages where
-a prefix and/or suffix is used.
-
-The default case is to use suffix only (as in English), which you
-do by providing the `suffixAgo` and `suffixFromNow` settings in
-the strings hash (earlier versions of timeago used the deprecated
-`ago` and `fromNow` options). If present, they are used.
-
- 2 minutes [suffixAgo]
- 2 minutes [suffixFromNow]
-
-In case you want to use prefix only instead of
-suffix (e.g. Greek), you provide the `prefixAgo` and
-`prefixFromNow` options in the strings hash and leave `suffixAgo`
-and `suffixFromNow` empty or null.
-
- [prefixAgo] 2 minutes
- [prefixFromNow] 2 minutes
-
-For languages where you want to use a prefix only for future
-tense and prefix/suffix for past tense (for example swedish), you
-can combine the prefix and suffixes as needed.
-
- [prefixAgo] 2 minutes [suffixAgo]
- [prefixFromNow] 2 minutes
diff --git a/ui/lib/timeago/locales/jquery.timeago.ar.js b/ui/lib/timeago/locales/jquery.timeago.ar.js
deleted file mode 100755
index 9e73d7455..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.ar.js
+++ /dev/null
@@ -1,96 +0,0 @@
-(function() {
- function numpf(n, a) {
- return a[plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5];
- }
-
-jQuery.timeago.settings.strings = {
- prefixAgo: "منذ",
- prefixFromNow: "بعد",
- suffixAgo: null,
- suffixFromNow: null, // null OR "من الآن"
- second: function(value) { return numpf(value, [
- 'أقل من ثانية',
- 'ثانية واحدة',
- 'ثانيتين',
- '%d ثوانٍ',
- '%d ثانية',
- '%d ثانية']); },
- seconds: function(value) { return numpf(value, [
- 'أقل من ثانية',
- 'ثانية واحدة',
- 'ثانيتين',
- '%d ثوانٍ',
- '%d ثانية',
- '%d ثانية']); },
- minute: function(value) { return numpf(value, [
- 'أقل من دقيقة',
- 'دقيقة واحدة',
- 'دقيقتين',
- '%d دقائق',
- '%d دقيقة',
- 'دقيقة']); },
- minutes: function(value) { return numpf(value, [
- 'أقل من دقيقة',
- 'دقيقة واحدة',
- 'دقيقتين',
- '%d دقائق',
- '%d دقيقة',
- 'دقيقة']); },
- hour: function(value) { return numpf(value, [
- 'أقل من ساعة',
- 'ساعة واحدة',
- 'ساعتين',
- '%d ساعات',
- '%d ساعة',
- '%d ساعة']); },
- hours: function(value) { return numpf(value, [
- 'أقل من ساعة',
- 'ساعة واحدة',
- 'ساعتين',
- '%d ساعات',
- '%d ساعة',
- '%d ساعة']); },
- day: function(value) { return numpf(value, [
- 'أقل من يوم',
- 'يوم واحد',
- 'يومين',
- '%d أيام',
- '%d يومًا',
- '%d يوم']); },
- days: function(value) { return numpf(value, [
- 'أقل من يوم',
- 'يوم واحد',
- 'يومين',
- '%d أيام',
- '%d يومًا',
- '%d يوم']); },
- month: function(value) { return numpf(value, [
- 'أقل من شهر',
- 'شهر واحد',
- 'شهرين',
- '%d أشهر',
- '%d شهرًا',
- '%d شهر']); },
- months: function(value) { return numpf(value, [
- 'أقل من شهر',
- 'شهر واحد',
- 'شهرين',
- '%d أشهر',
- '%d شهرًا',
- '%d شهر']); },
- year: function(value) { return numpf(value, [
- 'أقل من عام',
- 'عام واحد',
- '%d عامين',
- '%d أعوام',
- '%d عامًا']);
- },
- years: function(value) { return numpf(value, [
- 'أقل من عام',
- 'عام واحد',
- 'عامين',
- '%d أعوام',
- '%d عامًا',
- '%d عام']);}
- };
-})();
diff --git a/ui/lib/timeago/locales/jquery.timeago.bg.js b/ui/lib/timeago/locales/jquery.timeago.bg.js
deleted file mode 100755
index df6b865ec..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.bg.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Bulgarian
-jQuery.timeago.settings.strings = {
- prefixAgo: "преди",
- prefixFromNow: "след",
- suffixAgo: null,
- suffixFromNow: null,
- seconds: "по-малко от минута",
- minute: "една минута",
- minutes: "%d минути",
- hour: "един час",
- hours: "%d часа",
- day: "един ден",
- days: "%d дни",
- month: "един месец",
- months: "%d месеца",
- year: "една година",
- years: "%d години"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.bs.js b/ui/lib/timeago/locales/jquery.timeago.bs.js
deleted file mode 100755
index 01530feaa..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.bs.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// Bosnian
-(function() {
- var numpf;
-
- numpf = function(n, f, s, t) {
- var n10;
- n10 = n % 10;
- if (n10 === 1 && (n === 1 || n > 20)) {
- return f;
- } else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) {
- return s;
- } else {
- return t;
- }
- };
-
- jQuery.timeago.settings.strings = {
- prefixAgo: "prije",
- prefixFromNow: "za",
- suffixAgo: null,
- suffixFromNow: null,
- second: "sekund",
- seconds: function(value) {
- return numpf(value, "%d sekund", "%d sekunde", "%d sekundi");
- },
- minute: "oko minut",
- minutes: function(value) {
- return numpf(value, "%d minut", "%d minute", "%d minuta");
- },
- hour: "oko sat",
- hours: function(value) {
- return numpf(value, "%d sat", "%d sata", "%d sati");
- },
- day: "oko jednog dana",
- days: function(value) {
- return numpf(value, "%d dan", "%d dana", "%d dana");
- },
- month: "mjesec dana",
- months: function(value) {
- return numpf(value, "%d mjesec", "%d mjeseca", "%d mjeseci");
- },
- year: "prije godinu dana ",
- years: function(value) {
- return numpf(value, "%d godinu", "%d godine", "%d godina");
- },
- wordSeparator: " "
- };
-
-}).call(this);
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.ca.js b/ui/lib/timeago/locales/jquery.timeago.ca.js
deleted file mode 100755
index 59014ea50..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.ca.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Catalan
-jQuery.timeago.settings.strings = {
- prefixAgo: "fa",
- prefixFromNow: "d'aqui a",
- suffixAgo: null,
- suffixFromNow: null,
- seconds: "menys d'1 minut",
- minute: "1 minut",
- minutes: "uns %d minuts",
- hour: "1 hora",
- hours: "unes %d hores",
- day: "1 dia",
- days: "%d dies",
- month: "aproximadament un mes",
- months: "%d mesos",
- year: "aproximadament un any",
- years: "%d anys"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.cs.js b/ui/lib/timeago/locales/jquery.timeago.cs.js
deleted file mode 100755
index 1d9fb804e..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.cs.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Czech
-(function() {
- function f(n, d, a) {
- return a[d>=0 ? 0 : a.length==2 || n<5 ? 1 : 2];
- }
-
- jQuery.timeago.settings.strings = {
- prefixAgo: 'před',
- prefixFromNow: 'za',
- suffixAgo: null,
- suffixFromNow: null,
- seconds: function(n, d) {return f(n, d, ['méně než minutou', 'méně než minutu'])},
- minute: function(n, d) {return f(n, d, ['minutou', 'minutu'])},
- minutes: function(n, d) {return f(n, d, ['%d minutami', '%d minuty', '%d minut'])},
- hour: function(n, d) {return f(n, d, ['hodinou', 'hodinu'])},
- hours: function(n, d) {return f(n, d, ['%d hodinami', '%d hodiny', '%d hodin'])},
- day: function(n, d) {return f(n, d, ['%d dnem', '%d den'])},
- days: function(n, d) {return f(n, d, ['%d dny', '%d dny', '%d dní'])},
- month: function(n, d) {return f(n, d, ['%d měsícem', '%d měsíc'])},
- months: function(n, d) {return f(n, d, ['%d měsící', '%d měsíce', '%d měsíců'])},
- year: function(n, d) {return f(n, d, ['%d rokem', '%d rok'])},
- years: function(n, d) {return f(n, d, ['%d lety', '%d roky', '%d let'])}
- };
-})();
diff --git a/ui/lib/timeago/locales/jquery.timeago.cy.js b/ui/lib/timeago/locales/jquery.timeago.cy.js
deleted file mode 100755
index a285ff4e8..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.cy.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Welsh
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: null,
- suffixAgo: "yn ôl",
- suffixFromNow: "o hyn",
- seconds: "llai na munud",
- minute: "am funud",
- minutes: "%d munud",
- hour: "tua awr",
- hours: "am %d awr",
- day: "y dydd",
- days: "%d diwrnod",
- month: "tua mis",
- months: "%d mis",
- year: "am y flwyddyn",
- years: "%d blynedd",
- wordSeparator: " ",
- numbers: []
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.da.js b/ui/lib/timeago/locales/jquery.timeago.da.js
deleted file mode 100755
index ff50e873f..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.da.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Danish
-jQuery.timeago.settings.strings = {
- prefixAgo: "for",
- prefixFromNow: "om",
- suffixAgo: "siden",
- suffixFromNow: "",
- seconds: "mindre end et minut",
- minute: "ca. et minut",
- minutes: "%d minutter",
- hour: "ca. en time",
- hours: "ca. %d timer",
- day: "en dag",
- days: "%d dage",
- month: "ca. en måned",
- months: "%d måneder",
- year: "ca. et år",
- years: "%d år"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.de.js b/ui/lib/timeago/locales/jquery.timeago.de.js
deleted file mode 100755
index f10b06eeb..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.de.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// German
-jQuery.timeago.settings.strings = {
- prefixAgo: "vor",
- prefixFromNow: "in",
- suffixAgo: "",
- suffixFromNow: "",
- seconds: "wenigen Sekunden",
- minute: "etwa einer Minute",
- minutes: "%d Minuten",
- hour: "etwa einer Stunde",
- hours: "%d Stunden",
- day: "etwa einem Tag",
- days: "%d Tagen",
- month: "etwa einem Monat",
- months: "%d Monaten",
- year: "etwa einem Jahr",
- years: "%d Jahren"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.el.js b/ui/lib/timeago/locales/jquery.timeago.el.js
deleted file mode 100755
index 61aaafe49..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.el.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Greek
-jQuery.timeago.settings.strings = {
- prefixAgo: "πριν",
- prefixFromNow: "σε",
- suffixAgo: "",
- suffixFromNow: "",
- seconds: "λιγότερο από ένα λεπτό",
- minute: "περίπου ένα λεπτό",
- minutes: "%d λεπτά",
- hour: "περίπου μία ώρα",
- hours: "περίπου %d ώρες",
- day: "μία μέρα",
- days: "%d μέρες",
- month: "περίπου ένα μήνα",
- months: "%d μήνες",
- year: "περίπου ένα χρόνο",
- years: "%d χρόνια"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.en-short.js b/ui/lib/timeago/locales/jquery.timeago.en-short.js
deleted file mode 100755
index 4cab7ff6f..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.en-short.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// English shortened
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: null,
- suffixAgo: "",
- suffixFromNow: "",
- seconds: "1m",
- minute: "1m",
- minutes: "%dm",
- hour: "1h",
- hours: "%dh",
- day: "1d",
- days: "%dd",
- month: "1mo",
- months: "%dmo",
- year: "1yr",
- years: "%dyr",
- wordSeparator: " ",
- numbers: []
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.en.js b/ui/lib/timeago/locales/jquery.timeago.en.js
deleted file mode 100755
index 3d6652c23..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.en.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// English (Template)
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: null,
- suffixAgo: "ago",
- suffixFromNow: "from now",
- seconds: "less than a minute",
- minute: "about a minute",
- minutes: "%d minutes",
- hour: "about an hour",
- hours: "about %d hours",
- day: "a day",
- days: "%d days",
- month: "about a month",
- months: "%d months",
- year: "about a year",
- years: "%d years",
- wordSeparator: " ",
- numbers: []
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.es-short.js b/ui/lib/timeago/locales/jquery.timeago.es-short.js
deleted file mode 100755
index 65d85c715..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.es-short.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Spanish shortened
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: null,
- suffixAgo: "",
- suffixFromNow: "",
- seconds: "1m",
- minute: "1m",
- minutes: "%dm",
- hour: "1h",
- hours: "%dh",
- day: "1d",
- days: "%dd",
- month: "1me",
- months: "%dme",
- year: "1a",
- years: "%da",
- wordSeparator: " ",
- numbers: []
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.es.js b/ui/lib/timeago/locales/jquery.timeago.es.js
deleted file mode 100755
index 00c6d0a6c..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.es.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Spanish
-jQuery.timeago.settings.strings = {
- prefixAgo: "hace",
- prefixFromNow: "dentro de",
- suffixAgo: "",
- suffixFromNow: "",
- seconds: "menos de un minuto",
- minute: "un minuto",
- minutes: "unos %d minutos",
- hour: "una hora",
- hours: "%d horas",
- day: "un día",
- days: "%d días",
- month: "un mes",
- months: "%d meses",
- year: "un año",
- years: "%d años"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.et.js b/ui/lib/timeago/locales/jquery.timeago.et.js
deleted file mode 100755
index 7d17eb5c6..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.et.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Estonian
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: null,
- suffixAgo: "tagasi",
- suffixFromNow: "pärast",
- seconds: function(n, d) { return d < 0 ? "vähem kui minuti aja" : "vähem kui minut aega" },
- minute: function(n, d) { return d < 0 ? "umbes minuti aja" : "umbes minut aega" },
- minutes: function(n, d) { return d < 0 ? "%d minuti" : "%d minutit" },
- hour: function(n, d) { return d < 0 ? "umbes tunni aja" : "umbes tund aega" },
- hours: function(n, d) { return d < 0 ? "%d tunni" : "%d tundi" },
- day: function(n, d) { return d < 0 ? "umbes päeva" : "umbes päev" },
- days: function(n, d) { return d < 0 ? "%d päeva" : "%d päeva" },
- month: function(n, d) { return d < 0 ? "umbes kuu aja" : "umbes kuu aega" },
- months: function(n, d) { return d < 0 ? "%d kuu" : "%d kuud" },
- year: function(n, d) { return d < 0 ? "umbes aasta aja" : "umbes aasta aega" },
- years: function(n, d) { return d < 0 ? "%d aasta" : "%d aastat" }
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.fa.js b/ui/lib/timeago/locales/jquery.timeago.fa.js
deleted file mode 100755
index 0a70819d4..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.fa.js
+++ /dev/null
@@ -1,22 +0,0 @@
-
-// Persian
-// Use DIR attribute for RTL text in Persian Language for ABBR tag .
-// By MB.seifollahi@gmail.com
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: null,
- suffixAgo: "پیش",
- suffixFromNow: "از حال",
- seconds: "کمتر از یک دقیقه",
- minute: "حدود یک دقیقه",
- minutes: "%d دقیقه",
- hour: "حدود یک ساعت",
- hours: "حدود %d ساعت",
- day: "یک روز",
- days: "%d روز",
- month: "حدود یک ماه",
- months: "%d ماه",
- year: "حدود یک سال",
- years: "%d سال",
- wordSeparator: " "
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.fi.js b/ui/lib/timeago/locales/jquery.timeago.fi.js
deleted file mode 100755
index 06b12ee0b..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.fi.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Finnish
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: null,
- suffixAgo: "sitten",
- suffixFromNow: "tulevaisuudessa",
- seconds: "alle minuutti",
- minute: "minuutti",
- minutes: "%d minuuttia",
- hour: "tunti",
- hours: "%d tuntia",
- day: "päivä",
- days: "%d päivää",
- month: "kuukausi",
- months: "%d kuukautta",
- year: "vuosi",
- years: "%d vuotta"
-};
-
-// The above is not a great localization because one would usually
-// write "2 days ago" in Finnish as "2 päivää sitten", however
-// one would write "2 days into the future" as "2:n päivän päästä"
-// which cannot be achieved with localization support this simple.
-// This is because Finnish has word suffixes (attached directly
-// to the end of the word). The word "day" is "päivä" in Finnish.
-// As workaround, the above localizations will say
-// "2 päivää tulevaisuudessa" which is understandable but
-// not as fluent.
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.fr-short.js b/ui/lib/timeago/locales/jquery.timeago.fr-short.js
deleted file mode 100755
index dbfe3bb01..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.fr-short.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// French shortened
-jQuery.timeago.settings.strings = {
- prefixAgo: "il y a",
- prefixFromNow: "d'ici",
- seconds: "moins d'une minute",
- minute: "une minute",
- minutes: "%d minutes",
- hour: "une heure",
- hours: "%d heures",
- day: "un jour",
- days: "%d jours",
- month: "un mois",
- months: "%d mois",
- year: "un an",
- years: "%d ans"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.fr.js b/ui/lib/timeago/locales/jquery.timeago.fr.js
deleted file mode 100755
index 502834230..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.fr.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// French
-jQuery.timeago.settings.strings = {
- // environ ~= about, it's optional
- prefixAgo: "il y a",
- prefixFromNow: "d'ici",
- seconds: "moins d'une minute",
- minute: "environ une minute",
- minutes: "environ %d minutes",
- hour: "environ une heure",
- hours: "environ %d heures",
- day: "environ un jour",
- days: "environ %d jours",
- month: "environ un mois",
- months: "environ %d mois",
- year: "un an",
- years: "%d ans"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.gl.js b/ui/lib/timeago/locales/jquery.timeago.gl.js
deleted file mode 100755
index 14bc56ddc..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.gl.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Galician
-jQuery.timeago.settings.strings = {
- prefixAgo: "hai",
- prefixFromNow: "dentro de",
- suffixAgo: "",
- suffixFromNow: "",
- seconds: "menos dun minuto",
- minute: "un minuto",
- minutes: "uns %d minutos",
- hour: "unha hora",
- hours: "%d horas",
- day: "un día",
- days: "%d días",
- month: "un mes",
- months: "%d meses",
- year: "un ano",
- years: "%d anos"
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.he.js b/ui/lib/timeago/locales/jquery.timeago.he.js
deleted file mode 100755
index ac44458a5..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.he.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Hebrew
-jQuery.timeago.settings.strings = {
- prefixAgo: "לפני",
- prefixFromNow: "עוד",
- seconds: "פחות מדקה",
- minute: "דקה",
- minutes: "%d דקות",
- hour: "שעה",
- hours: function(number){return (number==2) ? "שעתיים" : "%d שעות"},
- day: "יום",
- days: function(number){return (number==2) ? "יומיים" : "%d ימים"},
- month: "חודש",
- months: function(number){return (number==2) ? "חודשיים" : "%d חודשים"},
- year: "שנה",
- years: function(number){return (number==2) ? "שנתיים" : "%d שנים"}
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.hr.js b/ui/lib/timeago/locales/jquery.timeago.hr.js
deleted file mode 100755
index a85bd803b..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.hr.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// Croatian
-(function () {
- var numpf;
-
- numpf = function (n, f, s, t) {
- var n10;
- n10 = n % 10;
- if (n10 === 1 && (n === 1 || n > 20)) {
- return f;
- } else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) {
- return s;
- } else {
- return t;
- }
- };
-
- jQuery.timeago.settings.strings = {
- prefixAgo: "prije",
- prefixFromNow: "za",
- suffixAgo: null,
- suffixFromNow: null,
- second: "sekundu",
- seconds: function (value) {
- return numpf(value, "%d sekundu", "%d sekunde", "%d sekundi");
- },
- minute: "oko minutu",
- minutes: function (value) {
- return numpf(value, "%d minutu", "%d minute", "%d minuta");
- },
- hour: "oko jedan sat",
- hours: function (value) {
- return numpf(value, "%d sat", "%d sata", "%d sati");
- },
- day: "jedan dan",
- days: function (value) {
- return numpf(value, "%d dan", "%d dana", "%d dana");
- },
- month: "mjesec dana",
- months: function (value) {
- return numpf(value, "%d mjesec", "%d mjeseca", "%d mjeseci");
- },
- year: "prije godinu dana",
- years: function (value) {
- return numpf(value, "%d godinu", "%d godine", "%d godina");
- },
- wordSeparator: " "
- };
-
-}).call(this);
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.hu.js b/ui/lib/timeago/locales/jquery.timeago.hu.js
deleted file mode 100755
index 3079c22b7..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.hu.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Hungarian
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: null,
- suffixAgo: null,
- suffixFromNow: null,
- seconds: "kevesebb mint egy perce",
- minute: "körülbelül egy perce",
- minutes: "%d perce",
- hour: "körülbelül egy órája",
- hours: "körülbelül %d órája",
- day: "körülbelül egy napja",
- days: "%d napja",
- month: "körülbelül egy hónapja",
- months: "%d hónapja",
- year: "körülbelül egy éve",
- years: "%d éve"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.hy.js b/ui/lib/timeago/locales/jquery.timeago.hy.js
deleted file mode 100755
index cd6e195e2..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.hy.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Armenian
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: null,
- suffixAgo: "առաջ",
- suffixFromNow: "հետո",
- seconds: "վայրկյաններ",
- minute: "մեկ րոպե",
- minutes: "%d րոպե",
- hour: "մեկ ժամ",
- hours: "%d ժամ",
- day: "մեկ օր",
- days: "%d օր",
- month: "մեկ ամիս",
- months: "%d ամիս",
- year: "մեկ տարի",
- years: "%d տարի"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.id.js b/ui/lib/timeago/locales/jquery.timeago.id.js
deleted file mode 100755
index 296d84e24..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.id.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Indonesian
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: null,
- suffixAgo: "yang lalu",
- suffixFromNow: "dari sekarang",
- seconds: "kurang dari semenit",
- minute: "sekitar satu menit",
- minutes: "%d menit",
- hour: "sekitar sejam",
- hours: "sekitar %d jam",
- day: "sehari",
- days: "%d hari",
- month: "sekitar sebulan",
- months: "%d bulan",
- year: "sekitar setahun",
- years: "%d tahun"
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.is.js b/ui/lib/timeago/locales/jquery.timeago.is.js
deleted file mode 100755
index d8074cf01..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.is.js
+++ /dev/null
@@ -1,19 +0,0 @@
-jQuery.timeago.settings.strings = {
- prefixAgo: "fyrir",
- prefixFromNow: "eftir",
- suffixAgo: "síðan",
- suffixFromNow: null,
- seconds: "minna en mínútu",
- minute: "mínútu",
- minutes: "%d mínútum",
- hour: "klukkutíma",
- hours: "um %d klukkutímum",
- day: "degi",
- days: "%d dögum",
- month: "mánuði",
- months: "%d mánuðum",
- year: "ári",
- years: "%d árum",
- wordSeparator: " ",
- numbers: []
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.it.js b/ui/lib/timeago/locales/jquery.timeago.it.js
deleted file mode 100755
index 6308dd30c..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.it.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Italian
-jQuery.timeago.settings.strings = {
- suffixAgo: "fa",
- suffixFromNow: "da ora",
- seconds: "meno di un minuto",
- minute: "circa un minuto",
- minutes: "%d minuti",
- hour: "circa un'ora",
- hours: "circa %d ore",
- day: "un giorno",
- days: "%d giorni",
- month: "circa un mese",
- months: "%d mesi",
- year: "circa un anno",
- years: "%d anni"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.ja.js b/ui/lib/timeago/locales/jquery.timeago.ja.js
deleted file mode 100755
index fd81f275d..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.ja.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Japanese
-jQuery.timeago.settings.strings = {
- prefixAgo: "",
- prefixFromNow: "今から",
- suffixAgo: "前",
- suffixFromNow: "後",
- seconds: "1 分未満",
- minute: "約 1 分",
- minutes: "%d 分",
- hour: "約 1 時間",
- hours: "約 %d 時間",
- day: "約 1 日",
- days: "約 %d 日",
- month: "約 1 月",
- months: "約 %d 月",
- year: "約 1 年",
- years: "約 %d 年",
- wordSeparator: ""
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.jv.js b/ui/lib/timeago/locales/jquery.timeago.jv.js
deleted file mode 100755
index 98f43ef22..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.jv.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Javanesse (Boso Jowo)
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: null,
- suffixAgo: "kepungkur",
- suffixFromNow: "seko saiki",
- seconds: "kurang seko sakmenit",
- minute: "kurang luwih sakmenit",
- minutes: "%d menit",
- hour: "kurang luwih sakjam",
- hours: "kurang luwih %d jam",
- day: "sedina",
- days: "%d dina",
- month: "kurang luwih sewulan",
- months: "%d wulan",
- year: "kurang luwih setahun",
- years: "%d tahun"
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.ko.js b/ui/lib/timeago/locales/jquery.timeago.ko.js
deleted file mode 100755
index a192b97bf..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.ko.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Korean
-jQuery.timeago.settings.strings = {
- suffixAgo: "전",
- suffixFromNow: "후",
- seconds: "1분 이내",
- minute: "1분",
- minutes: "%d분",
- hour: "1시간",
- hours: "%d시간",
- day: "하루",
- days: "%d일",
- month: "한 달",
- months: "%d달",
- year: "1년",
- years: "%d년",
- wordSeparator: " "
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.lt.js b/ui/lib/timeago/locales/jquery.timeago.lt.js
deleted file mode 100755
index 081455576..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.lt.js
+++ /dev/null
@@ -1,20 +0,0 @@
-//Lithuanian
-jQuery.timeago.settings.strings = {
- prefixAgo: "prieš",
- prefixFromNow: null,
- suffixAgo: null,
- suffixFromNow: "nuo dabar",
- seconds: "%d sek.",
- minute: "min.",
- minutes: "%d min.",
- hour: "val.",
- hours: "%d val.",
- day: "1 d.",
- days: "%d d.",
- month: "mėn.",
- months: "%d mėn.",
- year: "metus",
- years: "%d metus",
- wordSeparator: " ",
- numbers: []
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.mk.js b/ui/lib/timeago/locales/jquery.timeago.mk.js
deleted file mode 100755
index 9afdd4626..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.mk.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Macedonian
-(function() {
- jQuery.timeago.settings.strings={
- prefixAgo: "пред",
- prefixFromNow: "за",
- suffixAgo: null,
- suffixFromNow: null,
- seconds: "%d секунди",
- minute: "%d минута",
- minutes: "%d минути",
- hour: "%d час",
- hours: "%d часа",
- day: "%d ден",
- days: "%d денови" ,
- month: "%d месец",
- months: "%d месеци",
- year: "%d година",
- years: "%d години"
- }
-})();
diff --git a/ui/lib/timeago/locales/jquery.timeago.nl.js b/ui/lib/timeago/locales/jquery.timeago.nl.js
deleted file mode 100755
index cd68438cc..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.nl.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Dutch
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: "",
- suffixAgo: "geleden",
- suffixFromNow: "van nu",
- seconds: "minder dan een minuut",
- minute: "ongeveer een minuut",
- minutes: "%d minuten",
- hour: "ongeveer een uur",
- hours: "ongeveer %d uur",
- day: "een dag",
- days: "%d dagen",
- month: "ongeveer een maand",
- months: "%d maanden",
- year: "ongeveer een jaar",
- years: "%d jaar",
- wordSeparator: " ",
- numbers: []
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.no.js b/ui/lib/timeago/locales/jquery.timeago.no.js
deleted file mode 100755
index 65d1b0d83..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.no.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Norwegian
-jQuery.timeago.settings.strings = {
- prefixAgo: "for",
- prefixFromNow: "om",
- suffixAgo: "siden",
- suffixFromNow: "",
- seconds: "mindre enn et minutt",
- minute: "ca. et minutt",
- minutes: "%d minutter",
- hour: "ca. en time",
- hours: "ca. %d timer",
- day: "en dag",
- days: "%d dager",
- month: "ca. en måned",
- months: "%d måneder",
- year: "ca. et år",
- years: "%d år"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.pl.js b/ui/lib/timeago/locales/jquery.timeago.pl.js
deleted file mode 100755
index 21d26fc1c..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.pl.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Polish
-(function() {
- function numpf(n, s, t) {
- // s - 2-4, 22-24, 32-34 ...
- // t - 5-21, 25-31, ...
- var n10 = n % 10;
- if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
- return s;
- } else {
- return t;
- }
- }
-
- jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: "za",
- suffixAgo: "temu",
- suffixFromNow: null,
- seconds: "mniej niż minutę",
- minute: "minutę",
- minutes: function(value) { return numpf(value, "%d minuty", "%d minut"); },
- hour: "godzinę",
- hours: function(value) { return numpf(value, "%d godziny", "%d godzin"); },
- day: "dzień",
- days: "%d dni",
- month: "miesiąc",
- months: function(value) { return numpf(value, "%d miesiące", "%d miesięcy"); },
- year: "rok",
- years: function(value) { return numpf(value, "%d lata", "%d lat"); }
- };
-})();
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.pt-br-short.js b/ui/lib/timeago/locales/jquery.timeago.pt-br-short.js
deleted file mode 100755
index 8f63db43d..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.pt-br-short.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Portuguese Brasil shortened
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: null,
- suffixAgo: "",
- suffixFromNow: "",
- seconds: "1m",
- minute: "1m",
- minutes: "%dm",
- hour: "1h",
- hours: "%dh",
- day: "1d",
- days: "%dd",
- month: "1M",
- months: "%dM",
- year: "1a",
- years: "%da",
- wordSeparator: " ",
- numbers: []
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.pt-br.js b/ui/lib/timeago/locales/jquery.timeago.pt-br.js
deleted file mode 100755
index c72ea386a..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.pt-br.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Brazilian Portuguese
-jQuery.timeago.settings.strings = {
- prefixAgo: "há",
- prefixFromNow: "em",
- suffixAgo: null,
- suffixFromNow: null,
- seconds: "alguns segundos",
- minute: "um minuto",
- minutes: "%d minutos",
- hour: "uma hora",
- hours: "%d horas",
- day: "um dia",
- days: "%d dias",
- month: "um mês",
- months: "%d meses",
- year: "um ano",
- years: "%d anos"
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.pt.js b/ui/lib/timeago/locales/jquery.timeago.pt.js
deleted file mode 100755
index 416333c65..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.pt.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Portuguese
-jQuery.timeago.settings.strings = {
- suffixAgo: "atrás",
- suffixFromNow: "a partir de agora",
- seconds: "menos de um minuto",
- minute: "cerca de um minuto",
- minutes: "%d minutos",
- hour: "cerca de uma hora",
- hours: "cerca de %d horas",
- day: "um dia",
- days: "%d dias",
- month: "cerca de um mês",
- months: "%d meses",
- year: "cerca de um ano",
- years: "%d anos"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.ro.js b/ui/lib/timeago/locales/jquery.timeago.ro.js
deleted file mode 100755
index 2cee42990..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.ro.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Romanian
-jQuery.timeago.settings.strings = {
- prefixAgo: "acum",
- prefixFromNow: "in timp de",
- suffixAgo: "",
- suffixFromNow: "",
- seconds: "mai putin de un minut",
- minute: "un minut",
- minutes: "%d minute",
- hour: "o ora",
- hours: "%d ore",
- day: "o zi",
- days: "%d zile",
- month: "o luna",
- months: "%d luni",
- year: "un an",
- years: "%d ani"
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.rs.js b/ui/lib/timeago/locales/jquery.timeago.rs.js
deleted file mode 100755
index 0809c9101..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.rs.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// Serbian
-(function () {
- var numpf;
-
- numpf = function (n, f, s, t) {
- var n10;
- n10 = n % 10;
- if (n10 === 1 && (n === 1 || n > 20)) {
- return f;
- } else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) {
- return s;
- } else {
- return t;
- }
- };
-
- jQuery.timeago.settings.strings = {
- prefixAgo: "pre",
- prefixFromNow: "za",
- suffixAgo: null,
- suffixFromNow: null,
- second: "sekund",
- seconds: function (value) {
- return numpf(value, "%d sekund", "%d sekunde", "%d sekundi");
- },
- minute: "oko minut",
- minutes: function (value) {
- return numpf(value, "%d minut", "%d minuta", "%d minuta");
- },
- hour: "oko jedan sat",
- hours: function (value) {
- return numpf(value, "%d sat", "%d sata", "%d sati");
- },
- day: "jedan dan",
- days: function (value) {
- return numpf(value, "%d dan", "%d dana", "%d dana");
- },
- month: "mesec dana",
- months: function (value) {
- return numpf(value, "%d mesec", "%d meseca", "%d meseci");
- },
- year: "godinu dana",
- years: function (value) {
- return numpf(value, "%d godinu", "%d godine", "%d godina");
- },
- wordSeparator: " "
- };
-
-}).call(this);
diff --git a/ui/lib/timeago/locales/jquery.timeago.ru.js b/ui/lib/timeago/locales/jquery.timeago.ru.js
deleted file mode 100755
index 4cdc01b1c..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.ru.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Russian
-(function() {
- function numpf(n, f, s, t) {
- // f - 1, 21, 31, ...
- // s - 2-4, 22-24, 32-34 ...
- // t - 5-20, 25-30, ...
- var n10 = n % 10;
- if ( (n10 == 1) && ( (n == 1) || (n > 20) ) ) {
- return f;
- } else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
- return s;
- } else {
- return t;
- }
- }
-
- jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: "через",
- suffixAgo: "назад",
- suffixFromNow: null,
- seconds: "меньше минуты",
- minute: "минуту",
- minutes: function(value) { return numpf(value, "%d минута", "%d минуты", "%d минут"); },
- hour: "час",
- hours: function(value) { return numpf(value, "%d час", "%d часа", "%d часов"); },
- day: "день",
- days: function(value) { return numpf(value, "%d день", "%d дня", "%d дней"); },
- month: "месяц",
- months: function(value) { return numpf(value, "%d месяц", "%d месяца", "%d месяцев"); },
- year: "год",
- years: function(value) { return numpf(value, "%d год", "%d года", "%d лет"); }
- };
-})();
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.sk.js b/ui/lib/timeago/locales/jquery.timeago.sk.js
deleted file mode 100755
index 24493a2bd..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.sk.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Slovak
-jQuery.timeago.settings.strings = {
- prefixAgo: "pred",
- prefixFromNow: null,
- suffixAgo: null,
- suffixFromNow: null,
- seconds: "menej než minútou",
- minute: "minútou",
- minutes: "%d minútami",
- hour: "hodinou",
- hours: "%d hodinami",
- day: "1 dňom",
- days: "%d dňami",
- month: "1 mesiacom",
- months: "%d mesiacmi",
- year: "1 rokom",
- years: "%d rokmi"
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.sl.js b/ui/lib/timeago/locales/jquery.timeago.sl.js
deleted file mode 100755
index 57d4f6020..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.sl.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Slovenian with support for dual
-(function () {
- var numpf;
- numpf = function (n, a) {
- return a[n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0];
- };
-
- jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: "čez",
- suffixAgo: "nazaj",
- suffixFromNow: null,
- second: "sekundo",
- seconds: function (value) {
- return numpf(value, ["%d sekund", "%d sekundo", "%d sekundi", "%d sekunde"]);
- },
- minute: "minuto",
- minutes: function (value) {
- return numpf(value, ["%d minut", "%d minuto", "%d minuti", "%d minute"]);
- },
- hour: "eno uro",
- hours: function (value) {
- return numpf(value, ["%d ur", "%d uro", "%d uri", "%d ure"]);
- },
- day: "en dan",
- days: function (value) {
- return numpf(value, ["%d dni", "%d dan", "%d dneva", "%d dni"]);
- },
- month: "en mesec",
- months: function (value) {
- return numpf(value, ["%d mescov", "%d mesec", "%d mesca", "%d mesce"]);
- },
- year: "eno leto",
- years: function (value) {
- return numpf(value, ["%d let", "%d leto", "%d leti", "%d leta"]);
- },
- wordSeparator: " "
- };
-
-}).call(this);
diff --git a/ui/lib/timeago/locales/jquery.timeago.sv.js b/ui/lib/timeago/locales/jquery.timeago.sv.js
deleted file mode 100755
index b5c394717..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.sv.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Swedish
-jQuery.timeago.settings.strings = {
- prefixAgo: "för",
- prefixFromNow: "om",
- suffixAgo: "sedan",
- suffixFromNow: "",
- seconds: "mindre än en minut",
- minute: "ungefär en minut",
- minutes: "%d minuter",
- hour: "ungefär en timme",
- hours: "ungefär %d timmar",
- day: "en dag",
- days: "%d dagar",
- month: "ungefär en månad",
- months: "%d månader",
- year: "ungefär ett år",
- years: "%d år"
-};
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.th.js b/ui/lib/timeago/locales/jquery.timeago.th.js
deleted file mode 100755
index 894bf7fc8..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.th.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Thai
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: null,
- suffixAgo: "ที่แล้ว",
- suffixFromNow: "จากตอนนี้",
- seconds: "น้อยกว่าหนึ่งนาที",
- minute: "ประมาณหนึ่งนาที",
- minutes: "%d นาที",
- hour: "ประมาณหนึ่งชั่วโมง",
- hours: "ประมาณ %d ชั่วโมง",
- day: "หนึ่งวัน",
- days: "%d วัน",
- month: "ประมาณหนึ่งเดือน",
- months: "%d เดือน",
- year: "ประมาณหนึ่งปี",
- years: "%d ปี",
- wordSeparator: "",
- numbers: []
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.tr.js b/ui/lib/timeago/locales/jquery.timeago.tr.js
deleted file mode 100755
index 160190d02..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.tr.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Turkish
-jQuery.timeago.settings.strings = {
- suffixAgo: 'önce',
- suffixFromNow: null,
- seconds: '1 dakikadan',
- minute: '1 dakika',
- minutes: '%d dakika',
- hour: '1 saat',
- hours: '%d saat',
- day: '1 gün',
- days: '%d gün',
- month: '1 ay',
- months: '%d ay',
- year: '1 yıl',
- years: '%d yıl'
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.uk.js b/ui/lib/timeago/locales/jquery.timeago.uk.js
deleted file mode 100755
index 4382549f0..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.uk.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Ukrainian
-(function() {
- function numpf(n, f, s, t) {
- // f - 1, 21, 31, ...
- // s - 2-4, 22-24, 32-34 ...
- // t - 5-20, 25-30, ...
- var n10 = n % 10;
- if ( (n10 == 1) && ( (n == 1) || (n > 20) ) ) {
- return f;
- } else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
- return s;
- } else {
- return t;
- }
- }
-
- jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: "через",
- suffixAgo: "тому",
- suffixFromNow: null,
- seconds: "менше хвилини",
- minute: "хвилина",
- minutes: function(value) { return numpf(value, "%d хвилина", "%d хвилини", "%d хвилин"); },
- hour: "година",
- hours: function(value) { return numpf(value, "%d година", "%d години", "%d годин"); },
- day: "день",
- days: function(value) { return numpf(value, "%d день", "%d дні", "%d днів"); },
- month: "місяць",
- months: function(value) { return numpf(value, "%d місяць", "%d місяці", "%d місяців"); },
- year: "рік",
- years: function(value) { return numpf(value, "%d рік", "%d роки", "%d років"); }
- };
-})();
\ No newline at end of file
diff --git a/ui/lib/timeago/locales/jquery.timeago.uz.js b/ui/lib/timeago/locales/jquery.timeago.uz.js
deleted file mode 100755
index 31c0c02af..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.uz.js
+++ /dev/null
@@ -1,19 +0,0 @@
-//Uzbek
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: "keyin",
- suffixAgo: "avval",
- suffixFromNow: null,
- seconds: "bir necha soniya",
- minute: "1 daqiqa",
- minutes: function(value) { return "%d daqiqa" },
- hour: "1 soat",
- hours: function(value) { return "%d soat" },
- day: "1 kun",
- days: function(value) { return "%d kun" },
- month: "1 oy",
- months: function(value) { return "%d oy" },
- year: "1 yil",
- years: function(value) { return "%d yil" },
- wordSeparator: " "
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.vi.js b/ui/lib/timeago/locales/jquery.timeago.vi.js
deleted file mode 100755
index 84d661855..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.vi.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Vietnamese
-jQuery.timeago.settings.strings = {
- prefixAgo: 'cách đây',
- prefixFromNow: null,
- suffixAgo: null,
- suffixFromNow: "trước",
- seconds: "chưa đến một phút",
- minute: "khoảng một phút",
- minutes: "%d phút",
- hour: "khoảng một tiếng",
- hours: "khoảng %d tiếng",
- day: "một ngày",
- days: "%d ngày",
- month: "khoảng một tháng",
- months: "%d tháng",
- year: "khoảng một năm",
- years: "%d năm",
- wordSeparator: " ",
- numbers: []
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.zh-CN.js b/ui/lib/timeago/locales/jquery.timeago.zh-CN.js
deleted file mode 100755
index f7b979798..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.zh-CN.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Simplified Chinese
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: "从现在开始",
- suffixAgo: "之前",
- suffixFromNow: null,
- seconds: "不到1分钟",
- minute: "大约1分钟",
- minutes: "%d分钟",
- hour: "大约1小时",
- hours: "大约%d小时",
- day: "1天",
- days: "%d天",
- month: "大约1个月",
- months: "%d月",
- year: "大约1年",
- years: "%d年",
- numbers: [],
- wordSeparator: ""
-};
diff --git a/ui/lib/timeago/locales/jquery.timeago.zh-TW.js b/ui/lib/timeago/locales/jquery.timeago.zh-TW.js
deleted file mode 100755
index 52633900f..000000000
--- a/ui/lib/timeago/locales/jquery.timeago.zh-TW.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Traditional Chinese, zh-tw
-jQuery.timeago.settings.strings = {
- prefixAgo: null,
- prefixFromNow: "從現在開始",
- suffixAgo: "之前",
- suffixFromNow: null,
- seconds: "不到1分鐘",
- minute: "大約1分鐘",
- minutes: "%d分鐘",
- hour: "大約1小時",
- hours: "%d小時",
- day: "大約1天",
- days: "%d天",
- month: "大約1個月",
- months: "%d個月",
- year: "大約1年",
- years: "%d年",
- numbers: [],
- wordSeparator: ""
-};
diff --git a/ui/stream-icons/font/stream.eot b/ui/stream-icons/font/stream.eot
deleted file mode 100755
index 839f410b4..000000000
Binary files a/ui/stream-icons/font/stream.eot and /dev/null differ
diff --git a/ui/stream-icons/font/stream.svg b/ui/stream-icons/font/stream.svg
deleted file mode 100755
index 014085645..000000000
--- a/ui/stream-icons/font/stream.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-Generated by IcoMoon
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ui/stream-icons/font/stream.ttf b/ui/stream-icons/font/stream.ttf
deleted file mode 100755
index 89c81f7e2..000000000
Binary files a/ui/stream-icons/font/stream.ttf and /dev/null differ
diff --git a/ui/stream-icons/font/stream.woff b/ui/stream-icons/font/stream.woff
deleted file mode 100755
index 0ccd30f21..000000000
Binary files a/ui/stream-icons/font/stream.woff and /dev/null differ
diff --git a/ui/stream-icons/menuicon-sprite-2x.png b/ui/stream-icons/menuicon-sprite-2x.png
deleted file mode 100644
index ff0aaace3..000000000
Binary files a/ui/stream-icons/menuicon-sprite-2x.png and /dev/null differ
diff --git a/ui/stream-icons/menuicon-sprite.png b/ui/stream-icons/menuicon-sprite.png
deleted file mode 100644
index a1c6f4711..000000000
Binary files a/ui/stream-icons/menuicon-sprite.png and /dev/null differ
diff --git a/ui/stream-icons/style.css b/ui/stream-icons/style.css
deleted file mode 100755
index d6a679b2c..000000000
--- a/ui/stream-icons/style.css
+++ /dev/null
@@ -1,14 +0,0 @@
-@font-face {
- font-family: 'WP Stream';
- src:url('font/stream.eot');
- src:url('font/stream.eot?#iefix') format('embedded-opentype'),
- url('font/stream.ttf') format('truetype'),
- url('font/stream.woff') format('woff'),
- url('font/stream.svg#icomoon') format('svg');
- font-weight: normal;
- font-style: normal;
-}
-
-.icon-stream:before {
- content: "\73";
-}
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 000000000..62fb444c6
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,56 @@
+/**
+ * External dependencies
+ */
+const path = require( 'path' );
+const CopyPlugin = require( 'copy-webpack-plugin' );
+
+/**
+ * WordPress dependencies
+ */
+const defaultConfig = require( '@wordpress/scripts/config/webpack.config' );
+
+module.exports = {
+ ...defaultConfig,
+ entry: {
+ admin: './src/js/admin.js',
+ 'admin-exclude': './src/js/admin-exclude.js',
+ 'alert-type-highlight': './src/js/alert-type-highlight.js',
+ alerts: './src/js/alerts.js',
+ 'alerts-list': './src/js/alerts-list.js',
+ global: './src/js/global.js',
+ 'live-updates': './src/js/live-updates.js',
+ settings: './src/js/settings.js',
+ 'wpseo-admin': './src/js/wpseo-admin.js',
+ },
+ plugins: [
+ ...defaultConfig.plugins,
+ new CopyPlugin( {
+ patterns: [
+ {
+ from: 'node_modules/select2/dist',
+ // Convert filenames to lowercase.
+ to( { context, absoluteFilename } ) {
+ const baseName = path.basename( absoluteFilename ).toLowerCase();
+ const relativePath = path.relative( context, path.dirname( absoluteFilename ) );
+
+ return path.join( 'select2', relativePath, baseName );
+ },
+ },
+ {
+ from: 'node_modules/timeago/jquery.timeago.js',
+ to: 'timeago/js/jquery.timeago.js',
+ },
+ {
+ from: 'node_modules/timeago/locales',
+ // Convert filenames to lowercase.
+ to( { context, absoluteFilename } ) {
+ const baseName = path.basename( absoluteFilename ).toLowerCase();
+ const relativePath = path.relative( context, path.dirname( absoluteFilename ) );
+
+ return path.join( 'timeago', 'js', 'locales', relativePath, baseName );
+ },
+ },
+ ],
+ } ),
+ ],
+};