diff --git a/backend/SC4SNMP_UI_backend/__init__.py b/backend/SC4SNMP_UI_backend/__init__.py index fc336d51..de9c6698 100644 --- a/backend/SC4SNMP_UI_backend/__init__.py +++ b/backend/SC4SNMP_UI_backend/__init__.py @@ -16,7 +16,7 @@ load_dotenv() -__version__ = "1.2.3" +__version__ = "1.3.0-beta.1" MONGO_URI = os.getenv("MONGO_URI") log = logging.getLogger('gunicorn.error') diff --git a/backend/SC4SNMP_UI_backend/apply_changes/config_to_yaml_utils.py b/backend/SC4SNMP_UI_backend/apply_changes/config_to_yaml_utils.py index 2ed19004..a3d04252 100644 --- a/backend/SC4SNMP_UI_backend/apply_changes/config_to_yaml_utils.py +++ b/backend/SC4SNMP_UI_backend/apply_changes/config_to_yaml_utils.py @@ -130,13 +130,15 @@ def convert(self, documents: list) -> dict: :param documents: inventory from mongo :return: dictionary that can be dumped to yaml """ - inventory_string = "address,port,version,community,secret,security_engine,walk_interval,profiles,smart_profiles,delete" + inventory_string = "address,port,version,community,secret,security_engine,walk_interval,profiles,smart_profiles,max_oid_to_process,delete" for inv in documents: smart_profiles = bool_to_str(inv['smart_profiles']) inv_delete = bool_to_str(inv['delete']) + max_oid_to_process = inv.get('max_oid_to_process') + max_oid_to_process = '' if max_oid_to_process is None else max_oid_to_process inventory_string += f"\n{inv['address']},{inv['port']},{inv['version']},{inv['community']}," \ f"{inv['secret']},{inv['security_engine']},{inv['walk_interval']},{inv['profiles']}," \ - f"{smart_profiles},{inv_delete}" + f"{smart_profiles},{max_oid_to_process},{inv_delete}" return { "inventory": literal_string(inventory_string) } diff --git a/backend/SC4SNMP_UI_backend/common/backend_ui_conversions.py b/backend/SC4SNMP_UI_backend/common/backend_ui_conversions.py index cfd7a49f..a370563f 100644 --- a/backend/SC4SNMP_UI_backend/common/backend_ui_conversions.py +++ b/backend/SC4SNMP_UI_backend/common/backend_ui_conversions.py @@ -278,6 +278,8 @@ def ui2backend(self, document: dict, **kwargs): 'walk_interval': document['walkInterval'], 'profiles': profiles, 'smart_profiles': document['smartProfiles'], + 'max_oid_to_process': int(document['maxOidToProcess']) + if str(document.get('maxOidToProcess', "")).strip() else None, 'delete': kwargs['delete'] } return result @@ -303,6 +305,7 @@ def backend2ui(self, document: dict, **kwargs): 'securityEngine': document['security_engine'], 'walkInterval': document['walk_interval'], 'profiles': profiles, - 'smartProfiles': document['smart_profiles'] + 'smartProfiles': document['smart_profiles'], + 'maxOidToProcess': '' if document.get('max_oid_to_process') is None else document['max_oid_to_process'] } return result \ No newline at end of file diff --git a/backend/SC4SNMP_UI_backend/common/file_to_config_utils.py b/backend/SC4SNMP_UI_backend/common/file_to_config_utils.py index 3310d7b0..ed2f5445 100644 --- a/backend/SC4SNMP_UI_backend/common/file_to_config_utils.py +++ b/backend/SC4SNMP_UI_backend/common/file_to_config_utils.py @@ -44,8 +44,12 @@ def inventory_csv_to_documents(csv_string: str) -> list: Inverse of InventoryToYamlDictConversion.convert. Parses the poller.inventory literal-block CSV (header: address,port,version, community,secret,security_engine,walk_interval,profiles,smart_profiles, - delete) into the inventory_ui Mongo document shape - one dict per row, - matching InventoryConversion.ui2backend's output fields. + max_oid_to_process,delete) into the inventory_ui Mongo document shape - + one dict per row, matching InventoryConversion.ui2backend's output fields. + + max_oid_to_process is optional - a missing column (older section files) + or a blank cell both mean "unset" (None), so the connector falls back to + its global default rather than raising on int(""). Rows whose address is blank or starts with "#" are skipped, mirroring the connector's own convention of allowing commented-out inventory rows. @@ -59,6 +63,7 @@ def inventory_csv_to_documents(csv_string: str) -> list: address = (row.get("address") or "").strip() if not address or address.startswith("#"): continue + max_oid_raw = (row.get("max_oid_to_process") or "").strip() documents.append({ "address": address, "port": int(row["port"]), @@ -69,6 +74,7 @@ def inventory_csv_to_documents(csv_string: str) -> list: "walk_interval": int(row["walk_interval"]), "profiles": row["profiles"], "smart_profiles": str_to_bool(row["smart_profiles"]), + "max_oid_to_process": int(max_oid_raw) if max_oid_raw else None, "delete": str_to_bool(row["delete"]), }) return documents diff --git a/backend/requirements.txt b/backend/requirements.txt index ec183dff..68ca045b 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -1,4 +1,4 @@ -click==8.4.2 +click==8.5.0 Flask==3.1.3 Flask-Cors==6.0.5 itsdangerous==2.2.0 @@ -8,7 +8,7 @@ pymongo==4.17.0 six==1.17.0 Werkzeug==3.1.8 pytest~=9.0, >=9.0.3 -gunicorn==26.1.0 +gunicorn==26.2.0 kubernetes~=36.0.3 python-dotenv~=1.2, >=1.2.2 PyYAML~=6.0 @@ -17,4 +17,4 @@ redis~=8.0 ruamel.yaml===0.17.32 PyJWT~=2.13 argon2-cffi~=25.1 -Flask-Limiter~=3.8 \ No newline at end of file +Flask-Limiter~=4.1 \ No newline at end of file diff --git a/backend/tests/common/test_backend_ui_conversions.py b/backend/tests/common/test_backend_ui_conversions.py index dd8234a9..e469fcff 100644 --- a/backend/tests/common/test_backend_ui_conversions.py +++ b/backend/tests/common/test_backend_ui_conversions.py @@ -202,6 +202,7 @@ def setUpClass(cls): "security_engine": "1234aabbccd", "profiles": "prof1;prof2;prof3", "smart_profiles": False, + "max_oid_to_process": 50, "delete": False } @@ -216,7 +217,8 @@ def setUpClass(cls): "walkInterval": 1800, "securityEngine": "1234aabbccd", "profiles": ["prof1", "prof2", "prof3"], - "smartProfiles": False + "smartProfiles": False, + "maxOidToProcess": 50 } cls.backend_inventory_2 = { @@ -230,6 +232,7 @@ def setUpClass(cls): "security_engine": "", "profiles": "prof3", "smart_profiles": True, + "max_oid_to_process": None, "delete": True } @@ -244,7 +247,8 @@ def setUpClass(cls): "walkInterval": 1900, "securityEngine": "", "profiles": ["prof3"], - "smartProfiles": True + "smartProfiles": True, + "maxOidToProcess": "" } def test_profile_backend_to_ui(self): @@ -350,6 +354,7 @@ def test_inventory_ui_to_backend_empty_port_defaults_to_161(self): "security_engine": "", "profiles": "prof3", "smart_profiles": True, + "max_oid_to_process": None, "delete": True } diff --git a/backend/tests/common/test_file_to_config_utils.py b/backend/tests/common/test_file_to_config_utils.py index 863b4f1c..2096ed2a 100644 --- a/backend/tests/common/test_file_to_config_utils.py +++ b/backend/tests/common/test_file_to_config_utils.py @@ -100,6 +100,7 @@ "walk_interval": 1800, "profiles": "small_walk;in_profile", "smart_profiles": True, + "max_oid_to_process": None, "delete": False }, { @@ -112,6 +113,7 @@ "walk_interval": 1800, "profiles": "single_metric;multiple_conditions", "smart_profiles": False, + "max_oid_to_process": None, "delete": False } ] @@ -151,6 +153,34 @@ def test_inventory_csv_to_documents_skips_commented_and_blank_rows(self): self.assertEqual(len(documents), 1) self.assertEqual(documents[0]["address"], "1.1.1.1") + def test_inventory_csv_to_documents_max_oid_to_process_backward_compat(self): + # Older section files predate the max_oid_to_process column entirely; a + # blank cell in a current-format file means the same thing (unset). + # Both must parse to None rather than raising, so the connector falls + # back to its global default. + old_format_csv = ( + "address,port,version,community,secret,security_engine,walk_interval,profiles,smart_profiles,delete\n" + "1.1.1.1,161,2c,public,,,1800,small_walk,t,f\n" + ) + documents = inventory_csv_to_documents(old_format_csv) + self.assertEqual(documents[0]["max_oid_to_process"], None) + + blank_cell_csv = ( + "address,port,version,community,secret,security_engine,walk_interval,profiles,smart_profiles," + "max_oid_to_process,delete\n" + "1.1.1.1,161,2c,public,,,1800,small_walk,t,,f\n" + ) + documents = inventory_csv_to_documents(blank_cell_csv) + self.assertEqual(documents[0]["max_oid_to_process"], None) + + set_value_csv = ( + "address,port,version,community,secret,security_engine,walk_interval,profiles,smart_profiles," + "max_oid_to_process,delete\n" + "1.1.1.1,161,2c,public,,,1800,small_walk,t,50,f\n" + ) + documents = inventory_csv_to_documents(set_value_csv) + self.assertEqual(documents[0]["max_oid_to_process"], 50) + def test_inventory_csv_to_documents_empty_string(self): self.assertEqual(inventory_csv_to_documents(""), []) self.assertEqual(inventory_csv_to_documents(None), []) diff --git a/backend/tests/ui_handling/get_endpoints/test_get_endpoints.py b/backend/tests/ui_handling/get_endpoints/test_get_endpoints.py index fae638a0..0558d768 100644 --- a/backend/tests/ui_handling/get_endpoints/test_get_endpoints.py +++ b/backend/tests/ui_handling/get_endpoints/test_get_endpoints.py @@ -350,7 +350,8 @@ def test_get_inventory_list(m_cursor, m_groups, client): "walkInterval": 1800, "securityEngine": "1234aabbccd", "profiles": ["prof1", "prof2", "prof3"], - "smartProfiles": False + "smartProfiles": False, + "maxOidToProcess": "" }, { "_id": common_id, @@ -363,7 +364,8 @@ def test_get_inventory_list(m_cursor, m_groups, client): "walkInterval": 1900, "securityEngine": "", "profiles": ["prof3"], - "smartProfiles": True + "smartProfiles": True, + "maxOidToProcess": "" } ] @@ -379,7 +381,8 @@ def test_get_inventory_list(m_cursor, m_groups, client): "walkInterval": 1800, "securityEngine": "1234aabbccd", "profiles": ["prof1", "prof2", "prof3"], - "smartProfiles": False + "smartProfiles": False, + "maxOidToProcess": "" }, ] diff --git a/backend/tests/ui_handling/post_endpoints/test_post_inventory.py b/backend/tests/ui_handling/post_endpoints/test_post_inventory.py index c5298b1d..9177e57b 100644 --- a/backend/tests/ui_handling/post_endpoints/test_post_inventory.py +++ b/backend/tests/ui_handling/post_endpoints/test_post_inventory.py @@ -29,6 +29,7 @@ "security_engine": "1234aabbccd", "profiles": "prof1;prof2;prof3", "smart_profiles": False, + "max_oid_to_process": None, "delete": False } @@ -55,6 +56,7 @@ "security_engine": "1234aabbccd", "profiles": "prof1;prof2;prof3", "smart_profiles": False, + "max_oid_to_process": None, "delete": False } @@ -302,6 +304,7 @@ def test_edit_single_host_address_and_port_success(m_find, m_insert, m_update, m "security_engine": "1234aabbccd", "profiles": "prof1;prof2;prof3", "smart_profiles": False, + "max_oid_to_process": None, "delete": False } deleted_host_backend = { @@ -383,6 +386,7 @@ def test_edit_ip_to_hostname_success(m_find, m_insert, m_update, m_delete, m_get "security_engine": "1234aabbccd", "profiles": "prof1;prof2;prof3", "smart_profiles": False, + "max_oid_to_process": None, "delete": False } deleted_host_backend = { @@ -565,6 +569,7 @@ def test_edit_single_host_failed(m_find, m_insert, m_update, m_delete, m_get_inv "security_engine": "1234aabbccd", "profiles": "prof1;prof2;prof3", "smart_profiles": False, + "max_oid_to_process": None, "delete": False } @@ -939,6 +944,7 @@ def test_add_group_without_configuration_failure(m_find, m_insert, m_delete, cli "security_engine": "1234aabbccd", "profiles": "prof1;prof2;prof3", "smart_profiles": False, + "max_oid_to_process": None, "delete": False } @@ -1030,6 +1036,7 @@ def test_update_group_with_changing_name_success(m_find, m_insert, m_update, m_d "security_engine": "1234aabbccd", "profiles": "prof1;prof2;prof3", "smart_profiles": False, + "max_oid_to_process": None, "delete": False } diff --git a/backend/tests/ui_handling/post_endpoints/test_post_load_config.py b/backend/tests/ui_handling/post_endpoints/test_post_load_config.py index 9455284a..ecb8ce75 100644 --- a/backend/tests/ui_handling/post_endpoints/test_post_load_config.py +++ b/backend/tests/ui_handling/post_endpoints/test_post_load_config.py @@ -58,12 +58,12 @@ { "address": "1.1.1.1", "port": 161, "version": "2c", "community": "public", "secret": "", "security_engine": "", "walk_interval": 1800, "profiles": "small_walk;in_profile", - "smart_profiles": True, "delete": False + "smart_profiles": True, "max_oid_to_process": None, "delete": False }, { "address": "group1", "port": 1161, "version": "2c", "community": "public", "secret": "", "security_engine": "", "walk_interval": 1800, "profiles": "single_metric;multiple_conditions", - "smart_profiles": False, "delete": False + "smart_profiles": False, "max_oid_to_process": None, "delete": False } ] diff --git a/backend/tests/ui_handling/post_endpoints/test_post_profiles.py b/backend/tests/ui_handling/post_endpoints/test_post_profiles.py index e2d1388d..4ac8fe34 100644 --- a/backend/tests/ui_handling/post_endpoints/test_post_profiles.py +++ b/backend/tests/ui_handling/post_endpoints/test_post_profiles.py @@ -101,6 +101,7 @@ def test_delete_profile_record(m_update, m_delete, m_find, client): "security_engine": "1234aabbccd", "profiles": "profile_2", "smart_profiles": False, + "max_oid_to_process": None, "delete": False } @@ -220,6 +221,7 @@ def test_update_profile_record_with_name_change_success(m_find, m_update, client "security_engine": "1234aabbccd", "profiles": "profile_1_edit;profile_2", "smart_profiles": False, + "max_oid_to_process": None, "delete": False } diff --git a/backend/tests/yamls_for_tests/reference_files/poller_inventory.yaml b/backend/tests/yamls_for_tests/reference_files/poller_inventory.yaml index 6e18d105..e61db3d5 100644 --- a/backend/tests/yamls_for_tests/reference_files/poller_inventory.yaml +++ b/backend/tests/yamls_for_tests/reference_files/poller_inventory.yaml @@ -1,4 +1,4 @@ inventory: |- - address,port,version,community,secret,security_engine,walk_interval,profiles,smart_profiles,delete - 1.1.1.1,161,2c,public,,,1800,small_walk;in_profile,t,f - group1,1161,2c,public,,,1800,single_metric;multiple_conditions,f,f + address,port,version,community,secret,security_engine,walk_interval,profiles,smart_profiles,max_oid_to_process,delete + 1.1.1.1,161,2c,public,,,1800,small_walk;in_profile,t,,f + group1,1161,2c,public,,,1800,single_metric;multiple_conditions,f,,f diff --git a/backend/tests/yamls_for_tests/reference_files/values.yaml b/backend/tests/yamls_for_tests/reference_files/values.yaml index 8bc3a572..15e4bad6 100644 --- a/backend/tests/yamls_for_tests/reference_files/values.yaml +++ b/backend/tests/yamls_for_tests/reference_files/values.yaml @@ -143,9 +143,9 @@ poller: # - sc4snmp-hlab-sha-aes # - sc4snmp-hlab-sha-des inventory: |- - address,port,version,community,secret,security_engine,walk_interval,profiles,smart_profiles,delete - 1.1.1.1,161,2c,public,,,1800,small_walk;in_profile,t,f - group1,1161,2c,public,,,1800,single_metric;multiple_conditions,f,f + address,port,version,community,secret,security_engine,walk_interval,profiles,smart_profiles,max_oid_to_process,delete + 1.1.1.1,161,2c,public,,,1800,small_walk;in_profile,t,,f + group1,1161,2c,public,,,1800,single_metric;multiple_conditions,f,,f # group2,163,2c,public,,,3000,generic_switch,, # 10.0.0.100,,3,,sc4snmp-hlab-sha-des,,1800,,, sim: diff --git a/frontend/lerna.json b/frontend/lerna.json index a97bf834..efedbb0c 100644 --- a/frontend/lerna.json +++ b/frontend/lerna.json @@ -1,6 +1,6 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "1.2.3", + "version": "1.3.0-beta.1", "command": { "publish": { "ignoreChanges": ["*.md"] diff --git a/frontend/package.json b/frontend/package.json index 0842e17b..96aad529 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -46,6 +46,8 @@ "@sigstore/verify": "^4.1.2", "@babel/plugin-transform-modules-systemjs": "^7.29.8", "fast-uri": "^4.1.2", - "websocket-driver": "^0.7.5" + "websocket-driver": "^0.7.5", + "ws": "^8.21.0", + "qs": "^6.15.2" } } diff --git a/frontend/packages/manager/package.json b/frontend/packages/manager/package.json index fe178b9e..aafbcb4f 100644 --- a/frontend/packages/manager/package.json +++ b/frontend/packages/manager/package.json @@ -1,6 +1,6 @@ { "name": "@splunk/manager", - "version": "1.2.3", + "version": "1.3.0-beta.1", "license": "UNLICENSED", "scripts": { "build": "NODE_ENV=production webpack --bail --config demo/webpack.standalone.config.js", @@ -20,7 +20,7 @@ }, "main": "Manager.js", "dependencies": { - "@splunk/react-ui": "^4.47.1", + "@splunk/react-ui": "^5.0.0", "@splunk/themes": "^0.11.0", "axios": "^1.16.0", "css-loader": "^7.1.4", @@ -63,7 +63,7 @@ "react": "^16.12.0", "react-dom": "^16.12.0", "react-test-renderer": "^16.12.0", - "styled-components": "5.1.1", + "styled-components": "5.3.11", "stylelint": "^17.14.1", "webpack": "^5.109.2", "webpack-cli": "^7.2.2", @@ -72,7 +72,7 @@ }, "peerDependencies": { "react": "^16.8", - "styled-components": "5.1.1" + "styled-components": "5.3.11" }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0" diff --git a/frontend/packages/manager/src/components/inventory/AddInventoryModal.jsx b/frontend/packages/manager/src/components/inventory/AddInventoryModal.jsx index 689bab3b..3ecdf67d 100644 --- a/frontend/packages/manager/src/components/inventory/AddInventoryModal.jsx +++ b/frontend/packages/manager/src/components/inventory/AddInventoryModal.jsx @@ -52,6 +52,10 @@ function AddInventoryModal() { InvCtx.setWalkInterval(val); }, [InvCtx]); + const handleChangeMaxOidToProcess = useCallback((e, { value: val }) => { + InvCtx.setMaxOidToProcess(val); + }, [InvCtx]); + const handleChangeSmartProfiles = useCallback((e, { value: val }) => { InvCtx.setSmartProfiles(val); }, [InvCtx]); @@ -128,6 +132,7 @@ function AddInventoryModal() { secret: InvCtx.secret, securityEngine: InvCtx.securityEngine, walkInterval: InvCtx.walkInterval, + maxOidToProcess: InvCtx.maxOidToProcess, profiles: InvCtx.profiles, smartProfiles: InvCtx.smartProfiles, initProfiles @@ -160,7 +165,7 @@ function AddInventoryModal() { }, [InvCtx.inventoryType, InvCtx.address, InvCtx.port, InvCtx.version, InvCtx.community, InvCtx.secret, InvCtx.securityEngine, InvCtx.isEdit, - InvCtx.walkInterval, InvCtx.profiles, InvCtx.smartProfiles, InvCtx.setAddOpen, InvCtx.addModalToggle, InvCtx.inventoryId, initProfiles] + InvCtx.walkInterval, InvCtx.maxOidToProcess, InvCtx.profiles, InvCtx.smartProfiles, InvCtx.setAddOpen, InvCtx.addModalToggle, InvCtx.inventoryId, initProfiles] ); return ( @@ -231,6 +236,13 @@ function AddInventoryModal() { + + + + {((ValCtx.maxOidToProcessErrors) ? ValCtx.maxOidToProcessErrors.map((el) =>

{el}

) :

)} + + + diff --git a/frontend/packages/manager/src/components/inventory/InventoryList.jsx b/frontend/packages/manager/src/components/inventory/InventoryList.jsx index 80047c8a..1ccbb637 100644 --- a/frontend/packages/manager/src/components/inventory/InventoryList.jsx +++ b/frontend/packages/manager/src/components/inventory/InventoryList.jsx @@ -22,6 +22,7 @@ const columns = [ {sortKey: 'secret', label: 'Secret'}, {sortKey: 'securityEngine', label: 'Security Engine'}, {sortKey: 'walkInterval', label: 'Walk Interval'}, + {sortKey: 'maxOidToProcess', label: 'Max OID to process'}, {sortKey: 'profiles', label: 'Profiles'}, {sortKey: 'smartProfiles', label: 'Smart Profiles'}, {sortKey: `actions`, label: 'Actions'}, @@ -68,6 +69,7 @@ function InventoryList() { InvCtx.setSecret(row.secret); InvCtx.setSecurityEngine(row.securityEngine); InvCtx.setWalkInterval(row.walkInterval); + InvCtx.setMaxOidToProcess(row.maxOidToProcess); InvCtx.setProfiles(row.profiles); InvCtx.setSmartProfiles(row.smartProfiles); }; @@ -150,6 +152,7 @@ function InventoryList() { {row.secret} {row.securityEngine} {row.walkInterval} + {row.maxOidToProcess} {row.profiles.toString()} {row.smartProfiles.toString()} diff --git a/frontend/packages/manager/src/components/validation/ValidateInventoryAndGroup.jsx b/frontend/packages/manager/src/components/validation/ValidateInventoryAndGroup.jsx index 523e70b9..c7d00e99 100644 --- a/frontend/packages/manager/src/components/validation/ValidateInventoryAndGroup.jsx +++ b/frontend/packages/manager/src/components/validation/ValidateInventoryAndGroup.jsx @@ -15,6 +15,7 @@ const validateInventoryAndGroup = (validationObj) => { secret: [], securityEngine: [], walkInterval: [], + maxOidToProcess: [], profiles: [] }; let isValid = true; @@ -107,6 +108,16 @@ const validateInventoryAndGroup = (validationObj) => { } } + // Validate Max OID to process (optional - empty means "use the connector's global default") + if ("maxOidToProcess" in validationObj){ + const maxOidToProcess = validationObj.maxOidToProcess; + const isEmpty = maxOidToProcess === '' || maxOidToProcess === null || maxOidToProcess === undefined; + if (!isEmpty && !(Number.isInteger(maxOidToProcess) && maxOidToProcess >= 1)){ + isValid = false; + errors.maxOidToProcess.push("Max OID to process must be a positive integer, or left empty to use the default."); + } + } + // Validate profiles if ("profiles" in validationObj && "initProfiles" in validationObj){ for (const prof of validationObj.profiles){ diff --git a/frontend/packages/manager/src/store/inventory-contxt.jsx b/frontend/packages/manager/src/store/inventory-contxt.jsx index 8920637f..d5148965 100644 --- a/frontend/packages/manager/src/store/inventory-contxt.jsx +++ b/frontend/packages/manager/src/store/inventory-contxt.jsx @@ -30,6 +30,7 @@ export function InventoryContextProvider(props){ const [secret, setSecret] = useState(''); const [securityEngine, setSecurityEngine] = useState(''); const [walkInterval, setWalkInterval] = useState(1800); + const [maxOidToProcess, setMaxOidToProcess] = useState(''); const [profiles, setProfiles] = useState([]); const [smartProfiles, setSmartProfiles] = useState(false); const [inventoryType, setInventoryType] = useState("Host"); @@ -43,6 +44,7 @@ export function InventoryContextProvider(props){ setSecret(''); setSecurityEngine(''); setWalkInterval(1800); + setMaxOidToProcess(''); setProfiles([]); setSmartProfiles(false); } @@ -76,6 +78,8 @@ export function InventoryContextProvider(props){ setSecurityEngine, walkInterval, setWalkInterval, + maxOidToProcess, + setMaxOidToProcess, profiles, setProfiles, smartProfiles, diff --git a/frontend/packages/manager/src/store/inventory-devices-validation-contxt.jsx b/frontend/packages/manager/src/store/inventory-devices-validation-contxt.jsx index df5ac4ec..8d045ac7 100644 --- a/frontend/packages/manager/src/store/inventory-devices-validation-contxt.jsx +++ b/frontend/packages/manager/src/store/inventory-devices-validation-contxt.jsx @@ -10,6 +10,7 @@ export function InventoryDevicesValidationContxtProvider(props){ const [secretErrors, setSecretErrors] = useState(null); const [securityEngineErrors, setSecurityEngineErrors] = useState(null); const [walkIntervalErrors, setWalkIntervalErrors] = useState(null); + const [maxOidToProcessErrors, setMaxOidToProcessErrors] = useState(null); const [profilesErrors, setProfilesErrors] = useState(null); const resetAllErrors = () =>{ @@ -20,6 +21,7 @@ export function InventoryDevicesValidationContxtProvider(props){ setSecretErrors(null); setSecurityEngineErrors(null); setWalkIntervalErrors(null); + setMaxOidToProcessErrors(null); setProfilesErrors(null); }; @@ -46,6 +48,10 @@ export function InventoryDevicesValidationContxtProvider(props){ setWalkIntervalErrors(null); case "profiles": setProfilesErrors(null); + break; + case "maxOidToProcess": + setMaxOidToProcessErrors(null); + break; default: break; }; @@ -74,6 +80,10 @@ export function InventoryDevicesValidationContxtProvider(props){ setWalkIntervalErrors(errors); case "profiles": setProfilesErrors(errors); + break; + case "maxOidToProcess": + setMaxOidToProcessErrors(errors); + break; default: break; }; @@ -87,6 +97,7 @@ export function InventoryDevicesValidationContxtProvider(props){ secretErrors: secretErrors, securityEngineErrors: securityEngineErrors, walkIntervalErrors: walkIntervalErrors, + maxOidToProcessErrors: maxOidToProcessErrors, profilesErrors: profilesErrors, resetAllErrors: resetAllErrors, resetErrors: resetErrors, diff --git a/frontend/packages/manager/src/tests/AddInventoryModal.test.jsx b/frontend/packages/manager/src/tests/AddInventoryModal.test.jsx index 4d71b2ae..ebf29a1f 100644 --- a/frontend/packages/manager/src/tests/AddInventoryModal.test.jsx +++ b/frontend/packages/manager/src/tests/AddInventoryModal.test.jsx @@ -202,4 +202,38 @@ describe("AddInventoryModal", () => { await sleep(5) expect(screen.queryByText("When using SNMP version 3, secret must be specified")).toBeInTheDocument() }) + + it("Test max OID to process is optional but validated when provided", async () => { + api.get.mockResolvedValueOnce({data:[]}); + api.post.mockResolvedValue({data: "success"}); + await act( async () => renderModal()); + const submitButton = screen.getByDataTest("sc4snmp:form:submit-form-button"); + const hostButton = screen.getByDataTest("sc4snmp:form:inventory-type-host"); + const addressInput = screen.getByDataTest('sc4snmp:form:group-ip-input').querySelector("input"); + const communityInput = screen.getByDataTest('sc4snmp:form:community-input').querySelector("input"); + const maxOidToProcessInput = screen.getByDataTest('sc4snmp:form:max-oid-to-process-input').querySelector("input"); + + // A successful submit resets the whole form, so address/community are + // re-filled before each submit below rather than only once up front. + fireEvent.click(hostButton); + fireEvent.change(addressInput, {target: {value: "1.2.3.4"}}) + fireEvent.change(communityInput, {target: {value: "public"}}) + fireEvent.click(submitButton); + await sleep(10); + expect(screen.queryByText("Max OID to process must be a positive integer, or left empty to use the default.")).not.toBeInTheDocument(); + expect(api.post).toHaveBeenCalledWith("/inventory/add", expect.objectContaining({maxOidToProcess: ''})); + + fireEvent.change(addressInput, {target: {value: "1.2.3.4"}}) + fireEvent.change(communityInput, {target: {value: "public"}}) + fireEvent.change(maxOidToProcessInput, {target: {value: 0}}); + fireEvent.click(submitButton); + await sleep(10); + expect(screen.queryByText("Max OID to process must be a positive integer, or left empty to use the default.")).toBeInTheDocument(); + + fireEvent.change(maxOidToProcessInput, {target: {value: 50}}); + fireEvent.click(submitButton); + await sleep(10); + expect(screen.queryByText("Max OID to process must be a positive integer, or left empty to use the default.")).not.toBeInTheDocument(); + expect(api.post).toHaveBeenCalledWith("/inventory/add", expect.objectContaining({maxOidToProcess: 50})); + }) }) diff --git a/frontend/packages/manager/src/tests/mock_context_providers/MockInventoryContextProvider.jsx b/frontend/packages/manager/src/tests/mock_context_providers/MockInventoryContextProvider.jsx index f33483c7..d2c17010 100644 --- a/frontend/packages/manager/src/tests/mock_context_providers/MockInventoryContextProvider.jsx +++ b/frontend/packages/manager/src/tests/mock_context_providers/MockInventoryContextProvider.jsx @@ -25,6 +25,7 @@ export function MockInventoryContextProvider(props){ const [secret, setSecret] = useState(''); const [securityEngine, setSecurityEngine] = useState(''); const [walkInterval, setWalkInterval] = useState(1800); + const [maxOidToProcess, setMaxOidToProcess] = useState(''); const [profiles, setProfiles] = useState([]); const [smartProfiles, setSmartProfiles] = useState(false); const [inventoryType, setInventoryType] = useState("Host"); @@ -38,6 +39,7 @@ export function MockInventoryContextProvider(props){ setSecret(''); setSecurityEngine(''); setWalkInterval(1800); + setMaxOidToProcess(''); setProfiles([]); setSmartProfiles(false); } @@ -71,6 +73,8 @@ export function MockInventoryContextProvider(props){ setSecurityEngine, walkInterval, setWalkInterval, + maxOidToProcess, + setMaxOidToProcess, profiles, setProfiles, smartProfiles, diff --git a/frontend/packages/manager/src/tests/mock_context_providers/MockInventoryValidationContextProvider.jsx b/frontend/packages/manager/src/tests/mock_context_providers/MockInventoryValidationContextProvider.jsx index ed3bb2ee..666363ec 100644 --- a/frontend/packages/manager/src/tests/mock_context_providers/MockInventoryValidationContextProvider.jsx +++ b/frontend/packages/manager/src/tests/mock_context_providers/MockInventoryValidationContextProvider.jsx @@ -9,6 +9,7 @@ export function MockInventoryValidationContextProvider(props){ const [secretErrors, setSecretErrors] = useState(null); const [securityEngineErrors, setSecurityEngineErrors] = useState(null); const [walkIntervalErrors, setWalkIntervalErrors] = useState(null); + const [maxOidToProcessErrors, setMaxOidToProcessErrors] = useState(null); const [profilesErrors, setProfilesErrors] = useState(null); const resetAllErrors = () =>{ @@ -19,6 +20,7 @@ export function MockInventoryValidationContextProvider(props){ setSecretErrors(null); setSecurityEngineErrors(null); setWalkIntervalErrors(null); + setMaxOidToProcessErrors(null); setProfilesErrors(null); }; @@ -45,6 +47,10 @@ export function MockInventoryValidationContextProvider(props){ setWalkIntervalErrors(null); case "profiles": setProfilesErrors(null); + break; + case "maxOidToProcess": + setMaxOidToProcessErrors(null); + break; default: break; }; @@ -73,6 +79,10 @@ export function MockInventoryValidationContextProvider(props){ setWalkIntervalErrors(errors); case "profiles": setProfilesErrors(errors); + break; + case "maxOidToProcess": + setMaxOidToProcessErrors(errors); + break; default: break; }; @@ -86,6 +96,7 @@ export function MockInventoryValidationContextProvider(props){ secretErrors: secretErrors, securityEngineErrors: securityEngineErrors, walkIntervalErrors: walkIntervalErrors, + maxOidToProcessErrors: maxOidToProcessErrors, profilesErrors: profilesErrors, resetAllErrors: resetAllErrors, resetErrors: resetErrors, diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 52f57b16..fd913c86 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -107,7 +107,7 @@ "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" -"@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.18.6": +"@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== @@ -121,6 +121,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-annotate-as-pure@^7.25.9": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz#c70fe3c6ecbdc3fd2dd1b0f498428b88b82ce47f" + integrity sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw== + dependencies: + "@babel/types" "^7.29.7" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz" @@ -258,7 +265,7 @@ dependencies: "@babel/types" "^7.23.0" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.28.6": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.28.6": version "7.28.6" resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz" integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw== @@ -266,7 +273,7 @@ "@babel/traverse" "^7.28.6" "@babel/types" "^7.28.6" -"@babel/helper-module-imports@^7.29.7": +"@babel/helper-module-imports@^7.25.9", "@babel/helper-module-imports@^7.29.7": version "7.29.7" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz#ef25048a518e828d7393fac5882ddd73921d7396" integrity sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g== @@ -681,6 +688,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.28.6" +"@babel/plugin-syntax-jsx@^7.25.9": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz#622c16f9ad63782fe6e83dadc7e40330744b7f1e" + integrity sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" @@ -1402,17 +1416,17 @@ dependencies: tslib "^2.4.0" -"@emotion/is-prop-valid@^0.8.8": - version "0.8.8" - resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz" - integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== +"@emotion/is-prop-valid@^1.1.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz#e9ad47adff0b5c94c72db3669ce46de33edf28c0" + integrity sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw== dependencies: - "@emotion/memoize" "0.7.4" + "@emotion/memoize" "^0.9.0" -"@emotion/memoize@0.7.4": - version "0.7.4" - resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz" - integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== +"@emotion/memoize@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.9.0.tgz#745969d649977776b43fc7648c556aaa462b4102" + integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ== "@emotion/stylis@^0.8.4": version "0.8.5" @@ -2686,90 +2700,50 @@ resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz" integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA== -"@react-spring/animated@~9.2.6-beta.0": - version "9.2.6" - resolved "https://registry.npmjs.org/@react-spring/animated/-/animated-9.2.6.tgz" - integrity sha512-xjL6nmixYNDvnpTs1FFMsMfSC0tURwPCU3b2jWNriYGLfwZ7c/TcyaEZA7yiNnmdFnuR3f3Z27AqIgaFC083Cw== - dependencies: - "@react-spring/shared" "~9.2.6-beta.0" - "@react-spring/types" "~9.2.6-beta.0" - -"@react-spring/core@~9.2.0", "@react-spring/core@~9.2.6-beta.0": - version "9.2.6" - resolved "https://registry.npmjs.org/@react-spring/core/-/core-9.2.6.tgz" - integrity sha512-uPHUxmu+w6mHJrfQTMtmGJ8iZEwiVxz9kH7dRyk69bkZJt9z+w0Oj3UF4J3VcECZsbm3HRhN2ogXSAaqGjwhQw== - dependencies: - "@react-spring/animated" "~9.2.6-beta.0" - "@react-spring/shared" "~9.2.6-beta.0" - "@react-spring/types" "~9.2.6-beta.0" - -"@react-spring/konva@~9.2.0": - version "9.2.6" - resolved "https://registry.npmjs.org/@react-spring/konva/-/konva-9.2.6.tgz" - integrity sha512-O1A9sKfNM+Srl1Gs3MtXNMUcGr6lJdtwlsSRQQsWLxJS/wD1DHWGHOXcVitk5da2GCqOdFs+pQPajkwdMHIYag== - dependencies: - "@react-spring/animated" "~9.2.6-beta.0" - "@react-spring/core" "~9.2.6-beta.0" - "@react-spring/shared" "~9.2.6-beta.0" - "@react-spring/types" "~9.2.6-beta.0" - -"@react-spring/native@~9.2.0": - version "9.2.6" - resolved "https://registry.npmjs.org/@react-spring/native/-/native-9.2.6.tgz" - integrity sha512-xOt03jK2eLo0lDfAyuMD+G1uCoKL5dsmX/wSJNuWTEWhDuJQFcSgZFHqmVn3bu/Fmd02iVe5/pAOWll5e90N1Q== - dependencies: - "@react-spring/animated" "~9.2.6-beta.0" - "@react-spring/core" "~9.2.6-beta.0" - "@react-spring/shared" "~9.2.6-beta.0" - "@react-spring/types" "~9.2.6-beta.0" - -"@react-spring/rafz@~9.2.6-beta.0": - version "9.2.6" - resolved "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.2.6.tgz" - integrity sha512-62SivLKEpo7EfHPkxO5J3g9Cr9LF6+1A1RVOMJhkcpEYtbdbmma/d63Xp8qpMPEpk7uuWxaTb6jjyxW33pW3sg== - -"@react-spring/shared@~9.2.6-beta.0": - version "9.2.6" - resolved "https://registry.npmjs.org/@react-spring/shared/-/shared-9.2.6.tgz" - integrity sha512-Qrm9fopKG/RxZ3Rw+4euhrpnB3uXSyiON9skHbcBfmkkzagpkUR66MX1YLrhHw0UchcZuSDnXs0Lonzt1rpWag== - dependencies: - "@react-spring/rafz" "~9.2.6-beta.0" - "@react-spring/types" "~9.2.6-beta.0" - -"@react-spring/three@~9.2.0": - version "9.2.6" - resolved "https://registry.npmjs.org/@react-spring/three/-/three-9.2.6.tgz" - integrity sha512-sV80HWT5wjKgl6i51UALlMVhsad93pijEgkXh6mAefKmuDo9DDe6UufAOn1uCTVxPZKO7w9O7xgvlPm9nkBXag== - dependencies: - "@react-spring/animated" "~9.2.6-beta.0" - "@react-spring/core" "~9.2.6-beta.0" - "@react-spring/shared" "~9.2.6-beta.0" - "@react-spring/types" "~9.2.6-beta.0" - -"@react-spring/types@~9.2.6-beta.0": - version "9.2.6" - resolved "https://registry.npmjs.org/@react-spring/types/-/types-9.2.6.tgz" - integrity sha512-l7mCw182DtDMnCI8CB9orgTAEoFZRtdQ6aS6YeEAqYcy3nQZPmPggIHH9DxyLw7n7vBPRSzu9gCvUMgXKpTflg== - -"@react-spring/web@~9.2.0": - version "9.2.6" - resolved "https://registry.npmjs.org/@react-spring/web/-/web-9.2.6.tgz" - integrity sha512-0HkRsEYR/CO3Uw46FWDWaF2wg2rUXcWE2R9AoZXthEYLUn5w9uE1mf2Jel7BxBxWGQ73owkqSQv+klA1Hb+ViQ== - dependencies: - "@react-spring/animated" "~9.2.6-beta.0" - "@react-spring/core" "~9.2.6-beta.0" - "@react-spring/shared" "~9.2.6-beta.0" - "@react-spring/types" "~9.2.6-beta.0" - -"@react-spring/zdog@~9.2.0": - version "9.2.6" - resolved "https://registry.npmjs.org/@react-spring/zdog/-/zdog-9.2.6.tgz" - integrity sha512-02Zfc1keAkA4l1zsNWKG1L/Y5wExaD4GkcYjVFwmpB7RHdxCGG4io+qBV/Idpxji0XZ8oH8d5gCjlwTMZqlrkQ== - dependencies: - "@react-spring/animated" "~9.2.6-beta.0" - "@react-spring/core" "~9.2.6-beta.0" - "@react-spring/shared" "~9.2.6-beta.0" - "@react-spring/types" "~9.2.6-beta.0" +"@react-spring/animated@~9.7.5": + version "9.7.5" + resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.7.5.tgz#eb0373aaf99b879736b380c2829312dae3b05f28" + integrity sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg== + dependencies: + "@react-spring/shared" "~9.7.5" + "@react-spring/types" "~9.7.5" + +"@react-spring/core@~9.7.5": + version "9.7.5" + resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.7.5.tgz#72159079f52c1c12813d78b52d4f17c0bf6411f7" + integrity sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w== + dependencies: + "@react-spring/animated" "~9.7.5" + "@react-spring/shared" "~9.7.5" + "@react-spring/types" "~9.7.5" + +"@react-spring/rafz@~9.7.5": + version "9.7.5" + resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.7.5.tgz#ee7959676e7b5d6a3813e8c17d5e50df98b95df9" + integrity sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw== + +"@react-spring/shared@~9.7.5": + version "9.7.5" + resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.7.5.tgz#6d513622df6ad750bbbd4dedb4ca0a653ec92073" + integrity sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw== + dependencies: + "@react-spring/rafz" "~9.7.5" + "@react-spring/types" "~9.7.5" + +"@react-spring/types@~9.7.5": + version "9.7.5" + resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.7.5.tgz#e5dd180f3ed985b44fd2cd2f32aa9203752ef3e8" + integrity sha512-HVj7LrZ4ReHWBimBvu2SKND3cDVUPWKLqRTmWe/fNY6o1owGOX0cAHbdPDTMelgBlVbrTKrre6lFkhqGZErK/g== + +"@react-spring/web@^9.7.5": + version "9.7.5" + resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.7.5.tgz#7d7782560b3a6fb9066b52824690da738605de80" + integrity sha512-lmvqGwpe+CSttsWNZVr+Dg62adtKhauGwLyGE/RRyZ8AAMLgb9x3NDMA5RMElXo+IMyTkPp7nxTB8ZQlmhb6JQ== + dependencies: + "@react-spring/animated" "~9.7.5" + "@react-spring/core" "~9.7.5" + "@react-spring/shared" "~9.7.5" + "@react-spring/types" "~9.7.5" "@rtsao/scc@^1.1.0": version "1.1.0" @@ -2862,36 +2836,36 @@ resolved "https://registry.npmjs.org/@splunk/eslint-config/-/eslint-config-4.0.0.tgz" integrity sha512-u2ZbzoLVJUtcBwX5RcAzET9cGuKjFrDOHLcA0FswmhPkrfSWVl7Ajd6ewGWCyG3tJxXSPvuYutD7SPeSBurIMg== -"@splunk/react-icons@^4.14.0": - version "4.14.0" - resolved "https://registry.npmjs.org/@splunk/react-icons/-/react-icons-4.14.0.tgz#f8b5d2b51b1b7768e5d4cc2b3f70f4f7411c809d" - integrity sha512-+HjGJJ0A9HlgYsAz3/vGo50exfdXvnkyQtd8tyit7iTnSVKeuPlk3qrzXWsLNyVEJ3EdAhiep1Grko9PBpbe7g== +"@splunk/react-icons@^5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@splunk/react-icons/-/react-icons-5.14.1.tgz#8505bcb9c6148c760061132800f3d2e48393cb41" + integrity sha512-7tNUuN21xZASwk/z0NO/B/1It93aCQkoQw9U/GRNoChMPrugoHIYeGebAVj9IsR0Dp3ACIN98lGVoKwwzRWHdw== dependencies: - "@splunk/ui-utils" "^1.8.0" - lodash "^4.17.14" + "@splunk/ui-utils" "^1.14.1" + lodash "^4.18.1" prop-types "^15.6.2" -"@splunk/react-ui@^4.47.1": - version "4.47.1" - resolved "https://registry.npmjs.org/@splunk/react-ui/-/react-ui-4.47.1.tgz#80e14ae943aa9a2cce3b80709ce578d5a69bb19a" - integrity sha512-3bRu2PjSDtn3ZQdB9YlFOquePHnqudlZDW3DLz7xCqmNdsOxIPRNnjeq5TesxogiwNOVv5VCqbhAUDJjv1l/jw== +"@splunk/react-ui@^5.0.0": + version "5.15.0" + resolved "https://registry.yarnpkg.com/@splunk/react-ui/-/react-ui-5.15.0.tgz#746f374ab77e8b24e849ddbf01b33e130a94489a" + integrity sha512-t9uebKobNkVTrUW6pQHbBE5yOOA3tEzdRjjHqnQWr5tDDhsszHsAEr9s3yEE5pbHgUsUO542hnij3Tg4w92y7Q== dependencies: "@dnd-kit/core" "^6.1.0" "@dnd-kit/modifiers" "^7.0.0" "@dnd-kit/sortable" "^8.0.0" "@dnd-kit/utilities" "^3.2.2" - "@splunk/react-icons" "^4.14.0" - "@splunk/themes" "^0.25.0" - "@splunk/ui-utils" "^1.8.0" - commonmark "^0.30.0" - commonmark-react-renderer "^4.3.2" - decimal.js-light "^2.2.3" - lodash "^4.17.14" + "@react-spring/web" "^9.7.5" + "@splunk/react-icons" "^5.14.1" + "@splunk/themes" "^1.11.0" + "@splunk/ui-utils" "^1.14.1" + decimal.js-light "^2.5.1" + intl-tel-input "^25.3.2" + lodash "^4.18.1" moment "^2.29.4" - prop-types "^15.6.2" - react-resize-detector "^3.2.1" - react-spring "9.2.4" - tinycolor2 "^1.4.1" + prop-types "^15.8.0" + react-markdown "^8.0.7" + remark-gfm "^1.0.0" + use-sync-external-store "^1.6.0" use-typed-event-listener "^3.0.0" "@splunk/splunk-utils@^2.3.4": @@ -2925,14 +2899,23 @@ lodash "^4.17.14" tinycolor2 "^1.4.1" -"@splunk/themes@^0.25.0": - version "0.25.0" - resolved "https://registry.npmjs.org/@splunk/themes/-/themes-0.25.0.tgz#96c2952a953c1d6aaa4c61dc73b9123a6b66a966" - integrity sha512-NfDOb5ZgIJbXl57fxkBR1b5lIUh7IqyXvEceUTHF7sXi2DSVCisqbR9rc8yma3NC7JLF+m7Sw6xypyLVRhSF+g== +"@splunk/themes@^1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@splunk/themes/-/themes-1.11.0.tgz#cc0dc218c893d33d07be3144d3af2b8c3ed7aca5" + integrity sha512-wIzLxq5c38sj67OmiGYB+qiVJIAoqIdPaMrVAaklQQsJF5/2qtWlRLh/1JwUVoR/YPd1tRHh6GIl3RPljSr4PA== dependencies: + "@splunk/ui-utils" "^1.14.1" color-blend "^2.0.9" - lodash "^4.17.14" - tinycolor2 "^1.4.1" + colorjs.io "^0.6.1" + lodash "^4.18.1" + +"@splunk/ui-utils@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@splunk/ui-utils/-/ui-utils-1.14.1.tgz#0862110b04155e1e2495ecab646d62e6cd2de3f9" + integrity sha512-sr67renHKlIPkTtNAJ1Eg3dP2+/4kQU4oK+Csuwm0aakMWtEqccODij1gLtdYXJihkNdtxfTCMqNcMwe/NN2cA== + dependencies: + keycode "^2.1.9" + lodash "^4.18.1" "@splunk/ui-utils@^1.6.0": version "1.6.0" @@ -2942,14 +2925,6 @@ keycode "^2.1.9" lodash "^4.17.21" -"@splunk/ui-utils@^1.8.0": - version "1.14.1" - resolved "https://registry.npmjs.org/@splunk/ui-utils/-/ui-utils-1.14.1.tgz#0862110b04155e1e2495ecab646d62e6cd2de3f9" - integrity sha512-sr67renHKlIPkTtNAJ1Eg3dP2+/4kQU4oK+Csuwm0aakMWtEqccODij1gLtdYXJihkNdtxfTCMqNcMwe/NN2cA== - dependencies: - keycode "^2.1.9" - lodash "^4.18.1" - "@splunk/webpack-configs@^5.0.0": version "5.0.0" resolved "https://registry.npmjs.org/@splunk/webpack-configs/-/webpack-configs-5.0.0.tgz" @@ -3106,6 +3081,13 @@ dependencies: "@types/node" "*" +"@types/debug@^4.0.0": + version "4.1.13" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.13.tgz#22d1cc9d542d3593caea764f974306ab36286ee7" + integrity sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw== + dependencies: + "@types/ms" "*" + "@types/estree@^1.0.8": version "1.0.8" resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" @@ -3150,6 +3132,13 @@ "@types/express-serve-static-core" "^5.0.0" "@types/serve-static" "^2" +"@types/hast@^2.0.0": + version "2.3.10" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.10.tgz#5c9d9e0b304bbb8879b857225c5ebab2d81d7643" + integrity sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw== + dependencies: + "@types/unist" "^2" + "@types/hoist-non-react-statics@*": version "3.3.1" resolved "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz" @@ -3211,6 +3200,13 @@ resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz" integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== +"@types/mdast@^3.0.0": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.15.tgz#49c524a263f30ffa28b71ae282f813ed000ab9f5" + integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== + dependencies: + "@types/unist" "^2" + "@types/mime@^1": version "1.3.5" resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz" @@ -3221,6 +3217,11 @@ resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== +"@types/ms@*": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" + integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== + "@types/node@*": version "20.11.19" resolved "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz" @@ -3238,6 +3239,11 @@ resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== +"@types/prop-types@^15.0.0": + version "15.7.15" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.15.tgz#e6e5a86d602beaca71ce5163fadf5f95d70931c7" + integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw== + "@types/qs@*": version "6.15.0" resolved "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz" @@ -3334,6 +3340,11 @@ resolved "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz" integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== +"@types/unist@^2", "@types/unist@^2.0.0": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" + integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== + "@types/ws@^8.18.1": version "8.18.1" resolved "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" @@ -4138,21 +4149,15 @@ babel-plugin-polyfill-regenerator@^0.3.1: dependencies: "@babel/helper-define-polyfill-provider" "^0.3.1" -"babel-plugin-styled-components@>= 1": - version "2.0.7" - resolved "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz" - integrity sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA== +"babel-plugin-styled-components@>= 1.12.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.3.0.tgz#5cd27eded23af609ff57048250e3f59d68e3aa31" + integrity sha512-nP/y6PbBqS/qtKROnJCgpGo8hYUzlBAVXN1QAjSBANL6vZiQXPQN7FYW/nUwoxY7nZhBEGm9T5tjL9gbzwulDw== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-module-imports" "^7.16.0" - babel-plugin-syntax-jsx "^6.18.0" - lodash "^4.17.11" - picomatch "^2.3.0" - -babel-plugin-syntax-jsx@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz" - integrity sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw== + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-module-imports" "^7.25.9" + "@babel/plugin-syntax-jsx" "^7.25.9" + picomatch "^4.0.2" babel-preset-current-node-syntax@^1.2.0: version "1.2.0" @@ -4183,6 +4188,11 @@ babel-preset-jest@30.4.0: babel-plugin-jest-hoist "30.4.0" babel-preset-current-node-syntax "^1.2.0" +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + balanced-match@4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz" @@ -4478,6 +4488,11 @@ caniuse-lite@^1.0.30001782: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001791.tgz" integrity sha512-yk0l/YSrOnFZk3UROpDLQD9+kC1l4meK/wed583AXrzoarMGJcbRi2Q4RaUYbKxYAsZ8sWmaSa/DsLmdBeI1vQ== +ccount@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" + integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== + chai@^6.2.2: version "6.2.2" resolved "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz#ae41b52c9aca87734505362717f3255facda360e" @@ -4513,6 +4528,26 @@ char-regex@^1.0.2: resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + +character-entities@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +character-reference-invalid@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + chardet@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz" @@ -4700,6 +4735,11 @@ colord@^2.9.3: resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== +colorjs.io@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/colorjs.io/-/colorjs.io-0.6.1.tgz#5e9ca77c9cdd070ae009e008f7e3eb47985c1855" + integrity sha512-8lyR2wHzuIykCpqHKgluGsqQi5iDm3/a2IgP2GBZrasn2sBRkE4NOGsglZxWLs/jZQoNkmA/KM/8NV16rLUdBg== + columnify@1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz" @@ -4715,6 +4755,11 @@ combined-stream@1.0.8, combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + commander@^14.0.3: version "14.0.3" resolved "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" @@ -4735,26 +4780,6 @@ common-ancestor-path@^1.0.1: resolved "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz" integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== -commonmark-react-renderer@^4.3.2: - version "4.3.5" - resolved "https://registry.npmjs.org/commonmark-react-renderer/-/commonmark-react-renderer-4.3.5.tgz" - integrity sha512-UwUgplz8kFSMCe9+Dg/BcV75lc7R/V6mvMYJq2p29i5aaIBd0252k9HeSGa2VtEPHfg2/trS9qC7iAxnO7r6ng== - dependencies: - lodash.assign "^4.2.0" - lodash.isplainobject "^4.0.6" - pascalcase "^0.1.1" - xss-filters "^1.2.6" - -commonmark@^0.30.0: - version "0.30.0" - resolved "https://registry.npmjs.org/commonmark/-/commonmark-0.30.0.tgz" - integrity sha512-j1yoUo4gxPND1JWV9xj5ELih0yMv1iCWDG6eEQIPLSWLxzCXiFoyS7kvB+WwU+tZMf4snwJMMtaubV0laFpiBA== - dependencies: - entities "~2.0" - mdurl "~1.0.1" - minimist ">=1.2.2" - string.prototype.repeat "^0.2.0" - compare-func@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz" @@ -5140,7 +5165,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.4.3, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@^4.4.0, debug@^4.4.3: +debug@4, debug@4.4.3, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@^4.4.0, debug@^4.4.3: version "4.4.3" resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== @@ -5167,9 +5192,9 @@ decamelize@^1.1.0: resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -decimal.js-light@^2.2.3: +decimal.js-light@^2.5.1: version "2.5.1" - resolved "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz" + resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg== decimal.js@^10.5.0: @@ -5177,6 +5202,13 @@ decimal.js@^10.5.0: resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz" integrity sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg== +decode-named-character-reference@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz#3e40603760874c2e5867691b599d73a7da25b53f" + integrity sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q== + dependencies: + character-entities "^2.0.0" + dedent@1.5.3: version "1.5.3" resolved "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz" @@ -5302,7 +5334,7 @@ dequal@1.0.0: resolved "https://registry.npmjs.org/dequal/-/dequal-1.0.0.tgz" integrity sha512-/Nd1EQbQbI9UbSHrMiKZjFLrXSnU328iQdZKPQf78XQI6C+gutkFUeoHpG5J08Ioa6HeRbRNFpSIclh1xyG0mw== -dequal@^2.0.3: +dequal@^2.0.0, dequal@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== @@ -5312,6 +5344,11 @@ detect-newline@^3.1.0: resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== +diff@^5.0.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.2.tgz#0a4742797281d09cfa699b79ea32d27723623bad" + integrity sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A== + discontinuous-range@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz" @@ -5544,11 +5581,6 @@ entities@^6.0.0: resolved "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz" integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== -entities@~2.0: - version "2.0.3" - resolved "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz" - integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== - env-paths@^2.2.0, env-paths@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" @@ -6289,6 +6321,11 @@ express@^5.2.1: type-is "^2.0.1" vary "^1.1.2" +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" @@ -6974,6 +7011,11 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" +hast-util-whitespace@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557" + integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng== + he@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" @@ -7339,6 +7381,11 @@ init-package-json@8.2.2: validate-npm-package-license "^3.0.4" validate-npm-package-name "^6.0.2" +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inquirer@12.9.6: version "12.9.6" resolved "https://registry.npmjs.org/inquirer/-/inquirer-12.9.6.tgz" @@ -7389,6 +7436,11 @@ interpret@^3.1.1: resolved "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== +intl-tel-input@^25.3.2: + version "25.15.1" + resolved "https://registry.yarnpkg.com/intl-tel-input/-/intl-tel-input-25.15.1.tgz#52d8275c4c6e51bedd77d42ea67dbee8a416fed6" + integrity sha512-v3E/Cr3vjfcw43LxsEYRJ8kDHk96ByB5d0asU9zTYgDuLivLbYymOwcISaoZibqZVB1tndzfYWxtSrmFVumFSg== + ip-address@^10.1.1, ip-address@^10.3.1: version "10.5.0" resolved "https://registry.npmjs.org/ip-address/-/ip-address-10.5.0.tgz#fcd6d7dfe9e68416b7cb71afe9bc960b3e38c13b" @@ -7404,6 +7456,19 @@ ipaddr.js@^2.3.0: resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.5.0.tgz#7d4b6c39f9392fb61cf807de6e425e22c10e061f" integrity sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w== +is-alphabetical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-arguments@^1.1.1: version "1.2.0" resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz#ad58c6aecf563b78ef2bf04df540da8f5d7d8e1b" @@ -7475,6 +7540,11 @@ is-boolean-object@^1.2.1: call-bound "^1.0.3" has-tostringtag "^1.0.2" +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-callable@^1.1.3, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" @@ -7537,6 +7607,11 @@ is-date-object@^1.0.5, is-date-object@^1.1.0: call-bound "^1.0.2" has-tostringtag "^1.0.2" +is-decimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + is-docker@2.2.1, is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" @@ -7594,6 +7669,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: dependencies: is-extglob "^2.1.1" +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + is-in-ssh@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz#8eb73c1cabba77748d389588eeea132a63057622" @@ -7666,7 +7746,7 @@ is-plain-obj@^1.1.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== -is-plain-obj@^4.1.0: +is-plain-obj@^4.0.0, is-plain-obj@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== @@ -8527,6 +8607,11 @@ kind-of@^6.0.2, kind-of@^6.0.3: resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kleur@^4.0.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + language-subtag-registry@^0.3.20: version "0.3.23" resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz#23529e04d9e3b74679d70142df3fd2eb6ec572e7" @@ -8720,16 +8805,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash-es@^4.17.11: - version "4.18.1" - resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz" - integrity sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A== - -lodash.assign@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz" - integrity sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw== - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" @@ -8755,11 +8830,6 @@ lodash.ismatch@^4.4.0: resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz" integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" - integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== - lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" @@ -8770,7 +8840,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.18.1: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.18.1: version "4.18.1" resolved "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz" integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q== @@ -8783,6 +8853,11 @@ log-symbols@4.1.0, log-symbols@^4.0.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" +longest-streak@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" + integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== + loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" @@ -8885,6 +8960,13 @@ map-obj@^4.0.0: resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== +markdown-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" + integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== + dependencies: + repeat-string "^1.0.0" + math-intrinsics@1.1.0, math-intrinsics@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" @@ -8895,16 +8977,127 @@ mathml-tag-names@^4.0.0: resolved "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-4.0.0.tgz#295494906312f849a9236e6cd9accc902814d477" integrity sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ== +mdast-util-definitions@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7" + integrity sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + +mdast-util-find-and-replace@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz#b7db1e873f96f66588c321f1363069abf607d1b5" + integrity sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA== + dependencies: + escape-string-regexp "^4.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + +mdast-util-from-markdown@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" + integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-gfm-autolink-literal@^0.1.0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz#9c4ff399c5ddd2ece40bd3b13e5447d84e385fb7" + integrity sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A== + dependencies: + ccount "^1.0.0" + mdast-util-find-and-replace "^1.1.0" + micromark "^2.11.3" + +mdast-util-gfm-strikethrough@^0.2.0: + version "0.2.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz#45eea337b7fff0755a291844fbea79996c322890" + integrity sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA== + dependencies: + mdast-util-to-markdown "^0.6.0" + +mdast-util-gfm-table@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz#af05aeadc8e5ee004eeddfb324b2ad8c029b6ecf" + integrity sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ== + dependencies: + markdown-table "^2.0.0" + mdast-util-to-markdown "~0.6.0" + +mdast-util-gfm-task-list-item@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz#70c885e6b9f543ddd7e6b41f9703ee55b084af10" + integrity sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A== + dependencies: + mdast-util-to-markdown "~0.6.0" + +mdast-util-gfm@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz#8ecddafe57d266540f6881f5c57ff19725bd351c" + integrity sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ== + dependencies: + mdast-util-gfm-autolink-literal "^0.1.0" + mdast-util-gfm-strikethrough "^0.2.0" + mdast-util-gfm-table "^0.1.0" + mdast-util-gfm-task-list-item "^0.1.0" + mdast-util-to-markdown "^0.6.1" + +mdast-util-to-hast@^12.1.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49" + integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-definitions "^5.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-markdown@~0.6.0: + version "0.6.5" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" + integrity sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ== + dependencies: + "@types/unist" "^2.0.0" + longest-streak "^2.0.0" + mdast-util-to-string "^2.0.0" + parse-entities "^2.0.0" + repeat-string "^1.0.0" + zwitch "^1.0.0" + +mdast-util-to-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" + integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== + +mdast-util-to-string@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" + integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== + dependencies: + "@types/mdast" "^3.0.0" + mdn-data@2.27.1: version "2.27.1" resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz#e37b9c50880b75366c4d40ac63d9bbcacdb61f0e" integrity sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ== -mdurl@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz" - integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== - media-typer@^1.1.0: version "1.1.1" resolved "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz#6f035400dfe3ab9d5607bc77546ce30cc2f9c6b8" @@ -8972,6 +9165,253 @@ merge2@^1.3.0: resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +micromark-core-commonmark@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" + integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark-extension-gfm-autolink-literal@~0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz#53866c1f0c7ef940ae7ca1f72c6faef8fed9f204" + integrity sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw== + dependencies: + micromark "~2.11.3" + +micromark-extension-gfm-strikethrough@~0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz#96cb83356ff87bf31670eefb7ad7bba73e6514d1" + integrity sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw== + dependencies: + micromark "~2.11.0" + +micromark-extension-gfm-table@~0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz#4d49f1ce0ca84996c853880b9446698947f1802b" + integrity sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA== + dependencies: + micromark "~2.11.0" + +micromark-extension-gfm-tagfilter@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz#d9f26a65adee984c9ccdd7e182220493562841ad" + integrity sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q== + +micromark-extension-gfm-task-list-item@~0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz#d90c755f2533ed55a718129cee11257f136283b8" + integrity sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ== + dependencies: + micromark "~2.11.0" + +micromark-extension-gfm@^0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz#36d1a4c089ca8bdfd978c9bd2bf1a0cb24e2acfe" + integrity sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A== + dependencies: + micromark "~2.11.0" + micromark-extension-gfm-autolink-literal "~0.5.0" + micromark-extension-gfm-strikethrough "~0.6.5" + micromark-extension-gfm-table "~0.4.0" + micromark-extension-gfm-tagfilter "~0.3.0" + micromark-extension-gfm-task-list-item "~0.3.0" + +micromark-factory-destination@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" + integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" + integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" + integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-whitespace@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" + integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" + integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" + integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" + integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" + integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" + integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" + integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== + +micromark-util-html-tag-name@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" + integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== + +micromark-util-normalize-identifier@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" + integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" + integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" + integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" + integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== + +micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: + version "2.11.4" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" + integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== + dependencies: + debug "^4.0.0" + parse-entities "^2.0.0" + +micromark@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" + integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + micromatch@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" @@ -9070,7 +9510,7 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@1.2.8, minimist@>=1.2.2, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: +minimist@1.2.8, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -9188,6 +9628,11 @@ moo@^0.5.0: resolved "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz" integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" @@ -9980,6 +10425,18 @@ parse-conflict-json@^4.0.0: just-diff "^6.0.0" just-diff-apply "^5.2.0" +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + parse-json@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" @@ -10040,11 +10497,6 @@ pascal-case@^3.1.2: no-case "^3.0.4" tslib "^2.0.3" -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" @@ -10108,7 +10560,7 @@ picocolors@1.1.1, picocolors@^1.1.1: resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.0.4, picomatch@^2.3.0, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.3.1: version "2.3.2" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz" integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA== @@ -10366,7 +10818,7 @@ prop-types-exact@^1.2.0: object.assign "^4.1.0" reflect.ownkeys "^0.2.0" -prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.0.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.0, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -10375,6 +10827,11 @@ prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" +property-information@^6.0.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" + integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== + protocols@^2.0.0, protocols@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/protocols/-/protocols-2.0.2.tgz" @@ -10427,7 +10884,7 @@ qified@^0.10.1: dependencies: hookified "^2.1.1" -qs@6.15.3, qs@^6.14.0, qs@^6.15.2: +qs@6.15.3, qs@^6.14.0, qs@^6.15.2, qs@^6.4.0: version "6.15.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.15.3.tgz#76852132a58ed5c7c0ef67e4441b9bb5d6061b3b" integrity sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A== @@ -10435,13 +10892,6 @@ qs@6.15.3, qs@^6.14.0, qs@^6.15.2: es-define-property "^1.0.1" side-channel "^1.1.1" -qs@^6.4.0: - version "6.14.2" - resolved "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz" - integrity sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q== - dependencies: - side-channel "^1.1.0" - querystring-es3@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" @@ -10535,32 +10985,31 @@ react-is@^17.0.1: resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -react-is@^18.3.1: +react-is@^18.0.0, react-is@^18.3.1: 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== -react-resize-detector@^3.2.1: - version "3.4.0" - resolved "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-3.4.0.tgz" - integrity sha512-T96I8Iqa1hGWyooeFA2Sl6FdPoMhXWINfEKg2/EJLxhP37+/94VNuyuyz9CRqpmApD83IWRR+lbB3r0ADMoKJg== - dependencies: - lodash "^4.17.11" - lodash-es "^4.17.11" - prop-types "^15.6.2" - resize-observer-polyfill "^1.5.1" - -react-spring@9.2.4: - version "9.2.4" - resolved "https://registry.npmjs.org/react-spring/-/react-spring-9.2.4.tgz" - integrity sha512-bMjbyTW0ZGd+/h9cjtohLqCwOGqX2OuaTvalOVfLCGmhzEg/u3GgopI3LAm4UD2Br3MNdVdGgNVoESg4MGqKFQ== - dependencies: - "@react-spring/core" "~9.2.0" - "@react-spring/konva" "~9.2.0" - "@react-spring/native" "~9.2.0" - "@react-spring/three" "~9.2.0" - "@react-spring/web" "~9.2.0" - "@react-spring/zdog" "~9.2.0" +react-markdown@^8.0.7: + version "8.0.7" + resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.7.tgz#c8dbd1b9ba5f1c5e7e5f2a44de465a3caafdf89b" + integrity sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ== + dependencies: + "@types/hast" "^2.0.0" + "@types/prop-types" "^15.0.0" + "@types/unist" "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-whitespace "^2.0.0" + prop-types "^15.0.0" + property-information "^6.0.0" + react-is "^18.0.0" + remark-parse "^10.0.0" + remark-rehype "^10.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.4.0" + unified "^10.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" react-test-renderer@^16.0.0-0, react-test-renderer@^16.12.0: version "16.14.0" @@ -10793,6 +11242,33 @@ relateurl@^0.2.7: resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== +remark-gfm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-1.0.0.tgz#9213643001be3f277da6256464d56fd28c3b3c0d" + integrity sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA== + dependencies: + mdast-util-gfm "^0.1.0" + micromark-extension-gfm "^0.3.0" + +remark-parse@^10.0.0: + version "10.0.2" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262" + integrity sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" + +remark-rehype@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" + integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-hast "^12.1.0" + unified "^10.0.0" + renderkid@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" @@ -10804,6 +11280,11 @@ renderkid@^3.0.0: lodash "^4.17.21" strip-ansi "^6.0.1" +repeat-string@^1.0.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + require-directory@2.1.1, require-directory@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" @@ -10814,11 +11295,6 @@ require-from-string@^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== -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" @@ -10940,6 +11416,13 @@ rxjs@^7.8.2: dependencies: tslib "^2.1.0" +sade@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + safe-array-concat@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz" @@ -11341,6 +11824,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" @@ -11503,11 +11991,6 @@ string.prototype.matchall@^4.0.12: set-function-name "^2.0.2" side-channel "^1.1.0" -string.prototype.repeat@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz" - integrity sha512-1BH+X+1hSthZFW+X+JaUkjkkUPwIlLEMJBLANN3hOob3RhEk5snLWNECDnYbgn/m5c5JV7Ersu1Yubaf+05cIA== - string.prototype.repeat@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a" @@ -11667,17 +12150,24 @@ style-loader@^4.0.0: resolved "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz#0ea96e468f43c69600011e0589cb05c44f3b17a5" integrity sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA== -styled-components@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/styled-components/-/styled-components-5.1.1.tgz" - integrity sha512-1ps8ZAYu2Husx+Vz8D+MvXwEwvMwFv+hqqUwhNlDN5ybg6A+3xyW1ECrAgywhvXapNfXiz79jJyU0x22z0FFTg== +style-to-object@^0.4.0: + version "0.4.4" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.4.tgz#266e3dfd56391a7eefb7770423612d043c3f33ec" + integrity sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg== + dependencies: + inline-style-parser "0.1.1" + +styled-components@5.3.11: + version "5.3.11" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.11.tgz#9fda7bf1108e39bf3f3e612fcc18170dedcd57a8" + integrity sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/traverse" "^7.4.5" - "@emotion/is-prop-valid" "^0.8.8" + "@emotion/is-prop-valid" "^1.1.0" "@emotion/stylis" "^0.8.4" "@emotion/unitless" "^0.7.4" - babel-plugin-styled-components ">= 1" + babel-plugin-styled-components ">= 1.12.0" css-to-react-native "^3.0.0" hoist-non-react-statics "^3.0.0" shallowequal "^1.1.0" @@ -11993,11 +12483,21 @@ treeverse@^3.0.0: resolved "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz" integrity sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ== +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + trim-newlines@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== +trough@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" + integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== + tsconfig-paths@4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz" @@ -12251,6 +12751,75 @@ unicorn-magic@^0.4.0: resolved "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz#78c6a090fd6d07abd2468b83b385603e00dfdb24" integrity sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw== +unified@^10.0.0: + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + +unist-util-generated@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" + integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== + +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + +unist-util-is@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" + integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-position@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" + integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-stringify-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit-parents@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" + integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + universal-user-agent@^6.0.0: version "6.0.1" resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz" @@ -12329,6 +12898,11 @@ use-deep-compare@^1.1.0: dependencies: dequal "1.0.0" +use-sync-external-store@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz#b174bfa65cb2b526732d9f2ac0a408027876f32d" + integrity sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w== + use-typed-event-listener@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/use-typed-event-listener/-/use-typed-event-listener-3.0.0.tgz" @@ -12352,6 +12926,16 @@ uuid@^14.0.0: resolved "https://registry.npmjs.org/uuid/-/uuid-14.0.2.tgz#d5ae03e4db0881c87271f8b0b9bd7312d02c799a" integrity sha512-xZe/16rV4aa+HGSOCiY2YeLT1OybRLrrkL/Rqaq7p7GMVXjFh+6wN4oMYgjFmnSnhY8t6Xpdl2l9qmnHYuMHwQ== +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" @@ -12384,6 +12968,24 @@ vary@^1, vary@^1.1.2, vary@~1.1.2: resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== +vfile-message@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" + integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + +vfile@^5.0.0: + version "5.3.7" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" + integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + w3c-xmlserializer@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz" @@ -12756,12 +13358,7 @@ write-file-atomic@^7.0.1: dependencies: signal-exit "^4.0.1" -ws@^8.18.0: - version "8.20.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz" - integrity sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA== - -ws@^8.20.0: +ws@^8.18.0, ws@^8.20.0, ws@^8.21.0: version "8.21.3" resolved "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== @@ -12789,11 +13386,6 @@ xmlchars@^2.2.0: resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xss-filters@^1.2.6: - version "1.2.7" - resolved "https://registry.npmjs.org/xss-filters/-/xss-filters-1.2.7.tgz" - integrity sha512-KzcmYT/f+YzcYrYRqw6mXxd25BEZCxBQnf+uXTopQDIhrmiaLwO+f+yLsIvvNlPhYvgff8g3igqrBxYh9k8NbQ== - xtend@~4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" @@ -12869,3 +13461,8 @@ yoctocolors-cjs@^2.1.3: version "2.1.3" resolved "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz" integrity sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw== + +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==