From f49e103f174fc87d1c19c8d5b4916347482fb39d Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Thu, 3 Aug 2023 09:57:17 +0200 Subject: [PATCH 001/182] Onboarding strings: fix capitalization (#17467) --- src/translations/en.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/translations/en.json b/src/translations/en.json index e330d356bd..9768e23487 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -1879,7 +1879,7 @@ "description": "Name, time zone and locale settings", "section": { "core": { - "header": "General Configuration", + "header": "General configuration", "introduction": "Manage your location, network and analytics.", "core_config": { "edit_requires_storage": "Editor disabled because config stored in configuration.yaml.", @@ -1888,10 +1888,10 @@ "longitude": "Longitude", "elevation": "Elevation", "elevation_meters": "meters", - "time_zone": "Time Zone", + "time_zone": "Time zone", "language": "Language", "country": "Country", - "unit_system": "Unit System", + "unit_system": "Unit system", "unit_system_us_customary": "US customary", "unit_system_metric": "Metric", "us_customary_example": "Fahrenheit, pounds", @@ -3605,7 +3605,7 @@ "add_user": { "caption": "Add user", "password": "Password", - "password_confirm": "Confirm Password", + "password_confirm": "Confirm password", "password_not_match": "Passwords don't match", "local_only": "Local only", "create": "Create" @@ -3613,7 +3613,7 @@ "change_password": { "caption": "Change password", "new_password": "New Password", - "password_confirm": "Confirm Password", + "password_confirm": "Confirm password", "change": "Change", "password_no_match": "Passwords don't match", "password_changed": "The password has been changed successfully." @@ -5602,9 +5602,9 @@ "name": "Name", "username": "Username", "password": "Password", - "password_confirm": "Confirm Password" + "password_confirm": "Confirm password" }, - "create_account": "Create Account", + "create_account": "Create account", "error": { "password_not_match": "Passwords don't match" } @@ -5625,7 +5625,7 @@ "finish": "Next" }, "integration": { - "intro": "Devices and services are represented in Home Assistant as integrations. You can set them up now, or do it later from the configuration screen.", + "intro": "Devices and services are represented in Home Assistant as integrations. You can set them up now, or do it later from the settings.", "more_integrations": "More", "finish": "Finish" }, From a81050182ef99b4994128c8ad03f60b9bfe921e6 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Thu, 3 Aug 2023 00:58:06 -0700 Subject: [PATCH 002/182] Fix device config dialog when disabled (#17464) --- src/panels/config/devices/ha-config-device-page.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/panels/config/devices/ha-config-device-page.ts b/src/panels/config/devices/ha-config-device-page.ts index 3c3f513507..2719a70c25 100644 --- a/src/panels/config/devices/ha-config-device-page.ts +++ b/src/panels/config/devices/ha-config-device-page.ts @@ -1295,6 +1295,11 @@ export class HaConfigDevicePage extends LitElement { } } } + } else if ( + updates.disabled_by !== null && + updates.disabled_by !== "user" + ) { + delete updates.disabled_by; } try { await updateDeviceRegistryEntry(this.hass, this.deviceId, updates); From a8debb8daa6d462aa44ca535391260c8dd8d0972 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Thu, 3 Aug 2023 11:32:01 +0200 Subject: [PATCH 003/182] Strings: apply sentence-style capitalization (#17469) --- src/translations/en.json | 768 +++++++++++++++++++-------------------- 1 file changed, 384 insertions(+), 384 deletions(-) diff --git a/src/translations/en.json b/src/translations/en.json index 9768e23487..f94a41952b 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -8,8 +8,8 @@ "logbook": "Logbook", "history": "History", "mailbox": "Mailbox", - "shopping_list": "Shopping List", - "developer_tools": "Developer Tools", + "shopping_list": "Shopping list", + "developer_tools": "Developer tools", "media_browser": "Media", "profile": "Profile" }, @@ -89,7 +89,7 @@ }, "automation": { "last_triggered": "Last triggered", - "trigger": "Run Actions" + "trigger": "Run actions" }, "button": { "press": "Press" @@ -123,7 +123,7 @@ }, "fan": { "speed": "Speed", - "preset_mode": "Preset Mode", + "preset_mode": "Preset mode", "oscillate": "Oscillate", "direction": "Direction", "forward": "Forward", @@ -173,7 +173,7 @@ "repeat_set": "Repeat mode", "shuffle_set": "Shuffle", "text_to_speak": "Text to speak", - "nothing_playing": "Nothing Playing" + "nothing_playing": "Nothing playing" }, "persistent_notification": { "dismiss": "Dismiss" @@ -308,7 +308,7 @@ "browse_not_supported": "Media player does not support browsing media.", "pick_media": "Pick media", "browse_media": "Browse media", - "manual": "Manually enter Media ID", + "manual": "Manually enter media ID", "media_content_id": "Media content ID", "media_content_type": "Media content type" } @@ -429,7 +429,7 @@ "remove_user": "Remove user" }, "blueprint-picker": { - "select_blueprint": "Select a Blueprint" + "select_blueprint": "Select a blueprint" }, "device-picker": { "clear": "Clear", @@ -493,7 +493,7 @@ }, "picture-upload": { "label": "Picture", - "unsupported_format": "Unsupported format, please choose a JPEG, PNG or GIF image." + "unsupported_format": "Unsupported format, please choose a JPEG, PNG, or GIF image." }, "date-range-picker": { "start_date": "Start date", @@ -578,18 +578,18 @@ }, "pick": "Pick", "play": "Play", - "play-media": "Play Media", - "pick-media": "Pick Media", + "play-media": "Play media", + "pick-media": "Pick media", "no_items": "No items", "not_shown": "{count} incompatible {count, plural,\n one {item}\n other {items}\n} hidden", - "choose_player": "Choose Player", + "choose_player": "Choose player", "media-player-browser": "Media", - "web-browser": "Web Browser", - "media_player": "Media Player", + "web-browser": "Web browser", + "media_player": "Media player", "audio_not_supported": "Your browser does not support the audio element.", "video_not_supported": "Your browser does not support the video element.", "media_not_supported": "The Browser Media Player does not support this type of media", - "media_browsing_error": "Media Browsing Error", + "media_browsing_error": "Media browsing error", "learn_adding_local_media": "Learn more about adding media in the {documentation}.", "local_media_files": "Place your video, audio and image files in the media directory to be able to browse and play them in the browser or on supported media players.", "documentation": "documentation", @@ -597,13 +597,13 @@ "no_media_folder": "It looks like you have not yet created a media directory.", "setup_local_help": "Check the {documentation} on how to setup local media.", "file_management": { - "title": "Media Management", + "title": "Media management", "manage": "Manage", "no_items": "No media items found", "folders_not_supported": "Folders cannot be managed via the UI.", "highlight_button": "Click here to upload your first media", "upload_failed": "Upload failed: {reason}", - "add_media": "Add Media", + "add_media": "Add media", "uploading": "Uploading {count} {count, plural,\n one {file}\n other {files}\n}", "confirm_delete": "Do you want to delete {count} {count, plural,\n one {file}\n other {files}\n}?", "delete": "Delete {count}", @@ -617,7 +617,7 @@ "artist": "Artist", "channel": "Channel", "composer": "Composer", - "contributing_artist": "Contributing Artist", + "contributing_artist": "Contributing artist", "directory": "Library", "episode": "Episode", "game": "Game", @@ -637,31 +637,31 @@ }, "calendar": { "label": "Calendar", - "my_calendars": "My Calendars", + "my_calendars": "My calendars", "today": "Today", "event_retrieval_error": "Could not retrieve events for calendars:", "event": { - "add": "Add Event", - "delete": "Delete Event", - "edit": "Edit Event", - "save": "Save Event", - "all_day": "All Day", + "add": "Add event", + "delete": "Delete event", + "edit": "Edit event", + "save": "Save event", + "all_day": "All day", "start": "Start", "end": "End", "invalid_duration": "The duration of the event is not valid. Please check start and end date.", "not_all_required_fields": "Not all required fields are filled in", "end_auto_adjusted": "Event end was adjusted to prevent negative duration", "confirm_delete": { - "delete": "Delete Event", - "delete_this": "Delete Only This Event", - "delete_future": "Delete All Future Events", + "delete": "Delete event", + "delete_this": "Delete only this event", + "delete_future": "Delete all future events", "prompt": "Do you want to delete this event?", "recurring_prompt": "Do you want to delete only this event, or this and all future occurrences of the event?" }, "confirm_update": { - "update": "Update Event", - "update_this": "Update Only This Event", - "update_future": "Update All Future Events", + "update": "Update event", + "update_this": "Update only this event", + "update_future": "Update all future events", "recurring_prompt": "Do you want to update only this event, or this and all future occurrences of the event?" }, "repeat": { @@ -681,7 +681,7 @@ "daily": "days" }, "monthly": { - "label": "Repeat Monthly" + "label": "Repeat monthly" }, "weekly": { "weekday": { @@ -701,10 +701,10 @@ "on": "On" }, "end_on": { - "label": "End On" + "label": "End on" }, "end_after": { - "label": "End After", + "label": "End after", "ocurrences": "ocurrences" } }, @@ -833,8 +833,8 @@ "addon_info": "{addon} Info" } }, - "filter_placeholder": "Entity Filter", - "title": "Quick Search", + "filter_placeholder": "Entity filter", + "title": "Quick search", "key_c_hint": "Press 'c' on any page to open the search bar", "nothing_found": "Nothing found!" }, @@ -902,7 +902,7 @@ "create_backup": "Create backup before updating" }, "updater": { - "title": "Update Instructions" + "title": "Update instructions" }, "remote": { "activity": "Current activity" @@ -920,7 +920,7 @@ "clean_spot": "Clean spot", "locate": "Locate", "return_home": "Return home", - "start_pause": "Start/Pause" + "start_pause": "Start/pause" }, "person": { "create_zone": "Create zone from current location" @@ -1012,7 +1012,7 @@ "default_code": "Default code", "default_code_error": "Code does not match code format", "entity_id": "Entity ID", - "unit_of_measurement": "Unit of Measurement", + "unit_of_measurement": "Unit of measurement", "precipitation_unit": "Precipitation unit", "precision": "Display precision", "precision_default": "Default ({value})", @@ -1160,16 +1160,16 @@ "title": "Reboot system", "description": "Restart the system running Home Assistant and all Add-ons.", "confirm_title": "Reboot system?", - "confirm_description": "This will reboot the complete system which includes Home Assistant and all the Add-ons.", + "confirm_description": "This will reboot the complete system which includes Home Assistant and all the add-ons.", "confirm_action": "Reboot", "rebooting": "Rebooting system", "failed": "Failed to reboot system" }, "shutdown": { "title": "Shut down system", - "description": "Shut down the system running Home Assistant and all Add-ons.", + "description": "Shut down the system running Home Assistant and all add-ons.", "confirm_title": "Shut down system?", - "confirm_description": "This will shut down the complete system which includes Home Assistant and all Add-ons.", + "confirm_description": "This will shut down the complete system which includes Home Assistant and all add-ons.", "confirm_action": "Shut down", "shutting_down": "Shutting down system", "failed": "Failed to shut down system" @@ -1265,7 +1265,7 @@ } }, "config_entry_system_options": { - "title": "System Options for {integration}", + "title": "System options for {integration}", "enable_new_entities_label": "Enable newly added entities.", "enable_new_entities_description": "If newly discovered devices for {integration} should be automatically added.", "enable_polling_label": "Enable polling for updates.", @@ -1279,12 +1279,12 @@ "introduction": "Reconfigure a device on your Zigbee network. Use this feature if your device is not functioning correctly.", "battery_device_warning": "You will need to wake battery powered devices before starting the reconfiguration process. Refer to your device's manual for instructions on how to wake the device.", "run_in_background": "You can close this dialog and the reconfiguration will continue in the background.", - "start_reconfiguration": "Start Reconfiguration", + "start_reconfiguration": "Start reconfiguration", "in_progress": "The device is being reconfigured. This may take some time.", "configuration_failed": "The device reconfiguration failed. Additional information may be available in the logs.", "configuration_complete": "Device reconfiguration complete.", - "button_show": "Show Details", - "button_hide": "Hide Details", + "button_show": "Show details", + "button_hide": "Hide details", "cluster_header": "Cluster", "bind_header": "Binding", "reporting_header": "Reporting", @@ -1292,7 +1292,7 @@ "min_max_change": "min/max/change" }, "zha_manage_device": { - "heading": "Manage Zigbee Device", + "heading": "Manage Zigbee device", "tabs": { "clusters": "Clusters", "bindings": "Bindings", @@ -1302,7 +1302,7 @@ }, "zha_device_info": { "manuf": "by {manufacturer}", - "no_area": "No Area", + "no_area": "No area", "device_signature": "Zigbee device signature", "device_children": "Zigbee device children", "buttons": { @@ -1322,8 +1322,8 @@ "remove": "Are you sure that you want to remove the device?" }, "quirk": "Quirk", - "last_seen": "Last Seen", - "power_source": "Power Source", + "last_seen": "Last seen", + "power_source": "Power source", "unknown": "Unknown", "zha_device_card": { "device_name_placeholder": "Change device name" @@ -1435,8 +1435,8 @@ "wait": "If you just started, make sure you have given the Supervisor enough time to start.", "ask": "Ask for help", "reboot": "Try a reboot of the host", - "observer": "Check the Observer", - "system_health": "Check System Health" + "observer": "Check the observer", + "system_health": "Check system health" } }, "login-form": { @@ -1446,7 +1446,7 @@ }, "notification_drawer": { "click_to_configure": "Click button to configure {entity}", - "empty": "No Notifications", + "empty": "No notifications", "title": "Notifications", "close": "Close", "dismiss_all": "Dismiss all" @@ -1463,8 +1463,8 @@ "no_matching_link_found": "No matching My link found for {path}" }, "sidebar": { - "external_app_configuration": "App Configuration", - "sidebar_toggle": "Sidebar Toggle", + "external_app_configuration": "App configuration", + "sidebar_toggle": "Sidebar toggle", "done": "Done", "hide_panel": "Hide panel", "show_panel": "Show panel" @@ -1484,11 +1484,11 @@ "header": "Configure Home Assistant", "dashboard": { "devices": { - "main": "Devices & Services", + "main": "Devices & services", "secondary": "Integrations, devices, entities and helpers" }, "automations": { - "main": "Automations & Scenes", + "main": "Automations & scenes", "secondary": "Automations, scenes, scripts and blueprints" }, "backup": { @@ -1520,11 +1520,11 @@ "secondary": "Manage who can access your home" }, "areas": { - "main": "Areas & Zones", + "main": "Areas & zones", "secondary": "Manage locations in and around your house" }, "companion": { - "main": "Companion App", + "main": "Companion app", "secondary": "Location and notifications" }, "system": { @@ -1611,7 +1611,7 @@ "create_area": "Create Area" }, "editor": { - "default_name": "New Area", + "default_name": "New area", "delete": "Delete", "update": "Update", "create": "Create", @@ -1686,7 +1686,7 @@ "delete": "Delete", "update": "Update", "create": "Create", - "create_and_write": "Create and Write", + "create_and_write": "Create and write", "required_error_msg": "[%key:ui::panel::config::zone::detail::required_error_msg%]", "usage": "A tag can trigger an automation when scanned, you can use NFC tags, QR codes or any other kind of tag. Use our {companion_link} to write this tag to a programmable NFC tag or create a QR code below.", "companion_apps": "companion apps" @@ -1718,7 +1718,7 @@ "header": "Configure grid consumption", "paragraph": "Grid consumption is the energy that flows from the energy grid to your home.", "entity_para": "Pick a sensor which measures grid consumption in either of {unit}.", - "energy_stat": "Consumed Energy", + "energy_stat": "Consumed energy", "cost_para": "Select how Home Assistant should keep track of the costs of the consumed energy.", "no_cost": "Do not track costs", "cost_stat": "Use an entity tracking the total costs", @@ -1745,7 +1745,7 @@ } }, "solar": { - "title": "Solar Panels", + "title": "Solar panels", "sub": "Let Home Assistant monitor your solar panels and give you insight on their performance.", "learn_more": "More information on how to get started.", "solar_production": "Solar production", @@ -1762,12 +1762,12 @@ "solar_production_forecast": "Solar production forecast", "solar_production_forecast_description": "Adding solar production forecast information will allow you to quickly see your expected production for today.", "dont_forecast_production": "Don't forecast production", - "forecast_production": "Forecast Production", + "forecast_production": "Forecast production", "add_forecast": "Add forecast" } }, "battery": { - "title": "Home Battery Storage", + "title": "Home battery storage", "sub": "If you have a battery system, you can configure it to monitor how much energy was stored and used from your battery.", "learn_more": "More information on how to get started.", "battery_systems": "Battery systems", @@ -1782,7 +1782,7 @@ } }, "gas": { - "title": "Gas Consumption", + "title": "Gas consumption", "sub": "Let Home Assistant monitor your gas usage.", "learn_more": "More information on how to get started.", "gas_consumption": "Gas consumption", @@ -1806,7 +1806,7 @@ } }, "water": { - "title": "Water Consumption", + "title": "Water consumption", "sub": "Let Home Assistant monitor your water usage.", "learn_more": "More information on how to get started.", "water_consumption": "Water consumption", @@ -1876,7 +1876,7 @@ }, "core": { "caption": "General", - "description": "Name, time zone and locale settings", + "description": "Name, time zone, and locale settings", "section": { "core": { "header": "General configuration", @@ -1915,7 +1915,7 @@ "url": { "caption": "Home Assistant URL", "description": "Configure what website addresses Home Assistant should share with other devices when they need to fetch data from Home Assistant (eg. to play text-to-speech or other hosted media).", - "internal_url_label": "Local Network", + "internal_url_label": "Local network", "external_url_label": "Internet", "external_use_ha_cloud": "Use Home Assistant Cloud", "manage_ha_cloud": "Manage Home Assistant Cloud", @@ -1943,7 +1943,7 @@ "reboot_moved_link": "Go to system page.", "processor": "Processor", "memory": "Memory", - "generic_hardware": "Generic Hardware", + "generic_hardware": "Generic hardware", "documentation": "Documentation", "configure": "Configure", "documentation_description": "Find extra information about your device", @@ -1953,7 +1953,7 @@ "info": { "caption": "About", "copy_menu": "Copy menu", - "copy_raw": "Raw Text", + "copy_raw": "Raw text", "copy_github": "For GitHub", "description": "Version, loaded integrations and links to documentation", "home_assistant_logo": "Home Assistant logo", @@ -1975,11 +1975,11 @@ "more_info": "more info" }, "items": { - "change_log": "Change Log", - "thanks": "Thanks To", + "change_log": "Change log", + "thanks": "Thanks to", "merch": "Merchandise", - "feature": "Feature Requests", - "bug": "Bug Reports", + "feature": "Feature requests", + "bug": "Bug reports", "help": "Help", "license": "License" } @@ -1987,18 +1987,18 @@ "logs": { "caption": "Logs", "description": "View and search logs to diagnose issues", - "details": "Log Details ({level})", + "details": "Log details ({level})", "search": "Search logs", "failed_get_logs": "Failed to get {provider} logs, {error}", "no_issues_search": "No issues found for search term ''{term}''", - "load_logs": "Load Full Logs", + "load_logs": "Load full logs", "loading_log": "Loading full log…", "no_errors": "No errors have been reported", "no_issues": "There are no new issues!", "clear": "Clear", "refresh": "Refresh", "copy": "Copy log entry", - "log_provider": "Log Provider", + "log_provider": "Log provider", "multiple_messages": "message first occurred at {time} and shows up {counter} times", "level": { "critical": "CRITICAL", @@ -2063,8 +2063,8 @@ "types": { "css": "Stylesheet", "html": "HTML (deprecated)", - "js": "JavaScript File (deprecated)", - "module": "JavaScript Module" + "js": "JavaScript file (deprecated)", + "module": "JavaScript module" }, "picker": { "headers": { @@ -2189,7 +2189,7 @@ "caption": "Automations", "description": "Create custom behavior rules for your home", "picker": { - "header": "Automation Editor", + "header": "Automation editor", "introduction": "The automation editor allows you to create and edit automations. Please follow the link below to read the instructions to make sure that you have configured Home Assistant correctly.", "learn_more": "Learn more about automations", "pick_automation": "Pick automation to edit", @@ -2240,7 +2240,7 @@ "rename": "[%key:ui::panel::config::automation::editor::triggers::rename%]", "show_trace": "Traces", "show_info": "Information", - "default_name": "New Automation", + "default_name": "New automation", "missing_name": "Cannot save automation without a name", "traces_not_available": "Automations need an ID for history to be tracked. Add an ID to your automation to make it available in traces.", "load_error_not_editable": "Only automations in automations.yaml are editable.", @@ -2288,7 +2288,7 @@ }, "edit_yaml": "Edit in YAML", "edit_ui": "Edit in visual editor", - "copy_to_clipboard": "Copy to Clipboard", + "copy_to_clipboard": "Copy to clipboard", "triggers": { "header": "Triggers", "learn_more": "Learn more about triggers", @@ -2313,8 +2313,8 @@ "calendar": { "label": "Calendar", "event": "[%key:ui::panel::config::automation::editor::triggers::type::homeassistant::event%]", - "start": "Event Start", - "end": "Event End", + "start": "Event start", + "end": "Event end", "offset": "Offset (optional)", "before": "Before", "after": "After" @@ -2442,18 +2442,18 @@ } }, "time_pattern": { - "label": "Time Pattern", + "label": "Time pattern", "hours": "Hours", "minutes": "Minutes", "seconds": "Seconds" }, "webhook": { - "copy_url": "Copy URL to Clipboard", + "copy_url": "Copy URL to clipboard", "label": "Webhook", "local_only": "Only accessible from the local network", "webhook_id": "Webhook ID", "webhook_id_helper": "Treat this ID like a password: keep it secret, and make it hard to guess.", - "webhook_settings": "Webhook Settings", + "webhook_settings": "Webhook settings", "description": { "full": "When a Webhook payload has been received" } @@ -2940,7 +2940,7 @@ } }, "editor": { - "default_name": "New Scene", + "default_name": "New scene", "load_error_not_editable": "Only scenes in scenes.yaml are editable.", "load_error_unknown": "Error loading scene ({err_no}).", "save": "Save", @@ -2969,7 +2969,7 @@ "description_not_login": "Not logged in", "description_features": "Control home when away and integrate with Alexa and Google Assistant", "login": { - "title": "Cloud Login", + "title": "Cloud login", "introduction": "Home Assistant Cloud provides you with a secure remote connection to your instance while away from home. It also allows you to connect with cloud-only services: Amazon Alexa and Google Assistant.", "introduction2": "This service is run by our partner ", "introduction2a": ", a company founded by the founders of Home Assistant.", @@ -3010,14 +3010,14 @@ "information3": "This service is run by our partner ", "information3a": ", a company founded by the founders of Home Assistant.", "information4": "By registering an account you agree to the following terms and conditions.", - "link_terms_conditions": "Terms and Conditions", - "link_privacy_policy": "Privacy Policy", - "create_account": "Create Account", + "link_terms_conditions": "Terms and conditions", + "link_privacy_policy": "Privacy policy", + "create_account": "Create account", "email_address": "Email address", "email_error_msg": "Invalid email", "password": "Password", "password_error_msg": "Passwords are at least 8 characters", - "start_trial": "Start Trial", + "start_trial": "Start trial", "resend_confirm_email": "Resend confirmation email", "account_created": "Account created! Check your email for instructions on how to activate your account." }, @@ -3025,7 +3025,7 @@ "thank_you_note": "Thank you for being part of Home Assistant Cloud. It's because of people like you that we are able to make a great home automation experience for everyone. Thank you!", "nabu_casa_account": "Nabu Casa Account", "connection_status": "Cloud connection status", - "manage_account": "Manage Account", + "manage_account": "Manage account", "sign_out": "Sign out", "sign_out_confirm": "Are you sure you want to sign out?", "integrations": "Integrations", @@ -3035,7 +3035,7 @@ "tip_moved_voice_assistants": "Looking for Google Assistant and Amazon Alexa settings? They are moved to the new voice assistants page.", "connected": "Connected", "connecting": "Connecting…", - "not_connected": "Not Connected", + "not_connected": "Not connected", "fetching_subscription": "Fetching subscription…", "tts": { "title": "Text-to-speech", @@ -3049,13 +3049,13 @@ "target": "Target", "target_browser": "Browser", "play": "Play", - "create_automation": "Create Automation" + "create_automation": "Create automation" } }, "remote": { - "title": "Remote Control", + "title": "Remote control", "connected": "Connected", - "not_connected": "Not Connected", + "not_connected": "Not connected", "reconnecting": "Not connected. Trying to reconnect.", "access_is_being_prepared": "Remote control is being prepared. We will notify you when it's ready.", "cerificate_loading": "Your certificate is loading.", @@ -3066,7 +3066,7 @@ "instance_will_be_available": "Your instance will be available at your", "link_learn_how_it_works": "Learn how it works", "nabu_casa_url": "Nabu Casa URL", - "certificate_info": "Certificate Info" + "certificate_info": "Certificate info" }, "alexa": { "title": "Alexa", @@ -3100,7 +3100,7 @@ "enter_pin_info": "Please enter a PIN to interact with security devices. Security devices are doors, garage doors, and locks. You will be asked to say/enter this PIN when interacting with security devices via Google Assistant.", "devices_pin": "Security Devices PIN", "enter_pin_hint": "Enter a PIN to use security devices", - "show_entities": "Show Entities", + "show_entities": "Show entities", "exposed_entities": "{number} {number, plural,\n one {entity}\n other {entities}\n} exposed", "manual_config": "Editing which entities are exposed via the UI is disabled because you have configured entity filters in configuration.yaml.", "enter_pin_error": "Unable to store PIN:", @@ -3124,7 +3124,7 @@ } }, "dialog_certificate": { - "certificate_information": "Certificate Information", + "certificate_information": "Certificate information", "certificate_expiration_date": "Certificate expiration date:", "will_be_auto_renewed": "will be automatically renewed", "fingerprint": "Certificate fingerprint:", @@ -3144,7 +3144,7 @@ }, "devices": { "add_prompt": "No {name} have been added using this {type} yet. You can add one by clicking the + button above.", - "add_device": "Add Device", + "add_device": "Add device", "caption": "Devices", "description": "Manage configured devices", "device_info": "{type} info", @@ -3327,14 +3327,14 @@ "note_about_persons_configured_in_yaml": "People configured via configuration.yaml cannot be edited via the UI.", "learn_more": "Learn more about people", "no_persons_created_yet": "Looks like you have not added any people yet.", - "create_person": "Create Person", - "add_person": "Add Person", + "create_person": "Create person", + "add_person": "Add person", "confirm_delete_title": "Delete {name}?", "confirm_delete_text": "This person will be permanently deleted and all devices belonging to this person will become unassigned.", - "person_not_found_title": "Person Not Found", + "person_not_found_title": "Person not found", "person_not_found": "We couldn't find the person you were trying to edit.", "detail": { - "new_person": "New Person", + "new_person": "New person", "name": "Name", "name_error_msg": "Name is required", "linked_user": "Linked User", @@ -3342,7 +3342,7 @@ "no_device_tracker_available_intro": "When you have devices that indicate the presence of a person, you will be able to assign them to a person here. You can add your first device by adding a presence-detection integration from the integrations page.", "link_presence_detection_integrations": "Presence Detection Integrations", "link_integrations_page": "Integrations page", - "device_tracker_picked": "Track Device", + "device_tracker_picked": "Track device", "device_tracker_pick": "Pick device to track", "delete": "Delete", "create": "Create", @@ -3358,10 +3358,10 @@ "description": "Manage the zones you want to track people in", "introduction": "Zones allow you to specify certain regions on Earth. When a person is within a zone, the state will take the name from the zone. Zones can also be used as a trigger or condition inside automation setups.", "no_zones_created_yet": "Looks like you have not added any zones yet.", - "create_zone": "Add Zone", - "add_zone": "Add Zone", - "edit_zone": "Edit Zone", - "edit_home": "Edit Home", + "create_zone": "Add zone", + "add_zone": "Add zone", + "edit_zone": "Edit zone", + "edit_home": "Edit home", "confirm_delete": "Are you sure you want to delete this zone?", "can_not_edit": "Unable to edit zone", "configured_in_yaml": "Zones configured via configuration.yaml cannot be edited via the UI.", @@ -3370,11 +3370,11 @@ "go_to_core_config": "Go to general configuration?", "home_zone_core_config": "The location of your home zone is editable from the general configuration page. The radius of the Home zone can't be edited from the frontend yet. Do you want to go to the general configuration?", "detail": { - "new_zone": "New Zone", + "new_zone": "New zone", "name": "Name", "icon": "Icon", "icon_error_msg": "Icon should be in the format ''prefix:iconname'', for example: ''mdi:home''", - "location": "Map Location", + "location": "Map location", "radius": "Radius", "latitude": "Latitude", "longitude": "Longitude", @@ -3385,7 +3385,7 @@ "create": "Add", "update": "Update" }, - "core_location_dialog": "Home Assistant Location" + "core_location_dialog": "Home Assistant location" }, "integrations": { "caption": "Integrations", @@ -3453,12 +3453,12 @@ }, "config_entry": { "application_credentials": { - "delete_title": "Application Credentials", + "delete_title": "Application credentials", "delete_prompt": "Would you like to also remove Application Credentials for this integration?", "delete_detail": "If you remove them, you will need to enter credentials when setting up the integration again. If you keep them, they will be used automatically when setting up the integration again or may be acccessed from the Application Credentials menu.", - "delete_error_title": "Removing Application Credential failed", + "delete_error_title": "Removing application credentials failed", "dismiss": "Keep", - "learn_more": "Learn more about Application Credentials" + "learn_more": "Learn more about application credentials" }, "devices": "{count} {count, plural,\n one {device}\n other {devices}\n}", "entities": "{count} {count, plural,\n one {entity}\n other {entities}\n}", @@ -3493,7 +3493,7 @@ "unnamed_entry": "Unnamed entry", "unknown_via_device": "Unknown device", "area": "In {area}", - "no_area": "No Area", + "no_area": "No area", "not_loaded": "Not loaded", "setup_in_progress": "Initializing", "check_the_logs": "Check the logs", @@ -3612,7 +3612,7 @@ }, "change_password": { "caption": "Change password", - "new_password": "New Password", + "new_password": "New password", "password_confirm": "Confirm password", "change": "Change", "password_no_match": "Passwords don't match", @@ -3620,10 +3620,10 @@ } }, "application_credentials": { - "caption": "Application Credentials", - "description": "Manage the OAuth Application Credentials used by Integrations", + "caption": "Application credentials", + "description": "Manage the OAuth application credentials used by Integrations", "editor": { - "caption": "Add Credential", + "caption": "Add credentials", "description": "OAuth is used to grant Home Assistant access to information on other websites without giving a passwords. This mechanism is used by companies such as Spotify, Google, Withings, Microsoft, and Twitter.", "missing_credentials": "Setting up {integration} requires configuring application credentials.", "missing_credentials_domain_link": "View {integration} documentation", @@ -3631,23 +3631,23 @@ "add": "Add", "domain": "Integration", "name": "Name", - "client_id": "OAuth Client ID", + "client_id": "OAuth client ID", "client_id_helper": "Public identifier of the OAuth application", - "client_secret": "OAuth Client Secret", + "client_secret": "OAuth client secret", "client_secret_helper": "Secret of the OAuth application" }, "picker": { - "add_application_credential": "Add Application Credential", + "add_application_credential": "Add application credential", "headers": { "name": "Name", - "client_id": "OAuth Client ID", + "client_id": "OAuth client ID", "application": "Integration" }, "remove_selected": { "button": "Remove selected", "confirm_title": "Do you want to remove {number} {number, plural,\n one {credential}\n other {credentials}\n}?", - "confirm_text": "Application Credentials in use by an integration may not be removed.", - "error_title": "Removing Application Credential failed" + "confirm_text": "Application credentials in use by an integration may not be removed.", + "error_title": "Removing application credentials failed" }, "selected": "{number} selected" } @@ -3708,15 +3708,15 @@ "zha": { "common": { "clusters": "Clusters", - "manufacturer_code_override": "Manufacturer Code Override", + "manufacturer_code_override": "Manufacturer code override", "value": "Value" }, "configuration_page": { "shortcuts_title": "Shortcuts", - "update_button": "Update Configuration", - "download_backup": "Download Backup", - "migrate_radio": "Migrate Radio", - "network_settings_title": "Network Settings", + "update_button": "Update configuration", + "download_backup": "Download backup", + "migrate_radio": "Migrate radio", + "network_settings_title": "Network settings", "change_channel": "Change channel", "channel_dialog": { "title": "Multiprotocol addon in use", @@ -3728,9 +3728,9 @@ "pairing_mode": "Make sure your devices are in pairing mode. Check the instructions of your device on how to do this.", "discovered_text": "Devices will show up here once discovered.", "no_devices_found": "No devices were found, make sure they are in pairing mode and keep them awake while Home Assistant is searching.", - "search_again": "Search Again" + "search_again": "Search again" }, - "add_device": "Add Device", + "add_device": "Add device", "clusters": { "header": "Clusters", "help_cluster_dropdown": "Select a cluster to view attributes and commands.", @@ -3740,73 +3740,73 @@ } }, "cluster_attributes": { - "header": "Cluster Attributes", + "header": "Cluster attributes", "introduction": "View and edit cluster attributes.", "attributes_of_cluster": "Attributes of the selected cluster", - "read_zigbee_attribute": "Read Attribute", - "write_zigbee_attribute": "Write Attribute" + "read_zigbee_attribute": "Read attribute", + "write_zigbee_attribute": "Write attribute" }, "cluster_commands": { - "header": "Cluster Commands", + "header": "Cluster commands", "introduction": "View and issue cluster commands.", "commands_of_cluster": "Commands of the selected cluster", - "issue_zigbee_command": "Issue Zigbee Command", + "issue_zigbee_command": "Issue Zigbee command", "help_command_dropdown": "Select a command to interact with." }, "device_pairing_card": { - "PAIRED": "Device Found", - "PAIRED_status_text": "Starting Interview", - "INTERVIEW_COMPLETE": "Interview Complete", + "PAIRED": "Device found", + "PAIRED_status_text": "Starting interview", + "INTERVIEW_COMPLETE": "Interview complete", "INTERVIEW_COMPLETE_status_text": "Configuring", - "CONFIGURED": "Configuration Complete", + "CONFIGURED": "Configuration complete", "CONFIGURED_status_text": "Initializing", - "INITIALIZED": "Initialization Complete", + "INITIALIZED": "Initialization complete", "INITIALIZED_status_text": "The device is ready to use" }, "network": { "caption": "Network" }, "groups": { - "add_group": "Create Group", + "add_group": "Create group", "caption": "Groups", "groups": "Groups", "group_id": "Group ID", "members": "Devices", - "group_info": "Group Information", + "group_info": "Group information", "group_details": "Here are all the details for the selected Zigbee group.", "group_not_found": "Group not found!", - "add_members": "Add Devices", - "remove_members": "Remove Device", - "removing_members": "Removing Devices", + "add_members": "Add devices", + "remove_members": "Remove device", + "removing_members": "Removing devices", "create_group_details": "Enter the required details to create a new Zigbee group", - "group_name_placeholder": "Group Name", - "create_group": "Create Group", - "create": "Create Group", - "creating_group": "Creating Group", - "delete": "Delete Group" + "group_name_placeholder": "Group name", + "create_group": "Create group", + "create": "Create group", + "creating_group": "Creating group", + "delete": "Delete group" }, "visualization": { - "header": "Network Visualization", + "header": "Network visualization", "caption": "Visualization", - "highlight_label": "Highlight Devices", - "zoom_label": "Zoom To Device", - "auto_zoom": "Auto Zoom", - "enable_physics": "Enable Physics", - "refresh_topology": "Refresh Topology" + "highlight_label": "Highlight devices", + "zoom_label": "Zoom to device", + "auto_zoom": "Auto zoom", + "enable_physics": "Enable physics", + "refresh_topology": "Refresh topology" }, "device_binding": { "bind": "Bind", "unbind": "Unbind", - "picker_label": "Bindable Devices" + "picker_label": "Bindable devices" }, "group_binding": { - "header": "Group Binding", + "header": "Group binding", "introduction": "Bind and unbind groups.", - "group_picker_label": "Bindable Groups", + "group_picker_label": "Bindable groups", "group_picker_help": "Select a group to issue a bind command.", "cluster_selection_help": "Select clusters to bind to the selected group.", - "bind_button_label": "Bind Group", - "unbind_button_label": "Unbind Group", + "bind_button_label": "Bind group", + "unbind_button_label": "Unbind group", "bind_button_help": "Bind the selected group to the selected device clusters.", "unbind_button_help": "Unbind the selected group from the selected device clusters." }, @@ -3838,23 +3838,23 @@ "back": "Back", "add_node": "Add device", "remove_node": "Remove device", - "reconfigure_server": "Re-configure Server", + "reconfigure_server": "Re-configure server", "heal_network": "Heal Network", "in_progress_inclusion_exclusion": "Z-Wave JS is searching for devices", - "cancel_inclusion_exclusion": "Stop Searching" + "cancel_inclusion_exclusion": "Stop searching" }, "dashboard": { - "header": "Manage your Z-Wave Network", + "header": "Manage your Z-Wave network", "introduction": "Manage your Z-Wave network and Z-Wave devices", - "driver_version": "Driver Version", - "server_version": "Server Version", + "driver_version": "Driver version", + "server_version": "Server version", "home_id": "Home ID", "server_url": "Server URL", "devices": "{count} {count, plural,\n one {device}\n other {devices}\n}", "provisioned_devices": "Provisioned devices", "not_ready": "{count} not ready", "statistics": { - "title": "Controller Statistics", + "title": "Controller statistics", "messages_tx": { "label": "Messages TX", "tooltip": "Number of messages successfully sent to the controller" @@ -3864,11 +3864,11 @@ "tooltip": "Number of messages successfully received by the controller" }, "messages_dropped_tx": { - "label": "Dropped Messages TX", + "label": "Dropped messages TX", "tooltip": "Number of messages from the controller that were dropped by the host" }, "messages_dropped_rx": { - "label": "Dropped Messages RX", + "label": "Dropped messages RX", "tooltip": "Number of outgoing messages that were dropped because they could not be sent" }, "nak": { @@ -3884,17 +3884,17 @@ "tooltip": "Number of transmission attempts where an ACK was missing from the controller" }, "timeout_response": { - "label": "Timeout Response", + "label": "Timeout response", "tooltip": "Number of transmission attempts where the controller response did not come in time" }, "timeout_callback": { - "label": "Timeout Callback", + "label": "Timeout callback", "tooltip": "Number of transmission attempts where the controller callback did not come in time" } } }, "device_info": { - "zwave_info": "Z-Wave Info", + "zwave_info": "Z-Wave info", "node_id": "ID", "node_status": "Status", "node_ready": "Ready", @@ -3910,7 +3910,7 @@ "node_statistics": "Statistics" }, "node_statistics": { - "title": "Device Statistics", + "title": "Device statistics", "commands_tx": { "label": "Commands TX", "tooltip": "# of commands successfully sent to the node" @@ -3920,15 +3920,15 @@ "tooltip": "# of commands received from the node, including responses to sent commands" }, "commands_dropped_tx": { - "label": "Commands Dropped TX", + "label": "Commands dropped TX", "tooltip": "# of outgoing commands that were dropped because they could not be sent" }, "commands_dropped_rx": { - "label": "Commands Dropped RX", + "label": "Commands dropped RX", "tooltip": "# of commands from the node that were dropped by the host" }, "timeout_response": { - "label": "Timeout Response", + "label": "Timeout response", "tooltip": "# of Get-type commands where the node's response did not come in time" }, "rtt": { @@ -3939,8 +3939,8 @@ "label": "RSSI", "tooltip": "Average RSSI in dBm of frames received by this node" }, - "lwr": "Last Working Route", - "nlwr": "Next to Last Working Route" + "lwr": "Last working route", + "nlwr": "Next to last working route" }, "route_statistics": { "protocol": { @@ -3950,11 +3950,11 @@ "ZWave_9k6": "Z-Wave", "ZWave_40k": "Z-Wave", "ZWave_100k": "Z-Wave", - "LongRange_100k": "Z-Wave Long Range" + "LongRange_100k": "Z-Wave long range" } }, "data_rate": { - "label": "Data Rate", + "label": "Data rate", "tooltip": "The used data rate for this route", "protocol_data_rate": { "ZWave_9k6": "9.6 kbps", @@ -3966,7 +3966,7 @@ "repeaters": { "label": "Repeaters + RSSI", "tooltip": "Which nodes are repeaters for this route and their RSSI", - "repeaters": "Repeater Device", + "repeaters": "Repeater device", "rssi": "RSSI", "direct": "None, direct connection" }, @@ -3975,7 +3975,7 @@ "tooltip": "The RSSI of the ACK frame received by the controller" }, "route_failed_between": { - "label": "Route Failed Between", + "label": "Route failed between", "tooltip": "The nodes between which the transmission failed most recently", "not_applicable": "N/A" } @@ -3989,7 +3989,7 @@ } }, "node_config": { - "header": "Z-Wave Device Configuration", + "header": "Z-Wave device configuration", "introduction": "Manage and adjust device specific configuration parameters for the selected device", "attribution": "Device configuration parameters and descriptions are provided by the {device_database}", "endpoint": "Endpoint {endpoint}", @@ -4016,7 +4016,7 @@ "unknown": "Unknown" }, "add_node": { - "title": "Add a Z-Wave Device", + "title": "Add a Z-Wave device", "searching_device": "Searching for devices…", "follow_device_instructions": "Follow the directions that came with your device to trigger pairing on the device.", "choose_inclusion_strategy": "How do you want to add your device", @@ -4053,47 +4053,47 @@ "description": "Example: Lighting, Sensors and Security Systems" }, "S2_AccessControl": { - "title": "S2 Access Control", - "description": "Example: Door Locks and Garage Doors" + "title": "S2 access control", + "description": "Example: Door locks and garage doors" }, "S0_Legacy": { "title": "S0 Legacy", - "description": "Example: Legacy Door Locks without S2 support" + "description": "Example: Legacy door locks without S2 support" } }, "remove_node": { "title": "Remove a Z-Wave device", "introduction": "Remove a device from your Z-Wave network, and remove the associated device and entities from Home Assistant.", - "start_exclusion": "Start Exclusion", - "cancel_exclusion": "Cancel Exclusion", + "start_exclusion": "Start exclusion", + "cancel_exclusion": "Cancel exclusion", "controller_in_exclusion_mode": "Your Z-Wave controller is now in exclusion mode.", "follow_device_instructions": "Follow the directions that came with your device to trigger exclusion on the device.", "exclusion_failed": "The device could not be removed. Please check the logs for more information.", "exclusion_finished": "Device {id} has been removed from your Z-Wave network." }, "remove_failed_node": { - "title": "Remove a Failed Z-Wave Device", + "title": "Remove a Failed Z-Wave device", "introduction": "Remove a failed device from your Z-Wave network. Use this if you are unable to exclude a device normally because it is broken.", - "remove_device": "Remove Device", + "remove_device": "Remove device", "in_progress": "The device removal is in progress.", "removal_finished": "Device {id} has been removed from your Z-Wave network.", "removal_failed": "The device could not be removed from your Z-Wave network." }, "reinterview_node": { - "title": "Re-interview a Z-Wave Device", + "title": "Re-interview a Z-Wave device", "introduction": "Re-interview a device on your Z-Wave network. Use this feature if your device has missing or incorrect functionality.", "battery_device_warning": "You will need to wake battery powered devices before starting the re-interview. Refer to your device's manual for instructions on how to wake the device.", "run_in_background": "You can close this dialog and the interview will continue in the background.", - "start_reinterview": "Start Re-interview", + "start_reinterview": "Start re-interview", "in_progress": "The device is being interviewed. This may take some time.", "interview_failed": "The device interview failed. Additional information may be available in the logs.", "interview_complete": "Device interview complete." }, "heal_network": { - "title": "Heal your Z-Wave Network", + "title": "Heal your Z-Wave network", "introduction": "Start a network heal on your Z-Wave network. A network heal will cause all devices to re-calculate their routes back to the controller and is recommended if you have recently moved devices or your controller.", "traffic_warning": "The healing process generates a large amount of traffic on the Z-Wave network. This may cause devices to respond slowly (or not at all) while the heal is in progress.", - "start_heal": "Start Healing", + "start_heal": "Start healing", "in_progress": "Network healing is in progress. This will take some time.", "run_in_background": "You can close this dialog and the network healing will continue in the background.", "stop_heal": "Stop Healing", @@ -4102,7 +4102,7 @@ "healing_cancelled": "Network healing has been cancelled." }, "heal_node": { - "title": "Heal a Z-Wave Device", + "title": "Heal a Z-Wave device", "introduction": "Tell {device} to update its routes back to the controller. This can help with communication issues if you have recently moved the device or your controller.", "traffic_warning": "The healing process generates a large amount of traffic on the Z-Wave network. This may cause devices to respond slowly (or not at all) while the heal is in progress.", "start_heal": "Heal Device", @@ -4113,23 +4113,23 @@ "network_heal_in_progress": "A Z-Wave network heal is already in progress. Please wait for it to finish before healing an individual device." }, "update_firmware": { - "title": "Update Device Firmware", + "title": "Update device firmware", "warning": "WARNING: Firmware updates can brick your device if you do not correctly follow the manufacturer's guidance. The Home Assistant and Z-Wave JS teams do not take any responsibility for any damages to your device as a result of the firmware update and will not be able to help you if you brick your device. Would you still like to continue?", "warning_controller": "WARNING: Firmware updates can brick your controller if you do not use the right firmware files, or if you attempt to stop the firmware update before it completes. The Home Assistant and Z-Wave JS teams do not take any responsibility for any damages to your controller as a result of the firmware update and will not be able to help you if you brick your controller. Would you still like to continue?", "introduction": "Select the firmware file you would like to use to update {device}.", "introduction_controller": "Select the firmware file you would like to use to update {device}. Note that once you start a firmware update, you MUST wait for the update to complete.", "firmware_target_intro": "Select the firmware target (0 for the Z-Wave chip, ≥1 for other chips if they exist) for this update.", - "firmware_target": "Firmware Target (chip)", - "upload_firmware": "Upload Firmware", - "upload_failed": "Upload Failed", - "begin_update": "Begin Firmware Update", + "firmware_target": "Firmware target (chip)", + "upload_firmware": "Upload firmware", + "upload_failed": "Upload failed", + "begin_update": "Begin firmware update", "queued": "The firmware update is ready to be sent to {device} but the device is asleep, wake the device to start the update.", "close_queued": "If you close this dialog, the update will continue to be queued in the background and start automatically once the device wakes up.", "awake": "The firmware update should start being sent to {device} shortly.", "close": "If you close this dialog, the update will continue in the background.", "in_progress": "The firmware update on {device} is in progress ({progress}%).", - "abort": "Abort Firmware Update", - "abort_failed": "Abort Failed", + "abort": "Abort firmware update", + "abort_failed": "Abort failed", "confirm_abort": "Are you sure you want to abort the firmware update on {device}?", "finished_status": { "success": "Successfully updated firmware on {device}: {message}.", @@ -4137,29 +4137,29 @@ "try_again": "To attempt the firmware update again, select the new firmware file you would like to use.", "done": "The firmware update is complete! If you want to attempt another firmware update on this device, please wait until it gets re-interviewed.", "done_controller": "The firmware update is complete! Your controller is being restarted and your network will temporarily be unavailable.", - "Error_Timeout": "Timed Out", - "Error_Checksum": "Checksum Error", - "Error_TransmissionFailed": "Transmission Failed", - "Error_InvalidManufacturerID": "Invalid Manufacturer ID", - "Error_InvalidFirmwareID": "Invalid Firmware ID", - "Error_InvalidFirmwareTarget": "Invalid Firmware Target", - "Error_InvalidHeaderInformation": "Invalid Header Information", - "Error_InvalidHeaderFormat": "Invalid Header Format", - "Error_InsufficientMemory": "Insufficient Memory", - "Error_InvalidHardwareVersion": "Invalid Hardware Version", - "OK_WaitingForActivation": "Waiting for Activation", - "OK_NoRestart": "No Restart", - "OK_RestartPending": "Restart Pending", - "Error_RetryLimitReached": "Retry Limit Reached", - "Error_Aborted": "Update Aborted by Bootloader", - "Error_NotSupported": "Firmware Updates Not Supported", + "Error_Timeout": "Timed out", + "Error_Checksum": "Checksum error", + "Error_TransmissionFailed": "Transmission failed", + "Error_InvalidManufacturerID": "Invalid manufacturer ID", + "Error_InvalidFirmwareID": "Invalid firmware ID", + "Error_InvalidFirmwareTarget": "Invalid firmware target", + "Error_InvalidHeaderInformation": "Invalid header information", + "Error_InvalidHeaderFormat": "Invalid header format", + "Error_InsufficientMemory": "Insufficient memory", + "Error_InvalidHardwareVersion": "Invalid hardware version", + "OK_WaitingForActivation": "Waiting for activation", + "OK_NoRestart": "No restart", + "OK_RestartPending": "Restart pending", + "Error_RetryLimitReached": "Retry limit reached", + "Error_Aborted": "Update aborted by bootloader", + "Error_NotSupported": "Firmware updates not supported", "OK": "Success" } }, "logs": { "title": "Z-Wave JS Logs", - "log_level": "Log Level", - "subscribed_to_logs": "Subscribed to Z-Wave JS Log Messages…", + "log_level": "Log level", + "subscribed_to_logs": "Subscribed to Z-Wave JS log messages…", "log_level_changed": "Log Level changed to: {level}", "download_logs": "Download logs" } @@ -4224,14 +4224,14 @@ "failed_to_set_hostname": "Setting hostname failed" } }, - "network_adapter": "Network Adapter", + "network_adapter": "Network adapter", "network_adapter_info": "Configure which network adapters integrations will use. Currently this setting only affects multicast traffic. A restart is required for these settings to apply.", "ip_information": "IP Information" }, "storage": { "caption": "Storage", "description": "{percent_used} used - {free_space} free", - "used_space": "Used Space", + "used_space": "Used space", "emmc_lifetime_used": "eMMC Lifetime Used", "disk_metrics": "Disk metrics", "datadisk": { @@ -4266,7 +4266,7 @@ "share": "Share" }, "mount_type": { - "nfs": "Network File Share (NFS)", + "nfs": "Network file share (NFS)", "cifs": "Samba/Windows (CIFS)" }, "cifs_versions": { @@ -4327,13 +4327,13 @@ } }, "system_health": { - "caption": "System Health", + "caption": "System health", "description": "Status, metrics and integration startup time", - "cpu_usage": "Processor Usage", - "ram_usage": "Memory Usage", - "core_stats": "Core Metrics", - "supervisor_stats": "Supervisor Metrics", - "integration_start_time": "Integration Startup Time" + "cpu_usage": "Processor usage", + "ram_usage": "Memory usage", + "core_stats": "Core metrics", + "supervisor_stats": "Supervisor metrics", + "integration_start_time": "Integration startup time" }, "system_dashboard": { "restart_homeassistant": "Restart Home Assistant" @@ -4384,7 +4384,7 @@ "error_secure_context": "Unable to load iframes pointing at websites using {target_protocol} if Home Assistant is served over {context_protocol}." }, "safe-mode": { - "header": "Safe Mode Activated", + "header": "Safe mode activated", "description": "Home Assistant ran into trouble while loading your configuration and is now running in safe mode. Take a look at the error log to see what went wrong." }, "starting": { @@ -4412,8 +4412,8 @@ "source": "Source", "energy": "Energy", "cost": "Cost", - "previous_energy": "Previous Energy", - "previous_cost": "Previous Cost", + "previous_energy": "Previous energy", + "previous_cost": "Previous cost", "battery_total": "Battery total", "total_costs": "Total costs" }, @@ -4477,7 +4477,7 @@ "entity": "Entity", "entity_id": "Entity ID", "domain": "Domain", - "last_changed": "Last Changed", + "last_changed": "Last changed", "search": "Search entities", "no_data": "No unused entities found" }, @@ -4493,7 +4493,7 @@ "confirm_delete_existing_cards_text": "Are you sure you want to delete your ''{name}'' view? The view contains {number} cards that will be deleted. This action cannot be undone." }, "menu": { - "configure_ui": "Edit Dashboard", + "configure_ui": "Edit dashboard", "help": "Help", "search": "Search", "assist": "Assist", @@ -4521,7 +4521,7 @@ "none": "None" }, "raw_editor": { - "header": "Edit Configuration", + "header": "Edit configuration", "save": "Save", "unsaved_changes": "Unsaved changes", "saved": "Saved", @@ -4544,7 +4544,7 @@ "title": "Title" }, "edit_view": { - "header": "View Configuration", + "header": "View configuration", "header_name": "{name} View Configuration", "add": "Add view", "edit": "Edit view", @@ -4572,16 +4572,16 @@ "view_no_badges": "Badges are not be supported by the current view type." }, "edit_card": { - "header": "Card Configuration", - "typed_header": "{type} Card Configuration", + "header": "Card configuration", + "typed_header": "{type} Card configuration", "pick_card": "Which card would you like to add?", "pick_card_view_title": "Which card would you like to add to your {name} view?", - "toggle_editor": "Toggle Editor", + "toggle_editor": "Toggle editor", "unsaved_changes": "You have unsaved changes", "confirm_cancel": "Are you sure you want to cancel?", - "show_visual_editor": "Show Visual Editor", - "show_code_editor": "Show Code Editor", - "add": "Add Card", + "show_visual_editor": "Show visual editor", + "show_code_editor": "Show code editor", + "add": "Add card", "edit": "Edit", "clear": "Clear", "delete": "Delete", @@ -4626,32 +4626,32 @@ "save": "Take control" }, "migrate": { - "header": "Configuration Incompatible", + "header": "Configuration incompatible", "para_no_id": "This element doesn't have an ID. Please add an ID to this element in 'ui-lovelace.yaml'.", "para_migrate": "Home Assistant can add IDs to all your cards and views automatically for you by pressing the 'Migrate configuration' button.", "migrate": "Migrate configuration" }, "action-editor": { - "navigation_path": "Navigation Path", - "url_path": "URL Path", + "navigation_path": "Navigation path", + "url_path": "URL path", "start_listening": "Start listening", "pipeline_id": "Assistant", "actions": { - "default_action": "Default Action", - "call-service": "Call Service", - "more-info": "More Info", + "default_action": "Default action", + "call-service": "Call service", + "more-info": "More info", "toggle": "Toggle", "navigate": "Navigate", "assist": "Assist", "url": "URL", - "none": "No Action" + "none": "No action" } }, "card": { "alarm-panel": { - "name": "Alarm Panel", - "available_states": "Available States", - "description": "The Alarm Panel card allows you to arm and disarm your alarm control panel integrations." + "name": "Alarm panel", + "available_states": "Available states", + "description": "The Alarm panel card allows you to arm and disarm your alarm control panel integrations." }, "area": { "name": "Area", @@ -4661,8 +4661,8 @@ "calendar": { "name": "Calendar", "description": "The Calendar card displays a calendar including day, week and list views", - "initial_view": "Initial View", - "calendar_entities": "Calendar Entities", + "initial_view": "Initial view", + "calendar_entities": "Calendar entities", "views": { "dayGridMonth": "Month", "dayGridWeek": "Week", @@ -4687,27 +4687,27 @@ }, "entities": { "name": "Entities", - "show_header_toggle": "Show Header Toggle?", + "show_header_toggle": "Show header toggle?", "toggle": "Toggle entities.", "description": "The Entities card is the most common type of card. It groups items together into lists.", "special_row": "special row", "edit_special_row": "View the details of this row by clicking the edit button", - "entity_row_editor": "Entity Row Editor", + "entity_row_editor": "Entity row editor", "secondary_info_values": { - "none": "No Secondary Info", + "none": "No secondary info", "entity-id": "Entity ID", - "last-changed": "Last Changed", - "last-triggered": "Last Triggered", + "last-changed": "Last changed", + "last-triggered": "Last triggered", "position": "Position", - "tilt-position": "Tilt Position", + "tilt-position": "Tilt position", "brightness": "Brightness", - "last-updated": "Last Updated" + "last-updated": "Last updated" }, "entity_row": { "divider": "Divider", - "call-service": "Call Service", + "call-service": "Call service", "section": "Section", - "weblink": "Web Link", + "weblink": "Web link", "attribute": "Attribute", "buttons": "Buttons", "conditional": "Conditional", @@ -4725,17 +4725,17 @@ "default_action_help": "The default action depends on the entity's capabilities, it will either be toggled or the more info dialog will be shown." }, "entity-filter": { - "name": "Entity Filter", - "description": "The Entity Filter card allows you to define a list of entities that you want to track only when in a certain state." + "name": "Entity filter", + "description": "The Entity filter card allows you to define a list of entities that you want to track only when in a certain state." }, "entity-row": { - "secondary_info": "Secondary Information" + "secondary_info": "Secondary information" }, "gauge": { "name": "Gauge", "needle_gauge": "Display as needle gauge?", "severity": { - "define": "Define Severity?", + "define": "Define severity?", "green": "Green", "red": "Red", "yellow": "Yellow" @@ -4758,12 +4758,12 @@ "description": "The Logbook card shows a list of events for entities." }, "history-graph": { - "name": "History Graph", - "description": "The History Graph card allows you to display a graph for each of the entities listed." + "name": "History graph", + "description": "The History graph card allows you to display a graph for each of the entities listed." }, "statistics-graph": { - "name": "Statistics Graph", - "description": "The Statistics Graph card allows you to display a graph of the statistics for each of the entities listed.", + "name": "Statistics graph", + "description": "The Statistics graph card allows you to display a graph of the statistics for each of the entities listed.", "period": "Period", "unit": "Unit", "stat_types": "Show stat types", @@ -4810,8 +4810,8 @@ } }, "horizontal-stack": { - "name": "Horizontal Stack", - "description": "The Horizontal Stack card allows you to stack together multiple cards, so they always sit next to each other in the space of one column." + "name": "Horizontal stack", + "description": "The Horizontal stack card allows you to stack together multiple cards, so they always sit next to each other in the space of one column." }, "humidifier": { "name": "Humidifier", @@ -4826,47 +4826,47 @@ "description": "The Light card allows you to change the brightness of the light." }, "generic": { - "alt_text": "Alternative Text", - "aspect_ratio": "Aspect Ratio", + "alt_text": "Alternative text", + "aspect_ratio": "Aspect ratio", "attribute": "Attribute", - "camera_image": "Camera Entity", - "image_entity": "Image Entity", - "camera_view": "Camera View", - "double_tap_action": "Double Tap Action", + "camera_image": "Camera entity", + "image_entity": "Image entity", + "camera_view": "Camera view", + "double_tap_action": "Double tap action", "entities": "Entities", "entity": "Entity", - "hold_action": "Hold Action", - "hours_to_show": "Hours to Show", - "days_to_show": "Days to Show", + "hold_action": "Hold action", + "hours_to_show": "Hours to show", + "days_to_show": "Days to show", "icon": "Icon", - "icon_height": "Icon Height", - "image": "Image Path", + "icon_height": "Icon height", + "image": "Image path", "maximum": "Maximum", "manual": "Manual", "manual_description": "Need to add a custom card or just want to manually write the YAML?", "minimum": "Minimum", "name": "Name", - "paste": "Paste from Clipboard", + "paste": "Paste from clipboard", "paste_description": "Paste a {type} card from the clipboard", - "refresh_interval": "Refresh Interval", - "show_icon": "Show Icon?", - "show_name": "Show Name?", - "show_state": "Show State?", - "tap_action": "Tap Action", + "refresh_interval": "Refresh interval", + "show_icon": "Show icon?", + "show_name": "Show name?", + "show_state": "Show state?", + "tap_action": "Tap action", "title": "Title", "theme": "Theme", "unit": "Unit", "url": "URL", "state": "State", - "secondary_info_attribute": "Secondary Info Attribute", + "secondary_info_attribute": "Secondary info attribute", "search": "Search", "state_color": "Color icons based on state?" }, "map": { "name": "Map", - "geo_location_sources": "Geolocation Sources", - "dark_mode": "Dark Mode?", - "default_zoom": "Default Zoom", + "geo_location_sources": "Geolocation sources", + "dark_mode": "Dark mode?", + "default_zoom": "Default zoom", "source": "Source", "description": "The Map card that allows you to display entities on a map." }, @@ -4876,39 +4876,39 @@ "description": "The Markdown card is used to render Markdown." }, "media-control": { - "name": "Media Control", - "description": "The Media Control card is used to display media player entities on an interface with easy to use controls." + "name": "Media control", + "description": "The Media control card is used to display media player entities on an interface with easy to use controls." }, "picture": { "name": "Picture", "description": "The Picture card allows you to set an image to use for navigation to various paths in your interface or to call a service." }, "picture-elements": { - "name": "Picture Elements", - "description": "The Picture Elements card is one of the most versatile types of cards. The cards allow you to position icons or text and even services! On an image based on coordinates." + "name": "Picture elements", + "description": "The Picture elements card is one of the most versatile types of cards. The cards allow you to position icons or text and even services! On an image based on coordinates." }, "picture-entity": { - "name": "Picture Entity", - "description": "The Picture Entity card displays an entity in the form of an image. Instead of images from URL, it can also show the picture of camera entities." + "name": "Picture entity", + "description": "The Picture entity card displays an entity in the form of an image. Instead of images from URL, it can also show the picture of camera entities." }, "picture-glance": { - "name": "Picture Glance", - "description": "The Picture Glance card shows an image and corresponding entity states as an icon. The entities on the right side allow toggle actions, others show the more info dialog.", - "state_entity": "State Entity" + "name": "Picture glance", + "description": "The Picture card allows you to set an image to use for navigation to various paths in your interface or to call a service.", + "state_entity": "State entity" }, "plant-status": { - "name": "Plant Status", - "description": "The Plant Status card is for all the lovely botanists out there." + "name": "Plant status", + "description": "The Plant status card is for all the lovely botanists out there." }, "sensor": { "name": "Sensor", "show_more_detail": "Show more detail", - "graph_type": "Graph Type", + "graph_type": "Graph type", "description": "The Sensor card gives you a quick overview of your sensors state with an optional graph to visualize change over time." }, "shopping-list": { - "name": "Shopping List", - "description": "The Shopping List card allows you to add, edit, check-off, and clear items from your shopping list.", + "name": "Shopping list", + "description": "The Shopping list card allows you to add, edit, check-off, and clear items from your shopping list.", "integration_not_loaded": "This card requires the `shopping_list` integration to be set up." }, "thermostat": { @@ -4972,16 +4972,16 @@ } }, "vertical-stack": { - "name": "Vertical Stack", - "description": "The Vertical Stack card allows you to group multiple cards so they always sit in the same column." + "name": "Vertical stack", + "description": "The Vertical stack card allows you to group multiple cards so they always sit in the same column." }, "weather-forecast": { - "name": "Weather Forecast", - "description": "The Weather Forecast card displays the weather. Very useful to include on interfaces that people display on the wall.", - "weather_to_show": "Weather to Show", - "show_both": "Show current Weather and Forecast", + "name": "Weather forecast", + "description": "The Weather forecast card displays the weather. Very useful to include on interfaces that people display on the wall.", + "weather_to_show": "Weather to show", + "show_both": "Show current weather and forecast", "show_only_current": "Show only current Weather", - "show_only_forecast": "Show only Forecast", + "show_only_forecast": "Show only forecast", "forecast_type": "Select forecast type", "no_type": "No type", "daily": "Daily", @@ -5031,7 +5031,7 @@ "custom_card": "Custom", "domain": "Domain", "entity": "Entity", - "by_entity": "By Entity", + "by_entity": "By entity", "by_card": "By Card" }, "header-footer": { @@ -5052,9 +5052,9 @@ }, "sub-element-editor": { "types": { - "header": "Header Editor", - "footer": "Footer Editor", - "row": "Entity Row Editor" + "header": "Header editor", + "footer": "Footer editor", + "row": "Entity row editor" } } }, @@ -5081,7 +5081,7 @@ "year": "Year", "previous": "Previous", "next": "Next", - "compare": "Compare Data" + "compare": "Compare data" } }, "reload_lovelace": "Reload UI" @@ -5120,7 +5120,7 @@ "description": "Enable or disable vibration on this device when controlling devices." }, "enable_shortcuts": { - "header": "Keyboard Shortcuts", + "header": "Keyboard shortcuts", "description": "Enable or disable keyboard shortcuts for performing various actions in the UI." }, "suspend": { @@ -5128,7 +5128,7 @@ "description": "Should we close the connection to the server after being hidden for 5 minutes?" }, "push_notifications": { - "header": "Push Notifications", + "header": "Push notifications", "description": "Send notifications to this device.", "error_load_platform": "Configure notify.html5.", "error_use_https": "Requires SSL enabled for frontend.", @@ -5145,7 +5145,7 @@ "dropdown_label": "Language" }, "number_format": { - "header": "Number Format", + "header": "Number format", "dropdown_label": "Number format", "description": "Choose how numbers are formatted.", "formats": { @@ -5158,7 +5158,7 @@ } }, "time_format": { - "header": "Time Format", + "header": "Time format", "dropdown_label": "Time format", "description": "Choose how times are formatted.", "formats": { @@ -5169,7 +5169,7 @@ } }, "time_zone": { - "header": "Time Zone", + "header": "Time zone", "dropdown_label": "Time zone", "description": "Choose the time zone to use for displaying times.", "options": { @@ -5178,7 +5178,7 @@ } }, "date_format": { - "header": "Date Format", + "header": "Date format", "dropdown_label": "Date format", "description": "Choose how dates are formatted.", "formats": { @@ -5226,10 +5226,10 @@ "default_dashboard_label": "Overview (default)" }, "change_password": { - "header": "Change Password", - "current_password": "Current Password", - "new_password": "New Password", - "confirm_new_password": "Confirm New Password", + "header": "Change password", + "current_password": "Current password", + "new_password": "New password", + "confirm_new_password": "Confirm new password", "error_required": "Required", "submit": "Submit", "error_new_mismatch": "Entered new password values do not match", @@ -5237,7 +5237,7 @@ "success": "Password changed successfully" }, "mfa": { - "header": "Multi-factor Authentication Modules", + "header": "Multi-factor authentication modules", "disable": "Disable", "enable": "Enable", "confirm_disable": "Are you sure you want to disable {name}?" @@ -5250,12 +5250,12 @@ "submit": "Submit" }, "advanced_mode": { - "title": "Advanced Mode", + "title": "Advanced mode", "description": "Unlocks advanced features.", "link_promo": "Learn more" }, "refresh_tokens": { - "header": "Refresh Tokens", + "header": "Refresh tokens", "description": "Each refresh token represents a login session. Refresh tokens will be automatically removed when you click log out. The following refresh tokens are currently active for your account.", "token_title": "Refresh token for {clientId}", "created_at": "Created {date}", @@ -5266,7 +5266,7 @@ "current_token_tooltip": "Unable to delete current refresh token" }, "long_lived_access_tokens": { - "header": "Long-Lived Access Tokens", + "header": "Long-Lived access tokens", "description": "Create long-lived access tokens to allow your scripts to interact with your Home Assistant instance. Each token will be valid for 10 years from creation. The following long-lived access tokens are currently active.", "learn_auth_requests": "Learn how to make authenticated requests.", "created": "Created {date}", @@ -5348,7 +5348,7 @@ "step": { "init": { "data": { - "password": "API Password" + "password": "API password" }, "description": "Please input the API password in your HTTP configuration:" }, @@ -5397,28 +5397,28 @@ "arsaboo": { "names": { "upstairs": "Upstairs", - "family_room": "Family Room", + "family_room": "Family room", "kitchen": "Kitchen", "patio": "Patio", "hallway": "Hallway", - "master_bedroom": "Master Bedroom", + "master_bedroom": "Master bedroom", "left": "Left", "right": "Right", "mirror": "Mirror", - "temperature_study": "Temperature Study" + "temperature_study": "Temperature study" }, "labels": { "lights": "Lights", "information": "Information", - "morning_commute": "Morning Commute", - "commute_home": "Commute to Home", + "morning_commute": "Morning commute", + "commute_home": "Commute to home", "entertainment": "Entertainment", "activity": "Activity", - "hdmi_input": "HDMI Input", - "hdmi_switcher": "HDMI Switcher", + "hdmi_input": "HDMI input", + "hdmi_switcher": "HDMI switcher", "volume": "Volume", - "total_tv_time": "Total TV Time", - "turn_tv_off": "Turn Television off", + "total_tv_time": "Total TV Ttme", + "turn_tv_off": "Turn television off", "air": "Air" }, "unit": { @@ -5434,9 +5434,9 @@ "title": "Events", "description": "Fire an event on the event bus.", "documentation": "Events documentation", - "type": "Event Type", - "data": "Event Data (YAML, optional)", - "fire_event": "Fire Event", + "type": "Event type", + "data": "Event data (YAML, optional)", + "fire_event": "Fire event", "event_fired": "Event {name} fired", "active_listeners": "Active listeners", "count_listeners": " ({count} listeners)", @@ -5451,12 +5451,12 @@ "services": { "title": "Services", "description": "The service dev tool allows you to call any available service in Home Assistant.", - "call_service": "Call Service", + "call_service": "Call service", "response": "Response", "column_parameter": "Parameter", "column_description": "Description", "column_example": "Example", - "fill_example_data": "Fill Example Data", + "fill_example_data": "Fill example data", "yaml_mode": "Go to YAML mode", "ui_mode": "Go to UI mode", "yaml_parameters": "Parameters only available in YAML mode", @@ -5472,7 +5472,7 @@ "state": "State", "attributes": "Attributes", "state_attributes": "State attributes (YAML, optional)", - "set_state": "Set State", + "set_state": "Set state", "current_entities": "Current entities", "filter_entities": "Filter entities", "filter_states": "Filter states", @@ -5535,7 +5535,7 @@ "title": "YAML", "section": { "validation": { - "heading": "Check and Restart", + "heading": "Check and restart", "introduction": "A basic validation of the configuration is automatically done before restarting. The basic validation ensures the YAML configuration doesn't have errors which will prevent Home Assistant or any integration from starting. It's also possible to only do the basic validation check without restarting.", "check_config": "Check configuration", "valid": "Configuration will not prevent Home Assistant from starting!", @@ -5755,8 +5755,8 @@ }, "dashboard": { "changelog": "Changelog", - "cpu_usage": "Add-on CPU Usage", - "ram_usage": "Add-on RAM Usage", + "cpu_usage": "Add-on CPU usage", + "ram_usage": "Add-on RAM usage", "hostname": "Hostname", "new_update_available": "{name} {version} is available", "not_available_arch": "This add-on is not compatible with the processor of your device or the operating system you have installed on your device.", @@ -5780,31 +5780,31 @@ "description": "Add-ons can have one of three stages:\n\n{icon_stable} **Stable**: These are add-ons ready to be used in production.\n\n{icon_experimental} **Experimental**: These may contain bugs, and may be unfinished.\n\n{icon_deprecated} **Deprecated**: These add-ons will no longer receive any updates." }, "rating": { - "title": "Add-on Security Rating", + "title": "Add-on security rating", "description": "Home Assistant provides a security rating to each of the add-ons, which indicates the risks involved when using this add-on. The more access an add-on requires on your system, the lower the score, thus raising the possible security risks.\n\nA score is on a scale from 1 to 8. Where 1 is the lowest score (considered the most insecure and highest risk) and a score of 8 is the highest score (considered the most secure and lowest risk)." }, "host_network": { - "title": "Host Network", + "title": "Host network", "description": "Add-ons usually run in their own isolated network layer, which prevents them from accessing the network of the host operating system. In some cases, this network isolation can limit add-ons in providing their services and therefore, the isolation can be lifted by the add-on author, giving the add-on full access to the network capabilities of the host machine. This gives the add-on more networking capabilities but lowers the security, hence, the security rating of the add-on will be lowered when this option is used by the add-on." }, "homeassistant_api": { - "title": "Home Assistant API Access", + "title": "Home Assistant API access", "description": "This add-on is allowed to access your running Home Assistant instance directly via the Home Assistant API. This mode handles authentication for the add-on as well, which enables an add-on to interact with Home Assistant without the need for additional authentication tokens." }, "full_access": { - "title": "Full Hardware Access", + "title": "Full Hardware access", "description": "This add-on is given full access to the hardware of your system, by request of the add-on author. Access is comparable to the privileged mode in Docker. Since this opens up possible security risks, this feature impacts the add-on security score negatively.\n\nThis level of access is not granted automatically and needs to be confirmed by you. To do this, you need to disable the protection mode on the add-on manually. Only disable the protection mode if you know, need AND trust the source of this add-on." }, "hassio_api": { - "title": "Supervisor API Access", + "title": "Supervisor API access", "description": "The add-on was given access to the Supervisor API, by request of the add-on author. By default, the add-on can access general version information of your system. When the add-on requests 'manager' or 'admin' level access to the API, it will gain access to control multiple parts of your Home Assistant system. This permission is indicated by this badge and will impact the security score of the add-on negatively." }, "docker_api": { - "title": "Full Docker Access", + "title": "Full Docker access", "description": "The add-on author has requested the add-on to have management access to the Docker instance running on your system. This mode gives the add-on full access and control to your entire Home Assistant system, which adds security risks, and could damage your system when misused. Therefore, this feature impacts the add-on security score negatively.\n\nThis level of access is not granted automatically and needs to be confirmed by you. To do this, you need to disable the protection mode on the add-on manually. Only disable the protection mode if you know, need AND trust the source of this add-on." }, "host_pid": { - "title": "Host Processes Namespace", + "title": "Host processes namespace", "description": "Usually, the processes the add-on runs, are isolated from all other system processes. The add-on author has requested the add-on to have access to the system processes running on the host system instance, and allow the add-on to spawn processes on the host system as well. This mode gives the add-on full access and control to your entire Home Assistant system, which adds security risks, and could damage your system when misused. Therefore, this feature impacts the add-on security score negatively.\n\nThis level of access is not granted automatically and needs to be confirmed by you. To do this, you need to disable the protection mode on the add-on manually. Only disable the protection mode if you know, need AND trust the source of this add-on." }, "apparmor": { @@ -5812,7 +5812,7 @@ "description": "AppArmor ('Application Armor') is a Linux kernel security module that restricts add-ons capabilities like network access, raw socket access, and permission to read, write, or execute specific files.\n\nAdd-on authors can provide their security profiles, optimized for the add-on, or request it to be disabled. If AppArmor is disabled, it will raise security risks and therefore, has a negative impact on the security score of the add-on." }, "auth_api": { - "title": "Home Assistant Authentication", + "title": "Home Assistant authentication", "description": "An add-on can authenticate users against Home Assistant, allowing add-ons to give users the possibility to log into applications running inside add-ons, using their Home Assistant username/password. This badge indicates if the add-on author requests this capability." }, "ingress": { @@ -5987,12 +5987,12 @@ }, "system": { "log": { - "log_provider": "Log Provider", + "log_provider": "Log provider", "get_logs": "Failed to get {provider} logs, {error}" }, "supervisor": { - "cpu_usage": "Supervisor CPU Usage", - "ram_usage": "Supervisor RAM Usage", + "cpu_usage": "Supervisor CPU usage", + "ram_usage": "Supervisor RAM usage", "failed_to_set_option": "Failed to set Supervisor option", "failed_to_reload": "Failed to reload the Supervisor", "failed_to_update": "Failed to update the Supervisor", @@ -6006,23 +6006,23 @@ "leave_beta_description": "Get stable updates for Home Assistant, Supervisor and host", "join_beta_action": "Join beta channel", "join_beta_description": "Get beta updates for Home Assistant (RCs), Supervisor and host", - "share_diagnostics": "Share Diagnostics", + "share_diagnostics": "Share diagnostics", "share_diagnostics_description": "Share crash reports and diagnostic information.", "reload_supervisor": "Reload Supervisor", "warning": "WARNING", "search": "Search", - "share_diagonstics_title": "Help Improve Home Assistant", + "share_diagonstics_title": "Help improve Home Assistant", "share_diagonstics_description": "Would you want to automatically share crash reports and diagnostic information when the Supervisor encounters unexpected errors? {line_break} This will allow us to fix the problems, the information is only accessible to the Home Assistant Core team and will not be shared with others.{line_break} The data does not include any private/sensitive information and you can disable this in settings at any time you want.", "unsupported_reason": { "apparmor": "AppArmor is not enabled on the host", "content_trust": "Content-trust validation is disabled", "dbus": "DBUS", - "docker_configuration": "Docker Configuration", - "docker_version": "Docker Version", + "docker_configuration": "Docker configuration", + "docker_version": "Docker version", "job_conditions": "Ignored job conditions", "lxc": "LXC", - "network_manager": "Network Manager", - "os": "Operating System", + "network_manager": "Network manager", + "os": "Operating system", "os_agent": "OS Agent", "privileged": "Supervisor is not privileged", "software": "Unsupported software detected", @@ -6047,14 +6047,14 @@ "failed_to_move": "Failed to move data disk", "used_space": "Used space", "hostname": "Hostname", - "change_hostname": "Change Hostname", + "change_hostname": "Change hostname", "new_hostname": "Please enter a new hostname:", "ip_address": "IP Address", "change": "Change", - "operating_system": "Operating System", + "operating_system": "Operating system", "docker_version": "Docker version", "deployment": "Deployment", - "emmc_lifetime_used": "eMMC Lifetime Used", + "emmc_lifetime_used": "eMMC lifetime used", "reboot_host": "Reboot host", "confirm_reboot": "Are you sure you want to reboot the host?", "confirm_shutdown": "Are you sure you want to shutdown the host?", @@ -6064,8 +6064,8 @@ "move_datadisk": "Move data disk" }, "core": { - "cpu_usage": "Core CPU Usage", - "ram_usage": "Core RAM Usage" + "cpu_usage": "Core CPU usage", + "ram_usage": "Core RAM usage" } }, "backup": { @@ -6116,15 +6116,15 @@ "static": "Static", "auto": "Automatic", "disabled": "Disabled", - "ip_netmask": "IP address/Netmask", + "ip_netmask": "IP address/netmask", "gateway": "Gateway address", - "dns_servers": "DNS Servers", + "dns_servers": "DNS servers", "unsaved": "You have unsaved changes, these will get lost if you change tabs, do you want to continue?", "failed_to_change": "Failed to change network settings" }, "registries": { - "title_add": "Add New Container Registry", - "title_manage": "Manage Container Registries", + "title_add": "Add new container registry", + "title_manage": "Manage container registries", "registry": "Registry", "username": "Username", "password": "Password", From b4e2f4b0f5e927de89b69c295f0f54656094abd0 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Thu, 3 Aug 2023 21:49:31 +0200 Subject: [PATCH 004/182] Allow to sort options in select selector (#17468) --- .../ha-selector/ha-selector-select.ts | 20 ++++++++++++++++--- src/data/selector.ts | 1 + 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/components/ha-selector/ha-selector-select.ts b/src/components/ha-selector/ha-selector-select.ts index 71747c4d27..37897ea0e8 100644 --- a/src/components/ha-selector/ha-selector-select.ts +++ b/src/components/ha-selector/ha-selector-select.ts @@ -16,6 +16,7 @@ import "../ha-formfield"; import "../ha-radio"; import "../ha-select"; import "../ha-input-helper-text"; +import { caseInsensitiveStringCompare } from "../../common/string/compare"; @customElement("ha-selector-select") export class HaSelectSelector extends LitElement { @@ -51,12 +52,25 @@ export class HaSelectSelector extends LitElement { if (this.localizeValue && translationKey) { options.forEach((option) => { - option.label = - this.localizeValue!(`${translationKey}.options.${option.value}`) || - option.label; + const localizedLabel = this.localizeValue!( + `${translationKey}.options.${option.value}` + ); + if (localizedLabel) { + option.label = localizedLabel; + } }); } + if (this.selector.select?.sort) { + options.sort((a, b) => + caseInsensitiveStringCompare( + a.label, + b.label, + this.hass.locale.language + ) + ); + } + if (!this.selector.select?.custom_value && this._mode === "list") { if (!this.selector.select?.multiple) { return html` diff --git a/src/data/selector.ts b/src/data/selector.ts index 5708470a45..148a654603 100644 --- a/src/data/selector.ts +++ b/src/data/selector.ts @@ -296,6 +296,7 @@ export interface SelectSelector { mode?: "list" | "dropdown"; options: readonly string[] | readonly SelectOption[]; translation_key?: string; + sort?: boolean; } | null; } From 2fdd1464f8a1980dc4011938a861e1a2de78ef6c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Aug 2023 23:05:44 -0400 Subject: [PATCH 005/182] Update typescript-eslint monorepo to v6.2.1 (#17476) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- yarn.lock | 104 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 45b4f45a36..3a1180f346 100644 --- a/package.json +++ b/package.json @@ -184,8 +184,8 @@ "@types/sortablejs": "1.15.1", "@types/tar": "6.1.5", "@types/webspeechapi": "0.0.29", - "@typescript-eslint/eslint-plugin": "6.2.0", - "@typescript-eslint/parser": "6.2.0", + "@typescript-eslint/eslint-plugin": "6.2.1", + "@typescript-eslint/parser": "6.2.1", "@web/dev-server": "0.1.38", "@web/dev-server-rollup": "0.4.1", "babel-loader": "9.1.3", diff --git a/yarn.lock b/yarn.lock index b1cc8ea2a8..6944109197 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4647,15 +4647,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:6.2.0": - version: 6.2.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.2.0" +"@typescript-eslint/eslint-plugin@npm:6.2.1": + version: 6.2.1 + resolution: "@typescript-eslint/eslint-plugin@npm:6.2.1" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.2.0 - "@typescript-eslint/type-utils": 6.2.0 - "@typescript-eslint/utils": 6.2.0 - "@typescript-eslint/visitor-keys": 6.2.0 + "@typescript-eslint/scope-manager": 6.2.1 + "@typescript-eslint/type-utils": 6.2.1 + "@typescript-eslint/utils": 6.2.1 + "@typescript-eslint/visitor-keys": 6.2.1 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -4669,44 +4669,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 1ef46b1c2e3e2013f66b4982dcfb9e198a3824cc1503b843e553201a108a3cb6e4adfb2c486158c89d993e5e4b9d99aeb2af28297e43da98c4750dae8f5131b5 + checksum: e73f3fe36519d895037d223f3ddf200b97e17bcde9390984118c38733add1edf996357c809ec2db92cec61bc7c9e5a3d9a583e0d0f92fa9c3919b68716a27b37 languageName: node linkType: hard -"@typescript-eslint/parser@npm:6.2.0": - version: 6.2.0 - resolution: "@typescript-eslint/parser@npm:6.2.0" +"@typescript-eslint/parser@npm:6.2.1": + version: 6.2.1 + resolution: "@typescript-eslint/parser@npm:6.2.1" dependencies: - "@typescript-eslint/scope-manager": 6.2.0 - "@typescript-eslint/types": 6.2.0 - "@typescript-eslint/typescript-estree": 6.2.0 - "@typescript-eslint/visitor-keys": 6.2.0 + "@typescript-eslint/scope-manager": 6.2.1 + "@typescript-eslint/types": 6.2.1 + "@typescript-eslint/typescript-estree": 6.2.1 + "@typescript-eslint/visitor-keys": 6.2.1 debug: ^4.3.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: ba79674f2d4599a24c7afa8f18ec28243b80df39f82a4a6b7a4ce7c584ec37d4ade40a3aa058d597a5cbf71647a40d0995866748d14cf4b52d8ad4420d10f669 + checksum: cf4768cbfc696ce1d4b15ae55b3d2b52761e91a4a80e738cf3a75c501c2257d735cd6e462567965069d0d693a8cf5463ab9e8b97c36c6ed1fccd3c1c09855bdb languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.2.0": - version: 6.2.0 - resolution: "@typescript-eslint/scope-manager@npm:6.2.0" +"@typescript-eslint/scope-manager@npm:6.2.1": + version: 6.2.1 + resolution: "@typescript-eslint/scope-manager@npm:6.2.1" dependencies: - "@typescript-eslint/types": 6.2.0 - "@typescript-eslint/visitor-keys": 6.2.0 - checksum: 75a650a3ede78bf841a3bf3f4880b94a06aa4c420f399a6fb9faee19a2e5998f7e330a13f78e07c4958413345bab58b0593f09fa163a77e8f6353012e795660c + "@typescript-eslint/types": 6.2.1 + "@typescript-eslint/visitor-keys": 6.2.1 + checksum: 3bb461678c7e729895c5ac16781ec7d66efc6ffa944bb49693ce8e9560f9a6cac70929157c0fc0875b2829ae19a5cdabb97973ddcfb7e81c16e22cdd5d39e3fd languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.2.0": - version: 6.2.0 - resolution: "@typescript-eslint/type-utils@npm:6.2.0" +"@typescript-eslint/type-utils@npm:6.2.1": + version: 6.2.1 + resolution: "@typescript-eslint/type-utils@npm:6.2.1" dependencies: - "@typescript-eslint/typescript-estree": 6.2.0 - "@typescript-eslint/utils": 6.2.0 + "@typescript-eslint/typescript-estree": 6.2.1 + "@typescript-eslint/utils": 6.2.1 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -4714,23 +4714,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 9adb542fb3c49bf5c1fecca98549bee3fcfd28a0ceee5227817a1ceb0841b912e322f58ba1b3ca98a47fc998cbec0a3d69cacb9cf9ac4be1d133b11bb9d53aae + checksum: 7f8d80f03e6ddc1838307a2a4df61dc4bd8400efb9dcc7316063ae293fce54afad238404a0c25cd2cdaceee73ae514f254b850bd7ff11e2def700d5d6b90af05 languageName: node linkType: hard -"@typescript-eslint/types@npm:6.2.0": - version: 6.2.0 - resolution: "@typescript-eslint/types@npm:6.2.0" - checksum: 81878866cf7f49dbc335cce05adfbd994f348e2ebe9538fd6e934fa82e44186c16b2112b8d5f9f4c528ea127be157185be5e35e4913db4880d20ac495785baaf +"@typescript-eslint/types@npm:6.2.1": + version: 6.2.1 + resolution: "@typescript-eslint/types@npm:6.2.1" + checksum: 388d32f15a9db8ad5d80794caf9ab280d6e5a428efdf4f6a6dfc4069afe4d19da32d628acf638e4c5b92ee77a9a18eecf728a778a3b91cc8a24484af579fc9cf languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.2.0": - version: 6.2.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.2.0" +"@typescript-eslint/typescript-estree@npm:6.2.1": + version: 6.2.1 + resolution: "@typescript-eslint/typescript-estree@npm:6.2.1" dependencies: - "@typescript-eslint/types": 6.2.0 - "@typescript-eslint/visitor-keys": 6.2.0 + "@typescript-eslint/types": 6.2.1 + "@typescript-eslint/visitor-keys": 6.2.1 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4739,34 +4739,34 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 5bfd5bf09feff6c4807cfa65cf407dd0249f7d487d6820941dd05999ee35cacdabaacadf23c92b90b57920025e93088e93924bc8df41f393ac0366538eb2902f + checksum: 3d9beeb5e36b8827de5c160ed8e5c111dd66ca00671b183409b051e242b291480679b900bb74aaf4895dcae49497037567d3fcbbe67fa9930786ddd01c685f04 languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.2.0": - version: 6.2.0 - resolution: "@typescript-eslint/utils@npm:6.2.0" +"@typescript-eslint/utils@npm:6.2.1": + version: 6.2.1 + resolution: "@typescript-eslint/utils@npm:6.2.1" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.2.0 - "@typescript-eslint/types": 6.2.0 - "@typescript-eslint/typescript-estree": 6.2.0 + "@typescript-eslint/scope-manager": 6.2.1 + "@typescript-eslint/types": 6.2.1 + "@typescript-eslint/typescript-estree": 6.2.1 semver: ^7.5.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: 54f062412a8ce23554ca4063d275327981640426b1ecd1073d30dd8b9464ff7af68b8f9f6272033bad9307815d56f2f922faa8a995421efdccd6165dd62557e1 + checksum: d16356a633f39d988a9af159da15e28c6a28fa47abce372061c79cf186d193d148e1c32862c9702ff87e2a06f7a2f82773e4b56320a39f432f4b1a989f8005ad languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.2.0": - version: 6.2.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.2.0" +"@typescript-eslint/visitor-keys@npm:6.2.1": + version: 6.2.1 + resolution: "@typescript-eslint/visitor-keys@npm:6.2.1" dependencies: - "@typescript-eslint/types": 6.2.0 + "@typescript-eslint/types": 6.2.1 eslint-visitor-keys: ^3.4.1 - checksum: b400c657c7e5c65b289304f6f5cee6536f23b3441306f82aff2d2e047e13770330715d4f7b29e734b0b2dab6030e41028894d5cd441696115bfea43ad18b2c54 + checksum: c05a1c45129f2cf9a8c49dadc3da10b675232e59b69dfe9fdc0bfb45d3be077ceff78097baf50e502dab3e71ce9fd799d2015e356a4be2787ee10c6c7a44ea8a languageName: node linkType: hard @@ -9710,8 +9710,8 @@ __metadata: "@types/sortablejs": 1.15.1 "@types/tar": 6.1.5 "@types/webspeechapi": 0.0.29 - "@typescript-eslint/eslint-plugin": 6.2.0 - "@typescript-eslint/parser": 6.2.0 + "@typescript-eslint/eslint-plugin": 6.2.1 + "@typescript-eslint/parser": 6.2.1 "@vaadin/combo-box": 24.1.4 "@vaadin/vaadin-themable-mixin": 24.1.4 "@vibrant/color": 3.2.1-alpha.1 From bfb439c776db3c86e6f8c1e4a25c01c83f9e9e87 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Aug 2023 23:08:34 -0400 Subject: [PATCH 006/182] Update dependency tsparticles-engine to v2.11.1 (#17424) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 3a1180f346..c26a44d94b 100644 --- a/package.json +++ b/package.json @@ -135,7 +135,7 @@ "sortablejs": "1.15.0", "superstruct": "1.0.3", "tinykeys": "2.1.0", - "tsparticles-engine": "2.11.0", + "tsparticles-engine": "2.11.1", "tsparticles-preset-links": "2.11.0", "unfetch": "5.0.0", "vis-data": "7.1.6", diff --git a/yarn.lock b/yarn.lock index 6944109197..c4f843c3cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9806,7 +9806,7 @@ __metadata: terser-webpack-plugin: 5.3.9 tinykeys: 2.1.0 ts-lit-plugin: 2.0.0-pre.1 - tsparticles-engine: 2.11.0 + tsparticles-engine: 2.11.1 tsparticles-preset-links: 2.11.0 typescript: 5.1.6 unfetch: 5.0.0 @@ -15335,10 +15335,10 @@ __metadata: languageName: node linkType: hard -"tsparticles-engine@npm:2.11.0, tsparticles-engine@npm:^2.11.0": - version: 2.11.0 - resolution: "tsparticles-engine@npm:2.11.0" - checksum: 1aad1c3969b38dec5b468220eba7a1a26982fd8b13567f37970fe8d1cd6e7609da8622e8b16599b6359ecc681a33e9672a8a697e5ea9f146b15cc709b9fa78d9 +"tsparticles-engine@npm:2.11.1, tsparticles-engine@npm:^2.11.0": + version: 2.11.1 + resolution: "tsparticles-engine@npm:2.11.1" + checksum: c8e18f8d3aac2f10b4a0ba4f5b6039822cc91fe32fb0a5e2c9e90746108ce6a71dfe8c28ce9f76ce4ff5de8fbd72b61d97a39411efd2402a92f2b4f30bd5f650 languageName: node linkType: hard From 052ffbb1d65621310ed07aa6d5110a431bacfe79 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Aug 2023 23:09:44 -0400 Subject: [PATCH 007/182] Update dependency magic-string to v0.30.2 (#17434) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index c26a44d94b..82ef5850d8 100644 --- a/package.json +++ b/package.json @@ -220,7 +220,7 @@ "lint-staged": "13.2.3", "lit-analyzer": "2.0.0-pre.3", "lodash.template": "4.5.0", - "magic-string": "0.30.1", + "magic-string": "0.30.2", "map-stream": "0.0.7", "merge-stream": "2.0.0", "mocha": "10.2.0", diff --git a/yarn.lock b/yarn.lock index c4f843c3cc..4ab4ef8594 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9774,7 +9774,7 @@ __metadata: lit-analyzer: 2.0.0-pre.3 lodash.template: 4.5.0 luxon: 3.3.0 - magic-string: 0.30.1 + magic-string: 0.30.2 map-stream: 0.0.7 marked: 4.3.0 memoize-one: 6.0.0 @@ -11678,12 +11678,12 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:0.30.1": - version: 0.30.1 - resolution: "magic-string@npm:0.30.1" +"magic-string@npm:0.30.2": + version: 0.30.2 + resolution: "magic-string@npm:0.30.2" dependencies: "@jridgewell/sourcemap-codec": ^1.4.15 - checksum: 7bc7e4493e32a77068f3753bf8652d4ab44142122eb7fb9fa871af83bef2cd2c57518a6769701cd5d0379bd624a13bc8c72ca25ac5655b27e5a61adf1fd38db2 + checksum: c0bbb9b27b2772e6bfaa5d0f6452d47c462d588ae7c43fbaac062b07836d3ec0140fcdd42a57aa53ed990abafcdd0fc17907813921b5df04eccf43e67674bc57 languageName: node linkType: hard From e01dda437938e43fd6ad824b5eaa6b99edf7206d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 4 Aug 2023 03:21:13 +0000 Subject: [PATCH 008/182] Update dependency instant-mocha to v1.5.2 (#17480) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 40 +++++++++++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 82ef5850d8..3b839c77ed 100644 --- a/package.json +++ b/package.json @@ -215,7 +215,7 @@ "gulp-zopfli-green": "6.0.1", "html-minifier-terser": "7.2.0", "husky": "8.0.3", - "instant-mocha": "1.5.1", + "instant-mocha": "1.5.2", "jszip": "3.10.1", "lint-staged": "13.2.3", "lit-analyzer": "2.0.0-pre.3", diff --git a/yarn.lock b/yarn.lock index 4ab4ef8594..83b5fcd85e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1533,6 +1533,15 @@ __metadata: languageName: node linkType: hard +"@cspotcode/source-map-support@npm:^0.8.1": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": 0.3.9 + checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa + languageName: node + linkType: hard + "@discoveryjs/json-ext@npm:^0.5.0": version: 0.5.7 resolution: "@discoveryjs/json-ext@npm:0.5.7" @@ -1992,6 +2001,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/resolve-uri@npm:^3.0.3": + version: 3.1.1 + resolution: "@jridgewell/resolve-uri@npm:3.1.1" + checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 + languageName: node + linkType: hard + "@jridgewell/set-array@npm:^1.0.1": version: 1.1.2 resolution: "@jridgewell/set-array@npm:1.1.2" @@ -2023,6 +2039,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" + dependencies: + "@jridgewell/resolve-uri": ^3.0.3 + "@jridgewell/sourcemap-codec": ^1.4.10 + checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.18 resolution: "@jridgewell/trace-mapping@npm:0.3.18" @@ -9763,7 +9789,7 @@ __metadata: html-minifier-terser: 7.2.0 husky: 8.0.3 idb-keyval: 6.2.1 - instant-mocha: 1.5.1 + instant-mocha: 1.5.2 intl-messageformat: 10.5.0 js-yaml: 4.1.0 jszip: 3.10.1 @@ -10196,20 +10222,20 @@ __metadata: languageName: node linkType: hard -"instant-mocha@npm:1.5.1": - version: 1.5.1 - resolution: "instant-mocha@npm:1.5.1" +"instant-mocha@npm:1.5.2": + version: 1.5.2 + resolution: "instant-mocha@npm:1.5.2" dependencies: + "@cspotcode/source-map-support": ^0.8.1 fs-require: ^1.6.0 memfs: ^3.5.0 - source-map-support: ^0.5.21 yargs: ^16.2.0 peerDependencies: mocha: 8 || 9 || 10 webpack: 4 || 5 bin: instant-mocha: dist/cli.js - checksum: c098a792ba3bddc1d421da7067c21818ccc64e45d98ccce735ab35c29132f01cf624a2106b1ecd5f1e5d9c9d9bbb8f947d92db8bcfa7ddae01425f7fd291ee6e + checksum: fc015e14825e2a4b9d14abee2212fefaeb65ef5d5cc9f4b0b569ac17505bd26d791ef8cddb91ab7dee09d7ff38356f19591d2bfe8ab2fafd7a75e31a67bf323d languageName: node linkType: hard @@ -14509,7 +14535,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.21, source-map-support@npm:~0.5.12, source-map-support@npm:~0.5.20": +"source-map-support@npm:~0.5.12, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: From 725c8685fd817429ba836751dddf48264218cb31 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 4 Aug 2023 03:54:58 +0000 Subject: [PATCH 009/182] Update dependency core-js to v3.32.0 (#17433) * Update dependency core-js to v3.32.0 * Update Babel setting --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Steve Repsher --- build-scripts/bundle.cjs | 2 +- package.json | 2 +- yarn.lock | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build-scripts/bundle.cjs b/build-scripts/bundle.cjs index 622527f194..cb9535c739 100644 --- a/build-scripts/bundle.cjs +++ b/build-scripts/bundle.cjs @@ -98,7 +98,7 @@ module.exports.babelOptions = ({ latestBuild, isProdBuild, isTestBuild }) => ({ "@babel/preset-env", { useBuiltIns: latestBuild ? false : "entry", - corejs: latestBuild ? false : { version: "3.31", proposals: true }, + corejs: latestBuild ? false : { version: "3.32", proposals: true }, bugfixes: true, }, ], diff --git a/package.json b/package.json index 3b839c77ed..a2d51c5ae3 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "app-datepicker": "5.1.1", "chart.js": "3.3.2", "comlink": "4.4.1", - "core-js": "3.31.1", + "core-js": "3.32.0", "cropperjs": "1.5.13", "date-fns": "2.30.0", "date-fns-tz": "2.0.0", diff --git a/yarn.lock b/yarn.lock index 83b5fcd85e..9d797eaa0e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7167,10 +7167,10 @@ __metadata: languageName: node linkType: hard -"core-js@npm:3.31.1": - version: 3.31.1 - resolution: "core-js@npm:3.31.1" - checksum: 14519213a63c55cf188bdd2f4dece54583feaf6b90e75d6c65e07f509cd487055bf64898aeda7c97c36029ac1ea2f2ed8e4b02281553f6a257e7143a32a14015 +"core-js@npm:3.32.0": + version: 3.32.0 + resolution: "core-js@npm:3.32.0" + checksum: 52921395028550e4c9d21d47b9836439bb5b6b9eefc34d45a3948a68d81fdd093acc0fadf69f9cf632b82f01f95f22f484408a93dd9e940b19119ac204cd2925 languageName: node linkType: hard @@ -9754,7 +9754,7 @@ __metadata: chai: 4.3.7 chart.js: 3.3.2 comlink: 4.4.1 - core-js: 3.31.1 + core-js: 3.32.0 cropperjs: 1.5.13 date-fns: 2.30.0 date-fns-tz: 2.0.0 From 40141923b629be7df012f9db86ee0627175e0b7a Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Fri, 4 Aug 2023 11:11:54 +0200 Subject: [PATCH 010/182] Use service translations in logbook (#17461) --- src/panels/logbook/ha-logbook-renderer.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/panels/logbook/ha-logbook-renderer.ts b/src/panels/logbook/ha-logbook-renderer.ts index 83293b562b..fe5f955637 100644 --- a/src/panels/logbook/ha-logbook-renderer.ts +++ b/src/panels/logbook/ha-logbook-renderer.ts @@ -38,6 +38,7 @@ import { import { loadVirtualizer } from "../../resources/virtualizer"; import { HomeAssistant } from "../../types"; import { brandsUrl } from "../../util/brands-url"; +import { domainToName } from "../../data/integration"; declare global { interface HASSDomEvents { @@ -89,6 +90,8 @@ class HaLogbookRenderer extends LitElement { (!this.hasUpdated && this.virtualize) || (changedProps.has("virtualize") && this.virtualize) ) { + this.hass.loadBackendTranslation("services"); + this.hass.loadBackendTranslation("title"); loadVirtualizer(); } } @@ -399,7 +402,16 @@ class HaLogbookRenderer extends LitElement { return html`${this.hass.localize( "ui.components.logbook.triggered_by_service" )} - ${item.context_domain}.${item.context_service}`; + ${item.context_domain && item.context_service + ? `${domainToName(this.hass.localize, item.context_domain)}: + ${ + this.hass.localize( + `component.${item.context_domain}.services.${item.context_service}.name` + ) || + this.hass.services[item.context_domain]?.[item.context_service]?.name || + item.context_service + }` + : ""}`; } if ( !item.context_message || From 7dbae75e500329da4f3f6cf88ae719eaa55c2df4 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Fri, 4 Aug 2023 11:45:32 +0200 Subject: [PATCH 011/182] Remove hot reload for gallery (#17484) --- build-scripts/gulp/webpack.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build-scripts/gulp/webpack.js b/build-scripts/gulp/webpack.js index 91fc1da332..6365ef3104 100644 --- a/build-scripts/gulp/webpack.js +++ b/build-scripts/gulp/webpack.js @@ -1,9 +1,9 @@ // Tasks to run webpack. -import log from "fancy-log"; import fs from "fs"; -import gulp from "gulp"; import path from "path"; +import log from "fancy-log"; +import gulp from "gulp"; import webpack from "webpack"; import WebpackDevServer from "webpack-dev-server"; import env from "../env.cjs"; @@ -44,6 +44,7 @@ const runDevServer = async ({ }) => { const server = new WebpackDevServer( { + hot: false, open: true, host: listenHost, port, From 7b6d9106d424f6156560805afb62a2fbad08e220 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Fri, 4 Aug 2023 15:06:41 +0200 Subject: [PATCH 012/182] Change logic to determine if forecast is hourly (#17486) --- src/data/weather.ts | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/src/data/weather.ts b/src/data/weather.ts index d18c41ccab..1c2b23939d 100644 --- a/src/data/weather.ts +++ b/src/data/weather.ts @@ -525,6 +525,7 @@ export const weatherIcon = (state?: string, nightTime?: boolean): string => ? mdiWeatherNightPartlyCloudy : weatherIcons[state]; +const EIGHT_HOURS = 28800000; const DAY_IN_MILLISECONDS = 86400000; const isForecastHourly = ( @@ -535,6 +536,20 @@ const isForecastHourly = ( const date2 = new Date(forecast[2].datetime); const timeDiff = date2.getTime() - date1.getTime(); + return timeDiff < EIGHT_HOURS; + } + + return undefined; +}; + +const isForecastTwiceDaily = ( + forecast?: ForecastAttribute[] +): boolean | undefined => { + if (forecast && forecast?.length && forecast?.length > 2) { + const date1 = new Date(forecast[1].datetime); + const date2 = new Date(forecast[2].datetime); + const timeDiff = date2.getTime() - date1.getTime(); + return timeDiff < DAY_IN_MILLISECONDS; } @@ -565,19 +580,16 @@ const getLegacyForecast = ( } | undefined => { if (weather_attributes?.forecast && weather_attributes.forecast.length > 2) { - const hourly = isForecastHourly(weather_attributes.forecast); - if (hourly === true) { - const dateFirst = new Date(weather_attributes.forecast![0].datetime); - const datelast = new Date( - weather_attributes.forecast![ - weather_attributes.forecast!.length - 1 - ].datetime - ); - const dayDiff = datelast.getTime() - dateFirst.getTime(); - const dayNight = dayDiff > DAY_IN_MILLISECONDS; + if (isForecastHourly(weather_attributes.forecast)) { return { forecast: weather_attributes.forecast, - type: dayNight ? "twice_daily" : "hourly", + type: "hourly", + }; + } + if (isForecastTwiceDaily(weather_attributes.forecast)) { + return { + forecast: weather_attributes.forecast, + type: "twice_daily", }; } return { forecast: weather_attributes.forecast, type: "daily" }; From 0d630aa5f5b83b634ab63f266ae0f86bdee1f8b4 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Fri, 4 Aug 2023 15:09:20 +0200 Subject: [PATCH 013/182] Prevent voice settings to override entity registry settings dialog (#17485) --- src/dialogs/more-info/ha-more-info-dialog.ts | 96 +++++++++---------- .../entity-registry-settings-editor.ts | 5 +- 2 files changed, 52 insertions(+), 49 deletions(-) diff --git a/src/dialogs/more-info/ha-more-info-dialog.ts b/src/dialogs/more-info/ha-more-info-dialog.ts index 748d51d1c0..080d10cb1e 100644 --- a/src/dialogs/more-info/ha-more-info-dialog.ts +++ b/src/dialogs/more-info/ha-more-info-dialog.ts @@ -411,54 +411,54 @@ export class MoreInfoDialog extends LitElement { @entity-entry-updated=${this._entryUpdated} @toggle-edit-mode=${this._handleToggleInfoEditModeEvent} > - ${this._childView - ? html` -
- ${dynamicElement(this._childView.viewTag, { - hass: this.hass, - entry: this._entry, - params: this._childView.viewParams, - })} -
- ` - : cache( - this._currView === "info" - ? html` - - ` - : this._currView === "history" - ? html` - - ` - : this._currView === "settings" - ? html` - - ` - : this._currView === "related" - ? html` - - ` - : nothing - )} + ${cache( + this._childView + ? html` +
+ ${dynamicElement(this._childView.viewTag, { + hass: this.hass, + entry: this._entry, + params: this._childView.viewParams, + })} +
+ ` + : this._currView === "info" + ? html` + + ` + : this._currView === "history" + ? html` + + ` + : this._currView === "settings" + ? html` + + ` + : this._currView === "related" + ? html` + + ` + : nothing + )} `; diff --git a/src/panels/config/entities/entity-registry-settings-editor.ts b/src/panels/config/entities/entity-registry-settings-editor.ts index 940ea5de59..593a6d417f 100644 --- a/src/panels/config/entities/entity-registry-settings-editor.ts +++ b/src/panels/config/entities/entity-registry-settings-editor.ts @@ -186,7 +186,10 @@ export class EntityRegistrySettingsEditor extends LitElement { protected willUpdate(changedProperties: PropertyValues) { super.willUpdate(changedProperties); - if (!changedProperties.has("entry")) { + if ( + !changedProperties.has("entry") || + changedProperties.get("entry")?.id === this.entry.id + ) { return; } From 716e68fc5e1428532125a49c4f50acfd2913c33b Mon Sep 17 00:00:00 2001 From: Steve Repsher Date: Fri, 4 Aug 2023 09:16:37 -0400 Subject: [PATCH 014/182] Add crosshairs, destroy globals, and tweak updates for code editor (#17302) * Add crosshairs, destroy globals, and tweak updates for code editor * Define update listener as arrow function * Ensure editor is recreated on reconnection * Don't create code mirror multiple times * Remove creation in update * Leverage lit lifecycle for editor creation and destruction * Bump @codemirror packages --------- Co-authored-by: Paul Bottein --- src/components/ha-code-editor.ts | 77 ++++++++++++++++------------ src/components/ha-yaml-editor.ts | 2 +- src/resources/codemirror.ondemand.ts | 12 ++--- src/resources/codemirror.ts | 1 + 4 files changed, 51 insertions(+), 41 deletions(-) diff --git a/src/components/ha-code-editor.ts b/src/components/ha-code-editor.ts index f3660695b1..a174168569 100644 --- a/src/components/ha-code-editor.ts +++ b/src/components/ha-code-editor.ts @@ -4,7 +4,7 @@ import type { CompletionResult, CompletionSource, } from "@codemirror/autocomplete"; -import type { Extension } from "@codemirror/state"; +import type { Extension, TransactionSpec } from "@codemirror/state"; import type { EditorView, KeyBinding, ViewUpdate } from "@codemirror/view"; import { HassEntities } from "home-assistant-js-websocket"; import { css, CSSResultGroup, PropertyValues, ReactiveElement } from "lit"; @@ -12,7 +12,7 @@ import { customElement, property, state } from "lit/decorators"; import memoizeOne from "memoize-one"; import { fireEvent } from "../common/dom/fire_event"; import { stopPropagation } from "../common/dom/stop_propagation"; -import { loadCodeMirror } from "../resources/codemirror.ondemand"; +import { CodeMirror, loadCodeMirror } from "../resources/codemirror.ondemand"; import { HomeAssistant } from "../types"; import "./ha-icon"; @@ -54,11 +54,11 @@ export class HaCodeEditor extends ReactiveElement { @property({ type: Boolean, attribute: "autocomplete-icons" }) public autocompleteIcons = false; - @property() public error = false; + @property({ type: Boolean }) public error = false; @state() private _value = ""; - private _loadedCodeMirror?: typeof import("../resources/codemirror"); + private _loadedCodeMirror?: CodeMirror; private _iconList?: Completion[]; @@ -78,12 +78,19 @@ export class HaCodeEditor extends ReactiveElement { this.codemirror.state, [this._loadedCodeMirror.tags.comment] ); - return !!this.shadowRoot!.querySelector(`span.${className}`); + return !!this.renderRoot.querySelector(`span.${className}`); } public connectedCallback() { super.connectedCallback(); + // Force update on reconnection so editor is recreated + if (this.hasUpdated) { + this.requestUpdate(); + } this.addEventListener("keydown", stopPropagation); + // This is unreachable as editor will not exist yet, + // but focus should not behave like this for good a11y. + // (@steverep to fix in autofocus PR) if (!this.codemirror) { return; } @@ -95,31 +102,41 @@ export class HaCodeEditor extends ReactiveElement { public disconnectedCallback() { super.disconnectedCallback(); this.removeEventListener("keydown", stopPropagation); + this.updateComplete.then(() => { + this.codemirror!.destroy(); + delete this.codemirror; + }); + } + + // Ensure CodeMirror module is loaded before any update + protected override async scheduleUpdate() { + this._loadedCodeMirror ??= await loadCodeMirror(); + super.scheduleUpdate(); } protected update(changedProps: PropertyValues): void { super.update(changedProps); - if (!this.codemirror) { + this._createCodeMirror(); return; } - + const transactions: TransactionSpec[] = []; if (changedProps.has("mode")) { - this.codemirror.dispatch({ + transactions.push({ effects: this._loadedCodeMirror!.langCompartment!.reconfigure( this._mode ), }); } if (changedProps.has("readOnly")) { - this.codemirror.dispatch({ + transactions.push({ effects: this._loadedCodeMirror!.readonlyCompartment!.reconfigure( this._loadedCodeMirror!.EditorView!.editable.of(!this.readOnly) ), }); } if (changedProps.has("_value") && this._value !== this.value) { - this.codemirror.dispatch({ + transactions.push({ changes: { from: 0, to: this.codemirror.state.doc.length, @@ -127,46 +144,45 @@ export class HaCodeEditor extends ReactiveElement { }, }); } + if (transactions.length > 0) { + this.codemirror.dispatch(...transactions); + } if (changedProps.has("error")) { this.classList.toggle("error-state", this.error); } } - protected firstUpdated(changedProps: PropertyValues): void { - super.firstUpdated(changedProps); - this._load(); - } - private get _mode() { return this._loadedCodeMirror!.langs[this.mode]; } - private async _load(): Promise { - this._loadedCodeMirror = await loadCodeMirror(); + private _createCodeMirror() { + if (!this._loadedCodeMirror) { + throw new Error("Cannot create editor before CodeMirror is loaded"); + } const extensions: Extension[] = [ this._loadedCodeMirror.lineNumbers(), - this._loadedCodeMirror.EditorState.allowMultipleSelections.of(true), this._loadedCodeMirror.history(), + this._loadedCodeMirror.drawSelection(), + this._loadedCodeMirror.EditorState.allowMultipleSelections.of(true), + this._loadedCodeMirror.rectangularSelection(), + this._loadedCodeMirror.crosshairCursor(), this._loadedCodeMirror.highlightSelectionMatches(), this._loadedCodeMirror.highlightActiveLine(), - this._loadedCodeMirror.drawSelection(), - this._loadedCodeMirror.rectangularSelection(), this._loadedCodeMirror.keymap.of([ ...this._loadedCodeMirror.defaultKeymap, ...this._loadedCodeMirror.searchKeymap, ...this._loadedCodeMirror.historyKeymap, ...this._loadedCodeMirror.tabKeyBindings, saveKeyBinding, - ] as KeyBinding[]), + ]), this._loadedCodeMirror.langCompartment.of(this._mode), this._loadedCodeMirror.haTheme, this._loadedCodeMirror.haSyntaxHighlighting, this._loadedCodeMirror.readonlyCompartment.of( this._loadedCodeMirror.EditorView.editable.of(!this.readOnly) ), - this._loadedCodeMirror.EditorView.updateListener.of((update) => - this._onUpdate(update) - ), + this._loadedCodeMirror.EditorView.updateListener.of(this._onUpdate), ]; if (!this.readOnly) { @@ -192,8 +208,7 @@ export class HaCodeEditor extends ReactiveElement { doc: this._value, extensions, }), - root: this.shadowRoot!, - parent: this.shadowRoot!, + parent: this.renderRoot, }); } @@ -277,17 +292,13 @@ export class HaCodeEditor extends ReactiveElement { }; } - private _onUpdate(update: ViewUpdate): void { + private _onUpdate = (update: ViewUpdate): void => { if (!update.docChanged) { return; } - const newValue = this.value; - if (newValue === this._value) { - return; - } - this._value = newValue; + this._value = update.state.doc.toString(); fireEvent(this, "value-changed", { value: this._value }); - } + }; static get styles(): CSSResultGroup { return css` diff --git a/src/components/ha-yaml-editor.ts b/src/components/ha-yaml-editor.ts index 97d06ec2ae..847bef1e7a 100644 --- a/src/components/ha-yaml-editor.ts +++ b/src/components/ha-yaml-editor.ts @@ -27,7 +27,7 @@ export class HaYamlEditor extends LitElement { @property() public defaultValue?: any; - @property() public isValid = true; + @property({ type: Boolean }) public isValid = true; @property() public label?: string; diff --git a/src/resources/codemirror.ondemand.ts b/src/resources/codemirror.ondemand.ts index 9ec8799229..0f62748cfa 100644 --- a/src/resources/codemirror.ondemand.ts +++ b/src/resources/codemirror.ondemand.ts @@ -1,10 +1,8 @@ -let loaded: Promise; +export type CodeMirror = typeof import("./codemirror"); -export const loadCodeMirror = async (): Promise< - typeof import("./codemirror") -> => { - if (!loaded) { - loaded = import("./codemirror"); - } +let loaded: CodeMirror; + +export const loadCodeMirror = async () => { + loaded ??= await import("./codemirror"); return loaded; }; diff --git a/src/resources/codemirror.ts b/src/resources/codemirror.ts index d21e3ee511..d3e69d2fae 100644 --- a/src/resources/codemirror.ts +++ b/src/resources/codemirror.ts @@ -16,6 +16,7 @@ export { highlightingFor } from "@codemirror/language"; export { highlightSelectionMatches, searchKeymap } from "@codemirror/search"; export { EditorState } from "@codemirror/state"; export { + crosshairCursor, drawSelection, EditorView, highlightActiveLine, From ccfa5c782dc9fcdd84c0e12e7110e2a06629566d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 4 Aug 2023 11:56:47 -0400 Subject: [PATCH 015/182] Update dependency @codemirror/view to v6.16.0 (#17477) --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index a2d51c5ae3..78fc42c3ea 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "@codemirror/legacy-modes": "6.3.3", "@codemirror/search": "6.5.0", "@codemirror/state": "6.2.1", - "@codemirror/view": "6.15.3", + "@codemirror/view": "6.16.0", "@egjs/hammerjs": "2.0.17", "@formatjs/intl-datetimeformat": "6.10.0", "@formatjs/intl-displaynames": "6.5.0", diff --git a/yarn.lock b/yarn.lock index 9d797eaa0e..8f5d057aef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1522,14 +1522,14 @@ __metadata: languageName: node linkType: hard -"@codemirror/view@npm:6.15.3, @codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.6.0": - version: 6.15.3 - resolution: "@codemirror/view@npm:6.15.3" +"@codemirror/view@npm:6.16.0, @codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.6.0": + version: 6.16.0 + resolution: "@codemirror/view@npm:6.16.0" dependencies: "@codemirror/state": ^6.1.4 style-mod: ^4.0.0 w3c-keyname: ^2.2.4 - checksum: 048949b1b493a962904a7f77661a939f7c1893a7381022756a135f5dd8daf667f498be1b81da9c37c0e8de85b078ad987c2f75318385c520ed83c95da6313e95 + checksum: 54d412b5159716c8a1a9c46fa04ff083e68a663cb887e6e2a4ca86fe9c3930d5255200fe84c65620e0a442f62dc2c13df277bcd1d4eef2e11e3c4e124fcf9d38 languageName: node linkType: hard @@ -9648,7 +9648,7 @@ __metadata: "@codemirror/legacy-modes": 6.3.3 "@codemirror/search": 6.5.0 "@codemirror/state": 6.2.1 - "@codemirror/view": 6.15.3 + "@codemirror/view": 6.16.0 "@egjs/hammerjs": 2.0.17 "@formatjs/intl-datetimeformat": 6.10.0 "@formatjs/intl-displaynames": 6.5.0 From e3da4d7c395ad674da1fecc309ac992f0e163608 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 5 Aug 2023 13:49:01 -0400 Subject: [PATCH 016/182] Update dependency @braintree/sanitize-url to v6.0.3 (#17492) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 78fc42c3ea..fa8286f6fa 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "type": "module", "dependencies": { "@babel/runtime": "7.22.6", - "@braintree/sanitize-url": "6.0.2", + "@braintree/sanitize-url": "6.0.3", "@codemirror/autocomplete": "6.9.0", "@codemirror/commands": "6.2.4", "@codemirror/language": "6.8.0", diff --git a/yarn.lock b/yarn.lock index 8f5d057aef..f35c498fd0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1445,10 +1445,10 @@ __metadata: languageName: node linkType: hard -"@braintree/sanitize-url@npm:6.0.2": - version: 6.0.2 - resolution: "@braintree/sanitize-url@npm:6.0.2" - checksum: 6a9dfd4081cc96516eeb281d1a83d3b5f1ad3d2837adf968fcc2ba18889ee833554f9c641b4083c36d3360a932e4504ddf25b0b51e9933c3742622df82cf7c9a +"@braintree/sanitize-url@npm:6.0.3": + version: 6.0.3 + resolution: "@braintree/sanitize-url@npm:6.0.3" + checksum: c36151b33d38376956f108826aab7889bc30981c001a22faf3dda145697e5e7de8c4e613eaf33c93e417e74f34b91165d2c9d21395e13adf0d3239da259140b0 languageName: node linkType: hard @@ -9641,7 +9641,7 @@ __metadata: "@babel/preset-env": 7.22.9 "@babel/preset-typescript": 7.22.5 "@babel/runtime": 7.22.6 - "@braintree/sanitize-url": 6.0.2 + "@braintree/sanitize-url": 6.0.3 "@codemirror/autocomplete": 6.9.0 "@codemirror/commands": 6.2.4 "@codemirror/language": 6.8.0 From 8da7eef88d6c8c80fd83507a86b04546d756f44d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 6 Aug 2023 11:26:25 -0400 Subject: [PATCH 017/182] Update dependency eslint-config-prettier to v8.10.0 (#17505) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index fa8286f6fa..504fa14139 100644 --- a/package.json +++ b/package.json @@ -195,7 +195,7 @@ "eslint": "8.46.0", "eslint-config-airbnb-base": "15.0.0", "eslint-config-airbnb-typescript": "17.1.0", - "eslint-config-prettier": "8.9.0", + "eslint-config-prettier": "8.10.0", "eslint-import-resolver-webpack": "0.13.2", "eslint-plugin-disable": "2.0.3", "eslint-plugin-import": "2.28.0", diff --git a/yarn.lock b/yarn.lock index f35c498fd0..5753c83e8d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8000,14 +8000,14 @@ __metadata: languageName: node linkType: hard -"eslint-config-prettier@npm:8.9.0": - version: 8.9.0 - resolution: "eslint-config-prettier@npm:8.9.0" +"eslint-config-prettier@npm:8.10.0": + version: 8.10.0 + resolution: "eslint-config-prettier@npm:8.10.0" peerDependencies: eslint: ">=7.0.0" bin: eslint-config-prettier: bin/cli.js - checksum: a675d0dabd76b700ef2d062b5ec6a634e105a8e8c070f95281fd2ccb614527fac60b4c758132058c50f0521fd19313f1f5be45ce9ebf081f2e5f77ae6eb7d8db + checksum: 153266badd477e49b0759816246b2132f1dbdb6c7f313ca60a9af5822fd1071c2bc5684a3720d78b725452bbac04bb130878b2513aea5e72b1b792de5a69fec8 languageName: node linkType: hard @@ -9764,7 +9764,7 @@ __metadata: eslint: 8.46.0 eslint-config-airbnb-base: 15.0.0 eslint-config-airbnb-typescript: 17.1.0 - eslint-config-prettier: 8.9.0 + eslint-config-prettier: 8.10.0 eslint-import-resolver-webpack: 0.13.2 eslint-plugin-disable: 2.0.3 eslint-plugin-import: 2.28.0 From 068708578e005b6d7381fb3af7aa2c47ac827a0c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 6 Aug 2023 11:28:31 -0400 Subject: [PATCH 018/182] Update dependency prettier to v3.0.1 (#17504) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 504fa14139..6792bf84db 100644 --- a/package.json +++ b/package.json @@ -227,7 +227,7 @@ "object-hash": "3.0.0", "open": "9.1.0", "pinst": "3.0.0", - "prettier": "3.0.0", + "prettier": "3.0.1", "rollup": "2.79.1", "rollup-plugin-string": "3.0.0", "rollup-plugin-terser": "7.0.2", diff --git a/yarn.lock b/yarn.lock index 5753c83e8d..c3bf45f932 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9810,7 +9810,7 @@ __metadata: object-hash: 3.0.0 open: 9.1.0 pinst: 3.0.0 - prettier: 3.0.0 + prettier: 3.0.1 proxy-polyfill: 0.3.2 punycode: 2.3.0 qr-scanner: 1.4.2 @@ -13292,12 +13292,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:3.0.0": - version: 3.0.0 - resolution: "prettier@npm:3.0.0" +"prettier@npm:3.0.1": + version: 3.0.1 + resolution: "prettier@npm:3.0.1" bin: prettier: bin/prettier.cjs - checksum: 6a832876a1552dc58330d2467874e5a0b46b9ccbfc5d3531eb69d15684743e7f83dc9fbd202db6270446deba9c82b79d24383d09924c462b457136a759425e33 + checksum: e1f3f16c7fe0495de3faa182597871f74927d787cce3c52095a66ff5d7eacc05173371d5f58bf12141a0a1b6bfe739a338531d6cf18b92c7256c1319f2c84e73 languageName: node linkType: hard From 27e93d63fe77ae0d3a855fc3404e807983294b09 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 6 Aug 2023 18:23:44 -0400 Subject: [PATCH 019/182] Update dependency @braintree/sanitize-url to v6.0.4 (#17509) --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 6792bf84db..e916e2a7c4 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "type": "module", "dependencies": { "@babel/runtime": "7.22.6", - "@braintree/sanitize-url": "6.0.3", + "@braintree/sanitize-url": "6.0.4", "@codemirror/autocomplete": "6.9.0", "@codemirror/commands": "6.2.4", "@codemirror/language": "6.8.0", diff --git a/yarn.lock b/yarn.lock index c3bf45f932..b6194c5afe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1445,10 +1445,10 @@ __metadata: languageName: node linkType: hard -"@braintree/sanitize-url@npm:6.0.3": - version: 6.0.3 - resolution: "@braintree/sanitize-url@npm:6.0.3" - checksum: c36151b33d38376956f108826aab7889bc30981c001a22faf3dda145697e5e7de8c4e613eaf33c93e417e74f34b91165d2c9d21395e13adf0d3239da259140b0 +"@braintree/sanitize-url@npm:6.0.4": + version: 6.0.4 + resolution: "@braintree/sanitize-url@npm:6.0.4" + checksum: f5ec6048973722ea1c46ae555d2e9eb848d7fa258994f8ea7d6db9514ee754ea3ef344ef71b3696d486776bcb839f3124e79f67c6b5b2814ed2da220b340627c languageName: node linkType: hard @@ -9641,7 +9641,7 @@ __metadata: "@babel/preset-env": 7.22.9 "@babel/preset-typescript": 7.22.5 "@babel/runtime": 7.22.6 - "@braintree/sanitize-url": 6.0.3 + "@braintree/sanitize-url": 6.0.4 "@codemirror/autocomplete": 6.9.0 "@codemirror/commands": 6.2.4 "@codemirror/language": 6.8.0 From 2bbce135bbef56df8bb0bd9a1b91bccdb91e8bf9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 00:08:17 -0400 Subject: [PATCH 020/182] Update dependency lit to v2.8.0 (#17501) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index e916e2a7c4..4b959ad81f 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "js-yaml": "4.1.0", "leaflet": "1.9.4", "leaflet-draw": "1.0.4", - "lit": "2.7.6", + "lit": "2.8.0", "luxon": "3.3.0", "marked": "4.3.0", "memoize-one": "6.0.0", diff --git a/yarn.lock b/yarn.lock index b6194c5afe..2d512be581 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9796,7 +9796,7 @@ __metadata: leaflet: 1.9.4 leaflet-draw: 1.0.4 lint-staged: 13.2.3 - lit: 2.7.6 + lit: 2.8.0 lit-analyzer: 2.0.0-pre.3 lodash.template: 4.5.0 luxon: 3.3.0 @@ -11442,12 +11442,12 @@ __metadata: languageName: node linkType: hard -"lit-html@npm:^2.7.0": - version: 2.7.5 - resolution: "lit-html@npm:2.7.5" +"lit-html@npm:^2.7.0, lit-html@npm:^2.8.0": + version: 2.8.0 + resolution: "lit-html@npm:2.8.0" dependencies: "@types/trusted-types": ^2.0.2 - checksum: 7a54399f78c02f21ee5584fd9ff21b3edad8416df0aca22964bc5b221f0b57ba74d7bd98ad076acea2403b53b2ea87cc3eb47ba8395f371a645e3d584f2c1e49 + checksum: 2d70df07248bcb2f502a3afb1e91d260735024fa669669ffb1417575aa39c3092779725ac1b90f5f39e4ce78c63f431f51176bc67f532389f0285a6991573255 languageName: node linkType: hard @@ -11462,14 +11462,14 @@ __metadata: languageName: node linkType: hard -"lit@npm:2.7.6, lit@npm:^2.0.0, lit@npm:^2.0.0-rc.2, lit@npm:^2.2.1, lit@npm:^2.7.0, lit@npm:^2.7.4, lit@npm:^2.7.5": - version: 2.7.6 - resolution: "lit@npm:2.7.6" +"lit@npm:2.8.0, lit@npm:^2.0.0, lit@npm:^2.0.0-rc.2, lit@npm:^2.2.1, lit@npm:^2.7.0, lit@npm:^2.7.4, lit@npm:^2.7.5": + version: 2.8.0 + resolution: "lit@npm:2.8.0" dependencies: "@lit/reactive-element": ^1.6.0 lit-element: ^3.3.0 - lit-html: ^2.7.0 - checksum: 984a7fb9c0fa387f20177a07de22ea1c9cdc01a7dc7cb1c400d1df5b43a8956908460482a3259ea173555c6f0f13457d2ddc5c84d4c365007afd86e7ca58b384 + lit-html: ^2.8.0 + checksum: 2480e733f7d022d3ecba91abc58a20968f0ca8f5fa30b3341ecf4bcf4845e674ad27b721a5ae53529cafc6ca603c015b80d0979ceb7a711e268ef20bb6bc7527 languageName: node linkType: hard From e9e31d51ec399b39e90215bab6ab41b79915570b Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Mon, 7 Aug 2023 11:00:43 +0200 Subject: [PATCH 021/182] Update circular slider design (#17490) --- .../components/ha-control-circular-slider.ts | 4 - src/components/ha-control-circular-slider.ts | 299 +++++++++++------- src/resources/ha-style.ts | 3 +- src/resources/styles.ts | 1 + src/resources/svg-arc.ts | 2 +- 5 files changed, 186 insertions(+), 123 deletions(-) diff --git a/gallery/src/pages/components/ha-control-circular-slider.ts b/gallery/src/pages/components/ha-control-circular-slider.ts index 8c6fca52d4..f85f210dd0 100644 --- a/gallery/src/pages/components/ha-control-circular-slider.ts +++ b/gallery/src/pages/components/ha-control-circular-slider.ts @@ -150,17 +150,13 @@ export class DemoHaCircularSlider extends LitElement { } ha-control-circular-slider { --control-circular-slider-color: #ff9800; - --control-circular-slider-background: #ff9800; - --control-circular-slider-background-opacity: 0.3; } ha-control-circular-slider[inverted] { --control-circular-slider-color: #2196f3; - --control-circular-slider-background: #2196f3; } ha-control-circular-slider[dual] { --control-circular-slider-high-color: #2196f3; --control-circular-slider-low-color: #ff9800; - --control-circular-slider-background: var(--disabled-color); } .field { display: flex; diff --git a/src/components/ha-control-circular-slider.ts b/src/components/ha-control-circular-slider.ts index 5b3caf3bef..ffe26f17dc 100644 --- a/src/components/ha-control-circular-slider.ts +++ b/src/components/ha-control-circular-slider.ts @@ -18,10 +18,9 @@ import { import { customElement, property, query, state } from "lit/decorators"; import { classMap } from "lit/directives/class-map"; import { ifDefined } from "lit/directives/if-defined"; -import { styleMap } from "lit/directives/style-map"; import { fireEvent } from "../common/dom/fire_event"; import { clamp } from "../common/number/clamp"; -import { arc } from "../resources/svg-arc"; +import { svgArc } from "../resources/svg-arc"; const MAX_ANGLE = 270; const ROTATE_ANGLE = 360 - MAX_ANGLE / 2 - 90; @@ -388,44 +387,130 @@ export class HaControlCircularSlider extends LitElement { } } - private _strokeDashArc( - percentage: number, - inverted?: boolean - ): [string, string] { - const maxRatio = MAX_ANGLE / 360; - const f = RADIUS * 2 * Math.PI; - if (inverted) { - const arcLength = (1 - percentage) * f * maxRatio; - const strokeDasharray = `${arcLength} ${f - arcLength}`; - const strokeDashOffset = `${arcLength + f * (1 - maxRatio)}`; - return [strokeDasharray, strokeDashOffset]; - } - const arcLength = percentage * f * maxRatio; - const strokeDasharray = `${arcLength} ${f - arcLength}`; - const strokeDashOffset = "0"; + private _strokeCircleDashArc(value: number): [string, string] { + return this._strokeDashArc(value, value); + } + + private _strokeDashArc(from: number, to: number): [string, string] { + const start = this._valueToPercentage(from); + const end = this._valueToPercentage(to); + + const track = (RADIUS * 2 * Math.PI * MAX_ANGLE) / 360; + const arc = Math.max((end - start) * track, 0); + const arcOffset = start * track - 0.5; + + const strokeDasharray = `${arc} ${track - arc}`; + const strokeDashOffset = `-${arcOffset}`; return [strokeDasharray, strokeDashOffset]; } + protected renderArc( + id: string, + value: number | undefined, + inverted: boolean | undefined + ) { + const limit = inverted ? this.max : this.min; + + const path = svgArc({ + x: 0, + y: 0, + start: 0, + end: MAX_ANGLE, + r: RADIUS, + }); + + const current = this.current ?? limit; + const target = value ?? limit; + + const showActive = inverted ? target <= current : current <= target; + + const activeArcDashArray = showActive + ? inverted + ? this._strokeDashArc(target, current) + : this._strokeDashArc(current, target) + : this._strokeCircleDashArc(target); + + const arcDashArray = inverted + ? this._strokeDashArc(target, limit) + : this._strokeDashArc(limit, target); + + const targetCircleDashArray = this._strokeCircleDashArc(target); + + const currentCircleDashArray = + this.current != null && showActive + ? this._strokeCircleDashArc(this.current) + : undefined; + + return svg` + + + + + ${ + currentCircleDashArray + ? svg` + + ` + : nothing + } + `; + } + protected render(): TemplateResult { - const trackPath = arc({ x: 0, y: 0, start: 0, end: MAX_ANGLE, r: RADIUS }); + const trackPath = svgArc({ + x: 0, + y: 0, + start: 0, + end: MAX_ANGLE, + r: RADIUS, + }); const lowValue = this.dual ? this._localLow : this._localValue; const highValue = this._localHigh; - const lowPercentage = this._valueToPercentage(lowValue ?? this.min); - const highPercentage = this._valueToPercentage(highValue ?? this.max); + const current = this.current; - const [lowStrokeDasharray, lowStrokeDashOffset] = this._strokeDashArc( - lowPercentage, - this.inverted - ); - - const [highStrokeDasharray, highStrokeDashOffset] = this._strokeDashArc( - highPercentage, - true - ); - - const currentPercentage = this._valueToPercentage(this.current ?? 0); - const currentAngle = currentPercentage * MAX_ANGLE; + const currentStroke = current + ? this._strokeCircleDashArc(current) + : undefined; return html` - ${lowValue != null + ${currentStroke ? svg` - - ` + + ` + : nothing} + ${lowValue != null + ? this.renderArc( + this.dual ? "low" : "value", + lowValue, + this.inverted + ) : nothing} ${this.dual && highValue != null - ? svg` - - ` - : nothing} - ${this.current != null - ? svg` - - - - - ` + ? this.renderArc("high", highValue, true) : nothing} @@ -531,7 +562,7 @@ export class HaControlCircularSlider extends LitElement { return css` :host { --control-circular-slider-color: var(--primary-color); - --control-circular-slider-background: #8b97a3; + --control-circular-slider-background: var(--disabled-color); --control-circular-slider-background-opacity: 0.3; --control-circular-slider-low-color: var( --control-circular-slider-color @@ -573,8 +604,7 @@ export class HaControlCircularSlider extends LitElement { stroke-width: 24px; } - .track { - outline: none; + .arc { fill: none; stroke-linecap: round; stroke-width: 24px; @@ -586,29 +616,64 @@ export class HaControlCircularSlider extends LitElement { opacity 180ms ease-in-out; } - .track:focus-visible { - stroke-width: 28px; - } - - .pressed .track { - transition: stroke-width 300ms ease-in-out; + .target { + fill: none; + stroke-linecap: round; + stroke-width: 18px; + stroke: white; + transition: + stroke-width 300ms ease-in-out, + stroke-dasharray 300ms ease-in-out, + stroke-dashoffset 300ms ease-in-out, + stroke 180ms ease-in-out, + opacity 180ms ease-in-out; } .current { - stroke: var(--primary-text-color); - transform: rotate(var(--current-angle, 0)); - transition: transform 300ms ease-in-out; + fill: none; + stroke-linecap: round; + stroke-width: 8px; + stroke: white; + opacity: 0.6; + transition: + stroke-width 300ms ease-in-out, + stroke-dasharray 300ms ease-in-out, + stroke-dashoffset 300ms ease-in-out, + stroke 180ms ease-in-out, + opacity 180ms ease-in-out; } - #value { + .arc-clear { + stroke: var(--clear-background-color); + } + .arc-background { + opacity: 0.5; + } + .arc-active { + outline: none; + } + .arc-active:focus-visible { + stroke-width: 28px; + } + + .pressed .arc, + .pressed .target, + .pressed .current { + transition: + stroke-width 300ms ease-in-out, + stroke 180ms ease-in-out, + opacity 180ms ease-in-out; + } + + .value { stroke: var(--control-circular-slider-color); } - #low { + .low { stroke: var(--control-circular-slider-low-color); } - #high { + .high { stroke: var(--control-circular-slider-high-color); } `; diff --git a/src/resources/ha-style.ts b/src/resources/ha-style.ts index aefe6e6479..b8a039d3d6 100644 --- a/src/resources/ha-style.ts +++ b/src/resources/ha-style.ts @@ -45,7 +45,8 @@ documentContainer.innerHTML = ` --card-background-color: #ffffff; --primary-background-color: #fafafa; --secondary-background-color: #e5e5e5; /* behind the cards on state */ - + --clear-background-color: #ffffff; + /* for header */ --header-height: 56px; diff --git a/src/resources/styles.ts b/src/resources/styles.ts index 37b4f65577..1c077cb815 100644 --- a/src/resources/styles.ts +++ b/src/resources/styles.ts @@ -4,6 +4,7 @@ export const darkStyles = { "primary-background-color": "#111111", "card-background-color": "#1c1c1c", "secondary-background-color": "#282828", + "clear-background-color": "#111111", "primary-text-color": "#e1e1e1", "secondary-text-color": "#9b9b9b", "disabled-text-color": "#6f6f6f", diff --git a/src/resources/svg-arc.ts b/src/resources/svg-arc.ts index 67e29b5157..fabf19185e 100644 --- a/src/resources/svg-arc.ts +++ b/src/resources/svg-arc.ts @@ -25,7 +25,7 @@ type ArcOptions = { rotate?: number; }; -export const arc = (options: ArcOptions) => { +export const svgArc = (options: ArcOptions) => { const { x, y, r, start, end, rotate = 0 } = options; const cx = x; const cy = y; From c2123a0a906720e1b6c63432d93d793618d67ced Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Mon, 7 Aug 2023 02:53:31 -0700 Subject: [PATCH 022/182] Dismiss configuration check result on leaving page (#17466) --- .../yaml_configuration/developer-yaml-config.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts b/src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts index 50bc2e2d60..9d1545b1a4 100644 --- a/src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts +++ b/src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts @@ -36,6 +36,12 @@ export class DeveloperYamlConfig extends LitElement { private _validateLog = ""; + public disconnectedCallback() { + super.disconnectedCallback(); + this._isValid = null; + this._validateLog = ""; + } + protected updated(changedProperties) { const oldHass = changedProperties.get("hass"); if ( @@ -172,6 +178,9 @@ export class DeveloperYamlConfig extends LitElement { const configCheck = await checkCoreConfig(this.hass); this._validating = false; + if (!this.isConnected) { + return; + } this._isValid = configCheck.result === "valid"; if (configCheck.errors) { From edcdc865c43d2019bb376c0dafda06d2b85466d3 Mon Sep 17 00:00:00 2001 From: Steve Repsher Date: Mon, 7 Aug 2023 05:54:40 -0400 Subject: [PATCH 023/182] Remove test language from production (#17507) --- build-scripts/gulp/translations.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-scripts/gulp/translations.js b/build-scripts/gulp/translations.js index e6f9c54472..3085b2b1d2 100755 --- a/build-scripts/gulp/translations.js +++ b/build-scripts/gulp/translations.js @@ -415,7 +415,7 @@ gulp.task("build-translation-write-metadata", () => gulp.task( "create-translations", gulp.series( - env.isProdBuild() ? (done) => done() : "create-test-translation", + ...(env.isProdBuild() ? [] : ["create-test-translation"]), "build-master-translation", "build-merged-translations", gulp.parallel(...splitTasks), From 945c8e0320b62cfd99538bfbec13a3953ab1bbac Mon Sep 17 00:00:00 2001 From: Steve Repsher Date: Mon, 7 Aug 2023 05:59:02 -0400 Subject: [PATCH 024/182] Minify and compress Intl locale data (#17506) --- build-scripts/gulp/compress.js | 41 ++---------- build-scripts/gulp/locale-data.js | 103 +++++++++++++++--------------- package.json | 1 - yarn.lock | 3 +- 4 files changed, 59 insertions(+), 89 deletions(-) diff --git a/build-scripts/gulp/compress.js b/build-scripts/gulp/compress.js index a3986bb9c0..b811c23bea 100644 --- a/build-scripts/gulp/compress.js +++ b/build-scripts/gulp/compress.js @@ -2,44 +2,15 @@ import gulp from "gulp"; import zopfli from "gulp-zopfli-green"; -import merge from "merge-stream"; -import path from "path"; import paths from "../paths.cjs"; const zopfliOptions = { threshold: 150 }; -gulp.task("compress-app", function compressApp() { - const jsLatest = gulp - .src(path.resolve(paths.app_output_latest, "**/*.js")) +const compressDist = (rootDir) => + gulp + .src([`${rootDir}/**/*.{js,json,css,svg}`]) .pipe(zopfli(zopfliOptions)) - .pipe(gulp.dest(paths.app_output_latest)); + .pipe(gulp.dest(rootDir)); - const jsEs5 = gulp - .src(path.resolve(paths.app_output_es5, "**/*.js")) - .pipe(zopfli(zopfliOptions)) - .pipe(gulp.dest(paths.app_output_es5)); - - const polyfills = gulp - .src(path.resolve(paths.app_output_static, "polyfills/*.js")) - .pipe(zopfli(zopfliOptions)) - .pipe(gulp.dest(path.resolve(paths.app_output_static, "polyfills"))); - - const translations = gulp - .src(path.resolve(paths.app_output_static, "translations/**/*.json")) - .pipe(zopfli(zopfliOptions)) - .pipe(gulp.dest(path.resolve(paths.app_output_static, "translations"))); - - const icons = gulp - .src(path.resolve(paths.app_output_static, "mdi/*.json")) - .pipe(zopfli(zopfliOptions)) - .pipe(gulp.dest(path.resolve(paths.app_output_static, "mdi"))); - - return merge(jsLatest, jsEs5, polyfills, translations, icons); -}); - -gulp.task("compress-hassio", function compressApp() { - return gulp - .src(path.resolve(paths.hassio_output_root, "**/*.js")) - .pipe(zopfli(zopfliOptions)) - .pipe(gulp.dest(paths.hassio_output_root)); -}); +gulp.task("compress-app", () => compressDist(paths.app_output_root)); +gulp.task("compress-hassio", () => compressDist(paths.hassio_output_root)); diff --git a/build-scripts/gulp/locale-data.js b/build-scripts/gulp/locale-data.js index f902256877..c8bd3b3141 100755 --- a/build-scripts/gulp/locale-data.js +++ b/build-scripts/gulp/locale-data.js @@ -1,18 +1,12 @@ import { deleteSync } from "del"; -import fs from "fs"; +import { mkdir, readFile, writeFile } from "fs/promises"; import gulp from "gulp"; import path from "path"; import paths from "../paths.cjs"; -const outDir = "build/locale-data"; +const outDir = path.join(paths.build_dir, "locale-data"); -gulp.task("clean-locale-data", async () => deleteSync([outDir])); - -gulp.task("ensure-locale-data-build-dir", async () => { - fs.mkdirSync(outDir, { recursive: true }); -}); - -const modules = { +const INTL_PACKAGES = { "intl-relativetimeformat": "RelativeTimeFormat", "intl-datetimeformat": "DateTimeFormat", "intl-numberformat": "NumberFormat", @@ -20,53 +14,60 @@ const modules = { "intl-listformat": "ListFormat", }; -gulp.task("create-locale-data", (done) => { +const convertToJSON = async (pkg, lang) => { + let localeData; + try { + localeData = await readFile( + path.resolve( + paths.polymer_dir, + `node_modules/@formatjs/${pkg}/locale-data/${lang}.js` + ), + "utf-8" + ); + } catch (e) { + // Ignore if language is missing (i.e. not supported by @formatjs) + if (e.code === "ENOENT") { + return; + } else { + throw e; + } + } + // Convert to JSON + const className = INTL_PACKAGES[pkg]; + localeData = localeData + .replace( + new RegExp( + `\\/\\*\\s*@generated\\s*\\*\\/\\s*\\/\\/\\s*prettier-ignore\\s*if\\s*\\(Intl\\.${className}\\s*&&\\s*typeof\\s*Intl\\.${className}\\.__addLocaleData\\s*===\\s*'function'\\)\\s*{\\s*Intl\\.${className}\\.__addLocaleData\\(`, + "im" + ), + "" + ) + .replace(/\)\s*}/im, ""); + // Parse to validate JSON, then stringify to minify + localeData = JSON.stringify(JSON.parse(localeData)); + await writeFile(path.join(outDir, `${pkg}/${lang}.json`), localeData); +}; + +gulp.task("clean-locale-data", async () => deleteSync([outDir])); + +gulp.task("create-locale-data", async () => { const translationMeta = JSON.parse( - fs.readFileSync( - path.join(paths.translations_src, "translationMetadata.json") + await readFile( + path.resolve(paths.translations_src, "translationMetadata.json"), + "utf-8" ) ); - Object.entries(modules).forEach(([module, className]) => { - Object.keys(translationMeta).forEach((lang) => { - try { - const localeData = fs - .readFileSync( - path.resolve( - paths.polymer_dir, - `node_modules/@formatjs/${module}/locale-data/${lang}.js` - ), - "utf-8" - ) - .replace( - new RegExp( - `\\/\\*\\s*@generated\\s*\\*\\/\\s*\\/\\/\\s*prettier-ignore\\s*if\\s*\\(Intl\\.${className}\\s*&&\\s*typeof\\s*Intl\\.${className}\\.__addLocaleData\\s*===\\s*'function'\\)\\s*{\\s*Intl\\.${className}\\.__addLocaleData\\(`, - "im" - ), - "" - ) - .replace(/\)\s*}/im, ""); - // make sure we have valid JSON - JSON.parse(localeData); - fs.mkdirSync(path.join(outDir, module), { recursive: true }); - fs.writeFileSync( - path.join(outDir, `${module}/${lang}.json`), - localeData - ); - } catch (e) { - if (e.code !== "ENOENT") { - throw e; - } - } - }); - done(); - }); + const conversions = []; + for (const pkg of Object.keys(INTL_PACKAGES)) { + await mkdir(path.join(outDir, pkg), { recursive: true }); + for (const lang of Object.keys(translationMeta)) { + conversions.push(convertToJSON(pkg, lang)); + } + } + await Promise.all(conversions); }); gulp.task( "build-locale-data", - gulp.series( - "clean-locale-data", - "ensure-locale-data-build-dir", - "create-locale-data" - ) + gulp.series("clean-locale-data", "create-locale-data") ); diff --git a/package.json b/package.json index 4b959ad81f..d6324b0dba 100644 --- a/package.json +++ b/package.json @@ -222,7 +222,6 @@ "lodash.template": "4.5.0", "magic-string": "0.30.2", "map-stream": "0.0.7", - "merge-stream": "2.0.0", "mocha": "10.2.0", "object-hash": "3.0.0", "open": "9.1.0", diff --git a/yarn.lock b/yarn.lock index 2d512be581..a9d0536b5a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9804,7 +9804,6 @@ __metadata: map-stream: 0.0.7 marked: 4.3.0 memoize-one: 6.0.0 - merge-stream: 2.0.0 mocha: 10.2.0 node-vibrant: 3.2.1-alpha.1 object-hash: 3.0.0 @@ -11844,7 +11843,7 @@ __metadata: languageName: node linkType: hard -"merge-stream@npm:2.0.0, merge-stream@npm:^2.0.0": +"merge-stream@npm:^2.0.0": version: 2.0.0 resolution: "merge-stream@npm:2.0.0" checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 From 827a57499b56980c4399ac1c5ccf320326330f0a Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Mon, 7 Aug 2023 03:00:04 -0700 Subject: [PATCH 025/182] Fix unit label for static grid energy price (#17508) --- .../energy/dialogs/dialog-energy-gas-settings.ts | 2 +- .../dialogs/dialog-energy-grid-flow-settings.ts | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/panels/config/energy/dialogs/dialog-energy-gas-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-gas-settings.ts index 264d0f5d68..75faae59fe 100644 --- a/src/panels/config/energy/dialogs/dialog-energy-gas-settings.ts +++ b/src/panels/config/energy/dialogs/dialog-energy-gas-settings.ts @@ -227,7 +227,7 @@ export class DialogEnergyGasSettings "ui.panel.config.energy.gas.dialog.cost_number_input" )} ${unitPrice ? ` (${unitPrice})` : ""}`} class="price-options" - step=".01" + step="any" type="number" .value=${this._source.number_energy_price} @change=${this._numberPriceChanged} diff --git a/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts index 81f42e39f8..be742d3645 100644 --- a/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts +++ b/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts @@ -96,10 +96,12 @@ export class DialogEnergyGridFlowSettings const pickableUnit = this._energy_units?.join(", ") || ""; - const unitPrice = this._pickedDisplayUnit + const unitPriceSensor = this._pickedDisplayUnit ? `${this.hass.config.currency}/${this._pickedDisplayUnit}` : undefined; + const unitPriceFixed = `${this.hass.config.currency}/kWh`; + const externalSource = this._source[ this._params.direction === "from" @@ -223,7 +225,7 @@ export class DialogEnergyGridFlowSettings .value=${this._source.entity_energy_price} .label=${`${this.hass.localize( `ui.panel.config.energy.grid.flow_dialog.${this._params.direction}.cost_entity_input` - )} ${unitPrice ? ` (${unitPrice})` : ""}`} + )} ${unitPriceSensor ? ` (${unitPriceSensor})` : ""}`} @value-changed=${this._priceEntityChanged} >` : ""} @@ -244,12 +246,12 @@ export class DialogEnergyGridFlowSettings ? html` ` From 48841081237cbcffe95fd73ba3f3c38387646281 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Mon, 7 Aug 2023 03:01:04 -0700 Subject: [PATCH 026/182] Fix default precision display in entity settings (#17491) --- src/panels/config/entities/entity-registry-settings-editor.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/panels/config/entities/entity-registry-settings-editor.ts b/src/panels/config/entities/entity-registry-settings-editor.ts index 593a6d417f..e6c8f17f63 100644 --- a/src/panels/config/entities/entity-registry-settings-editor.ts +++ b/src/panels/config/entities/entity-registry-settings-editor.ts @@ -264,7 +264,7 @@ export class EntityRegistrySettingsEditor extends LitElement { private precisionLabel(precision?: number, stateValue?: string) { const stateValueNumber = Number(stateValue); - const value = !isNaN(stateValueNumber) ? stateValueNumber : 0; + const value = !isNaN(stateValueNumber) ? stateValue! : 0; return formatNumber(value, this.hass.locale, { minimumFractionDigits: precision, maximumFractionDigits: precision, From accc8bc64484c50d4ccaebf05d52732ccb817f35 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Mon, 7 Aug 2023 03:01:46 -0700 Subject: [PATCH 027/182] Disable `?edit=1` for non-admin users (#17493) --- src/panels/lovelace/hui-root.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/panels/lovelace/hui-root.ts b/src/panels/lovelace/hui-root.ts index b023483ab9..e9423fb81a 100644 --- a/src/panels/lovelace/hui-root.ts +++ b/src/panels/lovelace/hui-root.ts @@ -564,7 +564,7 @@ class HUIRoot extends LitElement { super.firstUpdated(changedProps); // Check for requested edit mode const searchParams = extractSearchParamsObject(); - if (searchParams.edit === "1") { + if (searchParams.edit === "1" && this.hass!.user?.is_admin) { this.lovelace!.setEditMode(true); } else if (searchParams.conversation === "1") { this._showVoiceCommandDialog(); From e40bdd5d918c021da611ea347a33cfb25860dab7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 12:29:08 -0400 Subject: [PATCH 028/182] Update dependency @codemirror/search to v6.5.1 (#17514) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d6324b0dba..af003cc08a 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@codemirror/commands": "6.2.4", "@codemirror/language": "6.8.0", "@codemirror/legacy-modes": "6.3.3", - "@codemirror/search": "6.5.0", + "@codemirror/search": "6.5.1", "@codemirror/state": "6.2.1", "@codemirror/view": "6.16.0", "@egjs/hammerjs": "2.0.17", diff --git a/yarn.lock b/yarn.lock index a9d0536b5a..ba31da8db8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1504,14 +1504,14 @@ __metadata: languageName: node linkType: hard -"@codemirror/search@npm:6.5.0": - version: 6.5.0 - resolution: "@codemirror/search@npm:6.5.0" +"@codemirror/search@npm:6.5.1": + version: 6.5.1 + resolution: "@codemirror/search@npm:6.5.1" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 crelt: ^1.0.5 - checksum: 2e9f2344b7dbd4bad79058c105d8cbd02b2bf94c27495310f0e3b6e999010aa080dceea47ef46e35439cc9e131b47c46f7d2eda700ef491b5f2f34bbc8e145ab + checksum: 672515c20238f69ff5cd8b662128699178ba7e020fc44a8ed2b0dcc25d8d5f5579418865616dd8809317a408fb08b6001a442f0fb706a772250b4284d7437045 languageName: node linkType: hard @@ -9646,7 +9646,7 @@ __metadata: "@codemirror/commands": 6.2.4 "@codemirror/language": 6.8.0 "@codemirror/legacy-modes": 6.3.3 - "@codemirror/search": 6.5.0 + "@codemirror/search": 6.5.1 "@codemirror/state": 6.2.1 "@codemirror/view": 6.16.0 "@egjs/hammerjs": 2.0.17 From 7a446ba2ad50af3d27591f346d477ac3b9b7eb10 Mon Sep 17 00:00:00 2001 From: G Johansson Date: Tue, 8 Aug 2023 08:27:11 +0200 Subject: [PATCH 029/182] Prefer modern weather forecast over legacy (#17518) weather entity select modern types --- .../editor/config-elements/hui-weather-forecast-card-editor.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/panels/lovelace/editor/config-elements/hui-weather-forecast-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-weather-forecast-card-editor.ts index a758959aeb..0f48a3b1dc 100644 --- a/src/panels/lovelace/editor/config-elements/hui-weather-forecast-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-weather-forecast-card-editor.ts @@ -141,8 +141,7 @@ export class HuiWeatherForecastCardEditor { name: "theme", selector: { theme: {} } }, ], }, - ...(!hasForecastLegacy && - (hasForecastDaily || hasForecastHourly || hasForecastTwiceDaily) + ...(hasForecastDaily || hasForecastHourly || hasForecastTwiceDaily ? ([ { name: "forecast_type", From 85733655c24c85327ac3417ecd7be9449836e3b5 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Tue, 8 Aug 2023 03:11:02 -0700 Subject: [PATCH 030/182] Localize developer-tools/assist (#17489) Co-authored-by: Joost Lekkerkerker Co-authored-by: Bram Kragten --- .../assist/developer-tools-assist.ts | 34 ++++++++++++++----- src/translations/en.json | 9 +++++ 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/panels/developer-tools/assist/developer-tools-assist.ts b/src/panels/developer-tools/assist/developer-tools-assist.ts index 32d5dcfcd6..7c3bdb3506 100644 --- a/src/panels/developer-tools/assist/developer-tools-assist.ts +++ b/src/panels/developer-tools/assist/developer-tools-assist.ts @@ -113,12 +113,17 @@ class HaPanelDevAssist extends SubscribeMixin(LitElement) { protected render() { return html`
- +

- Enter sentences and see how they will be parsed by Home Assistant. - Each line will be processed as individual sentence. Intents will - not be executed on your instance. + ${this.hass.localize( + "ui.panel.developer-tools.tabs.assist.description" + )}

${this.supportedLanguages ? html` @@ -132,7 +137,9 @@ class HaPanelDevAssist extends SubscribeMixin(LitElement) { : nothing} - Parse sentences + ${this.hass.localize( + "ui.panel.developer-tools.tabs.assist.parse_sentences" + )}
@@ -153,7 +162,9 @@ class HaPanelDevAssist extends SubscribeMixin(LitElement) {
- Download Results + ${this.hass.localize( + "ui.panel.developer-tools.tabs.assist.download_results" + )}
` @@ -170,7 +181,10 @@ class HaPanelDevAssist extends SubscribeMixin(LitElement) {

${matched ? "✅" : "❌"}

- Language: ${formatLanguageCode(language, this.hass.locale)} + ${this.hass.localize( + "ui.panel.developer-tools.tabs.assist.language" + )}: + ${formatLanguageCode(language, this.hass.locale)} (${language})
${result @@ -184,7 +198,9 @@ class HaPanelDevAssist extends SubscribeMixin(LitElement) { > ` : html` - No intent matched + ${this.hass.localize( + "ui.panel.developer-tools.tabs.assist.no_match" + )} `} diff --git a/src/translations/en.json b/src/translations/en.json index f94a41952b..c6a6625844 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -5430,6 +5430,15 @@ }, "developer-tools": { "tabs": { + "assist": { + "title": "Sentences parser", + "description": "Enter sentences and see how they will be parsed by Home Assistant. Each line will be processed as an individual sentence. Intents will not be executed on your instance.", + "parse_sentences": "Parse sentences", + "sentences": "Sentences", + "download_results": "Download results", + "no_match": "No intent matched", + "language": "[%key:ui::components::language-picker::language%]" + }, "events": { "title": "Events", "description": "Fire an event on the event bus.", From 89e96e46819d798389bcc071afc9f477d826de48 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Tue, 8 Aug 2023 12:50:21 +0200 Subject: [PATCH 031/182] Add new temperature control in climate more info (#17002) * Add circular slider as temperature control * Move climate icons and mode mapping * Update icon * Add mode icon * Improve colors * Add temperature control buttons * Call service * Remove climate control * Some fixes * Add current temp and humidity * Fix default mode * Swap state and current * Some adjustments * prettier * Simplify color rules * refactor cool mode * Color button when dual climate * Add current temp and humidity * Fix opacity * Hide current temp is below min or above max * Adjust button size * Add action label * Better off and unavailable state * Improve current color * Add gallery * Fix dark mode * Add overflow * Update src/dialogs/more-info/controls/more-info-climate.ts Co-authored-by: Bram Kragten * Update src/panels/lovelace/cards/hui-thermostat-card.ts Co-authored-by: Bram Kragten * Update src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts --------- Co-authored-by: Bram Kragten --- gallery/src/pages/more-info/climate.markdown | 3 + gallery/src/pages/more-info/climate.ts | 83 +++ src/components/entity/state-badge.ts | 6 +- src/components/ha-climate-control.ts | 138 ----- src/components/ha-control-circular-slider.ts | 29 +- src/data/climate.ts | 33 +- .../ha-more-info-climate-temperature.ts | 534 ++++++++++++++++++ src/dialogs/more-info/const.ts | 1 + .../more-info/controls/more-info-climate.ts | 310 +++++----- src/fake_data/entity.ts | 41 ++ src/panels/lovelace/cards/hui-button-card.ts | 6 +- src/panels/lovelace/cards/hui-entity-card.ts | 6 +- .../lovelace/cards/hui-thermostat-card.ts | 1 + .../cards/tile/badges/tile-badge-climate.ts | 35 +- src/resources/ha-style.ts | 2 +- src/translations/en.json | 4 + 16 files changed, 877 insertions(+), 355 deletions(-) create mode 100644 gallery/src/pages/more-info/climate.markdown create mode 100644 gallery/src/pages/more-info/climate.ts delete mode 100644 src/components/ha-climate-control.ts create mode 100644 src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts diff --git a/gallery/src/pages/more-info/climate.markdown b/gallery/src/pages/more-info/climate.markdown new file mode 100644 index 0000000000..dd60ba3702 --- /dev/null +++ b/gallery/src/pages/more-info/climate.markdown @@ -0,0 +1,3 @@ +--- +title: Climate +--- diff --git a/gallery/src/pages/more-info/climate.ts b/gallery/src/pages/more-info/climate.ts new file mode 100644 index 0000000000..95cc65321e --- /dev/null +++ b/gallery/src/pages/more-info/climate.ts @@ -0,0 +1,83 @@ +import { html, LitElement, PropertyValues, TemplateResult } from "lit"; +import { customElement, property, query } from "lit/decorators"; +import "../../../../src/components/ha-card"; +import "../../../../src/dialogs/more-info/more-info-content"; +import { getEntity } from "../../../../src/fake_data/entity"; +import { + MockHomeAssistant, + provideHass, +} from "../../../../src/fake_data/provide_hass"; +import "../../components/demo-more-infos"; +import { ClimateEntityFeature } from "../../../../src/data/climate"; + +const ENTITIES = [ + getEntity("climate", "thermostat", "heat", { + friendly_name: "Basic heater", + hvac_modes: ["heat", "off"], + hvac_mode: "heat", + current_temperature: 18, + temperature: 20, + min_temp: 10, + max_temp: 30, + supported_features: ClimateEntityFeature.TARGET_TEMPERATURE, + }), + getEntity("climate", "ac", "cool", { + friendly_name: "Basic air conditioning", + hvac_modes: ["cool", "off"], + hvac_mode: "cool", + current_temperature: 18, + temperature: 20, + min_temp: 10, + max_temp: 30, + supported_features: ClimateEntityFeature.TARGET_TEMPERATURE, + }), + getEntity("climate", "hvac", "auto", { + friendly_name: "Basic hvac", + hvac_modes: ["auto", "off"], + hvac_mode: "auto", + current_temperature: 18, + min_temp: 10, + max_temp: 30, + target_temp_step: 1, + supported_features: ClimateEntityFeature.TARGET_TEMPERATURE_RANGE, + target_temp_low: 20, + target_temp_high: 25, + }), + getEntity("climate", "unavailable", "unavailable", { + friendly_name: "Unavailable heater", + hvac_modes: ["heat", "off"], + hvac_mode: "heat", + min_temp: 10, + max_temp: 30, + supported_features: ClimateEntityFeature.TARGET_TEMPERATURE, + }), +]; + +@customElement("demo-more-info-climate") +class DemoMoreInfoClimate extends LitElement { + @property() public hass!: MockHomeAssistant; + + @query("demo-more-infos") private _demoRoot!: HTMLElement; + + protected render(): TemplateResult { + return html` + ent.entityId)} + > + `; + } + + protected firstUpdated(changedProperties: PropertyValues) { + super.firstUpdated(changedProperties); + const hass = provideHass(this._demoRoot); + hass.updateTranslations(null, "en"); + hass.addEntities(ENTITIES); + } +} + +declare global { + interface HTMLElementTagNameMap { + "demo-more-info-climate": DemoMoreInfoClimate; + } +} diff --git a/src/components/entity/state-badge.ts b/src/components/entity/state-badge.ts index 1c91fce31b..17a9bcbbba 100644 --- a/src/components/entity/state-badge.ts +++ b/src/components/entity/state-badge.ts @@ -19,7 +19,7 @@ import { } from "../../common/entity/state_color"; import { iconColorCSS } from "../../common/style/icon_color_css"; import { cameraUrlWithWidthHeight } from "../../data/camera"; -import { HVAC_ACTION_TO_MODE } from "../../data/climate"; +import { CLIMATE_HVAC_ACTION_TO_MODE } from "../../data/climate"; import type { HomeAssistant } from "../../types"; import "../ha-state-icon"; @@ -160,10 +160,10 @@ export class StateBadge extends LitElement { } if (stateObj.attributes.hvac_action) { const hvacAction = stateObj.attributes.hvac_action; - if (hvacAction in HVAC_ACTION_TO_MODE) { + if (hvacAction in CLIMATE_HVAC_ACTION_TO_MODE) { iconStyle.color = stateColorCss( stateObj, - HVAC_ACTION_TO_MODE[hvacAction] + CLIMATE_HVAC_ACTION_TO_MODE[hvacAction] )!; } else { delete iconStyle.color; diff --git a/src/components/ha-climate-control.ts b/src/components/ha-climate-control.ts deleted file mode 100644 index b57cbb5053..0000000000 --- a/src/components/ha-climate-control.ts +++ /dev/null @@ -1,138 +0,0 @@ -import { mdiChevronDown, mdiChevronUp } from "@mdi/js"; -import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; -import { customElement, property, query } from "lit/decorators"; -import { fireEvent } from "../common/dom/fire_event"; -import { conditionalClamp } from "../common/number/clamp"; -import { HomeAssistant } from "../types"; -import "./ha-icon"; -import "./ha-icon-button"; - -@customElement("ha-climate-control") -class HaClimateControl extends LitElement { - @property({ attribute: false }) public hass!: HomeAssistant; - - @property() public value!: number; - - @property() public unit = ""; - - @property() public min?: number; - - @property() public max?: number; - - @property() public step = 1; - - private _lastChanged?: number; - - @query("#target_temperature") private _targetTemperature!: HTMLElement; - - protected render(): TemplateResult { - return html` -
${this.value} ${this.unit}
-
-
- - -
-
- - -
-
- `; - } - - protected updated(changedProperties) { - if (changedProperties.has("value")) { - this._valueChanged(); - } - } - - private _temperatureStateInFlux(inFlux) { - this._targetTemperature.classList.toggle("in-flux", inFlux); - } - - private _round(value) { - // Round value to precision derived from step. - // Inspired by https://github.com/soundar24/roundSlider/blob/master/src/roundslider.js - const s = this.step.toString().split("."); - return s[1] ? parseFloat(value.toFixed(s[1].length)) : Math.round(value); - } - - private _incrementValue() { - const newValue = this._round(this.value + this.step); - this._processNewValue(newValue); - } - - private _decrementValue() { - const newValue = this._round(this.value - this.step); - this._processNewValue(newValue); - } - - private _processNewValue(value) { - const newValue = conditionalClamp(value, this.min, this.max); - - if (this.value !== newValue) { - this.value = newValue; - this._lastChanged = Date.now(); - this._temperatureStateInFlux(true); - } - } - - private _valueChanged() { - // When the last_changed timestamp is changed, - // trigger a potential event fire in the future, - // as long as last_changed is far enough in the past. - if (this._lastChanged) { - window.setTimeout(() => { - const now = Date.now(); - if (now - this._lastChanged! >= 2000) { - fireEvent(this, "change"); - this._temperatureStateInFlux(false); - this._lastChanged = undefined; - } - }, 2010); - } - } - - static get styles(): CSSResultGroup { - return css` - :host { - display: flex; - justify-content: space-between; - } - .in-flux { - color: var(--error-color); - } - #target_temperature { - align-self: center; - font-size: 28px; - direction: ltr; - } - .control-buttons { - font-size: 24px; - text-align: right; - } - ha-icon-button { - --mdc-icon-size: 32px; - } - `; - } -} - -declare global { - interface HTMLElementTagNameMap { - "ha-climate-control": HaClimateControl; - } -} diff --git a/src/components/ha-control-circular-slider.ts b/src/components/ha-control-circular-slider.ts index ffe26f17dc..b8bbffb336 100644 --- a/src/components/ha-control-circular-slider.ts +++ b/src/components/ha-control-circular-slider.ts @@ -409,6 +409,8 @@ export class HaControlCircularSlider extends LitElement { value: number | undefined, inverted: boolean | undefined ) { + if (this.disabled) return nothing; + const limit = inverted ? this.max : this.min; const path = svgArc({ @@ -437,7 +439,10 @@ export class HaControlCircularSlider extends LitElement { const targetCircleDashArray = this._strokeCircleDashArc(target); const currentCircleDashArray = - this.current != null && showActive + this.current != null && + showActive && + current <= this.max && + current >= this.min ? this._strokeCircleDashArc(this.current) : undefined; @@ -474,17 +479,11 @@ export class HaControlCircularSlider extends LitElement { @keydown=${this._handleKeyDown} @keyup=${this._handleKeyUp} /> - ${ currentCircleDashArray ? svg` `; } @@ -633,8 +638,8 @@ export class HaControlCircularSlider extends LitElement { fill: none; stroke-linecap: round; stroke-width: 8px; - stroke: white; - opacity: 0.6; + stroke: var(--primary-text-color); + opacity: 0.5; transition: stroke-width 300ms ease-in-out, stroke-dasharray 300ms ease-in-out, @@ -643,6 +648,10 @@ export class HaControlCircularSlider extends LitElement { opacity 180ms ease-in-out; } + .arc-current { + stroke: var(--clear-background-color); + } + .arc-clear { stroke: var(--clear-background-color); } diff --git a/src/data/climate.ts b/src/data/climate.ts index 705f83fe15..ede93a6933 100644 --- a/src/data/climate.ts +++ b/src/data/climate.ts @@ -1,3 +1,14 @@ +import { + mdiClockOutline, + mdiFan, + mdiFire, + mdiHeatWave, + mdiPower, + mdiSnowflake, + mdiSunSnowflakeVariant, + mdiThermostatAuto, + mdiWaterPercent, +} from "@mdi/js"; import { HassEntityAttributeBase, HassEntityBase, @@ -74,7 +85,7 @@ const hvacModeOrdering: { [key in HvacMode]: number } = { export const compareClimateHvacModes = (mode1: HvacMode, mode2: HvacMode) => hvacModeOrdering[mode1] - hvacModeOrdering[mode2]; -export const HVAC_ACTION_TO_MODE: Record = { +export const CLIMATE_HVAC_ACTION_TO_MODE: Record = { cooling: "cool", drying: "dry", fan: "fan_only", @@ -83,3 +94,23 @@ export const HVAC_ACTION_TO_MODE: Record = { idle: "off", off: "off", }; + +export const CLIMATE_HVAC_ACTION_ICONS: Record = { + cooling: mdiSnowflake, + drying: mdiWaterPercent, + fan: mdiFan, + heating: mdiFire, + idle: mdiClockOutline, + off: mdiPower, + preheating: mdiHeatWave, +}; + +export const CLIMATE_HVAC_MODE_ICONS: Record = { + cool: mdiSnowflake, + dry: mdiWaterPercent, + fan_only: mdiFan, + auto: mdiThermostatAuto, + heat: mdiFire, + off: mdiPower, + heat_cool: mdiSunSnowflakeVariant, +}; diff --git a/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts b/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts new file mode 100644 index 0000000000..be43b3b796 --- /dev/null +++ b/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts @@ -0,0 +1,534 @@ +import { mdiMinus, mdiPlus } from "@mdi/js"; +import { + CSSResultGroup, + LitElement, + PropertyValues, + css, + html, + nothing, +} from "lit"; +import { customElement, property, state } from "lit/decorators"; +import { classMap } from "lit/directives/class-map"; +import { styleMap } from "lit/directives/style-map"; +import { computeAttributeValueDisplay } from "../../../../common/entity/compute_attribute_display"; +import { stateActive } from "../../../../common/entity/state_active"; +import { stateColorCss } from "../../../../common/entity/state_color"; +import { supportsFeature } from "../../../../common/entity/supports-feature"; +import { clamp } from "../../../../common/number/clamp"; +import { formatNumber } from "../../../../common/number/format_number"; +import { debounce } from "../../../../common/util/debounce"; +import "../../../../components/ha-control-circular-slider"; +import "../../../../components/ha-outlined-icon-button"; +import "../../../../components/ha-svg-icon"; +import { + CLIMATE_HVAC_ACTION_TO_MODE, + ClimateEntity, + ClimateEntityFeature, +} from "../../../../data/climate"; +import { UNAVAILABLE } from "../../../../data/entity"; +import { HomeAssistant } from "../../../../types"; + +type Target = "value" | "low" | "high"; + +@customElement("ha-more-info-climate-temperature") +export class HaMoreInfoClimateTemperature extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @property({ attribute: false }) public stateObj!: ClimateEntity; + + @state() private _targetTemperature: Partial> = {}; + + @state() private _selectTargetTemperature: Target = "low"; + + protected willUpdate(changedProp: PropertyValues): void { + super.willUpdate(changedProp); + if (changedProp.has("stateObj")) { + this._targetTemperature = { + value: this.stateObj.attributes.temperature, + low: this.stateObj.attributes.target_temp_low, + high: this.stateObj.attributes.target_temp_high, + }; + } + } + + private get _step() { + return ( + this.stateObj.attributes.target_temp_step || + (this.hass.config.unit_system.temperature.indexOf("F") === -1 ? 0.5 : 1) + ); + } + + private get _min() { + return this.stateObj.attributes.min_temp; + } + + private get _max() { + return this.stateObj.attributes.max_temp; + } + + private _valueChanged(ev: CustomEvent) { + const value = (ev.detail as any).value; + if (isNaN(value)) return; + const target = ev.type.replace("-changed", ""); + this._targetTemperature = { + ...this._targetTemperature, + [target]: value, + }; + this._selectTargetTemperature = target as Target; + this._callService(target); + } + + private _valueChanging(ev: CustomEvent) { + const value = (ev.detail as any).value; + if (isNaN(value)) return; + const target = ev.type.replace("-changing", ""); + this._targetTemperature = { + ...this._targetTemperature, + [target]: value, + }; + this._selectTargetTemperature = target as Target; + } + + private _debouncedCallService = debounce( + (target: Target) => this._callService(target), + 1000 + ); + + private _callService(type: string) { + if (type === "high" || type === "low") { + this.hass.callService("climate", "set_temperature", { + entity_id: this.stateObj!.entity_id, + target_temp_low: this._targetTemperature.low, + target_temp_high: this._targetTemperature.high, + }); + return; + } + this.hass.callService("climate", "set_temperature", { + entity_id: this.stateObj!.entity_id, + temperature: this._targetTemperature.value, + }); + } + + private _handleButton(ev) { + const target = ev.currentTarget.target as Target; + const step = ev.currentTarget.step as number; + + const defaultValue = target === "high" ? this._max : this._min; + + let temp = this._targetTemperature[target] ?? defaultValue; + temp += step; + temp = clamp(temp, this._min, this._max); + if (target === "high" && this._targetTemperature.low != null) { + temp = clamp(temp, this._targetTemperature.low, this._max); + } + if (target === "low" && this._targetTemperature.high != null) { + temp = clamp(temp, this._min, this._targetTemperature.high); + } + + this._targetTemperature = { + ...this._targetTemperature, + [target]: temp, + }; + this._debouncedCallService(target); + } + + private _handleSelectTemp(ev) { + const target = ev.currentTarget.target as Target; + this._selectTargetTemperature = target; + } + + private _renderHvacAction() { + const action = this.stateObj.attributes.hvac_action; + + const actionLabel = computeAttributeValueDisplay( + this.hass.localize, + this.stateObj, + this.hass.locale, + this.hass.config, + this.hass.entities, + "hvac_action" + ) as string; + + return html` +

+ ${action && ["preheating", "heating", "cooling"].includes(action) + ? this.hass.localize( + "ui.dialogs.more_info_control.climate.target_label", + { action: actionLabel } + ) + : action && action !== "off" && action !== "idle" + ? actionLabel + : this.hass.localize("ui.dialogs.more_info_control.climate.target")} +

+ `; + } + + private _renderTemperatureButtons(target: Target, colored?: boolean) { + const lowColor = stateColorCss(this.stateObj, "heat"); + const highColor = stateColorCss(this.stateObj, "cool"); + + const color = colored + ? target === "high" + ? highColor + : lowColor + : undefined; + + return html` +
+ + + + + + +
+ `; + } + + private _renderTargetTemperature(temperature: number) { + const digits = this._step.toString().split(".")?.[1]?.length ?? 0; + const formatted = formatNumber(temperature, this.hass.locale, { + maximumFractionDigits: digits, + minimumFractionDigits: digits, + }); + const [temperatureInteger] = formatted.includes(".") + ? formatted.split(".") + : formatted.split(","); + + const temperatureDecimal = formatted.replace(temperatureInteger, ""); + + return html` +

+ + + ${this.stateObj.attributes.temperature} + ${this.hass.config.unit_system.temperature} + +

+ `; + } + + protected render() { + const supportsTargetTemperature = supportsFeature( + this.stateObj, + ClimateEntityFeature.TARGET_TEMPERATURE + ); + + const supportsTargetTemperatureRange = supportsFeature( + this.stateObj, + ClimateEntityFeature.TARGET_TEMPERATURE_RANGE + ); + + const mode = this.stateObj.state; + const action = this.stateObj.attributes.hvac_action; + const active = stateActive(this.stateObj); + + const mainColor = stateColorCss(this.stateObj); + const lowColor = stateColorCss(this.stateObj, active ? "heat" : "off"); + const highColor = stateColorCss(this.stateObj, active ? "cool" : "off"); + + let actionColor: string | undefined; + if (action && action !== "idle" && action !== "off" && active) { + actionColor = stateColorCss( + this.stateObj, + CLIMATE_HVAC_ACTION_TO_MODE[action] + ); + } + + const hvacModes = this.stateObj.attributes.hvac_modes; + + if (supportsTargetTemperature && this._targetTemperature.value != null) { + const hasOnlyCoolMode = + hvacModes.length === 2 && + hvacModes.includes("cool") && + hvacModes.includes("off"); + return html` +
+ + +
+
${this._renderHvacAction()}
+
+ ${this._renderTargetTemperature(this._targetTemperature.value)} +
+
+ ${this._renderTemperatureButtons("value")} +
+ `; + } + + if ( + supportsTargetTemperatureRange && + this._targetTemperature.low != null && + this._targetTemperature.high != null + ) { + return html` +
+ + +
+
${this._renderHvacAction()}
+
+ + +
+
+ ${this._renderTemperatureButtons(this._selectTargetTemperature, true)} +
+ `; + } + + return html` +
+ + +
+ `; + } + + static get styles(): CSSResultGroup { + return css` + /* Layout */ + .container { + position: relative; + } + .info { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + pointer-events: none; + font-size: 16px; + line-height: 24px; + letter-spacing: 0.1px; + } + .info * { + margin: 0; + pointer-events: auto; + } + /* Elements */ + .temperature-container { + margin-bottom: 30px; + } + .temperature { + display: inline-flex; + font-size: 58px; + line-height: 64px; + letter-spacing: -0.25px; + margin: 0; + } + .temperature span { + display: inline-flex; + } + .temperature .unit { + font-size: 24px; + line-height: 40px; + } + .temperature .decimal { + font-size: 24px; + line-height: 40px; + align-self: flex-end; + margin-right: -18px; + } + .action-container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 200px; + height: 48px; + margin-bottom: 6px; + } + .action { + font-weight: 500; + text-align: center; + color: var(--action-color, inherit); + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + } + .dual { + display: flex; + flex-direction: row; + gap: 24px; + margin-bottom: 40px; + } + + .dual button { + outline: none; + background: none; + color: inherit; + font-family: inherit; + -webkit-tap-highlight-color: transparent; + border: none; + opacity: 0.5; + padding: 0; + transition: + opacity 180ms ease-in-out, + transform 180ms ease-in-out; + cursor: pointer; + } + .dual button:focus-visible { + transform: scale(1.1); + } + .dual button.selected { + opacity: 1; + } + .buttons { + position: absolute; + bottom: 10px; + left: 0; + right: 0; + margin: 0 auto; + width: 120px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + } + .buttons ha-outlined-icon-button { + --md-outlined-icon-button-container-size: 48px; + --md-outlined-icon-button-icon-size: 24px; + } + /* Accessibility */ + .visually-hidden { + position: absolute; + overflow: hidden; + clip: rect(0 0 0 0); + height: 1px; + width: 1px; + margin: -1px; + padding: 0; + border: 0; + } + /* Slider */ + ha-control-circular-slider { + --control-circular-slider-color: var( + --main-color, + var(--disabled-color) + ); + --control-circular-slider-low-color: var( + --low-color, + var(--disabled-color) + ); + --control-circular-slider-high-color: var( + --high-color, + var(--disabled-color) + ); + } + ha-control-circular-slider::after { + display: block; + content: ""; + position: absolute; + top: -10%; + left: -10%; + right: -10%; + bottom: -10%; + background: radial-gradient( + 50% 50% at 50% 50%, + var(--action-color, transparent) 0%, + transparent 100% + ); + opacity: 0.15; + pointer-events: none; + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "ha-more-info-climate-temperature": HaMoreInfoClimateTemperature; + } +} diff --git a/src/dialogs/more-info/const.ts b/src/dialogs/more-info/const.ts index a0dc211937..37295e1767 100644 --- a/src/dialogs/more-info/const.ts +++ b/src/dialogs/more-info/const.ts @@ -19,6 +19,7 @@ export const EDITABLE_DOMAINS_WITH_UNIQUE_ID = ["script"]; export const DOMAINS_WITH_NEW_MORE_INFO = [ "alarm_control_panel", "cover", + "climate", "fan", "input_boolean", "light", diff --git a/src/dialogs/more-info/controls/more-info-climate.ts b/src/dialogs/more-info/controls/more-info-climate.ts index 9294e06855..962bb6e287 100644 --- a/src/dialogs/more-info/controls/more-info-climate.ts +++ b/src/dialogs/more-info/controls/more-info-climate.ts @@ -1,10 +1,10 @@ import "@material/mwc-list/mwc-list-item"; import { - css, CSSResultGroup, - html, LitElement, PropertyValues, + css, + html, nothing, } from "lit"; import { property } from "lit/decorators"; @@ -17,8 +17,9 @@ import { } from "../../../common/entity/compute_attribute_display"; import { computeStateDisplay } from "../../../common/entity/compute_state_display"; import { supportsFeature } from "../../../common/entity/supports-feature"; +import { formatNumber } from "../../../common/number/format_number"; +import { blankBeforePercent } from "../../../common/translations/blank_before_percent"; import { computeRTLDirection } from "../../../common/util/compute_rtl"; -import "../../../components/ha-climate-control"; import "../../../components/ha-select"; import "../../../components/ha-slider"; import "../../../components/ha-switch"; @@ -28,6 +29,8 @@ import { compareClimateHvacModes, } from "../../../data/climate"; import { HomeAssistant } from "../../../types"; +import "../components/climate/ha-more-info-climate-temperature"; +import { moreInfoControlStyle } from "../components/ha-more-info-control-style"; class MoreInfoClimate extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; @@ -73,13 +76,60 @@ class MoreInfoClimate extends LitElement { ClimateEntityFeature.AUX_HEAT ); - const temperatureStepSize = - stateObj.attributes.target_temp_step || - (hass.config.unit_system.temperature.indexOf("F") === -1 ? 0.5 : 1); + const currentTemperature = this.stateObj.attributes.current_temperature; + const currentHumidity = this.stateObj.attributes.current_humidity; const rtlDirection = computeRTLDirection(hass); return html` + ${currentTemperature || currentHumidity + ? html`
+ ${currentTemperature != null + ? html` +
+

+ ${computeAttributeNameDisplay( + this.hass.localize, + this.stateObj, + this.hass.entities, + "current_temperature" + )} +

+

+ ${formatNumber(currentTemperature, this.hass.locale)} + ${this.hass.config.unit_system.temperature} +

+
+ ` + : nothing} + ${currentHumidity != null + ? html` +
+

+ ${computeAttributeNameDisplay( + this.hass.localize, + this.stateObj, + this.hass.entities, + "current_humidity" + )} +

+

+ ${formatNumber( + currentHumidity, + this.hass.locale + )}${blankBeforePercent(this.hass.locale)}% +

+
+ ` + : nothing} +
` + : nothing} +
+ +
-
-
- ${supportTargetTemperature || supportTargetTemperatureRange - ? html` -
- ${computeAttributeNameDisplay( - hass.localize, - stateObj, - hass.entities, - "temperature" - )} -
- ` - : ""} - ${stateObj.attributes.temperature !== undefined && - stateObj.attributes.temperature !== null - ? html` - - ` - : ""} - ${(stateObj.attributes.target_temp_low !== undefined && - stateObj.attributes.target_temp_low !== null) || - (stateObj.attributes.target_temp_high !== undefined && - stateObj.attributes.target_temp_high !== null) - ? html` - - - ` - : ""} -
-
- ${supportTargetHumidity ? html`
@@ -184,34 +176,32 @@ class MoreInfoClimate extends LitElement { : ""}
-
- - ${stateObj.attributes.hvac_modes - .concat() - .sort(compareClimateHvacModes) - .map( - (mode) => html` - - ${computeStateDisplay( - hass.localize, - stateObj, - hass.locale, - this.hass.config, - hass.entities, - mode - )} - - ` - )} - -
+ + ${stateObj.attributes.hvac_modes + .concat() + .sort(compareClimateHvacModes) + .map( + (mode) => html` + + ${computeStateDisplay( + hass.localize, + stateObj, + hass.locale, + this.hass.config, + hass.entities, + mode + )} + + ` + )} +
${supportPresetMode && stateObj.attributes.preset_modes @@ -358,42 +348,6 @@ class MoreInfoClimate extends LitElement { }, 500); } - private _targetTemperatureChanged(ev) { - const newVal = ev.target.value; - this._callServiceHelper( - this.stateObj!.attributes.temperature, - newVal, - "set_temperature", - { temperature: newVal } - ); - } - - private _targetTemperatureLowChanged(ev) { - const newVal = ev.currentTarget.value; - this._callServiceHelper( - this.stateObj!.attributes.target_temp_low, - newVal, - "set_temperature", - { - target_temp_low: newVal, - target_temp_high: this.stateObj!.attributes.target_temp_high, - } - ); - } - - private _targetTemperatureHighChanged(ev) { - const newVal = ev.currentTarget.value; - this._callServiceHelper( - this.stateObj!.attributes.target_temp_high, - newVal, - "set_temperature", - { - target_temp_low: this.stateObj!.attributes.target_temp_low, - target_temp_high: newVal, - } - ); - } - private _targetHumiditySliderChanged(ev) { const newVal = ev.target.value; this._callServiceHelper( @@ -492,48 +446,76 @@ class MoreInfoClimate extends LitElement { } static get styles(): CSSResultGroup { - return css` - :host { - color: var(--primary-text-color); - } + return [ + moreInfoControlStyle, + css` + :host { + color: var(--primary-text-color); + } - ha-select { - width: 100%; - margin-top: 8px; - } + .current { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + text-align: center; + margin-bottom: 40px; + } - ha-slider { - width: 100%; - } + .current div { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; + flex: 1; + } - .container-humidity .single-row { - display: flex; - height: 50px; - } + .current p { + margin: 0; + text-align: center; + color: var(--primary-text-color); + } - .target-humidity { - width: 90px; - font-size: 200%; - margin: auto; - direction: ltr; - } + .current .label { + opacity: 0.8; + font-size: 14px; + line-height: 16px; + letter-spacing: 0.4px; + margin-bottom: 4px; + } - ha-climate-control.range-control-left, - ha-climate-control.range-control-right { - float: left; - width: 46%; - } - ha-climate-control.range-control-left { - margin-right: 4%; - } - ha-climate-control.range-control-right { - margin-left: 4%; - } + .current .value { + font-size: 22px; + font-weight: 500; + line-height: 28px; + } + ha-select { + width: 100%; + margin-top: 8px; + } - .single-row { - padding: 8px 0; - } - `; + ha-slider { + width: 100%; + } + + .container-humidity .single-row { + display: flex; + height: 50px; + } + + .target-humidity { + width: 90px; + font-size: 200%; + margin: auto; + direction: ltr; + } + + .single-row { + padding: 8px 0; + } + `, + ]; } } diff --git a/src/fake_data/entity.ts b/src/fake_data/entity.ts index c7c31d5702..de4b0ca5a5 100644 --- a/src/fake_data/entity.ts +++ b/src/fake_data/entity.ts @@ -3,6 +3,8 @@ import { HassEntity, HassEntityAttributeBase, } from "home-assistant-js-websocket"; +import { supportsFeature } from "../common/entity/supports-feature"; +import { ClimateEntityFeature } from "../data/climate"; const now = () => new Date().toISOString(); const randomTime = () => @@ -313,6 +315,45 @@ class ClimateEntity extends Entity { super.handleService(domain, service, data); } } + + public toState() { + const state = super.toState(); + + state.attributes.hvac_action = undefined; + + if ( + supportsFeature( + state as HassEntity, + ClimateEntityFeature.TARGET_TEMPERATURE + ) + ) { + const current = state.attributes.current_temperature; + const target = state.attributes.temperature; + if (state.state === "heat") { + state.attributes.hvac_action = target >= current ? "heating" : "idle"; + } + if (state.state === "cool") { + state.attributes.hvac_action = target <= current ? "cooling" : "idle"; + } + } + if ( + supportsFeature( + state as HassEntity, + ClimateEntityFeature.TARGET_TEMPERATURE_RANGE + ) + ) { + const current = state.attributes.current_temperature; + const lowTarget = state.attributes.target_temp_low; + const highTarget = state.attributes.target_temp_high; + state.attributes.hvac_action = + lowTarget >= current + ? "heating" + : highTarget <= current + ? "cooling" + : "idle"; + } + return state; + } } class GroupEntity extends Entity { diff --git a/src/panels/lovelace/cards/hui-button-card.ts b/src/panels/lovelace/cards/hui-button-card.ts index 670e69b0e9..9cb0b359b1 100644 --- a/src/panels/lovelace/cards/hui-button-card.ts +++ b/src/panels/lovelace/cards/hui-button-card.ts @@ -34,7 +34,7 @@ import { isValidEntityId } from "../../../common/entity/valid_entity_id"; import { iconColorCSS } from "../../../common/style/icon_color_css"; import { LocalizeFunc } from "../../../common/translations/localize"; import "../../../components/ha-card"; -import { HVAC_ACTION_TO_MODE } from "../../../data/climate"; +import { CLIMATE_HVAC_ACTION_TO_MODE } from "../../../data/climate"; import { configContext, entitiesContext, @@ -343,8 +343,8 @@ export class HuiButtonCard extends LitElement implements LovelaceCard { } if (stateObj.attributes.hvac_action) { const hvacAction = stateObj.attributes.hvac_action; - if (hvacAction in HVAC_ACTION_TO_MODE) { - return stateColorCss(stateObj, HVAC_ACTION_TO_MODE[hvacAction]); + if (hvacAction in CLIMATE_HVAC_ACTION_TO_MODE) { + return stateColorCss(stateObj, CLIMATE_HVAC_ACTION_TO_MODE[hvacAction]); } return undefined; } diff --git a/src/panels/lovelace/cards/hui-entity-card.ts b/src/panels/lovelace/cards/hui-entity-card.ts index 201c4b9dd6..ca3ffdeaf0 100644 --- a/src/panels/lovelace/cards/hui-entity-card.ts +++ b/src/panels/lovelace/cards/hui-entity-card.ts @@ -29,7 +29,7 @@ import { import { iconColorCSS } from "../../../common/style/icon_color_css"; import "../../../components/ha-card"; import "../../../components/ha-icon"; -import { HVAC_ACTION_TO_MODE } from "../../../data/climate"; +import { CLIMATE_HVAC_ACTION_TO_MODE } from "../../../data/climate"; import { isUnavailableState } from "../../../data/entity"; import { HomeAssistant } from "../../../types"; import { computeCardSize } from "../common/compute-card-size"; @@ -201,8 +201,8 @@ export class HuiEntityCard extends LitElement implements LovelaceCard { private _computeColor(stateObj: HassEntity): string | undefined { if (stateObj.attributes.hvac_action) { const hvacAction = stateObj.attributes.hvac_action; - if (hvacAction in HVAC_ACTION_TO_MODE) { - return stateColorCss(stateObj, HVAC_ACTION_TO_MODE[hvacAction]); + if (hvacAction in CLIMATE_HVAC_ACTION_TO_MODE) { + return stateColorCss(stateObj, CLIMATE_HVAC_ACTION_TO_MODE[hvacAction]); } return undefined; } diff --git a/src/panels/lovelace/cards/hui-thermostat-card.ts b/src/panels/lovelace/cards/hui-thermostat-card.ts index b48978274c..f26273f4ee 100644 --- a/src/panels/lovelace/cards/hui-thermostat-card.ts +++ b/src/panels/lovelace/cards/hui-thermostat-card.ts @@ -47,6 +47,7 @@ import { createEntityNotFoundWarning } from "../components/hui-warning"; import { LovelaceCard, LovelaceCardEditor } from "../types"; import { ThermostatCardConfig } from "./types"; +// TODO: Need to align these icon to more info icons const modeIcons: { [mode in HvacMode]: string } = { auto: mdiCalendarSync, heat_cool: mdiAutorenew, diff --git a/src/panels/lovelace/cards/tile/badges/tile-badge-climate.ts b/src/panels/lovelace/cards/tile/badges/tile-badge-climate.ts index 03c959eec6..a00d773e56 100644 --- a/src/panels/lovelace/cards/tile/badges/tile-badge-climate.ts +++ b/src/panels/lovelace/cards/tile/badges/tile-badge-climate.ts @@ -1,40 +1,11 @@ -import { - mdiClockOutline, - mdiFan, - mdiFire, - mdiHeatWave, - mdiPower, - mdiSnowflake, - mdiWaterPercent, -} from "@mdi/js"; import { stateColorCss } from "../../../../../common/entity/state_color"; import { + CLIMATE_HVAC_ACTION_ICONS, + CLIMATE_HVAC_ACTION_TO_MODE, ClimateEntity, - HvacAction, - HvacMode, } from "../../../../../data/climate"; import { ComputeBadgeFunction } from "./tile-badge"; -export const CLIMATE_HVAC_ACTION_ICONS: Record = { - cooling: mdiSnowflake, - drying: mdiWaterPercent, - fan: mdiFan, - heating: mdiFire, - idle: mdiClockOutline, - off: mdiPower, - preheating: mdiHeatWave, -}; - -export const CLIMATE_HVAC_ACTION_MODE: Record = { - cooling: "cool", - drying: "dry", - fan: "fan_only", - heating: "heat", - idle: "off", - off: "off", - preheating: "heat", -}; - export const computeClimateBadge: ComputeBadgeFunction = (stateObj) => { const hvacAction = (stateObj as ClimateEntity).attributes.hvac_action; @@ -44,6 +15,6 @@ export const computeClimateBadge: ComputeBadgeFunction = (stateObj) => { return { iconPath: CLIMATE_HVAC_ACTION_ICONS[hvacAction], - color: stateColorCss(stateObj, CLIMATE_HVAC_ACTION_MODE[hvacAction]), + color: stateColorCss(stateObj, CLIMATE_HVAC_ACTION_TO_MODE[hvacAction]), }; }; diff --git a/src/resources/ha-style.ts b/src/resources/ha-style.ts index b8a039d3d6..7536f9f87c 100644 --- a/src/resources/ha-style.ts +++ b/src/resources/ha-style.ts @@ -109,7 +109,7 @@ documentContainer.innerHTML = ` --yellow-color: #ffeb3b; --amber-color: #ffc107; --orange-color: #ff9800; - --deep-orange-color: #ff5722; + --deep-orange-color: #ff6f22; --brown-color: #795548; --light-grey-color: #bdbdbd; --grey-color: #9e9e9e; diff --git a/src/translations/en.json b/src/translations/en.json index c6a6625844..7eb6025147 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -996,6 +996,10 @@ "open": "Open", "lock": "Lock", "unlock": "Unlock" + }, + "climate": { + "target_label": "{action} to target", + "target": "Target" } }, "entity_registry": { From 4986b013a2061d24e87edbd04595a5a24724ad6e Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Tue, 8 Aug 2023 13:07:46 +0200 Subject: [PATCH 032/182] Add new humidity control in humidifier more info (#17011) * Add new humidity control in humidifier more info * Fix humidifier card * Some adjustments * Add current label * Some adjustments * Clean code * Remove unused code * Fix merge * Add current to main screen * Remove toggle * Add action * Update buttons * Add gallery * Some fixes * Add overflow * Update src/dialogs/more-info/components/humidifier/ha-more-info-humidifier-humidity.ts * Update src/dialogs/more-info/controls/more-info-humidifier.ts Co-authored-by: Bram Kragten * Use climate translation --------- Co-authored-by: Bram Kragten --- .../src/pages/more-info/humidifier.markdown | 3 + gallery/src/pages/more-info/humidifier.ts | 57 +++ src/data/humidifier.ts | 69 +++- .../ha-more-info-humidifier-humidity.ts | 334 ++++++++++++++++++ src/dialogs/more-info/const.ts | 1 + .../controls/more-info-humidifier.ts | 228 +++++++----- src/panels/lovelace/cards/hui-tile-card.ts | 9 + .../tile/badges/tile-badge-humidifier.ts | 25 +- src/translations/en.json | 4 + 9 files changed, 605 insertions(+), 125 deletions(-) create mode 100644 gallery/src/pages/more-info/humidifier.markdown create mode 100644 gallery/src/pages/more-info/humidifier.ts create mode 100644 src/dialogs/more-info/components/humidifier/ha-more-info-humidifier-humidity.ts diff --git a/gallery/src/pages/more-info/humidifier.markdown b/gallery/src/pages/more-info/humidifier.markdown new file mode 100644 index 0000000000..68d1c9588c --- /dev/null +++ b/gallery/src/pages/more-info/humidifier.markdown @@ -0,0 +1,3 @@ +--- +title: Humidifier +--- diff --git a/gallery/src/pages/more-info/humidifier.ts b/gallery/src/pages/more-info/humidifier.ts new file mode 100644 index 0000000000..024b4dae7a --- /dev/null +++ b/gallery/src/pages/more-info/humidifier.ts @@ -0,0 +1,57 @@ +import { html, LitElement, PropertyValues, TemplateResult } from "lit"; +import { customElement, property, query } from "lit/decorators"; +import "../../../../src/components/ha-card"; +import "../../../../src/dialogs/more-info/more-info-content"; +import { getEntity } from "../../../../src/fake_data/entity"; +import { + MockHomeAssistant, + provideHass, +} from "../../../../src/fake_data/provide_hass"; +import "../../components/demo-more-infos"; + +const ENTITIES = [ + getEntity("humidifier", "humidifier", "on", { + friendly_name: "Humidifier", + device_class: "humidifier", + current_humidity: 50, + humidity: 30, + }), + getEntity("humidifier", "dehumidifier", "on", { + friendly_name: "Dehumidifier", + device_class: "dehumidifier", + current_humidity: 50, + humidity: 30, + }), + getEntity("humidifier", "unavailable", "unavailable", { + friendly_name: "Unavailable humidifier", + }), +]; + +@customElement("demo-more-info-humidifier") +class DemoMoreInfoHumidifier extends LitElement { + @property() public hass!: MockHomeAssistant; + + @query("demo-more-infos") private _demoRoot!: HTMLElement; + + protected render(): TemplateResult { + return html` + ent.entityId)} + > + `; + } + + protected firstUpdated(changedProperties: PropertyValues) { + super.firstUpdated(changedProperties); + const hass = provideHass(this._demoRoot); + hass.updateTranslations(null, "en"); + hass.addEntities(ENTITIES); + } +} + +declare global { + interface HTMLElementTagNameMap { + "demo-more-info-humidifier": DemoMoreInfoHumidifier; + } +} diff --git a/src/data/humidifier.ts b/src/data/humidifier.ts index 90d70f68d4..4fa99ac248 100644 --- a/src/data/humidifier.ts +++ b/src/data/humidifier.ts @@ -1,9 +1,25 @@ +import { + mdiAccountArrowRight, + mdiAirHumidifier, + mdiArrowDownBold, + mdiArrowUpBold, + mdiBabyCarriage, + mdiClockOutline, + mdiHome, + mdiLeaf, + mdiPower, + mdiPowerSleep, + mdiRefreshAuto, + mdiRocketLaunch, + mdiSofa, + mdiWaterPercent, +} from "@mdi/js"; import { HassEntityAttributeBase, HassEntityBase, } from "home-assistant-js-websocket"; -export type HumidifierState = "on" | "off"; +export type HumidifierState = "off" | "on"; export type HumidifierAction = "off" | "idle" | "humidifying" | "drying"; @@ -19,7 +35,52 @@ export type HumidifierEntity = HassEntityBase & { }; }; -export const HUMIDIFIER_SUPPORT_MODES = 1; +export const enum HumidifierEntityFeature { + MODES = 1, +} -export const HUMIDIFIER_DEVICE_CLASS_HUMIDIFIER = "humidifier"; -export const HUMIDIFIER_DEVICE_CLASS_DEHUMIDIFIER = "dehumidifier"; +export const enum HumidifierEntityDeviceClass { + HUMIDIFIER = "humidifier", + DEHUMIDIFIER = "dehumidifier", +} + +type HumidifierBuiltInMode = + | "normal" + | "eco" + | "away" + | "boost" + | "comfort" + | "home" + | "sleep" + | "auto" + | "baby"; + +export const HUMIDIFIER_MODE_ICONS: Record = { + auto: mdiRefreshAuto, + away: mdiAccountArrowRight, + baby: mdiBabyCarriage, + boost: mdiRocketLaunch, + comfort: mdiSofa, + eco: mdiLeaf, + home: mdiHome, + normal: mdiWaterPercent, + sleep: mdiPowerSleep, +}; + +export const computeHumidiferModeIcon = (mode?: string) => + HUMIDIFIER_MODE_ICONS[mode as HumidifierBuiltInMode] ?? mdiAirHumidifier; + +export const HUMIDIFIER_ACTION_ICONS: Record = { + drying: mdiArrowDownBold, + humidifying: mdiArrowUpBold, + idle: mdiClockOutline, + off: mdiPower, +}; + +export const HUMIDIFIER_ACTION_MODE: Record = + { + drying: "on", + humidifying: "on", + idle: "off", + off: "off", + }; diff --git a/src/dialogs/more-info/components/humidifier/ha-more-info-humidifier-humidity.ts b/src/dialogs/more-info/components/humidifier/ha-more-info-humidifier-humidity.ts new file mode 100644 index 0000000000..3f9bfaefb7 --- /dev/null +++ b/src/dialogs/more-info/components/humidifier/ha-more-info-humidifier-humidity.ts @@ -0,0 +1,334 @@ +import { mdiMinus, mdiPlus } from "@mdi/js"; +import { CSSResultGroup, LitElement, PropertyValues, css, html } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import { styleMap } from "lit/directives/style-map"; +import { computeAttributeValueDisplay } from "../../../../common/entity/compute_attribute_display"; +import { stateActive } from "../../../../common/entity/state_active"; +import { stateColorCss } from "../../../../common/entity/state_color"; +import { clamp } from "../../../../common/number/clamp"; +import { formatNumber } from "../../../../common/number/format_number"; +import { blankBeforePercent } from "../../../../common/translations/blank_before_percent"; +import { debounce } from "../../../../common/util/debounce"; +import "../../../../components/ha-control-circular-slider"; +import "../../../../components/ha-outlined-icon-button"; +import "../../../../components/ha-svg-icon"; +import { UNAVAILABLE } from "../../../../data/entity"; +import { + HUMIDIFIER_ACTION_MODE, + HumidifierEntity, + HumidifierEntityDeviceClass, +} from "../../../../data/humidifier"; +import { HomeAssistant } from "../../../../types"; + +@customElement("ha-more-info-humidifier-humidity") +export class HaMoreInfoHumidifierHumidity extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @property({ attribute: false }) public stateObj!: HumidifierEntity; + + @state() private _targetHumidity?: number; + + protected willUpdate(changedProp: PropertyValues): void { + super.willUpdate(changedProp); + if (changedProp.has("stateObj")) { + this._targetHumidity = this.stateObj.attributes.humidity; + } + } + + private get _step() { + return 1; + } + + private get _min() { + return this.stateObj.attributes.min_humidity ?? 0; + } + + private get _max() { + return this.stateObj.attributes.max_humidity ?? 100; + } + + private _valueChanged(ev: CustomEvent) { + const value = (ev.detail as any).value; + if (isNaN(value)) return; + this._targetHumidity = value; + this._callService(); + } + + private _valueChanging(ev: CustomEvent) { + const value = (ev.detail as any).value; + if (isNaN(value)) return; + this._targetHumidity = value; + } + + private _debouncedCallService = debounce(() => this._callService(), 1000); + + private _callService() { + this.hass.callService("humidifier", "set_humidity", { + entity_id: this.stateObj!.entity_id, + humidity: this._targetHumidity, + }); + } + + private _handleButton(ev) { + const step = ev.currentTarget.step as number; + + let humidity = this._targetHumidity ?? this._min; + humidity += step; + humidity = clamp(humidity, this._min, this._max); + + this._targetHumidity = humidity; + this._debouncedCallService(); + } + + private _renderAction() { + const action = this.stateObj.attributes.action; + + const actionLabel = computeAttributeValueDisplay( + this.hass.localize, + this.stateObj, + this.hass.locale, + this.hass.config, + this.hass.entities, + "action" + ) as string; + + return html` +

+ ${action && ["drying", "humidifying"].includes(action) + ? this.hass.localize( + "ui.dialogs.more_info_control.humidifier.target_label", + { action: actionLabel } + ) + : action && action !== "off" && action !== "idle" + ? actionLabel + : this.hass.localize( + "ui.dialogs.more_info_control.humidifier.target" + )} +

+ `; + } + + private _renderButtons() { + return html` +
+ + + + + + +
+ `; + } + + private _renderTarget(humidity: number) { + const formatted = formatNumber(humidity, this.hass.locale, { + maximumFractionDigits: 0, + }); + + return html` +
+ +

+ ${formatted}${blankBeforePercent(this.hass.locale)}% +

+
+ `; + } + + protected render() { + const mainColor = stateColorCss(this.stateObj); + const active = stateActive(this.stateObj); + + const action = this.stateObj.attributes.action; + + let actionColor: string | undefined; + if (action && action !== "idle" && action !== "off" && active) { + actionColor = stateColorCss( + this.stateObj, + HUMIDIFIER_ACTION_MODE[action] + ); + } + + const targetHumidity = this._targetHumidity; + const currentHumidity = this.stateObj.attributes.current_humidity; + + if (targetHumidity != null) { + const inverted = + this.stateObj.attributes.device_class === + HumidifierEntityDeviceClass.DEHUMIDIFIER; + + return html` +
+ + +
+
${this._renderAction()}
+
+ ${this._renderTarget(targetHumidity)} +
+
+ ${this._renderButtons()} +
+ `; + } + + return html` +
+ + +
+ `; + } + + static get styles(): CSSResultGroup { + return css` + /* Layout */ + .container { + position: relative; + } + .info { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + pointer-events: none; + font-size: 16px; + line-height: 24px; + letter-spacing: 0.1px; + } + .info * { + margin: 0; + pointer-events: auto; + } + /* Elements */ + .target-container { + margin-bottom: 30px; + } + .target .value { + font-size: 56px; + line-height: 1; + letter-spacing: -0.25px; + } + .target .value .unit { + font-size: 0.4em; + line-height: 1; + margin-left: 2px; + } + .action-container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 200px; + height: 48px; + margin-bottom: 6px; + } + .action { + font-weight: 500; + text-align: center; + color: var(--action-color, inherit); + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + } + .buttons { + position: absolute; + bottom: 10px; + left: 0; + right: 0; + margin: 0 auto; + width: 120px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + } + .buttons ha-outlined-icon-button { + --md-outlined-icon-button-container-size: 48px; + --md-outlined-icon-button-icon-size: 24px; + } + /* Accessibility */ + .visually-hidden { + position: absolute; + overflow: hidden; + clip: rect(0 0 0 0); + height: 1px; + width: 1px; + margin: -1px; + padding: 0; + border: 0; + } + /* Slider */ + ha-control-circular-slider { + --control-circular-slider-color: var( + --main-color, + var(--disabled-color) + ); + } + ha-control-circular-slider::after { + display: block; + content: ""; + position: absolute; + top: -10%; + left: -10%; + right: -10%; + bottom: -10%; + background: radial-gradient( + 50% 50% at 50% 50%, + var(--action-color, transparent) 0%, + transparent 100% + ); + opacity: 0.15; + pointer-events: none; + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "ha-more-info-humidifier-humidity": HaMoreInfoHumidifierHumidity; + } +} diff --git a/src/dialogs/more-info/const.ts b/src/dialogs/more-info/const.ts index 37295e1767..580faa2e40 100644 --- a/src/dialogs/more-info/const.ts +++ b/src/dialogs/more-info/const.ts @@ -21,6 +21,7 @@ export const DOMAINS_WITH_NEW_MORE_INFO = [ "cover", "climate", "fan", + "humidifier", "input_boolean", "light", "lock", diff --git a/src/dialogs/more-info/controls/more-info-humidifier.ts b/src/dialogs/more-info/controls/more-info-humidifier.ts index 75dba4faf8..d3b8a14e54 100644 --- a/src/dialogs/more-info/controls/more-info-humidifier.ts +++ b/src/dialogs/more-info/controls/more-info-humidifier.ts @@ -1,37 +1,45 @@ -import "@material/mwc-list/mwc-list-item"; import { - css, CSSResultGroup, - html, LitElement, PropertyValues, + css, + html, nothing, } from "lit"; -import { property } from "lit/decorators"; +import { property, state } from "lit/decorators"; import { classMap } from "lit/directives/class-map"; import { fireEvent } from "../../../common/dom/fire_event"; +import { stopPropagation } from "../../../common/dom/stop_propagation"; import { computeAttributeNameDisplay, computeAttributeValueDisplay, } from "../../../common/entity/compute_attribute_display"; -import { stopPropagation } from "../../../common/dom/stop_propagation"; +import { computeStateDisplay } from "../../../common/entity/compute_state_display"; import { supportsFeature } from "../../../common/entity/supports-feature"; -import { computeRTLDirection } from "../../../common/util/compute_rtl"; -import "../../../components/ha-select"; -import "../../../components/ha-slider"; -import "../../../components/ha-switch"; +import { formatNumber } from "../../../common/number/format_number"; +import { blankBeforePercent } from "../../../common/translations/blank_before_percent"; import { HumidifierEntity, - HUMIDIFIER_SUPPORT_MODES, + HumidifierEntityFeature, } from "../../../data/humidifier"; import { HomeAssistant } from "../../../types"; -import { computeStateDisplay } from "../../../common/entity/compute_state_display"; +import { moreInfoControlStyle } from "../components/ha-more-info-control-style"; +import "../components/humidifier/ha-more-info-humidifier-humidity"; class MoreInfoHumidifier extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; @property() public stateObj?: HumidifierEntity; + @state() public _mode?: string; + + protected willUpdate(changedProps: PropertyValues): void { + super.willUpdate(changedProps); + if (changedProps.has("stateObj")) { + this._mode = this.stateObj?.attributes.mode; + } + } + private _resizeDebounce?: number; protected render() { @@ -42,43 +50,52 @@ class MoreInfoHumidifier extends LitElement { const hass = this.hass; const stateObj = this.stateObj; - const supportModes = supportsFeature(stateObj, HUMIDIFIER_SUPPORT_MODES); + const supportModes = supportsFeature( + stateObj, + HumidifierEntityFeature.MODES + ); - const rtlDirection = computeRTLDirection(hass); + const currentHumidity = this.stateObj.attributes.current_humidity; return html` + ${currentHumidity + ? html`
+ ${currentHumidity != null + ? html` +
+

+ ${computeAttributeNameDisplay( + this.hass.localize, + this.stateObj, + this.hass.entities, + "current_humidity" + )} +

+

+ ${formatNumber( + currentHumidity, + this.hass.locale + )}${blankBeforePercent(this.hass.locale)}% +

+
+ ` + : nothing} +
` + : nothing} +
+ +
-
-
- ${computeAttributeNameDisplay( - hass.localize, - stateObj, - hass.entities, - "humidity" - )} -
-
-
${stateObj.attributes.humidity} %
- - -
-
${computeStateDisplay( - hass.localize, - stateObj, - hass.locale, + this.hass.localize, + this.stateObj, + this.hass.locale, this.hass.config, - hass.entities, + this.hass.entities, "off" )} ${computeStateDisplay( - hass.localize, - stateObj, - hass.locale, + this.hass.localize, + this.stateObj, + this.hass.locale, this.hass.config, - hass.entities, + this.hass.entities, "on" )} @@ -114,6 +131,7 @@ class MoreInfoHumidifier extends LitElement { fixedMenuPosition naturalMenuWidth @selected=${this._handleModeChanged} + @action=${this._handleModeChanged} @closed=${stopPropagation} > ${stateObj.attributes.available_modes!.map( @@ -121,9 +139,9 @@ class MoreInfoHumidifier extends LitElement { ${computeAttributeValueDisplay( hass.localize, - stateObj, + stateObj!, hass.locale, - this.hass.config, + hass.config, hass.entities, "mode", mode @@ -133,7 +151,7 @@ class MoreInfoHumidifier extends LitElement { )} ` - : ""} + : nothing}
`; } @@ -153,16 +171,6 @@ class MoreInfoHumidifier extends LitElement { }, 500); } - private _targetHumiditySliderChanged(ev) { - const newVal = ev.target.value; - this._callServiceHelper( - this.stateObj!.attributes.humidity, - newVal, - "set_humidity", - { humidity: newVal } - ); - } - private _handleStateChanged(ev) { const newVal = ev.target.value || null; this._callServiceHelper( @@ -173,16 +181,6 @@ class MoreInfoHumidifier extends LitElement { ); } - private _handleModeChanged(ev) { - const newVal = ev.target.value || null; - this._callServiceHelper( - this.stateObj!.attributes.mode, - newVal, - "set_mode", - { mode: newVal } - ); - } - private async _callServiceHelper( oldVal: unknown, newVal: unknown, @@ -221,37 +219,71 @@ class MoreInfoHumidifier extends LitElement { } } + private _handleModeChanged(ev) { + ev.stopPropagation(); + ev.preventDefault(); + + const index = ev.detail.index; + const newVal = this.stateObj!.attributes.available_modes![index]; + const oldVal = this._mode; + + if (!newVal || oldVal === newVal) return; + + this._mode = newVal; + this.hass.callService("humidifier", "set_mode", { + entity_id: this.stateObj!.entity_id, + mode: newVal, + }); + } + static get styles(): CSSResultGroup { - return css` - :host { - color: var(--primary-text-color); - } + return [ + moreInfoControlStyle, + css` + :host { + color: var(--primary-text-color); + } - ha-select { - width: 100%; - margin-top: 8px; - } + .current { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + text-align: center; + margin-bottom: 40px; + } + .current div { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; + flex: 1; + } + .current p { + margin: 0; + text-align: center; + color: var(--primary-text-color); + } + .current .label { + opacity: 0.8; + font-size: 14px; + line-height: 16px; + letter-spacing: 0.4px; + margin-bottom: 4px; + } + .current .value { + font-size: 22px; + font-weight: 500; + line-height: 28px; + } - ha-slider { - width: 100%; - } - - .container-humidity .single-row { - display: flex; - height: 50px; - } - - .target-humidity { - width: 90px; - font-size: 200%; - margin: auto; - direction: ltr; - } - - .single-row { - padding: 8px 0; - } - `; + ha-select { + width: 100%; + margin-top: 8px; + } + `, + ]; } } diff --git a/src/panels/lovelace/cards/hui-tile-card.ts b/src/panels/lovelace/cards/hui-tile-card.ts index f9b10c65a9..bcde89cfa6 100644 --- a/src/panels/lovelace/cards/hui-tile-card.ts +++ b/src/panels/lovelace/cards/hui-tile-card.ts @@ -225,6 +225,15 @@ export class HuiTileCard extends LitElement implements LovelaceCard { } } + if (domain === "humidifier" && stateActive(stateObj)) { + const humidity = (stateObj as HumidifierEntity).attributes.humidity; + if (humidity) { + return `${Math.round(humidity)}${blankBeforePercent( + this.hass!.locale + )}%`; + } + } + const stateDisplay = computeStateDisplay( this.hass!.localize, stateObj, diff --git a/src/panels/lovelace/cards/tile/badges/tile-badge-humidifier.ts b/src/panels/lovelace/cards/tile/badges/tile-badge-humidifier.ts index c4901e0b2d..709f4e7c68 100644 --- a/src/panels/lovelace/cards/tile/badges/tile-badge-humidifier.ts +++ b/src/panels/lovelace/cards/tile/badges/tile-badge-humidifier.ts @@ -1,32 +1,11 @@ -import { - mdiArrowDownBold, - mdiArrowUpBold, - mdiClockOutline, - mdiPower, -} from "@mdi/js"; import { stateColorCss } from "../../../../../common/entity/state_color"; import { - HumidifierAction, + HUMIDIFIER_ACTION_ICONS, + HUMIDIFIER_ACTION_MODE, HumidifierEntity, - HumidifierState, } from "../../../../../data/humidifier"; import { ComputeBadgeFunction } from "./tile-badge"; -export const HUMIDIFIER_ACTION_ICONS: Record = { - drying: mdiArrowDownBold, - humidifying: mdiArrowUpBold, - idle: mdiClockOutline, - off: mdiPower, -}; - -export const HUMIDIFIER_ACTION_MODE: Record = - { - drying: "on", - humidifying: "on", - idle: "off", - off: "off", - }; - export const computeHumidifierBadge: ComputeBadgeFunction = (stateObj) => { const hvacAction = (stateObj as HumidifierEntity).attributes.action; diff --git a/src/translations/en.json b/src/translations/en.json index 7eb6025147..d8d67cb1ee 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -1000,6 +1000,10 @@ "climate": { "target_label": "{action} to target", "target": "Target" + }, + "humidifier": { + "target_label": "[%key:ui::dialogs::more_info_control::climate::target_label%]", + "target": "[%key:ui::dialogs::more_info_control::climate::target%]" } }, "entity_registry": { From ac20cf292af0764a1bb6b0bbfcc19f930fe12ed9 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Tue, 8 Aug 2023 14:43:55 +0200 Subject: [PATCH 033/182] Auth: Make it clearer where you are logging in to (#17459) --- src/auth/ha-authorize.ts | 112 ++++++++++++++++++++++++++++----------- src/translations/en.json | 4 +- 2 files changed, 84 insertions(+), 32 deletions(-) diff --git a/src/auth/ha-authorize.ts b/src/auth/ha-authorize.ts index 91fed8ef07..19e760f9d1 100644 --- a/src/auth/ha-authorize.ts +++ b/src/auth/ha-authorize.ts @@ -1,8 +1,16 @@ -import { css, CSSResultGroup, html, LitElement, PropertyValues } from "lit"; +import { + css, + CSSResultGroup, + html, + LitElement, + nothing, + PropertyValues, +} from "lit"; import { customElement, property, state } from "lit/decorators"; import punycode from "punycode"; import { applyThemesOnElement } from "../common/dom/apply_themes_on_element"; import { extractSearchParamsObject } from "../common/url/search-params"; +import "../components/ha-alert"; import { AuthProvider, AuthUrlSearchParams, @@ -14,6 +22,11 @@ import "./ha-auth-flow"; import("./ha-pick-auth-provider"); +const appNames = { + "https://home-assistant.io/iOS": "iOS", + "https://home-assistant.io/android": "Android", +}; + @customElement("ha-authorize") export class HaAuthorize extends litLocalizeLiteMixin(LitElement) { @property() public clientId?: string; @@ -26,6 +39,10 @@ export class HaAuthorize extends litLocalizeLiteMixin(LitElement) { @state() private _authProviders?: AuthProvider[]; + @state() private _ownInstance = false; + + @state() private _error?: string; + constructor() { super(); this.translationFragment = "page-authorize"; @@ -42,39 +59,47 @@ export class HaAuthorize extends litLocalizeLiteMixin(LitElement) { } protected render() { + if (this._error) { + return html`${this._error} ${this.redirectUri}`; + } + if (!this._authProviders) { return html`

${this.localize("ui.panel.page-authorize.initializing")}

`; } - // We don't have a good approach yet to map text markup in localization. - // So we sanitize the translation with innerText and then inject - // the name with a bold tag. - const loggingInWith = document.createElement("div"); - loggingInWith.innerText = this.localize( - "ui.panel.page-authorize.logging_in_with", - "authProviderName", - "NAME" - ); - loggingInWith.innerHTML = loggingInWith.innerHTML.replace( - "**NAME**", - `${this._authProvider!.name}` - ); - const inactiveProviders = this._authProviders.filter( (prv) => prv !== this._authProvider ); + const app = this.clientId && this.clientId in appNames; + return html` -

- ${this.localize( - "ui.panel.page-authorize.authorizing_client", - "clientId", - this.clientId ? punycode.toASCII(this.clientId) : this.clientId - )} -

- ${loggingInWith} + ${!this._ownInstance + ? html` + ${app + ? this.localize("ui.panel.page-authorize.authorizing_app", { + app: appNames[this.clientId!], + }) + : this.localize("ui.panel.page-authorize.authorizing_client", { + clientId: html`${this.clientId + ? punycode.toASCII(this.clientId) + : this.clientId}`, + })} + ` + : html`

${this.localize("ui.panel.page-authorize.authorizing")}

`} + ${inactiveProviders.length > 0 + ? html`

+ ${this.localize("ui.panel.page-authorize.logging_in_with", { + authProviderName: html`${this._authProvider!.name}`, + })} +

` + : nothing} Date: Wed, 9 Aug 2023 00:28:16 -0400 Subject: [PATCH 034/182] Update dependency eslint-config-prettier to v9 (#17528) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index af003cc08a..5a18c6e59f 100644 --- a/package.json +++ b/package.json @@ -195,7 +195,7 @@ "eslint": "8.46.0", "eslint-config-airbnb-base": "15.0.0", "eslint-config-airbnb-typescript": "17.1.0", - "eslint-config-prettier": "8.10.0", + "eslint-config-prettier": "9.0.0", "eslint-import-resolver-webpack": "0.13.2", "eslint-plugin-disable": "2.0.3", "eslint-plugin-import": "2.28.0", diff --git a/yarn.lock b/yarn.lock index ba31da8db8..48a04ca084 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8000,14 +8000,14 @@ __metadata: languageName: node linkType: hard -"eslint-config-prettier@npm:8.10.0": - version: 8.10.0 - resolution: "eslint-config-prettier@npm:8.10.0" +"eslint-config-prettier@npm:9.0.0": + version: 9.0.0 + resolution: "eslint-config-prettier@npm:9.0.0" peerDependencies: eslint: ">=7.0.0" bin: eslint-config-prettier: bin/cli.js - checksum: 153266badd477e49b0759816246b2132f1dbdb6c7f313ca60a9af5822fd1071c2bc5684a3720d78b725452bbac04bb130878b2513aea5e72b1b792de5a69fec8 + checksum: 362e991b6cb343f79362bada2d97c202e5303e6865888918a7445c555fb75e4c078b01278e90be98aa98ae22f8597d8e93d48314bec6824f540f7efcab3ce451 languageName: node linkType: hard @@ -9764,7 +9764,7 @@ __metadata: eslint: 8.46.0 eslint-config-airbnb-base: 15.0.0 eslint-config-airbnb-typescript: 17.1.0 - eslint-config-prettier: 8.10.0 + eslint-config-prettier: 9.0.0 eslint-import-resolver-webpack: 0.13.2 eslint-plugin-disable: 2.0.3 eslint-plugin-import: 2.28.0 From ade430f32645cc327f5404070a7670e4e9363b83 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Wed, 9 Aug 2023 14:35:00 +0200 Subject: [PATCH 035/182] Update target humidity control for climate more info (#17531) --- .../climate/ha-more-info-climate-humidity.ts | 331 ++++++++++++++++++ .../more-info/controls/more-info-climate.ts | 191 +++++----- .../more-info/controls/more-info-light.ts | 1 - src/translations/en.json | 3 +- 4 files changed, 430 insertions(+), 96 deletions(-) create mode 100644 src/dialogs/more-info/components/climate/ha-more-info-climate-humidity.ts diff --git a/src/dialogs/more-info/components/climate/ha-more-info-climate-humidity.ts b/src/dialogs/more-info/components/climate/ha-more-info-climate-humidity.ts new file mode 100644 index 0000000000..95be20ac85 --- /dev/null +++ b/src/dialogs/more-info/components/climate/ha-more-info-climate-humidity.ts @@ -0,0 +1,331 @@ +import { mdiMinus, mdiPlus } from "@mdi/js"; +import { CSSResultGroup, LitElement, PropertyValues, css, html } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import { styleMap } from "lit/directives/style-map"; +import { stateActive } from "../../../../common/entity/state_active"; +import { domainStateColorProperties } from "../../../../common/entity/state_color"; +import { supportsFeature } from "../../../../common/entity/supports-feature"; +import { clamp } from "../../../../common/number/clamp"; +import { formatNumber } from "../../../../common/number/format_number"; +import { blankBeforePercent } from "../../../../common/translations/blank_before_percent"; +import { debounce } from "../../../../common/util/debounce"; +import "../../../../components/ha-control-circular-slider"; +import "../../../../components/ha-outlined-icon-button"; +import "../../../../components/ha-svg-icon"; +import { ClimateEntity, ClimateEntityFeature } from "../../../../data/climate"; +import { UNAVAILABLE } from "../../../../data/entity"; +import { computeCssVariable } from "../../../../resources/css-variables"; +import { HomeAssistant } from "../../../../types"; + +@customElement("ha-more-info-climate-humidity") +export class HaMoreInfoClimateHumidity extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @property({ attribute: false }) public stateObj!: ClimateEntity; + + @state() private _targetHumidity?: number; + + protected willUpdate(changedProp: PropertyValues): void { + super.willUpdate(changedProp); + if (changedProp.has("stateObj")) { + this._targetHumidity = this.stateObj.attributes.humidity; + } + } + + private get _step() { + return 1; + } + + private get _min() { + return this.stateObj.attributes.min_humidity ?? 0; + } + + private get _max() { + return this.stateObj.attributes.max_humidity ?? 100; + } + + private _valueChanged(ev: CustomEvent) { + const value = (ev.detail as any).value; + if (isNaN(value)) return; + this._targetHumidity = value; + this._callService(); + } + + private _valueChanging(ev: CustomEvent) { + const value = (ev.detail as any).value; + if (isNaN(value)) return; + this._targetHumidity = value; + } + + private _debouncedCallService = debounce(() => this._callService(), 1000); + + private _callService() { + this.hass.callService("climate", "set_humidity", { + entity_id: this.stateObj!.entity_id, + humidity: this._targetHumidity, + }); + } + + private _handleButton(ev) { + const step = ev.currentTarget.step as number; + + let humidity = this._targetHumidity ?? this._min; + humidity += step; + humidity = clamp(humidity, this._min, this._max); + + this._targetHumidity = humidity; + this._debouncedCallService(); + } + + private _renderLabel() { + return html` +

+ ${this.hass.localize( + "ui.dialogs.more_info_control.climate.humidity_target" + )} +

+ `; + } + + private _renderButtons() { + return html` +
+ + + + + + +
+ `; + } + + private _renderTarget(humidity: number) { + const formatted = formatNumber(humidity, this.hass.locale, { + maximumFractionDigits: 0, + }); + + return html` +
+ +

+ ${formatted}${blankBeforePercent(this.hass.locale)}% +

+
+ `; + } + + protected render() { + const supportsTargetHumidity = supportsFeature( + this.stateObj, + ClimateEntityFeature.TARGET_HUMIDITY + ); + const active = stateActive(this.stateObj); + + // Use humidifier state color + const mainColor = computeCssVariable( + domainStateColorProperties( + "humidifier", + this.stateObj, + active ? "on" : "off" + ) + ); + + const targetHumidity = this._targetHumidity; + const currentHumidity = this.stateObj.attributes.current_humidity; + + if (supportsTargetHumidity && targetHumidity != null) { + return html` +
+ + +
+
${this._renderLabel()}
+
+ ${this._renderTarget(targetHumidity)} +
+
+ ${this._renderButtons()} +
+ `; + } + + return html` +
+ + +
+ `; + } + + static get styles(): CSSResultGroup { + return css` + /* Layout */ + .container { + position: relative; + } + .info { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + pointer-events: none; + font-size: 16px; + line-height: 24px; + letter-spacing: 0.1px; + } + .info * { + margin: 0; + pointer-events: auto; + } + /* Elements */ + .target-container { + margin-bottom: 30px; + } + .target .value { + font-size: 56px; + line-height: 1; + letter-spacing: -0.25px; + } + .target .value .unit { + font-size: 0.4em; + line-height: 1; + margin-left: 2px; + } + .action-container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 200px; + height: 48px; + margin-bottom: 6px; + } + .action { + font-weight: 500; + text-align: center; + color: var(--action-color, inherit); + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + } + .dual { + display: flex; + flex-direction: row; + gap: 24px; + margin-bottom: 40px; + } + + .dual button { + outline: none; + background: none; + color: inherit; + font-family: inherit; + -webkit-tap-highlight-color: transparent; + border: none; + opacity: 0.5; + padding: 0; + transition: + opacity 180ms ease-in-out, + transform 180ms ease-in-out; + cursor: pointer; + } + .dual button:focus-visible { + transform: scale(1.1); + } + .dual button.selected { + opacity: 1; + } + .buttons { + position: absolute; + bottom: 10px; + left: 0; + right: 0; + margin: 0 auto; + width: 120px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + } + .buttons ha-outlined-icon-button { + --md-outlined-icon-button-container-size: 48px; + --md-outlined-icon-button-icon-size: 24px; + } + /* Accessibility */ + .visually-hidden { + position: absolute; + overflow: hidden; + clip: rect(0 0 0 0); + height: 1px; + width: 1px; + margin: -1px; + padding: 0; + border: 0; + } + /* Slider */ + ha-control-circular-slider { + --control-circular-slider-color: var( + --main-color, + var(--disabled-color) + ); + } + ha-control-circular-slider::after { + display: block; + content: ""; + position: absolute; + top: -10%; + left: -10%; + right: -10%; + bottom: -10%; + background: radial-gradient( + 50% 50% at 50% 50%, + var(--action-color, transparent) 0%, + transparent 100% + ); + opacity: 0.15; + pointer-events: none; + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "ha-more-info-climate-humidity": HaMoreInfoClimateHumidity; + } +} diff --git a/src/dialogs/more-info/controls/more-info-climate.ts b/src/dialogs/more-info/controls/more-info-climate.ts index 962bb6e287..4382a3a6ea 100644 --- a/src/dialogs/more-info/controls/more-info-climate.ts +++ b/src/dialogs/more-info/controls/more-info-climate.ts @@ -1,4 +1,5 @@ import "@material/mwc-list/mwc-list-item"; +import { mdiThermometer, mdiWaterPercent } from "@mdi/js"; import { CSSResultGroup, LitElement, @@ -7,7 +8,7 @@ import { html, nothing, } from "lit"; -import { property } from "lit/decorators"; +import { property, state } from "lit/decorators"; import { classMap } from "lit/directives/class-map"; import { fireEvent } from "../../../common/dom/fire_event"; import { stopPropagation } from "../../../common/dom/stop_propagation"; @@ -19,24 +20,30 @@ import { computeStateDisplay } from "../../../common/entity/compute_state_displa import { supportsFeature } from "../../../common/entity/supports-feature"; import { formatNumber } from "../../../common/number/format_number"; import { blankBeforePercent } from "../../../common/translations/blank_before_percent"; -import { computeRTLDirection } from "../../../common/util/compute_rtl"; +import "../../../components/ha-icon-button-group"; +import "../../../components/ha-icon-button-toggle"; import "../../../components/ha-select"; -import "../../../components/ha-slider"; import "../../../components/ha-switch"; import { ClimateEntity, ClimateEntityFeature, compareClimateHvacModes, } from "../../../data/climate"; +import { UNAVAILABLE } from "../../../data/entity"; import { HomeAssistant } from "../../../types"; +import "../components/climate/ha-more-info-climate-humidity"; import "../components/climate/ha-more-info-climate-temperature"; import { moreInfoControlStyle } from "../components/ha-more-info-control-style"; +type MainControl = "temperature" | "humidity"; + class MoreInfoClimate extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; @property() public stateObj?: ClimateEntity; + @state() private _mainControl: MainControl = "temperature"; + private _resizeDebounce?: number; protected render() { @@ -79,56 +86,92 @@ class MoreInfoClimate extends LitElement { const currentTemperature = this.stateObj.attributes.current_temperature; const currentHumidity = this.stateObj.attributes.current_humidity; - const rtlDirection = computeRTLDirection(hass); - return html` - ${currentTemperature || currentHumidity - ? html`
- ${currentTemperature != null - ? html` -
-

- ${computeAttributeNameDisplay( - this.hass.localize, - this.stateObj, - this.hass.entities, - "current_temperature" - )} -

-

- ${formatNumber(currentTemperature, this.hass.locale)} - ${this.hass.config.unit_system.temperature} -

-
- ` - : nothing} - ${currentHumidity != null - ? html` -
-

- ${computeAttributeNameDisplay( - this.hass.localize, - this.stateObj, - this.hass.entities, - "current_humidity" - )} -

-

- ${formatNumber( - currentHumidity, - this.hass.locale - )}${blankBeforePercent(this.hass.locale)}% -

-
- ` - : nothing} -
` - : nothing} +
+ ${currentTemperature != null + ? html` +
+

+ ${computeAttributeNameDisplay( + this.hass.localize, + this.stateObj, + this.hass.entities, + "current_temperature" + )} +

+

+ ${formatNumber(currentTemperature, this.hass.locale)} + ${this.hass.config.unit_system.temperature} +

+
+ ` + : nothing} + ${currentHumidity != null + ? html` +
+

+ ${computeAttributeNameDisplay( + this.hass.localize, + this.stateObj, + this.hass.entities, + "current_humidity" + )} +

+

+ ${formatNumber( + currentHumidity, + this.hass.locale + )}${blankBeforePercent(this.hass.locale)}% +

+
+ ` + : nothing} +
- + ${this._mainControl === "temperature" + ? html` + + ` + : nothing} + ${this._mainControl === "humidity" + ? html` + + ` + : nothing} + ${supportTargetHumidity + ? html` + + + + + + + + + ` + : nothing}
- ${supportTargetHumidity - ? html` -
-
- ${computeAttributeNameDisplay( - hass.localize, - stateObj, - hass.entities, - "humidity" - )} -
-
-
- ${stateObj.attributes.humidity} % -
- - -
-
- ` - : ""} -
Date: Wed, 9 Aug 2023 14:35:59 +0200 Subject: [PATCH 036/182] Redesign mode buttons for humidifier more-info (#17530) --- src/components/ha-control-select-menu.ts | 255 ++++++++++++++++++ .../components/ha-more-info-control-style.ts | 29 ++ .../controls/more-info-humidifier.ts | 195 +++++++------- 3 files changed, 385 insertions(+), 94 deletions(-) create mode 100644 src/components/ha-control-select-menu.ts diff --git a/src/components/ha-control-select-menu.ts b/src/components/ha-control-select-menu.ts new file mode 100644 index 0000000000..a275e3e4f5 --- /dev/null +++ b/src/components/ha-control-select-menu.ts @@ -0,0 +1,255 @@ +import { Ripple } from "@material/mwc-ripple"; +import { RippleHandlers } from "@material/mwc-ripple/ripple-handlers"; +import { SelectBase } from "@material/mwc-select/mwc-select-base"; +import { css, html, nothing } from "lit"; +import { + customElement, + eventOptions, + query, + queryAsync, + state, +} from "lit/decorators"; +import { classMap } from "lit/directives/class-map"; +import { ifDefined } from "lit/directives/if-defined"; +import { debounce } from "../common/util/debounce"; +import { nextRender } from "../common/util/render-status"; + +@customElement("ha-control-select-menu") +export class HaControlSelectMenu extends SelectBase { + @query(".select") protected mdcRoot!: HTMLElement; + + @query(".select-anchor") protected anchorElement!: HTMLDivElement | null; + + @queryAsync("mwc-ripple") private _ripple!: Promise; + + @state() private _shouldRenderRipple = false; + + public override render() { + const classes = { + "select-disabled": this.disabled, + "select-required": this.required, + "select-invalid": !this.isUiValid, + "select-no-value": !this.selectedText, + }; + + const labelledby = this.label ? "label" : undefined; + + return html` +
+ + +
+
+ +
+
+

${this.label}

+ ${this.selectedText + ? html`

${this.selectedText}

` + : nothing} +
+ ${this._shouldRenderRipple && !this.disabled + ? html` ` + : nothing} +
+ ${this.renderMenu()} +
+ `; + } + + protected onFocus() { + this.handleRippleFocus(); + super.onFocus(); + } + + protected onBlur() { + this.handleRippleBlur(); + super.onBlur(); + } + + private _rippleHandlers: RippleHandlers = new RippleHandlers(() => { + this._shouldRenderRipple = true; + return this._ripple; + }); + + @eventOptions({ passive: true }) + private handleRippleActivate(evt?: Event) { + this._rippleHandlers.startPress(evt); + } + + private handleRippleDeactivate() { + this._rippleHandlers.endPress(); + } + + private handleRippleMouseEnter() { + this._rippleHandlers.startHover(); + } + + private handleRippleMouseLeave() { + this._rippleHandlers.endHover(); + } + + private handleRippleFocus() { + this._rippleHandlers.startFocus(); + } + + private handleRippleBlur() { + this._rippleHandlers.endFocus(); + } + + connectedCallback() { + super.connectedCallback(); + window.addEventListener("translations-updated", this._translationsUpdated); + } + + disconnectedCallback() { + super.disconnectedCallback(); + window.removeEventListener( + "translations-updated", + this._translationsUpdated + ); + } + + private _translationsUpdated = debounce(async () => { + await nextRender(); + this.layoutOptions(); + }, 500); + + static override styles = [ + css` + :host { + display: inline-block; + --control-select-menu-text-color: var(--primary-text-color); + --control-select-menu-background-color: var(--disabled-color); + --control-select-menu-background-opacity: 0.2; + --control-select-menu-border-radius: 16px; + --control-select-menu-min-width: 120px; + --control-select-menu-max-width: 200px; + --control-select-menu-width: 100%; + --mdc-icon-size: 24px; + color: var(--primary-text-color); + -webkit-tap-highlight-color: transparent; + } + .select-anchor { + color: var(--control-select-menu-text-color); + height: 56px; + padding: 8px 12px; + overflow: hidden; + position: relative; + cursor: pointer; + display: flex; + flex-direction: row; + align-items: center; + border-radius: var(--control-select-menu-border-radius); + box-sizing: border-box; + outline: none; + overflow: hidden; + background: none; + --mdc-ripple-color: var(--control-select-menu-background-color); + /* For safari border-radius overflow */ + z-index: 0; + font-size: inherit; + transition: color 180ms ease-in-out; + color: var(--control-text-icon-color); + gap: 12px; + min-width: var(--control-select-menu-min-width); + max-width: var(--control-select-menu-max-width); + width: var(--control-select-menu-width); + user-select: none; + } + .content { + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: center; + flex: 1; + overflow: hidden; + } + + .content p { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + min-width: 0; + width: 100%; + margin: auto; + } + + .label { + font-size: 12px; + font-style: normal; + font-weight: 400; + line-height: 16px; + letter-spacing: 0.4px; + } + + .select-no-value .label { + font-size: 16px; + line-height: 24px; + letter-spacing: 0.5px; + } + + .value { + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; + letter-spacing: 0.5px; + } + + .select-anchor::before { + content: ""; + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + background-color: var(--control-select-menu-background-color); + transition: + background-color 180ms ease-in-out, + opacity 180ms ease-in-out; + opacity: var(--control-select-menu-background-opacity); + } + + mwc-menu { + --mdc-shape-medium: 8px; + } + mwc-list { + --mdc-list-vertical-padding: 0; + } + `, + ]; +} + +declare global { + interface HTMLElementTagNameMap { + "ha-control-select-menu": HaControlSelectMenu; + } +} diff --git a/src/dialogs/more-info/components/ha-more-info-control-style.ts b/src/dialogs/more-info/components/ha-more-info-control-style.ts index 19d8ae47a2..fb18016a28 100644 --- a/src/dialogs/more-info/components/ha-more-info-control-style.ts +++ b/src/dialogs/more-info/components/ha-more-info-control-style.ts @@ -22,6 +22,35 @@ export const moreInfoControlStyle = css` margin-bottom: 24px; } + .secondary-controls { + display: flex; + flex-direction: row; + justify-content: center; + } + .secondary-controls-scroll { + display: flex; + flex-direction: row; + justify-content: flex-start; + gap: 12px; + margin: auto; + overflow: auto; + -ms-overflow-style: none; /* IE and Edge */ + scrollbar-width: none; /* Firefox */ + margin: 0 -24px; + padding: 0 24px; + } + .secondary-controls-scroll::-webkit-scrollbar { + display: none; + } + + /* Don't use scroll on device without touch support */ + @media (hover: hover) { + .secondary-controls-scroll { + justify-content: center; + flex-wrap: wrap; + } + } + .buttons { display: flex; align-items: center; diff --git a/src/dialogs/more-info/controls/more-info-humidifier.ts b/src/dialogs/more-info/controls/more-info-humidifier.ts index d3b8a14e54..cfea49e2b4 100644 --- a/src/dialogs/more-info/controls/more-info-humidifier.ts +++ b/src/dialogs/more-info/controls/more-info-humidifier.ts @@ -1,3 +1,4 @@ +import { mdiCircleMedium, mdiPower, mdiTuneVariant } from "@mdi/js"; import { CSSResultGroup, LitElement, @@ -7,7 +8,6 @@ import { nothing, } from "lit"; import { property, state } from "lit/decorators"; -import { classMap } from "lit/directives/class-map"; import { fireEvent } from "../../../common/dom/fire_event"; import { stopPropagation } from "../../../common/dom/stop_propagation"; import { @@ -18,7 +18,9 @@ import { computeStateDisplay } from "../../../common/entity/compute_state_displa import { supportsFeature } from "../../../common/entity/supports-feature"; import { formatNumber } from "../../../common/number/format_number"; import { blankBeforePercent } from "../../../common/translations/blank_before_percent"; +import "../../../components/ha-control-select-menu"; import { + HUMIDIFIER_MODE_ICONS, HumidifierEntity, HumidifierEntityFeature, } from "../../../data/humidifier"; @@ -58,100 +60,111 @@ class MoreInfoHumidifier extends LitElement { const currentHumidity = this.stateObj.attributes.current_humidity; return html` - ${currentHumidity - ? html`
- ${currentHumidity != null - ? html` -
-

- ${computeAttributeNameDisplay( - this.hass.localize, - this.stateObj, - this.hass.entities, - "current_humidity" - )} -

-

- ${formatNumber( - currentHumidity, - this.hass.locale - )}${blankBeforePercent(this.hass.locale)}% -

-
- ` - : nothing} -
` - : nothing} +
+ ${currentHumidity != null + ? html` +
+

+ ${computeAttributeNameDisplay( + this.hass.localize, + this.stateObj, + this.hass.entities, + "current_humidity" + )} +

+

+ ${formatNumber( + currentHumidity, + this.hass.locale + )}${blankBeforePercent(this.hass.locale)}% +

+
+ ` + : nothing} +
+
-
- - - ${computeStateDisplay( - this.hass.localize, - this.stateObj, - this.hass.locale, - this.hass.config, - this.hass.entities, - "off" - )} - - - ${computeStateDisplay( - this.hass.localize, - this.stateObj, - this.hass.locale, - this.hass.config, - this.hass.entities, - "on" - )} - - - ${supportModes - ? html` - - ${stateObj.attributes.available_modes!.map( - (mode) => html` - - ${computeAttributeValueDisplay( - hass.localize, - stateObj!, - hass.locale, - hass.config, - hass.entities, - "mode", - mode - )} - - ` - )} - - ` - : nothing} +
+
+ + + + ${computeStateDisplay( + this.hass.localize, + this.stateObj, + this.hass.locale, + this.hass.config, + this.hass.entities, + "off" + )} + + + ${computeStateDisplay( + this.hass.localize, + this.stateObj, + this.hass.locale, + this.hass.config, + this.hass.entities, + "on" + )} + + + + ${supportModes + ? html` + + + ${stateObj.attributes.available_modes!.map( + (mode) => html` + + + ${computeAttributeValueDisplay( + hass.localize, + stateObj!, + hass.locale, + hass.config, + hass.entities, + "mode", + mode + )} + + ` + )} + + ` + : nothing} +
`; } @@ -243,7 +256,6 @@ class MoreInfoHumidifier extends LitElement { :host { color: var(--primary-text-color); } - .current { display: flex; flex-direction: row; @@ -277,11 +289,6 @@ class MoreInfoHumidifier extends LitElement { font-weight: 500; line-height: 28px; } - - ha-select { - width: 100%; - margin-top: 8px; - } `, ]; } From 416661f3d12e7e188b974af8f159f027cc0b73d7 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Wed, 9 Aug 2023 07:18:57 -0700 Subject: [PATCH 037/182] Filter energy grid sources to not allow duplicates (#17381) --- src/components/entity/ha-statistic-picker.ts | 23 +++++++++++++++--- .../components/ha-energy-grid-settings.ts | 24 ++++++++++++------- .../dialog-energy-grid-flow-settings.ts | 22 ++++++++++++++--- .../energy/dialogs/show-dialogs-energy.ts | 4 ++++ 4 files changed, 59 insertions(+), 14 deletions(-) diff --git a/src/components/entity/ha-statistic-picker.ts b/src/components/entity/ha-statistic-picker.ts index 3a46527766..830d7c5760 100644 --- a/src/components/entity/ha-statistic-picker.ts +++ b/src/components/entity/ha-statistic-picker.ts @@ -79,6 +79,14 @@ export class HaStatisticPicker extends LitElement { @property({ type: Boolean, attribute: "entities-only" }) public entitiesOnly = false; + /** + * List of statistics to be excluded. + * @type {Array} + * @attr exclude-statistics + */ + @property({ type: Array, attribute: "exclude-statistics" }) + public excludeStatistics?: string[]; + @state() private _opened?: boolean; @query("ha-combo-box", true) public comboBox!: HaComboBox; @@ -118,7 +126,8 @@ export class HaStatisticPicker extends LitElement { includeStatisticsUnitOfMeasurement?: string | string[], includeUnitClass?: string | string[], includeDeviceClass?: string | string[], - entitiesOnly?: boolean + entitiesOnly?: boolean, + excludeStatistics?: string[] ): StatisticItem[] => { if (!statisticIds.length) { return [ @@ -163,6 +172,12 @@ export class HaStatisticPicker extends LitElement { const output: StatisticItem[] = []; statisticIds.forEach((meta) => { + if ( + excludeStatistics && + excludeStatistics.includes(meta.statistic_id) + ) { + return; + } const entityState = this.hass.states[meta.statistic_id]; if (!entityState) { if (!entitiesOnly) { @@ -240,7 +255,8 @@ export class HaStatisticPicker extends LitElement { this.includeStatisticsUnitOfMeasurement, this.includeUnitClass, this.includeDeviceClass, - this.entitiesOnly + this.entitiesOnly, + this.excludeStatistics ); } else { this.updateComplete.then(() => { @@ -249,7 +265,8 @@ export class HaStatisticPicker extends LitElement { this.includeStatisticsUnitOfMeasurement, this.includeUnitClass, this.includeDeviceClass, - this.entitiesOnly + this.entitiesOnly, + this.excludeStatistics ); }); } diff --git a/src/panels/config/energy/components/ha-energy-grid-settings.ts b/src/panels/config/energy/components/ha-energy-grid-settings.ts index e2c48c0672..92098fce5e 100644 --- a/src/panels/config/energy/components/ha-energy-grid-settings.ts +++ b/src/panels/config/energy/components/ha-energy-grid-settings.ts @@ -294,13 +294,13 @@ export class EnergyGridSettings extends LitElement { } private _addFromSource() { + const gridSource = this.preferences.energy_sources.find( + (src) => src.type === "grid" + ) as GridSourceTypeEnergyPreference | undefined; showEnergySettingsGridFlowFromDialog(this, { + grid_source: gridSource, saveCallback: async (flow) => { let preferences: EnergyPreferences; - const gridSource = this.preferences.energy_sources.find( - (src) => src.type === "grid" - ) as GridSourceTypeEnergyPreference | undefined; - if (!gridSource) { preferences = { ...this.preferences, @@ -328,13 +328,13 @@ export class EnergyGridSettings extends LitElement { } private _addToSource() { + const gridSource = this.preferences.energy_sources.find( + (src) => src.type === "grid" + ) as GridSourceTypeEnergyPreference | undefined; showEnergySettingsGridFlowToDialog(this, { + grid_source: gridSource, saveCallback: async (flow) => { let preferences: EnergyPreferences; - const gridSource = this.preferences.energy_sources.find( - (src) => src.type === "grid" - ) as GridSourceTypeEnergyPreference | undefined; - if (!gridSource) { preferences = { ...this.preferences, @@ -364,8 +364,12 @@ export class EnergyGridSettings extends LitElement { private _editFromSource(ev) { const origSource: FlowFromGridSourceEnergyPreference = ev.currentTarget.closest(".row").source; + const gridSource = this.preferences.energy_sources.find( + (src) => src.type === "grid" + ) as GridSourceTypeEnergyPreference | undefined; showEnergySettingsGridFlowFromDialog(this, { source: { ...origSource }, + grid_source: gridSource, metadata: this.statsMetadata?.[origSource.stat_energy_from], saveCallback: async (source) => { const flowFrom = energySourcesByType(this.preferences).grid![0] @@ -392,8 +396,12 @@ export class EnergyGridSettings extends LitElement { private _editToSource(ev) { const origSource: FlowToGridSourceEnergyPreference = ev.currentTarget.closest(".row").source; + const gridSource = this.preferences.energy_sources.find( + (src) => src.type === "grid" + ) as GridSourceTypeEnergyPreference | undefined; showEnergySettingsGridFlowToDialog(this, { source: { ...origSource }, + grid_source: gridSource, metadata: this.statsMetadata?.[origSource.stat_energy_to], saveCallback: async (source) => { const flowTo = energySourcesByType(this.preferences).grid![0].flow_to; diff --git a/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts index be742d3645..fece7e15ae 100644 --- a/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts +++ b/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts @@ -49,6 +49,8 @@ export class DialogEnergyGridFlowSettings @state() private _error?: string; + private _excludeList?: string[]; + public async showDialog( params: EnergySettingsGridFlowDialogParams ): Promise { @@ -67,18 +69,31 @@ export class DialogEnergyGridFlowSettings ] ? "statistic" : "no-costs"; - this._pickedDisplayUnit = getDisplayUnit( - this.hass, + + const initialSourceId = this._source[ this._params.direction === "from" ? "stat_energy_from" : "stat_energy_to" - ], + ]; + + this._pickedDisplayUnit = getDisplayUnit( + this.hass, + initialSourceId, params.metadata ); this._energy_units = ( await getSensorDeviceClassConvertibleUnits(this.hass, "energy") ).units; + + this._excludeList = [ + ...(this._params.grid_source?.flow_from?.map( + (entry) => entry.stat_energy_from + ) || []), + ...(this._params.grid_source?.flow_to?.map( + (entry) => entry.stat_energy_to + ) || []), + ].filter((id) => id !== initialSourceId); } public closeDialog(): void { @@ -154,6 +169,7 @@ export class DialogEnergyGridFlowSettings .label=${this.hass.localize( `ui.panel.config.energy.grid.flow_dialog.${this._params.direction}.energy_stat` )} + .excludeStatistics=${this._excludeList} @value-changed=${this._statisticChanged} dialogInitialFocus > diff --git a/src/panels/config/energy/dialogs/show-dialogs-energy.ts b/src/panels/config/energy/dialogs/show-dialogs-energy.ts index c9fea02a61..ac04b03087 100644 --- a/src/panels/config/energy/dialogs/show-dialogs-energy.ts +++ b/src/panels/config/energy/dialogs/show-dialogs-energy.ts @@ -7,6 +7,7 @@ import { FlowFromGridSourceEnergyPreference, FlowToGridSourceEnergyPreference, GasSourceTypeEnergyPreference, + GridSourceTypeEnergyPreference, SolarSourceTypeEnergyPreference, WaterSourceTypeEnergyPreference, } from "../../../../data/energy"; @@ -18,6 +19,7 @@ export interface EnergySettingsGridFlowDialogParams { | FlowToGridSourceEnergyPreference; metadata?: StatisticsMetaData; direction: "from" | "to"; + grid_source?: GridSourceTypeEnergyPreference; saveCallback: ( source: | FlowFromGridSourceEnergyPreference @@ -28,12 +30,14 @@ export interface EnergySettingsGridFlowDialogParams { export interface EnergySettingsGridFlowFromDialogParams { source?: FlowFromGridSourceEnergyPreference; metadata?: StatisticsMetaData; + grid_source?: GridSourceTypeEnergyPreference; saveCallback: (source: FlowFromGridSourceEnergyPreference) => Promise; } export interface EnergySettingsGridFlowToDialogParams { source?: FlowToGridSourceEnergyPreference; metadata?: StatisticsMetaData; + grid_source?: GridSourceTypeEnergyPreference; saveCallback: (source: FlowToGridSourceEnergyPreference) => Promise; } From 023f13cd1265b55bb5c03dbf61921ab8416442e9 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Thu, 10 Aug 2023 09:57:03 +0200 Subject: [PATCH 038/182] Redesign mode buttons for climate more-info (#17535) --- src/data/climate.ts | 99 ++++++ src/data/humidifier.ts | 4 +- .../ha-more-info-climate-temperature.ts | 11 +- .../more-info/controls/more-info-climate.ts | 318 ++++++++++-------- .../controls/more-info-humidifier.ts | 10 +- 5 files changed, 294 insertions(+), 148 deletions(-) diff --git a/src/data/climate.ts b/src/data/climate.ts index ede93a6933..bf72c04582 100644 --- a/src/data/climate.ts +++ b/src/data/climate.ts @@ -1,18 +1,38 @@ import { + mdiAccountArrowRight, + mdiArrowAll, + mdiArrowLeftRight, + mdiArrowUpDown, + mdiBed, + mdiCircleMedium, mdiClockOutline, mdiFan, + mdiFanAuto, + mdiFanOff, mdiFire, mdiHeatWave, + mdiHome, + mdiLeaf, + mdiMotionSensor, mdiPower, + mdiRocketLaunch, mdiSnowflake, + mdiSofa, + mdiSpeedometer, + mdiSpeedometerMedium, + mdiSpeedometerSlow, mdiSunSnowflakeVariant, + mdiTarget, mdiThermostatAuto, mdiWaterPercent, + mdiWeatherWindy, } from "@mdi/js"; import { HassEntityAttributeBase, HassEntityBase, } from "home-assistant-js-websocket"; +import { haOscillatingOff } from "./icons/haOscillatingOff"; +import { haOscillating } from "./icons/haOscillating"; export type HvacMode = | "off" @@ -114,3 +134,82 @@ export const CLIMATE_HVAC_MODE_ICONS: Record = { off: mdiPower, heat_cool: mdiSunSnowflakeVariant, }; + +export const computeHvacModeIcon = (mode: HvacMode) => + CLIMATE_HVAC_MODE_ICONS[mode]; + +type ClimateBuiltInPresetMode = + | "eco" + | "away" + | "boost" + | "comfort" + | "home" + | "sleep" + | "activity"; + +export const CLIMATE_PRESET_MODE_ICONS: Record< + ClimateBuiltInPresetMode, + string +> = { + away: mdiAccountArrowRight, + boost: mdiRocketLaunch, + comfort: mdiSofa, + eco: mdiLeaf, + home: mdiHome, + sleep: mdiBed, + activity: mdiMotionSensor, +}; + +export const computePresetModeIcon = (mode: string) => + mode in CLIMATE_PRESET_MODE_ICONS + ? CLIMATE_PRESET_MODE_ICONS[mode] + : mdiCircleMedium; + +type ClimateBuiltInFanMode = + | "on" + | "off" + | "auto" + | "low" + | "medium" + | "high" + | "middle" + | "focus" + | "diffuse"; + +export const CLIMATE_FAN_MODE_ICONS: Record = { + on: mdiFan, + off: mdiFanOff, + auto: mdiFanAuto, + low: mdiSpeedometerSlow, + medium: mdiSpeedometerMedium, + high: mdiSpeedometer, + middle: mdiSpeedometerMedium, + focus: mdiTarget, + diffuse: mdiWeatherWindy, +}; + +export const computeFanModeIcon = (mode: string) => + mode in CLIMATE_FAN_MODE_ICONS + ? CLIMATE_FAN_MODE_ICONS[mode] + : mdiCircleMedium; + +type ClimateBuiltInSwingMode = + | "off" + | "on" + | "vertical" + | "horizontal" + | "both"; + +export const CLIMATE_SWING_MODE_ICONS: Record = + { + on: haOscillating, + off: haOscillatingOff, + vertical: mdiArrowUpDown, + horizontal: mdiArrowLeftRight, + both: mdiArrowAll, + }; + +export const computeSwingModeIcon = (mode: string) => + mode in CLIMATE_SWING_MODE_ICONS + ? CLIMATE_SWING_MODE_ICONS[mode] + : mdiCircleMedium; diff --git a/src/data/humidifier.ts b/src/data/humidifier.ts index 4fa99ac248..bd94bf59d0 100644 --- a/src/data/humidifier.ts +++ b/src/data/humidifier.ts @@ -1,9 +1,9 @@ import { mdiAccountArrowRight, - mdiAirHumidifier, mdiArrowDownBold, mdiArrowUpBold, mdiBabyCarriage, + mdiCircleMedium, mdiClockOutline, mdiHome, mdiLeaf, @@ -68,7 +68,7 @@ export const HUMIDIFIER_MODE_ICONS: Record = { }; export const computeHumidiferModeIcon = (mode?: string) => - HUMIDIFIER_MODE_ICONS[mode as HumidifierBuiltInMode] ?? mdiAirHumidifier; + HUMIDIFIER_MODE_ICONS[mode as HumidifierBuiltInMode] ?? mdiCircleMedium; export const HUMIDIFIER_ACTION_ICONS: Record = { drying: mdiArrowDownBold, diff --git a/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts b/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts index be43b3b796..9f33ba5e34 100644 --- a/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts +++ b/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts @@ -167,11 +167,12 @@ export class HaMoreInfoClimateTemperature extends LitElement { const lowColor = stateColorCss(this.stateObj, "heat"); const highColor = stateColorCss(this.stateObj, "cool"); - const color = colored - ? target === "high" - ? highColor - : lowColor - : undefined; + const color = + colored && stateActive(this.stateObj) + ? target === "high" + ? highColor + : lowColor + : undefined; return html`
diff --git a/src/dialogs/more-info/controls/more-info-climate.ts b/src/dialogs/more-info/controls/more-info-climate.ts index 4382a3a6ea..fd5769fba0 100644 --- a/src/dialogs/more-info/controls/more-info-climate.ts +++ b/src/dialogs/more-info/controls/more-info-climate.ts @@ -1,5 +1,11 @@ import "@material/mwc-list/mwc-list-item"; -import { mdiThermometer, mdiWaterPercent } from "@mdi/js"; +import { + mdiFan, + mdiThermometer, + mdiThermostat, + mdiTuneVariant, + mdiWaterPercent, +} from "@mdi/js"; import { CSSResultGroup, LitElement, @@ -20,20 +26,28 @@ import { computeStateDisplay } from "../../../common/entity/compute_state_displa import { supportsFeature } from "../../../common/entity/supports-feature"; import { formatNumber } from "../../../common/number/format_number"; import { blankBeforePercent } from "../../../common/translations/blank_before_percent"; +import "../../../components/ha-control-select-menu"; import "../../../components/ha-icon-button-group"; import "../../../components/ha-icon-button-toggle"; +import "../../../components/ha-list-item"; import "../../../components/ha-select"; import "../../../components/ha-switch"; import { ClimateEntity, ClimateEntityFeature, + HvacMode, compareClimateHvacModes, + computeFanModeIcon, + computeHvacModeIcon, + computePresetModeIcon, + computeSwingModeIcon, } from "../../../data/climate"; import { UNAVAILABLE } from "../../../data/entity"; import { HomeAssistant } from "../../../types"; import "../components/climate/ha-more-info-climate-humidity"; import "../components/climate/ha-more-info-climate-temperature"; import { moreInfoControlStyle } from "../components/ha-more-info-control-style"; +import { haOscillating } from "../../../data/icons/haOscillating"; type MainControl = "temperature" | "humidity"; @@ -173,6 +187,174 @@ class MoreInfoClimate extends LitElement { ` : nothing}
+
+
+ + + ${stateObj.attributes.hvac_modes + .concat() + .sort(compareClimateHvacModes) + .map( + (mode) => html` + + + ${computeStateDisplay( + hass.localize, + stateObj, + hass.locale, + this.hass.config, + hass.entities, + mode + )} + + ` + )} + + ${supportPresetMode && stateObj.attributes.preset_modes + ? html` + + + ${stateObj.attributes.preset_modes!.map( + (mode) => html` + + + ${computeAttributeValueDisplay( + hass.localize, + stateObj, + hass.locale, + hass.config, + hass.entities, + "preset_mode", + mode + )} + + ` + )} + + ` + : nothing} + ${supportFanMode && stateObj.attributes.fan_modes + ? html` + + + ${stateObj.attributes.fan_modes!.map( + (mode) => html` + + + ${computeAttributeValueDisplay( + hass.localize, + stateObj, + hass.locale, + this.hass.config, + hass.entities, + "fan_mode", + mode + )} + + ` + )} + + ` + : nothing} + ${supportSwingMode && stateObj.attributes.swing_modes + ? html` + + + ${stateObj.attributes.swing_modes!.map( + (mode) => html` + + + ${computeAttributeValueDisplay( + hass.localize, + stateObj, + hass.locale, + this.hass.config, + hass.entities, + "swing_mode", + mode + )} + + ` + )} + + ` + : nothing} +
+
-
- - ${stateObj.attributes.hvac_modes - .concat() - .sort(compareClimateHvacModes) - .map( - (mode) => html` - - ${computeStateDisplay( - hass.localize, - stateObj, - hass.locale, - this.hass.config, - hass.entities, - mode - )} - - ` - )} - -
- - ${supportPresetMode && stateObj.attributes.preset_modes - ? html` -
- - ${stateObj.attributes.preset_modes!.map( - (mode) => html` - - ${computeAttributeValueDisplay( - hass.localize, - stateObj, - hass.locale, - hass.config, - hass.entities, - "preset_mode", - mode - )} - - ` - )} - -
- ` - : ""} - ${supportFanMode && stateObj.attributes.fan_modes - ? html` -
- - ${stateObj.attributes.fan_modes!.map( - (mode) => html` - - ${computeAttributeValueDisplay( - hass.localize, - stateObj, - hass.locale, - this.hass.config, - hass.entities, - "fan_mode", - mode - )} - - ` - )} - -
- ` - : ""} - ${supportSwingMode && stateObj.attributes.swing_modes - ? html` -
- - ${stateObj.attributes.swing_modes!.map( - (mode) => html` - - ${computeAttributeValueDisplay( - hass.localize, - stateObj, - hass.locale, - this.hass.config, - hass.entities, - "swing_mode", - mode - )} - - ` - )} - -
- ` - : ""} ${supportAuxHeat ? html`
diff --git a/src/dialogs/more-info/controls/more-info-humidifier.ts b/src/dialogs/more-info/controls/more-info-humidifier.ts index cfea49e2b4..72b7728b92 100644 --- a/src/dialogs/more-info/controls/more-info-humidifier.ts +++ b/src/dialogs/more-info/controls/more-info-humidifier.ts @@ -1,4 +1,4 @@ -import { mdiCircleMedium, mdiPower, mdiTuneVariant } from "@mdi/js"; +import { mdiPower, mdiTuneVariant } from "@mdi/js"; import { CSSResultGroup, LitElement, @@ -20,9 +20,9 @@ import { formatNumber } from "../../../common/number/format_number"; import { blankBeforePercent } from "../../../common/translations/blank_before_percent"; import "../../../components/ha-control-select-menu"; import { - HUMIDIFIER_MODE_ICONS, HumidifierEntity, HumidifierEntityFeature, + computeHumidiferModeIcon, } from "../../../data/humidifier"; import { HomeAssistant } from "../../../types"; import { moreInfoControlStyle } from "../components/ha-more-info-control-style"; @@ -137,8 +137,7 @@ class MoreInfoHumidifier extends LitElement { ${stateObj.attributes.available_modes!.map( @@ -146,8 +145,7 @@ class MoreInfoHumidifier extends LitElement { ${computeAttributeValueDisplay( hass.localize, From ebee8f670e12332f6b6ebd40c530200bc147ce8c Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Thu, 10 Aug 2023 09:57:56 +0200 Subject: [PATCH 039/182] Add format state/attribute to hass (#17249) --- .../entity/compute_attribute_display.ts | 32 +--------- src/common/translations/entity-state.ts | 47 ++++++++++++++ src/components/ha-attribute-value.ts | 64 +++++++++++++++++++ src/components/ha-attributes.ts | 20 ++---- src/layouts/home-assistant.ts | 5 +- src/panels/lovelace/cards/hui-entity-card.ts | 20 +++--- src/panels/lovelace/cards/hui-tile-card.ts | 9 +-- .../special-rows/hui-attribute-row.ts | 23 ++++--- src/state/connection-mixin.ts | 7 +- src/state/hass-element.ts | 2 + src/state/state-display-mixin.ts | 52 +++++++++++++++ src/types.ts | 8 +++ 12 files changed, 214 insertions(+), 75 deletions(-) create mode 100644 src/common/translations/entity-state.ts create mode 100644 src/components/ha-attribute-value.ts create mode 100644 src/state/state-display-mixin.ts diff --git a/src/common/entity/compute_attribute_display.ts b/src/common/entity/compute_attribute_display.ts index 0a6d16e55c..e4210a2509 100644 --- a/src/common/entity/compute_attribute_display.ts +++ b/src/common/entity/compute_attribute_display.ts @@ -1,7 +1,6 @@ import { HassConfig, HassEntity } from "home-assistant-js-websocket"; -import { html, TemplateResult } from "lit"; -import { until } from "lit/directives/until"; import { EntityRegistryDisplayEntry } from "../../data/entity_registry"; +import { FrontendLocaleData } from "../../data/translation"; import { HomeAssistant } from "../../types"; import checkValidDate from "../datetime/check_valid_date"; import { formatDate } from "../datetime/format_date"; @@ -12,9 +11,6 @@ import { isDate } from "../string/is_date"; import { isTimestamp } from "../string/is_timestamp"; import { LocalizeFunc } from "../translations/localize"; import { computeDomain } from "./compute_domain"; -import { FrontendLocaleData } from "../../data/translation"; - -let jsYamlPromise: Promise; export const computeAttributeValueDisplay = ( localize: LocalizeFunc, @@ -24,7 +20,7 @@ export const computeAttributeValueDisplay = ( entities: HomeAssistant["entities"], attribute: string, value?: any -): string | TemplateResult => { +): string => { const attributeValue = value !== undefined ? value : stateObj.attributes[attribute]; @@ -40,23 +36,6 @@ export const computeAttributeValueDisplay = ( // Special handling in case this is a string with an known format if (typeof attributeValue === "string") { - // URL handling - if (attributeValue.startsWith("http")) { - try { - // If invalid URL, exception will be raised - const url = new URL(attributeValue); - if (url.protocol === "http:" || url.protocol === "https:") - return html`${attributeValue}`; - } catch (_) { - // Nothing to do here - } - } - // Date handling if (isDate(attributeValue, true)) { // Timestamp handling @@ -81,13 +60,8 @@ export const computeAttributeValueDisplay = ( attributeValue.some((val) => val instanceof Object)) || (!Array.isArray(attributeValue) && attributeValue instanceof Object) ) { - if (!jsYamlPromise) { - jsYamlPromise = import("../../resources/js-yaml-dump"); - } - const yaml = jsYamlPromise.then((jsYaml) => jsYaml.dump(attributeValue)); - return html`
${until(yaml, "")}
`; + return JSON.stringify(attributeValue); } - // If this is an array, try to determine the display value for each item if (Array.isArray(attributeValue)) { return attributeValue diff --git a/src/common/translations/entity-state.ts b/src/common/translations/entity-state.ts new file mode 100644 index 0000000000..29073222c5 --- /dev/null +++ b/src/common/translations/entity-state.ts @@ -0,0 +1,47 @@ +import type { HassConfig, HassEntity } from "home-assistant-js-websocket"; +import type { FrontendLocaleData } from "../../data/translation"; +import type { HomeAssistant } from "../../types"; +import type { LocalizeFunc } from "./localize"; + +export type FormatEntityStateFunc = { + formatEntityState: (stateObj: HassEntity, state?: string) => string; + formatEntityAttributeValue: ( + stateObj: HassEntity, + attribute: string, + value?: any + ) => string; + formatEntityAttributeName: ( + stateObj: HassEntity, + attribute: string + ) => string; +}; + +export const computeFormatFunctions = async ( + localize: LocalizeFunc, + locale: FrontendLocaleData, + config: HassConfig, + entities: HomeAssistant["entities"] +): Promise => { + const { computeStateDisplay } = await import( + "../entity/compute_state_display" + ); + const { computeAttributeValueDisplay, computeAttributeNameDisplay } = + await import("../entity/compute_attribute_display"); + + return { + formatEntityState: (stateObj, state) => + computeStateDisplay(localize, stateObj, locale, config, entities, state), + formatEntityAttributeValue: (stateObj, attribute, value) => + computeAttributeValueDisplay( + localize, + stateObj, + locale, + config, + entities, + attribute, + value + ), + formatEntityAttributeName: (stateObj, attribute) => + computeAttributeNameDisplay(localize, stateObj, entities, attribute), + }; +}; diff --git a/src/components/ha-attribute-value.ts b/src/components/ha-attribute-value.ts new file mode 100644 index 0000000000..e081f3e29a --- /dev/null +++ b/src/components/ha-attribute-value.ts @@ -0,0 +1,64 @@ +import { HassEntity } from "home-assistant-js-websocket"; +import { html, LitElement, nothing } from "lit"; +import { customElement, property } from "lit/decorators"; +import { until } from "lit/directives/until"; +import { HomeAssistant } from "../types"; + +let jsYamlPromise: Promise; + +@customElement("ha-attribute-value") +class HaAttributeValue extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @property() public stateObj?: HassEntity; + + @property() public attribute!: string; + + protected render() { + if (!this.stateObj) { + return nothing; + } + const attributeValue = this.stateObj.attributes[this.attribute]; + if (typeof attributeValue === "string") { + // URL handling + if (attributeValue.startsWith("http")) { + try { + // If invalid URL, exception will be raised + const url = new URL(attributeValue); + if (url.protocol === "http:" || url.protocol === "https:") + return html` + + ${attributeValue} + + `; + } catch (_) { + // Nothing to do here + } + } + } + + if ( + (Array.isArray(attributeValue) && + attributeValue.some((val) => val instanceof Object)) || + (!Array.isArray(attributeValue) && attributeValue instanceof Object) + ) { + if (!jsYamlPromise) { + jsYamlPromise = import("../resources/js-yaml-dump"); + } + const yaml = jsYamlPromise.then((jsYaml) => jsYaml.dump(attributeValue)); + return html`
${until(yaml, "")}
`; + } + + return this.hass.formatEntityAttributeValue(this.stateObj!, this.attribute); + } +} + +declare global { + interface HTMLElementTagNameMap { + "ha-attribute-value": HaAttributeValue; + } +} diff --git a/src/components/ha-attributes.ts b/src/components/ha-attributes.ts index dce1fd4c07..80cc25031c 100644 --- a/src/components/ha-attributes.ts +++ b/src/components/ha-attributes.ts @@ -1,15 +1,12 @@ import { HassEntity } from "home-assistant-js-websocket"; import { css, CSSResultGroup, html, LitElement, nothing } from "lit"; import { customElement, property, state } from "lit/decorators"; -import { - computeAttributeNameDisplay, - computeAttributeValueDisplay, -} from "../common/entity/compute_attribute_display"; +import { computeAttributeNameDisplay } from "../common/entity/compute_attribute_display"; import { STATE_ATTRIBUTES } from "../data/entity_attributes"; import { haStyle } from "../resources/styles"; import { HomeAssistant } from "../types"; - import "./ha-expansion-panel"; +import "./ha-attribute-value"; @customElement("ha-attributes") class HaAttributes extends LitElement { @@ -58,14 +55,11 @@ class HaAttributes extends LitElement { )}
- ${computeAttributeValueDisplay( - this.hass.localize, - this.stateObj!, - this.hass.locale, - this.hass.config, - this.hass.entities, - attribute - )} +
` diff --git a/src/layouts/home-assistant.ts b/src/layouts/home-assistant.ts index 5570f0a696..ba9f321c79 100644 --- a/src/layouts/home-assistant.ts +++ b/src/layouts/home-assistant.ts @@ -68,7 +68,8 @@ export class HomeAssistantAppEl extends QuickBarMixin(HassElement) { `; } - willUpdate(changedProps: PropertyValues) { + protected willUpdate(changedProps: PropertyValues) { + super.willUpdate(changedProps); if ( this._databaseMigration === undefined && changedProps.has("hass") && @@ -79,7 +80,7 @@ export class HomeAssistantAppEl extends QuickBarMixin(HassElement) { } } - update(changedProps: PropertyValues) { + protected update(changedProps: PropertyValues) { if ( this.hass?.states && this.hass.config && diff --git a/src/panels/lovelace/cards/hui-entity-card.ts b/src/panels/lovelace/cards/hui-entity-card.ts index ca3ffdeaf0..94b9285c1a 100644 --- a/src/panels/lovelace/cards/hui-entity-card.ts +++ b/src/panels/lovelace/cards/hui-entity-card.ts @@ -12,13 +12,12 @@ import { ifDefined } from "lit/directives/if-defined"; import { styleMap } from "lit/directives/style-map"; import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element"; import { fireEvent } from "../../../common/dom/fire_event"; -import { computeAttributeValueDisplay } from "../../../common/entity/compute_attribute_display"; import { computeStateDisplay } from "../../../common/entity/compute_state_display"; import { computeStateDomain } from "../../../common/entity/compute_state_domain"; import { computeStateName } from "../../../common/entity/compute_state_name"; import { - stateColorCss, stateColorBrightness, + stateColorCss, } from "../../../common/entity/state_color"; import { isValidEntityId } from "../../../common/entity/valid_entity_id"; import { @@ -27,6 +26,7 @@ import { isNumericState, } from "../../../common/number/format_number"; import { iconColorCSS } from "../../../common/style/icon_color_css"; +import "../../../components/ha-attribute-value"; import "../../../components/ha-card"; import "../../../components/ha-icon"; import { CLIMATE_HVAC_ACTION_TO_MODE } from "../../../data/climate"; @@ -157,14 +157,14 @@ export class HuiEntityCard extends LitElement implements LovelaceCard { ${"attribute" in this._config ? stateObj.attributes[this._config.attribute!] !== undefined - ? computeAttributeValueDisplay( - this.hass.localize, - stateObj, - this.hass.locale, - this.hass.config, - this.hass.entities, - this._config.attribute! - ) + ? html` + + + ` : this.hass.localize("state.default.unknown") : isNumericState(stateObj) || this._config.unit ? formatNumber( diff --git a/src/panels/lovelace/cards/hui-tile-card.ts b/src/panels/lovelace/cards/hui-tile-card.ts index bcde89cfa6..6fd542e593 100644 --- a/src/panels/lovelace/cards/hui-tile-card.ts +++ b/src/panels/lovelace/cards/hui-tile-card.ts @@ -25,7 +25,6 @@ import { computeCssColor } from "../../../common/color/compute-color"; import { hsv2rgb, rgb2hex, rgb2hsv } from "../../../common/color/convert-color"; import { DOMAINS_TOGGLE } from "../../../common/const"; import { computeDomain } from "../../../common/entity/compute_domain"; -import { computeStateDisplay } from "../../../common/entity/compute_state_display"; import { stateActive } from "../../../common/entity/state_active"; import { stateColorCss } from "../../../common/entity/state_color"; import { stateIconPath } from "../../../common/entity/state_icon_path"; @@ -234,13 +233,7 @@ export class HuiTileCard extends LitElement implements LovelaceCard { } } - const stateDisplay = computeStateDisplay( - this.hass!.localize, - stateObj, - this.hass!.locale, - this.hass!.config, - this.hass!.entities - ); + const stateDisplay = this.hass!.formatEntityState(stateObj); if (domain === "cover") { const positionStateDisplay = computeCoverPositionStateDisplay( diff --git a/src/panels/lovelace/special-rows/hui-attribute-row.ts b/src/panels/lovelace/special-rows/hui-attribute-row.ts index b8db4ebf56..400eac4edc 100644 --- a/src/panels/lovelace/special-rows/hui-attribute-row.ts +++ b/src/panels/lovelace/special-rows/hui-attribute-row.ts @@ -1,20 +1,20 @@ import { - css, CSSResultGroup, - html, LitElement, PropertyValues, + css, + html, nothing, } from "lit"; import { customElement, property, state } from "lit/decorators"; import checkValidDate from "../../../common/datetime/check_valid_date"; +import "../../../components/ha-attribute-value"; import { HomeAssistant } from "../../../types"; import { hasConfigOrEntityChanged } from "../common/has-changed"; import "../components/hui-generic-entity-row"; import "../components/hui-timestamp-display"; import { createEntityNotFoundWarning } from "../components/hui-warning"; import { AttributeRowConfig, LovelaceRow } from "../entity-rows/types"; -import { computeAttributeValueDisplay } from "../../../common/entity/compute_attribute_display"; @customElement("hui-attribute-row") class HuiAttributeRow extends LitElement implements LovelaceRow { @@ -71,15 +71,14 @@ class HuiAttributeRow extends LitElement implements LovelaceRow { capitalize >` : attribute !== undefined - ? computeAttributeValueDisplay( - this.hass.localize, - stateObj, - this.hass.locale, - this.hass.config, - this.hass.entities, - this._config.attribute, - attribute - ) + ? html` + + + ` : "—"} ${this._config.suffix} diff --git a/src/state/connection-mixin.ts b/src/state/connection-mixin.ts index ac5b27773f..66c3f211ba 100644 --- a/src/state/connection-mixin.ts +++ b/src/state/connection-mixin.ts @@ -19,9 +19,9 @@ import { forwardHaptic } from "../data/haptics"; import { DEFAULT_PANEL } from "../data/panel"; import { serviceCallWillDisconnect } from "../data/service"; import { + DateFormat, FirstWeekday, NumberFormat, - DateFormat, TimeFormat, TimeZone, } from "../data/translation"; @@ -176,6 +176,11 @@ export const connectionMixin = >( loadFragmentTranslation: (fragment) => // @ts-ignore this._loadFragmentTranslations(this.hass?.language, fragment), + formatEntityState: (stateObj, state) => + (state !== null ? state : stateObj.state) ?? "", + formatEntityAttributeName: (_stateObj, attribute) => attribute, + formatEntityAttributeValue: (stateObj, attribute, value) => + value !== null ? value : stateObj.attributes[attribute] ?? "", ...getState(), ...this._pendingHass, }; diff --git a/src/state/hass-element.ts b/src/state/hass-element.ts index e017d5c3ef..bd2bc0d4a8 100644 --- a/src/state/hass-element.ts +++ b/src/state/hass-element.ts @@ -14,6 +14,7 @@ import { panelTitleMixin } from "./panel-title-mixin"; import SidebarMixin from "./sidebar-mixin"; import ThemesMixin from "./themes-mixin"; import TranslationsMixin from "./translations-mixin"; +import StateDisplayMixin from "./state-display-mixin"; import { urlSyncMixin } from "./url-sync-mixin"; const ext = (baseClass: T, mixins): T => @@ -23,6 +24,7 @@ export class HassElement extends ext(HassBaseEl, [ AuthMixin, ThemesMixin, TranslationsMixin, + StateDisplayMixin, MoreInfoMixin, ActionMixin, SidebarMixin, diff --git a/src/state/state-display-mixin.ts b/src/state/state-display-mixin.ts new file mode 100644 index 0000000000..5f160c41e0 --- /dev/null +++ b/src/state/state-display-mixin.ts @@ -0,0 +1,52 @@ +import { computeFormatFunctions } from "../common/translations/entity-state"; +import { Constructor, HomeAssistant } from "../types"; +import { HassBaseEl } from "./hass-base-mixin"; + +export default >(superClass: T) => { + class StateDisplayMixin extends superClass { + protected hassConnected() { + super.hassConnected(); + this._updateStateDisplay(); + } + + protected willUpdate(changedProps) { + super.willUpdate(changedProps); + + if (!changedProps.has("hass")) { + return; + } + const oldHass = changedProps.get("hass") as HomeAssistant | undefined; + + if (this.hass) { + if ( + this.hass.localize !== oldHass?.localize || + this.hass.locale !== oldHass.locale || + this.hass.config !== oldHass.config || + this.hass.entities !== oldHass.entities + ) { + this._updateStateDisplay(); + } + } + } + + private _updateStateDisplay = async () => { + if (!this.hass) return; + const { + formatEntityState, + formatEntityAttributeName, + formatEntityAttributeValue, + } = await computeFormatFunctions( + this.hass.localize, + this.hass.locale, + this.hass.config, + this.hass.entities + ); + this._updateHass({ + formatEntityState, + formatEntityAttributeName, + formatEntityAttributeValue, + }); + }; + } + return StateDisplayMixin; +}; diff --git a/src/types.ts b/src/types.ts index bfdf9768e2..7547981ab5 100644 --- a/src/types.ts +++ b/src/types.ts @@ -3,6 +3,7 @@ import { Connection, HassConfig, HassEntities, + HassEntity, HassServices, HassServiceTarget, MessageBase, @@ -256,6 +257,13 @@ export interface HomeAssistant { configFlow?: Parameters[4] ): Promise; loadFragmentTranslation(fragment: string): Promise; + formatEntityState(stateObj: HassEntity, state?: string): string; + formatEntityAttributeValue( + stateObj: HassEntity, + attribute: string, + value?: string + ): string; + formatEntityAttributeName(stateObj: HassEntity, attribute: string): string; } export interface Route { From 5dee92b2145d54783f555b8bcae6c3b92aed5ea1 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Thu, 10 Aug 2023 09:59:06 +0200 Subject: [PATCH 040/182] Redesign mode buttons for fan more-info (#17537) --- .../more-info/controls/more-info-fan.ts | 325 +++++++++--------- 1 file changed, 154 insertions(+), 171 deletions(-) diff --git a/src/dialogs/more-info/controls/more-info-fan.ts b/src/dialogs/more-info/controls/more-info-fan.ts index ae841e996c..57a4dd81dd 100644 --- a/src/dialogs/more-info/controls/more-info-fan.ts +++ b/src/dialogs/more-info/controls/more-info-fan.ts @@ -6,7 +6,7 @@ import { mdiRotateLeft, mdiRotateRight, } from "@mdi/js"; -import { CSSResultGroup, html, LitElement, nothing, PropertyValues } from "lit"; +import { CSSResultGroup, LitElement, PropertyValues, html, nothing } from "lit"; import { customElement, property, state } from "lit/decorators"; import { stopPropagation } from "../../../common/dom/stop_propagation"; import { @@ -17,15 +17,16 @@ import { computeStateDisplay } from "../../../common/entity/compute_state_displa import { stateActive } from "../../../common/entity/state_active"; import { supportsFeature } from "../../../common/entity/supports-feature"; import "../../../components/ha-attributes"; -import "../../../components/ha-outlined-button"; +import "../../../components/ha-control-select-menu"; +import "../../../components/ha-list-item"; import "../../../components/ha-outlined-icon-button"; import { UNAVAILABLE } from "../../../data/entity"; import { - computeFanSpeedCount, - computeFanSpeedStateDisplay, + FAN_SPEED_COUNT_MAX_FOR_BUTTONS, FanEntity, FanEntityFeature, - FAN_SPEED_COUNT_MAX_FOR_BUTTONS, + computeFanSpeedCount, + computeFanSpeedStateDisplay, } from "../../../data/fan"; import { forwardHaptic } from "../../../data/haptics"; import { haOscillating } from "../../../data/icons/haOscillating"; @@ -78,20 +79,8 @@ class MoreInfoFan extends LitElement { }); } - _toggleOscillate() { - const oscillating = this.stateObj!.attributes.oscillating; - this.hass.callService("fan", "oscillate", { - entity_id: this.stateObj!.entity_id, - oscillating: !oscillating, - }); - } - _handlePresetMode(ev) { - ev.stopPropagation(); - ev.preventDefault(); - - const index = ev.detail.index; - const newVal = this.stateObj!.attributes.preset_modes![index]; + const newVal = ev.target.value; const oldVal = this._presetMode; if (!newVal || oldVal === newVal) return; @@ -103,6 +92,15 @@ class MoreInfoFan extends LitElement { }); } + _handleOscillating(ev) { + const newVal = ev.target.value === "yes"; + + this.hass.callService("fan", "oscillate", { + entity_id: this.stateObj!.entity_id, + oscillating: newVal, + }); + } + protected updated(changedProps: PropertyValues): void { if (changedProps.has("stateObj")) { this._presetMode = this.stateObj?.attributes.preset_mode; @@ -170,162 +168,147 @@ class MoreInfoFan extends LitElement { .stateOverride=${this._stateOverride} >
- ${ - supportsSpeed - ? html` - - - ` - : html` - - ` - } - ${ - supportSpeedPercentage || supportsDirection || supportsOscillate - ? html`
- ${supportSpeedPercentage - ? html` - - - - ` - : nothing} - ${supportsDirection - ? html` - - - - - - - ` - : nothing} - ${supportsOscillate - ? html` - - - - ` - : nothing} -
` - : nothing - } - ${ - supportsPresetMode && this.stateObj.attributes.preset_modes - ? html` - - + + ` + : html` + + `} + ${supportSpeedPercentage || supportsDirection + ? html`
+ ${supportSpeedPercentage + ? html` + - ${this._presetMode - ? computeAttributeValueDisplay( - this.hass.localize, - this.stateObj!, - this.hass.locale, - this.hass.config, - this.hass.entities, - "preset_mode", - this._presetMode - ) - : computeAttributeNameDisplay( - this.hass.localize, - this.stateObj, - this.hass.entities, - "preset_mode" - )} - - - ${this.stateObj.attributes.preset_modes?.map( - (mode) => html` - - ${computeAttributeValueDisplay( - this.hass.localize, - this.stateObj!, - this.hass.locale, - this.hass.config, - this.hass.entities, - "preset_mode", - mode - )} - - ` - )} - - ` - : nothing - } + + + ` + : nothing} + ${supportsDirection + ? html` + + + + + + + ` + : nothing} +
` + : nothing} +
+
+
+ ${supportsPresetMode && this.stateObj.attributes.preset_modes + ? html` + + + ${this.stateObj.attributes.preset_modes?.map( + (mode) => html` + + ${computeAttributeValueDisplay( + this.hass.localize, + this.stateObj!, + this.hass.locale, + this.hass.config, + this.hass.entities, + "preset_mode", + mode + )} + + ` + )} + + ` + : nothing} + ${supportsOscillate + ? html` + + + + + ${this.hass.localize("ui.common.yes")} + + + + ${this.hass.localize("ui.common.no")} + + + ` + : nothing}
-
`; } From 9e31b2bb2922fb52f9a5759f9aaf8723d859142a Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Thu, 10 Aug 2023 01:59:07 -0700 Subject: [PATCH 041/182] Filter duplicate entries in energy solar/battery/gas/water/devices (#17538) --- .../components/ha-energy-battery-settings.ts | 6 ++++++ .../components/ha-energy-device-settings.ts | 2 ++ .../components/ha-energy-gas-settings.ts | 6 ++++++ .../components/ha-energy-solar-settings.ts | 6 ++++++ .../components/ha-energy-water-settings.ts | 6 ++++++ .../dialogs/dialog-energy-battery-settings.ts | 21 +++++++++++++++++++ .../dialogs/dialog-energy-device-settings.ts | 7 +++++++ .../dialogs/dialog-energy-gas-settings.ts | 7 +++++++ .../dialog-energy-grid-flow-settings.ts | 1 + .../dialogs/dialog-energy-solar-settings.ts | 7 +++++++ .../dialogs/dialog-energy-water-settings.ts | 7 +++++++ .../energy/dialogs/show-dialogs-energy.ts | 5 +++++ 12 files changed, 81 insertions(+) diff --git a/src/panels/config/energy/components/ha-energy-battery-settings.ts b/src/panels/config/energy/components/ha-energy-battery-settings.ts index 9d27716a8a..a33d9cd34c 100644 --- a/src/panels/config/energy/components/ha-energy-battery-settings.ts +++ b/src/panels/config/energy/components/ha-energy-battery-settings.ts @@ -146,6 +146,9 @@ export class EnergyBatterySettings extends LitElement { private _addSource() { showEnergySettingsBatteryDialog(this, { + battery_sources: this.preferences.energy_sources.filter( + (src) => src.type === "battery" + ) as BatterySourceTypeEnergyPreference[], saveCallback: async (source) => { await this._savePreferences({ ...this.preferences, @@ -160,6 +163,9 @@ export class EnergyBatterySettings extends LitElement { ev.currentTarget.closest(".row").source; showEnergySettingsBatteryDialog(this, { source: { ...origSource }, + battery_sources: this.preferences.energy_sources.filter( + (src) => src.type === "battery" + ) as BatterySourceTypeEnergyPreference[], saveCallback: async (newSource) => { await this._savePreferences({ ...this.preferences, diff --git a/src/panels/config/energy/components/ha-energy-device-settings.ts b/src/panels/config/energy/components/ha-energy-device-settings.ts index dc2df5472f..8d132b05fd 100644 --- a/src/panels/config/energy/components/ha-energy-device-settings.ts +++ b/src/panels/config/energy/components/ha-energy-device-settings.ts @@ -116,6 +116,8 @@ export class EnergyDeviceSettings extends LitElement { private _addDevice() { showEnergySettingsDeviceDialog(this, { + device_consumptions: this.preferences + .device_consumption as DeviceConsumptionEnergyPreference[], saveCallback: async (device) => { await this._savePreferences({ ...this.preferences, diff --git a/src/panels/config/energy/components/ha-energy-gas-settings.ts b/src/panels/config/energy/components/ha-energy-gas-settings.ts index 135d686ebc..28fb946eaf 100644 --- a/src/panels/config/energy/components/ha-energy-gas-settings.ts +++ b/src/panels/config/energy/components/ha-energy-gas-settings.ts @@ -136,6 +136,9 @@ export class EnergyGasSettings extends LitElement { this.preferences, this.statsMetadata ), + gas_sources: this.preferences.energy_sources.filter( + (src) => src.type === "gas" + ) as GasSourceTypeEnergyPreference[], saveCallback: async (source) => { delete source.unit_of_measurement; await this._savePreferences({ @@ -157,6 +160,9 @@ export class EnergyGasSettings extends LitElement { origSource.stat_energy_from ), metadata: this.statsMetadata?.[origSource.stat_energy_from], + gas_sources: this.preferences.energy_sources.filter( + (src) => src.type === "gas" + ) as GasSourceTypeEnergyPreference[], saveCallback: async (newSource) => { await this._savePreferences({ ...this.preferences, diff --git a/src/panels/config/energy/components/ha-energy-solar-settings.ts b/src/panels/config/energy/components/ha-energy-solar-settings.ts index ccc7e492e7..4c03fba645 100644 --- a/src/panels/config/energy/components/ha-energy-solar-settings.ts +++ b/src/panels/config/energy/components/ha-energy-solar-settings.ts @@ -149,6 +149,9 @@ export class EnergySolarSettings extends LitElement { private _addSource() { showEnergySettingsSolarDialog(this, { info: this.info!, + solar_sources: this.preferences.energy_sources.filter( + (src) => src.type === "solar" + ) as SolarSourceTypeEnergyPreference[], saveCallback: async (source) => { await this._savePreferences({ ...this.preferences, @@ -164,6 +167,9 @@ export class EnergySolarSettings extends LitElement { showEnergySettingsSolarDialog(this, { info: this.info!, source: { ...origSource }, + solar_sources: this.preferences.energy_sources.filter( + (src) => src.type === "solar" + ) as SolarSourceTypeEnergyPreference[], saveCallback: async (newSource) => { await this._savePreferences({ ...this.preferences, diff --git a/src/panels/config/energy/components/ha-energy-water-settings.ts b/src/panels/config/energy/components/ha-energy-water-settings.ts index 278b3f747e..4cba61de2e 100644 --- a/src/panels/config/energy/components/ha-energy-water-settings.ts +++ b/src/panels/config/energy/components/ha-energy-water-settings.ts @@ -135,6 +135,9 @@ export class EnergyWaterSettings extends LitElement { private _addSource() { showEnergySettingsWaterDialog(this, { + water_sources: this.preferences.energy_sources.filter( + (src) => src.type === "water" + ) as WaterSourceTypeEnergyPreference[], saveCallback: async (source) => { delete source.unit_of_measurement; await this._savePreferences({ @@ -151,6 +154,9 @@ export class EnergyWaterSettings extends LitElement { showEnergySettingsWaterDialog(this, { source: { ...origSource }, metadata: this.statsMetadata?.[origSource.stat_energy_from], + water_sources: this.preferences.energy_sources.filter( + (src) => src.type === "water" + ) as WaterSourceTypeEnergyPreference[], saveCallback: async (newSource) => { await this._savePreferences({ ...this.preferences, diff --git a/src/panels/config/energy/dialogs/dialog-energy-battery-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-battery-settings.ts index 0c76f4f78b..daa7af0b68 100644 --- a/src/panels/config/energy/dialogs/dialog-energy-battery-settings.ts +++ b/src/panels/config/energy/dialogs/dialog-energy-battery-settings.ts @@ -32,6 +32,8 @@ export class DialogEnergyBatterySettings @state() private _error?: string; + private _excludeList?: string[]; + public async showDialog( params: EnergySettingsBatteryDialogParams ): Promise { @@ -42,12 +44,23 @@ export class DialogEnergyBatterySettings this._energy_units = ( await getSensorDeviceClassConvertibleUnits(this.hass, "energy") ).units; + const allSources: string[] = []; + this._params.battery_sources.forEach((entry) => { + allSources.push(entry.stat_energy_from); + allSources.push(entry.stat_energy_to); + }); + this._excludeList = allSources.filter( + (id) => + id !== this._source?.stat_energy_from && + id !== this._source?.stat_energy_to + ); } public closeDialog(): void { this._params = undefined; this._source = undefined; this._error = undefined; + this._excludeList = undefined; fireEvent(this, "dialog-closed", { dialog: this.localName }); } @@ -85,6 +98,10 @@ export class DialogEnergyBatterySettings .label=${this.hass.localize( "ui.panel.config.energy.battery.dialog.energy_into_battery" )} + .excludeStatistics=${[ + ...(this._excludeList || []), + this._source.stat_energy_from, + ]} @value-changed=${this._statisticToChanged} dialogInitialFocus > @@ -96,6 +113,10 @@ export class DialogEnergyBatterySettings .label=${this.hass.localize( "ui.panel.config.energy.battery.dialog.energy_out_of_battery" )} + .excludeStatistics=${[ + ...(this._excludeList || []), + this._source.stat_energy_to, + ]} @value-changed=${this._statisticFromChanged} > diff --git a/src/panels/config/energy/dialogs/dialog-energy-device-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-device-settings.ts index a9e6c86445..34cd014d87 100644 --- a/src/panels/config/energy/dialogs/dialog-energy-device-settings.ts +++ b/src/panels/config/energy/dialogs/dialog-energy-device-settings.ts @@ -32,6 +32,8 @@ export class DialogEnergyDeviceSettings @state() private _error?: string; + private _excludeList?: string[]; + public async showDialog( params: EnergySettingsDeviceDialogParams ): Promise { @@ -39,12 +41,16 @@ export class DialogEnergyDeviceSettings this._energy_units = ( await getSensorDeviceClassConvertibleUnits(this.hass, "energy") ).units; + this._excludeList = this._params.device_consumptions.map( + (entry) => entry.stat_consumption + ); } public closeDialog(): void { this._params = undefined; this._device = undefined; this._error = undefined; + this._excludeList = undefined; fireEvent(this, "dialog-closed", { dialog: this.localName }); } @@ -81,6 +87,7 @@ export class DialogEnergyDeviceSettings .label=${this.hass.localize( "ui.panel.config.energy.device_consumption.dialog.device_consumption_energy" )} + .excludeStatistics=${this._excludeList} @value-changed=${this._statisticChanged} dialogInitialFocus > diff --git a/src/panels/config/energy/dialogs/dialog-energy-gas-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-gas-settings.ts index 75faae59fe..e0ccbd17a1 100644 --- a/src/panels/config/energy/dialogs/dialog-energy-gas-settings.ts +++ b/src/panels/config/energy/dialogs/dialog-energy-gas-settings.ts @@ -49,6 +49,8 @@ export class DialogEnergyGasSettings @state() private _error?: string; + private _excludeList?: string[]; + public async showDialog( params: EnergySettingsGasDialogParams ): Promise { @@ -74,6 +76,9 @@ export class DialogEnergyGasSettings this._gas_units = ( await getSensorDeviceClassConvertibleUnits(this.hass, "gas") ).units; + this._excludeList = this._params.gas_sources + .map((entry) => entry.stat_energy_from) + .filter((id) => id !== this._source?.stat_energy_from); } public closeDialog(): void { @@ -81,6 +86,7 @@ export class DialogEnergyGasSettings this._source = undefined; this._pickedDisplayUnit = undefined; this._error = undefined; + this._excludeList = undefined; fireEvent(this, "dialog-closed", { dialog: this.localName }); } @@ -139,6 +145,7 @@ export class DialogEnergyGasSettings .label=${this.hass.localize( "ui.panel.config.energy.gas.dialog.gas_usage" )} + .excludeStatistics=${this._excludeList} @value-changed=${this._statisticChanged} dialogInitialFocus > diff --git a/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts index fece7e15ae..f0683d474a 100644 --- a/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts +++ b/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts @@ -101,6 +101,7 @@ export class DialogEnergyGridFlowSettings this._source = undefined; this._pickedDisplayUnit = undefined; this._error = undefined; + this._excludeList = undefined; fireEvent(this, "dialog-closed", { dialog: this.localName }); } diff --git a/src/panels/config/energy/dialogs/dialog-energy-solar-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-solar-settings.ts index dd05a30612..68327d6614 100644 --- a/src/panels/config/energy/dialogs/dialog-energy-solar-settings.ts +++ b/src/panels/config/energy/dialogs/dialog-energy-solar-settings.ts @@ -44,6 +44,8 @@ export class DialogEnergySolarSettings @state() private _error?: string; + private _excludeList?: string[]; + public async showDialog( params: EnergySettingsSolarDialogParams ): Promise { @@ -56,12 +58,16 @@ export class DialogEnergySolarSettings this._energy_units = ( await getSensorDeviceClassConvertibleUnits(this.hass, "energy") ).units; + this._excludeList = this._params.solar_sources + .map((entry) => entry.stat_energy_from) + .filter((id) => id !== this._source?.stat_energy_from); } public closeDialog(): void { this._params = undefined; this._source = undefined; this._error = undefined; + this._excludeList = undefined; fireEvent(this, "dialog-closed", { dialog: this.localName }); } @@ -97,6 +103,7 @@ export class DialogEnergySolarSettings .label=${this.hass.localize( "ui.panel.config.energy.solar.dialog.solar_production_energy" )} + .excludeStatistics=${this._excludeList} @value-changed=${this._statisticChanged} dialogInitialFocus > diff --git a/src/panels/config/energy/dialogs/dialog-energy-water-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-water-settings.ts index c2f6b2718e..15ab3f8328 100644 --- a/src/panels/config/energy/dialogs/dialog-energy-water-settings.ts +++ b/src/panels/config/energy/dialogs/dialog-energy-water-settings.ts @@ -44,6 +44,8 @@ export class DialogEnergyWaterSettings @state() private _error?: string; + private _excludeList?: string[]; + public async showDialog( params: EnergySettingsWaterDialogParams ): Promise { @@ -66,6 +68,9 @@ export class DialogEnergyWaterSettings this._water_units = ( await getSensorDeviceClassConvertibleUnits(this.hass, "water") ).units; + this._excludeList = this._params.water_sources + .map((entry) => entry.stat_energy_from) + .filter((id) => id !== this._source?.stat_energy_from); } public closeDialog(): void { @@ -73,6 +78,7 @@ export class DialogEnergyWaterSettings this._source = undefined; this._error = undefined; this._pickedDisplayUnit = undefined; + this._excludeList = undefined; fireEvent(this, "dialog-closed", { dialog: this.localName }); } @@ -128,6 +134,7 @@ export class DialogEnergyWaterSettings .label=${this.hass.localize( "ui.panel.config.energy.water.dialog.water_usage" )} + .excludeStatistics=${this._excludeList} @value-changed=${this._statisticChanged} dialogInitialFocus > diff --git a/src/panels/config/energy/dialogs/show-dialogs-energy.ts b/src/panels/config/energy/dialogs/show-dialogs-energy.ts index ac04b03087..997999a69c 100644 --- a/src/panels/config/energy/dialogs/show-dialogs-energy.ts +++ b/src/panels/config/energy/dialogs/show-dialogs-energy.ts @@ -44,11 +44,13 @@ export interface EnergySettingsGridFlowToDialogParams { export interface EnergySettingsSolarDialogParams { info: EnergyInfo; source?: SolarSourceTypeEnergyPreference; + solar_sources: SolarSourceTypeEnergyPreference[]; saveCallback: (source: SolarSourceTypeEnergyPreference) => Promise; } export interface EnergySettingsBatteryDialogParams { source?: BatterySourceTypeEnergyPreference; + battery_sources: BatterySourceTypeEnergyPreference[]; saveCallback: (source: BatterySourceTypeEnergyPreference) => Promise; } @@ -56,16 +58,19 @@ export interface EnergySettingsGasDialogParams { source?: GasSourceTypeEnergyPreference; allowedGasUnitClass?: EnergyGasUnitClass; metadata?: StatisticsMetaData; + gas_sources: GasSourceTypeEnergyPreference[]; saveCallback: (source: GasSourceTypeEnergyPreference) => Promise; } export interface EnergySettingsWaterDialogParams { source?: WaterSourceTypeEnergyPreference; metadata?: StatisticsMetaData; + water_sources: WaterSourceTypeEnergyPreference[]; saveCallback: (source: WaterSourceTypeEnergyPreference) => Promise; } export interface EnergySettingsDeviceDialogParams { + device_consumptions: DeviceConsumptionEnergyPreference[]; saveCallback: (device: DeviceConsumptionEnergyPreference) => Promise; } From 4992007f1393e7d21a520e1192f01d6c5a3acf00 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Thu, 10 Aug 2023 14:12:07 +0200 Subject: [PATCH 042/182] Drop aux heat from more info climate (#17541) --- .../more-info/controls/more-info-climate.ts | 120 ++---------------- 1 file changed, 14 insertions(+), 106 deletions(-) diff --git a/src/dialogs/more-info/controls/more-info-climate.ts b/src/dialogs/more-info/controls/more-info-climate.ts index fd5769fba0..05323b45c8 100644 --- a/src/dialogs/more-info/controls/more-info-climate.ts +++ b/src/dialogs/more-info/controls/more-info-climate.ts @@ -15,14 +15,8 @@ import { nothing, } from "lit"; import { property, state } from "lit/decorators"; -import { classMap } from "lit/directives/class-map"; import { fireEvent } from "../../../common/dom/fire_event"; import { stopPropagation } from "../../../common/dom/stop_propagation"; -import { - computeAttributeNameDisplay, - computeAttributeValueDisplay, -} from "../../../common/entity/compute_attribute_display"; -import { computeStateDisplay } from "../../../common/entity/compute_state_display"; import { supportsFeature } from "../../../common/entity/supports-feature"; import { formatNumber } from "../../../common/number/format_number"; import { blankBeforePercent } from "../../../common/translations/blank_before_percent"; @@ -43,11 +37,11 @@ import { computeSwingModeIcon, } from "../../../data/climate"; import { UNAVAILABLE } from "../../../data/entity"; +import { haOscillating } from "../../../data/icons/haOscillating"; import { HomeAssistant } from "../../../types"; import "../components/climate/ha-more-info-climate-humidity"; import "../components/climate/ha-more-info-climate-temperature"; import { moreInfoControlStyle } from "../components/ha-more-info-control-style"; -import { haOscillating } from "../../../data/icons/haOscillating"; type MainControl = "temperature" | "humidity"; @@ -68,14 +62,6 @@ class MoreInfoClimate extends LitElement { const hass = this.hass; const stateObj = this.stateObj; - const supportTargetTemperature = supportsFeature( - stateObj, - ClimateEntityFeature.TARGET_TEMPERATURE - ); - const supportTargetTemperatureRange = supportsFeature( - stateObj, - ClimateEntityFeature.TARGET_TEMPERATURE_RANGE - ); const supportTargetHumidity = supportsFeature( stateObj, ClimateEntityFeature.TARGET_HUMIDITY @@ -92,10 +78,6 @@ class MoreInfoClimate extends LitElement { stateObj, ClimateEntityFeature.SWING_MODE ); - const supportAuxHeat = supportsFeature( - stateObj, - ClimateEntityFeature.AUX_HEAT - ); const currentTemperature = this.stateObj.attributes.current_temperature; const currentHumidity = this.stateObj.attributes.current_humidity; @@ -106,10 +88,8 @@ class MoreInfoClimate extends LitElement { ? html`

- ${computeAttributeNameDisplay( - this.hass.localize, + ${this.hass.formatEntityAttributeName( this.stateObj, - this.hass.entities, "current_temperature" )}

@@ -124,10 +104,8 @@ class MoreInfoClimate extends LitElement { ? html`

- ${computeAttributeNameDisplay( - this.hass.localize, + ${this.hass.formatEntityAttributeName( this.stateObj, - this.hass.entities, "current_humidity" )}

@@ -194,7 +172,7 @@ class MoreInfoClimate extends LitElement { .value=${stateObj.state} fixedMenuPosition naturalMenuWidth - @selected=${this._handleOperationmodeChanged} + @selected=${this._handleOperationModeChanged} @closed=${stopPropagation} > - ${computeStateDisplay( - hass.localize, - stateObj, - hass.locale, - this.hass.config, - hass.entities, - mode - )} + ${this.hass.formatEntityState(stateObj, mode)} ` )} @@ -227,10 +198,8 @@ class MoreInfoClimate extends LitElement { ${supportPresetMode && stateObj.attributes.preset_modes ? html` - ${computeAttributeValueDisplay( - hass.localize, + ${this.hass.formatEntityAttributeValue( stateObj, - hass.locale, - hass.config, - hass.entities, "preset_mode", mode )} @@ -270,16 +235,14 @@ class MoreInfoClimate extends LitElement { ${supportFanMode && stateObj.attributes.fan_modes ? html` - ${computeAttributeValueDisplay( - hass.localize, + ${this.hass.formatEntityAttributeValue( stateObj, - hass.locale, - this.hass.config, - hass.entities, "fan_mode", mode )} @@ -313,10 +272,8 @@ class MoreInfoClimate extends LitElement { ${supportSwingMode && stateObj.attributes.swing_modes ? html` - ${computeAttributeValueDisplay( - hass.localize, + ${this.hass.formatEntityAttributeValue( stateObj, - hass.locale, - this.hass.config, - hass.entities, "swing_mode", mode )} @@ -355,41 +308,6 @@ class MoreInfoClimate extends LitElement { : nothing}
-
- ${supportAuxHeat - ? html` -
-
-
- ${computeAttributeNameDisplay( - hass.localize, - stateObj, - hass.entities, - "aux_heat" - )} -
- -
-
- ` - : ""} -
`; } @@ -413,17 +331,7 @@ class MoreInfoClimate extends LitElement { this._mainControl = ev.currentTarget.control; } - private _auxToggleChanged(ev) { - const newVal = ev.target.checked; - this._callServiceHelper( - this.stateObj!.attributes.aux_heat === "on", - newVal, - "set_aux_heat", - { aux_heat: newVal } - ); - } - - private _handleFanmodeChanged(ev) { + private _handleFanModeChanged(ev) { const newVal = ev.target.value; this._callServiceHelper( this.stateObj!.attributes.fan_mode, @@ -433,7 +341,7 @@ class MoreInfoClimate extends LitElement { ); } - private _handleOperationmodeChanged(ev) { + private _handleOperationModeChanged(ev) { const newVal = ev.target.value; this._callServiceHelper(this.stateObj!.state, newVal, "set_hvac_mode", { hvac_mode: newVal, From 14c84c3d7526246de78a4fdc43d8751aeedb06ea Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 16:00:45 +0200 Subject: [PATCH 043/182] Update tsparticles to v2.12.0 (#17510) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- yarn.lock | 118 ++++++++++++++++++++++++++++----------------------- 2 files changed, 66 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index 5a18c6e59f..dc47240556 100644 --- a/package.json +++ b/package.json @@ -135,8 +135,8 @@ "sortablejs": "1.15.0", "superstruct": "1.0.3", "tinykeys": "2.1.0", - "tsparticles-engine": "2.11.1", - "tsparticles-preset-links": "2.11.0", + "tsparticles-engine": "2.12.0", + "tsparticles-preset-links": "2.12.0", "unfetch": "5.0.0", "vis-data": "7.1.6", "vis-network": "9.1.6", diff --git a/yarn.lock b/yarn.lock index 48a04ca084..55a8458ed3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9831,8 +9831,8 @@ __metadata: terser-webpack-plugin: 5.3.9 tinykeys: 2.1.0 ts-lit-plugin: 2.0.0-pre.1 - tsparticles-engine: 2.11.1 - tsparticles-preset-links: 2.11.0 + tsparticles-engine: 2.12.0 + tsparticles-preset-links: 2.12.0 typescript: 5.1.6 unfetch: 5.0.0 vinyl-buffer: 1.0.1 @@ -15360,89 +15360,99 @@ __metadata: languageName: node linkType: hard -"tsparticles-engine@npm:2.11.1, tsparticles-engine@npm:^2.11.0": - version: 2.11.1 - resolution: "tsparticles-engine@npm:2.11.1" - checksum: c8e18f8d3aac2f10b4a0ba4f5b6039822cc91fe32fb0a5e2c9e90746108ce6a71dfe8c28ce9f76ce4ff5de8fbd72b61d97a39411efd2402a92f2b4f30bd5f650 +"tsparticles-basic@npm:^2.12.0": + version: 2.12.0 + resolution: "tsparticles-basic@npm:2.12.0" + dependencies: + tsparticles-engine: ^2.12.0 + tsparticles-move-base: ^2.12.0 + tsparticles-shape-circle: ^2.12.0 + tsparticles-updater-color: ^2.12.0 + tsparticles-updater-opacity: ^2.12.0 + tsparticles-updater-out-modes: ^2.12.0 + tsparticles-updater-size: ^2.12.0 + checksum: f25b5c2afa8a613b35668967388e652d16b08ca6e07f7629f708752be3a11f3d829e015457626a890d3071527ef395fbd1794a13bc4805b36e80a96ed37367a0 languageName: node linkType: hard -"tsparticles-interaction-particles-links@npm:^2.11.0": - version: 2.11.0 - resolution: "tsparticles-interaction-particles-links@npm:2.11.0" - dependencies: - tsparticles-engine: ^2.11.0 - checksum: 38bfca50c5c8b55ef3cc55975a5be80479e283dbe04247f165635281f37f9b9fb6b884e5e996ca99e0da3725e4777100ddef2a04dab6216896649f48a89faf04 +"tsparticles-engine@npm:2.12.0, tsparticles-engine@npm:^2.12.0": + version: 2.12.0 + resolution: "tsparticles-engine@npm:2.12.0" + checksum: 6d15d71e3b7d73b64b9cb5df18d1987898536a798e14242ddd9a03478d01d6c94713c8d823800a6b0a47b72804a16acc0742f090bc8fcc2afe57c648c8fae492 languageName: node linkType: hard -"tsparticles-move-base@npm:^2.11.0": - version: 2.11.0 - resolution: "tsparticles-move-base@npm:2.11.0" +"tsparticles-interaction-particles-links@npm:^2.12.0": + version: 2.12.0 + resolution: "tsparticles-interaction-particles-links@npm:2.12.0" dependencies: - tsparticles-engine: ^2.11.0 - checksum: a049e1ecd23f8b3fd19b236040085e415765b299e919647acc18e43eb2b6d51176c97ae3095f313cd0959096638d6d6ad4337d5c9cff8d98d1b8dadbad02eaff + tsparticles-engine: ^2.12.0 + checksum: f2c50d4db06d141651d8fdd1999cc5b32758170af4a5e8a8bc248058912febed28bc2dd48801791e374c9d7a6ab0d6eca141d952badb13957a97da255b335b37 languageName: node linkType: hard -"tsparticles-preset-links@npm:2.11.0": - version: 2.11.0 - resolution: "tsparticles-preset-links@npm:2.11.0" +"tsparticles-move-base@npm:^2.12.0": + version: 2.12.0 + resolution: "tsparticles-move-base@npm:2.12.0" dependencies: - tsparticles-engine: ^2.11.0 - tsparticles-interaction-particles-links: ^2.11.0 - tsparticles-move-base: ^2.11.0 - tsparticles-shape-circle: ^2.11.0 - tsparticles-updater-color: ^2.11.0 - tsparticles-updater-opacity: ^2.11.0 - tsparticles-updater-out-modes: ^2.11.0 - tsparticles-updater-size: ^2.11.0 - checksum: 4f50e70d25cce142fc1a692dc736819c3e42c6bf3c4d10eaf6667536750ed487ee8e6173914ade73fd26ea9cee0557e84e3bf305efc73fb6288803cd803a22a3 + tsparticles-engine: ^2.12.0 + checksum: e60f6486b0e3c3a5e060d0a325d1388e3c629a2fc3a55f7517a352f77bb373d4ee5c3d32951ba231cbbc9bb03c569eec42fed60e17e028ce27d4c58319d930fe languageName: node linkType: hard -"tsparticles-shape-circle@npm:^2.11.0": - version: 2.11.0 - resolution: "tsparticles-shape-circle@npm:2.11.0" +"tsparticles-preset-links@npm:2.12.0": + version: 2.12.0 + resolution: "tsparticles-preset-links@npm:2.12.0" dependencies: - tsparticles-engine: ^2.11.0 - checksum: a83098b8d39b8ed89d1ced0f7b2e560d53b8d0f85f3993cd539b8a72d12d84cc9ef67ccc663ac580489129f33638c1791506c40d69ac0afcf8cb2e999688b2c1 + tsparticles-basic: ^2.12.0 + tsparticles-engine: ^2.12.0 + tsparticles-interaction-particles-links: ^2.12.0 + checksum: b99aeff91caee44ed21eb3f4c60dacff68c8d46fa3d27c6a1b3e5e6164adbbfb88f03b46bfa3e9f4a3182c2220c8a5689b5232eb8d9705888dc8b2d3138be9f9 languageName: node linkType: hard -"tsparticles-updater-color@npm:^2.11.0": - version: 2.11.0 - resolution: "tsparticles-updater-color@npm:2.11.0" +"tsparticles-shape-circle@npm:^2.12.0": + version: 2.12.0 + resolution: "tsparticles-shape-circle@npm:2.12.0" dependencies: - tsparticles-engine: ^2.11.0 - checksum: bfbac9a31d1ccbc179c646016f45b6ca6990d1b23b654130e38ec8df95402241d20e18d8a5b061e66c82eef4380901ed964ccbe3143d5b8ff757bd91014134e6 + tsparticles-engine: ^2.12.0 + checksum: 4cfcb380caefb6755f444b9ce3bce11d2dd0e8a436576ac0825668449abcfe22bb7dc23f574eb557b10bcb6cadb4fb1ae8ff58d5ea7df0ce38d13cef2fcdb804 languageName: node linkType: hard -"tsparticles-updater-opacity@npm:^2.11.0": - version: 2.11.0 - resolution: "tsparticles-updater-opacity@npm:2.11.0" +"tsparticles-updater-color@npm:^2.12.0": + version: 2.12.0 + resolution: "tsparticles-updater-color@npm:2.12.0" dependencies: - tsparticles-engine: ^2.11.0 - checksum: e8bf67196b529fabc838140ffe2997c58e27ab569e70a9815b10db93e8d5496f4f07e04b600b832d1a22239970eca29b2619e30f00cb0f2cc0428bd73c3582f0 + tsparticles-engine: ^2.12.0 + checksum: 6d677ead9772982f1ea38c21d611d9464bb693f320de2d27ebfe7965969c37c8d3ba98a643273844d45fd7c4e0093f2ac4241ca5027870bcc86d44a3c6fd1281 languageName: node linkType: hard -"tsparticles-updater-out-modes@npm:^2.11.0": - version: 2.11.0 - resolution: "tsparticles-updater-out-modes@npm:2.11.0" +"tsparticles-updater-opacity@npm:^2.12.0": + version: 2.12.0 + resolution: "tsparticles-updater-opacity@npm:2.12.0" dependencies: - tsparticles-engine: ^2.11.0 - checksum: 8f14fb9756c98e48d0d613b439bbb6c21d385b95cf78cebcc8077da15f42b2d9c219d7b51e9ed8f2643eb00a9871d2cdb91fc96922376827bf69171d030fc7ac + tsparticles-engine: ^2.12.0 + checksum: f4ec41754f2de91ad40e93a0483565c7f58a343ddcf9128da0e2a0fc3c3e5a89636e822f6ac31f97a7569d5339c4aafab00da94bd3da49c61aba6dcd661e049b languageName: node linkType: hard -"tsparticles-updater-size@npm:^2.11.0": - version: 2.11.0 - resolution: "tsparticles-updater-size@npm:2.11.0" +"tsparticles-updater-out-modes@npm:^2.12.0": + version: 2.12.0 + resolution: "tsparticles-updater-out-modes@npm:2.12.0" dependencies: - tsparticles-engine: ^2.11.0 - checksum: b14aecf4000441fe3e7f37cacd9f9074bb8fcd96b7ed0eb1be16274da8a843d005bca37949043867378138c6e65ccdd76c849ba2528a1c4cf92ad6488b4da7d8 + tsparticles-engine: ^2.12.0 + checksum: 98c36e007ccb3b47c53732de2d776b7ad2a32ce428b88df8447d31f9126499d77564ca2087f9839ebf1a59aca24b9a5670de0cd88ea413ed1bcd7c8efb0df3c9 + languageName: node + linkType: hard + +"tsparticles-updater-size@npm:^2.12.0": + version: 2.12.0 + resolution: "tsparticles-updater-size@npm:2.12.0" + dependencies: + tsparticles-engine: ^2.12.0 + checksum: e8c9e18f347493fbd555458932a567bd6506b8149add4e3b41f043d56173d6103afe85e233a1e1e51addd2ec726bfb7f8d768cb5e6c8f34d4d08886535864a96 languageName: node linkType: hard From 2af3a68f94f412709ad66d996ad37dd75162cfc5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 16:02:35 -0400 Subject: [PATCH 044/182] Update typescript-eslint monorepo to v6.3.0 (#17547) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- yarn.lock | 104 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index dc47240556..c486ffacd8 100644 --- a/package.json +++ b/package.json @@ -184,8 +184,8 @@ "@types/sortablejs": "1.15.1", "@types/tar": "6.1.5", "@types/webspeechapi": "0.0.29", - "@typescript-eslint/eslint-plugin": "6.2.1", - "@typescript-eslint/parser": "6.2.1", + "@typescript-eslint/eslint-plugin": "6.3.0", + "@typescript-eslint/parser": "6.3.0", "@web/dev-server": "0.1.38", "@web/dev-server-rollup": "0.4.1", "babel-loader": "9.1.3", diff --git a/yarn.lock b/yarn.lock index 55a8458ed3..9958c940e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4673,15 +4673,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:6.2.1": - version: 6.2.1 - resolution: "@typescript-eslint/eslint-plugin@npm:6.2.1" +"@typescript-eslint/eslint-plugin@npm:6.3.0": + version: 6.3.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.3.0" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.2.1 - "@typescript-eslint/type-utils": 6.2.1 - "@typescript-eslint/utils": 6.2.1 - "@typescript-eslint/visitor-keys": 6.2.1 + "@typescript-eslint/scope-manager": 6.3.0 + "@typescript-eslint/type-utils": 6.3.0 + "@typescript-eslint/utils": 6.3.0 + "@typescript-eslint/visitor-keys": 6.3.0 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -4695,44 +4695,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: e73f3fe36519d895037d223f3ddf200b97e17bcde9390984118c38733add1edf996357c809ec2db92cec61bc7c9e5a3d9a583e0d0f92fa9c3919b68716a27b37 + checksum: 1493c6c661993640eef56893a7919cb964165cb46653c62468e71ce02a5ec8c654dd7e9767587aea67ec16c026a5630011bc7ea6c04e2fa8a4afee7f26a51358 languageName: node linkType: hard -"@typescript-eslint/parser@npm:6.2.1": - version: 6.2.1 - resolution: "@typescript-eslint/parser@npm:6.2.1" +"@typescript-eslint/parser@npm:6.3.0": + version: 6.3.0 + resolution: "@typescript-eslint/parser@npm:6.3.0" dependencies: - "@typescript-eslint/scope-manager": 6.2.1 - "@typescript-eslint/types": 6.2.1 - "@typescript-eslint/typescript-estree": 6.2.1 - "@typescript-eslint/visitor-keys": 6.2.1 + "@typescript-eslint/scope-manager": 6.3.0 + "@typescript-eslint/types": 6.3.0 + "@typescript-eslint/typescript-estree": 6.3.0 + "@typescript-eslint/visitor-keys": 6.3.0 debug: ^4.3.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: cf4768cbfc696ce1d4b15ae55b3d2b52761e91a4a80e738cf3a75c501c2257d735cd6e462567965069d0d693a8cf5463ab9e8b97c36c6ed1fccd3c1c09855bdb + checksum: ec739adbe4a972a696b4a4625dc5c2f5b4e072968decdcafd0a9b972d0167007230951a6450becb52e187b1b90a2858debba26f73162e293f7846b373888b8e9 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.2.1": - version: 6.2.1 - resolution: "@typescript-eslint/scope-manager@npm:6.2.1" +"@typescript-eslint/scope-manager@npm:6.3.0": + version: 6.3.0 + resolution: "@typescript-eslint/scope-manager@npm:6.3.0" dependencies: - "@typescript-eslint/types": 6.2.1 - "@typescript-eslint/visitor-keys": 6.2.1 - checksum: 3bb461678c7e729895c5ac16781ec7d66efc6ffa944bb49693ce8e9560f9a6cac70929157c0fc0875b2829ae19a5cdabb97973ddcfb7e81c16e22cdd5d39e3fd + "@typescript-eslint/types": 6.3.0 + "@typescript-eslint/visitor-keys": 6.3.0 + checksum: 1690465f620f2b4517d45516864ef107258b2b608293d72606d0f115e11a8c1416b3d57e1b67f1daa1838f0239f71464aead57fe77c53ebd54b0aeee5fd4cf5e languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.2.1": - version: 6.2.1 - resolution: "@typescript-eslint/type-utils@npm:6.2.1" +"@typescript-eslint/type-utils@npm:6.3.0": + version: 6.3.0 + resolution: "@typescript-eslint/type-utils@npm:6.3.0" dependencies: - "@typescript-eslint/typescript-estree": 6.2.1 - "@typescript-eslint/utils": 6.2.1 + "@typescript-eslint/typescript-estree": 6.3.0 + "@typescript-eslint/utils": 6.3.0 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -4740,23 +4740,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 7f8d80f03e6ddc1838307a2a4df61dc4bd8400efb9dcc7316063ae293fce54afad238404a0c25cd2cdaceee73ae514f254b850bd7ff11e2def700d5d6b90af05 + checksum: cf2ab9d576bc9f3c0554318d20cb92671e4f46a07c24271fc47f144139b3843dab54592ee2e0962f81ad588f57a0b0a7c09d7e1047c720143a54bb1ec3ac4007 languageName: node linkType: hard -"@typescript-eslint/types@npm:6.2.1": - version: 6.2.1 - resolution: "@typescript-eslint/types@npm:6.2.1" - checksum: 388d32f15a9db8ad5d80794caf9ab280d6e5a428efdf4f6a6dfc4069afe4d19da32d628acf638e4c5b92ee77a9a18eecf728a778a3b91cc8a24484af579fc9cf +"@typescript-eslint/types@npm:6.3.0": + version: 6.3.0 + resolution: "@typescript-eslint/types@npm:6.3.0" + checksum: 3c133e4c1b06d009739f1a4387831eb99758ba45b06b6f632fe9cf14c2839fc92dcbdbb6d94ca42c1cb5ab4ca1b31a5ead50a72e0a084b62e4de15255c451160 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.2.1": - version: 6.2.1 - resolution: "@typescript-eslint/typescript-estree@npm:6.2.1" +"@typescript-eslint/typescript-estree@npm:6.3.0": + version: 6.3.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.3.0" dependencies: - "@typescript-eslint/types": 6.2.1 - "@typescript-eslint/visitor-keys": 6.2.1 + "@typescript-eslint/types": 6.3.0 + "@typescript-eslint/visitor-keys": 6.3.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4765,34 +4765,34 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 3d9beeb5e36b8827de5c160ed8e5c111dd66ca00671b183409b051e242b291480679b900bb74aaf4895dcae49497037567d3fcbbe67fa9930786ddd01c685f04 + checksum: b2bb03411a5d079a9fd3310eec0af3b81a99827569cb3957724071aa54ac6c88449fbd1ebb72d7a356d5994d7e9542b5292a385ca3c3b0bc8049bb61a40a8ae9 languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.2.1": - version: 6.2.1 - resolution: "@typescript-eslint/utils@npm:6.2.1" +"@typescript-eslint/utils@npm:6.3.0": + version: 6.3.0 + resolution: "@typescript-eslint/utils@npm:6.3.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.2.1 - "@typescript-eslint/types": 6.2.1 - "@typescript-eslint/typescript-estree": 6.2.1 + "@typescript-eslint/scope-manager": 6.3.0 + "@typescript-eslint/types": 6.3.0 + "@typescript-eslint/typescript-estree": 6.3.0 semver: ^7.5.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: d16356a633f39d988a9af159da15e28c6a28fa47abce372061c79cf186d193d148e1c32862c9702ff87e2a06f7a2f82773e4b56320a39f432f4b1a989f8005ad + checksum: 98a078a3948e8b6a45dec8f3be9bcb72dc98faa2fe84336b1925efb7caa06c05a2fbf7290cddb420465b415cc05252548e2b839b9311f99bce84cf856fd32888 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.2.1": - version: 6.2.1 - resolution: "@typescript-eslint/visitor-keys@npm:6.2.1" +"@typescript-eslint/visitor-keys@npm:6.3.0": + version: 6.3.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.3.0" dependencies: - "@typescript-eslint/types": 6.2.1 + "@typescript-eslint/types": 6.3.0 eslint-visitor-keys: ^3.4.1 - checksum: c05a1c45129f2cf9a8c49dadc3da10b675232e59b69dfe9fdc0bfb45d3be077ceff78097baf50e502dab3e71ce9fd799d2015e356a4be2787ee10c6c7a44ea8a + checksum: fc3148c3284de3f42724736f312a4fd0c3c2029617ae2ea9a84cf6601d31f600ee6563f9288de162028ffffde85b58d92feaafbe75a2da863ff2c4e3a0b5ed8c languageName: node linkType: hard @@ -9736,8 +9736,8 @@ __metadata: "@types/sortablejs": 1.15.1 "@types/tar": 6.1.5 "@types/webspeechapi": 0.0.29 - "@typescript-eslint/eslint-plugin": 6.2.1 - "@typescript-eslint/parser": 6.2.1 + "@typescript-eslint/eslint-plugin": 6.3.0 + "@typescript-eslint/parser": 6.3.0 "@vaadin/combo-box": 24.1.4 "@vaadin/vaadin-themable-mixin": 24.1.4 "@vibrant/color": 3.2.1-alpha.1 From d5cc5bd6c2fa59c1ae781f716bc3eb6ec8793e7c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 16:06:26 -0400 Subject: [PATCH 045/182] Update babel monorepo to v7.22.10 (#17546) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 10 +- yarn.lock | 359 ++++++++++++++++++++++++--------------------------- 2 files changed, 176 insertions(+), 193 deletions(-) diff --git a/package.json b/package.json index c486ffacd8..f56383018a 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "license": "Apache-2.0", "type": "module", "dependencies": { - "@babel/runtime": "7.22.6", + "@babel/runtime": "7.22.10", "@braintree/sanitize-url": "6.0.4", "@codemirror/autocomplete": "6.9.0", "@codemirror/commands": "6.2.4", @@ -152,10 +152,10 @@ "xss": "1.0.14" }, "devDependencies": { - "@babel/core": "7.22.9", - "@babel/plugin-proposal-decorators": "7.22.7", - "@babel/plugin-transform-runtime": "7.22.9", - "@babel/preset-env": "7.22.9", + "@babel/core": "7.22.10", + "@babel/plugin-proposal-decorators": "7.22.10", + "@babel/plugin-transform-runtime": "7.22.10", + "@babel/preset-env": "7.22.10", "@babel/preset-typescript": "7.22.5", "@koa/cors": "4.0.0", "@octokit/auth-oauth-device": "6.0.0", diff --git a/yarn.lock b/yarn.lock index 9958c940e2..815d3b5009 100644 --- a/yarn.lock +++ b/yarn.lock @@ -45,12 +45,13 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.11, @babel/code-frame@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/code-frame@npm:7.22.5" +"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.11, @babel/code-frame@npm:^7.22.10, @babel/code-frame@npm:^7.22.5": + version: 7.22.10 + resolution: "@babel/code-frame@npm:7.22.10" dependencies: - "@babel/highlight": ^7.22.5 - checksum: cfe804f518f53faaf9a1d3e0f9f74127ab9a004912c3a16fda07fb6a633393ecb9918a053cb71804204c1b7ec3d49e1699604715e2cfb0c9f7bc4933d324ebb6 + "@babel/highlight": ^7.22.10 + chalk: ^2.4.2 + checksum: 89a06534ad19759da6203a71bad120b1d7b2ddc016c8e07d4c56b35dea25e7396c6da60a754e8532a86733092b131ae7f661dbe6ba5d165ea777555daa2ed3c9 languageName: node linkType: hard @@ -61,38 +62,38 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.22.9, @babel/core@npm:^7.11.1, @babel/core@npm:^7.12.3": - version: 7.22.9 - resolution: "@babel/core@npm:7.22.9" +"@babel/core@npm:7.22.10, @babel/core@npm:^7.11.1, @babel/core@npm:^7.12.3": + version: 7.22.10 + resolution: "@babel/core@npm:7.22.10" dependencies: "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.22.5 - "@babel/generator": ^7.22.9 - "@babel/helper-compilation-targets": ^7.22.9 + "@babel/code-frame": ^7.22.10 + "@babel/generator": ^7.22.10 + "@babel/helper-compilation-targets": ^7.22.10 "@babel/helper-module-transforms": ^7.22.9 - "@babel/helpers": ^7.22.6 - "@babel/parser": ^7.22.7 + "@babel/helpers": ^7.22.10 + "@babel/parser": ^7.22.10 "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.8 - "@babel/types": ^7.22.5 + "@babel/traverse": ^7.22.10 + "@babel/types": ^7.22.10 convert-source-map: ^1.7.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.2 semver: ^6.3.1 - checksum: 7bf069aeceb417902c4efdaefab1f7b94adb7dea694a9aed1bda2edf4135348a080820529b1a300c6f8605740a00ca00c19b2d5e74b5dd489d99d8c11d5e56d1 + checksum: cc4efa09209fe1f733cf512e9e4bb50870b191ab2dee8014e34cd6e731f204e48476cc53b4bbd0825d4d342304d577ae43ff5fd8ab3896080673c343321acb32 languageName: node linkType: hard -"@babel/generator@npm:^7.22.7, @babel/generator@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/generator@npm:7.22.9" +"@babel/generator@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/generator@npm:7.22.10" dependencies: - "@babel/types": ^7.22.5 + "@babel/types": ^7.22.10 "@jridgewell/gen-mapping": ^0.3.2 "@jridgewell/trace-mapping": ^0.3.17 jsesc: ^2.5.1 - checksum: 7c9d2c58b8d5ac5e047421a6ab03ec2ff5d9a5ff2c2212130a0055e063ac349e0b19d435537d6886c999771aef394832e4f54cd9fc810100a7f23d982f6af06b + checksum: 59a79730abdff9070692834bd3af179e7a9413fa2ff7f83dff3eb888765aeaeb2bfc7b0238a49613ed56e1af05956eff303cc139f2407eda8df974813e486074 languageName: node linkType: hard @@ -114,24 +115,22 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-compilation-targets@npm:7.22.9" +"@babel/helper-compilation-targets@npm:^7.22.10, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6": + version: 7.22.10 + resolution: "@babel/helper-compilation-targets@npm:7.22.10" dependencies: "@babel/compat-data": ^7.22.9 "@babel/helper-validator-option": ^7.22.5 browserslist: ^4.21.9 lru-cache: ^5.1.1 semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: ea0006c6a93759025f4a35a25228ae260538c9f15023e8aac2a6d45ca68aef4cf86cfc429b19af9a402cbdd54d5de74ad3fbcf6baa7e48184dc079f1a791e178 + checksum: f6f1896816392bcff671bbe6e277307729aee53befb4a66ea126e2a91eda78d819a70d06fa384c74ef46c1595544b94dca50bef6c78438d9ffd31776dafbd435 languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.22.5, @babel/helper-create-class-features-plugin@npm:^7.22.6, @babel/helper-create-class-features-plugin@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-create-class-features-plugin@npm:7.22.9" +"@babel/helper-create-class-features-plugin@npm:^7.22.10, @babel/helper-create-class-features-plugin@npm:^7.22.5, @babel/helper-create-class-features-plugin@npm:^7.22.9": + version: 7.22.10 + resolution: "@babel/helper-create-class-features-plugin@npm:7.22.10" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 "@babel/helper-environment-visitor": ^7.22.5 @@ -144,7 +143,7 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 6c2436d1a5a3f1ff24628d78fa8c6d3120c40285aa3eda7815b1adbf8c5951e0dd73d368cf845825888fa3dc2f207dadce53309825598d7c67953e5ed9dd51d2 + checksum: 9683edbf73889abce183b06eac29524448aaab1dba7bdccdd6c26cf03e5ade3903b581b4d681da88fbff824fa117b840cc945bebf7db3c1f8c745f3c5a8a2595 languageName: node linkType: hard @@ -161,9 +160,9 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.4.1": - version: 0.4.1 - resolution: "@babel/helper-define-polyfill-provider@npm:0.4.1" +"@babel/helper-define-polyfill-provider@npm:^0.4.2": + version: 0.4.2 + resolution: "@babel/helper-define-polyfill-provider@npm:0.4.2" dependencies: "@babel/helper-compilation-targets": ^7.22.6 "@babel/helper-plugin-utils": ^7.22.5 @@ -171,8 +170,8 @@ __metadata: lodash.debounce: ^4.0.8 resolve: ^1.14.2 peerDependencies: - "@babel/core": ^7.4.0-0 - checksum: 712b440cdd343ac7c4617225f91b0a9db5a7b1c96356b720e011af64ad6c4da9c66889f8d2962a0a2ae2e4ccb6a9b4a210c4a3c8c8ff103846b3d93b61bc6634 + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 1f6dec0c5d0876d278fe15b71238eccc5f74c4e2efa2c78aaafa8bc2cc96336b8e68d94cd1a78497356c96e8b91b8c1f4452179820624d1702aee2f9832e6569 languageName: node linkType: hard @@ -251,7 +250,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.22.5": +"@babel/helper-remap-async-to-generator@npm:^7.22.5, @babel/helper-remap-async-to-generator@npm:^7.22.9": version: 7.22.9 resolution: "@babel/helper-remap-async-to-generator@npm:7.22.9" dependencies: @@ -336,34 +335,34 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.22.6": - version: 7.22.6 - resolution: "@babel/helpers@npm:7.22.6" +"@babel/helpers@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/helpers@npm:7.22.10" dependencies: "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.6 - "@babel/types": ^7.22.5 - checksum: 5c1f33241fe7bf7709868c2105134a0a86dca26a0fbd508af10a89312b1f77ca38ebae43e50be3b208613c5eacca1559618af4ca236f0abc55d294800faeff30 + "@babel/traverse": ^7.22.10 + "@babel/types": ^7.22.10 + checksum: 3b1219e362df390b6c5d94b75a53fc1c2eb42927ced0b8022d6a29b833a839696206b9bdad45b4805d05591df49fc16b6fb7db758c9c2ecfe99e3e94cb13020f languageName: node linkType: hard -"@babel/highlight@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/highlight@npm:7.22.5" +"@babel/highlight@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/highlight@npm:7.22.10" dependencies: "@babel/helper-validator-identifier": ^7.22.5 - chalk: ^2.0.0 + chalk: ^2.4.2 js-tokens: ^4.0.0 - checksum: f61ae6de6ee0ea8d9b5bcf2a532faec5ab0a1dc0f7c640e5047fc61630a0edb88b18d8c92eb06566d30da7a27db841aca11820ecd3ebe9ce514c9350fbed39c4 + checksum: f714a1e1a72dd9d72f6383f4f30fd342e21a8df32d984a4ea8f5eab691bb6ba6db2f8823d4b4cf135d98869e7a98925b81306aa32ee3c429f8cfa52c75889e1b languageName: node linkType: hard -"@babel/parser@npm:^7.18.4, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.22.7": - version: 7.22.7 - resolution: "@babel/parser@npm:7.22.7" +"@babel/parser@npm:^7.18.4, @babel/parser@npm:^7.22.10, @babel/parser@npm:^7.22.5": + version: 7.22.10 + resolution: "@babel/parser@npm:7.22.10" bin: parser: ./bin/babel-parser.js - checksum: 02209ddbd445831ee8bf966fdf7c29d189ed4b14343a68eb2479d940e7e3846340d7cc6bd654a5f3d87d19dc84f49f50a58cf9363bee249dc5409ff3ba3dab54 + checksum: af51567b7d3cdf523bc608eae057397486c7fa6c2e5753027c01fe5c36f0767b2d01ce3049b222841326cc5b8c7fda1d810ac1a01af0a97bb04679e2ef9f7049 languageName: node linkType: hard @@ -391,18 +390,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-decorators@npm:7.22.7": - version: 7.22.7 - resolution: "@babel/plugin-proposal-decorators@npm:7.22.7" +"@babel/plugin-proposal-decorators@npm:7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-proposal-decorators@npm:7.22.10" dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.6 + "@babel/helper-create-class-features-plugin": ^7.22.10 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.9 "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/plugin-syntax-decorators": ^7.22.5 + "@babel/plugin-syntax-decorators": ^7.22.10 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d9d6f7cc8b3f1450963d3f26909af025836189b81e43c48ad455db5db2319beaf4ad2fda5aa12a1afcf856de11ecd5ee6894a9e906e8de8ee445c79102b50d26 + checksum: dc5d220f94d3d02a4a68d2e29abc038fe1731634569279956438ba4476e930dab76eac71524be89c9f199731f730e7d2537f947acbefaf29a51130a0e714ecbd languageName: node linkType: hard @@ -415,18 +414,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": - version: 7.18.6 - resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.18.6" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a8575ecb7ff24bf6c6e94808d5c84bb5a0c6dd7892b54f09f4646711ba0ee1e1668032b3c43e3e1dfec2c5716c302e851ac756c1645e15882d73df6ad21ae951 - languageName: node - linkType: hard - "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -460,14 +447,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-decorators@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-syntax-decorators@npm:7.22.5" +"@babel/plugin-syntax-decorators@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-syntax-decorators@npm:7.22.10" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 643c75a3b603320c499a0542ca97b5cced81e99de02ae9cbfca1a1ec6d938467546a65023b13df742e1b2f94ffe352ddfe908d14b9303fae7514ed9325886a97 + checksum: baaa10fa52d76ee8b9447f7aedb1c8df7cf2ef83ae29c085c07444e691685aa8b1a326dfb7a3a0e3ae4d5f9fd083175e46ea5e2316d8200f0278f3fd54a58696 languageName: node linkType: hard @@ -670,17 +657,17 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.22.7": - version: 7.22.7 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.22.7" +"@babel/plugin-transform-async-generator-functions@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.22.10" dependencies: "@babel/helper-environment-visitor": ^7.22.5 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-remap-async-to-generator": ^7.22.5 + "@babel/helper-remap-async-to-generator": ^7.22.9 "@babel/plugin-syntax-async-generators": ^7.8.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 57cd2cce3fb696dadf00e88f168683df69e900b92dadeae07429243c43bc21d5ccdc0c2db61cf5c37bd0fbd893fc455466bef6babe4aa5b79d9cb8ba89f40ae7 + checksum: 87d77b66fda05b42450aa285fa031aa3963c52aab00190f95f6c3ddefbed683035c1f314347c888f8406fba5d436b888ff75b5e36b8ab23afd4ca4c3f086f88c languageName: node linkType: hard @@ -708,14 +695,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-block-scoping@npm:7.22.5" +"@babel/plugin-transform-block-scoping@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-transform-block-scoping@npm:7.22.10" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 26987002cfe6e24544e60fa35f07052b6557f590c1a1cc5cf35d6dc341d7fea163c1222a2d70d5d2692f0b9860d942fd3ba979848b2995d4debffa387b9b19ae + checksum: b1d06f358dedcb748a57e5feea4b9285c60593fb2912b921f22898c57c552c78fe18128678c8f84dd4ea1d4e5aebede8783830b24cd63f22c30261156d78bc77 languageName: node linkType: hard @@ -775,18 +762,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-destructuring@npm:7.22.5" +"@babel/plugin-transform-destructuring@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-transform-destructuring@npm:7.22.10" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 76f6ea2aee1fcfa1c3791eb7a5b89703c6472650b993e8666fff0f1d6e9d737a84134edf89f63c92297f3e75064c1263219463b02dd9bc7434b6e5b9935e3f20 + checksum: 011707801bd0029fd4f0523d24d06fdc0cbe8c9da280d75728f76713d639c4dc976e1b56a1ba7bff25468f86867efb71c9b4cac81140adbdd0abf2324b19a8bb languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.22.5, @babel/plugin-transform-dotall-regex@npm:^7.4.4": +"@babel/plugin-transform-dotall-regex@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-dotall-regex@npm:7.22.5" dependencies: @@ -1052,16 +1039,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.22.5, @babel/plugin-transform-optional-chaining@npm:^7.22.6": - version: 7.22.6 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.22.6" +"@babel/plugin-transform-optional-chaining@npm:^7.22.10, @babel/plugin-transform-optional-chaining@npm:^7.22.5": + version: 7.22.10 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.22.10" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 "@babel/plugin-syntax-optional-chaining": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9713f7920ed04090c149fc5ec024dd1638e8b97aa4ae3753b93072d84103b8de380afb96d6cf03e53b285420db4f705f3ac13149c6fd54f322b61dc19e33c54f + checksum: 522d6214bb9f6ede8a2fc56a873e791aabd62f0b3be78fb8e62ca801a9033bcadabfb77aec6739f0e67f0f15f7c739c08bafafd66d3676edf1941fe6429cebcd languageName: node linkType: hard @@ -1113,15 +1100,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-regenerator@npm:7.22.5" +"@babel/plugin-transform-regenerator@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-transform-regenerator@npm:7.22.10" dependencies: "@babel/helper-plugin-utils": ^7.22.5 - regenerator-transform: ^0.15.1 + regenerator-transform: ^0.15.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f7c5ca5151321963df777cc02725d10d1ccc3b3b8323da0423aecd9ac6144cbdd2274af5281a5580db2fc2f8b234e318517b5d76b85669118906533a559f2b6a + checksum: e13678d62d6fa96f11cb8b863f00e8693491e7adc88bfca3f2820f80cbac8336e7dec3a596eee6a1c4663b7ececc3564f2cd7fb44ed6d4ce84ac2bb7f39ecc6e languageName: node linkType: hard @@ -1136,19 +1123,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:7.22.9": - version: 7.22.9 - resolution: "@babel/plugin-transform-runtime@npm:7.22.9" +"@babel/plugin-transform-runtime@npm:7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-transform-runtime@npm:7.22.10" dependencies: "@babel/helper-module-imports": ^7.22.5 "@babel/helper-plugin-utils": ^7.22.5 - babel-plugin-polyfill-corejs2: ^0.4.4 - babel-plugin-polyfill-corejs3: ^0.8.2 - babel-plugin-polyfill-regenerator: ^0.5.1 + babel-plugin-polyfill-corejs2: ^0.4.5 + babel-plugin-polyfill-corejs3: ^0.8.3 + babel-plugin-polyfill-regenerator: ^0.5.2 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2fe5e41f83015ca174feda841d77aa9012fc855c907f9b360a11927f41b100537c8c83487771769147668e797eec26d5294e972b997f4759133cc43a22a43eec + checksum: 45a54a8d0ea5aa50129137d22e44bb643b685739b52d02d912b08ce6615ab9c1356ef141b26161f9454768132fb7417c5e1c73e9fd5719afe0c6d84c839918be languageName: node linkType: hard @@ -1222,14 +1209,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.22.5" +"@babel/plugin-transform-unicode-escapes@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.22.10" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: da5e85ab3bb33a75cbf6181bfd236b208dc934702fd304db127232f17b4e0f42c6d3f238de8589470b4190906967eea8ca27adf3ae9d8ee4de2a2eae906ed186 + checksum: 807f40ed1324c8cb107c45358f1903384ca3f0ef1d01c5a3c5c9b271c8d8eec66936a3dcc8d75ddfceea9421420368c2e77ae3adef0a50557e778dfe296bf382 languageName: node linkType: hard @@ -1269,12 +1256,12 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.22.9, @babel/preset-env@npm:^7.11.0": - version: 7.22.9 - resolution: "@babel/preset-env@npm:7.22.9" +"@babel/preset-env@npm:7.22.10, @babel/preset-env@npm:^7.11.0": + version: 7.22.10 + resolution: "@babel/preset-env@npm:7.22.10" dependencies: "@babel/compat-data": ^7.22.9 - "@babel/helper-compilation-targets": ^7.22.9 + "@babel/helper-compilation-targets": ^7.22.10 "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-validator-option": ^7.22.5 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.22.5 @@ -1299,15 +1286,15 @@ __metadata: "@babel/plugin-syntax-top-level-await": ^7.14.5 "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 "@babel/plugin-transform-arrow-functions": ^7.22.5 - "@babel/plugin-transform-async-generator-functions": ^7.22.7 + "@babel/plugin-transform-async-generator-functions": ^7.22.10 "@babel/plugin-transform-async-to-generator": ^7.22.5 "@babel/plugin-transform-block-scoped-functions": ^7.22.5 - "@babel/plugin-transform-block-scoping": ^7.22.5 + "@babel/plugin-transform-block-scoping": ^7.22.10 "@babel/plugin-transform-class-properties": ^7.22.5 "@babel/plugin-transform-class-static-block": ^7.22.5 "@babel/plugin-transform-classes": ^7.22.6 "@babel/plugin-transform-computed-properties": ^7.22.5 - "@babel/plugin-transform-destructuring": ^7.22.5 + "@babel/plugin-transform-destructuring": ^7.22.10 "@babel/plugin-transform-dotall-regex": ^7.22.5 "@babel/plugin-transform-duplicate-keys": ^7.22.5 "@babel/plugin-transform-dynamic-import": ^7.22.5 @@ -1330,47 +1317,45 @@ __metadata: "@babel/plugin-transform-object-rest-spread": ^7.22.5 "@babel/plugin-transform-object-super": ^7.22.5 "@babel/plugin-transform-optional-catch-binding": ^7.22.5 - "@babel/plugin-transform-optional-chaining": ^7.22.6 + "@babel/plugin-transform-optional-chaining": ^7.22.10 "@babel/plugin-transform-parameters": ^7.22.5 "@babel/plugin-transform-private-methods": ^7.22.5 "@babel/plugin-transform-private-property-in-object": ^7.22.5 "@babel/plugin-transform-property-literals": ^7.22.5 - "@babel/plugin-transform-regenerator": ^7.22.5 + "@babel/plugin-transform-regenerator": ^7.22.10 "@babel/plugin-transform-reserved-words": ^7.22.5 "@babel/plugin-transform-shorthand-properties": ^7.22.5 "@babel/plugin-transform-spread": ^7.22.5 "@babel/plugin-transform-sticky-regex": ^7.22.5 "@babel/plugin-transform-template-literals": ^7.22.5 "@babel/plugin-transform-typeof-symbol": ^7.22.5 - "@babel/plugin-transform-unicode-escapes": ^7.22.5 + "@babel/plugin-transform-unicode-escapes": ^7.22.10 "@babel/plugin-transform-unicode-property-regex": ^7.22.5 "@babel/plugin-transform-unicode-regex": ^7.22.5 "@babel/plugin-transform-unicode-sets-regex": ^7.22.5 - "@babel/preset-modules": ^0.1.5 - "@babel/types": ^7.22.5 - babel-plugin-polyfill-corejs2: ^0.4.4 - babel-plugin-polyfill-corejs3: ^0.8.2 - babel-plugin-polyfill-regenerator: ^0.5.1 + "@babel/preset-modules": 0.1.6-no-external-plugins + "@babel/types": ^7.22.10 + babel-plugin-polyfill-corejs2: ^0.4.5 + babel-plugin-polyfill-corejs3: ^0.8.3 + babel-plugin-polyfill-regenerator: ^0.5.2 core-js-compat: ^3.31.0 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6caa2897bbda30c6932aed0a03827deb1337c57108050c9f97dc9a857e1533c7125b168b6d70b9d191965bf05f9f233f0ad20303080505dff7ce39740aaa759d + checksum: 4145a660a7b05e21e6d8b6cdf348c6931238abb15282a258bdb5e04cd3cca9356dc120ecfe0d1b977819ade4aac50163127c86db2300227ff60392d24daa0b7c languageName: node linkType: hard -"@babel/preset-modules@npm:^0.1.5": - version: 0.1.5 - resolution: "@babel/preset-modules@npm:0.1.5" +"@babel/preset-modules@npm:0.1.6-no-external-plugins": + version: 0.1.6-no-external-plugins + resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" dependencies: "@babel/helper-plugin-utils": ^7.0.0 - "@babel/plugin-proposal-unicode-property-regex": ^7.4.4 - "@babel/plugin-transform-dotall-regex": ^7.4.4 "@babel/types": ^7.4.4 esutils: ^2.0.2 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8430e0e9e9d520b53e22e8c4c6a5a080a12b63af6eabe559c2310b187bd62ae113f3da82ba33e9d1d0f3230930ca702843aae9dd226dec51f7d7114dc1f51c10 + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + checksum: 4855e799bc50f2449fb5210f78ea9e8fd46cf4f242243f1e2ed838e2bd702e25e73e822e7f8447722a5f4baa5e67a8f7a0e403f3e7ce04540ff743a9c411c375 languageName: node linkType: hard @@ -1396,12 +1381,12 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:7.22.6, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4": - version: 7.22.6 - resolution: "@babel/runtime@npm:7.22.6" +"@babel/runtime@npm:7.22.10, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4": + version: 7.22.10 + resolution: "@babel/runtime@npm:7.22.10" dependencies: - regenerator-runtime: ^0.13.11 - checksum: e585338287c4514a713babf4fdb8fc2a67adcebab3e7723a739fc62c79cfda875b314c90fd25f827afb150d781af97bc16c85bfdbfa2889f06053879a1ddb597 + regenerator-runtime: ^0.14.0 + checksum: 524d41517e68953dbc73a4f3616b8475e5813f64e28ba89ff5fca2c044d535c2ea1a3f310df1e5bb06162e1f0b401b5c4af73fe6e2519ca2450d9d8c44cf268d languageName: node linkType: hard @@ -1416,32 +1401,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.22.6, @babel/traverse@npm:^7.22.8": - version: 7.22.8 - resolution: "@babel/traverse@npm:7.22.8" +"@babel/traverse@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/traverse@npm:7.22.10" dependencies: - "@babel/code-frame": ^7.22.5 - "@babel/generator": ^7.22.7 + "@babel/code-frame": ^7.22.10 + "@babel/generator": ^7.22.10 "@babel/helper-environment-visitor": ^7.22.5 "@babel/helper-function-name": ^7.22.5 "@babel/helper-hoist-variables": ^7.22.5 "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.22.7 - "@babel/types": ^7.22.5 + "@babel/parser": ^7.22.10 + "@babel/types": ^7.22.10 debug: ^4.1.0 globals: ^11.1.0 - checksum: a381369bc3eedfd13ed5fef7b884657f1c29024ea7388198149f0edc34bd69ce3966e9f40188d15f56490a5e12ba250ccc485f2882b53d41b054fccefb233e33 + checksum: 9f7b358563bfb0f57ac4ed639f50e5c29a36b821a1ce1eea0c7db084f5b925e3275846d0de63bde01ca407c85d9804e0efbe370d92cd2baaafde3bd13b0f4cdb languageName: node linkType: hard -"@babel/types@npm:^7.22.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.22.5 - resolution: "@babel/types@npm:7.22.5" +"@babel/types@npm:^7.22.10, @babel/types@npm:^7.22.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.22.10 + resolution: "@babel/types@npm:7.22.10" dependencies: "@babel/helper-string-parser": ^7.22.5 "@babel/helper-validator-identifier": ^7.22.5 to-fast-properties: ^2.0.0 - checksum: c13a9c1dc7d2d1a241a2f8363540cb9af1d66e978e8984b400a20c4f38ba38ca29f06e26a0f2d49a70bad9e57615dac09c35accfddf1bb90d23cd3e0a0bab892 + checksum: 095c4f4b7503fa816e4094113f0ec2351ef96ff32012010b771693066ff628c7c664b21c6bd3fb93aeb46fe7c61f6b3a3c9e4ed0034d6a2481201c417371c8af languageName: node linkType: hard @@ -3204,15 +3189,6 @@ __metadata: languageName: node linkType: hard -"@nicolo-ribaudo/semver-v6@npm:^6.3.3": - version: 6.3.3 - resolution: "@nicolo-ribaudo/semver-v6@npm:6.3.3" - bin: - semver: bin/semver.js - checksum: 8290855b1591477d2298364541fda64fafd4acc110b387067a71c9b05f4105c0a4ac079857ae9cd107c42ee884e8724a406b5116f069575e02d7ab87a35a5272 - languageName: node - linkType: hard - "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -6116,39 +6092,39 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.4": - version: 0.4.4 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.4" +"babel-plugin-polyfill-corejs2@npm:^0.4.5": + version: 0.4.5 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.5" dependencies: "@babel/compat-data": ^7.22.6 - "@babel/helper-define-polyfill-provider": ^0.4.1 - "@nicolo-ribaudo/semver-v6": ^6.3.3 + "@babel/helper-define-polyfill-provider": ^0.4.2 + semver: ^6.3.1 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0273f3d74ccbf78086a3b14bb11b1fb94933830f51c576a24229d75b3b91c8b357c3a381d4ab3146abf9b052fa4c33ec9368dd010ada9ee355e1d03ff64e1ff0 + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 33a8e06aa54e2858d211c743d179f0487b03222f9ca1bfd7c4865bca243fca942a3358cb75f6bb894ed476cbddede834811fbd6903ff589f055821146f053e1a languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.8.2": - version: 0.8.2 - resolution: "babel-plugin-polyfill-corejs3@npm:0.8.2" +"babel-plugin-polyfill-corejs3@npm:^0.8.3": + version: 0.8.3 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.3" dependencies: - "@babel/helper-define-polyfill-provider": ^0.4.1 + "@babel/helper-define-polyfill-provider": ^0.4.2 core-js-compat: ^3.31.0 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0bc3e9e0114eba18f4fea8a9ff5a6016cae73b74cb091290c3f75fd7b9e34e712ee26f95b52d796f283970d7c6256fb01196e3608e8db03f620e3389d56d37c6 + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: dcbb30e551702a82cfd4d2c375da2c317658e55f95e9edcda93b9bbfdcc8fb6e5344efcb144e04d3406859e7682afce7974c60ededd9f12072a48a83dd22a0da languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.5.1": - version: 0.5.1 - resolution: "babel-plugin-polyfill-regenerator@npm:0.5.1" +"babel-plugin-polyfill-regenerator@npm:^0.5.2": + version: 0.5.2 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.2" dependencies: - "@babel/helper-define-polyfill-provider": ^0.4.1 + "@babel/helper-define-polyfill-provider": ^0.4.2 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 85a56d28b34586fbe482225fb6a9592fc793a459c5eea987a3427fb723c7aa2f76916348a9fc5e9ca48754ebf6086cfbb9226f4cd0cf9c6257f94553622562ed + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: d962200f604016a9a09bc9b4aaf60a3db7af876bb65bcefaeac04d44ac9d9ec4037cf24ce117760cc141d7046b6394c7eb0320ba9665cb4a2ee64df2be187c93 languageName: node linkType: hard @@ -6593,7 +6569,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0, chalk@npm:^2.4.2": +"chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -9635,12 +9611,12 @@ __metadata: version: 0.0.0-use.local resolution: "home-assistant-frontend@workspace:." dependencies: - "@babel/core": 7.22.9 - "@babel/plugin-proposal-decorators": 7.22.7 - "@babel/plugin-transform-runtime": 7.22.9 - "@babel/preset-env": 7.22.9 + "@babel/core": 7.22.10 + "@babel/plugin-proposal-decorators": 7.22.10 + "@babel/plugin-transform-runtime": 7.22.10 + "@babel/preset-env": 7.22.10 "@babel/preset-typescript": 7.22.5 - "@babel/runtime": 7.22.6 + "@babel/runtime": 7.22.10 "@braintree/sanitize-url": 6.0.4 "@codemirror/autocomplete": 6.9.0 "@codemirror/commands": 6.2.4 @@ -13599,19 +13575,26 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.11, regenerator-runtime@npm:^0.13.3": +"regenerator-runtime@npm:^0.13.3": version: 0.13.11 resolution: "regenerator-runtime@npm:0.13.11" checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4 languageName: node linkType: hard -"regenerator-transform@npm:^0.15.1": - version: 0.15.1 - resolution: "regenerator-transform@npm:0.15.1" +"regenerator-runtime@npm:^0.14.0": + version: 0.14.0 + resolution: "regenerator-runtime@npm:0.14.0" + checksum: 1c977ad82a82a4412e4f639d65d22be376d3ebdd30da2c003eeafdaaacd03fc00c2320f18120007ee700900979284fc78a9f00da7fb593f6e6eeebc673fba9a3 + languageName: node + linkType: hard + +"regenerator-transform@npm:^0.15.2": + version: 0.15.2 + resolution: "regenerator-transform@npm:0.15.2" dependencies: "@babel/runtime": ^7.8.4 - checksum: 2d15bdeadbbfb1d12c93f5775493d85874dbe1d405bec323da5c61ec6e701bc9eea36167483e1a5e752de9b2df59ab9a2dfff6bf3784f2b28af2279a673d29a4 + checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 languageName: node linkType: hard From bfad8a07c59a5c6766bc1644cd41944f82d25033 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Aug 2023 12:27:37 -0400 Subject: [PATCH 046/182] Update dependency eslint-import-resolver-webpack to v0.13.4 (#17520) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 46 +++++++++++++++++++++++----------------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index f56383018a..afc624f50f 100644 --- a/package.json +++ b/package.json @@ -196,7 +196,7 @@ "eslint-config-airbnb-base": "15.0.0", "eslint-config-airbnb-typescript": "17.1.0", "eslint-config-prettier": "9.0.0", - "eslint-import-resolver-webpack": "0.13.2", + "eslint-import-resolver-webpack": "0.13.4", "eslint-plugin-disable": "2.0.3", "eslint-plugin-import": "2.28.0", "eslint-plugin-lit": "1.8.3", diff --git a/yarn.lock b/yarn.lock index 815d3b5009..1212257013 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7998,9 +7998,9 @@ __metadata: languageName: node linkType: hard -"eslint-import-resolver-webpack@npm:0.13.2": - version: 0.13.2 - resolution: "eslint-import-resolver-webpack@npm:0.13.2" +"eslint-import-resolver-webpack@npm:0.13.4": + version: 0.13.4 + resolution: "eslint-import-resolver-webpack@npm:0.13.4" dependencies: array-find: ^1.0.0 debug: ^3.2.7 @@ -8008,15 +8008,15 @@ __metadata: find-root: ^1.1.0 has: ^1.0.3 interpret: ^1.4.0 - is-core-module: ^2.7.0 + is-core-module: ^2.13.0 is-regex: ^1.1.4 lodash: ^4.17.21 - resolve: ^1.20.0 - semver: ^5.7.1 + resolve: ^1.22.4 + semver: ^5.7.2 peerDependencies: eslint-plugin-import: ">=1.4.0" webpack: ">=1.11.0" - checksum: 6c40164747bf894a0e34cbc9626566193471062e8809cef7aa8be74e0346c962d03aa7b8f3579a3d348245269860c1f241eba5379ec04acc89daffa4fb6b5f17 + checksum: adc86143e97567505c96f9990a40478d76fec2b63e7002fcb206ca6487fb0fc08e8a7dc778a9af542f7fdf1f5f433451f92457f70d02a481eef6406595311efa languageName: node linkType: hard @@ -9741,7 +9741,7 @@ __metadata: eslint-config-airbnb-base: 15.0.0 eslint-config-airbnb-typescript: 17.1.0 eslint-config-prettier: 9.0.0 - eslint-import-resolver-webpack: 0.13.2 + eslint-import-resolver-webpack: 0.13.4 eslint-plugin-disable: 2.0.3 eslint-plugin-import: 2.28.0 eslint-plugin-lit: 1.8.3 @@ -10392,12 +10392,12 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0, is-core-module@npm:^2.12.1, is-core-module@npm:^2.7.0": - version: 2.12.1 - resolution: "is-core-module@npm:2.12.1" +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0": + version: 2.13.0 + resolution: "is-core-module@npm:2.13.0" dependencies: has: ^1.0.3 - checksum: f04ea30533b5e62764e7b2e049d3157dc0abd95ef44275b32489ea2081176ac9746ffb1cdb107445cf1ff0e0dfcad522726ca27c27ece64dadf3795428b8e468 + checksum: 053ab101fb390bfeb2333360fd131387bed54e476b26860dc7f5a700bbf34a0ec4454f7c8c4d43e8a0030957e4b3db6e16d35e1890ea6fb654c833095e040355 languageName: node linkType: hard @@ -13819,29 +13819,29 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.3, resolve@npm:^1.4.0": - version: 1.22.3 - resolution: "resolve@npm:1.22.3" +"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.3, resolve@npm:^1.22.4, resolve@npm:^1.4.0": + version: 1.22.4 + resolution: "resolve@npm:1.22.4" dependencies: - is-core-module: ^2.12.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: fb834b81348428cb545ff1b828a72ea28feb5a97c026a1cf40aa1008352c72811ff4d4e71f2035273dc536dcfcae20c13604ba6283c612d70fa0b6e44519c374 + checksum: 23f25174c2736ce24c6d918910e0d1f89b6b38fefa07a995dff864acd7863d59a7f049e691f93b4b2ee29696303390d921552b6d1b841ed4a8101f517e1d0124 languageName: node linkType: hard -"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.3#~builtin, resolve@patch:resolve@^1.4.0#~builtin": - version: 1.22.3 - resolution: "resolve@patch:resolve@npm%3A1.22.3#~builtin::version=1.22.3&hash=c3c19d" +"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.3#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.4.0#~builtin": + version: 1.22.4 + resolution: "resolve@patch:resolve@npm%3A1.22.4#~builtin::version=1.22.4&hash=c3c19d" dependencies: - is-core-module: ^2.12.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: ad59734723b596d0891321c951592ed9015a77ce84907f89c9d9307dd0c06e11a67906a3e628c4cae143d3e44898603478af0ddeb2bba3f229a9373efe342665 + checksum: c45f2545fdc4d21883861b032789e20aa67a2f2692f68da320cc84d5724cd02f2923766c5354b3210897e88f1a7b3d6d2c7c22faeead8eed7078e4c783a444bc languageName: node linkType: hard @@ -14124,7 +14124,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.7.1": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.7.2": version: 5.7.2 resolution: "semver@npm:5.7.2" bin: From 43ac8f9a274196f886c034f18c6c2da15c8380d7 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Mon, 14 Aug 2023 09:26:52 +0200 Subject: [PATCH 047/182] Update Material web to 1.0.0-pre.14 (#17543) --- package.json | 2 +- src/components/ha-outlined-button.ts | 6 +++--- src/components/ha-outlined-icon-button.ts | 7 +++---- .../components/lights/ha-favorite-color-button.ts | 3 ++- yarn.lock | 10 +++++----- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index afc624f50f..b491436ac5 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "@material/mwc-top-app-bar": "0.27.0", "@material/mwc-top-app-bar-fixed": "0.27.0", "@material/top-app-bar": "=14.0.0-canary.53b3cad2f.0", - "@material/web": "=1.0.0-pre.13", + "@material/web": "=1.0.0-pre.14", "@mdi/js": "7.2.96", "@mdi/svg": "7.2.96", "@polymer/app-layout": "3.1.0", diff --git a/src/components/ha-outlined-button.ts b/src/components/ha-outlined-button.ts index 87076e5496..789dbcfa9c 100644 --- a/src/components/ha-outlined-button.ts +++ b/src/components/ha-outlined-button.ts @@ -1,8 +1,8 @@ import { css } from "lit"; import { customElement } from "lit/decorators"; -import { OutlinedButton } from "@material/web/button/lib/outlined-button"; -import { styles as outlinedStyles } from "@material/web/button/lib/outlined-styles.css"; -import { styles as sharedStyles } from "@material/web/button/lib/shared-styles.css"; +import { OutlinedButton } from "@material/web/button/internal/outlined-button"; +import { styles as outlinedStyles } from "@material/web/button/internal/outlined-styles.css"; +import { styles as sharedStyles } from "@material/web/button/internal/shared-styles.css"; @customElement("ha-outlined-button") export class HaOutlinedButton extends OutlinedButton { diff --git a/src/components/ha-outlined-icon-button.ts b/src/components/ha-outlined-icon-button.ts index 1ca26ccf97..9715c4a7cc 100644 --- a/src/components/ha-outlined-icon-button.ts +++ b/src/components/ha-outlined-icon-button.ts @@ -1,9 +1,8 @@ import { css } from "lit"; import { customElement } from "lit/decorators"; - -import { IconButton } from "@material/web/iconbutton/lib/icon-button"; -import { styles as outlinedStyles } from "@material/web/iconbutton/lib/outlined-styles.css"; -import { styles as sharedStyles } from "@material/web/iconbutton/lib/shared-styles.css"; +import { IconButton } from "@material/web/iconbutton/internal/icon-button"; +import { styles as outlinedStyles } from "@material/web/iconbutton/internal/outlined-styles.css"; +import { styles as sharedStyles } from "@material/web/iconbutton/internal/shared-styles.css"; @customElement("ha-outlined-icon-button") export class HaOutlinedIconButton extends IconButton { diff --git a/src/dialogs/more-info/components/lights/ha-favorite-color-button.ts b/src/dialogs/more-info/components/lights/ha-favorite-color-button.ts index adffd63c0a..12be00c662 100644 --- a/src/dialogs/more-info/components/lights/ha-favorite-color-button.ts +++ b/src/dialogs/more-info/components/lights/ha-favorite-color-button.ts @@ -9,7 +9,8 @@ import { temperature2rgb, } from "../../../../common/color/convert-light-color"; import { luminosity } from "../../../../common/color/rgb"; -import { HaOutlinedIconButton } from "../../../../components/ha-outlined-icon-button"; +import type { HaOutlinedIconButton } from "../../../../components/ha-outlined-icon-button"; +import "../../../../components/ha-outlined-icon-button"; import "../../../../components/ha-svg-icon"; import { LightColor, LightEntity } from "../../../../data/light"; diff --git a/yarn.lock b/yarn.lock index 1212257013..ba035b1321 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3164,14 +3164,14 @@ __metadata: languageName: node linkType: hard -"@material/web@npm:=1.0.0-pre.13": - version: 1.0.0-pre.13 - resolution: "@material/web@npm:1.0.0-pre.13" +"@material/web@npm:=1.0.0-pre.14": + version: 1.0.0-pre.14 + resolution: "@material/web@npm:1.0.0-pre.14" dependencies: lit: ^2.7.4 safevalues: ^0.4.3 tslib: ^2.4.0 - checksum: f477ea3a50991d90bfd1491d35b26393deab43a735053b873e50e53fa34e599c552acc19e3fcaebcb44cbabcf08529b6970ec11a552e2a93146fe0a230e3a4b3 + checksum: ca9d1e5c7a2f10e7a9deb440213df4e3ef5f717661b14173153bbda58dec6a01bd153dd4c28de15009b26968aef438783326192e2e2d10dc25c8d5d16b5d4402 languageName: node linkType: hard @@ -9671,7 +9671,7 @@ __metadata: "@material/mwc-top-app-bar": 0.27.0 "@material/mwc-top-app-bar-fixed": 0.27.0 "@material/top-app-bar": =14.0.0-canary.53b3cad2f.0 - "@material/web": =1.0.0-pre.13 + "@material/web": =1.0.0-pre.14 "@mdi/js": 7.2.96 "@mdi/svg": 7.2.96 "@octokit/auth-oauth-device": 6.0.0 From 134d1978f8fedb2bf4b8e38580d144c34b592d8b Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Mon, 14 Aug 2023 09:29:04 +0200 Subject: [PATCH 048/182] Use new select component for direction for more info fan (#17540) --- .../more-info/controls/more-info-fan.ts | 165 +++++++++--------- 1 file changed, 81 insertions(+), 84 deletions(-) diff --git a/src/dialogs/more-info/controls/more-info-fan.ts b/src/dialogs/more-info/controls/more-info-fan.ts index 57a4dd81dd..96a3826cb5 100644 --- a/src/dialogs/more-info/controls/more-info-fan.ts +++ b/src/dialogs/more-info/controls/more-info-fan.ts @@ -1,19 +1,14 @@ import { - mdiCreation, mdiFan, mdiFanOff, mdiPower, mdiRotateLeft, mdiRotateRight, + mdiTuneVariant, } from "@mdi/js"; import { CSSResultGroup, LitElement, PropertyValues, html, nothing } from "lit"; import { customElement, property, state } from "lit/decorators"; import { stopPropagation } from "../../../common/dom/stop_propagation"; -import { - computeAttributeNameDisplay, - computeAttributeValueDisplay, -} from "../../../common/entity/compute_attribute_display"; -import { computeStateDisplay } from "../../../common/entity/compute_state_display"; import { stateActive } from "../../../common/entity/state_active"; import { supportsFeature } from "../../../common/entity/supports-feature"; import "../../../components/ha-attributes"; @@ -65,17 +60,15 @@ class MoreInfoFan extends LitElement { }); }; - _setReverseDirection() { - this.hass.callService("fan", "set_direction", { - entity_id: this.stateObj!.entity_id, - direction: "reverse", - }); - } + _handleDirection(ev) { + const newVal = ev.target.value; + const oldVal = this.stateObj?.attributes.direction; + + if (!newVal || oldVal === newVal) return; - _setForwardDirection() { this.hass.callService("fan", "set_direction", { entity_id: this.stateObj!.entity_id, - direction: "forward", + direction: newVal, }); } @@ -93,7 +86,7 @@ class MoreInfoFan extends LitElement { } _handleOscillating(ev) { - const newVal = ev.target.value === "yes"; + const newVal = ev.target.value === "on"; this.hass.callService("fan", "oscillate", { entity_id: this.stateObj!.entity_id, @@ -113,12 +106,8 @@ class MoreInfoFan extends LitElement { const forcedState = liveValue != null ? (liveValue ? "on" : "off") : undefined; - const stateDisplay = computeStateDisplay( - this.hass.localize, + const stateDisplay = this.hass.formatEntityState( this.stateObj!, - this.hass.locale, - this.hass.config, - this.hass.entities, forcedState ); @@ -186,49 +175,21 @@ class MoreInfoFan extends LitElement { .iconPathOff=${mdiFanOff} > `} - ${supportSpeedPercentage || supportsDirection - ? html`
- ${supportSpeedPercentage - ? html` - - - - ` - : nothing} - ${supportsDirection - ? html` - - - - - - - ` - : nothing} -
` + ${supportSpeedPercentage + ? html` +
+ ${supportSpeedPercentage + ? html` + + + + ` + : nothing} +
+ ` : nothing}
@@ -236,10 +197,8 @@ class MoreInfoFan extends LitElement { ${supportsPresetMode && this.stateObj.attributes.preset_modes ? html` - + ${this.stateObj.attributes.preset_modes?.map( (mode) => html` - - ${computeAttributeValueDisplay( - this.hass.localize, + + ${this.hass.formatEntityAttributeValue( this.stateObj!, - this.hass.locale, - this.hass.config, - this.hass.entities, "preset_mode", mode )} @@ -270,16 +225,58 @@ class MoreInfoFan extends LitElement { ` : nothing} + ${supportsDirection + ? html` + + + + + ${this.hass.formatEntityAttributeValue( + this.stateObj, + "direction", + "forward" + )} + + + + ${this.hass.formatEntityAttributeValue( + this.stateObj, + "direction", + "reverse" + )} + + + ` + : nothing} ${supportsOscillate ? html` - + - ${this.hass.localize("ui.common.yes")} + ${this.hass.localize("state.default.on")} - + - ${this.hass.localize("ui.common.no")} + ${this.hass.localize("state.default.off")} ` From 25b4d91d727c26ad8112b1f1a14f31aeb53aedf1 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Mon, 14 Aug 2023 09:29:58 +0200 Subject: [PATCH 049/182] Use new select component for effect for more info light (#17542) --- .../more-info/controls/more-info-fan.ts | 1 - .../more-info/controls/more-info-light.ts | 121 +++++++----------- 2 files changed, 47 insertions(+), 75 deletions(-) diff --git a/src/dialogs/more-info/controls/more-info-fan.ts b/src/dialogs/more-info/controls/more-info-fan.ts index 96a3826cb5..8547df3846 100644 --- a/src/dialogs/more-info/controls/more-info-fan.ts +++ b/src/dialogs/more-info/controls/more-info-fan.ts @@ -11,7 +11,6 @@ import { customElement, property, state } from "lit/decorators"; import { stopPropagation } from "../../../common/dom/stop_propagation"; import { stateActive } from "../../../common/entity/state_active"; import { supportsFeature } from "../../../common/entity/supports-feature"; -import "../../../components/ha-attributes"; import "../../../components/ha-control-select-menu"; import "../../../components/ha-list-item"; import "../../../components/ha-outlined-icon-button"; diff --git a/src/dialogs/more-info/controls/more-info-light.ts b/src/dialogs/more-info/controls/more-info-light.ts index 8e2bc1342a..666d0f367b 100644 --- a/src/dialogs/more-info/controls/more-info-light.ts +++ b/src/dialogs/more-info/controls/more-info-light.ts @@ -8,35 +8,30 @@ import { mdiPower, } from "@mdi/js"; import { - css, CSSResultGroup, - html, LitElement, - nothing, PropertyValues, + css, + html, + nothing, } from "lit"; import { customElement, property, state } from "lit/decorators"; import { stopPropagation } from "../../../common/dom/stop_propagation"; -import { - computeAttributeNameDisplay, - computeAttributeValueDisplay, -} from "../../../common/entity/compute_attribute_display"; import { supportsFeature } from "../../../common/entity/supports-feature"; import { blankBeforePercent } from "../../../common/translations/blank_before_percent"; import "../../../components/ha-attributes"; -import "../../../components/ha-button-menu"; +import "../../../components/ha-control-select-menu"; import "../../../components/ha-icon-button-group"; import "../../../components/ha-icon-button-toggle"; -import "../../../components/ha-outlined-button"; -import "../../../components/ha-select"; +import "../../../components/ha-list-item"; import { UNAVAILABLE } from "../../../data/entity"; import { ExtEntityRegistryEntry } from "../../../data/entity_registry"; import { forwardHaptic } from "../../../data/haptics"; import { - formatTempColor, LightColorMode, LightEntity, LightEntityFeature, + formatTempColor, lightSupportsBrightness, lightSupportsColor, lightSupportsColorMode, @@ -287,64 +282,46 @@ class MoreInfoLight extends LitElement { : nothing} ` : nothing} - ${supportsEffects && this.stateObj.attributes.effect_list - ? html` - - - - ${this._effect - ? computeAttributeValueDisplay( - this.hass.localize, - this.stateObj!, - this.hass.locale, - this.hass.config, - this.hass.entities, - "effect", - this._effect - ) - : computeAttributeNameDisplay( - this.hass.localize, - this.stateObj, - this.hass.entities, - "effect" - )} - - ${this.stateObj.attributes.effect_list.map( - (effect: string) => html` - - ${computeAttributeValueDisplay( - this.hass.localize, - this.stateObj!, - this.hass.locale, - this.hass.config, - this.hass.entities, - "effect", - effect - )} - - ` - )} - - ` - : nothing}
- - +
+
+
+ ${supportsEffects && this.stateObj.attributes.effect_list + ? html` + + + ${this.stateObj.attributes.effect_list?.map( + (mode) => html` + + ${this.hass.formatEntityAttributeValue( + this.stateObj!, + "effect", + mode + )} + + ` + )} + + ` + : nothing} +
+
+ +
`; } @@ -363,12 +340,8 @@ class MoreInfoLight extends LitElement { }); }; - private _handleEffectButton(ev) { - ev.stopPropagation(); - ev.preventDefault(); - - const index = ev.detail.index; - const newVal = this.stateObj!.attributes.effect_list![index]; + private _handleEffect(ev) { + const newVal = ev.target.value; const oldVal = this._effect; if (!newVal || oldVal === newVal) return; From aa85b87e119590f6a833442a2c168471efbc2d92 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Mon, 14 Aug 2023 09:31:06 +0200 Subject: [PATCH 050/182] Update water heater more info (#17544) --- src/common/entity/state_color.ts | 1 + src/data/water_heater.ts | 70 ++++ .../ha-more-info-water_heater-temperature.ts | 327 ++++++++++++++++++ src/dialogs/more-info/const.ts | 1 + .../controls/more-info-water_heater.js | 235 ------------- .../controls/more-info-water_heater.ts | 262 ++++++++++++++ src/resources/ha-style.ts | 6 + src/translations/en.json | 3 + 8 files changed, 670 insertions(+), 235 deletions(-) create mode 100644 src/data/water_heater.ts create mode 100644 src/dialogs/more-info/components/water_heater/ha-more-info-water_heater-temperature.ts delete mode 100644 src/dialogs/more-info/controls/more-info-water_heater.js create mode 100644 src/dialogs/more-info/controls/more-info-water_heater.ts diff --git a/src/common/entity/state_color.ts b/src/common/entity/state_color.ts index 5223076767..d1c8e25d78 100644 --- a/src/common/entity/state_color.ts +++ b/src/common/entity/state_color.ts @@ -36,6 +36,7 @@ const STATE_COLORED_DOMAIN = new Set([ "timer", "update", "vacuum", + "water_heater", ]); export const stateColorCss = (stateObj: HassEntity, state?: string) => { diff --git a/src/data/water_heater.ts b/src/data/water_heater.ts new file mode 100644 index 0000000000..ebb656b7a5 --- /dev/null +++ b/src/data/water_heater.ts @@ -0,0 +1,70 @@ +import { + mdiFinance, + mdiFireCircle, + mdiHeatWave, + mdiLeaf, + mdiLightningBolt, + mdiPower, + mdiRocketLaunch, +} from "@mdi/js"; +import type { + HassEntityAttributeBase, + HassEntityBase, +} from "home-assistant-js-websocket"; + +export const enum WaterHeaterEntityFeature { + TARGET_TEMPERATURE = 1, + OPERATION_MODE = 2, + AWAY_MODE = 4, +} + +export type OperationMode = + | "eco" + | "electric" + | "performance" + | "high_demand" + | "heat_pump" + | "gas" + | "off"; + +export type WaterHeaterEntity = HassEntityBase & { + attributes: HassEntityAttributeBase & { + target_temp_step?: number; + min_temp: number; + max_temp: number; + current_temperature?: number; + temperature?: number; + operation_mode: OperationMode; + operation_list: OperationMode[]; + away_mode?: "on" | "off"; + }; +}; + +const hvacModeOrdering: { [key in OperationMode]: number } = { + eco: 1, + electric: 2, + performance: 3, + high_demand: 4, + heat_pump: 5, + gas: 6, + off: 7, +}; + +export const compareWaterHeaterOperationMode = ( + mode1: OperationMode, + mode2: OperationMode +) => hvacModeOrdering[mode1] - hvacModeOrdering[mode2]; + +export const WATER_HEATER_OPERATION_MODE_ICONS: Record = + { + eco: mdiLeaf, + electric: mdiLightningBolt, + performance: mdiRocketLaunch, + high_demand: mdiFinance, + heat_pump: mdiHeatWave, + gas: mdiFireCircle, + off: mdiPower, + }; + +export const computeOperationModeIcon = (mode: OperationMode) => + WATER_HEATER_OPERATION_MODE_ICONS[mode]; diff --git a/src/dialogs/more-info/components/water_heater/ha-more-info-water_heater-temperature.ts b/src/dialogs/more-info/components/water_heater/ha-more-info-water_heater-temperature.ts new file mode 100644 index 0000000000..29a40a23f4 --- /dev/null +++ b/src/dialogs/more-info/components/water_heater/ha-more-info-water_heater-temperature.ts @@ -0,0 +1,327 @@ +import { mdiMinus, mdiPlus } from "@mdi/js"; +import { + CSSResultGroup, + LitElement, + PropertyValues, + css, + html, + nothing, +} from "lit"; +import { customElement, property, state } from "lit/decorators"; +import { styleMap } from "lit/directives/style-map"; +import { stateColorCss } from "../../../../common/entity/state_color"; +import { supportsFeature } from "../../../../common/entity/supports-feature"; +import { clamp } from "../../../../common/number/clamp"; +import { formatNumber } from "../../../../common/number/format_number"; +import { debounce } from "../../../../common/util/debounce"; +import "../../../../components/ha-control-circular-slider"; +import "../../../../components/ha-outlined-icon-button"; +import "../../../../components/ha-svg-icon"; +import { UNAVAILABLE } from "../../../../data/entity"; +import { + WaterHeaterEntity, + WaterHeaterEntityFeature, +} from "../../../../data/water_heater"; +import { HomeAssistant } from "../../../../types"; + +@customElement("ha-more-info-water_heater-temperature") +export class HaMoreInfoWaterHeaterTemperature extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @property({ attribute: false }) public stateObj!: WaterHeaterEntity; + + @state() private _targetTemperature?: number; + + protected willUpdate(changedProp: PropertyValues): void { + super.willUpdate(changedProp); + if (changedProp.has("stateObj")) { + this._targetTemperature = this.stateObj.attributes.temperature; + } + } + + private get _step() { + return ( + this.stateObj.attributes.target_temp_step || + (this.hass.config.unit_system.temperature.indexOf("F") === -1 ? 0.5 : 1) + ); + } + + private get _min() { + return this.stateObj.attributes.min_temp; + } + + private get _max() { + return this.stateObj.attributes.max_temp; + } + + private _valueChanged(ev: CustomEvent) { + const value = (ev.detail as any).value; + if (isNaN(value)) return; + this._targetTemperature = value; + this._callService(); + } + + private _valueChanging(ev: CustomEvent) { + const value = (ev.detail as any).value; + if (isNaN(value)) return; + this._targetTemperature = value; + } + + private _debouncedCallService = debounce(() => this._callService(), 1000); + + private _callService() { + this.hass.callService("water_heater", "set_temperature", { + entity_id: this.stateObj!.entity_id, + temperature: this._targetTemperature, + }); + } + + private _handleButton(ev) { + const step = ev.currentTarget.step as number; + + let temp = this._targetTemperature ?? this._min; + temp += step; + temp = clamp(temp, this._min, this._max); + + this._targetTemperature = temp; + this._debouncedCallService(); + } + + private _renderLabel() { + return html` +

+ ${this.hass.localize( + "ui.dialogs.more_info_control.water_heater.target" + )} +

+ `; + } + + private _renderButtons() { + return html` +
+ + + + + + +
+ `; + } + + private _renderTargetTemperature(temperature: number) { + const digits = this._step.toString().split(".")?.[1]?.length ?? 0; + const formatted = formatNumber(temperature, this.hass.locale, { + maximumFractionDigits: digits, + minimumFractionDigits: digits, + }); + const [temperatureInteger] = formatted.includes(".") + ? formatted.split(".") + : formatted.split(","); + + const temperatureDecimal = formatted.replace(temperatureInteger, ""); + + return html` +

+ + + ${this.stateObj.attributes.temperature} + ${this.hass.config.unit_system.temperature} + +

+ `; + } + + protected render() { + const supportsTargetTemperature = supportsFeature( + this.stateObj, + WaterHeaterEntityFeature.TARGET_TEMPERATURE + ); + + const mainColor = stateColorCss(this.stateObj); + + if (supportsTargetTemperature && this._targetTemperature != null) { + return html` +
+ + +
+
${this._renderLabel()}
+
+ ${this._renderTargetTemperature(this._targetTemperature)} +
+
+ ${this._renderButtons()} +
+ `; + } + + return html` +
+ + +
+ `; + } + + static get styles(): CSSResultGroup { + return css` + /* Layout */ + .container { + position: relative; + } + .info { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + pointer-events: none; + font-size: 16px; + line-height: 24px; + letter-spacing: 0.1px; + } + .info * { + margin: 0; + pointer-events: auto; + } + /* Elements */ + .temperature-container { + margin-bottom: 30px; + } + .temperature { + display: inline-flex; + font-size: 58px; + line-height: 64px; + letter-spacing: -0.25px; + margin: 0; + } + .temperature span { + display: inline-flex; + } + .temperature .unit { + font-size: 24px; + line-height: 40px; + } + .temperature .decimal { + font-size: 24px; + line-height: 40px; + align-self: flex-end; + margin-right: -18px; + } + .action-container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 200px; + height: 48px; + margin-bottom: 6px; + } + .action { + font-weight: 500; + text-align: center; + color: var(--action-color, inherit); + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + } + .buttons { + position: absolute; + bottom: 10px; + left: 0; + right: 0; + margin: 0 auto; + width: 120px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + } + .buttons ha-outlined-icon-button { + --md-outlined-icon-button-container-size: 48px; + --md-outlined-icon-button-icon-size: 24px; + } + /* Accessibility */ + .visually-hidden { + position: absolute; + overflow: hidden; + clip: rect(0 0 0 0); + height: 1px; + width: 1px; + margin: -1px; + padding: 0; + border: 0; + } + /* Slider */ + ha-control-circular-slider { + --control-circular-slider-color: var( + --main-color, + var(--disabled-color) + ); + } + ha-control-circular-slider::after { + display: block; + content: ""; + position: absolute; + top: -10%; + left: -10%; + right: -10%; + bottom: -10%; + background: radial-gradient( + 50% 50% at 50% 50%, + var(--action-color, transparent) 0%, + transparent 100% + ); + opacity: 0.15; + pointer-events: none; + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "ha-more-info-water_heater-temperature": HaMoreInfoWaterHeaterTemperature; + } +} diff --git a/src/dialogs/more-info/const.ts b/src/dialogs/more-info/const.ts index 580faa2e40..d77742b5be 100644 --- a/src/dialogs/more-info/const.ts +++ b/src/dialogs/more-info/const.ts @@ -27,6 +27,7 @@ export const DOMAINS_WITH_NEW_MORE_INFO = [ "lock", "siren", "switch", + "water_heater", ]; /** Domains with separate more info dialog. */ export const DOMAINS_WITH_MORE_INFO = [ diff --git a/src/dialogs/more-info/controls/more-info-water_heater.js b/src/dialogs/more-info/controls/more-info-water_heater.js deleted file mode 100644 index bc7c673d41..0000000000 --- a/src/dialogs/more-info/controls/more-info-water_heater.js +++ /dev/null @@ -1,235 +0,0 @@ -import "@material/mwc-list/mwc-list-item"; -import "@polymer/iron-flex-layout/iron-flex-layout-classes"; -import { timeOut } from "@polymer/polymer/lib/utils/async"; -import { Debouncer } from "@polymer/polymer/lib/utils/debounce"; -import { html } from "@polymer/polymer/lib/utils/html-tag"; -/* eslint-plugin-disable lit */ -import { PolymerElement } from "@polymer/polymer/polymer-element"; -import { featureClassNames } from "../../../common/entity/feature_class_names"; -import { supportsFeature } from "../../../common/entity/supports-feature"; -import "../../../components/ha-select"; -import "../../../components/ha-switch"; -import "../../../components/ha-water_heater-control"; -import { EventsMixin } from "../../../mixins/events-mixin"; -import LocalizeMixin from "../../../mixins/localize-mixin"; - -/* - * @appliesMixin EventsMixin - * @appliesMixin LocalizeMixin - */ -class MoreInfoWaterHeater extends LocalizeMixin(EventsMixin(PolymerElement)) { - static get template() { - return html` - - - -
-
-
-
- [[localize('ui.card.water_heater.target_temperature')]] -
- -
-
- - - - -
- `; - } - - static get properties() { - return { - hass: { - type: Object, - }, - - stateObj: { - type: Object, - observer: "stateObjChanged", - }, - - awayToggleChecked: Boolean, - }; - } - - stateObjChanged(newVal, oldVal) { - if (newVal) { - this.setProperties({ - awayToggleChecked: newVal.attributes.away_mode === "on", - }); - } - - if (oldVal) { - this._debouncer = Debouncer.debounce( - this._debouncer, - timeOut.after(500), - () => { - this.fire("iron-resize"); - } - ); - } - } - - computeTemperatureStepSize(hass, stateObj) { - if (stateObj.attributes.target_temp_step) { - return stateObj.attributes.target_temp_step; - } - if (hass.config.unit_system.temperature.indexOf("F") !== -1) { - return 1; - } - return 0.5; - } - - supportsTemperatureControls(stateObj) { - return this.supportsTemperature(stateObj); - } - - supportsTemperature(stateObj) { - return ( - supportsFeature(stateObj, 1) && - typeof stateObj.attributes.temperature === "number" - ); - } - - supportsOperationMode(stateObj) { - return supportsFeature(stateObj, 2); - } - - supportsAwayMode(stateObj) { - return supportsFeature(stateObj, 4); - } - - computeClassNames(stateObj) { - const _featureClassNames = { - 1: "has-target_temperature", - 2: "has-operation_mode", - 4: "has-away_mode", - }; - - const classes = [featureClassNames(stateObj, _featureClassNames)]; - - classes.push("more-info-water_heater"); - - return classes.join(" "); - } - - targetTemperatureChanged(ev) { - const temperature = ev.target.value; - if (temperature === this.stateObj.attributes.temperature) return; - this.callServiceHelper("set_temperature", { temperature: temperature }); - } - - awayToggleChanged(ev) { - const oldVal = this.stateObj.attributes.away_mode === "on"; - const newVal = ev.target.checked; - if (oldVal === newVal) return; - this.callServiceHelper("set_away_mode", { away_mode: newVal }); - } - - handleOperationmodeChanged(ev) { - const oldVal = this.stateObj.attributes.operation_mode; - const newVal = ev.target.value; - if (!newVal || oldVal === newVal) return; - this.callServiceHelper("set_operation_mode", { - operation_mode: newVal, - }); - } - - stopPropagation(ev) { - ev.stopPropagation(); - } - - callServiceHelper(service, data) { - // We call stateChanged after a successful call to re-sync the inputs - // with the state. It will be out of sync if our service call did not - // result in the entity to be turned on. Since the state is not changing, - // the resync is not called automatic. - /* eslint-disable no-param-reassign */ - data.entity_id = this.stateObj.entity_id; - /* eslint-enable no-param-reassign */ - this.hass.callService("water_heater", service, data).then(() => { - this.stateObjChanged(this.stateObj); - }); - } - - _localizeOperationMode(localize, mode) { - return ( - localize(`component.water_heater.entity_component._.state.${mode}`) || - mode - ); - } -} - -customElements.define("more-info-water_heater", MoreInfoWaterHeater); diff --git a/src/dialogs/more-info/controls/more-info-water_heater.ts b/src/dialogs/more-info/controls/more-info-water_heater.ts new file mode 100644 index 0000000000..874e851b8e --- /dev/null +++ b/src/dialogs/more-info/controls/more-info-water_heater.ts @@ -0,0 +1,262 @@ +import { mdiAccount, mdiAccountArrowRight, mdiWaterBoiler } from "@mdi/js"; +import { CSSResultGroup, LitElement, css, html, nothing } from "lit"; +import { customElement, property } from "lit/decorators"; +import { stopPropagation } from "../../../common/dom/stop_propagation"; +import { supportsFeature } from "../../../common/entity/supports-feature"; +import { formatNumber } from "../../../common/number/format_number"; +import "../../../components/ha-control-select-menu"; +import "../../../components/ha-list-item"; +import { + OperationMode, + WaterHeaterEntity, + WaterHeaterEntityFeature, + compareWaterHeaterOperationMode, + computeOperationModeIcon, +} from "../../../data/water_heater"; +import { HomeAssistant } from "../../../types"; +import { moreInfoControlStyle } from "../components/ha-more-info-control-style"; +import "../components/water_heater/ha-more-info-water_heater-temperature"; + +@customElement("more-info-water_heater") +class MoreInfoWaterHeater extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @property() public stateObj?: WaterHeaterEntity; + + protected render() { + if (!this.stateObj) { + return nothing; + } + + const stateObj = this.stateObj; + + const supportOperationMode = supportsFeature( + stateObj, + WaterHeaterEntityFeature.OPERATION_MODE + ); + + const supportAwayMode = supportsFeature( + stateObj, + WaterHeaterEntityFeature.AWAY_MODE + ); + + const currentTemperature = this.stateObj.attributes.current_temperature; + + return html` +
+ ${currentTemperature != null + ? html` +
+

+ ${this.hass.formatEntityAttributeName( + this.stateObj, + "current_temperature" + )} +

+

+ ${formatNumber(currentTemperature, this.hass.locale)} + ${this.hass.config.unit_system.temperature} +

+
+ ` + : nothing} +
+
+ +
+
+
+ ${supportOperationMode && stateObj.attributes.operation_list + ? html` + + + ${stateObj.attributes.operation_list + .concat() + .sort(compareWaterHeaterOperationMode) + .map( + (mode) => html` + + + ${this.hass.formatEntityState(stateObj, mode)} + + ` + )} + + ` + : nothing} + ${supportAwayMode + ? html` + + + + + ${this.hass.localize("state.default.on")} + + + + ${this.hass.localize("state.default.off")} + + + ` + : nothing} +
+
+ `; + } + + private _handleOperationModeChanged(ev) { + const newVal = ev.target.value; + this._callServiceHelper( + this.stateObj!.state, + newVal, + "set_operation_mode", + { + operation_mode: newVal, + } + ); + } + + private _handleAwayModeChanged(ev) { + const newVal = ev.target.value === "on"; + const oldVal = this.stateObj!.attributes.away_mode === "on"; + + this._callServiceHelper(oldVal, newVal, "set_away_mode", { + away_mode: newVal, + }); + } + + private async _callServiceHelper( + oldVal: unknown, + newVal: unknown, + service: string, + data: { + entity_id?: string; + [key: string]: unknown; + } + ) { + if (oldVal === newVal) { + return; + } + + data.entity_id = this.stateObj!.entity_id; + const curState = this.stateObj; + + await this.hass.callService("water_heater", service, data); + + // We reset stateObj to re-sync the inputs with the state. It will be out + // of sync if our service call did not result in the entity to be turned + // on. Since the state is not changing, the resync is not called automatic. + await new Promise((resolve) => { + setTimeout(resolve, 2000); + }); + + // No need to resync if we received a new state. + if (this.stateObj !== curState) { + return; + } + + this.stateObj = undefined; + await this.updateComplete; + // Only restore if not set yet by a state change + if (this.stateObj === undefined) { + this.stateObj = curState; + } + } + + static get styles(): CSSResultGroup { + return [ + moreInfoControlStyle, + css` + :host { + color: var(--primary-text-color); + } + + .current { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + text-align: center; + margin-bottom: 40px; + } + + .current div { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; + flex: 1; + } + + .current p { + margin: 0; + text-align: center; + color: var(--primary-text-color); + } + + .current .label { + opacity: 0.8; + font-size: 14px; + line-height: 16px; + letter-spacing: 0.4px; + margin-bottom: 4px; + } + + .current .value { + font-size: 22px; + font-weight: 500; + line-height: 28px; + } + `, + ]; + } +} + +declare global { + interface HTMLElementTagNameMap { + "more-info-water_heater": MoreInfoWaterHeater; + } +} diff --git a/src/resources/ha-style.ts b/src/resources/ha-style.ts index 7536f9f87c..b0f80d7d41 100644 --- a/src/resources/ha-style.ts +++ b/src/resources/ha-style.ts @@ -176,6 +176,12 @@ documentContainer.innerHTML = ` --state-sensor-battery-high-color: var(--green-color); --state-sensor-battery-low-color: var(--red-color); --state-sensor-battery-medium-color: var(--orange-color); + --state-water_heater-eco-color: var(--green-color); + --state-water_heater-electric-color: var(--orange-color); + --state-water_heater-gas-color: var(--orange-color); + --state-water_heater-heat_pump-color: var(--orange-color); + --state-water_heater-high_demand-color: var(--deep-orange-color); + --state-water_heater-performance-color: var(--deep-orange-color); /* history colors */ --history-unavailable-color: transparent; diff --git a/src/translations/en.json b/src/translations/en.json index 8d7af1e857..b105f95d70 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -1005,6 +1005,9 @@ "humidifier": { "target_label": "[%key:ui::dialogs::more_info_control::climate::target_label%]", "target": "[%key:ui::dialogs::more_info_control::climate::target%]" + }, + "water_heater": { + "target": "[%key:ui::dialogs::more_info_control::climate::target%]" } }, "entity_registry": { From c561df70dd1ef841c663535b5b3262be04086e90 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Mon, 14 Aug 2023 00:39:25 -0700 Subject: [PATCH 051/182] Fix multiline select text in zwave info (#17564) --- .../zwave_js/ha-device-info-zwave_js.ts | 130 +++++++++--------- 1 file changed, 68 insertions(+), 62 deletions(-) diff --git a/src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts b/src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts index 4beb7f949d..06e0cad8dc 100644 --- a/src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts +++ b/src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts @@ -93,70 +93,76 @@ export class HaDeviceInfoZWaveJS extends SubscribeMixin(LitElement) { "ui.panel.config.zwave_js.device_info.zwave_info" )} > - ${this._multipleConfigEntries - ? html` -
- ${this.hass.localize("ui.panel.config.zwave_js.common.source")}: - ${this._configEntry!.title} -
- ` - : ""}
- ${this.hass.localize("ui.panel.config.zwave_js.device_info.node_id")}: - ${this._node.node_id} + ${this._multipleConfigEntries + ? html` +
+ ${this.hass.localize( + "ui.panel.config.zwave_js.common.source" + )}: + ${this._configEntry!.title} +
+ ` + : nothing} +
+ ${this.hass.localize( + "ui.panel.config.zwave_js.device_info.node_id" + )}: + ${this._node.node_id} +
+ ${!this._node.is_controller_node + ? html` +
+ ${this.hass.localize( + "ui.panel.config.zwave_js.device_info.node_status" + )}: + ${this.hass.localize( + `ui.panel.config.zwave_js.node_status.${ + nodeStatus[this._node.status] + }` + )} +
+
+ ${this.hass.localize( + "ui.panel.config.zwave_js.device_info.node_ready" + )}: + ${this._node.ready + ? this.hass.localize("ui.common.yes") + : this.hass.localize("ui.common.no")} +
+
+ ${this.hass.localize( + "ui.panel.config.zwave_js.device_info.highest_security" + )}: + ${this._node.highest_security_class !== null + ? this.hass.localize( + `ui.panel.config.zwave_js.security_classes.${ + SecurityClass[this._node.highest_security_class] + }.title` + ) + : this._node.is_secure === false + ? this.hass.localize( + "ui.panel.config.zwave_js.security_classes.none.title" + ) + : this.hass.localize( + "ui.panel.config.zwave_js.device_info.unknown" + )} +
+
+ ${this.hass.localize( + "ui.panel.config.zwave_js.device_info.zwave_plus" + )}: + ${this._node.zwave_plus_version + ? this.hass.localize( + "ui.panel.config.zwave_js.device_info.zwave_plus_version", + "version", + this._node.zwave_plus_version + ) + : this.hass.localize("ui.common.no")} +
+ ` + : nothing}
- ${!this._node.is_controller_node - ? html` -
- ${this.hass.localize( - "ui.panel.config.zwave_js.device_info.node_status" - )}: - ${this.hass.localize( - `ui.panel.config.zwave_js.node_status.${ - nodeStatus[this._node.status] - }` - )} -
-
- ${this.hass.localize( - "ui.panel.config.zwave_js.device_info.node_ready" - )}: - ${this._node.ready - ? this.hass.localize("ui.common.yes") - : this.hass.localize("ui.common.no")} -
-
- ${this.hass.localize( - "ui.panel.config.zwave_js.device_info.highest_security" - )}: - ${this._node.highest_security_class !== null - ? this.hass.localize( - `ui.panel.config.zwave_js.security_classes.${ - SecurityClass[this._node.highest_security_class] - }.title` - ) - : this._node.is_secure === false - ? this.hass.localize( - "ui.panel.config.zwave_js.security_classes.none.title" - ) - : this.hass.localize( - "ui.panel.config.zwave_js.device_info.unknown" - )} -
-
- ${this.hass.localize( - "ui.panel.config.zwave_js.device_info.zwave_plus" - )}: - ${this._node.zwave_plus_version - ? this.hass.localize( - "ui.panel.config.zwave_js.device_info.zwave_plus_version", - "version", - this._node.zwave_plus_version - ) - : this.hass.localize("ui.common.no")} -
- ` - : ""} `; } From 67441a63b42125c00e0beb3b40013b50b7bdcec5 Mon Sep 17 00:00:00 2001 From: Simon Lamon <32477463+silamon@users.noreply.github.com> Date: Mon, 14 Aug 2023 09:44:13 +0200 Subject: [PATCH 052/182] Replace paper-items from ha-config-area-page (#17550) --- .../config/areas/ha-config-area-page.ts | 181 +++++++++--------- 1 file changed, 95 insertions(+), 86 deletions(-) diff --git a/src/panels/config/areas/ha-config-area-page.ts b/src/panels/config/areas/ha-config-area-page.ts index 8a326e6867..0c1d685bc0 100644 --- a/src/panels/config/areas/ha-config-area-page.ts +++ b/src/panels/config/areas/ha-config-area-page.ts @@ -1,7 +1,6 @@ import "@material/mwc-button"; +import "@material/mwc-list"; import { mdiImagePlus, mdiPencil } from "@mdi/js"; -import "@polymer/paper-item/paper-item"; -import "@polymer/paper-item/paper-item-body"; import { HassEntity, UnsubscribeFunc, @@ -53,6 +52,7 @@ import { loadAreaRegistryDetailDialog, showAreaRegistryDetailDialog, } from "./show-dialog-area-registry-detail"; +import "../../../components/ha-list-item"; declare type NameAndEntity = { name: string; @@ -282,22 +282,24 @@ class HaConfigAreaPage extends SubscribeMixin(LitElement) { outlined .header=${this.hass.localize("ui.panel.config.devices.caption")} >${devices.length - ? devices.map( - (device) => html` - - - ${device.name} - - - - ` - ) + ? html` + ${devices.map( + (device) => html` + + + ${device.name} + + + + ` + )} + ` : html` - ${this.hass.localize( +
+ ${this.hass.localize( "ui.panel.config.devices.no_devices" - )} + )} +
`} ${entities.length - ? entities.map((entity) => - ["scene", "script", "automation"].includes( - computeDomain(entity.entity_id) - ) - ? "" - : html` - - ${entity.name} - - - ` - ) + ? html` + ${entities.map((entity) => + ["scene", "script", "automation"].includes( + computeDomain(entity.entity_id) + ) + ? "" + : html` + + ${entity.name} + + + ` + )}` : html` - ${this.hass.localize( +
+ ${this.hass.localize( "ui.panel.config.areas.editor.no_linked_entities" - )} + )} +
`}
@@ -346,12 +351,14 @@ class HaConfigAreaPage extends SubscribeMixin(LitElement) { "ui.panel.config.areas.assigned_to_area" )}: - ${groupedAutomations.map((automation) => - this._renderAutomation( - automation.name, - automation.entity - ) - )}` + + ${groupedAutomations.map((automation) => + this._renderAutomation( + automation.name, + automation.entity + ) + )}` : ""} ${relatedAutomations?.length ? html`

@@ -359,20 +366,22 @@ class HaConfigAreaPage extends SubscribeMixin(LitElement) { "ui.panel.config.areas.targeting_area" )}:

- ${relatedAutomations.map((automation) => - this._renderAutomation( - automation.name, - automation.entity - ) - )}` + + ${relatedAutomations.map((automation) => + this._renderAutomation( + automation.name, + automation.entity + ) + )}` : ""} ${!groupedAutomations?.length && !relatedAutomations?.length ? html` - ${this.hass.localize( +
+ ${this.hass.localize( "ui.panel.config.devices.automation.no_automations" - )} + )} +
` : ""} @@ -392,9 +401,11 @@ class HaConfigAreaPage extends SubscribeMixin(LitElement) { "ui.panel.config.areas.assigned_to_area" )}: - ${groupedScenes.map((scene) => - this._renderScene(scene.name, scene.entity) - )}` + + ${groupedScenes.map((scene) => + this._renderScene(scene.name, scene.entity) + )}` : ""} ${relatedScenes?.length ? html`

@@ -402,17 +413,19 @@ class HaConfigAreaPage extends SubscribeMixin(LitElement) { "ui.panel.config.areas.targeting_area" )}:

- ${relatedScenes.map((scene) => - this._renderScene(scene.name, scene.entity) - )}` + + ${relatedScenes.map((scene) => + this._renderScene(scene.name, scene.entity) + )}` : ""} ${!groupedScenes?.length && !relatedScenes?.length ? html` - ${this.hass.localize( +
+ ${this.hass.localize( "ui.panel.config.devices.scene.no_scenes" - )} + )} +
` : ""} @@ -448,11 +461,11 @@ class HaConfigAreaPage extends SubscribeMixin(LitElement) { : ""} ${!groupedScripts?.length && !relatedScripts?.length ? html` - ${this.hass.localize( +
+ ${this.hass.localize( "ui.panel.config.devices.script.no_scripts" - )} + )} +
` : ""} @@ -545,10 +558,10 @@ class HaConfigAreaPage extends SubscribeMixin(LitElement) { : undefined )} > - - ${name} - - + + ${name} + + ${!entityState.attributes.id ? html` @@ -569,10 +582,10 @@ class HaConfigAreaPage extends SubscribeMixin(LitElement) { : undefined )} > - - ${name} - - + + ${name} + + ${!entityState.attributes.id ? html` @@ -593,10 +606,10 @@ class HaConfigAreaPage extends SubscribeMixin(LitElement) { url = `/config/script/edit/${entry.unique_id}`; } return html` - - ${name} - - + + ${name} + + `; } @@ -696,20 +709,11 @@ class HaConfigAreaPage extends SubscribeMixin(LitElement) { margin-top: 0; } - paper-item { - cursor: pointer; - font-size: var(--paper-font-body1_-_font-size); - } - a { text-decoration: none; color: var(--primary-text-color); } - paper-item.no-link { - cursor: default; - } - ha-card > a:first-child { display: block; } @@ -744,6 +748,11 @@ class HaConfigAreaPage extends SubscribeMixin(LitElement) { height: 235px; overflow: auto; } + .no-entries { + text-align: center; + padding: 16px; + color: var(--secondary-text-color); + } `, ]; } From 3f05712c18e21c9d883552ed57fa836b47cd6946 Mon Sep 17 00:00:00 2001 From: Simon Lamon <32477463+silamon@users.noreply.github.com> Date: Mon, 14 Aug 2023 09:48:53 +0200 Subject: [PATCH 053/182] Make some conditions translatable (#17234) --- src/data/automation_i18n.ts | 51 ++++++++++++++++++++++++++++--------- src/translations/en.json | 24 ++++++++++++++--- 2 files changed, 59 insertions(+), 16 deletions(-) diff --git a/src/data/automation_i18n.ts b/src/data/automation_i18n.ts index 2a513936f2..e06c1bd4ad 100644 --- a/src/data/automation_i18n.ts +++ b/src/data/automation_i18n.ts @@ -26,6 +26,8 @@ import { FrontendLocaleData } from "./translation"; const triggerTranslationBaseKey = "ui.panel.config.automation.editor.triggers.type"; +const conditionsTranslationBaseKey = + "ui.panel.config.automation.editor.conditions.type"; const describeDuration = (forTime: number | string | ForDict) => { let duration: string | null; @@ -714,34 +716,53 @@ const tryDescribeCondition = ( const conditions = ensureArray(condition.conditions); if (!conditions || conditions.length === 0) { - return "Test if any condition matches"; + return hass.localize( + `${conditionsTranslationBaseKey}.or.description.no_conditions` + ); } const count = conditions.length; - return `Test if any of ${count} condition${count === 1 ? "" : "s"} matches`; + return hass.localize( + `${conditionsTranslationBaseKey}.or.description.full`, + { + count: count, + } + ); } if (condition.condition === "and") { const conditions = ensureArray(condition.conditions); if (!conditions || conditions.length === 0) { - return "Test if multiple conditions match"; + return hass.localize( + `${conditionsTranslationBaseKey}.and.description.no_conditions` + ); } const count = conditions.length; - return `Test if ${count} condition${count === 1 ? "" : "s"} match${ - count === 1 ? "es" : "" - }`; + return hass.localize( + `${conditionsTranslationBaseKey}.and.description.full`, + { + count: count, + } + ); } if (condition.condition === "not") { const conditions = ensureArray(condition.conditions); if (!conditions || conditions.length === 0) { - return "Test if no condition matches"; + return hass.localize( + `${conditionsTranslationBaseKey}.not.description.no_conditions` + ); } if (conditions.length === 1) { - return "Test if 1 condition does not match"; + return hass.localize( + `${conditionsTranslationBaseKey}.not.description.one_condition` + ); } - return `Test if none of ${conditions.length} conditions match`; + return hass.localize( + `${conditionsTranslationBaseKey}.not.description.full`, + { count: conditions.length } + ); } // State Condition @@ -1018,9 +1039,15 @@ const tryDescribeCondition = ( const entitiesString = disjunctionFormatter.format(entities); const zonesString = disjunctionFormatter.format(zones); - return `Confirm ${entitiesString} ${ - entities.length > 1 ? "are" : "is" - } in ${zonesString} ${zones.length > 1 ? "zones" : "zone"}`; + return hass.localize( + `${conditionsTranslationBaseKey}.zone.description.full`, + { + entity: entitiesString, + numberOfEntities: entities.length, + zone: zonesString, + numberOfZones: zones.length, + } + ); } if (condition.condition === "device") { diff --git a/src/translations/en.json b/src/translations/en.json index b105f95d70..116d8f3238 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -2504,7 +2504,11 @@ "type_select": "Condition type", "type": { "and": { - "label": "And" + "label": "And", + "description": { + "no_conditions": "Test if multiple conditions match", + "full": "Test if any of {count} {count, plural,\n one {condition match}\n other {conditions matches}\n}" + } }, "device": { "label": "Device", @@ -2518,7 +2522,12 @@ } }, "not": { - "label": "Not" + "label": "Not", + "description": { + "no_conditions": "Test if no condition matches", + "one_condition": "Test if 1 condition does not match", + "full": "Test if none of {count} conditions match" + } }, "numeric_state": { "type_value": "[%key:ui::panel::config::automation::editor::triggers::type::numeric_state::type_value%]", @@ -2531,7 +2540,11 @@ "value_template": "[%key:ui::panel::config::automation::editor::triggers::type::numeric_state::value_template%]" }, "or": { - "label": "Or" + "label": "Or", + "description": { + "no_conditions": "Test if any condition matches", + "full": "Test if any of {count} {count, plural,\n one {condition}\n other {conditions}\n} matches" + } }, "state": { "label": "[%key:ui::panel::config::automation::editor::triggers::type::state::label%]", @@ -2577,7 +2590,10 @@ "zone": { "label": "[%key:ui::panel::config::automation::editor::triggers::type::zone::label%]", "entity": "[%key:ui::panel::config::automation::editor::triggers::type::zone::entity%]", - "zone": "[%key:ui::panel::config::automation::editor::triggers::type::zone::label%]" + "zone": "[%key:ui::panel::config::automation::editor::triggers::type::zone::label%]", + "description": { + "full": "Confirm {entity} {numberOfEntities, plural,\n one {is}\n other {are}\n} in {zone} {numberOfZones, plural,\n one {zone} \n other {zones}\n} " + } } } }, From fa3625985c383435b7c5e9d4ef2f9f500fa5a1b2 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Mon, 14 Aug 2023 00:52:38 -0700 Subject: [PATCH 054/182] Show statistics bands when charting min/max only (#17549) --- src/components/chart/statistics-chart.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/components/chart/statistics-chart.ts b/src/components/chart/statistics-chart.ts index d3edd154f7..f414eb7871 100644 --- a/src/components/chart/statistics-chart.ts +++ b/src/components/chart/statistics-chart.ts @@ -329,8 +329,14 @@ class StatisticsChart extends LitElement { const statTypes: this["statTypes"] = []; - const drawBands = + const hasMean = this.statTypes.includes("mean") && statisticsHaveType(stats, "mean"); + const drawBands = + hasMean || + (this.statTypes.includes("min") && + statisticsHaveType(stats, "min") && + this.statTypes.includes("max") && + statisticsHaveType(stats, "max")); const sortedTypes = drawBands ? [...this.statTypes].sort((a, b) => { @@ -358,13 +364,14 @@ class StatisticsChart extends LitElement { `ui.components.statistics_charts.statistic_types.${type}` ), fill: drawBands - ? type === "min" + ? type === "min" && hasMean ? "+1" : type === "max" ? "-1" : false : false, - borderColor: band ? color + (this.hideLegend ? "00" : "7F") : color, + borderColor: + band && hasMean ? color + (this.hideLegend ? "00" : "7F") : color, backgroundColor: band ? color + "3F" : color + "7F", pointRadius: 0, data: [], From b8fcb9272a1320ef4449660913b52cc5f6e94b79 Mon Sep 17 00:00:00 2001 From: Raman Gupta <7243222+raman325@users.noreply.github.com> Date: Mon, 14 Aug 2023 03:59:51 -0400 Subject: [PATCH 055/182] Update zwave_js config parameters page (#17529) --- .../integration-panels/zwave_js/zwave_js-node-config.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts index 79dbf42c05..0117e068da 100644 --- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts +++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts @@ -271,9 +271,7 @@ class ZWaveJSNodeConfig extends SubscribeMixin(LitElement) { // Numeric entries with a min value of 0 and max of 1 are considered boolean if ( - (item.configuration_value_type === "manual_entry" && - item.metadata.min === 0 && - item.metadata.max === 1) || + item.configuration_value_type === "boolean" || this._isEnumeratedBool(item) ) { return html` From 255137992bb2a3ddf218c877d06932b09c31879d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 15:57:07 +0200 Subject: [PATCH 056/182] Update dependency @material/web to v1.0.0-pre.15 (#17567) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 18 +++++------------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index b491436ac5..c8ec38bcd4 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "@material/mwc-top-app-bar": "0.27.0", "@material/mwc-top-app-bar-fixed": "0.27.0", "@material/top-app-bar": "=14.0.0-canary.53b3cad2f.0", - "@material/web": "=1.0.0-pre.14", + "@material/web": "=1.0.0-pre.15", "@mdi/js": "7.2.96", "@mdi/svg": "7.2.96", "@polymer/app-layout": "3.1.0", diff --git a/yarn.lock b/yarn.lock index ba035b1321..1f892eddb2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3164,14 +3164,13 @@ __metadata: languageName: node linkType: hard -"@material/web@npm:=1.0.0-pre.14": - version: 1.0.0-pre.14 - resolution: "@material/web@npm:1.0.0-pre.14" +"@material/web@npm:=1.0.0-pre.15": + version: 1.0.0-pre.15 + resolution: "@material/web@npm:1.0.0-pre.15" dependencies: lit: ^2.7.4 - safevalues: ^0.4.3 tslib: ^2.4.0 - checksum: ca9d1e5c7a2f10e7a9deb440213df4e3ef5f717661b14173153bbda58dec6a01bd153dd4c28de15009b26968aef438783326192e2e2d10dc25c8d5d16b5d4402 + checksum: 83eaa3ba9988a2c20df72219aeef86afba9f8b388011fd66fc021d36ebfa54dc4b5ce8676a94fb7d7f908dab2a8566e734a07e13f6319a00a6c5a27543f85643 languageName: node linkType: hard @@ -9671,7 +9670,7 @@ __metadata: "@material/mwc-top-app-bar": 0.27.0 "@material/mwc-top-app-bar-fixed": 0.27.0 "@material/top-app-bar": =14.0.0-canary.53b3cad2f.0 - "@material/web": =1.0.0-pre.14 + "@material/web": =1.0.0-pre.15 "@mdi/js": 7.2.96 "@mdi/svg": 7.2.96 "@octokit/auth-oauth-device": 6.0.0 @@ -14062,13 +14061,6 @@ __metadata: languageName: node linkType: hard -"safevalues@npm:^0.4.3": - version: 0.4.3 - resolution: "safevalues@npm:0.4.3" - checksum: a5cbf3399662665ac8dd88e592ef52cf26df74c26933bc17f94245d3931a1614843e629095e8b3a1e90337f4cc724d7f40387c913cfdbab3cdebbab061657b59 - languageName: node - linkType: hard - "sax@npm:>=0.6.0": version: 1.2.4 resolution: "sax@npm:1.2.4" From c98cdb91e24e14b413cbe4a994be5942711616e8 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Mon, 14 Aug 2023 18:10:22 +0200 Subject: [PATCH 057/182] Fix cleanup of logbook when switching entities (#17575) --- src/data/logbook.ts | 10 --- src/dialogs/more-info/ha-more-info-history.ts | 4 +- src/panels/logbook/ha-logbook.ts | 65 +++++++++---------- 3 files changed, 32 insertions(+), 47 deletions(-) diff --git a/src/data/logbook.ts b/src/data/logbook.ts index 978f611c71..e4990da292 100644 --- a/src/data/logbook.ts +++ b/src/data/logbook.ts @@ -62,12 +62,6 @@ const triggerPhrases = { "Home Assistant starting": "triggered_by_homeassistant_starting", // start event }; -const DATA_CACHE: { - [cacheKey: string]: { - [entityId: string]: Promise | undefined; - }; -} = {}; - export const getLogbookDataForContext = async ( hass: HomeAssistant, startDate: string, @@ -144,10 +138,6 @@ export const subscribeLogbook = ( ); }; -export const clearLogbookCache = (startDate: string, endDate: string) => { - DATA_CACHE[`${startDate}${endDate}`] = {}; -}; - export const createHistoricState = ( currentStateObj: HassEntity, state?: string diff --git a/src/dialogs/more-info/ha-more-info-history.ts b/src/dialogs/more-info/ha-more-info-history.ts index 8bf93c3997..3a018db700 100644 --- a/src/dialogs/more-info/ha-more-info-history.ts +++ b/src/dialogs/more-info/ha-more-info-history.ts @@ -90,8 +90,8 @@ export class MoreInfoHistory extends LitElement { : ""}`; } - protected updated(changedProps: PropertyValues): void { - super.updated(changedProps); + protected willUpdate(changedProps: PropertyValues): void { + super.willUpdate(changedProps); if (changedProps.has("entityId")) { this._stateHistory = undefined; diff --git a/src/panels/logbook/ha-logbook.ts b/src/panels/logbook/ha-logbook.ts index 6d6107f1c1..bc3c13520c 100644 --- a/src/panels/logbook/ha-logbook.ts +++ b/src/panels/logbook/ha-logbook.ts @@ -1,12 +1,10 @@ import { css, html, LitElement, PropertyValues, nothing } from "lit"; import { customElement, property, state } from "lit/decorators"; -import { ensureArray } from "../../common/array/ensure-array"; import { isComponentLoaded } from "../../common/config/is_component_loaded"; import { computeStateDomain } from "../../common/entity/compute_state_domain"; import { throttle } from "../../common/util/throttle"; import "../../components/ha-circular-progress"; import { - clearLogbookCache, LogbookEntry, LogbookStreamMessage, subscribeLogbook, @@ -34,7 +32,8 @@ const idsChanged = (oldIds?: string[], newIds?: string[]) => { !oldIds || !newIds || oldIds.length !== newIds.length || - !oldIds.every((val) => newIds.includes(val)) + oldIds.some((val) => !newIds.includes(val)) || + newIds.some((val) => !oldIds.includes(val)) ); }; @@ -144,23 +143,16 @@ export class HaLogbook extends LitElement { return; } - this._unsubscribeSetLoading(); this._throttleGetLogbookEntries.cancel(); this._updateTraceContexts.cancel(); this._updateUsers.cancel(); + await this._unsubscribeSetLoading(); - if ("range" in this.time) { - clearLogbookCache( - this.time.range[0].toISOString(), - this.time.range[1].toISOString() - ); + if (force) { + this._getLogBookData(); + } else { + this._throttleGetLogbookEntries(); } - - this._throttleGetLogbookEntries(); - } - - protected firstUpdated(changedProps: PropertyValues) { - super.firstUpdated(changedProps); } protected shouldUpdate(changedProps: PropertyValues): boolean { @@ -172,7 +164,7 @@ export class HaLogbook extends LitElement { return !oldHass || oldHass.localize !== this.hass.localize; } - protected updated(changedProps: PropertyValues): void { + protected willUpdate(changedProps: PropertyValues): void { let changed = changedProps.has("time"); for (const key of ["entityIds", "deviceIds"]) { @@ -210,28 +202,29 @@ export class HaLogbook extends LitElement { } private get _filterAlwaysEmptyResults(): boolean { - const entityIds = ensureArray(this.entityIds); - const deviceIds = ensureArray(this.deviceIds); + const entityIds = this.entityIds; + const deviceIds = this.deviceIds; // If all specified filters are empty lists, we can return an empty list. return ( - (entityIds || deviceIds) && + Boolean(entityIds || deviceIds) && (!entityIds || entityIds.length === 0) && (!deviceIds || deviceIds.length === 0) ); } - private _unsubscribe(): void { + private async _unsubscribe(): Promise { if (this._subscribed) { - this._subscribed.then((unsub) => - unsub - ? unsub().catch(() => { - // The backend will cancel the subscription if - // we subscribe to entities that will all be - // filtered away - }) - : undefined - ); + const unsub = await this._subscribed; + if (unsub) { + try { + await unsub(); + } catch (e) { + // The backend will cancel the subscription if + // we subscribe to entities that will all be + // filtered away + } + } this._subscribed = undefined; } } @@ -253,18 +246,20 @@ export class HaLogbook extends LitElement { * Setting this._logbookEntries to undefined * will put the page in a loading state. */ - private _unsubscribeSetLoading() { + private async _unsubscribeSetLoading() { + await this._unsubscribe(); this._logbookEntries = undefined; - this._unsubscribe(); + this._pendingStreamMessages = []; } /** Unsubscribe because there are no results. * Setting this._logbookEntries to an empty * list will show a no results message. */ - private _unsubscribeNoResults() { + private async _unsubscribeNoResults() { + await this._unsubscribe(); this._logbookEntries = []; - this._unsubscribe(); + this._pendingStreamMessages = []; } private _calculateLogbookPeriod() { @@ -311,8 +306,8 @@ export class HaLogbook extends LitElement { }, logbookPeriod.startTime.toISOString(), logbookPeriod.endTime.toISOString(), - ensureArray(this.entityIds), - ensureArray(this.deviceIds) + this.entityIds, + this.deviceIds ).catch((err) => { this._subscribed = undefined; this._error = err; From 3b3a37dc818c7e27a7fab054841f4f83907a76b7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 20:11:09 -0400 Subject: [PATCH 058/182] Update dependency eslint to v8.47.0 (#17576) --- package.json | 2 +- yarn.lock | 40 ++++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index c8ec38bcd4..57fac8caec 100644 --- a/package.json +++ b/package.json @@ -192,7 +192,7 @@ "babel-plugin-template-html-minifier": "4.1.0", "chai": "4.3.7", "del": "7.0.0", - "eslint": "8.46.0", + "eslint": "8.47.0", "eslint-config-airbnb-base": "15.0.0", "eslint-config-airbnb-typescript": "17.1.0", "eslint-config-prettier": "9.0.0", diff --git a/yarn.lock b/yarn.lock index 1f892eddb2..c39cada7ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1561,9 +1561,9 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.1": - version: 2.1.1 - resolution: "@eslint/eslintrc@npm:2.1.1" +"@eslint/eslintrc@npm:^2.1.2": + version: 2.1.2 + resolution: "@eslint/eslintrc@npm:2.1.2" dependencies: ajv: ^6.12.4 debug: ^4.3.2 @@ -1574,14 +1574,14 @@ __metadata: js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: bf909ea183d27238c257a82d4ffdec38ca94b906b4b8dfae02ecbe7ecc9e5a8182ef5e469c808bb8cb4fea4750f43ac4ca7c4b4a167b6cd7e3aaacd386b2bd25 + checksum: bc742a1e3b361f06fedb4afb6bf32cbd27171292ef7924f61c62f2aed73048367bcc7ac68f98c06d4245cd3fabc43270f844e3c1699936d4734b3ac5398814a7 languageName: node linkType: hard -"@eslint/js@npm:^8.46.0": - version: 8.46.0 - resolution: "@eslint/js@npm:8.46.0" - checksum: 7aed479832302882faf5bec37e9d068f270f84c19b3fb529646a7c1b031e73a312f730569c78806492bc09cfce3d7651dfab4ce09a56cbb06bc6469449e56377 +"@eslint/js@npm:^8.47.0": + version: 8.47.0 + resolution: "@eslint/js@npm:8.47.0" + checksum: 0ef57fe27b6d4c305b33f3b2d2fee1ab397a619006f1d6f4ce5ee4746b8f03d11a4e098805a7d78601ca534cf72917d37f0ac19896c992a32e26299ecb9f9de1 languageName: node linkType: hard @@ -8165,21 +8165,21 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.2": - version: 3.4.2 - resolution: "eslint-visitor-keys@npm:3.4.2" - checksum: 9e0e7e4aaea705c097ae37c97410e5f167d4d2193be2edcb1f0760762ede3df01545e4820ae314f42dcec687745f2c6dcaf6d83575c4a2a241eb0c8517d724f2 +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 languageName: node linkType: hard -"eslint@npm:8.46.0": - version: 8.46.0 - resolution: "eslint@npm:8.46.0" +"eslint@npm:8.47.0": + version: 8.47.0 + resolution: "eslint@npm:8.47.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.1 - "@eslint/js": ^8.46.0 + "@eslint/eslintrc": ^2.1.2 + "@eslint/js": ^8.47.0 "@humanwhocodes/config-array": ^0.11.10 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 @@ -8190,7 +8190,7 @@ __metadata: doctrine: ^3.0.0 escape-string-regexp: ^4.0.0 eslint-scope: ^7.2.2 - eslint-visitor-keys: ^3.4.2 + eslint-visitor-keys: ^3.4.3 espree: ^9.6.1 esquery: ^1.4.2 esutils: ^2.0.2 @@ -8215,7 +8215,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 7a7d36b1a3bbc12e08fbb5bc36fd482a7a5a1797e62e762499dd45601b9e45aaa53a129f31ce0b4444551a9639b8b681ad535f379893dd1e3ae37b31dccd82aa + checksum: 1988617f703eadc5c7540468d54dc8e5171cf2bb9483f6172799cd1ff54a9a5e4470f003784e8cef92687eaa14de37172732787040e67817581a20bcb9c15970 languageName: node linkType: hard @@ -9736,7 +9736,7 @@ __metadata: deep-clone-simple: 1.1.1 deep-freeze: 0.0.1 del: 7.0.0 - eslint: 8.46.0 + eslint: 8.47.0 eslint-config-airbnb-base: 15.0.0 eslint-config-airbnb-typescript: 17.1.0 eslint-config-prettier: 9.0.0 From 961e8bc1490bdd21e95218bbe726b45ad49f6b59 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 22:07:33 -0400 Subject: [PATCH 059/182] Update dependency @rollup/plugin-commonjs to v25.0.4 (#17577) --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 57fac8caec..dec7f5ef3a 100644 --- a/package.json +++ b/package.json @@ -163,7 +163,7 @@ "@octokit/rest": "20.0.1", "@open-wc/dev-server-hmr": "0.1.4", "@rollup/plugin-babel": "6.0.3", - "@rollup/plugin-commonjs": "25.0.3", + "@rollup/plugin-commonjs": "25.0.4", "@rollup/plugin-json": "6.0.0", "@rollup/plugin-node-resolve": "15.1.0", "@rollup/plugin-replace": "5.0.2", diff --git a/yarn.lock b/yarn.lock index c39cada7ba..5f9fcc89de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3847,9 +3847,9 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-commonjs@npm:25.0.3": - version: 25.0.3 - resolution: "@rollup/plugin-commonjs@npm:25.0.3" +"@rollup/plugin-commonjs@npm:25.0.4": + version: 25.0.4 + resolution: "@rollup/plugin-commonjs@npm:25.0.4" dependencies: "@rollup/pluginutils": ^5.0.1 commondir: ^1.0.1 @@ -3862,7 +3862,7 @@ __metadata: peerDependenciesMeta: rollup: optional: true - checksum: 1b94218cc80364d218e5d526e9199620151fe8ac489abc293a75741af5ffb2bfa90da06cffc4a1b9a4091a6f8cda63a6f7c557881b12188f9e0a05f08c147fd0 + checksum: 073b92b765a1f8ab8db8e1aa216c1950e62f6c0c41210d10bb7530c4fc63670a16c19c0bbbf73e2752467c4468ad4c8134cf4724924388c3eed83df45630fda6 languageName: node linkType: hard @@ -9689,7 +9689,7 @@ __metadata: "@polymer/paper-toast": 3.0.1 "@polymer/polymer": 3.5.1 "@rollup/plugin-babel": 6.0.3 - "@rollup/plugin-commonjs": 25.0.3 + "@rollup/plugin-commonjs": 25.0.4 "@rollup/plugin-json": 6.0.0 "@rollup/plugin-node-resolve": 15.1.0 "@rollup/plugin-replace": 5.0.2 From b1c826326b14c2fad839eebb9a1f82742a4db7fa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 22:11:04 -0400 Subject: [PATCH 060/182] Update vaadinWebComponents monorepo to v24.1.5 (#17569) --- package.json | 4 +- yarn.lock | 166 +++++++++++++++++++++++++-------------------------- 2 files changed, 85 insertions(+), 85 deletions(-) diff --git a/package.json b/package.json index dec7f5ef3a..203c0b7939 100644 --- a/package.json +++ b/package.json @@ -94,8 +94,8 @@ "@polymer/paper-toast": "3.0.1", "@polymer/polymer": "3.5.1", "@thomasloven/round-slider": "0.6.0", - "@vaadin/combo-box": "24.1.4", - "@vaadin/vaadin-themable-mixin": "24.1.4", + "@vaadin/combo-box": "24.1.5", + "@vaadin/vaadin-themable-mixin": "24.1.5", "@vibrant/color": "3.2.1-alpha.1", "@vibrant/core": "3.2.1-alpha.1", "@vibrant/quantizer-mmcq": "3.2.1-alpha.1", diff --git a/yarn.lock b/yarn.lock index 5f9fcc89de..918cc73e7c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4771,126 +4771,126 @@ __metadata: languageName: node linkType: hard -"@vaadin/a11y-base@npm:~24.1.4": - version: 24.1.4 - resolution: "@vaadin/a11y-base@npm:24.1.4" +"@vaadin/a11y-base@npm:~24.1.5": + version: 24.1.5 + resolution: "@vaadin/a11y-base@npm:24.1.5" dependencies: "@open-wc/dedupe-mixin": ^1.3.0 "@polymer/polymer": ^3.0.0 - "@vaadin/component-base": ~24.1.4 + "@vaadin/component-base": ~24.1.5 lit: ^2.0.0 - checksum: 1b5ddc2af1418c530d12ac00cd1ad9f896ef118730157c901662906409806ef6a46d18be4daf9d883784727c8ce4186700c0fdfa3ccc521c58693e494be98cc0 + checksum: b005dabc5bf0173c0b51149a0444364ce054d990017c75d3955169f9a95ba8fd19de8578b65003bca0ebcd8179d3b52834fe332a29a89c6de396792ac7217d3f languageName: node linkType: hard -"@vaadin/combo-box@npm:24.1.4": - version: 24.1.4 - resolution: "@vaadin/combo-box@npm:24.1.4" +"@vaadin/combo-box@npm:24.1.5": + version: 24.1.5 + resolution: "@vaadin/combo-box@npm:24.1.5" dependencies: "@open-wc/dedupe-mixin": ^1.3.0 "@polymer/polymer": ^3.0.0 - "@vaadin/a11y-base": ~24.1.4 - "@vaadin/component-base": ~24.1.4 - "@vaadin/field-base": ~24.1.4 - "@vaadin/input-container": ~24.1.4 - "@vaadin/item": ~24.1.4 - "@vaadin/lit-renderer": ~24.1.4 - "@vaadin/overlay": ~24.1.4 - "@vaadin/vaadin-lumo-styles": ~24.1.4 - "@vaadin/vaadin-material-styles": ~24.1.4 - "@vaadin/vaadin-themable-mixin": ~24.1.4 - checksum: 598800430645af9c5da1b6195ee326827d0069c31219a3c48145c877f8c08e739b5c68261cd54f3b6d1e6d34cac33165f643744594ff1737731e8fa2f7b2a9e0 + "@vaadin/a11y-base": ~24.1.5 + "@vaadin/component-base": ~24.1.5 + "@vaadin/field-base": ~24.1.5 + "@vaadin/input-container": ~24.1.5 + "@vaadin/item": ~24.1.5 + "@vaadin/lit-renderer": ~24.1.5 + "@vaadin/overlay": ~24.1.5 + "@vaadin/vaadin-lumo-styles": ~24.1.5 + "@vaadin/vaadin-material-styles": ~24.1.5 + "@vaadin/vaadin-themable-mixin": ~24.1.5 + checksum: d632a8d8226f8c2ea1146c10d947182379fabd533d53e3602e1f58b6b89fc4bcc3b862e704efcbd29fffb647839b9783eb87c248d9961e56e080a526f07d4cbd languageName: node linkType: hard -"@vaadin/component-base@npm:~24.1.4": - version: 24.1.4 - resolution: "@vaadin/component-base@npm:24.1.4" +"@vaadin/component-base@npm:~24.1.5": + version: 24.1.5 + resolution: "@vaadin/component-base@npm:24.1.5" dependencies: "@open-wc/dedupe-mixin": ^1.3.0 "@polymer/polymer": ^3.0.0 "@vaadin/vaadin-development-mode-detector": ^2.0.0 "@vaadin/vaadin-usage-statistics": ^2.1.0 lit: ^2.0.0 - checksum: dc0d4dfa898fb37103cc52e385dc98f14d074e4bc846f377ef391e24b14317c4cca939667aa4e67984815021d89706fc70183e62cbaa3cd98f5168d254492db2 + checksum: 0150b72ab01bc9c5408bd144196451964f781f1791f45b061d2fd74ec04590a7f0a0f23988b16de80447aebef78eae75f8a2a558414df01fd0cbc9b6fbc964ab languageName: node linkType: hard -"@vaadin/field-base@npm:~24.1.4": - version: 24.1.4 - resolution: "@vaadin/field-base@npm:24.1.4" +"@vaadin/field-base@npm:~24.1.5": + version: 24.1.5 + resolution: "@vaadin/field-base@npm:24.1.5" dependencies: "@open-wc/dedupe-mixin": ^1.3.0 "@polymer/polymer": ^3.0.0 - "@vaadin/a11y-base": ~24.1.4 - "@vaadin/component-base": ~24.1.4 + "@vaadin/a11y-base": ~24.1.5 + "@vaadin/component-base": ~24.1.5 lit: ^2.0.0 - checksum: 6767702f0b501a7463eb17d0254410d49ede194b9c46dbc784db1dc9aa454e4dd79094e1c6166f31ee6c913b3532eda4c12a9dbd7ef51ca6c5a407050b322788 + checksum: 21391eb15ab64e2351b15ec5bf6e529625921414eecc9d8e6f7b57d60f5c32ce84a1a5a44b8f957053fb398e6cf68cbb7031a10e7d1ad331927711a11b9f9da5 languageName: node linkType: hard -"@vaadin/icon@npm:~24.1.4": - version: 24.1.4 - resolution: "@vaadin/icon@npm:24.1.4" +"@vaadin/icon@npm:~24.1.5": + version: 24.1.5 + resolution: "@vaadin/icon@npm:24.1.5" dependencies: "@polymer/polymer": ^3.0.0 - "@vaadin/component-base": ~24.1.4 - "@vaadin/vaadin-lumo-styles": ~24.1.4 - "@vaadin/vaadin-themable-mixin": ~24.1.4 + "@vaadin/component-base": ~24.1.5 + "@vaadin/vaadin-lumo-styles": ~24.1.5 + "@vaadin/vaadin-themable-mixin": ~24.1.5 lit: ^2.0.0 - checksum: 880476ab0ba49bfdc4402a3c3facedd17673dd2c5b85c8e0240ac780c5a889c8c7bc2297ec0479e1551c50dd1e7d01d68ca9c24eb140a1f2daa5d43782d8e747 + checksum: 54f6312a5c00b3c86dd17bd17ea4da430197ede7ab6465073315c10d62c70c1d9f5d570463876f3e222c62a5ca7ff037c16b310fc310ec0b6c99ba16a91a7b83 languageName: node linkType: hard -"@vaadin/input-container@npm:~24.1.4": - version: 24.1.4 - resolution: "@vaadin/input-container@npm:24.1.4" +"@vaadin/input-container@npm:~24.1.5": + version: 24.1.5 + resolution: "@vaadin/input-container@npm:24.1.5" dependencies: "@polymer/polymer": ^3.0.0 - "@vaadin/component-base": ~24.1.4 - "@vaadin/vaadin-lumo-styles": ~24.1.4 - "@vaadin/vaadin-material-styles": ~24.1.4 - "@vaadin/vaadin-themable-mixin": ~24.1.4 - checksum: 1851ac7a85bbaf02fbcbe3de99efe94aee2921873d5226b48d77a42d35cdf2d5f6f99b0a8bce9c559f90edfcb79efbe47e486db3bfe2991071af1f271d10a07d + "@vaadin/component-base": ~24.1.5 + "@vaadin/vaadin-lumo-styles": ~24.1.5 + "@vaadin/vaadin-material-styles": ~24.1.5 + "@vaadin/vaadin-themable-mixin": ~24.1.5 + checksum: ad903518d15f05b832ea45edb86f4814891f879ff9d7c485bdcf49377774dd6d73b5223de1ec9b69712aa1f71e3280aa6db664060d897041c0cea402f81ddfe7 languageName: node linkType: hard -"@vaadin/item@npm:~24.1.4": - version: 24.1.4 - resolution: "@vaadin/item@npm:24.1.4" +"@vaadin/item@npm:~24.1.5": + version: 24.1.5 + resolution: "@vaadin/item@npm:24.1.5" dependencies: "@open-wc/dedupe-mixin": ^1.3.0 "@polymer/polymer": ^3.0.0 - "@vaadin/a11y-base": ~24.1.4 - "@vaadin/component-base": ~24.1.4 - "@vaadin/vaadin-lumo-styles": ~24.1.4 - "@vaadin/vaadin-material-styles": ~24.1.4 - "@vaadin/vaadin-themable-mixin": ~24.1.4 - checksum: 5694a54c156516a41be7c92f7486fe417b227caaa39186322720426d9586d87f17775faae11ec8d16d249826c9b0cf753ed7061b2d4b9ac2cbcb614ce4b35714 + "@vaadin/a11y-base": ~24.1.5 + "@vaadin/component-base": ~24.1.5 + "@vaadin/vaadin-lumo-styles": ~24.1.5 + "@vaadin/vaadin-material-styles": ~24.1.5 + "@vaadin/vaadin-themable-mixin": ~24.1.5 + checksum: 73ec92a3487ec206877c8395c48aa0540a9037d78ada8ba161fa33a9d6596c9a7ed8cecca5654d63847f325862157e6aec1a50dd432d5c88a3f69a1b5990e6ab languageName: node linkType: hard -"@vaadin/lit-renderer@npm:~24.1.4": - version: 24.1.4 - resolution: "@vaadin/lit-renderer@npm:24.1.4" +"@vaadin/lit-renderer@npm:~24.1.5": + version: 24.1.5 + resolution: "@vaadin/lit-renderer@npm:24.1.5" dependencies: lit: ^2.0.0 - checksum: ac69537651be8733de209333cbbdd1b5b6e17394d6869d7de8c6b06bd63952a478de1f72120dfe826a72073788094032f5284d8cdbe19de5edf57a836de476b0 + checksum: 963567770025297b3fecddc7f568835d2ca3304b3f80e524635360319e1bb82138cf8ecc1af5b5f4e6fe3751b67144f864481e4ac211e7d64f1c0b98a44da6cf languageName: node linkType: hard -"@vaadin/overlay@npm:~24.1.4": - version: 24.1.4 - resolution: "@vaadin/overlay@npm:24.1.4" +"@vaadin/overlay@npm:~24.1.5": + version: 24.1.5 + resolution: "@vaadin/overlay@npm:24.1.5" dependencies: "@open-wc/dedupe-mixin": ^1.3.0 "@polymer/polymer": ^3.0.0 - "@vaadin/a11y-base": ~24.1.4 - "@vaadin/component-base": ~24.1.4 - "@vaadin/vaadin-lumo-styles": ~24.1.4 - "@vaadin/vaadin-material-styles": ~24.1.4 - "@vaadin/vaadin-themable-mixin": ~24.1.4 - checksum: 44a664cd249b66345240a1ab6cd9c466f7d43c496a13c6d30d2cfdc1e67550f4b8562d43b16d0b974a2dc61bbde5d10671a63f97b9171f71ca75cb4d7de684cf + "@vaadin/a11y-base": ~24.1.5 + "@vaadin/component-base": ~24.1.5 + "@vaadin/vaadin-lumo-styles": ~24.1.5 + "@vaadin/vaadin-material-styles": ~24.1.5 + "@vaadin/vaadin-themable-mixin": ~24.1.5 + checksum: df8bb6e5a20870d70a06a50ff6f6042f032758b21ce73abb133f29b3575724a3152353e56c8a5cc0511723ad5527cf75e7581cab41c9ffdd4b0ec5ee147925f3 languageName: node linkType: hard @@ -4901,34 +4901,34 @@ __metadata: languageName: node linkType: hard -"@vaadin/vaadin-lumo-styles@npm:~24.1.4": - version: 24.1.4 - resolution: "@vaadin/vaadin-lumo-styles@npm:24.1.4" +"@vaadin/vaadin-lumo-styles@npm:~24.1.5": + version: 24.1.5 + resolution: "@vaadin/vaadin-lumo-styles@npm:24.1.5" dependencies: "@polymer/polymer": ^3.0.0 - "@vaadin/icon": ~24.1.4 - "@vaadin/vaadin-themable-mixin": ~24.1.4 - checksum: 358dfa2ca955d86119b675e4e32982a51be12327fd675cdf3601b79a9fc9c8388e31299e593aabc62bb72afb17ba3856b904dfbecd7408f82719c9ce015fd883 + "@vaadin/icon": ~24.1.5 + "@vaadin/vaadin-themable-mixin": ~24.1.5 + checksum: ecec8b2c0039f7bef23b19717f5a590f083a6c9c62f09ac355858fbcac56b9f164efe92f93254a27ee5661e1cead249bd6af618b5a31ad597119063e9c1ecfd9 languageName: node linkType: hard -"@vaadin/vaadin-material-styles@npm:~24.1.4": - version: 24.1.4 - resolution: "@vaadin/vaadin-material-styles@npm:24.1.4" +"@vaadin/vaadin-material-styles@npm:~24.1.5": + version: 24.1.5 + resolution: "@vaadin/vaadin-material-styles@npm:24.1.5" dependencies: "@polymer/polymer": ^3.0.0 - "@vaadin/vaadin-themable-mixin": ~24.1.4 - checksum: 0289b667dbf54d2a81ffb74dd1caeccefed7cd7e0d02163c31775ab03f5d8fb15647578c4744592d753a2657b47216f221468f19f497d920e21f443e84699bf4 + "@vaadin/vaadin-themable-mixin": ~24.1.5 + checksum: fe4cc4a3c981a5c041b57a2f57bbb6ebd9c4ba0a393258faf195d94eb9f74f28085ba699451c00c37c29dbacad13843b8606fed98f1d1f0c20b8f39b7514d6a2 languageName: node linkType: hard -"@vaadin/vaadin-themable-mixin@npm:24.1.4, @vaadin/vaadin-themable-mixin@npm:~24.1.4": - version: 24.1.4 - resolution: "@vaadin/vaadin-themable-mixin@npm:24.1.4" +"@vaadin/vaadin-themable-mixin@npm:24.1.5, @vaadin/vaadin-themable-mixin@npm:~24.1.5": + version: 24.1.5 + resolution: "@vaadin/vaadin-themable-mixin@npm:24.1.5" dependencies: "@open-wc/dedupe-mixin": ^1.3.0 lit: ^2.0.0 - checksum: db2993360d741f50011c0ca3229afb67d6965bd2fcb4915108e8bd462071c82d5f0a60877e250db1611b5712cbb17d3ab97fef932f97c43b63cb15a0357646ea + checksum: d543cb06f2b6f767c0db4d7ff9541f7906fb84570d6d9993e512a5d99797430f748c9aa71f135a8f11f30e1946ec80bc1325badf6972d6feb945410794563f04 languageName: node linkType: hard @@ -9713,8 +9713,8 @@ __metadata: "@types/webspeechapi": 0.0.29 "@typescript-eslint/eslint-plugin": 6.3.0 "@typescript-eslint/parser": 6.3.0 - "@vaadin/combo-box": 24.1.4 - "@vaadin/vaadin-themable-mixin": 24.1.4 + "@vaadin/combo-box": 24.1.5 + "@vaadin/vaadin-themable-mixin": 24.1.5 "@vibrant/color": 3.2.1-alpha.1 "@vibrant/core": 3.2.1-alpha.1 "@vibrant/quantizer-mmcq": 3.2.1-alpha.1 From 4979e892518213d3de2231f9fcd658105f8d809b Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Tue, 15 Aug 2023 09:45:44 +0200 Subject: [PATCH 061/182] Update some thread related types (#17574) --- src/data/thread.ts | 21 ++++++++++++------- .../thread/thread-config-panel.ts | 9 ++++++-- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/data/thread.ts b/src/data/thread.ts index 0af2cbd273..2ff0e8b145 100644 --- a/src/data/thread.ts +++ b/src/data/thread.ts @@ -1,24 +1,29 @@ import { HomeAssistant } from "../types"; export interface ThreadRouter { + addresses: [string]; + border_agent_id: string | null; brand: "google" | "apple" | "homeassistant"; - server: string; - extended_pan_id: string; extended_address: string; + extended_pan_id: string; model_name: string | null; - network_name: string; - vendor_name: string; + network_name: string | null; + server: string | null; + thread_version: string | null; + unconfigured: boolean | null; + vendor_name: string | null; } export interface ThreadDataSet { + channel: number | null; created: string; dataset_id: string; + extended_pan_id: string | null; + network_name: string; + pan_id: string | null; + preferred_border_agent_id: string | null; preferred: boolean; source: string; - network_name: string; - extended_pan_id?: string; - pan_id?: string; - channel?: number; } export interface ThreadRouterDiscoveryEvent { diff --git a/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts b/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts index 2fdea52d73..7aa43d3770 100644 --- a/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts +++ b/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts @@ -183,7 +183,9 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) { @error=${this._onImageError} @load=${this._onImageLoad} /> - ${router.model_name || router.server.replace(".local.", "")} + ${router.model_name || + router.server?.replace(".local.", "") || + ""} ${router.server} ${router.extended_address === this._otbrInfo?.extended_address ? html` Date: Tue, 15 Aug 2023 09:51:13 +0200 Subject: [PATCH 062/182] Adjust to otbr info including extended address (#17581) --- src/data/otbr.ts | 10 ++-------- .../integration-panels/thread/thread-config-panel.ts | 11 ++--------- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/src/data/otbr.ts b/src/data/otbr.ts index 154d2863ff..604be8982a 100644 --- a/src/data/otbr.ts +++ b/src/data/otbr.ts @@ -1,9 +1,10 @@ import { HomeAssistant } from "../types"; export interface OTBRInfo { - url: string; active_dataset_tlvs: string; channel: number; + extended_address: string; + url: string; } export const getOTBRInfo = (hass: HomeAssistant): Promise => @@ -25,13 +26,6 @@ export const OTBRSetNetwork = ( dataset_id, }); -export const OTBRGetExtendedAddress = ( - hass: HomeAssistant -): Promise<{ extended_address: string }> => - hass.callWS({ - type: "otbr/get_extended_address", - }); - export const OTBRSetChannel = ( hass: HomeAssistant, channel: number diff --git a/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts b/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts index 7aa43d3770..ef6ede8662 100644 --- a/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts +++ b/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts @@ -18,7 +18,6 @@ import { getConfigEntryDiagnosticsDownloadUrl } from "../../../../../data/diagno import { getOTBRInfo, OTBRCreateNetwork, - OTBRGetExtendedAddress, OTBRInfo, OTBRSetChannel, OTBRSetNetwork, @@ -63,7 +62,7 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) { @state() private _datasets: ThreadDataSet[] = []; - @state() private _otbrInfo?: OTBRInfo & { extended_address?: string }; + @state() private _otbrInfo?: OTBRInfo; protected render(): TemplateResult { const networks = this._groupRoutersByNetwork(this._routers, this._datasets); @@ -356,13 +355,7 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) { return; } try { - const _otbrAddress = OTBRGetExtendedAddress(this.hass); - const _otbrInfo = getOTBRInfo(this.hass); - const [otbrAddress, otbrInfo] = await Promise.all([ - _otbrAddress, - _otbrInfo, - ]); - this._otbrInfo = { ...otbrAddress, ...otbrInfo }; + this._otbrInfo = await getOTBRInfo(this.hass); } catch (err) { this._otbrInfo = undefined; } From baba02f563d76ee67d83d91d3a8450f8aab47d4d Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Tue, 15 Aug 2023 13:50:44 +0200 Subject: [PATCH 063/182] Improve disabled state in more info (#17570) --- src/components/ha-control-select-menu.ts | 5 + src/components/ha-icon-button-toggle.ts | 2 +- .../climate/ha-more-info-climate-humidity.ts | 182 +++--------- .../ha-more-info-climate-temperature.ts | 258 +++++++----------- ...more-info-control-circular-slider-style.ts | 97 +++++++ .../ha-more-info-humidifier-humidity.ts | 151 +++------- .../ha-more-info-water_heater-temperature.ts | 178 ++++-------- .../more-info/controls/more-info-climate.ts | 4 + .../more-info/controls/more-info-fan.ts | 11 +- .../controls/more-info-humidifier.ts | 12 +- .../more-info/controls/more-info-light.ts | 1 + .../controls/more-info-water_heater.ts | 7 +- 12 files changed, 358 insertions(+), 550 deletions(-) create mode 100644 src/dialogs/more-info/components/ha-more-info-control-circular-slider-style.ts diff --git a/src/components/ha-control-select-menu.ts b/src/components/ha-control-select-menu.ts index a275e3e4f5..40ce91d979 100644 --- a/src/components/ha-control-select-menu.ts +++ b/src/components/ha-control-select-menu.ts @@ -238,6 +238,11 @@ export class HaControlSelectMenu extends SelectBase { opacity: var(--control-select-menu-background-opacity); } + .select-disabled .select-anchor { + cursor: not-allowed; + color: var(--disabled-color); + } + mwc-menu { --mdc-shape-medium: 8px; } diff --git a/src/components/ha-icon-button-toggle.ts b/src/components/ha-icon-button-toggle.ts index 56d0b37c82..684a9f4dfe 100644 --- a/src/components/ha-icon-button-toggle.ts +++ b/src/components/ha-icon-button-toggle.ts @@ -38,7 +38,7 @@ export class HaIconButtonToggle extends HaIconButton { :host([selected]) mwc-icon-button { color: var(--primary-background-color); } - :host([selected]) mwc-icon-button::before { + :host([selected]:not([disabled])) mwc-icon-button::before { opacity: 1; } `; diff --git a/src/dialogs/more-info/components/climate/ha-more-info-climate-humidity.ts b/src/dialogs/more-info/components/climate/ha-more-info-climate-humidity.ts index 95be20ac85..372c7dae20 100644 --- a/src/dialogs/more-info/components/climate/ha-more-info-climate-humidity.ts +++ b/src/dialogs/more-info/components/climate/ha-more-info-climate-humidity.ts @@ -16,6 +16,7 @@ import { ClimateEntity, ClimateEntityFeature } from "../../../../data/climate"; import { UNAVAILABLE } from "../../../../data/entity"; import { computeCssVariable } from "../../../../resources/css-variables"; import { HomeAssistant } from "../../../../types"; +import { moreInfoControlCircularSliderStyle } from "../ha-more-info-control-circular-slider-style"; @customElement("ha-more-info-climate-humidity") export class HaMoreInfoClimateHumidity extends LitElement { @@ -78,8 +79,16 @@ export class HaMoreInfoClimateHumidity extends LitElement { } private _renderLabel() { + if (this.stateObj.state === UNAVAILABLE) { + return html` +

+ ${this.hass.formatEntityState(this.stateObj, UNAVAILABLE)} +

+ `; + } + return html` -

+

${this.hass.localize( "ui.dialogs.more_info_control.climate.humidity_target" )} @@ -131,7 +140,7 @@ export class HaMoreInfoClimateHumidity extends LitElement { const active = stateActive(this.stateObj); // Use humidifier state color - const mainColor = computeCssVariable( + const stateColor = computeCssVariable( domainStateColorProperties( "humidifier", this.stateObj, @@ -142,12 +151,16 @@ export class HaMoreInfoClimateHumidity extends LitElement { const targetHumidity = this._targetHumidity; const currentHumidity = this.stateObj.attributes.current_humidity; - if (supportsTargetHumidity && targetHumidity != null) { + if ( + supportsTargetHumidity && + targetHumidity != null && + this.stateObj.state !== UNAVAILABLE + ) { return html`

-
${this._renderLabel()}
+
${this._renderLabel()}
${this._renderTarget(targetHumidity)}
@@ -175,152 +187,40 @@ export class HaMoreInfoClimateHumidity extends LitElement { return html`
+
+
${this._renderLabel()}
+
`; } static get styles(): CSSResultGroup { - return css` - /* Layout */ - .container { - position: relative; - } - .info { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - pointer-events: none; - font-size: 16px; - line-height: 24px; - letter-spacing: 0.1px; - } - .info * { - margin: 0; - pointer-events: auto; - } - /* Elements */ - .target-container { - margin-bottom: 30px; - } - .target .value { - font-size: 56px; - line-height: 1; - letter-spacing: -0.25px; - } - .target .value .unit { - font-size: 0.4em; - line-height: 1; - margin-left: 2px; - } - .action-container { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - width: 200px; - height: 48px; - margin-bottom: 6px; - } - .action { - font-weight: 500; - text-align: center; - color: var(--action-color, inherit); - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden; - } - .dual { - display: flex; - flex-direction: row; - gap: 24px; - margin-bottom: 40px; - } - - .dual button { - outline: none; - background: none; - color: inherit; - font-family: inherit; - -webkit-tap-highlight-color: transparent; - border: none; - opacity: 0.5; - padding: 0; - transition: - opacity 180ms ease-in-out, - transform 180ms ease-in-out; - cursor: pointer; - } - .dual button:focus-visible { - transform: scale(1.1); - } - .dual button.selected { - opacity: 1; - } - .buttons { - position: absolute; - bottom: 10px; - left: 0; - right: 0; - margin: 0 auto; - width: 120px; - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - } - .buttons ha-outlined-icon-button { - --md-outlined-icon-button-container-size: 48px; - --md-outlined-icon-button-icon-size: 24px; - } - /* Accessibility */ - .visually-hidden { - position: absolute; - overflow: hidden; - clip: rect(0 0 0 0); - height: 1px; - width: 1px; - margin: -1px; - padding: 0; - border: 0; - } - /* Slider */ - ha-control-circular-slider { - --control-circular-slider-color: var( - --main-color, - var(--disabled-color) - ); - } - ha-control-circular-slider::after { - display: block; - content: ""; - position: absolute; - top: -10%; - left: -10%; - right: -10%; - bottom: -10%; - background: radial-gradient( - 50% 50% at 50% 50%, - var(--action-color, transparent) 0%, - transparent 100% - ); - opacity: 0.15; - pointer-events: none; - } - `; + return [ + moreInfoControlCircularSliderStyle, + css` + /* Elements */ + .target-container { + margin-bottom: 30px; + } + .target .value { + font-size: 58px; + line-height: 1; + letter-spacing: -0.25px; + } + .target .value .unit { + font-size: 0.4em; + line-height: 1; + margin-left: 2px; + } + `, + ]; } } diff --git a/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts b/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts index 9f33ba5e34..e9ddb81c11 100644 --- a/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts +++ b/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts @@ -27,6 +27,7 @@ import { } from "../../../../data/climate"; import { UNAVAILABLE } from "../../../../data/entity"; import { HomeAssistant } from "../../../../types"; +import { moreInfoControlCircularSliderStyle } from "../ha-more-info-control-circular-slider-style"; type Target = "value" | "low" | "high"; @@ -137,7 +138,15 @@ export class HaMoreInfoClimateTemperature extends LitElement { this._selectTargetTemperature = target; } - private _renderHvacAction() { + private _renderLabel() { + if (this.stateObj.state === UNAVAILABLE) { + return html` +

+ ${this.hass.formatEntityState(this.stateObj, UNAVAILABLE)} +

+ `; + } + const action = this.stateObj.attributes.hvac_action; const actionLabel = computeAttributeValueDisplay( @@ -150,7 +159,7 @@ export class HaMoreInfoClimateTemperature extends LitElement { ) as string; return html` -

+

${action && ["preheating", "heating", "cooling"].includes(action) ? this.hass.localize( "ui.dialogs.more_info_control.climate.target_label", @@ -246,7 +255,7 @@ export class HaMoreInfoClimateTemperature extends LitElement { const action = this.stateObj.attributes.hvac_action; const active = stateActive(this.stateObj); - const mainColor = stateColorCss(this.stateObj); + const stateColor = stateColorCss(this.stateObj); const lowColor = stateColorCss(this.stateObj, active ? "heat" : "off"); const highColor = stateColorCss(this.stateObj, active ? "cool" : "off"); @@ -260,7 +269,11 @@ export class HaMoreInfoClimateTemperature extends LitElement { const hvacModes = this.stateObj.attributes.hvac_modes; - if (supportsTargetTemperature && this._targetTemperature.value != null) { + if ( + supportsTargetTemperature && + this._targetTemperature.value != null && + this.stateObj.state !== UNAVAILABLE + ) { const hasOnlyCoolMode = hvacModes.length === 2 && hvacModes.includes("cool") && @@ -269,7 +282,7 @@ export class HaMoreInfoClimateTemperature extends LitElement {

@@ -280,13 +293,12 @@ export class HaMoreInfoClimateTemperature extends LitElement { .max=${this._max} .step=${this._step} .current=${this.stateObj.attributes.current_temperature} - .disabled=${this.stateObj!.state === UNAVAILABLE} @value-changed=${this._valueChanged} @value-changing=${this._valueChanging} >
-
${this._renderHvacAction()}
+
${this._renderLabel()}
${this._renderTargetTemperature(this._targetTemperature.value)}
@@ -299,7 +311,8 @@ export class HaMoreInfoClimateTemperature extends LitElement { if ( supportsTargetTemperatureRange && this._targetTemperature.low != null && - this._targetTemperature.high != null + this._targetTemperature.high != null && + this.stateObj.state !== UNAVAILABLE ) { return html`
-
${this._renderHvacAction()}
+
${this._renderLabel()}
`; } static get styles(): CSSResultGroup { - return css` - /* Layout */ - .container { - position: relative; - } - .info { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - pointer-events: none; - font-size: 16px; - line-height: 24px; - letter-spacing: 0.1px; - } - .info * { - margin: 0; - pointer-events: auto; - } - /* Elements */ - .temperature-container { - margin-bottom: 30px; - } - .temperature { - display: inline-flex; - font-size: 58px; - line-height: 64px; - letter-spacing: -0.25px; - margin: 0; - } - .temperature span { - display: inline-flex; - } - .temperature .unit { - font-size: 24px; - line-height: 40px; - } - .temperature .decimal { - font-size: 24px; - line-height: 40px; - align-self: flex-end; - margin-right: -18px; - } - .action-container { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - width: 200px; - height: 48px; - margin-bottom: 6px; - } - .action { - font-weight: 500; - text-align: center; - color: var(--action-color, inherit); - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden; - } - .dual { - display: flex; - flex-direction: row; - gap: 24px; - margin-bottom: 40px; - } + return [ + moreInfoControlCircularSliderStyle, + css` + /* Elements */ + .temperature-container { + margin-bottom: 30px; + } + .temperature { + display: inline-flex; + font-size: 58px; + line-height: 64px; + letter-spacing: -0.25px; + margin: 0; + } + .temperature span { + display: inline-flex; + } + .temperature .decimal { + font-size: 24px; + line-height: 32px; + align-self: flex-end; + width: 20px; + margin-bottom: 4px; + } + .temperature .unit { + font-size: 20px; + line-height: 24px; + align-self: flex-start; + margin-left: -20px; + width: 20px; + margin-top: 4px; + } - .dual button { - outline: none; - background: none; - color: inherit; - font-family: inherit; - -webkit-tap-highlight-color: transparent; - border: none; - opacity: 0.5; - padding: 0; - transition: - opacity 180ms ease-in-out, - transform 180ms ease-in-out; - cursor: pointer; - } - .dual button:focus-visible { - transform: scale(1.1); - } - .dual button.selected { - opacity: 1; - } - .buttons { - position: absolute; - bottom: 10px; - left: 0; - right: 0; - margin: 0 auto; - width: 120px; - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - } - .buttons ha-outlined-icon-button { - --md-outlined-icon-button-container-size: 48px; - --md-outlined-icon-button-icon-size: 24px; - } - /* Accessibility */ - .visually-hidden { - position: absolute; - overflow: hidden; - clip: rect(0 0 0 0); - height: 1px; - width: 1px; - margin: -1px; - padding: 0; - border: 0; - } - /* Slider */ - ha-control-circular-slider { - --control-circular-slider-color: var( - --main-color, - var(--disabled-color) - ); - --control-circular-slider-low-color: var( - --low-color, - var(--disabled-color) - ); - --control-circular-slider-high-color: var( - --high-color, - var(--disabled-color) - ); - } - ha-control-circular-slider::after { - display: block; - content: ""; - position: absolute; - top: -10%; - left: -10%; - right: -10%; - bottom: -10%; - background: radial-gradient( - 50% 50% at 50% 50%, - var(--action-color, transparent) 0%, - transparent 100% - ); - opacity: 0.15; - pointer-events: none; - } - `; + .dual { + display: flex; + flex-direction: row; + gap: 24px; + margin-bottom: 40px; + } + + .dual button { + outline: none; + background: none; + color: inherit; + font-family: inherit; + -webkit-tap-highlight-color: transparent; + border: none; + opacity: 0.5; + padding: 0; + transition: + opacity 180ms ease-in-out, + transform 180ms ease-in-out; + cursor: pointer; + } + .dual button:focus-visible { + transform: scale(1.1); + } + .dual button.selected { + opacity: 1; + } + /* Slider */ + ha-control-circular-slider { + --control-circular-slider-low-color: var( + --low-color, + var(--disabled-color) + ); + --control-circular-slider-high-color: var( + --high-color, + var(--disabled-color) + ); + } + `, + ]; } } diff --git a/src/dialogs/more-info/components/ha-more-info-control-circular-slider-style.ts b/src/dialogs/more-info/components/ha-more-info-control-circular-slider-style.ts new file mode 100644 index 0000000000..0e9d64c2d0 --- /dev/null +++ b/src/dialogs/more-info/components/ha-more-info-control-circular-slider-style.ts @@ -0,0 +1,97 @@ +import { css } from "lit"; + +export const moreInfoControlCircularSliderStyle = css` + /* Layout elements */ + .container { + position: relative; + } + .info { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + pointer-events: none; + font-size: 16px; + line-height: 24px; + letter-spacing: 0.1px; + } + .info * { + margin: 0; + pointer-events: auto; + } + /* Info elements */ + .label-container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 200px; + height: 48px; + margin-bottom: 6px; + } + .label { + font-weight: 500; + text-align: center; + color: var(--action-color, inherit); + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + } + .label.disabled { + color: var(--secondary-text-color); + } + + .buttons { + position: absolute; + bottom: 10px; + left: 0; + right: 0; + margin: 0 auto; + width: 120px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + } + .buttons ha-outlined-icon-button { + --md-outlined-icon-button-container-size: 48px; + --md-outlined-icon-button-icon-size: 24px; + } + /* Accessibility */ + .visually-hidden { + position: absolute; + overflow: hidden; + clip: rect(0 0 0 0); + height: 1px; + width: 1px; + margin: -1px; + padding: 0; + border: 0; + } + /* Slider */ + ha-control-circular-slider { + --control-circular-slider-color: var(--state-color, var(--disabled-color)); + } + ha-control-circular-slider::after { + display: block; + content: ""; + position: absolute; + top: -10%; + left: -10%; + right: -10%; + bottom: -10%; + background: radial-gradient( + 50% 50% at 50% 50%, + var(--action-color, transparent) 0%, + transparent 100% + ); + opacity: 0.15; + pointer-events: none; + } +`; diff --git a/src/dialogs/more-info/components/humidifier/ha-more-info-humidifier-humidity.ts b/src/dialogs/more-info/components/humidifier/ha-more-info-humidifier-humidity.ts index 3f9bfaefb7..53ea757fa5 100644 --- a/src/dialogs/more-info/components/humidifier/ha-more-info-humidifier-humidity.ts +++ b/src/dialogs/more-info/components/humidifier/ha-more-info-humidifier-humidity.ts @@ -19,6 +19,7 @@ import { HumidifierEntityDeviceClass, } from "../../../../data/humidifier"; import { HomeAssistant } from "../../../../types"; +import { moreInfoControlCircularSliderStyle } from "../ha-more-info-control-circular-slider-style"; @customElement("ha-more-info-humidifier-humidity") export class HaMoreInfoHumidifierHumidity extends LitElement { @@ -80,7 +81,15 @@ export class HaMoreInfoHumidifierHumidity extends LitElement { this._debouncedCallService(); } - private _renderAction() { + private _renderLabel() { + if (this.stateObj.state === UNAVAILABLE) { + return html` +

+ ${this.hass.formatEntityState(this.stateObj, UNAVAILABLE)} +

+ `; + } + const action = this.stateObj.attributes.action; const actionLabel = computeAttributeValueDisplay( @@ -93,7 +102,7 @@ export class HaMoreInfoHumidifierHumidity extends LitElement { ) as string; return html` -

+

${action && ["drying", "humidifying"].includes(action) ? this.hass.localize( "ui.dialogs.more_info_control.humidifier.target_label", @@ -145,7 +154,7 @@ export class HaMoreInfoHumidifierHumidity extends LitElement { } protected render() { - const mainColor = stateColorCss(this.stateObj); + const stateColor = stateColorCss(this.stateObj); const active = stateActive(this.stateObj); const action = this.stateObj.attributes.action; @@ -161,7 +170,7 @@ export class HaMoreInfoHumidifierHumidity extends LitElement { const targetHumidity = this._targetHumidity; const currentHumidity = this.stateObj.attributes.current_humidity; - if (targetHumidity != null) { + if (targetHumidity != null && this.stateObj.state !== UNAVAILABLE) { const inverted = this.stateObj.attributes.device_class === HumidifierEntityDeviceClass.DEHUMIDIFIER; @@ -170,7 +179,7 @@ export class HaMoreInfoHumidifierHumidity extends LitElement {

@@ -181,13 +190,12 @@ export class HaMoreInfoHumidifierHumidity extends LitElement { .max=${this._max} .step=${this._step} .current=${currentHumidity} - .disabled=${this.stateObj.state === UNAVAILABLE} @value-changed=${this._valueChanged} @value-changing=${this._valueChanging} >
-
${this._renderAction()}
+
${this._renderLabel()}
${this._renderTarget(targetHumidity)}
@@ -212,118 +220,33 @@ export class HaMoreInfoHumidifierHumidity extends LitElement { disabled > +
+
${this._renderLabel()}
+
`; } static get styles(): CSSResultGroup { - return css` - /* Layout */ - .container { - position: relative; - } - .info { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - pointer-events: none; - font-size: 16px; - line-height: 24px; - letter-spacing: 0.1px; - } - .info * { - margin: 0; - pointer-events: auto; - } - /* Elements */ - .target-container { - margin-bottom: 30px; - } - .target .value { - font-size: 56px; - line-height: 1; - letter-spacing: -0.25px; - } - .target .value .unit { - font-size: 0.4em; - line-height: 1; - margin-left: 2px; - } - .action-container { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - width: 200px; - height: 48px; - margin-bottom: 6px; - } - .action { - font-weight: 500; - text-align: center; - color: var(--action-color, inherit); - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden; - } - .buttons { - position: absolute; - bottom: 10px; - left: 0; - right: 0; - margin: 0 auto; - width: 120px; - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - } - .buttons ha-outlined-icon-button { - --md-outlined-icon-button-container-size: 48px; - --md-outlined-icon-button-icon-size: 24px; - } - /* Accessibility */ - .visually-hidden { - position: absolute; - overflow: hidden; - clip: rect(0 0 0 0); - height: 1px; - width: 1px; - margin: -1px; - padding: 0; - border: 0; - } - /* Slider */ - ha-control-circular-slider { - --control-circular-slider-color: var( - --main-color, - var(--disabled-color) - ); - } - ha-control-circular-slider::after { - display: block; - content: ""; - position: absolute; - top: -10%; - left: -10%; - right: -10%; - bottom: -10%; - background: radial-gradient( - 50% 50% at 50% 50%, - var(--action-color, transparent) 0%, - transparent 100% - ); - opacity: 0.15; - pointer-events: none; - } - `; + return [ + moreInfoControlCircularSliderStyle, + css` + /* Elements */ + .target-container { + margin-bottom: 30px; + } + .target .value { + font-size: 58px; + line-height: 1; + letter-spacing: -0.25px; + } + .target .value .unit { + font-size: 0.4em; + line-height: 1; + margin-left: 2px; + } + `, + ]; } } diff --git a/src/dialogs/more-info/components/water_heater/ha-more-info-water_heater-temperature.ts b/src/dialogs/more-info/components/water_heater/ha-more-info-water_heater-temperature.ts index 29a40a23f4..a23d89fc79 100644 --- a/src/dialogs/more-info/components/water_heater/ha-more-info-water_heater-temperature.ts +++ b/src/dialogs/more-info/components/water_heater/ha-more-info-water_heater-temperature.ts @@ -23,6 +23,7 @@ import { WaterHeaterEntityFeature, } from "../../../../data/water_heater"; import { HomeAssistant } from "../../../../types"; +import { moreInfoControlCircularSliderStyle } from "../ha-more-info-control-circular-slider-style"; @customElement("ha-more-info-water_heater-temperature") export class HaMoreInfoWaterHeaterTemperature extends LitElement { @@ -88,8 +89,16 @@ export class HaMoreInfoWaterHeaterTemperature extends LitElement { } private _renderLabel() { + if (this.stateObj.state === UNAVAILABLE) { + return html` +

+ ${this.hass.formatEntityState(this.stateObj, UNAVAILABLE)} +

+ `; + } + return html` -

+

${this.hass.localize( "ui.dialogs.more_info_control.water_heater.target" )} @@ -153,14 +162,18 @@ export class HaMoreInfoWaterHeaterTemperature extends LitElement { WaterHeaterEntityFeature.TARGET_TEMPERATURE ); - const mainColor = stateColorCss(this.stateObj); + const stateColor = stateColorCss(this.stateObj); - if (supportsTargetTemperature && this._targetTemperature != null) { + if ( + supportsTargetTemperature && + this._targetTemperature != null && + this.stateObj.state !== UNAVAILABLE + ) { return html`

-
${this._renderLabel()}
+
${this._renderLabel()}
${this._renderTargetTemperature(this._targetTemperature)}
@@ -195,128 +207,48 @@ export class HaMoreInfoWaterHeaterTemperature extends LitElement { disabled > +
+
${this._renderLabel()}
+
`; } static get styles(): CSSResultGroup { - return css` - /* Layout */ - .container { - position: relative; - } - .info { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - pointer-events: none; - font-size: 16px; - line-height: 24px; - letter-spacing: 0.1px; - } - .info * { - margin: 0; - pointer-events: auto; - } - /* Elements */ - .temperature-container { - margin-bottom: 30px; - } - .temperature { - display: inline-flex; - font-size: 58px; - line-height: 64px; - letter-spacing: -0.25px; - margin: 0; - } - .temperature span { - display: inline-flex; - } - .temperature .unit { - font-size: 24px; - line-height: 40px; - } - .temperature .decimal { - font-size: 24px; - line-height: 40px; - align-self: flex-end; - margin-right: -18px; - } - .action-container { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - width: 200px; - height: 48px; - margin-bottom: 6px; - } - .action { - font-weight: 500; - text-align: center; - color: var(--action-color, inherit); - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden; - } - .buttons { - position: absolute; - bottom: 10px; - left: 0; - right: 0; - margin: 0 auto; - width: 120px; - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - } - .buttons ha-outlined-icon-button { - --md-outlined-icon-button-container-size: 48px; - --md-outlined-icon-button-icon-size: 24px; - } - /* Accessibility */ - .visually-hidden { - position: absolute; - overflow: hidden; - clip: rect(0 0 0 0); - height: 1px; - width: 1px; - margin: -1px; - padding: 0; - border: 0; - } - /* Slider */ - ha-control-circular-slider { - --control-circular-slider-color: var( - --main-color, - var(--disabled-color) - ); - } - ha-control-circular-slider::after { - display: block; - content: ""; - position: absolute; - top: -10%; - left: -10%; - right: -10%; - bottom: -10%; - background: radial-gradient( - 50% 50% at 50% 50%, - var(--action-color, transparent) 0%, - transparent 100% - ); - opacity: 0.15; - pointer-events: none; - } - `; + return [ + moreInfoControlCircularSliderStyle, + css` + /* Elements */ + .temperature-container { + margin-bottom: 30px; + } + .temperature { + display: inline-flex; + font-size: 58px; + line-height: 64px; + letter-spacing: -0.25px; + margin: 0; + } + .temperature span { + display: inline-flex; + } + .temperature .decimal { + font-size: 24px; + line-height: 32px; + align-self: flex-end; + width: 20px; + margin-bottom: 4px; + } + .temperature .unit { + font-size: 20px; + line-height: 24px; + align-self: flex-start; + margin-left: -20px; + width: 20px; + margin-top: 4px; + } + `, + ]; } } diff --git a/src/dialogs/more-info/controls/more-info-climate.ts b/src/dialogs/more-info/controls/more-info-climate.ts index 05323b45c8..9be1110210 100644 --- a/src/dialogs/more-info/controls/more-info-climate.ts +++ b/src/dialogs/more-info/controls/more-info-climate.ts @@ -170,6 +170,7 @@ class MoreInfoClimate extends LitElement { - + - + - + ${this.hass.localize("state.default.on")} - + - + ${computeStateDisplay( this.hass.localize, this.stateObj, @@ -110,8 +113,8 @@ class MoreInfoHumidifier extends LitElement { this.hass.entities, "off" )} - - + + ${computeStateDisplay( this.hass.localize, this.stateObj, @@ -120,7 +123,7 @@ class MoreInfoHumidifier extends LitElement { this.hass.entities, "on" )} - + ${supportModes @@ -128,6 +131,7 @@ class MoreInfoHumidifier extends LitElement { - + ${this.hass.localize("state.default.on")} - + Date: Tue, 15 Aug 2023 05:03:50 -0700 Subject: [PATCH 064/182] Fix sort/filter on statistics issues (#17545) --- .../statistics/developer-tools-statistics.ts | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/panels/developer-tools/statistics/developer-tools-statistics.ts b/src/panels/developer-tools/statistics/developer-tools-statistics.ts index 797acff710..3ed66f9f5b 100644 --- a/src/panels/developer-tools/statistics/developer-tools-statistics.ts +++ b/src/panels/developer-tools/statistics/developer-tools-statistics.ts @@ -5,6 +5,7 @@ import { css, CSSResultGroup, html, LitElement } from "lit"; import { customElement, property, state } from "lit/decorators"; import memoizeOne from "memoize-one"; import { fireEvent } from "../../../common/dom/fire_event"; +import { LocalizeFunc } from "../../../common/translations/localize"; import { computeStateName } from "../../../common/entity/compute_state_name"; import "../../../components/data-table/ha-data-table"; import type { DataTableColumnContainer } from "../../../components/data-table/ha-data-table"; @@ -42,6 +43,7 @@ type StatisticData = StatisticsMetaData & { type DisplayedStatisticData = StatisticData & { displayName: string; + issues_string?: string; }; @customElement("developer-tools-statistics") @@ -59,17 +61,26 @@ class HaPanelDevStatistics extends SubscribeMixin(LitElement) { } private _displayData = memoizeOne( - (data: StatisticData[]): DisplayedStatisticData[] => + (data: StatisticData[], localize: LocalizeFunc): DisplayedStatisticData[] => data.map((item) => ({ ...item, displayName: item.state ? computeStateName(item.state) : item.name || item.statistic_id, + issues_string: item.issues + ?.map( + (issue) => + localize( + `ui.panel.developer-tools.tabs.statistics.issues.${issue.type}`, + issue.data + ) || issue.type + ) + .join(" "), })) ); private _columns = memoizeOne( - (localize): DataTableColumnContainer => ({ + (localize: LocalizeFunc): DataTableColumnContainer => ({ displayName: { title: localize( "ui.panel.developer-tools.tabs.statistics.data_table.name" @@ -104,7 +115,7 @@ class HaPanelDevStatistics extends SubscribeMixin(LitElement) { filterable: true, width: "10%", }, - issues: { + issues_string: { title: localize( "ui.panel.developer-tools.tabs.statistics.data_table.issue" ), @@ -112,16 +123,9 @@ class HaPanelDevStatistics extends SubscribeMixin(LitElement) { filterable: true, direction: "asc", width: "30%", - template: (issues) => - html`${issues - ? issues.map( - (issue) => - localize( - `ui.panel.developer-tools.tabs.statistics.issues.${issue.type}`, - issue.data - ) || issue.type - ) - : localize("ui.panel.developer-tools.tabs.statistics.no_issue")}`, + template: (issues_string) => + html`${issues_string ?? + localize("ui.panel.developer-tools.tabs.statistics.no_issue")}`, }, fix: { title: "", @@ -164,7 +168,7 @@ class HaPanelDevStatistics extends SubscribeMixin(LitElement) { Date: Tue, 15 Aug 2023 14:04:23 +0200 Subject: [PATCH 065/182] Fix the mailbox (#17582) --- src/panels/mailbox/ha-panel-mailbox.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/panels/mailbox/ha-panel-mailbox.js b/src/panels/mailbox/ha-panel-mailbox.js index 7cb4af0b20..a156196d42 100644 --- a/src/panels/mailbox/ha-panel-mailbox.js +++ b/src/panels/mailbox/ha-panel-mailbox.js @@ -207,7 +207,8 @@ class HaPanelMailbox extends EventsMixin(LocalizeMixin(PolymerElement)) { for (let i = 0; i < arrayLength; i++) { const datetime = formatDateTime( new Date(values[i].info.origtime * 1000), - this.hass.locale + this.hass.locale, + this.hass.config ); platformItems.push({ timestamp: datetime, From 6dff2f691e9e77f27c578042a27da5d48c2f682d Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Tue, 15 Aug 2023 05:18:35 -0700 Subject: [PATCH 066/182] Hide alert toggle when idle in more-info (#17563) --- src/common/const.ts | 1 + src/state-summary/state-card-alert.ts | 87 +++++++++++++++++++++++++ src/state-summary/state-card-content.js | 1 + 3 files changed, 89 insertions(+) create mode 100755 src/state-summary/state-card-alert.ts diff --git a/src/common/const.ts b/src/common/const.ts index e5c36f1eee..399654a10b 100644 --- a/src/common/const.ts +++ b/src/common/const.ts @@ -176,6 +176,7 @@ export const FIXED_DEVICE_CLASS_ICONS = { /** Domains that have a state card. */ export const DOMAINS_WITH_CARD = [ + "alert", "button", "climate", "cover", diff --git a/src/state-summary/state-card-alert.ts b/src/state-summary/state-card-alert.ts new file mode 100755 index 0000000000..151637490b --- /dev/null +++ b/src/state-summary/state-card-alert.ts @@ -0,0 +1,87 @@ +import type { HassEntity } from "home-assistant-js-websocket"; +import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; +import { customElement, property } from "lit/decorators"; +import { computeStateDisplay } from "../common/entity/compute_state_display"; +import { computeRTL } from "../common/util/compute_rtl"; +import "../components/entity/state-info"; +import { haStyle } from "../resources/styles"; +import { stateActive } from "../common/entity/state_active"; +import type { HomeAssistant } from "../types"; + +@customElement("state-card-alert") +export class StateCardAlert extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @property({ attribute: false }) public stateObj!: HassEntity; + + @property({ type: Boolean }) public inDialog = false; + + // property used only in CSS + @property({ type: Boolean, reflect: true }) public rtl = false; + + protected render(): TemplateResult { + return html` +
+ + +
+ ${stateActive(this.stateObj) + ? html`` + : computeStateDisplay( + this.hass!.localize, + this.stateObj, + this.hass.locale, + this.hass.config, + this.hass.entities + )} +
+
+ `; + } + + protected updated(changedProps) { + super.updated(changedProps); + if (!changedProps.has("hass")) { + return; + } + + const oldHass = changedProps.get("hass") as HomeAssistant | undefined; + if (!oldHass || oldHass.language !== this.hass.language) { + this.rtl = computeRTL(this.hass); + } + } + + static get styles(): CSSResultGroup { + return [ + haStyle, + css` + state-info { + flex: 1 1 auto; + min-width: 0; + } + .state { + color: var(--primary-text-color); + margin-inline-start: 16px; + margin-inline-end: initial; + text-align: var(--float-end, right); + flex: 0 0 auto; + overflow-wrap: break-word; + display: flex; + align-items: center; + direction: ltr; + } + ha-entity-toggle { + margin: -4px -16px -4px 0; + padding: 4px 16px; + } + `, + ]; + } +} diff --git a/src/state-summary/state-card-content.js b/src/state-summary/state-card-content.js index 4171bd447a..d62703f97c 100644 --- a/src/state-summary/state-card-content.js +++ b/src/state-summary/state-card-content.js @@ -2,6 +2,7 @@ import { PolymerElement } from "@polymer/polymer/polymer-element"; import dynamicContentUpdater from "../common/dom/dynamic_content_updater"; import { stateCardType } from "../common/entity/state_card_type"; +import "./state-card-alert"; import "./state-card-button"; import "./state-card-climate"; import "./state-card-humidifier"; From f4d575f456e0dc6c8c5c24ee4554d8fef43c4178 Mon Sep 17 00:00:00 2001 From: Bruce Fitzsimons Date: Tue, 15 Aug 2023 22:20:35 +1000 Subject: [PATCH 067/182] Improve grammar for single periodic second/minute/hour (#17572) --- src/data/automation_i18n.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/data/automation_i18n.ts b/src/data/automation_i18n.ts index e06c1bd4ad..f0bf51c55c 100644 --- a/src/data/automation_i18n.ts +++ b/src/data/automation_i18n.ts @@ -425,7 +425,7 @@ const tryDescribeTrigger = ( return "Invalid Time Pattern Seconds"; } - if (seconds_all) { + if (seconds_all || (seconds_interval && seconds === 1)) { result += "every second of "; } else if (seconds_interval) { result += `every ${seconds} seconds of `; @@ -454,7 +454,7 @@ const tryDescribeTrigger = ( return "Invalid Time Pattern Minutes"; } - if (minutes_all) { + if (minutes_all || (minutes_interval && minutes === 1)) { result += "every minute of "; } else if (minutes_interval) { result += `every ${minutes} minutes of `; @@ -491,7 +491,7 @@ const tryDescribeTrigger = ( return "Invalid Time Pattern Hours"; } - if (hours_all) { + if (hours_all || (hours_interval && hours === 1)) { result += "every hour"; } else if (hours_interval) { result += `every ${hours} hours`; From cba246fc7f9916c15987a117f342607f3425bd2f Mon Sep 17 00:00:00 2001 From: Steve Repsher Date: Tue, 15 Aug 2023 11:10:12 -0400 Subject: [PATCH 068/182] Fix source URLs in source maps (#17585) --- build-scripts/bundle.cjs | 2 +- build-scripts/webpack.cjs | 31 ++++++++++++++++++------------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/build-scripts/bundle.cjs b/build-scripts/bundle.cjs index cb9535c739..e5b41979ca 100644 --- a/build-scripts/bundle.cjs +++ b/build-scripts/bundle.cjs @@ -8,7 +8,7 @@ module.exports.sourceMapURL = () => { const ref = env.version().endsWith("dev") ? process.env.GITHUB_SHA || "dev" : env.version(); - return `https://raw.githubusercontent.com/home-assistant/frontend/${ref}`; + return `https://raw.githubusercontent.com/home-assistant/frontend/${ref}/`; }; // Files from NPM Packages that should not be imported diff --git a/build-scripts/webpack.cjs b/build-scripts/webpack.cjs index c5f8334149..13b7c75c6a 100644 --- a/build-scripts/webpack.cjs +++ b/build-scripts/webpack.cjs @@ -1,5 +1,6 @@ -const webpack = require("webpack"); +const { existsSync } = require("fs"); const path = require("path"); +const webpack = require("webpack"); const TerserPlugin = require("terser-webpack-plugin"); const { WebpackManifestPlugin } = require("webpack-manifest-plugin"); const log = require("fancy-log"); @@ -191,19 +192,23 @@ const createWebpackConfig = ({ // Since production source maps don't include sources, we need to point to them elsewhere // For dependencies, just provide the path (no source in browser) // Otherwise, point to the raw code on GitHub for browser to load - devtoolModuleFilenameTemplate: - !isTestBuild && isProdBuild - ? (info) => { - const sourcePath = info.resourcePath.replace(/^\.\//, ""); - if ( - sourcePath.startsWith("node_modules") || - sourcePath.startsWith("webpack") - ) { - return `no-source/${sourcePath}`; + ...Object.fromEntries( + ["", "Fallback"].map((v) => [ + `devtool${v}ModuleFilenameTemplate`, + !isTestBuild && isProdBuild + ? (info) => { + if ( + !path.isAbsolute(info.absoluteResourcePath) || + !existsSync(info.resourcePath) || + info.resourcePath.startsWith("./node_modules") + ) { + return new URL(info.resourcePath, "webpack://frontend/").href; + } + return new URL(info.resourcePath, bundle.sourceMapURL()).href; } - return `${bundle.sourceMapURL()}/${sourcePath}`; - } - : undefined, + : undefined, + ]) + ), }, experiments: { outputModule: true, From 88ff4c2fa8b3003aea975566c97ca0844784f63a Mon Sep 17 00:00:00 2001 From: Steve Repsher Date: Tue, 15 Aug 2023 13:48:51 -0400 Subject: [PATCH 069/182] Fix synchronous loading for ES5 build (#17174) --- src/html/_js_base.html.template | 41 ++++++++++++++----------- src/html/_script_load_es5.html.template | 2 +- src/html/index.html.template | 2 +- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/src/html/_js_base.html.template b/src/html/_js_base.html.template index e2fc752b4a..06ae256045 100644 --- a/src/html/_js_base.html.template +++ b/src/html/_js_base.html.template @@ -1,18 +1,23 @@ - \ No newline at end of file + diff --git a/src/html/_script_load_es5.html.template b/src/html/_script_load_es5.html.template index 68458ce9b4..cb72d05e5a 100644 --- a/src/html/_script_load_es5.html.template +++ b/src/html/_script_load_es5.html.template @@ -9,7 +9,7 @@ } <% } else { %> <% for (const entry of es5EntryJS) { %> - _ls("<%= entry %>"); + _ls("<%= entry %>", true); <% } %> <% } %> } diff --git a/src/html/index.html.template b/src/html/index.html.template index 977da8f617..a74297f024 100644 --- a/src/html/index.html.template +++ b/src/html/index.html.template @@ -112,7 +112,7 @@ } <% } else { %> <% for (const entry of es5EntryJS) { %> - _ls("<%= entry %>"); + _ls("<%= entry %>", true); <% } %> <% } %> } From 9f0b9782a0600de8579023b8b9aafd5ef911d9e1 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 16 Aug 2023 11:49:53 +0200 Subject: [PATCH 070/182] Round altitude from GPS result (#17591) --- src/onboarding/onboarding-location.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/onboarding/onboarding-location.ts b/src/onboarding/onboarding-location.ts index e75a64b100..b58137d19b 100644 --- a/src/onboarding/onboarding-location.ts +++ b/src/onboarding/onboarding-location.ts @@ -376,7 +376,7 @@ class OnboardingLocation extends LitElement { ); this._location = [result.coords.latitude, result.coords.longitude]; if (result.coords.altitude) { - this._elevation = String(result.coords.altitude); + this._elevation = String(Math.round(result.coords.altitude)); } try { await this._reverseGeocode(); From 2c17d2fead2e6a47360dacb279cc483f9b8355e2 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 16 Aug 2023 11:52:42 +0200 Subject: [PATCH 071/182] Allow to set default router for thread network (#17584) * Allow to set default router for thread network * Update thread-config-panel.ts --- src/data/thread.ts | 11 ++ .../thread/thread-config-panel.ts | 175 ++++++++++++------ src/translations/en.json | 2 + 3 files changed, 131 insertions(+), 57 deletions(-) diff --git a/src/data/thread.ts b/src/data/thread.ts index 2ff0e8b145..cb1c1fa1da 100644 --- a/src/data/thread.ts +++ b/src/data/thread.ts @@ -103,3 +103,14 @@ export const setPreferredThreadDataSet = ( type: "thread/set_preferred_dataset", dataset_id, }); + +export const setPreferredBorderAgent = ( + hass: HomeAssistant, + dataset_id: string, + border_agent_id: string +): Promise => + hass.callWS({ + type: "thread/set_preferred_border_agent_id", + dataset_id, + border_agent_id, + }); diff --git a/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts b/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts index ef6ede8662..8faae7bc79 100644 --- a/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts +++ b/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts @@ -5,31 +5,35 @@ import { mdiDevices, mdiDotsVertical, mdiInformationOutline, + mdiStar, } from "@mdi/js"; -import { css, html, LitElement, PropertyValues, TemplateResult } from "lit"; +import { LitElement, PropertyValues, TemplateResult, css, html } from "lit"; import { customElement, property, state } from "lit/decorators"; import memoizeOne from "memoize-one"; import { isComponentLoaded } from "../../../../../common/config/is_component_loaded"; import { stringCompare } from "../../../../../common/string/compare"; import { extractSearchParam } from "../../../../../common/url/search-params"; +import "../../../../../components/ha-button-menu"; +import "../../../../../components/ha-list-item"; import "../../../../../components/ha-card"; import { getSignedPath } from "../../../../../data/auth"; import { getConfigEntryDiagnosticsDownloadUrl } from "../../../../../data/diagnostics"; import { - getOTBRInfo, OTBRCreateNetwork, OTBRInfo, OTBRSetChannel, OTBRSetNetwork, + getOTBRInfo, } from "../../../../../data/otbr"; import { + ThreadDataSet, + ThreadRouter, addThreadDataSet, listThreadDataSets, removeThreadDataSet, + setPreferredBorderAgent, setPreferredThreadDataSet, subscribeDiscoverThreadRouters, - ThreadDataSet, - ThreadRouter, } from "../../../../../data/thread"; import { showConfigFlowDialog } from "../../../../../dialogs/config-flow/show-dialog-config-flow"; import { @@ -160,35 +164,47 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) { })}
- ${network.routers.map( - (router) => - html` - ${router.brand} - ${router.model_name || - router.server?.replace(".local.", "") || - ""} - ${router.server} - ${router.extended_address === this._otbrInfo?.extended_address - ? html` { + const showOverflow = + ("dataset" in network && router.border_agent_id) || + router.extended_address === this._otbrInfo?.extended_address; + return html` + ${router.brand} + ${router.model_name || + router.server?.replace(".local.", "") || + ""} + ${router.server} + ${showOverflow + ? html`${network.dataset && + router.border_agent_id === + network.dataset.preferred_border_agent_id + ? html` + ${this.hass.localize( + "ui.panel.config.thread.default_router" + )} + ` + : ""} + ${this.hass.localize( - "ui.panel.config.thread.reset_border_router" - )}${this.hass.localize( - "ui.panel.config.thread.change_channel" - )}${network.dataset?.preferred - ? "" - : html`${this.hass.localize( - "ui.panel.config.thread.add_to_my_network" - )}`}` - : ""} - ` - )}` + > + ${network.dataset && router.border_agent_id + ? html` + ${router.border_agent_id === + network.dataset.preferred_border_agent_id + ? this.hass.localize( + "ui.panel.config.thread.default_router" + ) + : this.hass.localize( + "ui.panel.config.thread.set_default_router" + )} + ` + : ""} + ${router.extended_address === + this._otbrInfo?.extended_address + ? html` + ${this.hass.localize( + "ui.panel.config.thread.reset_border_router" + )} + + ${this.hass.localize( + "ui.panel.config.thread.change_channel" + )} + ${network.dataset?.preferred + ? "" + : html` + ${this.hass.localize( + "ui.panel.config.thread.add_to_my_network" + )} + `}` + : ""} + ` + : ""} + `; + })}` : html`
${network.dataset?.extended_pan_id && @@ -382,14 +417,23 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) { } private _handleRouterAction(ev: CustomEvent) { - switch (ev.detail.index) { + const network = (ev.currentTarget as any).network as ThreadNetwork; + const router = (ev.currentTarget as any).router as ThreadRouter; + const index = + network.dataset && router.border_agent_id + ? Number(ev.detail.index) + : Number(ev.detail.index) + 1; + switch (index) { case 0: - this._resetBorderRouter(); + this._setPreferredBorderAgent(network.dataset!, router); break; case 1: - this._changeChannel(); + this._resetBorderRouter(); break; case 2: + this._changeChannel(); + break; + case 3: this._setDataset(); break; } @@ -452,6 +496,19 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) { this._refresh(); } + private async _setPreferredBorderAgent( + dataset: ThreadDataSet, + router: ThreadRouter + ) { + const datasetId = dataset.dataset_id; + const borderAgentId = router.border_agent_id; + if (!borderAgentId) { + return; + } + await setPreferredBorderAgent(this.hass, datasetId, borderAgentId); + this._refresh(); + } + private async _addTLV() { const tlv = await showPromptDialog(this, { title: this.hass.localize("ui.panel.config.thread.add_dataset"), @@ -571,11 +628,15 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) { direction: ltr; } ha-list-item.router { + --mdc-list-item-meta-size: auto; + --mdc-list-item-meta-display: flex; --mdc-list-side-padding: 16px; - --mdc-list-item-meta-size: 48px; cursor: default; overflow: visible; } + ha-svg-icon[slot="meta"] { + width: 24px; + } ha-button-menu a { text-decoration: none; } diff --git a/src/translations/en.json b/src/translations/en.json index 116d8f3238..83e28fc48c 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -3707,6 +3707,8 @@ "add_open_thread_border_router": "Add an OpenThread border router", "reset_border_router": "Reset border router", "add_to_my_network": "Add to preferred network", + "default_router": "Default router for network", + "set_default_router": "Set as default router for network", "no_routers_otbr_network": "No border routers where found, maybe the border router is not configured correctly. You can try to reset it to the factory settings.", "add_dataset_from_tlv": "Add dataset from TLV", "add_dataset": "Add Thread dataset", From bd5264308f52ea065a8899a5b0481804c6de0de9 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Wed, 16 Aug 2023 12:47:35 +0200 Subject: [PATCH 072/182] Sync selected icon with selected value in new select component (#17573) --- src/components/ha-control-select-menu.ts | 27 ++++++++++++-- .../more-info/controls/more-info-climate.ts | 25 +++---------- .../more-info/controls/more-info-fan.ts | 11 ++---- .../controls/more-info-humidifier.ts | 35 ++++++++----------- .../controls/more-info-water_heater.ts | 12 ++----- 5 files changed, 46 insertions(+), 64 deletions(-) diff --git a/src/components/ha-control-select-menu.ts b/src/components/ha-control-select-menu.ts index 40ce91d979..ce119fcba1 100644 --- a/src/components/ha-control-select-menu.ts +++ b/src/components/ha-control-select-menu.ts @@ -13,6 +13,10 @@ import { classMap } from "lit/directives/class-map"; import { ifDefined } from "lit/directives/if-defined"; import { debounce } from "../common/util/debounce"; import { nextRender } from "../common/util/render-status"; +import "./ha-icon"; +import type { HaIcon } from "./ha-icon"; +import "./ha-svg-icon"; +import type { HaSvgIcon } from "./ha-svg-icon"; @customElement("ha-control-select-menu") export class HaControlSelectMenu extends SelectBase { @@ -66,9 +70,7 @@ export class HaControlSelectMenu extends SelectBase { @touchend=${this.handleRippleDeactivate} @touchcancel=${this.handleRippleDeactivate} > -
- -
+ ${this.renderIcon()}

${this.label}

${this.selectedText @@ -84,6 +86,25 @@ export class HaControlSelectMenu extends SelectBase { `; } + private renderIcon() { + const index = this.mdcFoundation?.getSelectedIndex(); + const items = this.menuElement?.items ?? []; + const item = index != null ? items[index] : undefined; + const icon = + item?.querySelector("[slot='graphic']") ?? + (null as HaSvgIcon | HaIcon | null); + + return html` +
+ ${icon && "path" in icon + ? html`` + : icon && "icon" in icon + ? html`` + : html``} +
+ `; + } + protected onFocus() { this.handleRippleFocus(); super.onFocus(); diff --git a/src/dialogs/more-info/controls/more-info-climate.ts b/src/dialogs/more-info/controls/more-info-climate.ts index 9be1110210..95c6e37237 100644 --- a/src/dialogs/more-info/controls/more-info-climate.ts +++ b/src/dialogs/more-info/controls/more-info-climate.ts @@ -29,7 +29,6 @@ import "../../../components/ha-switch"; import { ClimateEntity, ClimateEntityFeature, - HvacMode, compareClimateHvacModes, computeFanModeIcon, computeHvacModeIcon, @@ -176,11 +175,7 @@ class MoreInfoClimate extends LitElement { @selected=${this._handleOperationModeChanged} @closed=${stopPropagation} > - + ${stateObj.attributes.hvac_modes .concat() .sort(compareClimateHvacModes) @@ -212,9 +207,7 @@ class MoreInfoClimate extends LitElement { > ${stateObj.attributes.preset_modes!.map( (mode) => html` @@ -248,12 +241,7 @@ class MoreInfoClimate extends LitElement { @selected=${this._handleFanModeChanged} @closed=${stopPropagation} > - + ${stateObj.attributes.fan_modes!.map( (mode) => html` @@ -286,12 +274,7 @@ class MoreInfoClimate extends LitElement { @selected=${this._handleSwingmodeChanged} @closed=${stopPropagation} > - + ${stateObj.attributes.swing_modes!.map( (mode) => html` diff --git a/src/dialogs/more-info/controls/more-info-fan.ts b/src/dialogs/more-info/controls/more-info-fan.ts index dea7d2e0a2..dca3fb00dc 100644 --- a/src/dialogs/more-info/controls/more-info-fan.ts +++ b/src/dialogs/more-info/controls/more-info-fan.ts @@ -239,12 +239,7 @@ class MoreInfoFan extends LitElement { @selected=${this._handleDirection} @closed=${stopPropagation} > - + ${stateObj.attributes.available_modes!.map( (mode) => html` @@ -196,6 +193,19 @@ class MoreInfoHumidifier extends LitElement { ); } + private _handleModeChanged(ev) { + const newVal = ev.target.value || null; + this._mode = newVal; + this._callServiceHelper( + this.stateObj!.attributes.mode, + newVal, + "set_mode", + { + mode: newVal, + } + ); + } + private async _callServiceHelper( oldVal: unknown, newVal: unknown, @@ -234,23 +244,6 @@ class MoreInfoHumidifier extends LitElement { } } - private _handleModeChanged(ev) { - ev.stopPropagation(); - ev.preventDefault(); - - const index = ev.detail.index; - const newVal = this.stateObj!.attributes.available_modes![index]; - const oldVal = this._mode; - - if (!newVal || oldVal === newVal) return; - - this._mode = newVal; - this.hass.callService("humidifier", "set_mode", { - entity_id: this.stateObj!.entity_id, - mode: newVal, - }); - } - static get styles(): CSSResultGroup { return [ moreInfoControlStyle, diff --git a/src/dialogs/more-info/controls/more-info-water_heater.ts b/src/dialogs/more-info/controls/more-info-water_heater.ts index 3441d5b41f..f4dec22235 100644 --- a/src/dialogs/more-info/controls/more-info-water_heater.ts +++ b/src/dialogs/more-info/controls/more-info-water_heater.ts @@ -7,7 +7,6 @@ import { formatNumber } from "../../../common/number/format_number"; import "../../../components/ha-control-select-menu"; import "../../../components/ha-list-item"; import { - OperationMode, WaterHeaterEntity, WaterHeaterEntityFeature, compareWaterHeaterOperationMode, @@ -86,9 +85,7 @@ class MoreInfoWaterHeater extends LitElement { > ${stateObj.attributes.operation_list .concat() @@ -121,12 +118,7 @@ class MoreInfoWaterHeater extends LitElement { @selected=${this._handleAwayModeChanged} @closed=${stopPropagation} > - + Date: Wed, 16 Aug 2023 14:25:29 +0200 Subject: [PATCH 073/182] Change wording and icon for default thread router (#17593) --- .../integration-panels/thread/thread-config-panel.ts | 9 +++++---- src/translations/en.json | 5 +++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts b/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts index 8faae7bc79..a9936b0293 100644 --- a/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts +++ b/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts @@ -5,7 +5,7 @@ import { mdiDevices, mdiDotsVertical, mdiInformationOutline, - mdiStar, + mdiCellphoneKey, } from "@mdi/js"; import { LitElement, PropertyValues, TemplateResult, css, html } from "lit"; import { customElement, property, state } from "lit/decorators"; @@ -195,11 +195,12 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) { ? html`${network.dataset && router.border_agent_id === network.dataset.preferred_border_agent_id - ? html` - ${this.hass.localize( + ? html`` + >` : ""} Date: Wed, 16 Aug 2023 14:56:24 +0200 Subject: [PATCH 074/182] Add hvac modes to tile card (#17592) --- src/common/translations/entity-state.ts | 31 ++-- src/data/climate.ts | 19 +- .../more-info/controls/more-info-climate.ts | 6 +- .../create-tile-feature-element.ts | 2 + .../hui-alarm-modes-tile-feature-editor.ts | 6 +- ...-climate-hvac-modes-tile-feature-editor.ts | 99 +++++++++++ .../hui-tile-card-features-editor.ts | 10 +- .../hui-alarm-modes-tile-feature.ts | 8 +- .../hui-climate-hvac-modes-tile-feature.ts | 163 ++++++++++++++++++ src/panels/lovelace/tile-features/types.ts | 11 +- src/translations/en.json | 4 + 11 files changed, 324 insertions(+), 35 deletions(-) create mode 100644 src/panels/lovelace/editor/config-elements/hui-climate-hvac-modes-tile-feature-editor.ts create mode 100644 src/panels/lovelace/tile-features/hui-climate-hvac-modes-tile-feature.ts diff --git a/src/common/translations/entity-state.ts b/src/common/translations/entity-state.ts index 29073222c5..36d2e58332 100644 --- a/src/common/translations/entity-state.ts +++ b/src/common/translations/entity-state.ts @@ -3,25 +3,30 @@ import type { FrontendLocaleData } from "../../data/translation"; import type { HomeAssistant } from "../../types"; import type { LocalizeFunc } from "./localize"; -export type FormatEntityStateFunc = { - formatEntityState: (stateObj: HassEntity, state?: string) => string; - formatEntityAttributeValue: ( - stateObj: HassEntity, - attribute: string, - value?: any - ) => string; - formatEntityAttributeName: ( - stateObj: HassEntity, - attribute: string - ) => string; -}; +export type FormatEntityStateFunc = ( + stateObj: HassEntity, + state?: string +) => string; +export type FormatEntityAttributeValueFunc = ( + stateObj: HassEntity, + attribute: string, + value?: any +) => string; +export type formatEntityAttributeNameFunc = ( + stateObj: HassEntity, + attribute: string +) => string; export const computeFormatFunctions = async ( localize: LocalizeFunc, locale: FrontendLocaleData, config: HassConfig, entities: HomeAssistant["entities"] -): Promise => { +): Promise<{ + formatEntityState: FormatEntityStateFunc; + formatEntityAttributeValue: FormatEntityAttributeValueFunc; + formatEntityAttributeName: formatEntityAttributeNameFunc; +}> => { const { computeStateDisplay } = await import( "../entity/compute_state_display" ); diff --git a/src/data/climate.ts b/src/data/climate.ts index bf72c04582..5fa54cdcfe 100644 --- a/src/data/climate.ts +++ b/src/data/climate.ts @@ -34,14 +34,17 @@ import { import { haOscillatingOff } from "./icons/haOscillatingOff"; import { haOscillating } from "./icons/haOscillating"; -export type HvacMode = - | "off" - | "heat" - | "cool" - | "heat_cool" - | "auto" - | "dry" - | "fan_only"; +export const HVAC_MODES = [ + "auto", + "heat_cool", + "heat", + "cool", + "dry", + "fan_only", + "off", +] as const; + +export type HvacMode = (typeof HVAC_MODES)[number]; export const CLIMATE_PRESET_NONE = "none"; diff --git a/src/dialogs/more-info/controls/more-info-climate.ts b/src/dialogs/more-info/controls/more-info-climate.ts index 95c6e37237..fed9699e55 100644 --- a/src/dialogs/more-info/controls/more-info-climate.ts +++ b/src/dialogs/more-info/controls/more-info-climate.ts @@ -58,7 +58,6 @@ class MoreInfoClimate extends LitElement { return nothing; } - const hass = this.hass; const stateObj = this.stateObj; const supportTargetHumidity = supportsFeature( @@ -167,7 +166,10 @@ class MoreInfoClimate extends LitElement {
= new Set([ "vacuum-commands", "fan-speed", "alarm-modes", + "climate-hvac-modes", ]); export const createTileFeatureElement = (config: LovelaceTileFeatureConfig) => diff --git a/src/panels/lovelace/editor/config-elements/hui-alarm-modes-tile-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-alarm-modes-tile-feature-editor.ts index 9793135ecd..e6ff299752 100644 --- a/src/panels/lovelace/editor/config-elements/hui-alarm-modes-tile-feature-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-alarm-modes-tile-feature-editor.ts @@ -10,7 +10,7 @@ import { AlarmMode, ALARM_MODES } from "../../../../data/alarm_control_panel"; import type { HomeAssistant } from "../../../../types"; import { LovelaceTileFeatureContext, - AlarmModesFileFeatureConfig, + AlarmModesTileFeatureConfig, } from "../../tile-features/types"; import type { LovelaceTileFeatureEditor } from "../../types"; import "../../../../components/ha-form/ha-form"; @@ -24,9 +24,9 @@ export class HuiAlarmModesTileFeatureEditor @property({ attribute: false }) public context?: LovelaceTileFeatureContext; - @state() private _config?: AlarmModesFileFeatureConfig; + @state() private _config?: AlarmModesTileFeatureConfig; - public setConfig(config: AlarmModesFileFeatureConfig): void { + public setConfig(config: AlarmModesTileFeatureConfig): void { this._config = config; } diff --git a/src/panels/lovelace/editor/config-elements/hui-climate-hvac-modes-tile-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-climate-hvac-modes-tile-feature-editor.ts new file mode 100644 index 0000000000..a64faeb6f1 --- /dev/null +++ b/src/panels/lovelace/editor/config-elements/hui-climate-hvac-modes-tile-feature-editor.ts @@ -0,0 +1,99 @@ +import { HassEntity } from "home-assistant-js-websocket"; +import { html, LitElement, nothing } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import memoizeOne from "memoize-one"; +import { fireEvent } from "../../../../common/dom/fire_event"; +import type { FormatEntityStateFunc } from "../../../../common/translations/entity-state"; +import "../../../../components/ha-form/ha-form"; +import type { SchemaUnion } from "../../../../components/ha-form/types"; +import { HVAC_MODES } from "../../../../data/climate"; +import type { HomeAssistant } from "../../../../types"; +import { + ClimateHvacModesTileFeatureConfig, + LovelaceTileFeatureContext, +} from "../../tile-features/types"; +import type { LovelaceTileFeatureEditor } from "../../types"; + +@customElement("hui-climate-hvac-modes-tile-feature-editor") +export class HuiClimateHvacModesTileFeatureEditor + extends LitElement + implements LovelaceTileFeatureEditor +{ + @property({ attribute: false }) public hass?: HomeAssistant; + + @property({ attribute: false }) public context?: LovelaceTileFeatureContext; + + @state() private _config?: ClimateHvacModesTileFeatureConfig; + + public setConfig(config: ClimateHvacModesTileFeatureConfig): void { + this._config = config; + } + + private _schema = memoizeOne( + (formatEntityState: FormatEntityStateFunc, stateObj?: HassEntity) => + [ + { + name: "hvac_modes", + selector: { + select: { + multiple: true, + mode: "list", + options: HVAC_MODES.filter( + (mode) => stateObj?.attributes.hvac_modes?.includes(mode) + ).map((mode) => ({ + value: mode, + label: stateObj ? formatEntityState(stateObj, mode) : mode, + })), + }, + }, + }, + ] as const + ); + + protected render() { + if (!this.hass || !this._config) { + return nothing; + } + + const stateObj = this.context?.entity_id + ? this.hass.states[this.context?.entity_id] + : undefined; + + const schema = this._schema(this.hass.formatEntityState, stateObj); + + return html` + + `; + } + + private _valueChanged(ev: CustomEvent): void { + fireEvent(this, "config-changed", { config: ev.detail.value }); + } + + private _computeLabelCallback = ( + schema: SchemaUnion> + ) => { + switch (schema.name) { + case "hvac_modes": + return this.hass!.localize( + `ui.panel.lovelace.editor.card.tile.features.types.climate-hvac-modes.${schema.name}` + ); + default: + return this.hass!.localize( + `ui.panel.lovelace.editor.card.generic.${schema.name}` + ); + } + }; +} + +declare global { + interface HTMLElementTagNameMap { + "hui-climate-hvac-modes-tile-feature-editor": HuiClimateHvacModesTileFeatureEditor; + } +} diff --git a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts index 712c9e1d26..a1c899bef4 100644 --- a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts @@ -1,6 +1,6 @@ import { mdiDelete, mdiDrag, mdiListBox, mdiPencil, mdiPlus } from "@mdi/js"; import { HassEntity } from "home-assistant-js-websocket"; -import { css, CSSResultGroup, html, LitElement, nothing } from "lit"; +import { CSSResultGroup, LitElement, css, html, nothing } from "lit"; import { customElement, property } from "lit/decorators"; import { repeat } from "lit/directives/repeat"; import type { SortableEvent } from "sortablejs"; @@ -12,20 +12,21 @@ import "../../../../components/ha-icon-button"; import "../../../../components/ha-list-item"; import "../../../../components/ha-svg-icon"; import { + CUSTOM_TYPE_PREFIX, CustomTileFeatureEntry, customTileFeatures, - CUSTOM_TYPE_PREFIX, isCustomType, stripCustomPrefix, } from "../../../../data/lovelace_custom_cards"; import { sortableStyles } from "../../../../resources/ha-sortable-style"; import { - loadSortable, SortableInstance, + loadSortable, } from "../../../../resources/sortable.ondemand"; import { HomeAssistant } from "../../../../types"; import { getTileFeatureElementClass } from "../../create-element/create-tile-feature-element"; import { supportsAlarmModesTileFeature } from "../../tile-features/hui-alarm-modes-tile-feature"; +import { supportsClimateHvacModesTileFeature } from "../../tile-features/hui-climate-hvac-modes-tile-feature"; import { supportsCoverOpenCloseTileFeature } from "../../tile-features/hui-cover-open-close-tile-feature"; import { supportsCoverTiltTileFeature } from "../../tile-features/hui-cover-tilt-tile-feature"; import { supportsFanSpeedTileFeature } from "../../tile-features/hui-fan-speed-tile-feature"; @@ -43,11 +44,13 @@ const FEATURE_TYPES: FeatureType[] = [ "vacuum-commands", "fan-speed", "alarm-modes", + "climate-hvac-modes", ]; const EDITABLES_FEATURE_TYPES = new Set([ "vacuum-commands", "alarm-modes", + "climate-hvac-modes", ]); const SUPPORTS_FEATURE_TYPES: Record = @@ -58,6 +61,7 @@ const SUPPORTS_FEATURE_TYPES: Record = "vacuum-commands": supportsVacuumCommandTileFeature, "fan-speed": supportsFanSpeedTileFeature, "alarm-modes": supportsAlarmModesTileFeature, + "climate-hvac-modes": supportsClimateHvacModesTileFeature, }; const CUSTOM_FEATURE_ENTRIES: Record< diff --git a/src/panels/lovelace/tile-features/hui-alarm-modes-tile-feature.ts b/src/panels/lovelace/tile-features/hui-alarm-modes-tile-feature.ts index 1675e1b913..e68e8201f3 100644 --- a/src/panels/lovelace/tile-features/hui-alarm-modes-tile-feature.ts +++ b/src/panels/lovelace/tile-features/hui-alarm-modes-tile-feature.ts @@ -20,7 +20,7 @@ import { import { UNAVAILABLE } from "../../../data/entity"; import { HomeAssistant } from "../../../types"; import { LovelaceTileFeature, LovelaceTileFeatureEditor } from "../types"; -import { AlarmModesFileFeatureConfig } from "./types"; +import { AlarmModesTileFeatureConfig } from "./types"; import { showEnterCodeDialogDialog } from "../../../dialogs/enter-code/show-enter-code-dialog"; export const supportsAlarmModesTileFeature = (stateObj: HassEntity) => { @@ -37,11 +37,11 @@ class HuiAlarmModeTileFeature @property({ attribute: false }) public stateObj?: AlarmControlPanelEntity; - @state() private _config?: AlarmModesFileFeatureConfig; + @state() private _config?: AlarmModesTileFeatureConfig; @state() _currentMode?: AlarmMode; - static getStubConfig(_, stateObj?: HassEntity): AlarmModesFileFeatureConfig { + static getStubConfig(_, stateObj?: HassEntity): AlarmModesTileFeatureConfig { return { type: "alarm-modes", modes: stateObj @@ -60,7 +60,7 @@ class HuiAlarmModeTileFeature return document.createElement("hui-alarm-modes-tile-feature-editor"); } - public setConfig(config: AlarmModesFileFeatureConfig): void { + public setConfig(config: AlarmModesTileFeatureConfig): void { if (!config) { throw new Error("Invalid configuration"); } diff --git a/src/panels/lovelace/tile-features/hui-climate-hvac-modes-tile-feature.ts b/src/panels/lovelace/tile-features/hui-climate-hvac-modes-tile-feature.ts new file mode 100644 index 0000000000..c04f24c102 --- /dev/null +++ b/src/panels/lovelace/tile-features/hui-climate-hvac-modes-tile-feature.ts @@ -0,0 +1,163 @@ +import { HassEntity } from "home-assistant-js-websocket"; +import { css, html, LitElement, PropertyValues, TemplateResult } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import { styleMap } from "lit/directives/style-map"; +import { computeDomain } from "../../../common/entity/compute_domain"; +import { stateColorCss } from "../../../common/entity/state_color"; +import "../../../components/ha-control-button"; +import "../../../components/ha-control-button-group"; +import "../../../components/ha-control-select"; +import type { ControlSelectOption } from "../../../components/ha-control-select"; +import "../../../components/ha-control-slider"; +import { + ClimateEntity, + compareClimateHvacModes, + computeHvacModeIcon, + HvacMode, +} from "../../../data/climate"; +import { UNAVAILABLE } from "../../../data/entity"; +import { HomeAssistant } from "../../../types"; +import { LovelaceTileFeature, LovelaceTileFeatureEditor } from "../types"; +import { ClimateHvacModesTileFeatureConfig } from "./types"; + +export const supportsClimateHvacModesTileFeature = (stateObj: HassEntity) => { + const domain = computeDomain(stateObj.entity_id); + return domain === "climate"; +}; + +@customElement("hui-climate-hvac-modes-tile-feature") +class HuiClimateHvacModeTileFeature + extends LitElement + implements LovelaceTileFeature +{ + @property({ attribute: false }) public hass?: HomeAssistant; + + @property({ attribute: false }) public stateObj?: ClimateEntity; + + @state() private _config?: ClimateHvacModesTileFeatureConfig; + + @state() _currentHvacMode?: HvacMode; + + static getStubConfig( + _, + stateObj?: HassEntity + ): ClimateHvacModesTileFeatureConfig { + return { + type: "climate-hvac-modes", + hvac_modes: stateObj?.attributes.hvac_modes || [], + }; + } + + public static async getConfigElement(): Promise { + await import( + "../editor/config-elements/hui-climate-hvac-modes-tile-feature-editor" + ); + return document.createElement("hui-climate-hvac-modes-tile-feature-editor"); + } + + public setConfig(config: ClimateHvacModesTileFeatureConfig): void { + if (!config) { + throw new Error("Invalid configuration"); + } + this._config = config; + } + + protected willUpdate(changedProp: PropertyValues): void { + super.willUpdate(changedProp); + if (changedProp.has("stateObj") && this.stateObj) { + this._currentHvacMode = this.stateObj.state as HvacMode; + } + } + + private async _valueChanged(ev: CustomEvent) { + const mode = (ev.detail as any).value as HvacMode; + + if (mode === this.stateObj!.state) return; + + const oldMode = this.stateObj!.state as HvacMode; + this._currentHvacMode = mode; + + try { + await this._setMode(mode); + } catch (err) { + this._currentHvacMode = oldMode; + } + } + + private async _setMode(mode: HvacMode) { + await this.hass!.callService("climate", "set_hvac_mode", { + entity_id: this.stateObj!.entity_id, + hvac_mode: mode, + }); + } + + protected render(): TemplateResult | null { + if ( + !this._config || + !this.hass || + !this.stateObj || + !supportsClimateHvacModesTileFeature(this.stateObj) + ) { + return null; + } + + const color = stateColorCss(this.stateObj); + + const modes = this._config.hvac_modes || []; + + const options = modes + .filter((mode) => this.stateObj?.attributes.hvac_modes.includes(mode)) + .sort(compareClimateHvacModes) + .map((mode) => ({ + value: mode, + label: this.hass!.formatEntityState(this.stateObj!, mode), + path: computeHvacModeIcon(mode), + })); + + return html` +
+ + +
+ `; + } + + static get styles() { + return css` + ha-control-select { + --control-select-color: var(--tile-color); + --control-select-padding: 0; + --control-select-thickness: 40px; + --control-select-border-radius: 10px; + --control-select-button-border-radius: 10px; + } + ha-control-button-group { + margin: 0 12px 12px 12px; + --control-button-group-spacing: 12px; + } + .container { + padding: 0 12px 12px 12px; + width: auto; + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "hui-climate-modes-hvac-modes-feature": HuiClimateHvacModeTileFeature; + } +} diff --git a/src/panels/lovelace/tile-features/types.ts b/src/panels/lovelace/tile-features/types.ts index 03128a5efb..ae1181e4b6 100644 --- a/src/panels/lovelace/tile-features/types.ts +++ b/src/panels/lovelace/tile-features/types.ts @@ -1,4 +1,5 @@ import { AlarmMode } from "../../../data/alarm_control_panel"; +import { HvacMode } from "../../../data/climate"; export interface CoverOpenCloseTileFeatureConfig { type: "cover-open-close"; @@ -16,11 +17,16 @@ export interface FanSpeedTileFeatureConfig { type: "fan-speed"; } -export interface AlarmModesFileFeatureConfig { +export interface AlarmModesTileFeatureConfig { type: "alarm-modes"; modes?: AlarmMode[]; } +export interface ClimateHvacModesTileFeatureConfig { + type: "climate-hvac-modes"; + hvac_modes?: HvacMode[]; +} + export const VACUUM_COMMANDS = [ "start_pause", "stop", @@ -42,7 +48,8 @@ export type LovelaceTileFeatureConfig = | LightBrightnessTileFeatureConfig | VacuumCommandsTileFeatureConfig | FanSpeedTileFeatureConfig - | AlarmModesFileFeatureConfig; + | AlarmModesTileFeatureConfig + | ClimateHvacModesTileFeatureConfig; export type LovelaceTileFeatureContext = { entity_id?: string; diff --git a/src/translations/en.json b/src/translations/en.json index c6cc34a782..387a8af714 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -4998,6 +4998,10 @@ "locate": "[%key:ui::dialogs::more_info_control::vacuum::locate%]", "return_home": "[%key:ui::dialogs::more_info_control::vacuum::return_home%]" } + }, + "climate-hvac-modes": { + "label": "HVAC modes", + "hvac_modes": "Modes" } } } From 613cf932b5b5af981a85f95d2036a660e2736710 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 16 Aug 2023 14:56:44 +0200 Subject: [PATCH 075/182] Delay showing connection message (#17595) --- src/state/disconnect-toast-mixin.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/state/disconnect-toast-mixin.ts b/src/state/disconnect-toast-mixin.ts index bf5590ee29..c74773c913 100644 --- a/src/state/disconnect-toast-mixin.ts +++ b/src/state/disconnect-toast-mixin.ts @@ -17,6 +17,8 @@ export default >(superClass: T) => class extends superClass { private _subscribedBootstrapIntegrations?: Promise; + private _disconnectedTimeout?: number; + protected firstUpdated(changedProps) { super.firstUpdated(changedProps); // Need to load in advance because when disconnected, can't dynamically load code. @@ -65,6 +67,11 @@ export default >(superClass: T) => protected hassReconnected() { super.hassReconnected(); + if (this._disconnectedTimeout) { + clearTimeout(this._disconnectedTimeout); + this._disconnectedTimeout = undefined; + return; + } showToast(this, { message: "", duration: 1, @@ -74,11 +81,14 @@ export default >(superClass: T) => protected hassDisconnected() { super.hassDisconnected(); - showToast(this, { - message: this.hass!.localize("ui.notification_toast.connection_lost"), - duration: 0, - dismissable: false, - }); + this._disconnectedTimeout = window.setTimeout(() => { + this._disconnectedTimeout = undefined; + showToast(this, { + message: this.hass!.localize("ui.notification_toast.connection_lost"), + duration: 0, + dismissable: false, + }); + }, 1000); } private _handleMessage(message: BootstrapIntegrationsTimings): void { From ee8997fbd2ec5aabceb43777b30d8127fc1c2ca3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 17:01:00 -0400 Subject: [PATCH 076/182] Update dependency lint-staged to v13.3.0 (#17602) --- package.json | 2 +- yarn.lock | 238 ++++++++++++++++++++++----------------------------- 2 files changed, 101 insertions(+), 139 deletions(-) diff --git a/package.json b/package.json index 203c0b7939..c76009867e 100644 --- a/package.json +++ b/package.json @@ -217,7 +217,7 @@ "husky": "8.0.3", "instant-mocha": "1.5.2", "jszip": "3.10.1", - "lint-staged": "13.2.3", + "lint-staged": "13.3.0", "lit-analyzer": "2.0.0-pre.3", "lodash.template": "4.5.0", "magic-string": "0.30.2", diff --git a/yarn.lock b/yarn.lock index 918cc73e7c..3dcf1e8b36 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5555,12 +5555,12 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^4.3.0": - version: 4.3.2 - resolution: "ansi-escapes@npm:4.3.2" +"ansi-escapes@npm:^5.0.0": + version: 5.0.0 + resolution: "ansi-escapes@npm:5.0.0" dependencies: - type-fest: ^0.21.3 - checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 + type-fest: ^1.0.2 + checksum: d4b5eb8207df38367945f5dd2ef41e08c28edc192dc766ef18af6b53736682f49d8bfcfa4e4d6ecbc2e2f97c258fda084fb29a9e43b69170b71090f771afccac languageName: node linkType: hard @@ -5990,13 +5990,6 @@ __metadata: languageName: node linkType: hard -"astral-regex@npm:^2.0.0": - version: 2.0.0 - resolution: "astral-regex@npm:2.0.0" - checksum: 876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 - languageName: node - linkType: hard - "async-done@npm:^1.2.0, async-done@npm:^1.2.2": version: 1.3.2 resolution: "async-done@npm:1.3.2" @@ -6561,10 +6554,10 @@ __metadata: languageName: node linkType: hard -"chalk@npm:5.2.0": - version: 5.2.0 - resolution: "chalk@npm:5.2.0" - checksum: 03d8060277de6cf2fd567dc25fcf770593eb5bb85f460ce443e49255a30ff1242edd0c90a06a03803b0466ff0687a939b41db1757bec987113e83de89a003caa +"chalk@npm:5.3.0": + version: 5.3.0 + resolution: "chalk@npm:5.3.0" + checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 languageName: node linkType: hard @@ -6705,22 +6698,12 @@ __metadata: languageName: node linkType: hard -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" +"cli-cursor@npm:^4.0.0": + version: 4.0.0 + resolution: "cli-cursor@npm:4.0.0" dependencies: - restore-cursor: ^3.1.0 - checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 - languageName: node - linkType: hard - -"cli-truncate@npm:^2.1.0": - version: 2.1.0 - resolution: "cli-truncate@npm:2.1.0" - dependencies: - slice-ansi: ^3.0.0 - string-width: ^4.2.0 - checksum: bf1e4e6195392dc718bf9cd71f317b6300dc4a9191d052f31046b8773230ece4fa09458813bf0e3455a5e68c0690d2ea2c197d14a8b85a7b5e01c97f4b5feb5d + restore-cursor: ^4.0.0 + checksum: ab3f3ea2076e2176a1da29f9d64f72ec3efad51c0960898b56c8a17671365c26e67b735920530eaf7328d61f8bd41c27f46b9cf6e4e10fe2fa44b5e8c0e392cc languageName: node linkType: hard @@ -6904,7 +6887,7 @@ __metadata: languageName: node linkType: hard -"colorette@npm:^2.0.10, colorette@npm:^2.0.14, colorette@npm:^2.0.19": +"colorette@npm:^2.0.10, colorette@npm:^2.0.14, colorette@npm:^2.0.20": version: 2.0.20 resolution: "colorette@npm:2.0.20" checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d @@ -6942,6 +6925,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:11.0.0": + version: 11.0.0 + resolution: "commander@npm:11.0.0" + checksum: 6621954e1e1d078b4991c1f5bbd9439ad37aa7768d6ab4842de1dbd4d222c8a27e1b8e62108b3a92988614af45031d5bb2a2aaa92951f4d0c934d1a1ac564bb4 + languageName: node + linkType: hard + "commander@npm:^10.0.0, commander@npm:^10.0.1": version: 10.0.1 resolution: "commander@npm:10.0.1" @@ -8314,6 +8304,13 @@ __metadata: languageName: node linkType: hard +"eventemitter3@npm:^5.0.1": + version: 5.0.1 + resolution: "eventemitter3@npm:5.0.1" + checksum: 543d6c858ab699303c3c32e0f0f47fc64d360bf73c3daf0ac0b5079710e340d6fe9f15487f94e66c629f5f82cd1a8678d692f3dbb6f6fcd1190e1b97fcad36f8 + languageName: node + linkType: hard + "events@npm:^3.2.0": version: 3.3.0 resolution: "events@npm:3.3.0" @@ -8321,6 +8318,23 @@ __metadata: languageName: node linkType: hard +"execa@npm:7.2.0, execa@npm:^7.1.1": + version: 7.2.0 + resolution: "execa@npm:7.2.0" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^6.0.1 + human-signals: ^4.3.0 + is-stream: ^3.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^5.1.0 + onetime: ^6.0.0 + signal-exit: ^3.0.7 + strip-final-newline: ^3.0.0 + checksum: 14fd17ba0ca8c87b277584d93b1d9fc24f2a65e5152b31d5eb159a3b814854283eaae5f51efa9525e304447e2f757c691877f7adff8fde5746aae67eb1edd1cc + languageName: node + linkType: hard + "execa@npm:^5.0.0": version: 5.1.1 resolution: "execa@npm:5.1.1" @@ -8338,23 +8352,6 @@ __metadata: languageName: node linkType: hard -"execa@npm:^7.0.0, execa@npm:^7.1.1": - version: 7.1.1 - resolution: "execa@npm:7.1.1" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^6.0.1 - human-signals: ^4.3.0 - is-stream: ^3.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^5.1.0 - onetime: ^6.0.0 - signal-exit: ^3.0.7 - strip-final-newline: ^3.0.0 - checksum: 21fa46fc69314ace4068cf820142bdde5b643a5d89831c2c9349479c1555bff137a291b8e749e7efca36535e4e0a8c772c11008ca2e84d2cbd6ca141a3c8f937 - languageName: node - linkType: hard - "exif-parser@npm:^0.1.12": version: 0.1.12 resolution: "exif-parser@npm:0.1.12" @@ -9770,7 +9767,7 @@ __metadata: jszip: 3.10.1 leaflet: 1.9.4 leaflet-draw: 1.0.4 - lint-staged: 13.2.3 + lint-staged: 13.3.0 lit: 2.8.0 lit-analyzer: 2.0.0-pre.3 lodash.template: 4.5.0 @@ -11342,47 +11339,42 @@ __metadata: languageName: node linkType: hard -"lint-staged@npm:13.2.3": - version: 13.2.3 - resolution: "lint-staged@npm:13.2.3" +"lint-staged@npm:13.3.0": + version: 13.3.0 + resolution: "lint-staged@npm:13.3.0" dependencies: - chalk: 5.2.0 - cli-truncate: ^3.1.0 - commander: ^10.0.0 - debug: ^4.3.4 - execa: ^7.0.0 + chalk: 5.3.0 + commander: 11.0.0 + debug: 4.3.4 + execa: 7.2.0 lilconfig: 2.1.0 - listr2: ^5.0.7 - micromatch: ^4.0.5 - normalize-path: ^3.0.0 - object-inspect: ^1.12.3 - pidtree: ^0.6.0 - string-argv: ^0.3.1 - yaml: ^2.2.2 + listr2: 6.6.1 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.1 bin: lint-staged: bin/lint-staged.js - checksum: ff51a1e33072f488b28b938ed47323816a1ff278ef6d0e5cbe1704b292773a6c8ce945b504eae3a9b5702917a979523a741f17023e16077bd5fa35be687cc067 + checksum: f7c146cc2849c9ce4f1d2808d990fcbdef5e0bb79e6e79cc895f53c91f5ac4dcefdb8c3465156b38a015dcb051f2795c6bda4f20a1e2f2fa654c7ba521b2d2e0 languageName: node linkType: hard -"listr2@npm:^5.0.7": - version: 5.0.8 - resolution: "listr2@npm:5.0.8" +"listr2@npm:6.6.1": + version: 6.6.1 + resolution: "listr2@npm:6.6.1" dependencies: - cli-truncate: ^2.1.0 - colorette: ^2.0.19 - log-update: ^4.0.0 - p-map: ^4.0.0 + cli-truncate: ^3.1.0 + colorette: ^2.0.20 + eventemitter3: ^5.0.1 + log-update: ^5.0.1 rfdc: ^1.3.0 - rxjs: ^7.8.0 - through: ^2.3.8 - wrap-ansi: ^7.0.0 + wrap-ansi: ^8.1.0 peerDependencies: enquirer: ">= 2.3.0 < 3" peerDependenciesMeta: enquirer: optional: true - checksum: 8be9f5632627c4df0dc33f452c98d415a49e5f1614650d3cab1b103c33e95f2a7a0e9f3e1e5de00d51bf0b4179acd8ff11b25be77dbe097cf3773c05e728d46c + checksum: 99600e8a51f838f7208bce7e16d6b3d91d361f13881e6aa91d0b561a9a093ddcf63b7bc2a7b47aec7fdbff9d0e8c9f68cb66e6dfe2d857e5b1df8ab045c26ce8 languageName: node linkType: hard @@ -11609,15 +11601,16 @@ __metadata: languageName: node linkType: hard -"log-update@npm:^4.0.0": - version: 4.0.0 - resolution: "log-update@npm:4.0.0" +"log-update@npm:^5.0.1": + version: 5.0.1 + resolution: "log-update@npm:5.0.1" dependencies: - ansi-escapes: ^4.3.0 - cli-cursor: ^3.1.0 - slice-ansi: ^4.0.0 - wrap-ansi: ^6.2.0 - checksum: ae2f85bbabc1906034154fb7d4c4477c79b3e703d22d78adee8b3862fa913942772e7fa11713e3d96fb46de4e3cabefbf5d0a544344f03b58d3c4bff52aa9eb2 + ansi-escapes: ^5.0.0 + cli-cursor: ^4.0.0 + slice-ansi: ^5.0.0 + strip-ansi: ^7.0.1 + wrap-ansi: ^8.0.1 + checksum: 2c6b47dcce6f9233df6d232a37d9834cb3657a0749ef6398f1706118de74c55f158587d4128c225297ea66803f35c5ac3db4f3f617046d817233c45eedc32ef1 languageName: node linkType: hard @@ -11839,6 +11832,16 @@ __metadata: languageName: node linkType: hard +"micromatch@npm:4.0.5, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4": + version: 4.0.5 + resolution: "micromatch@npm:4.0.5" + dependencies: + braces: ^3.0.2 + picomatch: ^2.3.1 + checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc + languageName: node + linkType: hard + "micromatch@npm:^3.0.4, micromatch@npm:^3.1.10, micromatch@npm:^3.1.4": version: 3.1.10 resolution: "micromatch@npm:3.1.10" @@ -11860,16 +11863,6 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" - dependencies: - braces: ^3.0.2 - picomatch: ^2.3.1 - checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc - languageName: node - linkType: hard - "mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2": version: 1.52.0 resolution: "mime-db@npm:1.52.0" @@ -13114,7 +13107,7 @@ __metadata: languageName: node linkType: hard -"pidtree@npm:^0.6.0": +"pidtree@npm:0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" bin: @@ -13844,13 +13837,13 @@ __metadata: languageName: node linkType: hard -"restore-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "restore-cursor@npm:3.1.0" +"restore-cursor@npm:^4.0.0": + version: 4.0.0 + resolution: "restore-cursor@npm:4.0.0" dependencies: onetime: ^5.1.0 signal-exit: ^3.0.2 - checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 + checksum: 5b675c5a59763bf26e604289eab35711525f11388d77f409453904e1e69c0d37ae5889295706b2c81d23bd780165084d040f9b68fffc32cc921519031c4fa4af languageName: node linkType: hard @@ -13999,15 +13992,6 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^7.8.0": - version: 7.8.1 - resolution: "rxjs@npm:7.8.1" - dependencies: - tslib: ^2.1.0 - checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119 - languageName: node - linkType: hard - "safe-array-concat@npm:^1.0.0": version: 1.0.0 resolution: "safe-array-concat@npm:1.0.0" @@ -14361,28 +14345,6 @@ __metadata: languageName: node linkType: hard -"slice-ansi@npm:^3.0.0": - version: 3.0.0 - resolution: "slice-ansi@npm:3.0.0" - dependencies: - ansi-styles: ^4.0.0 - astral-regex: ^2.0.0 - is-fullwidth-code-point: ^3.0.0 - checksum: 5ec6d022d12e016347e9e3e98a7eb2a592213a43a65f1b61b74d2c78288da0aded781f665807a9f3876b9daa9ad94f64f77d7633a0458876c3a4fdc4eb223f24 - languageName: node - linkType: hard - -"slice-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "slice-ansi@npm:4.0.0" - dependencies: - ansi-styles: ^4.0.0 - astral-regex: ^2.0.0 - is-fullwidth-code-point: ^3.0.0 - checksum: 4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 - languageName: node - linkType: hard - "slice-ansi@npm:^5.0.0": version: 5.0.0 resolution: "slice-ansi@npm:5.0.0" @@ -14717,7 +14679,7 @@ __metadata: languageName: node linkType: hard -"string-argv@npm:^0.3.1": +"string-argv@npm:0.3.2": version: 0.3.2 resolution: "string-argv@npm:0.3.2" checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f @@ -15468,10 +15430,10 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.21.3": - version: 0.21.3 - resolution: "type-fest@npm:0.21.3" - checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 +"type-fest@npm:^1.0.2": + version: 1.4.0 + resolution: "type-fest@npm:1.4.0" + checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 languageName: node linkType: hard @@ -16671,7 +16633,7 @@ __metadata: languageName: node linkType: hard -"wrap-ansi@npm:^8.1.0": +"wrap-ansi@npm:^8.0.1, wrap-ansi@npm:^8.1.0": version: 8.1.0 resolution: "wrap-ansi@npm:8.1.0" dependencies: @@ -16809,7 +16771,7 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.2.2": +"yaml@npm:2.3.1": version: 2.3.1 resolution: "yaml@npm:2.3.1" checksum: 2c7bc9a7cd4c9f40d3b0b0a98e370781b68b8b7c4515720869aced2b00d92f5da1762b4ffa947f9e795d6cd6b19f410bd4d15fdd38aca7bd96df59bd9486fb54 From d50a1303452d807dee8c3b5023a1d4ea27042b2e Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Wed, 16 Aug 2023 23:56:51 -0700 Subject: [PATCH 077/182] Add show_name to state label badge (#17603) --- src/components/entity/ha-state-label-badge.ts | 6 +++++- src/panels/lovelace/badges/hui-state-label-badge.ts | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/entity/ha-state-label-badge.ts b/src/components/entity/ha-state-label-badge.ts index 519dbfc107..417ce42024 100644 --- a/src/components/entity/ha-state-label-badge.ts +++ b/src/components/entity/ha-state-label-badge.ts @@ -62,6 +62,8 @@ export class HaStateLabelBadge extends LitElement { @property() public image?: string; + @property() public showName?: boolean; + @state() private _timerTimeRemaining?: number; private _connected?: boolean; @@ -132,7 +134,9 @@ export class HaStateLabelBadge extends LitElement { entityState, this._timerTimeRemaining )} - .description=${this.name ?? computeStateName(entityState)} + .description=${this.showName === false + ? undefined + : this.name ?? computeStateName(entityState)} > ${!image && showIcon ? html` Date: Thu, 17 Aug 2023 15:51:49 +0200 Subject: [PATCH 078/182] Add water heater state colors to gallery (#17606) --- gallery/src/pages/misc/entity-state.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gallery/src/pages/misc/entity-state.ts b/gallery/src/pages/misc/entity-state.ts index 8a738ca873..58c639e6fd 100644 --- a/gallery/src/pages/misc/entity-state.ts +++ b/gallery/src/pages/misc/entity-state.ts @@ -284,6 +284,13 @@ const ENTITIES: HassEntity[] = [ installed_version: "1.0.0", latest_version: "2.0.0", }), + createEntity("water_heater.off", "off"), + createEntity("water_heater.eco", "eco"), + createEntity("water_heater.electric", "electric"), + createEntity("water_heater.performance", "performance"), + createEntity("water_heater.high_demand", "high_demand"), + createEntity("water_heater.heat_pump", "heat_pump"), + createEntity("water_heater.gas", "gas"), ]; function createEntity( From 821cd7fe05557689b2be1ee062ad0893cfed4f7d Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Thu, 17 Aug 2023 17:19:46 +0200 Subject: [PATCH 079/182] Add operation modes to tile card (#17597) --- src/data/climate.ts | 16 +- src/data/water_heater.ts | 39 ++-- .../create-tile-feature-element.ts | 4 +- .../hui-tile-card-features-editor.ts | 5 + ...ter-operation-modes-tile-feature-editor.ts | 99 +++++++++++ ...ter-heater-operation-modes-tile-feature.ts | 167 ++++++++++++++++++ src/panels/lovelace/tile-features/types.ts | 9 +- src/translations/en.json | 8 +- 8 files changed, 316 insertions(+), 31 deletions(-) create mode 100644 src/panels/lovelace/editor/config-elements/hui-water-heater-operation-modes-tile-feature-editor.ts create mode 100644 src/panels/lovelace/tile-features/hui-water-heater-operation-modes-tile-feature.ts diff --git a/src/data/climate.ts b/src/data/climate.ts index 5fa54cdcfe..b3b7087a3b 100644 --- a/src/data/climate.ts +++ b/src/data/climate.ts @@ -95,15 +95,13 @@ export const enum ClimateEntityFeature { AUX_HEAT = 64, } -const hvacModeOrdering: { [key in HvacMode]: number } = { - auto: 1, - heat_cool: 2, - heat: 3, - cool: 4, - dry: 5, - fan_only: 6, - off: 7, -}; +const hvacModeOrdering = HVAC_MODES.reduce( + (order, mode, index) => { + order[mode] = index; + return order; + }, + {} as Record +); export const compareClimateHvacModes = (mode1: HvacMode, mode2: HvacMode) => hvacModeOrdering[mode1] - hvacModeOrdering[mode2]; diff --git a/src/data/water_heater.ts b/src/data/water_heater.ts index ebb656b7a5..84dac0a8f4 100644 --- a/src/data/water_heater.ts +++ b/src/data/water_heater.ts @@ -18,14 +18,17 @@ export const enum WaterHeaterEntityFeature { AWAY_MODE = 4, } -export type OperationMode = - | "eco" - | "electric" - | "performance" - | "high_demand" - | "heat_pump" - | "gas" - | "off"; +export const OPERATION_MODES = [ + "electric", + "gas", + "heat_pump", + "eco", + "performance", + "high_demand", + "off", +] as const; + +export type OperationMode = (typeof OPERATION_MODES)[number]; export type WaterHeaterEntity = HassEntityBase & { attributes: HassEntityAttributeBase & { @@ -40,20 +43,20 @@ export type WaterHeaterEntity = HassEntityBase & { }; }; -const hvacModeOrdering: { [key in OperationMode]: number } = { - eco: 1, - electric: 2, - performance: 3, - high_demand: 4, - heat_pump: 5, - gas: 6, - off: 7, -}; +const waterHeaterOperationModeOrdering = OPERATION_MODES.reduce( + (order, mode, index) => { + order[mode] = index; + return order; + }, + {} as Record +); export const compareWaterHeaterOperationMode = ( mode1: OperationMode, mode2: OperationMode -) => hvacModeOrdering[mode1] - hvacModeOrdering[mode2]; +) => + waterHeaterOperationModeOrdering[mode1] - + waterHeaterOperationModeOrdering[mode2]; export const WATER_HEATER_OPERATION_MODE_ICONS: Record = { diff --git a/src/panels/lovelace/create-element/create-tile-feature-element.ts b/src/panels/lovelace/create-element/create-tile-feature-element.ts index 973b52ae42..5597f2cac2 100644 --- a/src/panels/lovelace/create-element/create-tile-feature-element.ts +++ b/src/panels/lovelace/create-element/create-tile-feature-element.ts @@ -1,10 +1,11 @@ import "../tile-features/hui-alarm-modes-tile-feature"; +import "../tile-features/hui-climate-hvac-modes-tile-feature"; import "../tile-features/hui-cover-open-close-tile-feature"; import "../tile-features/hui-cover-tilt-tile-feature"; import "../tile-features/hui-fan-speed-tile-feature"; import "../tile-features/hui-light-brightness-tile-feature"; import "../tile-features/hui-vacuum-commands-tile-feature"; -import "../tile-features/hui-climate-hvac-modes-tile-feature"; +import "../tile-features/hui-water-heater-operation-modes-tile-feature"; import { LovelaceTileFeatureConfig } from "../tile-features/types"; import { createLovelaceElement, @@ -19,6 +20,7 @@ const TYPES: Set = new Set([ "fan-speed", "alarm-modes", "climate-hvac-modes", + "water-heater-operation-modes", ]); export const createTileFeatureElement = (config: LovelaceTileFeatureConfig) => diff --git a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts index a1c899bef4..e2b1a350c7 100644 --- a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts @@ -32,6 +32,7 @@ import { supportsCoverTiltTileFeature } from "../../tile-features/hui-cover-tilt import { supportsFanSpeedTileFeature } from "../../tile-features/hui-fan-speed-tile-feature"; import { supportsLightBrightnessTileFeature } from "../../tile-features/hui-light-brightness-tile-feature"; import { supportsVacuumCommandTileFeature } from "../../tile-features/hui-vacuum-commands-tile-feature"; +import { supportsWaterHeaterOperationModesTileFeature } from "../../tile-features/hui-water-heater-operation-modes-tile-feature"; import { LovelaceTileFeatureConfig } from "../../tile-features/types"; type FeatureType = LovelaceTileFeatureConfig["type"]; @@ -45,12 +46,14 @@ const FEATURE_TYPES: FeatureType[] = [ "fan-speed", "alarm-modes", "climate-hvac-modes", + "water-heater-operation-modes", ]; const EDITABLES_FEATURE_TYPES = new Set([ "vacuum-commands", "alarm-modes", "climate-hvac-modes", + "water-heater-operation-modes", ]); const SUPPORTS_FEATURE_TYPES: Record = @@ -62,6 +65,8 @@ const SUPPORTS_FEATURE_TYPES: Record = "fan-speed": supportsFanSpeedTileFeature, "alarm-modes": supportsAlarmModesTileFeature, "climate-hvac-modes": supportsClimateHvacModesTileFeature, + "water-heater-operation-modes": + supportsWaterHeaterOperationModesTileFeature, }; const CUSTOM_FEATURE_ENTRIES: Record< diff --git a/src/panels/lovelace/editor/config-elements/hui-water-heater-operation-modes-tile-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-water-heater-operation-modes-tile-feature-editor.ts new file mode 100644 index 0000000000..4cc6e7adae --- /dev/null +++ b/src/panels/lovelace/editor/config-elements/hui-water-heater-operation-modes-tile-feature-editor.ts @@ -0,0 +1,99 @@ +import { HassEntity } from "home-assistant-js-websocket"; +import { html, LitElement, nothing } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import memoizeOne from "memoize-one"; +import { fireEvent } from "../../../../common/dom/fire_event"; +import type { FormatEntityStateFunc } from "../../../../common/translations/entity-state"; +import "../../../../components/ha-form/ha-form"; +import type { SchemaUnion } from "../../../../components/ha-form/types"; +import type { HomeAssistant } from "../../../../types"; +import { + WaterHeaterOperationModesTileFeatureConfig, + LovelaceTileFeatureContext, +} from "../../tile-features/types"; +import type { LovelaceTileFeatureEditor } from "../../types"; +import { OPERATION_MODES } from "../../../../data/water_heater"; + +@customElement("hui-water-heater-operation-modes-tile-feature-editor") +export class HuiWaterHeaterOperationModesTileFeatureEditor + extends LitElement + implements LovelaceTileFeatureEditor +{ + @property({ attribute: false }) public hass?: HomeAssistant; + + @property({ attribute: false }) public context?: LovelaceTileFeatureContext; + + @state() private _config?: WaterHeaterOperationModesTileFeatureConfig; + + public setConfig(config: WaterHeaterOperationModesTileFeatureConfig): void { + this._config = config; + } + + private _schema = memoizeOne( + (formatEntityState: FormatEntityStateFunc, stateObj?: HassEntity) => + [ + { + name: "operation_modes", + selector: { + select: { + multiple: true, + mode: "list", + options: OPERATION_MODES.filter( + (mode) => stateObj?.attributes.operation_list?.includes(mode) + ).map((mode) => ({ + value: mode, + label: stateObj ? formatEntityState(stateObj, mode) : mode, + })), + }, + }, + }, + ] as const + ); + + protected render() { + if (!this.hass || !this._config) { + return nothing; + } + + const stateObj = this.context?.entity_id + ? this.hass.states[this.context?.entity_id] + : undefined; + + const schema = this._schema(this.hass.formatEntityState, stateObj); + + return html` + + `; + } + + private _valueChanged(ev: CustomEvent): void { + fireEvent(this, "config-changed", { config: ev.detail.value }); + } + + private _computeLabelCallback = ( + schema: SchemaUnion> + ) => { + switch (schema.name) { + case "operation_modes": + return this.hass!.localize( + `ui.panel.lovelace.editor.card.tile.features.types.water-heater-modes.${schema.name}` + ); + default: + return this.hass!.localize( + `ui.panel.lovelace.editor.card.generic.${schema.name}` + ); + } + }; +} + +declare global { + interface HTMLElementTagNameMap { + "hui-water-heater-operation-modes-tile-feature-editor": HuiWaterHeaterOperationModesTileFeatureEditor; + } +} diff --git a/src/panels/lovelace/tile-features/hui-water-heater-operation-modes-tile-feature.ts b/src/panels/lovelace/tile-features/hui-water-heater-operation-modes-tile-feature.ts new file mode 100644 index 0000000000..e537b60401 --- /dev/null +++ b/src/panels/lovelace/tile-features/hui-water-heater-operation-modes-tile-feature.ts @@ -0,0 +1,167 @@ +import { HassEntity } from "home-assistant-js-websocket"; +import { css, html, LitElement, PropertyValues, TemplateResult } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import { styleMap } from "lit/directives/style-map"; +import { computeDomain } from "../../../common/entity/compute_domain"; +import { stateColorCss } from "../../../common/entity/state_color"; +import "../../../components/ha-control-button"; +import "../../../components/ha-control-button-group"; +import "../../../components/ha-control-select"; +import type { ControlSelectOption } from "../../../components/ha-control-select"; +import "../../../components/ha-control-slider"; +import { UNAVAILABLE } from "../../../data/entity"; +import { + compareWaterHeaterOperationMode, + computeOperationModeIcon, + OperationMode, + WaterHeaterEntity, +} from "../../../data/water_heater"; +import { HomeAssistant } from "../../../types"; +import { LovelaceTileFeature, LovelaceTileFeatureEditor } from "../types"; +import { WaterHeaterOperationModesTileFeatureConfig } from "./types"; + +export const supportsWaterHeaterOperationModesTileFeature = ( + stateObj: HassEntity +) => { + const domain = computeDomain(stateObj.entity_id); + return domain === "water_heater"; +}; + +@customElement("hui-water-heater-operation-modes-tile-feature") +class HuiWaterHeaterOperationModeTileFeature + extends LitElement + implements LovelaceTileFeature +{ + @property({ attribute: false }) public hass?: HomeAssistant; + + @property({ attribute: false }) public stateObj?: WaterHeaterEntity; + + @state() private _config?: WaterHeaterOperationModesTileFeatureConfig; + + @state() _currentOperationMode?: OperationMode; + + static getStubConfig( + _, + stateObj?: HassEntity + ): WaterHeaterOperationModesTileFeatureConfig { + return { + type: "water-heater-operation-modes", + operation_modes: stateObj?.attributes.operation_list || [], + }; + } + + public static async getConfigElement(): Promise { + await import( + "../editor/config-elements/hui-water-heater-operation-modes-tile-feature-editor" + ); + return document.createElement( + "hui-water-heater-operation-modes-tile-feature-editor" + ); + } + + public setConfig(config: WaterHeaterOperationModesTileFeatureConfig): void { + if (!config) { + throw new Error("Invalid configuration"); + } + this._config = config; + } + + protected willUpdate(changedProp: PropertyValues): void { + super.willUpdate(changedProp); + if (changedProp.has("stateObj") && this.stateObj) { + this._currentOperationMode = this.stateObj.state as OperationMode; + } + } + + private async _valueChanged(ev: CustomEvent) { + const mode = (ev.detail as any).value as OperationMode; + + if (mode === this.stateObj!.state) return; + + const oldMode = this.stateObj!.state as OperationMode; + this._currentOperationMode = mode; + + try { + await this._setMode(mode); + } catch (err) { + this._currentOperationMode = oldMode; + } + } + + private async _setMode(mode: OperationMode) { + await this.hass!.callService("water_heater", "set_operation_mode", { + entity_id: this.stateObj!.entity_id, + operation_mode: mode, + }); + } + + protected render(): TemplateResult | null { + if ( + !this._config || + !this.hass || + !this.stateObj || + !supportsWaterHeaterOperationModesTileFeature(this.stateObj) + ) { + return null; + } + + const color = stateColorCss(this.stateObj); + + const modes = this._config.operation_modes || []; + + const options = modes + .filter((mode) => this.stateObj?.attributes.operation_list.includes(mode)) + .sort(compareWaterHeaterOperationMode) + .map((mode) => ({ + value: mode, + label: this.hass!.formatEntityState(this.stateObj!, mode), + path: computeOperationModeIcon(mode), + })); + + return html` +
+ + +
+ `; + } + + static get styles() { + return css` + ha-control-select { + --control-select-color: var(--tile-color); + --control-select-padding: 0; + --control-select-thickness: 40px; + --control-select-border-radius: 10px; + --control-select-button-border-radius: 10px; + } + ha-control-button-group { + margin: 0 12px 12px 12px; + --control-button-group-spacing: 12px; + } + .container { + padding: 0 12px 12px 12px; + width: auto; + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "hui-water-heater-operation-modes-feature": HuiWaterHeaterOperationModeTileFeature; + } +} diff --git a/src/panels/lovelace/tile-features/types.ts b/src/panels/lovelace/tile-features/types.ts index ae1181e4b6..66313a881a 100644 --- a/src/panels/lovelace/tile-features/types.ts +++ b/src/panels/lovelace/tile-features/types.ts @@ -1,5 +1,6 @@ import { AlarmMode } from "../../../data/alarm_control_panel"; import { HvacMode } from "../../../data/climate"; +import { OperationMode } from "../../../data/water_heater"; export interface CoverOpenCloseTileFeatureConfig { type: "cover-open-close"; @@ -27,6 +28,11 @@ export interface ClimateHvacModesTileFeatureConfig { hvac_modes?: HvacMode[]; } +export interface WaterHeaterOperationModesTileFeatureConfig { + type: "water-heater-operation-modes"; + operation_modes?: OperationMode[]; +} + export const VACUUM_COMMANDS = [ "start_pause", "stop", @@ -49,7 +55,8 @@ export type LovelaceTileFeatureConfig = | VacuumCommandsTileFeatureConfig | FanSpeedTileFeatureConfig | AlarmModesTileFeatureConfig - | ClimateHvacModesTileFeatureConfig; + | ClimateHvacModesTileFeatureConfig + | WaterHeaterOperationModesTileFeatureConfig; export type LovelaceTileFeatureContext = { entity_id?: string; diff --git a/src/translations/en.json b/src/translations/en.json index 387a8af714..346fed4163 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -5000,8 +5000,12 @@ } }, "climate-hvac-modes": { - "label": "HVAC modes", - "hvac_modes": "Modes" + "label": "Climate HVAC modes", + "hvac_modes": "HVAC modes" + }, + "water-heater-operation-modes": { + "label": "Water heater operation modes", + "operation_modes": "Operation modes" } } } From 4972db46480daac2830656ad2cdd364b3a640b99 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Aug 2023 17:26:03 +0200 Subject: [PATCH 080/182] Update dependency lint-staged to v14 (#17604) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index c76009867e..ce65e6c5f9 100644 --- a/package.json +++ b/package.json @@ -217,7 +217,7 @@ "husky": "8.0.3", "instant-mocha": "1.5.2", "jszip": "3.10.1", - "lint-staged": "13.3.0", + "lint-staged": "14.0.0", "lit-analyzer": "2.0.0-pre.3", "lodash.template": "4.5.0", "magic-string": "0.30.2", diff --git a/yarn.lock b/yarn.lock index 3dcf1e8b36..87f6960679 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9767,7 +9767,7 @@ __metadata: jszip: 3.10.1 leaflet: 1.9.4 leaflet-draw: 1.0.4 - lint-staged: 13.3.0 + lint-staged: 14.0.0 lit: 2.8.0 lit-analyzer: 2.0.0-pre.3 lodash.template: 4.5.0 @@ -11339,9 +11339,9 @@ __metadata: languageName: node linkType: hard -"lint-staged@npm:13.3.0": - version: 13.3.0 - resolution: "lint-staged@npm:13.3.0" +"lint-staged@npm:14.0.0": + version: 14.0.0 + resolution: "lint-staged@npm:14.0.0" dependencies: chalk: 5.3.0 commander: 11.0.0 @@ -11355,7 +11355,7 @@ __metadata: yaml: 2.3.1 bin: lint-staged: bin/lint-staged.js - checksum: f7c146cc2849c9ce4f1d2808d990fcbdef5e0bb79e6e79cc895f53c91f5ac4dcefdb8c3465156b38a015dcb051f2795c6bda4f20a1e2f2fa654c7ba521b2d2e0 + checksum: 7269cd21c15a7b5734a28775f879a91f6b59291bec9a897a1f2faae1cd8316dd50e19fd13207fb6798c705eb5371a25caee0e2dfd5932fbcd38ea5f8155f918c languageName: node linkType: hard From 872128d9a807c4c248536bc9a86c269a7f881381 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Aug 2023 17:26:30 +0200 Subject: [PATCH 081/182] Update dependency luxon to v3.4.0 (#17559) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index ce65e6c5f9..8a0edfc2c4 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "leaflet": "1.9.4", "leaflet-draw": "1.0.4", "lit": "2.8.0", - "luxon": "3.3.0", + "luxon": "3.4.0", "marked": "4.3.0", "memoize-one": "6.0.0", "node-vibrant": "3.2.1-alpha.1", diff --git a/yarn.lock b/yarn.lock index 87f6960679..fc2c0dd1eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9771,7 +9771,7 @@ __metadata: lit: 2.8.0 lit-analyzer: 2.0.0-pre.3 lodash.template: 4.5.0 - luxon: 3.3.0 + luxon: 3.4.0 magic-string: 0.30.2 map-stream: 0.0.7 marked: 4.3.0 @@ -11664,10 +11664,10 @@ __metadata: languageName: node linkType: hard -"luxon@npm:3.3.0": - version: 3.3.0 - resolution: "luxon@npm:3.3.0" - checksum: 50cf17a0dc155c3dcacbeae8c0b7e80db425e0ba97b9cbdf12a7fc142d841ff1ab1560919f033af46240ed44e2f70c49f76e3422524c7fc8bb8d81ca47c66187 +"luxon@npm:3.4.0": + version: 3.4.0 + resolution: "luxon@npm:3.4.0" + checksum: ca9b6d0e0a8d156574b7e84014ac8e4b60d116d6d7a0fb65ef48eeb8e4415dad6350b76c5ee34f795cadf8b3f9a5fe7a6885733f561e554c50dffb0b704a840b languageName: node linkType: hard From b91261a7896c088a6af5f8de5050677490fd61c4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Aug 2023 17:27:22 +0200 Subject: [PATCH 082/182] Update dependency @lrnwebcomponents/simple-tooltip to v7.0.15 (#17324) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 8a0edfc2c4..5cfe390c7b 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "@lit-labs/context": "0.3.3", "@lit-labs/motion": "1.0.3", "@lit-labs/virtualizer": "2.0.4", - "@lrnwebcomponents/simple-tooltip": "7.0.11", + "@lrnwebcomponents/simple-tooltip": "7.0.15", "@material/chips": "=14.0.0-canary.53b3cad2f.0", "@material/data-table": "=14.0.0-canary.53b3cad2f.0", "@material/mwc-button": "0.27.0", diff --git a/yarn.lock b/yarn.lock index fc2c0dd1eb..040af2af9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2130,12 +2130,12 @@ __metadata: languageName: node linkType: hard -"@lrnwebcomponents/simple-tooltip@npm:7.0.11": - version: 7.0.11 - resolution: "@lrnwebcomponents/simple-tooltip@npm:7.0.11" +"@lrnwebcomponents/simple-tooltip@npm:7.0.15": + version: 7.0.15 + resolution: "@lrnwebcomponents/simple-tooltip@npm:7.0.15" dependencies: - lit: ^2.7.5 - checksum: 95c89d1f6ace6229b8661d953c792cef4d0842cbf4de830505a75f5fef9a312f730a7b0085aa11bb4e8e6c8a94d4c1d3512127d208695274f130e9f360f770b9 + lit: ^2.7.6 + checksum: 01cb532415f3434be9d42025f71979216717c7f0a4a626f4d84626c3ce3b4f35514002e2b6bf4ccd9faab9c3d6eb8c08db4a17c0b6e8959c34f0708fcd64bcce languageName: node linkType: hard @@ -9641,7 +9641,7 @@ __metadata: "@lit-labs/context": 0.3.3 "@lit-labs/motion": 1.0.3 "@lit-labs/virtualizer": 2.0.4 - "@lrnwebcomponents/simple-tooltip": 7.0.11 + "@lrnwebcomponents/simple-tooltip": 7.0.15 "@material/chips": =14.0.0-canary.53b3cad2f.0 "@material/data-table": =14.0.0-canary.53b3cad2f.0 "@material/mwc-button": 0.27.0 @@ -11428,7 +11428,7 @@ __metadata: languageName: node linkType: hard -"lit@npm:2.8.0, lit@npm:^2.0.0, lit@npm:^2.0.0-rc.2, lit@npm:^2.2.1, lit@npm:^2.7.0, lit@npm:^2.7.4, lit@npm:^2.7.5": +"lit@npm:2.8.0, lit@npm:^2.0.0, lit@npm:^2.0.0-rc.2, lit@npm:^2.2.1, lit@npm:^2.7.0, lit@npm:^2.7.4, lit@npm:^2.7.6": version: 2.8.0 resolution: "lit@npm:2.8.0" dependencies: From d579f93aa719fc5d3fd338fced116875de6ef0f6 Mon Sep 17 00:00:00 2001 From: ildar170975 <71872483+ildar170975@users.noreply.github.com> Date: Thu, 17 Aug 2023 18:30:18 +0300 Subject: [PATCH 083/182] Update developer-tools-state.js: widen "Set state" controls (#17500) --- src/panels/developer-tools/state/developer-tools-state.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/panels/developer-tools/state/developer-tools-state.js b/src/panels/developer-tools/state/developer-tools-state.js index 214473610f..3af09b0667 100644 --- a/src/panels/developer-tools/state/developer-tools-state.js +++ b/src/panels/developer-tools/state/developer-tools-state.js @@ -61,7 +61,7 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { .inputs { width: 100%; - max-width: 400px; + max-width: 800px; } .info { From d6b4dbe6a286c8160838f08b84378877f34074c4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Aug 2023 15:37:03 +0000 Subject: [PATCH 084/182] Update dependency @lit-labs/motion to v1.0.4 (#17498) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 5cfe390c7b..eb3208b348 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "@fullcalendar/timegrid": "6.1.8", "@lezer/highlight": "1.1.6", "@lit-labs/context": "0.3.3", - "@lit-labs/motion": "1.0.3", + "@lit-labs/motion": "1.0.4", "@lit-labs/virtualizer": "2.0.4", "@lrnwebcomponents/simple-tooltip": "7.0.15", "@material/chips": "=14.0.0-canary.53b3cad2f.0", diff --git a/yarn.lock b/yarn.lock index 040af2af9a..6c62e1a368 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2095,12 +2095,12 @@ __metadata: languageName: node linkType: hard -"@lit-labs/motion@npm:1.0.3": - version: 1.0.3 - resolution: "@lit-labs/motion@npm:1.0.3" +"@lit-labs/motion@npm:1.0.4": + version: 1.0.4 + resolution: "@lit-labs/motion@npm:1.0.4" dependencies: - lit: ^2.0.0 - checksum: 126fd10df999e10e669d82e3961a01d750ffa7597f32427ea452ab92a24fbb7070358fb3a6a19147bb76652aa2d452ba3d73fd7fca49e381f42858ed4baf482d + lit: ^2.8.0 + checksum: 79ed93d6cd40e253c5a90b50f110e67ff034d6d7a8a3dac9d94ef7f9125acf8f2f770d4e0b55c2b2a86bee360467184eaff24589ca03710fb5809cc8d15287db languageName: node linkType: hard @@ -9639,7 +9639,7 @@ __metadata: "@koa/cors": 4.0.0 "@lezer/highlight": 1.1.6 "@lit-labs/context": 0.3.3 - "@lit-labs/motion": 1.0.3 + "@lit-labs/motion": 1.0.4 "@lit-labs/virtualizer": 2.0.4 "@lrnwebcomponents/simple-tooltip": 7.0.15 "@material/chips": =14.0.0-canary.53b3cad2f.0 @@ -11428,7 +11428,7 @@ __metadata: languageName: node linkType: hard -"lit@npm:2.8.0, lit@npm:^2.0.0, lit@npm:^2.0.0-rc.2, lit@npm:^2.2.1, lit@npm:^2.7.0, lit@npm:^2.7.4, lit@npm:^2.7.6": +"lit@npm:2.8.0, lit@npm:^2.0.0, lit@npm:^2.0.0-rc.2, lit@npm:^2.2.1, lit@npm:^2.7.0, lit@npm:^2.7.4, lit@npm:^2.7.6, lit@npm:^2.8.0": version: 2.8.0 resolution: "lit@npm:2.8.0" dependencies: From 6584dc70b7040f7e13a986d38f5438eee8834b8c Mon Sep 17 00:00:00 2001 From: PaoloTK <60204407+PaoloTK@users.noreply.github.com> Date: Thu, 17 Aug 2023 17:45:42 +0200 Subject: [PATCH 085/182] Added support for color temperature tile feature (#16515) * Added support for color temperature tile feature * Update src/panels/lovelace/tile-features/hui-light-color-temp-tile-feature.ts --------- Co-authored-by: Paul Bottein --- gallery/src/pages/lovelace/tile-card.ts | 11 +- .../create-tile-feature-element.ts | 2 + .../hui-tile-card-features-editor.ts | 3 + .../hui-light-color-temp-tile-feature.ts | 111 ++++++++++++++++++ src/panels/lovelace/tile-features/types.ts | 5 + src/translations/en.json | 3 + 6 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 src/panels/lovelace/tile-features/hui-light-color-temp-tile-feature.ts diff --git a/gallery/src/pages/lovelace/tile-card.ts b/gallery/src/pages/lovelace/tile-card.ts index 00e1e29376..b161b51a52 100644 --- a/gallery/src/pages/lovelace/tile-card.ts +++ b/gallery/src/pages/lovelace/tile-card.ts @@ -14,7 +14,7 @@ const ENTITIES = [ }), getEntity("light", "bed_light", "on", { friendly_name: "Bed Light", - supported_color_modes: [LightColorMode.HS], + supported_color_modes: [LightColorMode.HS, LightColorMode.COLOR_TEMP], }), getEntity("light", "unavailable", "unavailable", { friendly_name: "Unavailable entity", @@ -116,6 +116,15 @@ const CONFIGS = [ - type: "light-brightness" `, }, + { + heading: "Light color temperature feature", + config: ` +- type: tile + entity: light.bed_light + features: + - type: "color-temp" + `, + }, { heading: "Vacuum commands feature", config: ` diff --git a/src/panels/lovelace/create-element/create-tile-feature-element.ts b/src/panels/lovelace/create-element/create-tile-feature-element.ts index 5597f2cac2..1f33678be3 100644 --- a/src/panels/lovelace/create-element/create-tile-feature-element.ts +++ b/src/panels/lovelace/create-element/create-tile-feature-element.ts @@ -4,6 +4,7 @@ import "../tile-features/hui-cover-open-close-tile-feature"; import "../tile-features/hui-cover-tilt-tile-feature"; import "../tile-features/hui-fan-speed-tile-feature"; import "../tile-features/hui-light-brightness-tile-feature"; +import "../tile-features/hui-light-color-temp-tile-feature"; import "../tile-features/hui-vacuum-commands-tile-feature"; import "../tile-features/hui-water-heater-operation-modes-tile-feature"; import { LovelaceTileFeatureConfig } from "../tile-features/types"; @@ -16,6 +17,7 @@ const TYPES: Set = new Set([ "cover-open-close", "cover-tilt", "light-brightness", + "light-color-temp", "vacuum-commands", "fan-speed", "alarm-modes", diff --git a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts index e2b1a350c7..18091a89b3 100644 --- a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts @@ -31,6 +31,7 @@ import { supportsCoverOpenCloseTileFeature } from "../../tile-features/hui-cover import { supportsCoverTiltTileFeature } from "../../tile-features/hui-cover-tilt-tile-feature"; import { supportsFanSpeedTileFeature } from "../../tile-features/hui-fan-speed-tile-feature"; import { supportsLightBrightnessTileFeature } from "../../tile-features/hui-light-brightness-tile-feature"; +import { supportsLightColorTempTileFeature } from "../../tile-features/hui-light-color-temp-tile-feature"; import { supportsVacuumCommandTileFeature } from "../../tile-features/hui-vacuum-commands-tile-feature"; import { supportsWaterHeaterOperationModesTileFeature } from "../../tile-features/hui-water-heater-operation-modes-tile-feature"; import { LovelaceTileFeatureConfig } from "../../tile-features/types"; @@ -42,6 +43,7 @@ const FEATURE_TYPES: FeatureType[] = [ "cover-open-close", "cover-tilt", "light-brightness", + "light-color-temp", "vacuum-commands", "fan-speed", "alarm-modes", @@ -61,6 +63,7 @@ const SUPPORTS_FEATURE_TYPES: Record = "cover-open-close": supportsCoverOpenCloseTileFeature, "cover-tilt": supportsCoverTiltTileFeature, "light-brightness": supportsLightBrightnessTileFeature, + "light-color-temp": supportsLightColorTempTileFeature, "vacuum-commands": supportsVacuumCommandTileFeature, "fan-speed": supportsFanSpeedTileFeature, "alarm-modes": supportsAlarmModesTileFeature, diff --git a/src/panels/lovelace/tile-features/hui-light-color-temp-tile-feature.ts b/src/panels/lovelace/tile-features/hui-light-color-temp-tile-feature.ts new file mode 100644 index 0000000000..78fbab6367 --- /dev/null +++ b/src/panels/lovelace/tile-features/hui-light-color-temp-tile-feature.ts @@ -0,0 +1,111 @@ +import { HassEntity } from "home-assistant-js-websocket"; +import { css, html, LitElement, nothing } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import { computeDomain } from "../../../common/entity/compute_domain"; +import { stateActive } from "../../../common/entity/state_active"; +import "../../../components/ha-control-slider"; +import { UNAVAILABLE } from "../../../data/entity"; +import { LightColorMode, lightSupportsColorMode } from "../../../data/light"; +import { HomeAssistant } from "../../../types"; +import { LovelaceTileFeature } from "../types"; +import { LightColorTempTileFeatureConfig } from "./types"; + +export const supportsLightColorTempTileFeature = (stateObj: HassEntity) => { + const domain = computeDomain(stateObj.entity_id); + return ( + domain === "light" && + lightSupportsColorMode(stateObj, LightColorMode.COLOR_TEMP) + ); +}; + +@customElement("hui-light-color-temp-tile-feature") +class HuiLightColorTempTileFeature + extends LitElement + implements LovelaceTileFeature +{ + @property({ attribute: false }) public hass?: HomeAssistant; + + @property({ attribute: false }) public stateObj?: HassEntity; + + @state() private _config?: LightColorTempTileFeatureConfig; + + static getStubConfig(): LightColorTempTileFeatureConfig { + return { + type: "light-color-temp", + }; + } + + public setConfig(config: LightColorTempTileFeatureConfig): void { + if (!config) { + throw new Error("Invalid configuration"); + } + this._config = config; + } + + protected render() { + if ( + !this._config || + !this.hass || + !this.stateObj || + !supportsLightColorTempTileFeature(this.stateObj) + ) { + return nothing; + } + + const position = + this.stateObj.attributes.color_temp_kelvin != null + ? this.stateObj.attributes.color_temp_kelvin + : undefined; + + return html` +
+ +
+ `; + } + + private _valueChanged(ev: CustomEvent) { + ev.stopPropagation(); + const value = ev.detail.value; + + this.hass!.callService("light", "turn_on", { + entity_id: this.stateObj!.entity_id, + color_temp_kelvin: value, + }); + } + + static get styles() { + return css` + ha-control-slider { + --control-slider-background: -webkit-linear-gradient( + left, + rgb(255, 160, 0) 0%, + white 50%, + rgb(166, 209, 255) 100% + ); + --control-slider-background-opacity: 1; + --control-slider-thickness: 40px; + --control-slider-border-radius: 10px; + } + .container { + padding: 0 12px 12px 12px; + width: auto; + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "hui-light-color-temp-tile-feature": HuiLightColorTempTileFeature; + } +} diff --git a/src/panels/lovelace/tile-features/types.ts b/src/panels/lovelace/tile-features/types.ts index 66313a881a..478d4e98e2 100644 --- a/src/panels/lovelace/tile-features/types.ts +++ b/src/panels/lovelace/tile-features/types.ts @@ -14,6 +14,10 @@ export interface LightBrightnessTileFeatureConfig { type: "light-brightness"; } +export interface LightColorTempTileFeatureConfig { + type: "light-color-temp"; +} + export interface FanSpeedTileFeatureConfig { type: "fan-speed"; } @@ -52,6 +56,7 @@ export type LovelaceTileFeatureConfig = | CoverOpenCloseTileFeatureConfig | CoverTiltTileFeatureConfig | LightBrightnessTileFeatureConfig + | LightColorTempTileFeatureConfig | VacuumCommandsTileFeatureConfig | FanSpeedTileFeatureConfig | AlarmModesTileFeatureConfig diff --git a/src/translations/en.json b/src/translations/en.json index 346fed4163..90727c1ad3 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -4988,6 +4988,9 @@ "light-brightness": { "label": "Light brightness" }, + "light-color-temp": { + "label": "Light color temperature" + }, "vacuum-commands": { "label": "Vacuum commands", "commands": "Commands", From 265faddfa92d9e042b9b469a1c980bbbc4c7ec3c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Aug 2023 15:51:59 +0000 Subject: [PATCH 086/182] Update dependency @lit-labs/virtualizer to v2.0.5 (#17499) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index eb3208b348..aede997b85 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "@lezer/highlight": "1.1.6", "@lit-labs/context": "0.3.3", "@lit-labs/motion": "1.0.4", - "@lit-labs/virtualizer": "2.0.4", + "@lit-labs/virtualizer": "2.0.5", "@lrnwebcomponents/simple-tooltip": "7.0.15", "@material/chips": "=14.0.0-canary.53b3cad2f.0", "@material/data-table": "=14.0.0-canary.53b3cad2f.0", diff --git a/yarn.lock b/yarn.lock index 6c62e1a368..f7576a4a2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2111,13 +2111,13 @@ __metadata: languageName: node linkType: hard -"@lit-labs/virtualizer@npm:2.0.4": - version: 2.0.4 - resolution: "@lit-labs/virtualizer@npm:2.0.4" +"@lit-labs/virtualizer@npm:2.0.5": + version: 2.0.5 + resolution: "@lit-labs/virtualizer@npm:2.0.5" dependencies: - lit: ^2.7.0 + lit: ^2.8.0 tslib: ^2.0.3 - checksum: a830318c50a4bc404829ab5ca3b81fa1bd72cd63bd0195c3e224dfe16cdc0c54335cd6ced222310b4a8aed438ca9ef8481e29e030b7f1a784345ffd7503439a0 + checksum: f2f2805551fe97128d131ce3fb12a275ab0935c3be4d4da816d088ee4abf0737b63e3ad0310c24bfb0afd89a85120033e55dd3ec4887e33b538d45e9644a02d9 languageName: node linkType: hard @@ -9640,7 +9640,7 @@ __metadata: "@lezer/highlight": 1.1.6 "@lit-labs/context": 0.3.3 "@lit-labs/motion": 1.0.4 - "@lit-labs/virtualizer": 2.0.4 + "@lit-labs/virtualizer": 2.0.5 "@lrnwebcomponents/simple-tooltip": 7.0.15 "@material/chips": =14.0.0-canary.53b3cad2f.0 "@material/data-table": =14.0.0-canary.53b3cad2f.0 From 88721df63785480baf9a7f56262051df8d42f0ae Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Thu, 17 Aug 2023 17:56:31 +0200 Subject: [PATCH 087/182] Bump marked (#17609) --- package.json | 3 +-- src/resources/markdown-worker.ts | 4 ++-- yarn.lock | 18 +++++------------- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index aede997b85..7d29ed458a 100644 --- a/package.json +++ b/package.json @@ -122,7 +122,7 @@ "leaflet-draw": "1.0.4", "lit": "2.8.0", "luxon": "3.4.0", - "marked": "4.3.0", + "marked": "7.0.2", "memoize-one": "6.0.0", "node-vibrant": "3.2.1-alpha.1", "proxy-polyfill": "0.3.2", @@ -177,7 +177,6 @@ "@types/leaflet": "1.9.3", "@types/leaflet-draw": "1.0.7", "@types/luxon": "3.3.1", - "@types/marked": "4.3.1", "@types/mocha": "10.0.1", "@types/qrcode": "1.5.1", "@types/serve-handler": "6.1.1", diff --git a/src/resources/markdown-worker.ts b/src/resources/markdown-worker.ts index bc653a0587..8cf35f4422 100644 --- a/src/resources/markdown-worker.ts +++ b/src/resources/markdown-worker.ts @@ -1,7 +1,7 @@ // To use comlink under ES5 import "proxy-polyfill"; import { expose } from "comlink"; -import { marked } from "marked"; +import { marked, MarkedOptions } from "marked"; import { filterXSS, getDefaultWhiteList, IWhiteList } from "xss"; let whiteListNormal: IWhiteList | undefined; @@ -31,7 +31,7 @@ const onTagAttr = ( const renderMarkdown = ( content: string, - markedOptions: marked.MarkedOptions, + markedOptions: MarkedOptions, hassOptions: { // Do not allow SVG on untrusted content, it allows XSS. allowSvg?: boolean; diff --git a/yarn.lock b/yarn.lock index f7576a4a2c..9048dfada5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4412,13 +4412,6 @@ __metadata: languageName: node linkType: hard -"@types/marked@npm:4.3.1": - version: 4.3.1 - resolution: "@types/marked@npm:4.3.1" - checksum: eb6891b925d53ea53057f088b28f9232016499e62639cbb4a67f7d34f288ec6a8e40aae4836dbd06bd0fc3c541fca1175cd50d9e8d405547b6be7b7781e6a2a5 - languageName: node - linkType: hard - "@types/mime@npm:*": version: 3.0.1 resolution: "@types/mime@npm:3.0.1" @@ -9701,7 +9694,6 @@ __metadata: "@types/leaflet": 1.9.3 "@types/leaflet-draw": 1.0.7 "@types/luxon": 3.3.1 - "@types/marked": 4.3.1 "@types/mocha": 10.0.1 "@types/qrcode": 1.5.1 "@types/serve-handler": 6.1.1 @@ -9774,7 +9766,7 @@ __metadata: luxon: 3.4.0 magic-string: 0.30.2 map-stream: 0.0.7 - marked: 4.3.0 + marked: 7.0.2 memoize-one: 6.0.0 mocha: 10.2.0 node-vibrant: 3.2.1-alpha.1 @@ -11753,12 +11745,12 @@ __metadata: languageName: node linkType: hard -"marked@npm:4.3.0": - version: 4.3.0 - resolution: "marked@npm:4.3.0" +"marked@npm:7.0.2": + version: 7.0.2 + resolution: "marked@npm:7.0.2" bin: marked: bin/marked.js - checksum: 0db6817893952c3ec710eb9ceafb8468bf5ae38cb0f92b7b083baa13d70b19774674be04db5b817681fa7c5c6a088f61300815e4dd75a59696f4716ad69f6260 + checksum: dabfd499c4852d671b73fbd10081a93349f74e4141a29697be99d33327e9aacd30e794bcc771a397ceb8060e5205e2f82862e1623c333802a3be0594134ba6c7 languageName: node linkType: hard From 8411efc1c3b251c2ae62eee4fc34758f0a94ab33 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Aug 2023 16:09:16 +0000 Subject: [PATCH 088/182] Update dependency marked to v7.0.3 (#17539) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 7d29ed458a..12baac6693 100644 --- a/package.json +++ b/package.json @@ -122,7 +122,7 @@ "leaflet-draw": "1.0.4", "lit": "2.8.0", "luxon": "3.4.0", - "marked": "7.0.2", + "marked": "7.0.3", "memoize-one": "6.0.0", "node-vibrant": "3.2.1-alpha.1", "proxy-polyfill": "0.3.2", diff --git a/yarn.lock b/yarn.lock index 9048dfada5..c3c723bdc8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9766,7 +9766,7 @@ __metadata: luxon: 3.4.0 magic-string: 0.30.2 map-stream: 0.0.7 - marked: 7.0.2 + marked: 7.0.3 memoize-one: 6.0.0 mocha: 10.2.0 node-vibrant: 3.2.1-alpha.1 @@ -11745,12 +11745,12 @@ __metadata: languageName: node linkType: hard -"marked@npm:7.0.2": - version: 7.0.2 - resolution: "marked@npm:7.0.2" +"marked@npm:7.0.3": + version: 7.0.3 + resolution: "marked@npm:7.0.3" bin: marked: bin/marked.js - checksum: dabfd499c4852d671b73fbd10081a93349f74e4141a29697be99d33327e9aacd30e794bcc771a397ceb8060e5205e2f82862e1623c333802a3be0594134ba6c7 + checksum: 423a0bd75a6bc072d1e3bcdb888c0838dcd8468c1d2e6fc9b9e45e0f6bf39ecbfe01a32758e33b3ef8dffc9328ee63de5f4471476cfa563fc4e368d164b8eb9a languageName: node linkType: hard From bbb99a6eeeeb0dec3db075292f288095c0ff8c11 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Aug 2023 17:53:39 -0400 Subject: [PATCH 089/182] Update typescript-eslint monorepo to v6.4.0 (#17611) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- yarn.lock | 112 ++++++++++++++++++++++++--------------------------- 2 files changed, 54 insertions(+), 62 deletions(-) diff --git a/package.json b/package.json index 12baac6693..bb93f80dde 100644 --- a/package.json +++ b/package.json @@ -183,8 +183,8 @@ "@types/sortablejs": "1.15.1", "@types/tar": "6.1.5", "@types/webspeechapi": "0.0.29", - "@typescript-eslint/eslint-plugin": "6.3.0", - "@typescript-eslint/parser": "6.3.0", + "@typescript-eslint/eslint-plugin": "6.4.0", + "@typescript-eslint/parser": "6.4.0", "@web/dev-server": "0.1.38", "@web/dev-server-rollup": "0.4.1", "babel-loader": "9.1.3", diff --git a/yarn.lock b/yarn.lock index c3c723bdc8..49ff06ff95 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4641,20 +4641,19 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:6.3.0": - version: 6.3.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.3.0" +"@typescript-eslint/eslint-plugin@npm:6.4.0": + version: 6.4.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.4.0" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.3.0 - "@typescript-eslint/type-utils": 6.3.0 - "@typescript-eslint/utils": 6.3.0 - "@typescript-eslint/visitor-keys": 6.3.0 + "@typescript-eslint/scope-manager": 6.4.0 + "@typescript-eslint/type-utils": 6.4.0 + "@typescript-eslint/utils": 6.4.0 + "@typescript-eslint/visitor-keys": 6.4.0 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 natural-compare: ^1.4.0 - natural-compare-lite: ^1.4.0 semver: ^7.5.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -4663,44 +4662,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 1493c6c661993640eef56893a7919cb964165cb46653c62468e71ce02a5ec8c654dd7e9767587aea67ec16c026a5630011bc7ea6c04e2fa8a4afee7f26a51358 + checksum: d59e88228a4088f3dcaa614103eefa7a0c57315ed79ee1c48afd9817ad013522aa9a9f987e90e1fd7dccc0bbb03ed23e4df6f5ea5cceef8856db33c78ea13d53 languageName: node linkType: hard -"@typescript-eslint/parser@npm:6.3.0": - version: 6.3.0 - resolution: "@typescript-eslint/parser@npm:6.3.0" +"@typescript-eslint/parser@npm:6.4.0": + version: 6.4.0 + resolution: "@typescript-eslint/parser@npm:6.4.0" dependencies: - "@typescript-eslint/scope-manager": 6.3.0 - "@typescript-eslint/types": 6.3.0 - "@typescript-eslint/typescript-estree": 6.3.0 - "@typescript-eslint/visitor-keys": 6.3.0 + "@typescript-eslint/scope-manager": 6.4.0 + "@typescript-eslint/types": 6.4.0 + "@typescript-eslint/typescript-estree": 6.4.0 + "@typescript-eslint/visitor-keys": 6.4.0 debug: ^4.3.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: ec739adbe4a972a696b4a4625dc5c2f5b4e072968decdcafd0a9b972d0167007230951a6450becb52e187b1b90a2858debba26f73162e293f7846b373888b8e9 + checksum: 36c8dbeacfc03af9c5a4a0f065861ac6f3747fc64be582a32b0b084de5b5247cef086a0c0052291b97145e0ea8f82acbec452dd927b7b7a1917d56381d59a17c languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.3.0": - version: 6.3.0 - resolution: "@typescript-eslint/scope-manager@npm:6.3.0" +"@typescript-eslint/scope-manager@npm:6.4.0": + version: 6.4.0 + resolution: "@typescript-eslint/scope-manager@npm:6.4.0" dependencies: - "@typescript-eslint/types": 6.3.0 - "@typescript-eslint/visitor-keys": 6.3.0 - checksum: 1690465f620f2b4517d45516864ef107258b2b608293d72606d0f115e11a8c1416b3d57e1b67f1daa1838f0239f71464aead57fe77c53ebd54b0aeee5fd4cf5e + "@typescript-eslint/types": 6.4.0 + "@typescript-eslint/visitor-keys": 6.4.0 + checksum: 19406eac3a1899f77eb7c3aa52577e2146075e1318c6eb34d220678afa167832b89c90860714f33b99e107544b48f6970594ca4bcf48c5ede8f2a14a0795ba33 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.3.0": - version: 6.3.0 - resolution: "@typescript-eslint/type-utils@npm:6.3.0" +"@typescript-eslint/type-utils@npm:6.4.0": + version: 6.4.0 + resolution: "@typescript-eslint/type-utils@npm:6.4.0" dependencies: - "@typescript-eslint/typescript-estree": 6.3.0 - "@typescript-eslint/utils": 6.3.0 + "@typescript-eslint/typescript-estree": 6.4.0 + "@typescript-eslint/utils": 6.4.0 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -4708,23 +4707,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: cf2ab9d576bc9f3c0554318d20cb92671e4f46a07c24271fc47f144139b3843dab54592ee2e0962f81ad588f57a0b0a7c09d7e1047c720143a54bb1ec3ac4007 + checksum: 7930d2ffdc844a5b706d48ae3e4584882f7f0c06d581a3b06bc280a351c55974b16dbb73f1842f7389f04b80c2cfaf867edd2f261b699804d8a4fea9c20b3869 languageName: node linkType: hard -"@typescript-eslint/types@npm:6.3.0": - version: 6.3.0 - resolution: "@typescript-eslint/types@npm:6.3.0" - checksum: 3c133e4c1b06d009739f1a4387831eb99758ba45b06b6f632fe9cf14c2839fc92dcbdbb6d94ca42c1cb5ab4ca1b31a5ead50a72e0a084b62e4de15255c451160 +"@typescript-eslint/types@npm:6.4.0": + version: 6.4.0 + resolution: "@typescript-eslint/types@npm:6.4.0" + checksum: 85b293ad1559dbf8103b2c4cfd0db11c3d9c970d502e2c13d4b1d35e420567042d7077a716d2b4e5113286314d5260f378f242a6dd22ad4b94b4aa69c5f79223 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.3.0": - version: 6.3.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.3.0" +"@typescript-eslint/typescript-estree@npm:6.4.0": + version: 6.4.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.4.0" dependencies: - "@typescript-eslint/types": 6.3.0 - "@typescript-eslint/visitor-keys": 6.3.0 + "@typescript-eslint/types": 6.4.0 + "@typescript-eslint/visitor-keys": 6.4.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4733,34 +4732,34 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: b2bb03411a5d079a9fd3310eec0af3b81a99827569cb3957724071aa54ac6c88449fbd1ebb72d7a356d5994d7e9542b5292a385ca3c3b0bc8049bb61a40a8ae9 + checksum: a8db3896550515d0adf140ee115527b409916c4a14ac1f45b5623d130a27ae2d08a1ac906ceda440b01167c88846e2b91ca2025f3d718bff389948f66990c1e7 languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.3.0": - version: 6.3.0 - resolution: "@typescript-eslint/utils@npm:6.3.0" +"@typescript-eslint/utils@npm:6.4.0": + version: 6.4.0 + resolution: "@typescript-eslint/utils@npm:6.4.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.3.0 - "@typescript-eslint/types": 6.3.0 - "@typescript-eslint/typescript-estree": 6.3.0 + "@typescript-eslint/scope-manager": 6.4.0 + "@typescript-eslint/types": 6.4.0 + "@typescript-eslint/typescript-estree": 6.4.0 semver: ^7.5.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: 98a078a3948e8b6a45dec8f3be9bcb72dc98faa2fe84336b1925efb7caa06c05a2fbf7290cddb420465b415cc05252548e2b839b9311f99bce84cf856fd32888 + checksum: abc55382c601c7ed298076548d2df78f15b07ed6830086db6ce1b82d461f0a190ee103a804690ac9205cdca9f373a864e1dd3e20012e9d103f3137963e0aa5ea languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.3.0": - version: 6.3.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.3.0" +"@typescript-eslint/visitor-keys@npm:6.4.0": + version: 6.4.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.4.0" dependencies: - "@typescript-eslint/types": 6.3.0 + "@typescript-eslint/types": 6.4.0 eslint-visitor-keys: ^3.4.1 - checksum: fc3148c3284de3f42724736f312a4fd0c3c2029617ae2ea9a84cf6601d31f600ee6563f9288de162028ffffde85b58d92feaafbe75a2da863ff2c4e3a0b5ed8c + checksum: 42eb614b9c0a49b6929e093757d772fd27fe5dda9c75f4c7820d1710012c8257eea9bd4f1c4173e2265a8a9ad86cefc1a21869893e7304f3b29b94fa1f987554 languageName: node linkType: hard @@ -9700,8 +9699,8 @@ __metadata: "@types/sortablejs": 1.15.1 "@types/tar": 6.1.5 "@types/webspeechapi": 0.0.29 - "@typescript-eslint/eslint-plugin": 6.3.0 - "@typescript-eslint/parser": 6.3.0 + "@typescript-eslint/eslint-plugin": 6.4.0 + "@typescript-eslint/parser": 6.4.0 "@vaadin/combo-box": 24.1.5 "@vaadin/vaadin-themable-mixin": 24.1.5 "@vibrant/color": 3.2.1-alpha.1 @@ -12215,13 +12214,6 @@ __metadata: languageName: node linkType: hard -"natural-compare-lite@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare-lite@npm:1.4.0" - checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 - languageName: node - linkType: hard - "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" From 6e27fbe10fb26ea3d9ca4b8cd36d1c4bde903fd7 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Fri, 18 Aug 2023 10:28:27 +0200 Subject: [PATCH 090/182] Add unit when formatting attribute for display (#17607) --- .../entity/compute_attribute_display.ts | 42 ++++++++++- src/components/ha-attribute-value.ts | 9 +++ src/components/ha-climate-state.ts | 74 +++++++++---------- src/components/ha-humidifier-state.ts | 18 ++--- src/data/cover.ts | 12 ++- src/data/entity_attributes.ts | 50 +++++++++++++ src/data/fan.ts | 11 ++- src/data/weather.ts | 36 ++++----- .../climate/ha-more-info-climate-humidity.ts | 17 ++--- .../more-info/controls/more-info-climate.ts | 16 ++-- .../more-info/controls/more-info-cover.ts | 2 +- .../more-info/controls/more-info-fan.ts | 2 +- .../controls/more-info-humidifier.ts | 13 ++-- .../more-info/controls/more-info-light.ts | 22 +++--- .../more-info/controls/more-info-sun.ts | 3 +- .../more-info/controls/more-info-vacuum.ts | 16 ++-- .../controls/more-info-water_heater.ts | 9 ++- .../more-info/controls/more-info-weather.ts | 48 +++++------- src/panels/lovelace/cards/hui-entity-card.ts | 1 + src/panels/lovelace/cards/hui-tile-card.ts | 27 +++---- .../cards/hui-weather-forecast-card.ts | 11 +-- .../entity-rows/hui-weather-entity-row.ts | 27 ++----- .../special-rows/hui-attribute-row.ts | 1 + src/types.ts | 2 +- 24 files changed, 262 insertions(+), 207 deletions(-) diff --git a/src/common/entity/compute_attribute_display.ts b/src/common/entity/compute_attribute_display.ts index e4210a2509..2cee5eb84e 100644 --- a/src/common/entity/compute_attribute_display.ts +++ b/src/common/entity/compute_attribute_display.ts @@ -1,6 +1,11 @@ import { HassConfig, HassEntity } from "home-assistant-js-websocket"; +import { + DOMAIN_ATTRIBUTES_UNITS, + TEMPERATURE_ATTRIBUTES, +} from "../../data/entity_attributes"; import { EntityRegistryDisplayEntry } from "../../data/entity_registry"; import { FrontendLocaleData } from "../../data/translation"; +import { WeatherEntity, getWeatherUnit } from "../../data/weather"; import { HomeAssistant } from "../../types"; import checkValidDate from "../datetime/check_valid_date"; import { formatDate } from "../datetime/format_date"; @@ -9,8 +14,10 @@ import { formatNumber } from "../number/format_number"; import { capitalizeFirstLetter } from "../string/capitalize-first-letter"; import { isDate } from "../string/is_date"; import { isTimestamp } from "../string/is_timestamp"; +import { blankBeforePercent } from "../translations/blank_before_percent"; import { LocalizeFunc } from "../translations/localize"; import { computeDomain } from "./compute_domain"; +import { computeStateDomain } from "./compute_state_domain"; export const computeAttributeValueDisplay = ( localize: LocalizeFunc, @@ -31,7 +38,40 @@ export const computeAttributeValueDisplay = ( // Number value, return formatted number if (typeof attributeValue === "number") { - return formatNumber(attributeValue, locale); + const formattedValue = formatNumber(attributeValue, locale); + + const domain = computeStateDomain(stateObj); + + let unit = DOMAIN_ATTRIBUTES_UNITS[domain]?.[attribute] as + | string + | undefined; + + if (domain === "light" && attribute === "brightness") { + const percentage = Math.round((attributeValue / 255) * 100); + return `${percentage}${blankBeforePercent(locale)}%`; + } + + if (domain === "weather") { + unit = getWeatherUnit(config, stateObj as WeatherEntity, attribute); + } + + if (unit === "%") { + return `${formattedValue}${blankBeforePercent(locale)}${unit}`; + } + + if (unit === "°") { + return `${formattedValue}${unit}`; + } + + if (unit) { + return `${formattedValue} ${unit}`; + } + + if (TEMPERATURE_ATTRIBUTES.has(attribute)) { + return `${formattedValue} ${config.unit_system.temperature}`; + } + + return formattedValue; } // Special handling in case this is a string with an known format diff --git a/src/components/ha-attribute-value.ts b/src/components/ha-attribute-value.ts index e081f3e29a..61b943becd 100644 --- a/src/components/ha-attribute-value.ts +++ b/src/components/ha-attribute-value.ts @@ -3,6 +3,7 @@ import { html, LitElement, nothing } from "lit"; import { customElement, property } from "lit/decorators"; import { until } from "lit/directives/until"; import { HomeAssistant } from "../types"; +import { formatNumber } from "../common/number/format_number"; let jsYamlPromise: Promise; @@ -14,11 +15,19 @@ class HaAttributeValue extends LitElement { @property() public attribute!: string; + @property({ type: Boolean, attribute: "hide-unit" }) + public hideUnit?: boolean; + protected render() { if (!this.stateObj) { return nothing; } const attributeValue = this.stateObj.attributes[this.attribute]; + + if (typeof attributeValue === "number" && this.hideUnit) { + return formatNumber(attributeValue, this.hass.locale); + } + if (typeof attributeValue === "string") { // URL handling if (attributeValue.startsWith("http")) { diff --git a/src/components/ha-climate-state.ts b/src/components/ha-climate-state.ts index b90b51fee1..047407f7d3 100644 --- a/src/components/ha-climate-state.ts +++ b/src/components/ha-climate-state.ts @@ -2,9 +2,7 @@ import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { customElement, property } from "lit/decorators"; import { computeAttributeValueDisplay } from "../common/entity/compute_attribute_display"; import { computeStateDisplay } from "../common/entity/compute_state_display"; -import { formatNumber } from "../common/number/format_number"; -import { blankBeforePercent } from "../common/translations/blank_before_percent"; -import { ClimateEntity, CLIMATE_PRESET_NONE } from "../data/climate"; +import { CLIMATE_PRESET_NONE, ClimateEntity } from "../data/climate"; import { isUnavailableState } from "../data/entity"; import type { HomeAssistant } from "../types"; @@ -54,28 +52,28 @@ class HaClimateState extends LitElement { this.stateObj.attributes.current_temperature != null && this.stateObj.attributes.current_humidity != null ) { - return `${formatNumber( - this.stateObj.attributes.current_temperature, - this.hass.locale - )} ${this.hass.config.unit_system.temperature}/ - ${formatNumber( - this.stateObj.attributes.current_humidity, - this.hass.locale - )}${blankBeforePercent(this.hass.locale)}%`; + return `${this.hass.formatEntityAttributeValue( + this.stateObj, + "current_temperature" + )}/ + ${this.hass.formatEntityAttributeValue( + this.stateObj, + "current_humidity" + )}`; } if (this.stateObj.attributes.current_temperature != null) { - return `${formatNumber( - this.stateObj.attributes.current_temperature, - this.hass.locale - )} ${this.hass.config.unit_system.temperature}`; + return this.hass.formatEntityAttributeValue( + this.stateObj, + "current_temperature" + ); } if (this.stateObj.attributes.current_humidity != null) { - return `${formatNumber( - this.stateObj.attributes.current_humidity, - this.hass.locale - )}${blankBeforePercent(this.hass.locale)}%`; + return this.hass.formatEntityAttributeValue( + this.stateObj, + "current_humidity" + ); } return undefined; @@ -90,39 +88,33 @@ class HaClimateState extends LitElement { this.stateObj.attributes.target_temp_low != null && this.stateObj.attributes.target_temp_high != null ) { - return `${formatNumber( - this.stateObj.attributes.target_temp_low, - this.hass.locale - )}-${formatNumber( - this.stateObj.attributes.target_temp_high, - this.hass.locale - )} ${this.hass.config.unit_system.temperature}`; + return `${this.hass.formatEntityAttributeValue( + this.stateObj, + "target_temp_low" + )}-${this.hass.formatEntityAttributeValue( + this.stateObj, + "target_temp_high" + )}`; } if (this.stateObj.attributes.temperature != null) { - return `${formatNumber( - this.stateObj.attributes.temperature, - this.hass.locale - )} ${this.hass.config.unit_system.temperature}`; + return this.hass.formatEntityAttributeValue(this.stateObj, "temperature"); } if ( this.stateObj.attributes.target_humidity_low != null && this.stateObj.attributes.target_humidity_high != null ) { - return `${formatNumber( - this.stateObj.attributes.target_humidity_low, - this.hass.locale - )}-${formatNumber( - this.stateObj.attributes.target_humidity_high, - this.hass.locale - )} %`; + return `${this.hass.formatEntityAttributeValue( + this.stateObj, + "target_humidity_low" + )}-${this.hass.formatEntityAttributeValue( + this.stateObj, + "target_humidity_high" + )}`; } if (this.stateObj.attributes.humidity != null) { - return `${formatNumber( - this.stateObj.attributes.humidity, - this.hass.locale - )} %`; + return this.hass.formatEntityAttributeValue(this.stateObj, "humidity"); } return ""; diff --git a/src/components/ha-humidifier-state.ts b/src/components/ha-humidifier-state.ts index 45af8a3384..63fd33037c 100644 --- a/src/components/ha-humidifier-state.ts +++ b/src/components/ha-humidifier-state.ts @@ -2,8 +2,6 @@ import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { customElement, property } from "lit/decorators"; import { computeAttributeValueDisplay } from "../common/entity/compute_attribute_display"; import { computeStateDisplay } from "../common/entity/compute_state_display"; -import { formatNumber } from "../common/number/format_number"; -import { blankBeforePercent } from "../common/translations/blank_before_percent"; import { isUnavailableState, OFF } from "../data/entity"; import { HumidifierEntity } from "../data/humidifier"; import type { HomeAssistant } from "../types"; @@ -51,10 +49,10 @@ class HaHumidifierState extends LitElement { } if (this.stateObj.attributes.current_humidity != null) { - return `${formatNumber( - this.stateObj.attributes.current_humidity, - this.hass.locale - )}${blankBeforePercent(this.hass.locale)}%`; + return `${this.hass.formatEntityAttributeValue( + this.stateObj, + "current_humidity" + )}`; } return undefined; @@ -66,10 +64,10 @@ class HaHumidifierState extends LitElement { } if (this.stateObj.attributes.humidity != null) { - return `${formatNumber( - this.stateObj.attributes.humidity, - this.hass.locale - )}${blankBeforePercent(this.hass.locale)}%`; + return `${this.hass.formatEntityAttributeValue( + this.stateObj, + "humidity" + )}`; } return ""; diff --git a/src/data/cover.ts b/src/data/cover.ts index af372dd5a9..28ab3ebe1d 100644 --- a/src/data/cover.ts +++ b/src/data/cover.ts @@ -4,9 +4,8 @@ import { } from "home-assistant-js-websocket"; import { stateActive } from "../common/entity/state_active"; import { supportsFeature } from "../common/entity/supports-feature"; -import { blankBeforePercent } from "../common/translations/blank_before_percent"; +import type { HomeAssistant } from "../types"; import { UNAVAILABLE } from "./entity"; -import { FrontendLocaleData } from "./translation"; export const enum CoverEntityFeature { OPEN = 1, @@ -112,7 +111,7 @@ export interface CoverEntity extends HassEntityBase { export function computeCoverPositionStateDisplay( stateObj: CoverEntity, - locale: FrontendLocaleData, + hass: HomeAssistant, position?: number ) { const statePosition = stateActive(stateObj) @@ -123,6 +122,11 @@ export function computeCoverPositionStateDisplay( const currentPosition = position ?? statePosition; return currentPosition && currentPosition !== 100 - ? `${Math.round(currentPosition)}${blankBeforePercent(locale)}%` + ? hass.formatEntityAttributeValue( + stateObj, + // Always use position as it's the same formatting as tilt position + "current_position", + Math.round(currentPosition) + ) : ""; } diff --git a/src/data/entity_attributes.ts b/src/data/entity_attributes.ts index 77dcc0b465..14e1c6ce27 100644 --- a/src/data/entity_attributes.ts +++ b/src/data/entity_attributes.ts @@ -21,3 +21,53 @@ export const STATE_ATTRIBUTES = [ "supported_features", "unit_of_measurement", ]; + +export const TEMPERATURE_ATTRIBUTES = new Set([ + "temperature", + "current_temperature", + "target_temperature", + "target_temp_temp", + "target_temp_high", + "target_temp_step", + "min_temp", + "max_temp", +]); + +export const DOMAIN_ATTRIBUTES_UNITS: Record> = { + climate: { + humidity: "%", + current_humidity: "%", + target_humidity_low: "%", + target_humidity_high: "%", + target_humidity_step: "%", + min_humidity: "%", + max_humidity: "%", + }, + cover: { + current_position: "%", + current_tilt_position: "%", + }, + fan: { + percentage: "%", + }, + humidifier: { + humidity: "%", + current_humidity: "%", + min_humidity: "%", + max_humidity: "%", + }, + light: { + color_temp: "mired", + max_mireds: "mired", + min_mireds: "mired", + color_temp_kelvin: "K", + min_color_temp_kelvin: "K", + max_color_temp_kelvin: "K", + }, + sun: { + elevation: "°", + }, + vaccum: { + battery_level: "%", + }, +}; diff --git a/src/data/fan.ts b/src/data/fan.ts index c5c11d8e00..11da23529c 100644 --- a/src/data/fan.ts +++ b/src/data/fan.ts @@ -10,8 +10,7 @@ import { HassEntityBase, } from "home-assistant-js-websocket"; import { stateActive } from "../common/entity/state_active"; -import { blankBeforePercent } from "../common/translations/blank_before_percent"; -import { FrontendLocaleData } from "./translation"; +import type { HomeAssistant } from "../types"; export const enum FanEntityFeature { SET_SPEED = 1, @@ -97,7 +96,7 @@ export const FAN_SPEED_COUNT_MAX_FOR_BUTTONS = 4; export function computeFanSpeedStateDisplay( stateObj: FanEntity, - locale: FrontendLocaleData, + hass: HomeAssistant, speed?: number ) { const percentage = stateActive(stateObj) @@ -106,6 +105,10 @@ export function computeFanSpeedStateDisplay( const currentSpeed = speed ?? percentage; return currentSpeed - ? `${Math.floor(currentSpeed)}${blankBeforePercent(locale)}%` + ? hass.formatEntityAttributeValue( + stateObj, + "percentage", + Math.round(currentSpeed) + ) : ""; } diff --git a/src/data/weather.ts b/src/data/weather.ts index 1c2b23939d..4efa71b0c7 100644 --- a/src/data/weather.ts +++ b/src/data/weather.ts @@ -19,13 +19,14 @@ import { mdiWeatherWindyVariant, } from "@mdi/js"; import { + HassConfig, HassEntityAttributeBase, HassEntityBase, } from "home-assistant-js-websocket"; -import { css, html, svg, SVGTemplateResult, TemplateResult } from "lit"; +import { SVGTemplateResult, TemplateResult, css, html, svg } from "lit"; import { styleMap } from "lit/directives/style-map"; import { supportsFeature } from "../common/entity/supports-feature"; -import { formatNumber } from "../common/number/format_number"; +import { round } from "../common/number/round"; import "../components/ha-svg-icon"; import type { HomeAssistant } from "../types"; @@ -187,11 +188,7 @@ export const getWind = ( ): string => { const speedText = speed !== undefined && speed !== null - ? `${formatNumber(speed, hass.locale)} ${getWeatherUnit( - hass!, - stateObj, - "wind_speed" - )}` + ? hass.formatEntityAttributeValue(stateObj, "wind_speed", speed) : "-"; if (bearing !== undefined && bearing !== null) { const cardinalDirection = getWindBearing(bearing); @@ -205,11 +202,11 @@ export const getWind = ( }; export const getWeatherUnit = ( - hass: HomeAssistant, + config: HassConfig, stateObj: WeatherEntity, measure: string ): string => { - const lengthUnit = hass.config.unit_system.length || ""; + const lengthUnit = config.unit_system.length || ""; switch (measure) { case "visibility": return stateObj.attributes.visibility_unit || lengthUnit; @@ -224,9 +221,9 @@ export const getWeatherUnit = ( (lengthUnit === "km" ? "hPa" : "inHg") ); case "temperature": + case "templow": return ( - stateObj.attributes.temperature_unit || - hass.config.unit_system.temperature + stateObj.attributes.temperature_unit || config.unit_system.temperature ); case "wind_speed": return stateObj.attributes.wind_speed_unit || `${lengthUnit}/h`; @@ -234,7 +231,7 @@ export const getWeatherUnit = ( case "precipitation_probability": return "%"; default: - return hass.config.unit_system[measure] || ""; + return config.unit_system[measure] || ""; } }; @@ -268,14 +265,15 @@ export const getSecondaryWeatherAttribute = ( const weatherAttrIcon = weatherAttrIcons[attribute]; + const roundedValue = round(value, 1); + return html` ${weatherAttrIcon ? html` ` : hass!.localize(`ui.card.weather.attributes.${attribute}`)} - ${formatNumber(value, hass.locale, { maximumFractionDigits: 1 })} - ${getWeatherUnit(hass!, stateObj, attribute)} + ${hass.formatEntityAttributeValue(stateObj, attribute, roundedValue)} `; }; @@ -311,12 +309,14 @@ const getWeatherExtrema = ( return undefined; } - const unit = getWeatherUnit(hass!, stateObj, "temperature"); - return html` - ${tempHigh ? `${formatNumber(tempHigh, hass.locale)} ${unit}` : ""} + ${tempHigh + ? hass.formatEntityAttributeValue(stateObj, "temperature", tempHigh) + : ""} ${tempLow && tempHigh ? " / " : ""} - ${tempLow ? `${formatNumber(tempLow, hass.locale)} ${unit}` : ""} + ${tempLow + ? hass.formatEntityAttributeValue(stateObj, "temperature", tempLow) + : ""} `; }; diff --git a/src/dialogs/more-info/components/climate/ha-more-info-climate-humidity.ts b/src/dialogs/more-info/components/climate/ha-more-info-climate-humidity.ts index 372c7dae20..5225d51045 100644 --- a/src/dialogs/more-info/components/climate/ha-more-info-climate-humidity.ts +++ b/src/dialogs/more-info/components/climate/ha-more-info-climate-humidity.ts @@ -6,8 +6,6 @@ import { stateActive } from "../../../../common/entity/state_active"; import { domainStateColorProperties } from "../../../../common/entity/state_color"; import { supportsFeature } from "../../../../common/entity/supports-feature"; import { clamp } from "../../../../common/number/clamp"; -import { formatNumber } from "../../../../common/number/format_number"; -import { blankBeforePercent } from "../../../../common/translations/blank_before_percent"; import { debounce } from "../../../../common/util/debounce"; import "../../../../components/ha-control-circular-slider"; import "../../../../components/ha-outlined-icon-button"; @@ -116,18 +114,19 @@ export class HaMoreInfoClimateHumidity extends LitElement { } private _renderTarget(humidity: number) { - const formatted = formatNumber(humidity, this.hass.locale, { - maximumFractionDigits: 0, - }); + const rounded = Math.round(humidity); + const formatted = this.hass.formatEntityAttributeValue( + this.stateObj, + "humidity", + rounded + ); return html`
-

- ${formatted}${blankBeforePercent(this.hass.locale)}% + ${rounded}%

+

${formatted}

`; } diff --git a/src/dialogs/more-info/controls/more-info-climate.ts b/src/dialogs/more-info/controls/more-info-climate.ts index fed9699e55..50f71dd212 100644 --- a/src/dialogs/more-info/controls/more-info-climate.ts +++ b/src/dialogs/more-info/controls/more-info-climate.ts @@ -18,8 +18,6 @@ import { property, state } from "lit/decorators"; import { fireEvent } from "../../../common/dom/fire_event"; import { stopPropagation } from "../../../common/dom/stop_propagation"; import { supportsFeature } from "../../../common/entity/supports-feature"; -import { formatNumber } from "../../../common/number/format_number"; -import { blankBeforePercent } from "../../../common/translations/blank_before_percent"; import "../../../components/ha-control-select-menu"; import "../../../components/ha-icon-button-group"; import "../../../components/ha-icon-button-toggle"; @@ -92,8 +90,10 @@ class MoreInfoClimate extends LitElement { )}

- ${formatNumber(currentTemperature, this.hass.locale)} - ${this.hass.config.unit_system.temperature} + ${this.hass.formatEntityAttributeValue( + this.stateObj, + "current_temperature" + )}

` @@ -108,10 +108,10 @@ class MoreInfoClimate extends LitElement { )}

- ${formatNumber( - currentHumidity, - this.hass.locale - )}${blankBeforePercent(this.hass.locale)}% + ${this.hass.formatEntityAttributeValue( + this.stateObj, + "current_humidity" + )}

` diff --git a/src/dialogs/more-info/controls/more-info-cover.ts b/src/dialogs/more-info/controls/more-info-cover.ts index 3ea0907245..d685d1bb63 100644 --- a/src/dialogs/more-info/controls/more-info-cover.ts +++ b/src/dialogs/more-info/controls/more-info-cover.ts @@ -94,7 +94,7 @@ class MoreInfoCover extends LitElement { const positionStateDisplay = computeCoverPositionStateDisplay( this.stateObj!, - this.hass.locale, + this.hass, liveValue ); diff --git a/src/dialogs/more-info/controls/more-info-fan.ts b/src/dialogs/more-info/controls/more-info-fan.ts index dca3fb00dc..b6e6901ebf 100644 --- a/src/dialogs/more-info/controls/more-info-fan.ts +++ b/src/dialogs/more-info/controls/more-info-fan.ts @@ -112,7 +112,7 @@ class MoreInfoFan extends LitElement { const positionStateDisplay = computeFanSpeedStateDisplay( this.stateObj!, - this.hass.locale, + this.hass, liveValue ); diff --git a/src/dialogs/more-info/controls/more-info-humidifier.ts b/src/dialogs/more-info/controls/more-info-humidifier.ts index 41efc8aa5f..20c735e243 100644 --- a/src/dialogs/more-info/controls/more-info-humidifier.ts +++ b/src/dialogs/more-info/controls/more-info-humidifier.ts @@ -16,8 +16,6 @@ import { } from "../../../common/entity/compute_attribute_display"; import { computeStateDisplay } from "../../../common/entity/compute_state_display"; import { supportsFeature } from "../../../common/entity/supports-feature"; -import { formatNumber } from "../../../common/number/format_number"; -import { blankBeforePercent } from "../../../common/translations/blank_before_percent"; import "../../../components/ha-control-select-menu"; import "../../../components/ha-list-item"; import { UNAVAILABLE } from "../../../data/entity"; @@ -59,7 +57,7 @@ class MoreInfoHumidifier extends LitElement { HumidifierEntityFeature.MODES ); - const currentHumidity = this.stateObj.attributes.current_humidity; + const currentHumidity = this.stateObj.attributes.current_humidity as number; return html`
@@ -75,10 +73,11 @@ class MoreInfoHumidifier extends LitElement { )}

- ${formatNumber( - currentHumidity, - this.hass.locale - )}${blankBeforePercent(this.hass.locale)}% + ${this.hass.formatEntityAttributeValue( + this.stateObj, + "current_humidity", + currentHumidity + )}

` diff --git a/src/dialogs/more-info/controls/more-info-light.ts b/src/dialogs/more-info/controls/more-info-light.ts index c2c29e4590..67ee73827d 100644 --- a/src/dialogs/more-info/controls/more-info-light.ts +++ b/src/dialogs/more-info/controls/more-info-light.ts @@ -18,7 +18,6 @@ import { import { customElement, property, state } from "lit/decorators"; import { stopPropagation } from "../../../common/dom/stop_propagation"; import { supportsFeature } from "../../../common/entity/supports-feature"; -import { blankBeforePercent } from "../../../common/translations/blank_before_percent"; import "../../../components/ha-attributes"; import "../../../components/ha-control-select-menu"; import "../../../components/ha-icon-button-group"; @@ -31,7 +30,6 @@ import { LightColorMode, LightEntity, LightEntityFeature, - formatTempColor, lightSupportsBrightness, lightSupportsColor, lightSupportsColorMode, @@ -70,7 +68,7 @@ class MoreInfoLight extends LitElement { private _brightnessChanged(ev) { const value = (ev.detail as any).value; if (isNaN(value)) return; - this._selectedBrightness = value; + this._selectedBrightness = (value * 255) / 100; } private _tempColorHovered(ev: CustomEvent) { @@ -83,9 +81,7 @@ class MoreInfoLight extends LitElement { protected updated(changedProps: PropertyValues): void { if (changedProps.has("stateObj")) { - this._selectedBrightness = this.stateObj?.attributes.brightness - ? Math.round((this.stateObj.attributes.brightness * 100) / 255) - : undefined; + this._selectedBrightness = this.stateObj?.attributes.brightness; this._effect = this.stateObj?.attributes.effect; } } @@ -102,12 +98,18 @@ class MoreInfoLight extends LitElement { private get _stateOverride() { if (this._colorTempPreview) { - return formatTempColor(this._colorTempPreview); + return this.hass.formatEntityAttributeValue( + this.stateObj!, + "color_temp_kelvin", + this._colorTempPreview + ); } if (this._selectedBrightness) { - return `${Math.round(this._selectedBrightness)}${blankBeforePercent( - this.hass!.locale - )}%`; + return this.hass.formatEntityAttributeValue( + this.stateObj!, + "brightness", + this._selectedBrightness + ); } return undefined; } diff --git a/src/dialogs/more-info/controls/more-info-sun.ts b/src/dialogs/more-info/controls/more-info-sun.ts index 28f5727e43..341da55268 100644 --- a/src/dialogs/more-info/controls/more-info-sun.ts +++ b/src/dialogs/more-info/controls/more-info-sun.ts @@ -2,7 +2,6 @@ import { HassEntity } from "home-assistant-js-websocket"; import { css, CSSResultGroup, html, LitElement, nothing } from "lit"; import { customElement, property } from "lit/decorators"; import { formatTime } from "../../../common/datetime/format_time"; -import { formatNumber } from "../../../common/number/format_number"; import "../../../components/ha-relative-time"; import { HomeAssistant } from "../../../types"; @@ -56,7 +55,7 @@ class MoreInfoSun extends LitElement { ${this.hass.localize("ui.dialogs.more_info_control.sun.elevation")}
- ${formatNumber(this.stateObj.attributes.elevation, this.hass.locale)} + ${this.hass.formatEntityAttributeValue(this.stateObj, "elevation")}
`; diff --git a/src/dialogs/more-info/controls/more-info-vacuum.ts b/src/dialogs/more-info/controls/more-info-vacuum.ts index 6487749d23..43decfaecb 100644 --- a/src/dialogs/more-info/controls/more-info-vacuum.ts +++ b/src/dialogs/more-info/controls/more-info-vacuum.ts @@ -17,7 +17,6 @@ import { computeAttributeValueDisplay } from "../../../common/entity/compute_att import { computeStateDisplay } from "../../../common/entity/compute_state_display"; import { computeStateDomain } from "../../../common/entity/compute_state_domain"; import { supportsFeature } from "../../../common/entity/supports-feature"; -import { blankBeforePercent } from "../../../common/translations/blank_before_percent"; import "../../../components/entity/ha-battery-icon"; import "../../../components/ha-attributes"; import "../../../components/ha-icon"; @@ -280,11 +279,7 @@ class MoreInfoVacuum extends LitElement { return html`
- ${batteryIsBinary - ? "" - : `${Number(battery.state).toFixed()}${blankBeforePercent( - this.hass.locale - )}%`} + ${batteryIsBinary ? "" : this.hass.formatEntityState(battery)} - ${stateObj.attributes.battery_level.toFixed()}${blankBeforePercent( - this.hass.locale - )}% + ${this.hass.formatEntityAttributeValue( + stateObj, + "battery_level", + Math.round(stateObj.attributes.battery_level) + )} +
diff --git a/src/dialogs/more-info/controls/more-info-water_heater.ts b/src/dialogs/more-info/controls/more-info-water_heater.ts index f4dec22235..e7f488f3b0 100644 --- a/src/dialogs/more-info/controls/more-info-water_heater.ts +++ b/src/dialogs/more-info/controls/more-info-water_heater.ts @@ -3,9 +3,9 @@ import { CSSResultGroup, LitElement, css, html, nothing } from "lit"; import { customElement, property } from "lit/decorators"; import { stopPropagation } from "../../../common/dom/stop_propagation"; import { supportsFeature } from "../../../common/entity/supports-feature"; -import { formatNumber } from "../../../common/number/format_number"; import "../../../components/ha-control-select-menu"; import "../../../components/ha-list-item"; +import { UNAVAILABLE } from "../../../data/entity"; import { WaterHeaterEntity, WaterHeaterEntityFeature, @@ -15,7 +15,6 @@ import { import { HomeAssistant } from "../../../types"; import { moreInfoControlStyle } from "../components/ha-more-info-control-style"; import "../components/water_heater/ha-more-info-water_heater-temperature"; -import { UNAVAILABLE } from "../../../data/entity"; @customElement("more-info-water_heater") class MoreInfoWaterHeater extends LitElement { @@ -54,8 +53,10 @@ class MoreInfoWaterHeater extends LitElement { )}

- ${formatNumber(currentTemperature, this.hass.locale)} - ${this.hass.config.unit_system.temperature} + ${this.hass.formatEntityAttributeValue( + this.stateObj, + "current_temperature" + )}

` diff --git a/src/dialogs/more-info/controls/more-info-weather.ts b/src/dialogs/more-info/controls/more-info-weather.ts index ddc68e7b96..f7afd68086 100644 --- a/src/dialogs/more-info/controls/more-info-weather.ts +++ b/src/dialogs/more-info/controls/more-info-weather.ts @@ -16,14 +16,12 @@ import { import { customElement, property, state } from "lit/decorators"; import { formatDateWeekdayDay } from "../../../common/datetime/format_date"; import { formatTimeWeekday } from "../../../common/datetime/format_time"; -import { formatNumber } from "../../../common/number/format_number"; import "../../../components/ha-svg-icon"; import { ForecastEvent, WeatherEntity, getDefaultForecastType, getForecast, - getWeatherUnit, getWind, subscribeForecast, weatherIcons, @@ -133,11 +131,10 @@ class MoreInfoWeather extends LitElement { ${this.hass.localize("ui.card.weather.attributes.temperature")}
- ${formatNumber( - this.stateObj.attributes.temperature!, - this.hass.locale + ${this.hass.formatEntityAttributeValue( + this.stateObj, + "temperature" )} - ${getWeatherUnit(this.hass, this.stateObj, "temperature")}
` @@ -150,11 +147,10 @@ class MoreInfoWeather extends LitElement { ${this.hass.localize("ui.card.weather.attributes.air_pressure")}
- ${formatNumber( - this.stateObj.attributes.pressure!, - this.hass.locale + ${this.hass.formatEntityAttributeValue( + this.stateObj, + "pressure" )} - ${getWeatherUnit(this.hass, this.stateObj, "pressure")}
` @@ -167,11 +163,10 @@ class MoreInfoWeather extends LitElement { ${this.hass.localize("ui.card.weather.attributes.humidity")}
- ${formatNumber( - this.stateObj.attributes.humidity!, - this.hass.locale + ${this.hass.formatEntityAttributeValue( + this.stateObj, + "humidity" )} - %
` @@ -202,11 +197,10 @@ class MoreInfoWeather extends LitElement { ${this.hass.localize("ui.card.weather.attributes.visibility")}
- ${formatNumber( - this.stateObj.attributes.visibility!, - this.hass.locale + ${this.hass.formatEntityAttributeValue( + this.stateObj, + "visibility" )} - ${getWeatherUnit(this.hass, this.stateObj, "visibility")}
` @@ -256,24 +250,20 @@ class MoreInfoWeather extends LitElement {
${this._showValue(item.templow) - ? `${formatNumber(item.templow!, this.hass.locale)} - ${getWeatherUnit( - this.hass, + ? this.hass.formatEntityAttributeValue( this.stateObj!, - "temperature" - )}` + "templow" + ) : hourly ? "" : "—"}
${this._showValue(item.temperature) - ? `${formatNumber(item.temperature!, this.hass.locale)} - ${getWeatherUnit( - this.hass, - this.stateObj!, - "temperature" - )}` + ? this.hass.formatEntityAttributeValue( + this.stateObj!, + "temperature" + ) : "—"}
` diff --git a/src/panels/lovelace/cards/hui-entity-card.ts b/src/panels/lovelace/cards/hui-entity-card.ts index 94b9285c1a..7acee6c5d2 100644 --- a/src/panels/lovelace/cards/hui-entity-card.ts +++ b/src/panels/lovelace/cards/hui-entity-card.ts @@ -159,6 +159,7 @@ export class HuiEntityCard extends LitElement implements LovelaceCard { ? stateObj.attributes[this._config.attribute!] !== undefined ? html` ${getWeatherUnit( - this.hass, + this.hass.config, stateObj, "temperature" )}
${getSecondaryWeatherAttribute(this.hass!, stateObj, forecast!)} diff --git a/src/panels/lovelace/special-rows/hui-attribute-row.ts b/src/panels/lovelace/special-rows/hui-attribute-row.ts index 400eac4edc..5fe2f85d3b 100644 --- a/src/panels/lovelace/special-rows/hui-attribute-row.ts +++ b/src/panels/lovelace/special-rows/hui-attribute-row.ts @@ -73,6 +73,7 @@ class HuiAttributeRow extends LitElement implements LovelaceRow { : attribute !== undefined ? html` Date: Fri, 18 Aug 2023 10:40:41 +0200 Subject: [PATCH 091/182] Cover position tile feature (#16110) * wip * css + transtations * Update types.ts rollback changes done by VS Code * fix * Inverted slider --------- Co-authored-by: Paul Bottein --- src/components/ha-control-slider.ts | 14 ++- .../cover/ha-more-info-cover-position.ts | 2 +- .../create-tile-feature-element.ts | 2 + .../hui-tile-card-features-editor.ts | 3 + .../hui-cover-position-tile-feature.ts | 114 ++++++++++++++++++ src/panels/lovelace/tile-features/types.ts | 5 + src/translations/en.json | 3 + 7 files changed, 139 insertions(+), 4 deletions(-) create mode 100644 src/panels/lovelace/tile-features/hui-cover-position-tile-feature.ts diff --git a/src/components/ha-control-slider.ts b/src/components/ha-control-slider.ts index c3450c6014..d323bf0a55 100644 --- a/src/components/ha-control-slider.ts +++ b/src/components/ha-control-slider.ts @@ -43,6 +43,9 @@ export class HaControlSlider extends LitElement { @property({ type: Boolean, attribute: "show-handle" }) public showHandle = false; + @property({ type: Boolean, attribute: "inverted" }) + public inverted = false; + @property({ type: Number }) public value?: number; @@ -61,11 +64,16 @@ export class HaControlSlider extends LitElement { public pressed = false; valueToPercentage(value: number) { - return (this.boundedValue(value) - this.min) / (this.max - this.min); + const percentage = + (this.boundedValue(value) - this.min) / (this.max - this.min); + return this.inverted ? 1 - percentage : percentage; } - percentageToValue(value: number) { - return (this.max - this.min) * value + this.min; + percentageToValue(percentage: number) { + return ( + (this.max - this.min) * (this.inverted ? 1 - percentage : percentage) + + this.min + ); } steppedValue(value: number) { diff --git a/src/dialogs/more-info/components/cover/ha-more-info-cover-position.ts b/src/dialogs/more-info/components/cover/ha-more-info-cover-position.ts index ea30c823c6..bd3a365e8e 100644 --- a/src/dialogs/more-info/components/cover/ha-more-info-cover-position.ts +++ b/src/dialogs/more-info/components/cover/ha-more-info-cover-position.ts @@ -50,7 +50,7 @@ export class HaMoreInfoCoverPosition extends LitElement { this.hass.localize, this.stateObj, this.hass.entities, - "position" + "current_position" )} style=${styleMap({ "--control-slider-color": color, diff --git a/src/panels/lovelace/create-element/create-tile-feature-element.ts b/src/panels/lovelace/create-element/create-tile-feature-element.ts index 1f33678be3..22aafff590 100644 --- a/src/panels/lovelace/create-element/create-tile-feature-element.ts +++ b/src/panels/lovelace/create-element/create-tile-feature-element.ts @@ -1,6 +1,7 @@ import "../tile-features/hui-alarm-modes-tile-feature"; import "../tile-features/hui-climate-hvac-modes-tile-feature"; import "../tile-features/hui-cover-open-close-tile-feature"; +import "../tile-features/hui-cover-position-tile-feature"; import "../tile-features/hui-cover-tilt-tile-feature"; import "../tile-features/hui-fan-speed-tile-feature"; import "../tile-features/hui-light-brightness-tile-feature"; @@ -15,6 +16,7 @@ import { const TYPES: Set = new Set([ "cover-open-close", + "cover-position", "cover-tilt", "light-brightness", "light-color-temp", diff --git a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts index 18091a89b3..de176cc217 100644 --- a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts @@ -28,6 +28,7 @@ import { getTileFeatureElementClass } from "../../create-element/create-tile-fea import { supportsAlarmModesTileFeature } from "../../tile-features/hui-alarm-modes-tile-feature"; import { supportsClimateHvacModesTileFeature } from "../../tile-features/hui-climate-hvac-modes-tile-feature"; import { supportsCoverOpenCloseTileFeature } from "../../tile-features/hui-cover-open-close-tile-feature"; +import { supportsCoverPositionTileFeature } from "../../tile-features/hui-cover-position-tile-feature"; import { supportsCoverTiltTileFeature } from "../../tile-features/hui-cover-tilt-tile-feature"; import { supportsFanSpeedTileFeature } from "../../tile-features/hui-fan-speed-tile-feature"; import { supportsLightBrightnessTileFeature } from "../../tile-features/hui-light-brightness-tile-feature"; @@ -41,6 +42,7 @@ type SupportsFeature = (stateObj: HassEntity) => boolean; const FEATURE_TYPES: FeatureType[] = [ "cover-open-close", + "cover-position", "cover-tilt", "light-brightness", "light-color-temp", @@ -61,6 +63,7 @@ const EDITABLES_FEATURE_TYPES = new Set([ const SUPPORTS_FEATURE_TYPES: Record = { "cover-open-close": supportsCoverOpenCloseTileFeature, + "cover-position": supportsCoverPositionTileFeature, "cover-tilt": supportsCoverTiltTileFeature, "light-brightness": supportsLightBrightnessTileFeature, "light-color-temp": supportsLightColorTempTileFeature, diff --git a/src/panels/lovelace/tile-features/hui-cover-position-tile-feature.ts b/src/panels/lovelace/tile-features/hui-cover-position-tile-feature.ts new file mode 100644 index 0000000000..0a478866e0 --- /dev/null +++ b/src/panels/lovelace/tile-features/hui-cover-position-tile-feature.ts @@ -0,0 +1,114 @@ +import { HassEntity } from "home-assistant-js-websocket"; +import { css, html, LitElement, nothing } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import { computeDomain } from "../../../common/entity/compute_domain"; +import { supportsFeature } from "../../../common/entity/supports-feature"; +import { CoverEntityFeature } from "../../../data/cover"; +import { HomeAssistant } from "../../../types"; +import { LovelaceTileFeature } from "../types"; +import { CoverPositionTileFeatureConfig } from "./types"; +import { stateActive } from "../../../common/entity/state_active"; +import { computeAttributeNameDisplay } from "../../../common/entity/compute_attribute_display"; +import { UNAVAILABLE } from "../../../data/entity"; + +export const supportsCoverPositionTileFeature = (stateObj: HassEntity) => { + const domain = computeDomain(stateObj.entity_id); + return ( + domain === "cover" && + supportsFeature(stateObj, CoverEntityFeature.SET_POSITION) + ); +}; + +@customElement("hui-cover-position-tile-feature") +class HuiCoverPositionTileFeature + extends LitElement + implements LovelaceTileFeature +{ + @property({ attribute: false }) public hass?: HomeAssistant; + + @property({ attribute: false }) public stateObj?: HassEntity; + + @state() private _config?: CoverPositionTileFeatureConfig; + + static getStubConfig(): CoverPositionTileFeatureConfig { + return { + type: "cover-position", + }; + } + + public setConfig(config: CoverPositionTileFeatureConfig): void { + if (!config) { + throw new Error("Invalid configuration"); + } + this._config = config; + } + + protected render() { + if ( + !this._config || + !this.hass || + !this.stateObj || + !supportsCoverPositionTileFeature(this.stateObj) + ) { + return nothing; + } + + const percentage = stateActive(this.stateObj) + ? this.stateObj.attributes.current_position ?? 0 + : 0; + + const value = Math.max(Math.round(percentage), 0); + + return html`
+ +
`; + } + + private _valueChanged(ev: CustomEvent) { + const value = (ev.detail as any).value; + if (isNaN(value)) return; + + this.hass!.callService("cover", "set_cover_position", { + entity_id: this.stateObj!.entity_id, + position: value, + }); + } + + static get styles() { + return css` + ha-control-slider { + /* Force inactive state to be colored for the slider */ + --control-slider-color: var(--tile-color); + --control-slider-background: var(--tile-color); + --control-slider-background-opacity: 0.2; + --control-slider-thickness: 40px; + --control-slider-border-radius: 10px; + } + .container { + padding: 0 12px 12px 12px; + width: auto; + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "hui-cover-position-tile-feature": HuiCoverPositionTileFeature; + } +} diff --git a/src/panels/lovelace/tile-features/types.ts b/src/panels/lovelace/tile-features/types.ts index 478d4e98e2..79b202ad8f 100644 --- a/src/panels/lovelace/tile-features/types.ts +++ b/src/panels/lovelace/tile-features/types.ts @@ -6,6 +6,10 @@ export interface CoverOpenCloseTileFeatureConfig { type: "cover-open-close"; } +export interface CoverPositionTileFeatureConfig { + type: "cover-position"; +} + export interface CoverTiltTileFeatureConfig { type: "cover-tilt"; } @@ -54,6 +58,7 @@ export interface VacuumCommandsTileFeatureConfig { export type LovelaceTileFeatureConfig = | CoverOpenCloseTileFeatureConfig + | CoverPositionTileFeatureConfig | CoverTiltTileFeatureConfig | LightBrightnessTileFeatureConfig | LightColorTempTileFeatureConfig diff --git a/src/translations/en.json b/src/translations/en.json index 90727c1ad3..448831c0a4 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -4967,6 +4967,9 @@ "cover-open-close": { "label": "Cover open/close" }, + "cover-position": { + "label": "Cover position" + }, "cover-tilt": { "label": "Cover tilt" }, From cd19894ab096faef764c5cd220f572133f6fc445 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 18 Aug 2023 11:11:25 +0200 Subject: [PATCH 092/182] Update dependency @lit-labs/context to v0.4.0 (#17613) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index bb93f80dde..47e9927008 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "@fullcalendar/luxon3": "6.1.8", "@fullcalendar/timegrid": "6.1.8", "@lezer/highlight": "1.1.6", - "@lit-labs/context": "0.3.3", + "@lit-labs/context": "0.4.0", "@lit-labs/motion": "1.0.4", "@lit-labs/virtualizer": "2.0.5", "@lrnwebcomponents/simple-tooltip": "7.0.15", diff --git a/yarn.lock b/yarn.lock index 49ff06ff95..b8c8b28342 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2085,13 +2085,13 @@ __metadata: languageName: node linkType: hard -"@lit-labs/context@npm:0.3.3": - version: 0.3.3 - resolution: "@lit-labs/context@npm:0.3.3" +"@lit-labs/context@npm:0.4.0": + version: 0.4.0 + resolution: "@lit-labs/context@npm:0.4.0" dependencies: "@lit/reactive-element": ^1.5.0 lit: ^2.7.0 - checksum: 3607a7f965f22072feeef8db791e37be45921d9168ea3f432e160cb1fb337de19b2b41a2cd8db5d4fd2675d704d567a24695b796d0b14590616e9232f27579d3 + checksum: 5d97a75e79c7e3069bdf1fd7be9a7c703398658a3702fdbbac34938220247a237b2839b568e7b979dc1a3a07eba1836418f51e40a950fbde6314cc8cbc9d0546 languageName: node linkType: hard @@ -9630,7 +9630,7 @@ __metadata: "@fullcalendar/timegrid": 6.1.8 "@koa/cors": 4.0.0 "@lezer/highlight": 1.1.6 - "@lit-labs/context": 0.3.3 + "@lit-labs/context": 0.4.0 "@lit-labs/motion": 1.0.4 "@lit-labs/virtualizer": 2.0.5 "@lrnwebcomponents/simple-tooltip": 7.0.15 From 38a317b7e7cb22feb68a92af79431faf0161a093 Mon Sep 17 00:00:00 2001 From: RoboMagus <68224306+RoboMagus@users.noreply.github.com> Date: Fri, 18 Aug 2023 15:01:13 +0200 Subject: [PATCH 093/182] Fix ha-tabs chevrons bug (#17620) --- src/components/ha-tabs.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/ha-tabs.ts b/src/components/ha-tabs.ts index 035663190f..887bbc231a 100644 --- a/src/components/ha-tabs.ts +++ b/src/components/ha-tabs.ts @@ -65,6 +65,7 @@ export class HaTabs extends PaperTabs { const selected = this.querySelector(".iron-selected"); if (selected) { selected.scrollIntoView(); + this._affectScroll(0); // Ensure scroll arrows match scroll position } } From 5c06ec10844d64e4efcd7daaf39b651de6bac138 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 19 Aug 2023 15:35:05 -0400 Subject: [PATCH 094/182] Update dependency eslint-import-resolver-webpack to v0.13.6 (#17628) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 65 ++++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 49 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 47e9927008..b8cff8be1c 100644 --- a/package.json +++ b/package.json @@ -195,7 +195,7 @@ "eslint-config-airbnb-base": "15.0.0", "eslint-config-airbnb-typescript": "17.1.0", "eslint-config-prettier": "9.0.0", - "eslint-import-resolver-webpack": "0.13.4", + "eslint-import-resolver-webpack": "0.13.6", "eslint-plugin-disable": "2.0.3", "eslint-plugin-import": "2.28.0", "eslint-plugin-lit": "1.8.3", diff --git a/yarn.lock b/yarn.lock index b8c8b28342..582a2b0d8f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5818,13 +5818,6 @@ __metadata: languageName: node linkType: hard -"array-find@npm:^1.0.0": - version: 1.0.0 - resolution: "array-find@npm:1.0.0" - checksum: 6588ebfd15841296923f7c8c70f9f4cfd0e803c9f66cf53382431e5d5c763f1a866120181ba80aba7ebed73b27c5756fdb2202054e7ef475290239839185544b - languageName: node - linkType: hard - "array-flatten@npm:1.1.1": version: 1.1.1 resolution: "array-flatten@npm:1.1.1" @@ -5910,6 +5903,18 @@ __metadata: languageName: node linkType: hard +"array.prototype.find@npm:^2.2.1": + version: 2.2.1 + resolution: "array.prototype.find@npm:2.2.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + es-shim-unscopables: ^1.0.0 + checksum: 3bde6c9137a1b11e28c8e098574ae93aa4c660f3b917ab08e7076ee8ca32704ee158d562437b38b8a5a03b0f0ccacf4df9b7a4e4b4497f4bbe66b8406dc334e5 + languageName: node + linkType: hard + "array.prototype.findlastindex@npm:^1.2.2": version: 1.2.2 resolution: "array.prototype.findlastindex@npm:1.2.2" @@ -7979,11 +7984,11 @@ __metadata: languageName: node linkType: hard -"eslint-import-resolver-webpack@npm:0.13.4": - version: 0.13.4 - resolution: "eslint-import-resolver-webpack@npm:0.13.4" +"eslint-import-resolver-webpack@npm:0.13.6": + version: 0.13.6 + resolution: "eslint-import-resolver-webpack@npm:0.13.6" dependencies: - array-find: ^1.0.0 + array.prototype.find: ^2.2.1 debug: ^3.2.7 enhanced-resolve: ^0.9.1 find-root: ^1.1.0 @@ -7992,12 +7997,12 @@ __metadata: is-core-module: ^2.13.0 is-regex: ^1.1.4 lodash: ^4.17.21 - resolve: ^1.22.4 + resolve: ^2.0.0-next.4 semver: ^5.7.2 peerDependencies: eslint-plugin-import: ">=1.4.0" webpack: ">=1.11.0" - checksum: adc86143e97567505c96f9990a40478d76fec2b63e7002fcb206ca6487fb0fc08e8a7dc778a9af542f7fdf1f5f433451f92457f70d02a481eef6406595311efa + checksum: ad10a7fa0f15d9b4d8adf637283ef5a3a7cac6351867215bc4a3738f9adce22c52bde0fef031f2a775611f908605109c9d5085567ffaf600fa7445d1affcdd9a languageName: node linkType: hard @@ -9728,7 +9733,7 @@ __metadata: eslint-config-airbnb-base: 15.0.0 eslint-config-airbnb-typescript: 17.1.0 eslint-config-prettier: 9.0.0 - eslint-import-resolver-webpack: 0.13.4 + eslint-import-resolver-webpack: 0.13.6 eslint-plugin-disable: 2.0.3 eslint-plugin-import: 2.28.0 eslint-plugin-lit: 1.8.3 @@ -10379,7 +10384,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0": +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0, is-core-module@npm:^2.9.0": version: 2.13.0 resolution: "is-core-module@npm:2.13.0" dependencies: @@ -13795,7 +13800,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.3, resolve@npm:^1.22.4, resolve@npm:^1.4.0": +"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.3, resolve@npm:^1.4.0": version: 1.22.4 resolution: "resolve@npm:1.22.4" dependencies: @@ -13808,7 +13813,20 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.3#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.4.0#~builtin": +"resolve@npm:^2.0.0-next.4": + version: 2.0.0-next.4 + resolution: "resolve@npm:2.0.0-next.4" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: c438ac9a650f2030fd074219d7f12ceb983b475da2d89ad3d6dd05fbf6b7a0a8cd37d4d10b43cb1f632bc19f22246ab7f36ebda54d84a29bfb2910a0680906d3 + languageName: node + linkType: hard + +"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.3#~builtin, resolve@patch:resolve@^1.4.0#~builtin": version: 1.22.4 resolution: "resolve@patch:resolve@npm%3A1.22.4#~builtin::version=1.22.4&hash=c3c19d" dependencies: @@ -13821,6 +13839,19 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@^2.0.0-next.4#~builtin": + version: 2.0.0-next.4 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.4#~builtin::version=2.0.0-next.4&hash=c3c19d" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 4bf9f4f8a458607af90518ff73c67a4bc1a38b5a23fef2bb0ccbd45e8be89820a1639b637b0ba377eb2be9eedfb1739a84cde24fe4cd670c8207d8fea922b011 + languageName: node + linkType: hard + "restore-cursor@npm:^4.0.0": version: 4.0.0 resolution: "restore-cursor@npm:4.0.0" From 9d169bcbeb83abf464c02e2315d0ed9adfa4f068 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 19 Aug 2023 15:36:45 -0400 Subject: [PATCH 095/182] Update dependency systemjs to v6.14.2 (#17629) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index b8cff8be1c..2830f9f3f1 100644 --- a/package.json +++ b/package.json @@ -233,7 +233,7 @@ "serve-handler": "6.1.5", "sinon": "15.2.0", "source-map-url": "0.4.1", - "systemjs": "6.14.1", + "systemjs": "6.14.2", "tar": "6.1.15", "terser-webpack-plugin": "5.3.9", "ts-lit-plugin": "2.0.0-pre.1", diff --git a/yarn.lock b/yarn.lock index 582a2b0d8f..f0fb28065a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9794,7 +9794,7 @@ __metadata: sortablejs: 1.15.0 source-map-url: 0.4.1 superstruct: 1.0.3 - systemjs: 6.14.1 + systemjs: 6.14.2 tar: 6.1.15 terser-webpack-plugin: 5.3.9 tinykeys: 2.1.0 @@ -14951,10 +14951,10 @@ __metadata: languageName: node linkType: hard -"systemjs@npm:6.14.1": - version: 6.14.1 - resolution: "systemjs@npm:6.14.1" - checksum: a72992339e858000892596705ec8cabf5166fc2db6272b5994c788641c3755115920b7a7914c9b8894ef08bfb75f4f96c3086c6b18399a2b22e303ecd5ac6570 +"systemjs@npm:6.14.2": + version: 6.14.2 + resolution: "systemjs@npm:6.14.2" + checksum: 1f58c7da8f7deb8e4a3eb357e67f5363eb97e44a456f8f81ece391f2e1ae54ac70fb62135043d4cf96c11c6b76d7963c295ea844ca25bcb3b55193f6727fd0b2 languageName: node linkType: hard From 6bdd2d234d1018a830a996861d19b7302c8da199 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 19 Aug 2023 15:39:44 -0400 Subject: [PATCH 096/182] Update dependency @codemirror/language to v6.9.0 (#17632) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 2830f9f3f1..ecdfda5f16 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@braintree/sanitize-url": "6.0.4", "@codemirror/autocomplete": "6.9.0", "@codemirror/commands": "6.2.4", - "@codemirror/language": "6.8.0", + "@codemirror/language": "6.9.0", "@codemirror/legacy-modes": "6.3.3", "@codemirror/search": "6.5.1", "@codemirror/state": "6.2.1", diff --git a/yarn.lock b/yarn.lock index f0fb28065a..32fa724c62 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1466,9 +1466,9 @@ __metadata: languageName: node linkType: hard -"@codemirror/language@npm:6.8.0, @codemirror/language@npm:^6.0.0": - version: 6.8.0 - resolution: "@codemirror/language@npm:6.8.0" +"@codemirror/language@npm:6.9.0, @codemirror/language@npm:^6.0.0": + version: 6.9.0 + resolution: "@codemirror/language@npm:6.9.0" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 @@ -1476,7 +1476,7 @@ __metadata: "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 style-mod: ^4.0.0 - checksum: 64408d996641931fa4c6b892e17ee1fdaee0f63d3d84c019a6ea7b1e6d1c774f92357b95c2ebaed60545062b795b72d0a058c03578b2bf4023c87726e97b5d2f + checksum: 9a897fb0f569159eeafb7dce83061b425af7244bbeae2649e0e677488548b2a02eaf0c13c0c5b4d59da55e8866e6f4dc7abe3dfaa09c13749a2fa2c0dbc0c565 languageName: node linkType: hard @@ -9613,7 +9613,7 @@ __metadata: "@braintree/sanitize-url": 6.0.4 "@codemirror/autocomplete": 6.9.0 "@codemirror/commands": 6.2.4 - "@codemirror/language": 6.8.0 + "@codemirror/language": 6.9.0 "@codemirror/legacy-modes": 6.3.3 "@codemirror/search": 6.5.1 "@codemirror/state": 6.2.1 From c6ecdc9d5d921482657a7976709f81d295fcc03c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 19 Aug 2023 16:06:31 -0400 Subject: [PATCH 097/182] Lock file maintenance (#17627) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 303 +++++++++++++++++++++++++++--------------------------- 1 file changed, 150 insertions(+), 153 deletions(-) diff --git a/yarn.lock b/yarn.lock index 32fa724c62..d24ddb3a3e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -107,11 +107,11 @@ __metadata: linkType: hard "@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.5" + version: 7.22.10 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.10" dependencies: - "@babel/types": ^7.22.5 - checksum: d753acac62399fc6dd354cf1b9441bde0c331c2fe792a4c14904c5e5eafc3cac79478f6aa038e8a51c1148b0af6710a2e619855e4b5d54497ac972eaffed5884 + "@babel/types": ^7.22.10 + checksum: 6de4a1f30e6244f9a1efdfcbe89df39923df3d165be606da5ad11319f8a11c12c72c60d9dc5fb696363281e2d6f741444c1af51f525fc7cf1d2a90fe23370bd9 languageName: node linkType: hard @@ -128,7 +128,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.22.10, @babel/helper-create-class-features-plugin@npm:^7.22.5, @babel/helper-create-class-features-plugin@npm:^7.22.9": +"@babel/helper-create-class-features-plugin@npm:^7.22.10, @babel/helper-create-class-features-plugin@npm:^7.22.5": version: 7.22.10 resolution: "@babel/helper-create-class-features-plugin@npm:7.22.10" dependencies: @@ -325,13 +325,13 @@ __metadata: linkType: hard "@babel/helper-wrap-function@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-wrap-function@npm:7.22.9" + version: 7.22.10 + resolution: "@babel/helper-wrap-function@npm:7.22.10" dependencies: "@babel/helper-function-name": ^7.22.5 "@babel/template": ^7.22.5 - "@babel/types": ^7.22.5 - checksum: 037317dc06dac6593e388738ae1d3e43193bc1d31698f067c0ef3d4dc6f074dbed860ed42aa137b48a67aa7cb87336826c4bdc13189260481bcf67eb7256c789 + "@babel/types": ^7.22.10 + checksum: 854bd85fc1de1d4c633f04aa1f5b6b022fbc013b47d012b6a11a7a9125a1f4a2a4f13a3e0d7a7056fe7eda8a9ecd1ea3daf8af685685a2d1b16578768cfdd28f languageName: node linkType: hard @@ -1196,16 +1196,16 @@ __metadata: linkType: hard "@babel/plugin-transform-typescript@npm:^7.22.5": - version: 7.22.9 - resolution: "@babel/plugin-transform-typescript@npm:7.22.9" + version: 7.22.10 + resolution: "@babel/plugin-transform-typescript@npm:7.22.10" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.22.9 + "@babel/helper-create-class-features-plugin": ^7.22.10 "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-typescript": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6d1317a54d093b302599a4bee8ba9865d0de8b7b6ac1a0746c4316231d632f75b7f086e6e78acb9ac95ba12ba3b9da462dc9ca69370abb4603c4cc987f62e67e + checksum: e15ca8cd9f9715db5ca42a4b7883bc85356424497a711ea01ccb39793e647c54d9bd8ab37d9953ed9bed5d06b705fca681dce1f41d121bc47638f50a5b5ce9ee languageName: node linkType: hard @@ -1979,14 +1979,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:3.1.0": - version: 3.1.0 - resolution: "@jridgewell/resolve-uri@npm:3.1.0" - checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 - languageName: node - linkType: hard - -"@jridgewell/resolve-uri@npm:^3.0.3": +"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.1 resolution: "@jridgewell/resolve-uri@npm:3.1.1" checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 @@ -2010,14 +2003,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:1.4.14": - version: 1.4.14 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" - checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.15": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 @@ -2035,12 +2021,12 @@ __metadata: linkType: hard "@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.18 - resolution: "@jridgewell/trace-mapping@npm:0.3.18" + version: 0.3.19 + resolution: "@jridgewell/trace-mapping@npm:0.3.19" dependencies: - "@jridgewell/resolve-uri": 3.1.0 - "@jridgewell/sourcemap-codec": 1.4.14 - checksum: 0572669f855260808c16fe8f78f5f1b4356463b11d3f2c7c0b5580c8ba1cbf4ae53efe9f627595830856e57dbac2325ac17eb0c3dd0ec42102e6f227cc289c02 + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: 956a6f0f6fec060fb48c6bf1f5ec2064e13cd38c8be3873877d4b92b4a27ba58289a34071752671262a3e3c202abcc3fa2aac64d8447b4b0fa1ba3c9047f1c20 languageName: node linkType: hard @@ -2061,9 +2047,9 @@ __metadata: linkType: hard "@lezer/common@npm:^1.0.0": - version: 1.0.3 - resolution: "@lezer/common@npm:1.0.3" - checksum: cc90dc2f0aeaebeb3fe886cbd27f8b1e8bee817d8c2efff178604807debd68c5db820fd23afb830962780063d21891afbdf564420221faca2822e77bc6327184 + version: 1.0.4 + resolution: "@lezer/common@npm:1.0.4" + checksum: 0bea82da76e0b89afad4e5159d3add460022916352c47906ec67b26d6fe5ec9cb8e23df0e2bf0adef765ae78bed1706fc573a11506d01a80112a5b6dd317730c languageName: node linkType: hard @@ -2077,11 +2063,11 @@ __metadata: linkType: hard "@lezer/lr@npm:^1.0.0": - version: 1.3.9 - resolution: "@lezer/lr@npm:1.3.9" + version: 1.3.10 + resolution: "@lezer/lr@npm:1.3.10" dependencies: "@lezer/common": ^1.0.0 - checksum: d10982bae6c0b2f5a3ab8710a41dc689a4f9e81afafd3d2de4f0bec169f5c3fc9a321c0e90010a51682d41a6755ae90e1f3199134ff194b3ff4058ea5bcdf353 + checksum: 9d3c22bf692561cf7fe2f3d14e821913f87116ff9d73b8b550e7998b6135baae9f504563846a4257e1bb4eae97ae1b60c06c6066450ddeef5e03e8783526b2ae languageName: node linkType: hard @@ -2122,11 +2108,11 @@ __metadata: linkType: hard "@lit/reactive-element@npm:^1.3.0, @lit/reactive-element@npm:^1.5.0, @lit/reactive-element@npm:^1.6.0": - version: 1.6.2 - resolution: "@lit/reactive-element@npm:1.6.2" + version: 1.6.3 + resolution: "@lit/reactive-element@npm:1.6.3" dependencies: "@lit-labs/ssr-dom-shim": ^1.0.0 - checksum: 011a3ef0933fda86ec726d29ebc14e829e2f1ba23eca8ed8ed4d5c6f2a102c55cc6986000c5f4c8c3d0c549bc671f5d84d00ce91adc5bbd95970eec3662c0a92 + checksum: 79b58631c38effeabad090070324431da8a22cf0ff665f5e4de35e4d791f984742b3d340c9c7fce996d1124a8da95febc582471b4c237236c770b1300b56ef6e languageName: node linkType: hard @@ -3972,8 +3958,8 @@ __metadata: linkType: hard "@rollup/pluginutils@npm:^5.0.1": - version: 5.0.2 - resolution: "@rollup/pluginutils@npm:5.0.2" + version: 5.0.3 + resolution: "@rollup/pluginutils@npm:5.0.3" dependencies: "@types/estree": ^1.0.0 estree-walker: ^2.0.2 @@ -3983,7 +3969,7 @@ __metadata: peerDependenciesMeta: rollup: optional: true - checksum: edea15e543bebc7dcac3b0ac8bc7b8e8e6dbd46e2864dbe5dd28072de1fbd5b0e10d545a610c0edaa178e8a7ac432e2a2a52e547ece1308471412caba47db8ce + checksum: 8efbdeac53c58ba7b26c353a0a95acb0286cb6afec9816e0c52c3537404be80af11d897f78416a3339a8a76cbce8600269bdf4853edfdebcc89b2e90c56bf3d9 languageName: node linkType: hard @@ -4104,12 +4090,12 @@ __metadata: linkType: hard "@types/chrome@npm:*": - version: 0.0.241 - resolution: "@types/chrome@npm:0.0.241" + version: 0.0.243 + resolution: "@types/chrome@npm:0.0.243" dependencies: "@types/filesystem": "*" "@types/har-format": "*" - checksum: af6cf474ed120b046001c0edf50bb752191369d5205d0b2d1ebcb7548db6b87183a098ee7ab77db1a441eacbf36fbfc3cd5b04a9642a99180a13018ced400984 + checksum: cd0a26f31d100760d6425ee55d1f0faaaa00bbb0a8f4932f780868b7173325156b2066491bf5393aaadb5d108c85d1fca931b832ca4c210d8e8134b47bb0d9a1 languageName: node linkType: hard @@ -4185,12 +4171,12 @@ __metadata: linkType: hard "@types/eslint@npm:*": - version: 8.44.0 - resolution: "@types/eslint@npm:8.44.0" + version: 8.44.2 + resolution: "@types/eslint@npm:8.44.2" dependencies: "@types/estree": "*" "@types/json-schema": "*" - checksum: 2655f409a4ecdd64bb9dd9eb6715e7a2ac30c0e7f902b414e10dbe9d6d497baa5a0f13105e1f7bd5ad7a913338e2ab4bed1faf192a7a0d27d1acd45ba79d3f69 + checksum: 25b3ef61bae96350026593c9914c8a61ee02fde48ab8d568a73ee45032f13c0028c62e47a5ff78715af488dfe8e8bba913f7d30f859f60c7f9e639d328e80482 languageName: node linkType: hard @@ -4356,8 +4342,8 @@ __metadata: linkType: hard "@types/koa@npm:*, @types/koa@npm:^2.11.6": - version: 2.13.6 - resolution: "@types/koa@npm:2.13.6" + version: 2.13.8 + resolution: "@types/koa@npm:2.13.8" dependencies: "@types/accepts": "*" "@types/content-disposition": "*" @@ -4367,7 +4353,7 @@ __metadata: "@types/keygrip": "*" "@types/koa-compose": "*" "@types/node": "*" - checksum: a4061c2e29cd4ccb65a704fe3ef6868eac82558856c7c00a5bcc0f9fdf18c595e0156c52508eb8ba926a9108d9cf5c9a1a1b73cccf50e29b37ea1154323d0b26 + checksum: 76a2a6d219c65f242a43efca42970d864701c58319c346a91dd8c3b4df2021786fd0d600a88dfb098358c9085f9f4a2dfe62563641441cf21e11e2bfe04f4fdf languageName: node linkType: hard @@ -4399,9 +4385,9 @@ __metadata: linkType: hard "@types/lodash@npm:*": - version: 4.14.195 - resolution: "@types/lodash@npm:4.14.195" - checksum: 39b75ca635b3fa943d17d3d3aabc750babe4c8212485a4df166fe0516e39288e14b0c60afc6e21913cc0e5a84734633c71e617e2bd14eaa1cf51b8d7799c432e + version: 4.14.197 + resolution: "@types/lodash@npm:4.14.197" + checksum: 53d7567d1704de76cf33266c78062e0fd722d4b846e5b1417d0b6ef0ee41c0d9c451b92bc34f73d5f1fcc45c7d36511e92f6f47a9279b48157ba60a92ddaa078 languageName: node linkType: hard @@ -4441,9 +4427,9 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 20.4.2 - resolution: "@types/node@npm:20.4.2" - checksum: 99e544ea7560d51f01f95627fc40394c24a13da8f041121a0da13e4ef0a2aa332932eaf9a5e8d0e30d1c07106e96a183be392cbba62e8cf0bf6a085d5c0f4149 + version: 20.5.1 + resolution: "@types/node@npm:20.5.1" + checksum: 3dbe611cd67afa987102c8558ee70f848949c5dcfee5f60abc073e55c0d7b048e391bf06bb1e0dc052cb7210ca97136ac496cbaf6e89123c989de6bd125fde82 languageName: node linkType: hard @@ -5434,13 +5420,11 @@ __metadata: linkType: hard "agentkeepalive@npm:^4.2.1": - version: 4.3.0 - resolution: "agentkeepalive@npm:4.3.0" + version: 4.5.0 + resolution: "agentkeepalive@npm:4.5.0" dependencies: - debug: ^4.1.0 - depd: ^2.0.0 humanize-ms: ^1.2.1 - checksum: 982453aa44c11a06826c836025e5162c846e1200adb56f2d075400da7d32d87021b3b0a58768d949d824811f5654223d5a8a3dad120921a2439625eb847c6260 + checksum: 13278cd5b125e51eddd5079f04d6fe0914ac1b8b91c1f3db2c1822f99ac1a7457869068997784342fe455d59daaff22e14fb7b8c3da4e741896e7e31faf92481 languageName: node linkType: hard @@ -6343,17 +6327,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.14.5, browserslist@npm:^4.21.9": - version: 4.21.9 - resolution: "browserslist@npm:4.21.9" +"browserslist@npm:^4.14.5, browserslist@npm:^4.21.10, browserslist@npm:^4.21.9": + version: 4.21.10 + resolution: "browserslist@npm:4.21.10" dependencies: - caniuse-lite: ^1.0.30001503 - electron-to-chromium: ^1.4.431 - node-releases: ^2.0.12 + caniuse-lite: ^1.0.30001517 + electron-to-chromium: ^1.4.477 + node-releases: ^2.0.13 update-browserslist-db: ^1.0.11 bin: browserslist: cli.js - checksum: 80d3820584e211484ad1b1a5cfdeca1dd00442f47be87e117e1dda34b628c87e18b81ae7986fa5977b3e6a03154f6d13cd763baa6b8bf5dd9dd19f4926603698 + checksum: 1e27c0f111a35d1dd0e8fc2c61781b0daefabc2c9471b0b10537ce54843014bceb2a1ce4571af1a82b2bf1e6e6e05d38865916689a158f03bc2c7a4ec2577db8 languageName: node linkType: hard @@ -6426,14 +6410,14 @@ __metadata: linkType: hard "cacache@npm:^17.0.0": - version: 17.1.3 - resolution: "cacache@npm:17.1.3" + version: 17.1.4 + resolution: "cacache@npm:17.1.4" dependencies: "@npmcli/fs": ^3.1.0 fs-minipass: ^3.0.0 glob: ^10.2.2 lru-cache: ^7.7.1 - minipass: ^5.0.0 + minipass: ^7.0.3 minipass-collect: ^1.0.2 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 @@ -6441,7 +6425,7 @@ __metadata: ssri: ^10.0.0 tar: ^6.1.11 unique-filename: ^3.0.0 - checksum: 385756781e1e21af089160d89d7462b7ed9883c978e848c7075b90b73cb823680e66092d61513050164588387d2ca87dd6d910e28d64bc13a9ac82cd8580c796 + checksum: b7751df756656954a51201335addced8f63fc53266fa56392c9f5ae83c8d27debffb4458ac2d168a744a4517ec3f2163af05c20097f93d17bdc2dc8a385e14a6 languageName: node linkType: hard @@ -6520,10 +6504,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001503": - version: 1.0.30001517 - resolution: "caniuse-lite@npm:1.0.30001517" - checksum: e4e87436ae1c4408cf4438aac22902b31eb03f3f5bad7f33bc518d12ffb35f3fd9395ccf7efc608ee046f90ce324ec6f7f26f8a8172b8c43c26a06ecee612a29 +"caniuse-lite@npm:^1.0.30001517": + version: 1.0.30001521 + resolution: "caniuse-lite@npm:1.0.30001521" + checksum: be2a2b2cd3be03401887aaa31b89f3e7c6230289e6ef704e224268389cc136480fca502ac9e5001a65ff1e50459d3d95f8c4b2d39f878ab9843af3d6f372c8bb languageName: node linkType: hard @@ -7121,11 +7105,11 @@ __metadata: linkType: hard "core-js-compat@npm:^3.31.0": - version: 3.31.1 - resolution: "core-js-compat@npm:3.31.1" + version: 3.32.1 + resolution: "core-js-compat@npm:3.32.1" dependencies: - browserslist: ^4.21.9 - checksum: 9a16d6992621f4e099169297381a28d5712cdef7df1fa85352a7c285a5885d5d7a117ec2eae9ad715ed88c7cc774787a22cdb8aceababf6775fbc8b0cbeccdb7 + browserslist: ^4.21.10 + checksum: 2ce0002d6d2acabfc6f4c1ea32915683406a10051a186db354b761303cb6f5728f83887d070fb8d0072b5601bb16cb0d24555ee72bfa6df244f7b3ef74d61f76 languageName: node linkType: hard @@ -7649,10 +7633,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.431": - version: 1.4.465 - resolution: "electron-to-chromium@npm:1.4.465" - checksum: 1c8509d5bf15004ad88921845386b695744d0ea02beef8e1e8c6abdf673a4d51254395b8cd501a12c1043f732fca18d2981f636aac3cf789673a515424460ccd +"electron-to-chromium@npm:^1.4.477": + version: 1.4.496 + resolution: "electron-to-chromium@npm:1.4.496" + checksum: b90cc4cc71691a9506bcce3b8b184d22794c58b4a2af5e95f7bc305b254e8c5af06b51e26f866d018aaf70b80e0fb498e3a196c5841765bcf05bac9f0f924624 languageName: node linkType: hard @@ -7974,13 +7958,13 @@ __metadata: linkType: hard "eslint-import-resolver-node@npm:^0.3.7": - version: 0.3.7 - resolution: "eslint-import-resolver-node@npm:0.3.7" + version: 0.3.9 + resolution: "eslint-import-resolver-node@npm:0.3.9" dependencies: debug: ^3.2.7 - is-core-module: ^2.11.0 - resolve: ^1.22.1 - checksum: 3379aacf1d2c6952c1b9666c6fa5982c3023df695430b0d391c0029f6403a7775414873d90f397e98ba6245372b6c8960e16e74d9e4a3b0c0a4582f3bdbe3d6e + is-core-module: ^2.13.0 + resolve: ^1.22.4 + checksum: 439b91271236b452d478d0522a44482e8c8540bf9df9bd744062ebb89ab45727a3acd03366a6ba2bdbcde8f9f718bab7fe8db64688aca75acf37e04eafd25e22 languageName: node linkType: hard @@ -8078,7 +8062,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-lit@npm:1.8.3, eslint-plugin-lit@npm:^1.6.0": +"eslint-plugin-lit@npm:1.8.3": version: 1.8.3 resolution: "eslint-plugin-lit@npm:1.8.3" dependencies: @@ -8091,6 +8075,19 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-lit@npm:^1.6.0": + version: 1.9.1 + resolution: "eslint-plugin-lit@npm:1.9.1" + dependencies: + parse5: ^6.0.1 + parse5-htmlparser2-tree-adapter: ^6.0.1 + requireindex: ^1.2.0 + peerDependencies: + eslint: ">= 5" + checksum: 24f9426b52587b483a5e195a1164cbf23323879a2c5f114673e5fb5413ba56d2a57309f39393fcc5a7486508faa05ba3da40fd3168f3c87f3d41473052cf80be + languageName: node + linkType: hard + "eslint-plugin-unused-imports@npm:3.0.0": version: 3.0.0 resolution: "eslint-plugin-unused-imports@npm:3.0.0" @@ -8515,15 +8512,15 @@ __metadata: linkType: hard "fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.2, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0": - version: 3.3.0 - resolution: "fast-glob@npm:3.3.0" + version: 3.3.1 + resolution: "fast-glob@npm:3.3.1" dependencies: "@nodelib/fs.stat": ^2.0.2 "@nodelib/fs.walk": ^1.2.3 glob-parent: ^5.1.2 merge2: ^1.3.0 micromatch: ^4.0.4 - checksum: 20df62be28eb5426fe8e40e0d05601a63b1daceb7c3d87534afcad91bdcf1e4b1743cf2d5247d6e225b120b46df0b9053a032b2691ba34ee121e033acd81f547 + checksum: b6f3add6403e02cf3a798bfbb1183d0f6da2afd368f27456010c0bc1f9640aea308243d4cb2c0ab142f618276e65ecb8be1661d7c62a7b4e5ba774b9ce5432e5 languageName: node linkType: hard @@ -8901,11 +8898,11 @@ __metadata: linkType: hard "fs-minipass@npm:^3.0.0": - version: 3.0.2 - resolution: "fs-minipass@npm:3.0.2" + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" dependencies: - minipass: ^5.0.0 - checksum: e9cc0e1f2d01c6f6f62f567aee59530aba65c6c7b2ae88c5027bc34c711ebcfcfaefd0caf254afa6adfe7d1fba16bc2537508a6235196bac7276747d078aef0a + minipass: ^7.0.3 + checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 languageName: node linkType: hard @@ -9276,11 +9273,11 @@ __metadata: linkType: hard "globals@npm:^13.19.0": - version: 13.20.0 - resolution: "globals@npm:13.20.0" + version: 13.21.0 + resolution: "globals@npm:13.21.0" dependencies: type-fest: ^0.20.2 - checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a + checksum: 86c92ca8a04efd864c10852cd9abb1ebe6d447dcc72936783e66eaba1087d7dba5c9c3421a48d6ca722c319378754dbcc3f3f732dbe47592d7de908edf58a773 languageName: node linkType: hard @@ -10384,7 +10381,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0, is-core-module@npm:^2.9.0": +"is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0, is-core-module@npm:^2.9.0": version: 2.13.0 resolution: "is-core-module@npm:2.13.0" dependencies: @@ -10877,15 +10874,15 @@ __metadata: linkType: hard "jackspeak@npm:^2.0.3": - version: 2.2.1 - resolution: "jackspeak@npm:2.2.1" + version: 2.3.0 + resolution: "jackspeak@npm:2.3.0" dependencies: "@isaacs/cliui": ^8.0.2 "@pkgjs/parseargs": ^0.11.0 dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: e29291c0d0f280a063fa18fbd1e891ab8c2d7519fd34052c0ebde38538a15c603140d60c2c7f432375ff7ee4c5f1c10daa8b2ae19a97c3d4affe308c8360c1df + checksum: 71bf716f4b5793226d4aeb9761ebf2605ee093b59f91a61451d57d998dd64bbf2b54323fb749b8b2ae8b6d8a463de4f6e3fedab50108671f247bbc80195a6306 languageName: node linkType: hard @@ -11210,11 +11207,11 @@ __metadata: linkType: hard "language-tags@npm:^1.0.5": - version: 1.0.8 - resolution: "language-tags@npm:1.0.8" + version: 1.0.9 + resolution: "language-tags@npm:1.0.9" dependencies: language-subtag-registry: ^0.3.20 - checksum: 95d200a4c23ae58ec1c2224e264162ca95e71b3a1104a9cf9d2fd39ab807fa766b37827905a44c84763accc8223aedccebd4cd7807c16876cbe2af769e7a487b + checksum: 57c530796dc7179914dee71bc94f3747fd694612480241d0453a063777265dfe3a951037f7acb48f456bf167d6eb419d4c00263745326b3ba1cdcf4657070e78 languageName: node linkType: hard @@ -11394,17 +11391,17 @@ __metadata: linkType: hard "lit-element@npm:^3.3.0": - version: 3.3.2 - resolution: "lit-element@npm:3.3.2" + version: 3.3.3 + resolution: "lit-element@npm:3.3.3" dependencies: "@lit-labs/ssr-dom-shim": ^1.1.0 "@lit/reactive-element": ^1.3.0 - lit-html: ^2.7.0 - checksum: afe50825be05a8c83be418432dfed2f9a84ca1c6c1d1807e2090def9f94cc403dcbf832b338cdfe39cd168518664c02a6c7392868ca323e356e5744e3b4f45e6 + lit-html: ^2.8.0 + checksum: 29a596fa556e231cce7246ca3e5687ad238f299b0cb374a0934d5e6fe9adf1436e031d4fbd21b280aabfc0e21a66e6c4b52da558a908df2566d09d960f3ca93d languageName: node linkType: hard -"lit-html@npm:^2.7.0, lit-html@npm:^2.8.0": +"lit-html@npm:^2.8.0": version: 2.8.0 resolution: "lit-html@npm:2.8.0" dependencies: @@ -11654,9 +11651,9 @@ __metadata: linkType: hard "lru-cache@npm:^9.1.1 || ^10.0.0": - version: 10.0.0 - resolution: "lru-cache@npm:10.0.0" - checksum: 18f101675fe283bc09cda0ef1e3cc83781aeb8373b439f086f758d1d91b28730950db785999cd060d3c825a8571c03073e8c14512b6655af2188d623031baf50 + version: 10.0.1 + resolution: "lru-cache@npm:10.0.1" + checksum: 06f8d0e1ceabd76bb6f644a26dbb0b4c471b79c7b514c13c6856113879b3bf369eb7b497dad4ff2b7e2636db202412394865b33c332100876d838ad1372f0181 languageName: node linkType: hard @@ -11983,17 +11980,17 @@ __metadata: linkType: hard "minipass-fetch@npm:^3.0.0": - version: 3.0.3 - resolution: "minipass-fetch@npm:3.0.3" + version: 3.0.4 + resolution: "minipass-fetch@npm:3.0.4" dependencies: encoding: ^0.1.13 - minipass: ^5.0.0 + minipass: ^7.0.3 minipass-sized: ^1.0.3 minizlib: ^2.1.2 dependenciesMeta: encoding: optional: true - checksum: af5ab2552a16fcf505d35fd7ffb84b57f4a0eeb269e6e1d9a2a75824dda48b36e527083250b7cca4a4def21d9544e2ade441e4730e233c0bc2133f6abda31e18 + checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a languageName: node linkType: hard @@ -12047,10 +12044,10 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0": - version: 7.0.2 - resolution: "minipass@npm:7.0.2" - checksum: 46776de732eb7cef2c7404a15fb28c41f5c54a22be50d47b03c605bf21f5c18d61a173c0a20b49a97e7a65f78d887245066410642551e45fffe04e9ac9e325bc +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.3": + version: 7.0.3 + resolution: "minipass@npm:7.0.3" + checksum: 6f1614f5b5b55568a46bca5fec0e7c46dac027691db27d0e1923a8192866903144cd962ac772c0e9f89b608ea818b702709c042bce98e190d258847d85461531 languageName: node linkType: hard @@ -12298,7 +12295,7 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.12": +"node-releases@npm:^2.0.13": version: 2.0.13 resolution: "node-releases@npm:2.0.13" checksum: 17ec8f315dba62710cae71a8dad3cd0288ba943d2ece43504b3b1aa8625bf138637798ab470b1d9035b0545996f63000a8a926e0f6d35d0996424f8b6d36dda3 @@ -13224,13 +13221,13 @@ __metadata: linkType: hard "postcss@npm:^8.4.14": - version: 8.4.26 - resolution: "postcss@npm:8.4.26" + version: 8.4.28 + resolution: "postcss@npm:8.4.28" dependencies: nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 1cf08ee10d58cbe98f94bf12ac49a5e5ed1588507d333d2642aacc24369ca987274e1f60ff4cbf0081f70d2ab18a5cd3a4a273f188d835b8e7f3ba381b184e57 + checksum: f605c24a36f7e400bad379735fbfc893ccb8d293ad6d419bb824db77cdcb69f43d614ef35f9f7091f32ca588d130ec60dbcf53b366e6bf88a8a64bbeb3c05f6d languageName: node linkType: hard @@ -13800,7 +13797,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.3, resolve@npm:^1.4.0": +"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.3, resolve@npm:^1.22.4, resolve@npm:^1.4.0": version: 1.22.4 resolution: "resolve@npm:1.22.4" dependencies: @@ -13826,7 +13823,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.3#~builtin, resolve@patch:resolve@^1.4.0#~builtin": +"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.3#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.4.0#~builtin": version: 1.22.4 resolution: "resolve@patch:resolve@npm%3A1.22.4#~builtin::version=1.22.4&hash=c3c19d" dependencies: @@ -14326,9 +14323,9 @@ __metadata: linkType: hard "signal-exit@npm:^4.0.1": - version: 4.0.2 - resolution: "signal-exit@npm:4.0.2" - checksum: 41f5928431cc6e91087bf0343db786a6313dd7c6fd7e551dbc141c95bb5fb26663444fd9df8ea47c5d7fc202f60aa7468c3162a9365cbb0615fc5e1b1328fe31 + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 languageName: node linkType: hard @@ -14618,11 +14615,11 @@ __metadata: linkType: hard "ssri@npm:^10.0.0": - version: 10.0.4 - resolution: "ssri@npm:10.0.4" + version: 10.0.5 + resolution: "ssri@npm:10.0.5" dependencies: - minipass: ^5.0.0 - checksum: fb14da9f8a72b04eab163eb13a9dda11d5962cd2317f85457c4e0b575e9a6e0e3a6a87b5bf122c75cb36565830cd5f263fb457571bf6f1587eb5f95d095d6165 + minipass: ^7.0.3 + checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 languageName: node linkType: hard @@ -14658,9 +14655,9 @@ __metadata: linkType: hard "std-env@npm:^3.0.1": - version: 3.3.3 - resolution: "std-env@npm:3.3.3" - checksum: 6665f6d8bd63aae432d3eb9abbd7322847ad0d902603e6dce1e8051b4f42ceeb4f7f96a4faf70bb05ce65ceee2dc982502b701575c8a58b1bfad29f3dbb19f81 + version: 3.4.0 + resolution: "std-env@npm:3.4.0" + checksum: 8017251c1e82f9b0bfd519a1e29cf3fce3ae4df821c1eb170da03926e12092f033b28ade984a771534d7cac3b2ed75795949aee2ce3ef2e10988cc46ef39b530 languageName: node linkType: hard @@ -15058,8 +15055,8 @@ __metadata: linkType: hard "terser@npm:^5.0.0, terser@npm:^5.15.1, terser@npm:^5.16.8": - version: 5.19.1 - resolution: "terser@npm:5.19.1" + version: 5.19.2 + resolution: "terser@npm:5.19.2" dependencies: "@jridgewell/source-map": ^0.3.3 acorn: ^8.8.2 @@ -15067,7 +15064,7 @@ __metadata: source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: 18657b2a282238a1ca9c825efa966f4dd043a33196b2f8a7a2cba406a2006e14f55295b9d9cf6380a18599b697e9579e4092c99b9f40c7871ceec01cc98e3606 + checksum: e059177775b4d4f4cff219ad89293175aefbd1b081252270444dc83e42a2c5f07824eb2a85eae6e22ef6eb7ef04b21af36dd7d1dd7cfb93912310e57d416a205 languageName: node linkType: hard @@ -15268,11 +15265,11 @@ __metadata: linkType: hard "ts-api-utils@npm:^1.0.1": - version: 1.0.1 - resolution: "ts-api-utils@npm:1.0.1" + version: 1.0.2 + resolution: "ts-api-utils@npm:1.0.2" peerDependencies: typescript: ">=4.2.0" - checksum: 78794fc7270d295b36c1ac613465b5dc7e7226907a533125b30f177efef9dd630d4e503b00be31b44335eb2ebf9e136ebe97353f8fc5d383885d5fead9d54c09 + checksum: 6375e12ba90b6cbe73f564405248da14c52aa44b62b386e1cbbb1da2640265dd33e99d3e019688dffa874e365cf596b161ccd49351e90638be825c2639697640 languageName: node linkType: hard @@ -15306,9 +15303,9 @@ __metadata: linkType: hard "tslib@npm:^2.0.1, tslib@npm:^2.0.2, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0": - version: 2.6.0 - resolution: "tslib@npm:2.6.0" - checksum: c01066038f950016a18106ddeca4649b4d76caa76ec5a31e2a26e10586a59fceb4ee45e96719bf6c715648e7c14085a81fee5c62f7e9ebee68e77a5396e5538f + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad languageName: node linkType: hard From e4f3211e9f5a2b068cb0528032a8a5691d820fbb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 19 Aug 2023 20:41:39 +0000 Subject: [PATCH 098/182] Update dependency prettier to v3.0.2 (#17623) * Update dependency prettier to v3.0.2 * Reformat --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Steve Repsher --- package.json | 2 +- src/auth/ha-authorize.ts | 2 +- src/components/ha-web-rtc-player.ts | 5 ++--- .../config/integrations/ha-config-integration-page.ts | 5 ++--- yarn.lock | 10 +++++----- 5 files changed, 11 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index ecdfda5f16..ff9c3d743c 100644 --- a/package.json +++ b/package.json @@ -225,7 +225,7 @@ "object-hash": "3.0.0", "open": "9.1.0", "pinst": "3.0.0", - "prettier": "3.0.1", + "prettier": "3.0.2", "rollup": "2.79.1", "rollup-plugin-string": "3.0.0", "rollup-plugin-terser": "7.0.2", diff --git a/src/auth/ha-authorize.ts b/src/auth/ha-authorize.ts index 19e760f9d1..67313d4ffa 100644 --- a/src/auth/ha-authorize.ts +++ b/src/auth/ha-authorize.ts @@ -1,3 +1,4 @@ +import punycode from "punycode"; import { css, CSSResultGroup, @@ -7,7 +8,6 @@ import { PropertyValues, } from "lit"; import { customElement, property, state } from "lit/decorators"; -import punycode from "punycode"; import { applyThemesOnElement } from "../common/dom/apply_themes_on_element"; import { extractSearchParamsObject } from "../common/url/search-params"; import "../components/ha-alert"; diff --git a/src/components/ha-web-rtc-player.ts b/src/components/ha-web-rtc-player.ts index 5de5e0c49e..84707673d1 100644 --- a/src/components/ha-web-rtc-player.ts +++ b/src/components/ha-web-rtc-player.ts @@ -102,9 +102,8 @@ class HaWebRtcPlayer extends LitElement { offerToReceiveAudio: true, offerToReceiveVideo: true, }; - const offer: RTCSessionDescriptionInit = await peerConnection.createOffer( - offerOptions - ); + const offer: RTCSessionDescriptionInit = + await peerConnection.createOffer(offerOptions); await peerConnection.setLocalDescription(offer); let candidates = ""; // Build an Offer SDP string with ice candidates diff --git a/src/panels/config/integrations/ha-config-integration-page.ts b/src/panels/config/integrations/ha-config-integration-page.ts index 6ec67086f8..0a77867b5b 100644 --- a/src/panels/config/integrations/ha-config-integration-page.ts +++ b/src/panels/config/integrations/ha-config-integration-page.ts @@ -1157,9 +1157,8 @@ class HaConfigIntegrationPage extends SubscribeMixin(LitElement) { private async _removeIntegration(configEntry: ConfigEntry) { const entryId = configEntry.entry_id; - const applicationCredentialsId = await this._applicationCredentialForRemove( - entryId - ); + const applicationCredentialsId = + await this._applicationCredentialForRemove(entryId); const confirmed = await showConfirmationDialog(this, { title: this.hass.localize( diff --git a/yarn.lock b/yarn.lock index d24ddb3a3e..6739bff2f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9774,7 +9774,7 @@ __metadata: object-hash: 3.0.0 open: 9.1.0 pinst: 3.0.0 - prettier: 3.0.1 + prettier: 3.0.2 proxy-polyfill: 0.3.2 punycode: 2.3.0 qr-scanner: 1.4.2 @@ -13245,12 +13245,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:3.0.1": - version: 3.0.1 - resolution: "prettier@npm:3.0.1" +"prettier@npm:3.0.2": + version: 3.0.2 + resolution: "prettier@npm:3.0.2" bin: prettier: bin/prettier.cjs - checksum: e1f3f16c7fe0495de3faa182597871f74927d787cce3c52095a66ff5d7eacc05173371d5f58bf12141a0a1b6bfe739a338531d6cf18b92c7256c1319f2c84e73 + checksum: 118b59ddb6c80abe2315ab6d0f4dd1b253be5cfdb20622fa5b65bb1573dcd362e6dd3dcf2711dd3ebfe64aecf7bdc75de8a69dc2422dcd35bdde7610586b677a languageName: node linkType: hard From 93dd119ce5c40e9631f0aaf6137393ffa75759a0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 20 Aug 2023 02:10:29 +0000 Subject: [PATCH 099/182] Update dependency @rollup/plugin-node-resolve to v15.2.0 (#17640) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index ff9c3d743c..4e97e45c92 100644 --- a/package.json +++ b/package.json @@ -165,7 +165,7 @@ "@rollup/plugin-babel": "6.0.3", "@rollup/plugin-commonjs": "25.0.4", "@rollup/plugin-json": "6.0.0", - "@rollup/plugin-node-resolve": "15.1.0", + "@rollup/plugin-node-resolve": "15.2.0", "@rollup/plugin-replace": "5.0.2", "@types/babel__plugin-transform-runtime": "7.9.2", "@types/chromecast-caf-receiver": "6.0.9", diff --git a/yarn.lock b/yarn.lock index 6739bff2f4..0defb19e6d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3866,9 +3866,9 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-node-resolve@npm:15.1.0": - version: 15.1.0 - resolution: "@rollup/plugin-node-resolve@npm:15.1.0" +"@rollup/plugin-node-resolve@npm:15.2.0": + version: 15.2.0 + resolution: "@rollup/plugin-node-resolve@npm:15.2.0" dependencies: "@rollup/pluginutils": ^5.0.1 "@types/resolve": 1.20.2 @@ -3881,7 +3881,7 @@ __metadata: peerDependenciesMeta: rollup: optional: true - checksum: 83617cdbb90cb780251e8b16dc1671e35bde90b8d4d30e008aefe706b5b643057f6299bdd3226b2a30bf5e4f807a880169de3faa47b9f2ba38d39f294f85f951 + checksum: 92abfd7f1f5df08d71e4b8dd433d31cf1d62f68891ae3dd5e03a8a7f8d42d9c4433c14a25ead04204fea8235c663a3bbb66ba5528103a6dab66bd8c124f85a0d languageName: node linkType: hard @@ -9682,7 +9682,7 @@ __metadata: "@rollup/plugin-babel": 6.0.3 "@rollup/plugin-commonjs": 25.0.4 "@rollup/plugin-json": 6.0.0 - "@rollup/plugin-node-resolve": 15.1.0 + "@rollup/plugin-node-resolve": 15.2.0 "@rollup/plugin-replace": 5.0.2 "@thomasloven/round-slider": 0.6.0 "@types/babel__plugin-transform-runtime": 7.9.2 From 00c69c0fc35de8df528a3e17494e0b5f8ca3161d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 20 Aug 2023 02:11:09 +0000 Subject: [PATCH 100/182] Lock file maintenance (#17634) * Lock file maintenance * Limit time period for lock file maintenance --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Steve Repsher --- renovate.json | 2 +- yarn.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/renovate.json b/renovate.json index e1dabc5a5b..f6e9e56c4f 100644 --- a/renovate.json +++ b/renovate.json @@ -15,7 +15,7 @@ "lockFileMaintenance": { "description": ["Run after patch releases but before next beta"], "enabled": true, - "schedule": ["on the 19th day of the month"] + "schedule": ["on the 19th day of the month before 4am"] }, "packageRules": [ { diff --git a/yarn.lock b/yarn.lock index 0defb19e6d..141c3e1f47 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6505,9 +6505,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001517": - version: 1.0.30001521 - resolution: "caniuse-lite@npm:1.0.30001521" - checksum: be2a2b2cd3be03401887aaa31b89f3e7c6230289e6ef704e224268389cc136480fca502ac9e5001a65ff1e50459d3d95f8c4b2d39f878ab9843af3d6f372c8bb + version: 1.0.30001522 + resolution: "caniuse-lite@npm:1.0.30001522" + checksum: 56e3551c02ae595085114073cf242f7d9d54d32255c80893ca9098a44f44fc6eef353936f234f31c7f4cb894dd2b6c9c4626e30649ee29e04d70aa127eeefeb0 languageName: node linkType: hard From 76093d898d13bddc51df959241e7fdb61227f166 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sun, 20 Aug 2023 18:45:39 +0200 Subject: [PATCH 101/182] Fix template selector usage in config flows (#17643) --- src/components/ha-form/compute-initial-ha-form-data.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/ha-form/compute-initial-ha-form-data.ts b/src/components/ha-form/compute-initial-ha-form-data.ts index d297f3286a..c1d2ba5824 100644 --- a/src/components/ha-form/compute-initial-ha-form-data.ts +++ b/src/components/ha-form/compute-initial-ha-form-data.ts @@ -47,11 +47,12 @@ export const computeInitialHaFormData = ( } else if ("boolean" in selector) { data[field.name] = false; } else if ( - "text" in selector || "addon" in selector || "attribute" in selector || "file" in selector || "icon" in selector || + "template" in selector || + "text" in selector || "theme" in selector ) { data[field.name] = ""; From 09697148cfc354a0af711380d9b75639d8758e71 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 20 Aug 2023 21:46:00 -0400 Subject: [PATCH 102/182] Update Yarn to v3.6.2 (#17647) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../{yarn-3.6.1.cjs => yarn-3.6.2.cjs} | 402 +++++++++--------- .yarnrc.yml | 2 +- package.json | 2 +- 3 files changed, 203 insertions(+), 203 deletions(-) rename .yarn/releases/{yarn-3.6.1.cjs => yarn-3.6.2.cjs} (79%) diff --git a/.yarn/releases/yarn-3.6.1.cjs b/.yarn/releases/yarn-3.6.2.cjs similarity index 79% rename from .yarn/releases/yarn-3.6.1.cjs rename to .yarn/releases/yarn-3.6.2.cjs index 5227385a9e..f4ae436b44 100755 --- a/.yarn/releases/yarn-3.6.1.cjs +++ b/.yarn/releases/yarn-3.6.2.cjs @@ -1,48 +1,48 @@ #!/usr/bin/env node /* eslint-disable */ //prettier-ignore -(()=>{var xge=Object.create;var lS=Object.defineProperty;var Pge=Object.getOwnPropertyDescriptor;var Dge=Object.getOwnPropertyNames;var kge=Object.getPrototypeOf,Rge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Fge=(r,e)=>()=>(r&&(e=r(r=0)),e);var w=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ut=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},Nge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Dge(e))!Rge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Pge(e,n))||i.enumerable});return r};var Pe=(r,e,t)=>(t=r!=null?xge(kge(r)):{},Nge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var vK=w((JXe,SK)=>{SK.exports=QK;QK.sync=tfe;var BK=J("fs");function efe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{kK.exports=PK;PK.sync=rfe;var xK=J("fs");function PK(r,e,t){xK.stat(r,function(i,n){t(i,i?!1:DK(n,e))})}function rfe(r,e){return DK(xK.statSync(r),e)}function DK(r,e){return r.isFile()&&ife(r,e)}function ife(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var NK=w((VXe,FK)=>{var zXe=J("fs"),lI;process.platform==="win32"||global.TESTING_WINDOWS?lI=vK():lI=RK();FK.exports=SS;SS.sync=nfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}lI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function nfe(r,e){try{return lI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var HK=w((XXe,UK)=>{var Dg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",TK=J("path"),sfe=Dg?";":":",LK=NK(),MK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),OK=(r,e)=>{let t=e.colon||sfe,i=r.match(/\//)||Dg&&r.match(/\\/)?[""]:[...Dg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Dg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Dg?n.split(t):[""];return Dg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},KK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=OK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(MK(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=TK.join(h,r),C=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(C,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];LK(c+p,{pathExt:s},(C,y)=>{if(!C&&y)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},ofe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=OK(r,e),s=[];for(let o=0;o{"use strict";var GK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=GK;vS.exports.default=GK});var WK=w((_Xe,JK)=>{"use strict";var jK=J("path"),afe=HK(),Afe=YK();function qK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=afe.sync(r.command,{path:t[Afe({env:t})],pathExt:e?jK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=jK.resolve(n?r.options.cwd:"",o)),o}function lfe(r){return qK(r)||qK(r,!0)}JK.exports=lfe});var zK=w(($Xe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function cfe(r){return r=r.replace(xS,"^$1"),r}function ufe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=cfe;PS.exports.argument=ufe});var XK=w((eZe,VK)=>{"use strict";VK.exports=/^#!(.*)/});var _K=w((tZe,ZK)=>{"use strict";var gfe=XK();ZK.exports=(r="")=>{let e=r.match(gfe);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var eU=w((rZe,$K)=>{"use strict";var DS=J("fs"),ffe=_K();function hfe(r){let t=Buffer.alloc(150),i;try{i=DS.openSync(r,"r"),DS.readSync(i,t,0,150,0),DS.closeSync(i)}catch{}return ffe(t.toString())}$K.exports=hfe});var nU=w((iZe,iU)=>{"use strict";var pfe=J("path"),tU=WK(),rU=zK(),dfe=eU(),Cfe=process.platform==="win32",mfe=/\.(?:com|exe)$/i,Efe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Ife(r){r.file=tU(r);let e=r.file&&dfe(r.file);return e?(r.args.unshift(r.file),r.command=e,tU(r)):r.file}function yfe(r){if(!Cfe)return r;let e=Ife(r),t=!mfe.test(e);if(r.options.forceShell||t){let i=Efe.test(e);r.command=pfe.normalize(r.command),r.command=rU.command(r.command),r.args=r.args.map(s=>rU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function wfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:yfe(i)}iU.exports=wfe});var aU=w((nZe,oU)=>{"use strict";var kS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Bfe(r,e){if(!kS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=sU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function sU(r,e){return kS&&r===1&&!e.file?RS(e.original,"spawn"):null}function bfe(r,e){return kS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}oU.exports={hookChildProcess:Bfe,verifyENOENT:sU,verifyENOENTSync:bfe,notFoundError:RS}});var TS=w((sZe,kg)=>{"use strict";var AU=J("child_process"),FS=nU(),NS=aU();function lU(r,e,t){let i=FS(r,e,t),n=AU.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function Qfe(r,e,t){let i=FS(r,e,t),n=AU.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}kg.exports=lU;kg.exports.spawn=lU;kg.exports.sync=Qfe;kg.exports._parse=FS;kg.exports._enoent=NS});var uU=w((oZe,cU)=>{"use strict";function Sfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Zl(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Zl)}Sfe(Zl,Error);Zl.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",ie=me(">>",!1),de=">&",_e=me(">&",!1),Pt=">",It=me(">",!1),Mr="<<<",ii=me("<<<",!1),gi="<&",hr=me("<&",!1),fi="<",ni=me("<",!1),Ks=function(m){return{type:"argument",segments:[].concat(...m)}},pr=function(m){return m},Ii="$'",rs=me("$'",!1),fa="'",CA=me("'",!1),cg=function(m){return[{type:"text",text:m}]},is='""',mA=me('""',!1),ha=function(){return{type:"text",text:""}},wp='"',EA=me('"',!1),IA=function(m){return m},wr=function(m){return{type:"arithmetic",arithmetic:m,quoted:!0}},Tl=function(m){return{type:"shell",shell:m,quoted:!0}},ug=function(m){return{type:"variable",...m,quoted:!0}},Io=function(m){return{type:"text",text:m}},gg=function(m){return{type:"arithmetic",arithmetic:m,quoted:!1}},Bp=function(m){return{type:"shell",shell:m,quoted:!1}},bp=function(m){return{type:"variable",...m,quoted:!1}},vr=function(m){return{type:"glob",pattern:m}},se=/^[^']/,yo=Je(["'"],!0,!1),Fn=function(m){return m.join("")},fg=/^[^$"]/,bt=Je(["$",'"'],!0,!1),Ll=`\\ +(()=>{var Dge=Object.create;var lS=Object.defineProperty;var kge=Object.getOwnPropertyDescriptor;var Rge=Object.getOwnPropertyNames;var Fge=Object.getPrototypeOf,Nge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Tge=(r,e)=>()=>(r&&(e=r(r=0)),e);var w=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ut=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},Lge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Rge(e))!Nge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=kge(e,n))||i.enumerable});return r};var Pe=(r,e,t)=>(t=r!=null?Dge(Fge(r)):{},Lge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var PK=w((z7e,xK)=>{xK.exports=vK;vK.sync=ife;var QK=J("fs");function rfe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{FK.exports=kK;kK.sync=nfe;var DK=J("fs");function kK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:RK(n,e))})}function nfe(r,e){return RK(DK.statSync(r),e)}function RK(r,e){return r.isFile()&&sfe(r,e)}function sfe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var LK=w((Z7e,TK)=>{var X7e=J("fs"),lI;process.platform==="win32"||global.TESTING_WINDOWS?lI=PK():lI=NK();TK.exports=SS;SS.sync=ofe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}lI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function ofe(r,e){try{return lI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=w((_7e,GK)=>{var Dg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),afe=Dg?";":":",OK=LK(),KK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),UK=(r,e)=>{let t=e.colon||afe,i=r.match(/\//)||Dg&&r.match(/\\/)?[""]:[...Dg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Dg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Dg?n.split(t):[""];return Dg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},HK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=UK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(KK(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=MK.join(h,r),C=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(C,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];OK(c+p,{pathExt:s},(C,y)=>{if(!C&&y)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},Afe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=UK(r,e),s=[];for(let o=0;o{"use strict";var jK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=jK;vS.exports.default=jK});var VK=w((eZe,zK)=>{"use strict";var JK=J("path"),lfe=YK(),cfe=qK();function WK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=lfe.sync(r.command,{path:t[cfe({env:t})],pathExt:e?JK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=JK.resolve(n?r.options.cwd:"",o)),o}function ufe(r){return WK(r)||WK(r,!0)}zK.exports=ufe});var XK=w((tZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function gfe(r){return r=r.replace(xS,"^$1"),r}function ffe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=gfe;PS.exports.argument=ffe});var _K=w((rZe,ZK)=>{"use strict";ZK.exports=/^#!(.*)/});var eU=w((iZe,$K)=>{"use strict";var hfe=_K();$K.exports=(r="")=>{let e=r.match(hfe);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var rU=w((nZe,tU)=>{"use strict";var DS=J("fs"),pfe=eU();function dfe(r){let t=Buffer.alloc(150),i;try{i=DS.openSync(r,"r"),DS.readSync(i,t,0,150,0),DS.closeSync(i)}catch{}return pfe(t.toString())}tU.exports=dfe});var oU=w((sZe,sU)=>{"use strict";var Cfe=J("path"),iU=VK(),nU=XK(),mfe=rU(),Efe=process.platform==="win32",Ife=/\.(?:com|exe)$/i,yfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function wfe(r){r.file=iU(r);let e=r.file&&mfe(r.file);return e?(r.args.unshift(r.file),r.command=e,iU(r)):r.file}function Bfe(r){if(!Efe)return r;let e=wfe(r),t=!Ife.test(e);if(r.options.forceShell||t){let i=yfe.test(e);r.command=Cfe.normalize(r.command),r.command=nU.command(r.command),r.args=r.args.map(s=>nU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function bfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Bfe(i)}sU.exports=bfe});var lU=w((oZe,AU)=>{"use strict";var kS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Qfe(r,e){if(!kS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=aU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function aU(r,e){return kS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Sfe(r,e){return kS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}AU.exports={hookChildProcess:Qfe,verifyENOENT:aU,verifyENOENTSync:Sfe,notFoundError:RS}});var TS=w((aZe,kg)=>{"use strict";var cU=J("child_process"),FS=oU(),NS=lU();function uU(r,e,t){let i=FS(r,e,t),n=cU.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function vfe(r,e,t){let i=FS(r,e,t),n=cU.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}kg.exports=uU;kg.exports.spawn=uU;kg.exports.sync=vfe;kg.exports._parse=FS;kg.exports._enoent=NS});var fU=w((AZe,gU)=>{"use strict";function xfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Zl(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Zl)}xfe(Zl,Error);Zl.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",ie=me(">>",!1),de=">&",_e=me(">&",!1),Pt=">",It=me(">",!1),Mr="<<<",ii=me("<<<",!1),gi="<&",hr=me("<&",!1),fi="<",ni=me("<",!1),Ks=function(m){return{type:"argument",segments:[].concat(...m)}},pr=function(m){return m},Ii="$'",rs=me("$'",!1),fa="'",dA=me("'",!1),cg=function(m){return[{type:"text",text:m}]},is='""',CA=me('""',!1),ha=function(){return{type:"text",text:""}},wp='"',mA=me('"',!1),EA=function(m){return m},wr=function(m){return{type:"arithmetic",arithmetic:m,quoted:!0}},Tl=function(m){return{type:"shell",shell:m,quoted:!0}},ug=function(m){return{type:"variable",...m,quoted:!0}},yo=function(m){return{type:"text",text:m}},gg=function(m){return{type:"arithmetic",arithmetic:m,quoted:!1}},Bp=function(m){return{type:"shell",shell:m,quoted:!1}},bp=function(m){return{type:"variable",...m,quoted:!1}},vr=function(m){return{type:"glob",pattern:m}},se=/^[^']/,wo=Je(["'"],!0,!1),Fn=function(m){return m.join("")},fg=/^[^$"]/,bt=Je(["$",'"'],!0,!1),Ll=`\\ `,Nn=me(`\\ -`,!1),ns=function(){return""},ss="\\",gt=me("\\",!1),wo=/^[\\$"`]/,At=Je(["\\","$",'"',"`"],!1,!1),ln=function(m){return m},S="\\a",Lt=me("\\a",!1),hg=function(){return"a"},Ml="\\b",Qp=me("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Je(["E","e"],!1,!1),Pp=function(){return"\x1B"},G="\\f",yt=me("\\f",!1),yA=function(){return"\f"},zi="\\n",Ol=me("\\n",!1),Xe=function(){return` -`},pa="\\r",pg=me("\\r",!1),ME=function(){return"\r"},Dp="\\t",OE=me("\\t",!1),ar=function(){return" "},Tn="\\v",Kl=me("\\v",!1),kp=function(){return"\v"},Us=/^[\\'"?]/,da=Je(["\\","'",'"',"?"],!1,!1),cn=function(m){return String.fromCharCode(parseInt(m,16))},Le="\\x",dg=me("\\x",!1),Ul="\\u",Hs=me("\\u",!1),Hl="\\U",wA=me("\\U",!1),Cg=function(m){return String.fromCodePoint(parseInt(m,16))},mg=/^[0-7]/,Ca=Je([["0","7"]],!1,!1),ma=/^[0-9a-fA-f]/,rt=Je([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="-",Gl=me("-",!1),Gs="+",Yl=me("+",!1),KE=".",Rp=me(".",!1),Eg=function(m,Q,N){return{type:"number",value:(m==="-"?-1:1)*parseFloat(Q.join("")+"."+N.join(""))}},Fp=function(m,Q){return{type:"number",value:(m==="-"?-1:1)*parseInt(Q.join(""))}},UE=function(m){return{type:"variable",...m}},jl=function(m){return{type:"variable",name:m}},HE=function(m){return m},Ig="*",bA=me("*",!1),Rr="/",GE=me("/",!1),Ys=function(m,Q,N){return{type:Q==="*"?"multiplication":"division",right:N}},js=function(m,Q){return Q.reduce((N,U)=>({left:N,...U}),m)},yg=function(m,Q,N){return{type:Q==="+"?"addition":"subtraction",right:N}},QA="$((",R=me("$((",!1),q="))",Ce=me("))",!1),Ke=function(m){return m},Re="$(",ze=me("$(",!1),dt=function(m){return m},Ft="${",Ln=me("${",!1),JQ=":-",P1=me(":-",!1),D1=function(m,Q){return{name:m,defaultValue:Q}},WQ=":-}",k1=me(":-}",!1),R1=function(m){return{name:m,defaultValue:[]}},zQ=":+",F1=me(":+",!1),N1=function(m,Q){return{name:m,alternativeValue:Q}},VQ=":+}",T1=me(":+}",!1),L1=function(m){return{name:m,alternativeValue:[]}},XQ=function(m){return{name:m}},M1="$",O1=me("$",!1),K1=function(m){return e.isGlobPattern(m)},U1=function(m){return m},ZQ=/^[a-zA-Z0-9_]/,_Q=Je([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$Q=function(){return L()},eS=/^[$@*?#a-zA-Z0-9_\-]/,tS=Je(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),H1=/^[(){}<>$|&; \t"']/,wg=Je(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,iS=Je(["<",">","&",";"," "," ",'"',"'"],!1,!1),YE=/^[ \t]/,jE=Je([" "," "],!1,!1),b=0,Oe=0,SA=[{line:1,column:1}],d=0,E=[],I=0,k;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function L(){return r.substring(Oe,b)}function Z(){return Et(Oe,b)}function te(m,Q){throw Q=Q!==void 0?Q:Et(Oe,b),Ri([lt(m)],r.substring(Oe,b),Q)}function we(m,Q){throw Q=Q!==void 0?Q:Et(Oe,b),Mn(m,Q)}function me(m,Q){return{type:"literal",text:m,ignoreCase:Q}}function Je(m,Q,N){return{type:"class",parts:m,inverted:Q,ignoreCase:N}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function lt(m){return{type:"other",description:m}}function it(m){var Q=SA[m],N;if(Q)return Q;for(N=m-1;!SA[N];)N--;for(Q=SA[N],Q={line:Q.line,column:Q.column};Nd&&(d=b,E=[]),E.push(m))}function Mn(m,Q){return new Zl(m,null,null,Q)}function Ri(m,Q,N){return new Zl(Zl.buildMessage(m,Q),m,Q,N)}function vA(){var m,Q;return m=b,Q=Or(),Q===t&&(Q=null),Q!==t&&(Oe=m,Q=s(Q)),m=Q,m}function Or(){var m,Q,N,U,ce;if(m=b,Q=Kr(),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=Ea(),U!==t?(ce=os(),ce===t&&(ce=null),ce!==t?(Oe=m,Q=o(Q,U,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;if(m===t)if(m=b,Q=Kr(),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=Ea(),U===t&&(U=null),U!==t?(Oe=m,Q=a(Q,U),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function os(){var m,Q,N,U,ce;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=Or(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Oe=m,Q=l(N),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function Ea(){var m;return r.charCodeAt(b)===59?(m=c,b++):(m=t,I===0&&be(u)),m===t&&(r.charCodeAt(b)===38?(m=g,b++):(m=t,I===0&&be(f))),m}function Kr(){var m,Q,N;return m=b,Q=G1(),Q!==t?(N=uge(),N===t&&(N=null),N!==t?(Oe=m,Q=h(Q,N),m=Q):(b=m,m=t)):(b=m,m=t),m}function uge(){var m,Q,N,U,ce,Se,ht;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=gge(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Kr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Oe=m,Q=p(N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;return m}function gge(){var m;return r.substr(b,2)===C?(m=C,b+=2):(m=t,I===0&&be(y)),m===t&&(r.substr(b,2)===B?(m=B,b+=2):(m=t,I===0&&be(v))),m}function G1(){var m,Q,N;return m=b,Q=pge(),Q!==t?(N=fge(),N===t&&(N=null),N!==t?(Oe=m,Q=D(Q,N),m=Q):(b=m,m=t)):(b=m,m=t),m}function fge(){var m,Q,N,U,ce,Se,ht;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=hge(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=G1(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Oe=m,Q=T(N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;return m}function hge(){var m;return r.substr(b,2)===H?(m=H,b+=2):(m=t,I===0&&be(j)),m===t&&(r.charCodeAt(b)===124?(m=$,b++):(m=t,I===0&&be(V))),m}function qE(){var m,Q,N,U,ce,Se;if(m=b,Q=eK(),Q!==t)if(r.charCodeAt(b)===61?(N=W,b++):(N=t,I===0&&be(_)),N!==t)if(U=q1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(Oe=m,Q=A(Q,U),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;else b=m,m=t;if(m===t)if(m=b,Q=eK(),Q!==t)if(r.charCodeAt(b)===61?(N=W,b++):(N=t,I===0&&be(_)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Oe=m,Q=Ae(Q),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function pge(){var m,Q,N,U,ce,Se,ht,Bt,Jr,hi,as;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(r.charCodeAt(b)===40?(N=ge,b++):(N=t,I===0&&be(re)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Or(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(b)===41?(ht=M,b++):(ht=t,I===0&&be(F)),ht!==t){for(Bt=[],Jr=He();Jr!==t;)Bt.push(Jr),Jr=He();if(Bt!==t){for(Jr=[],hi=Np();hi!==t;)Jr.push(hi),hi=Np();if(Jr!==t){for(hi=[],as=He();as!==t;)hi.push(as),as=He();hi!==t?(Oe=m,Q=ue(ce,Jr),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;if(m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(r.charCodeAt(b)===123?(N=pe,b++):(N=t,I===0&&be(ke)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Or(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(b)===125?(ht=Fe,b++):(ht=t,I===0&&be(Ne)),ht!==t){for(Bt=[],Jr=He();Jr!==t;)Bt.push(Jr),Jr=He();if(Bt!==t){for(Jr=[],hi=Np();hi!==t;)Jr.push(hi),hi=Np();if(Jr!==t){for(hi=[],as=He();as!==t;)hi.push(as),as=He();hi!==t?(Oe=m,Q=oe(ce,Jr),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;if(m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t){for(N=[],U=qE();U!==t;)N.push(U),U=qE();if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t){if(ce=[],Se=j1(),Se!==t)for(;Se!==t;)ce.push(Se),Se=j1();else ce=t;if(ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Oe=m,Q=le(N,ce),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t}else b=m,m=t;if(m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t){if(N=[],U=qE(),U!==t)for(;U!==t;)N.push(U),U=qE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Oe=m,Q=Be(N),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}}}return m}function Y1(){var m,Q,N,U,ce;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t){if(N=[],U=JE(),U!==t)for(;U!==t;)N.push(U),U=JE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Oe=m,Q=fe(N),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t;return m}function j1(){var m,Q,N;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t?(N=Np(),N!==t?(Oe=m,Q=ae(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();Q!==t?(N=JE(),N!==t?(Oe=m,Q=ae(N),m=Q):(b=m,m=t)):(b=m,m=t)}return m}function Np(){var m,Q,N,U,ce;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();return Q!==t?(qe.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(ne)),N===t&&(N=null),N!==t?(U=dge(),U!==t?(ce=JE(),ce!==t?(Oe=m,Q=Y(N,U,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function dge(){var m;return r.substr(b,2)===he?(m=he,b+=2):(m=t,I===0&&be(ie)),m===t&&(r.substr(b,2)===de?(m=de,b+=2):(m=t,I===0&&be(_e)),m===t&&(r.charCodeAt(b)===62?(m=Pt,b++):(m=t,I===0&&be(It)),m===t&&(r.substr(b,3)===Mr?(m=Mr,b+=3):(m=t,I===0&&be(ii)),m===t&&(r.substr(b,2)===gi?(m=gi,b+=2):(m=t,I===0&&be(hr)),m===t&&(r.charCodeAt(b)===60?(m=fi,b++):(m=t,I===0&&be(ni))))))),m}function JE(){var m,Q,N;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();return Q!==t?(N=q1(),N!==t?(Oe=m,Q=ae(N),m=Q):(b=m,m=t)):(b=m,m=t),m}function q1(){var m,Q,N;if(m=b,Q=[],N=J1(),N!==t)for(;N!==t;)Q.push(N),N=J1();else Q=t;return Q!==t&&(Oe=m,Q=Ks(Q)),m=Q,m}function J1(){var m,Q;return m=b,Q=Cge(),Q!==t&&(Oe=m,Q=pr(Q)),m=Q,m===t&&(m=b,Q=mge(),Q!==t&&(Oe=m,Q=pr(Q)),m=Q,m===t&&(m=b,Q=Ege(),Q!==t&&(Oe=m,Q=pr(Q)),m=Q,m===t&&(m=b,Q=Ige(),Q!==t&&(Oe=m,Q=pr(Q)),m=Q))),m}function Cge(){var m,Q,N,U;return m=b,r.substr(b,2)===Ii?(Q=Ii,b+=2):(Q=t,I===0&&be(rs)),Q!==t?(N=Bge(),N!==t?(r.charCodeAt(b)===39?(U=fa,b++):(U=t,I===0&&be(CA)),U!==t?(Oe=m,Q=cg(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function mge(){var m,Q,N,U;return m=b,r.charCodeAt(b)===39?(Q=fa,b++):(Q=t,I===0&&be(CA)),Q!==t?(N=yge(),N!==t?(r.charCodeAt(b)===39?(U=fa,b++):(U=t,I===0&&be(CA)),U!==t?(Oe=m,Q=cg(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function Ege(){var m,Q,N,U;if(m=b,r.substr(b,2)===is?(Q=is,b+=2):(Q=t,I===0&&be(mA)),Q!==t&&(Oe=m,Q=ha()),m=Q,m===t)if(m=b,r.charCodeAt(b)===34?(Q=wp,b++):(Q=t,I===0&&be(EA)),Q!==t){for(N=[],U=W1();U!==t;)N.push(U),U=W1();N!==t?(r.charCodeAt(b)===34?(U=wp,b++):(U=t,I===0&&be(EA)),U!==t?(Oe=m,Q=IA(N),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function Ige(){var m,Q,N;if(m=b,Q=[],N=z1(),N!==t)for(;N!==t;)Q.push(N),N=z1();else Q=t;return Q!==t&&(Oe=m,Q=IA(Q)),m=Q,m}function W1(){var m,Q;return m=b,Q=_1(),Q!==t&&(Oe=m,Q=wr(Q)),m=Q,m===t&&(m=b,Q=$1(),Q!==t&&(Oe=m,Q=Tl(Q)),m=Q,m===t&&(m=b,Q=aS(),Q!==t&&(Oe=m,Q=ug(Q)),m=Q,m===t&&(m=b,Q=wge(),Q!==t&&(Oe=m,Q=Io(Q)),m=Q))),m}function z1(){var m,Q;return m=b,Q=_1(),Q!==t&&(Oe=m,Q=gg(Q)),m=Q,m===t&&(m=b,Q=$1(),Q!==t&&(Oe=m,Q=Bp(Q)),m=Q,m===t&&(m=b,Q=aS(),Q!==t&&(Oe=m,Q=bp(Q)),m=Q,m===t&&(m=b,Q=Sge(),Q!==t&&(Oe=m,Q=vr(Q)),m=Q,m===t&&(m=b,Q=Qge(),Q!==t&&(Oe=m,Q=Io(Q)),m=Q)))),m}function yge(){var m,Q,N;for(m=b,Q=[],se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(yo));N!==t;)Q.push(N),se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(yo));return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function wge(){var m,Q,N;if(m=b,Q=[],N=V1(),N===t&&(fg.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(bt))),N!==t)for(;N!==t;)Q.push(N),N=V1(),N===t&&(fg.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(bt)));else Q=t;return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function V1(){var m,Q,N;return m=b,r.substr(b,2)===Ll?(Q=Ll,b+=2):(Q=t,I===0&&be(Nn)),Q!==t&&(Oe=m,Q=ns()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(wo.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(At)),N!==t?(Oe=m,Q=ln(N),m=Q):(b=m,m=t)):(b=m,m=t)),m}function Bge(){var m,Q,N;for(m=b,Q=[],N=X1(),N===t&&(se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(yo)));N!==t;)Q.push(N),N=X1(),N===t&&(se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(yo)));return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function X1(){var m,Q,N;return m=b,r.substr(b,2)===S?(Q=S,b+=2):(Q=t,I===0&&be(Lt)),Q!==t&&(Oe=m,Q=hg()),m=Q,m===t&&(m=b,r.substr(b,2)===Ml?(Q=Ml,b+=2):(Q=t,I===0&&be(Qp)),Q!==t&&(Oe=m,Q=Sp()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(vp.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(xp)),N!==t?(Oe=m,Q=Pp(),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===G?(Q=G,b+=2):(Q=t,I===0&&be(yt)),Q!==t&&(Oe=m,Q=yA()),m=Q,m===t&&(m=b,r.substr(b,2)===zi?(Q=zi,b+=2):(Q=t,I===0&&be(Ol)),Q!==t&&(Oe=m,Q=Xe()),m=Q,m===t&&(m=b,r.substr(b,2)===pa?(Q=pa,b+=2):(Q=t,I===0&&be(pg)),Q!==t&&(Oe=m,Q=ME()),m=Q,m===t&&(m=b,r.substr(b,2)===Dp?(Q=Dp,b+=2):(Q=t,I===0&&be(OE)),Q!==t&&(Oe=m,Q=ar()),m=Q,m===t&&(m=b,r.substr(b,2)===Tn?(Q=Tn,b+=2):(Q=t,I===0&&be(Kl)),Q!==t&&(Oe=m,Q=kp()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(Us.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(da)),N!==t?(Oe=m,Q=ln(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=bge()))))))))),m}function bge(){var m,Q,N,U,ce,Se,ht,Bt,Jr,hi,as,AS;return m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(N=nS(),N!==t?(Oe=m,Q=cn(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Le?(Q=Le,b+=2):(Q=t,I===0&&be(dg)),Q!==t?(N=b,U=b,ce=nS(),ce!==t?(Se=On(),Se!==t?(ce=[ce,Se],U=ce):(b=U,U=t)):(b=U,U=t),U===t&&(U=nS()),U!==t?N=r.substring(N,b):N=U,N!==t?(Oe=m,Q=cn(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ul?(Q=Ul,b+=2):(Q=t,I===0&&be(Hs)),Q!==t?(N=b,U=b,ce=On(),ce!==t?(Se=On(),Se!==t?(ht=On(),ht!==t?(Bt=On(),Bt!==t?(ce=[ce,Se,ht,Bt],U=ce):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t),U!==t?N=r.substring(N,b):N=U,N!==t?(Oe=m,Q=cn(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Hl?(Q=Hl,b+=2):(Q=t,I===0&&be(wA)),Q!==t?(N=b,U=b,ce=On(),ce!==t?(Se=On(),Se!==t?(ht=On(),ht!==t?(Bt=On(),Bt!==t?(Jr=On(),Jr!==t?(hi=On(),hi!==t?(as=On(),as!==t?(AS=On(),AS!==t?(ce=[ce,Se,ht,Bt,Jr,hi,as,AS],U=ce):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t),U!==t?N=r.substring(N,b):N=U,N!==t?(Oe=m,Q=Cg(N),m=Q):(b=m,m=t)):(b=m,m=t)))),m}function nS(){var m;return mg.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(Ca)),m}function On(){var m;return ma.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(rt)),m}function Qge(){var m,Q,N,U,ce;if(m=b,Q=[],N=b,r.charCodeAt(b)===92?(U=ss,b++):(U=t,I===0&&be(gt)),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(Bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t),N===t&&(N=b,U=b,I++,ce=tK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(Bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t)),N!==t)for(;N!==t;)Q.push(N),N=b,r.charCodeAt(b)===92?(U=ss,b++):(U=t,I===0&&be(gt)),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(Bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t),N===t&&(N=b,U=b,I++,ce=tK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(Bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t));else Q=t;return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function sS(){var m,Q,N,U,ce,Se;if(m=b,r.charCodeAt(b)===45?(Q=BA,b++):(Q=t,I===0&&be(Gl)),Q===t&&(r.charCodeAt(b)===43?(Q=Gs,b++):(Q=t,I===0&&be(Yl))),Q===t&&(Q=null),Q!==t){if(N=[],qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne));else N=t;if(N!==t)if(r.charCodeAt(b)===46?(U=KE,b++):(U=t,I===0&&be(Rp)),U!==t){if(ce=[],qe.test(r.charAt(b))?(Se=r.charAt(b),b++):(Se=t,I===0&&be(ne)),Se!==t)for(;Se!==t;)ce.push(Se),qe.test(r.charAt(b))?(Se=r.charAt(b),b++):(Se=t,I===0&&be(ne));else ce=t;ce!==t?(Oe=m,Q=Eg(Q,N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;if(m===t){if(m=b,r.charCodeAt(b)===45?(Q=BA,b++):(Q=t,I===0&&be(Gl)),Q===t&&(r.charCodeAt(b)===43?(Q=Gs,b++):(Q=t,I===0&&be(Yl))),Q===t&&(Q=null),Q!==t){if(N=[],qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne));else N=t;N!==t?(Oe=m,Q=Fp(Q,N),m=Q):(b=m,m=t)}else b=m,m=t;if(m===t&&(m=b,Q=aS(),Q!==t&&(Oe=m,Q=UE(Q)),m=Q,m===t&&(m=b,Q=ql(),Q!==t&&(Oe=m,Q=jl(Q)),m=Q,m===t)))if(m=b,r.charCodeAt(b)===40?(Q=ge,b++):(Q=t,I===0&&be(re)),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=Z1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.charCodeAt(b)===41?(Se=M,b++):(Se=t,I===0&&be(F)),Se!==t?(Oe=m,Q=HE(U),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t}return m}function oS(){var m,Q,N,U,ce,Se,ht,Bt;if(m=b,Q=sS(),Q!==t){for(N=[],U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===42?(Se=Ig,b++):(Se=t,I===0&&be(bA)),Se===t&&(r.charCodeAt(b)===47?(Se=Rr,b++):(Se=t,I===0&&be(GE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=sS(),Bt!==t?(Oe=U,ce=Ys(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t;for(;U!==t;){for(N.push(U),U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===42?(Se=Ig,b++):(Se=t,I===0&&be(bA)),Se===t&&(r.charCodeAt(b)===47?(Se=Rr,b++):(Se=t,I===0&&be(GE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=sS(),Bt!==t?(Oe=U,ce=Ys(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t}N!==t?(Oe=m,Q=js(Q,N),m=Q):(b=m,m=t)}else b=m,m=t;return m}function Z1(){var m,Q,N,U,ce,Se,ht,Bt;if(m=b,Q=oS(),Q!==t){for(N=[],U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===43?(Se=Gs,b++):(Se=t,I===0&&be(Yl)),Se===t&&(r.charCodeAt(b)===45?(Se=BA,b++):(Se=t,I===0&&be(Gl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=oS(),Bt!==t?(Oe=U,ce=yg(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t;for(;U!==t;){for(N.push(U),U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===43?(Se=Gs,b++):(Se=t,I===0&&be(Yl)),Se===t&&(r.charCodeAt(b)===45?(Se=BA,b++):(Se=t,I===0&&be(Gl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=oS(),Bt!==t?(Oe=U,ce=yg(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t}N!==t?(Oe=m,Q=js(Q,N),m=Q):(b=m,m=t)}else b=m,m=t;return m}function _1(){var m,Q,N,U,ce,Se;if(m=b,r.substr(b,3)===QA?(Q=QA,b+=3):(Q=t,I===0&&be(R)),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=Z1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.substr(b,2)===q?(Se=q,b+=2):(Se=t,I===0&&be(Ce)),Se!==t?(Oe=m,Q=Ke(U),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;return m}function $1(){var m,Q,N,U;return m=b,r.substr(b,2)===Re?(Q=Re,b+=2):(Q=t,I===0&&be(ze)),Q!==t?(N=Or(),N!==t?(r.charCodeAt(b)===41?(U=M,b++):(U=t,I===0&&be(F)),U!==t?(Oe=m,Q=dt(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function aS(){var m,Q,N,U,ce,Se;return m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,2)===JQ?(U=JQ,b+=2):(U=t,I===0&&be(P1)),U!==t?(ce=Y1(),ce!==t?(r.charCodeAt(b)===125?(Se=Fe,b++):(Se=t,I===0&&be(Ne)),Se!==t?(Oe=m,Q=D1(N,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,3)===WQ?(U=WQ,b+=3):(U=t,I===0&&be(k1)),U!==t?(Oe=m,Q=R1(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,2)===zQ?(U=zQ,b+=2):(U=t,I===0&&be(F1)),U!==t?(ce=Y1(),ce!==t?(r.charCodeAt(b)===125?(Se=Fe,b++):(Se=t,I===0&&be(Ne)),Se!==t?(Oe=m,Q=N1(N,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,3)===VQ?(U=VQ,b+=3):(U=t,I===0&&be(T1)),U!==t?(Oe=m,Q=L1(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.charCodeAt(b)===125?(U=Fe,b++):(U=t,I===0&&be(Ne)),U!==t?(Oe=m,Q=XQ(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.charCodeAt(b)===36?(Q=M1,b++):(Q=t,I===0&&be(O1)),Q!==t?(N=ql(),N!==t?(Oe=m,Q=XQ(N),m=Q):(b=m,m=t)):(b=m,m=t)))))),m}function Sge(){var m,Q,N;return m=b,Q=vge(),Q!==t?(Oe=b,N=K1(Q),N?N=void 0:N=t,N!==t?(Oe=m,Q=U1(Q),m=Q):(b=m,m=t)):(b=m,m=t),m}function vge(){var m,Q,N,U,ce;if(m=b,Q=[],N=b,U=b,I++,ce=rK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(Bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t),N!==t)for(;N!==t;)Q.push(N),N=b,U=b,I++,ce=rK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(Bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t);else Q=t;return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function eK(){var m,Q,N;if(m=b,Q=[],ZQ.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(_Q)),N!==t)for(;N!==t;)Q.push(N),ZQ.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(_Q));else Q=t;return Q!==t&&(Oe=m,Q=$Q()),m=Q,m}function ql(){var m,Q,N;if(m=b,Q=[],eS.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(tS)),N!==t)for(;N!==t;)Q.push(N),eS.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(tS));else Q=t;return Q!==t&&(Oe=m,Q=$Q()),m=Q,m}function tK(){var m;return H1.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(wg)),m}function rK(){var m;return rS.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(iS)),m}function He(){var m,Q;if(m=[],YE.test(r.charAt(b))?(Q=r.charAt(b),b++):(Q=t,I===0&&be(jE)),Q!==t)for(;Q!==t;)m.push(Q),YE.test(r.charAt(b))?(Q=r.charAt(b),b++):(Q=t,I===0&&be(jE));else m=t;return m}if(k=n(),k!==t&&b===r.length)return k;throw k!==t&&b{"use strict";function xfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}xfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gH&&(H=v,j=[]),j.push(ne))}function Ne(ne,Y){return new $l(ne,null,null,Y)}function oe(ne,Y,he){return new $l($l.buildMessage(ne,Y),ne,Y,he)}function le(){var ne,Y,he,ie;return ne=v,Y=Be(),Y!==t?(r.charCodeAt(v)===47?(he=s,v++):(he=t,$===0&&Fe(o)),he!==t?(ie=Be(),ie!==t?(D=ne,Y=a(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=Be(),Y!==t&&(D=ne,Y=l(Y)),ne=Y),ne}function Be(){var ne,Y,he,ie;return ne=v,Y=fe(),Y!==t?(r.charCodeAt(v)===64?(he=c,v++):(he=t,$===0&&Fe(u)),he!==t?(ie=qe(),ie!==t?(D=ne,Y=g(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=fe(),Y!==t&&(D=ne,Y=f(Y)),ne=Y),ne}function fe(){var ne,Y,he,ie,de;return ne=v,r.charCodeAt(v)===64?(Y=c,v++):(Y=t,$===0&&Fe(u)),Y!==t?(he=ae(),he!==t?(r.charCodeAt(v)===47?(ie=s,v++):(ie=t,$===0&&Fe(o)),ie!==t?(de=ae(),de!==t?(D=ne,Y=h(),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=ae(),Y!==t&&(D=ne,Y=h()),ne=Y),ne}function ae(){var ne,Y,he;if(ne=v,Y=[],p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(C)),he!==t)for(;he!==t;)Y.push(he),p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(C));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}function qe(){var ne,Y,he;if(ne=v,Y=[],y.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(B)),he!==t)for(;he!==t;)Y.push(he),y.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(B));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}if(V=n(),V!==t&&v===r.length)return V;throw V!==t&&v{"use strict";function dU(r){return typeof r>"u"||r===null}function Dfe(r){return typeof r=="object"&&r!==null}function kfe(r){return Array.isArray(r)?r:dU(r)?[]:[r]}function Rfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Vp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Vp.prototype=Object.create(Error.prototype);Vp.prototype.constructor=Vp;Vp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};CU.exports=Vp});var IU=w((bZe,EU)=>{"use strict";var mU=tc();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +`,!1),ns=function(){return""},ss="\\",gt=me("\\",!1),Bo=/^[\\$"`]/,At=Je(["\\","$",'"',"`"],!1,!1),ln=function(m){return m},S="\\a",Lt=me("\\a",!1),hg=function(){return"a"},Ml="\\b",Qp=me("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Je(["E","e"],!1,!1),Pp=function(){return"\x1B"},G="\\f",yt=me("\\f",!1),IA=function(){return"\f"},zi="\\n",Ol=me("\\n",!1),Xe=function(){return` +`},pa="\\r",pg=me("\\r",!1),ME=function(){return"\r"},Dp="\\t",OE=me("\\t",!1),ar=function(){return" "},Tn="\\v",Kl=me("\\v",!1),kp=function(){return"\v"},Us=/^[\\'"?]/,da=Je(["\\","'",'"',"?"],!1,!1),cn=function(m){return String.fromCharCode(parseInt(m,16))},Le="\\x",dg=me("\\x",!1),Ul="\\u",Hs=me("\\u",!1),Hl="\\U",yA=me("\\U",!1),Cg=function(m){return String.fromCodePoint(parseInt(m,16))},mg=/^[0-7]/,Ca=Je([["0","7"]],!1,!1),ma=/^[0-9a-fA-f]/,rt=Je([["0","9"],["a","f"],["A","f"]],!1,!1),bo=nt(),wA="-",Gl=me("-",!1),Gs="+",Yl=me("+",!1),KE=".",Rp=me(".",!1),Eg=function(m,Q,N){return{type:"number",value:(m==="-"?-1:1)*parseFloat(Q.join("")+"."+N.join(""))}},Fp=function(m,Q){return{type:"number",value:(m==="-"?-1:1)*parseInt(Q.join(""))}},UE=function(m){return{type:"variable",...m}},jl=function(m){return{type:"variable",name:m}},HE=function(m){return m},Ig="*",BA=me("*",!1),Rr="/",GE=me("/",!1),Ys=function(m,Q,N){return{type:Q==="*"?"multiplication":"division",right:N}},js=function(m,Q){return Q.reduce((N,U)=>({left:N,...U}),m)},yg=function(m,Q,N){return{type:Q==="+"?"addition":"subtraction",right:N}},bA="$((",R=me("$((",!1),q="))",Ce=me("))",!1),Ke=function(m){return m},Re="$(",ze=me("$(",!1),dt=function(m){return m},Ft="${",Ln=me("${",!1),JQ=":-",k1=me(":-",!1),R1=function(m,Q){return{name:m,defaultValue:Q}},WQ=":-}",F1=me(":-}",!1),N1=function(m){return{name:m,defaultValue:[]}},zQ=":+",T1=me(":+",!1),L1=function(m,Q){return{name:m,alternativeValue:Q}},VQ=":+}",M1=me(":+}",!1),O1=function(m){return{name:m,alternativeValue:[]}},XQ=function(m){return{name:m}},K1="$",U1=me("$",!1),H1=function(m){return e.isGlobPattern(m)},G1=function(m){return m},ZQ=/^[a-zA-Z0-9_]/,_Q=Je([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$Q=function(){return L()},eS=/^[$@*?#a-zA-Z0-9_\-]/,tS=Je(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),Y1=/^[(){}<>$|&; \t"']/,wg=Je(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,iS=Je(["<",">","&",";"," "," ",'"',"'"],!1,!1),YE=/^[ \t]/,jE=Je([" "," "],!1,!1),b=0,Oe=0,QA=[{line:1,column:1}],d=0,E=[],I=0,k;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function L(){return r.substring(Oe,b)}function Z(){return Et(Oe,b)}function te(m,Q){throw Q=Q!==void 0?Q:Et(Oe,b),Ri([lt(m)],r.substring(Oe,b),Q)}function we(m,Q){throw Q=Q!==void 0?Q:Et(Oe,b),Mn(m,Q)}function me(m,Q){return{type:"literal",text:m,ignoreCase:Q}}function Je(m,Q,N){return{type:"class",parts:m,inverted:Q,ignoreCase:N}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function lt(m){return{type:"other",description:m}}function it(m){var Q=QA[m],N;if(Q)return Q;for(N=m-1;!QA[N];)N--;for(Q=QA[N],Q={line:Q.line,column:Q.column};Nd&&(d=b,E=[]),E.push(m))}function Mn(m,Q){return new Zl(m,null,null,Q)}function Ri(m,Q,N){return new Zl(Zl.buildMessage(m,Q),m,Q,N)}function SA(){var m,Q;return m=b,Q=Or(),Q===t&&(Q=null),Q!==t&&(Oe=m,Q=s(Q)),m=Q,m}function Or(){var m,Q,N,U,ce;if(m=b,Q=Kr(),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=Ea(),U!==t?(ce=os(),ce===t&&(ce=null),ce!==t?(Oe=m,Q=o(Q,U,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;if(m===t)if(m=b,Q=Kr(),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=Ea(),U===t&&(U=null),U!==t?(Oe=m,Q=a(Q,U),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function os(){var m,Q,N,U,ce;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=Or(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Oe=m,Q=l(N),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function Ea(){var m;return r.charCodeAt(b)===59?(m=c,b++):(m=t,I===0&&be(u)),m===t&&(r.charCodeAt(b)===38?(m=g,b++):(m=t,I===0&&be(f))),m}function Kr(){var m,Q,N;return m=b,Q=j1(),Q!==t?(N=fge(),N===t&&(N=null),N!==t?(Oe=m,Q=h(Q,N),m=Q):(b=m,m=t)):(b=m,m=t),m}function fge(){var m,Q,N,U,ce,Se,ht;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=hge(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Kr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Oe=m,Q=p(N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;return m}function hge(){var m;return r.substr(b,2)===C?(m=C,b+=2):(m=t,I===0&&be(y)),m===t&&(r.substr(b,2)===B?(m=B,b+=2):(m=t,I===0&&be(v))),m}function j1(){var m,Q,N;return m=b,Q=Cge(),Q!==t?(N=pge(),N===t&&(N=null),N!==t?(Oe=m,Q=D(Q,N),m=Q):(b=m,m=t)):(b=m,m=t),m}function pge(){var m,Q,N,U,ce,Se,ht;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=dge(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=j1(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Oe=m,Q=T(N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;return m}function dge(){var m;return r.substr(b,2)===H?(m=H,b+=2):(m=t,I===0&&be(j)),m===t&&(r.charCodeAt(b)===124?(m=$,b++):(m=t,I===0&&be(V))),m}function qE(){var m,Q,N,U,ce,Se;if(m=b,Q=rK(),Q!==t)if(r.charCodeAt(b)===61?(N=W,b++):(N=t,I===0&&be(_)),N!==t)if(U=W1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(Oe=m,Q=A(Q,U),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;else b=m,m=t;if(m===t)if(m=b,Q=rK(),Q!==t)if(r.charCodeAt(b)===61?(N=W,b++):(N=t,I===0&&be(_)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Oe=m,Q=Ae(Q),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function Cge(){var m,Q,N,U,ce,Se,ht,Bt,qr,hi,as;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(r.charCodeAt(b)===40?(N=ge,b++):(N=t,I===0&&be(re)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Or(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(b)===41?(ht=M,b++):(ht=t,I===0&&be(F)),ht!==t){for(Bt=[],qr=He();qr!==t;)Bt.push(qr),qr=He();if(Bt!==t){for(qr=[],hi=Np();hi!==t;)qr.push(hi),hi=Np();if(qr!==t){for(hi=[],as=He();as!==t;)hi.push(as),as=He();hi!==t?(Oe=m,Q=ue(ce,qr),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;if(m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(r.charCodeAt(b)===123?(N=pe,b++):(N=t,I===0&&be(ke)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Or(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(b)===125?(ht=Fe,b++):(ht=t,I===0&&be(Ne)),ht!==t){for(Bt=[],qr=He();qr!==t;)Bt.push(qr),qr=He();if(Bt!==t){for(qr=[],hi=Np();hi!==t;)qr.push(hi),hi=Np();if(qr!==t){for(hi=[],as=He();as!==t;)hi.push(as),as=He();hi!==t?(Oe=m,Q=oe(ce,qr),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;if(m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t){for(N=[],U=qE();U!==t;)N.push(U),U=qE();if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t){if(ce=[],Se=J1(),Se!==t)for(;Se!==t;)ce.push(Se),Se=J1();else ce=t;if(ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Oe=m,Q=le(N,ce),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t}else b=m,m=t;if(m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t){if(N=[],U=qE(),U!==t)for(;U!==t;)N.push(U),U=qE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Oe=m,Q=Be(N),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}}}return m}function q1(){var m,Q,N,U,ce;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t){if(N=[],U=JE(),U!==t)for(;U!==t;)N.push(U),U=JE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Oe=m,Q=fe(N),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t;return m}function J1(){var m,Q,N;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t?(N=Np(),N!==t?(Oe=m,Q=ae(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();Q!==t?(N=JE(),N!==t?(Oe=m,Q=ae(N),m=Q):(b=m,m=t)):(b=m,m=t)}return m}function Np(){var m,Q,N,U,ce;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();return Q!==t?(qe.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(ne)),N===t&&(N=null),N!==t?(U=mge(),U!==t?(ce=JE(),ce!==t?(Oe=m,Q=Y(N,U,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function mge(){var m;return r.substr(b,2)===he?(m=he,b+=2):(m=t,I===0&&be(ie)),m===t&&(r.substr(b,2)===de?(m=de,b+=2):(m=t,I===0&&be(_e)),m===t&&(r.charCodeAt(b)===62?(m=Pt,b++):(m=t,I===0&&be(It)),m===t&&(r.substr(b,3)===Mr?(m=Mr,b+=3):(m=t,I===0&&be(ii)),m===t&&(r.substr(b,2)===gi?(m=gi,b+=2):(m=t,I===0&&be(hr)),m===t&&(r.charCodeAt(b)===60?(m=fi,b++):(m=t,I===0&&be(ni))))))),m}function JE(){var m,Q,N;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();return Q!==t?(N=W1(),N!==t?(Oe=m,Q=ae(N),m=Q):(b=m,m=t)):(b=m,m=t),m}function W1(){var m,Q,N;if(m=b,Q=[],N=z1(),N!==t)for(;N!==t;)Q.push(N),N=z1();else Q=t;return Q!==t&&(Oe=m,Q=Ks(Q)),m=Q,m}function z1(){var m,Q;return m=b,Q=Ege(),Q!==t&&(Oe=m,Q=pr(Q)),m=Q,m===t&&(m=b,Q=Ige(),Q!==t&&(Oe=m,Q=pr(Q)),m=Q,m===t&&(m=b,Q=yge(),Q!==t&&(Oe=m,Q=pr(Q)),m=Q,m===t&&(m=b,Q=wge(),Q!==t&&(Oe=m,Q=pr(Q)),m=Q))),m}function Ege(){var m,Q,N,U;return m=b,r.substr(b,2)===Ii?(Q=Ii,b+=2):(Q=t,I===0&&be(rs)),Q!==t?(N=Qge(),N!==t?(r.charCodeAt(b)===39?(U=fa,b++):(U=t,I===0&&be(dA)),U!==t?(Oe=m,Q=cg(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function Ige(){var m,Q,N,U;return m=b,r.charCodeAt(b)===39?(Q=fa,b++):(Q=t,I===0&&be(dA)),Q!==t?(N=Bge(),N!==t?(r.charCodeAt(b)===39?(U=fa,b++):(U=t,I===0&&be(dA)),U!==t?(Oe=m,Q=cg(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function yge(){var m,Q,N,U;if(m=b,r.substr(b,2)===is?(Q=is,b+=2):(Q=t,I===0&&be(CA)),Q!==t&&(Oe=m,Q=ha()),m=Q,m===t)if(m=b,r.charCodeAt(b)===34?(Q=wp,b++):(Q=t,I===0&&be(mA)),Q!==t){for(N=[],U=V1();U!==t;)N.push(U),U=V1();N!==t?(r.charCodeAt(b)===34?(U=wp,b++):(U=t,I===0&&be(mA)),U!==t?(Oe=m,Q=EA(N),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function wge(){var m,Q,N;if(m=b,Q=[],N=X1(),N!==t)for(;N!==t;)Q.push(N),N=X1();else Q=t;return Q!==t&&(Oe=m,Q=EA(Q)),m=Q,m}function V1(){var m,Q;return m=b,Q=eK(),Q!==t&&(Oe=m,Q=wr(Q)),m=Q,m===t&&(m=b,Q=tK(),Q!==t&&(Oe=m,Q=Tl(Q)),m=Q,m===t&&(m=b,Q=aS(),Q!==t&&(Oe=m,Q=ug(Q)),m=Q,m===t&&(m=b,Q=bge(),Q!==t&&(Oe=m,Q=yo(Q)),m=Q))),m}function X1(){var m,Q;return m=b,Q=eK(),Q!==t&&(Oe=m,Q=gg(Q)),m=Q,m===t&&(m=b,Q=tK(),Q!==t&&(Oe=m,Q=Bp(Q)),m=Q,m===t&&(m=b,Q=aS(),Q!==t&&(Oe=m,Q=bp(Q)),m=Q,m===t&&(m=b,Q=xge(),Q!==t&&(Oe=m,Q=vr(Q)),m=Q,m===t&&(m=b,Q=vge(),Q!==t&&(Oe=m,Q=yo(Q)),m=Q)))),m}function Bge(){var m,Q,N;for(m=b,Q=[],se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(wo));N!==t;)Q.push(N),se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(wo));return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function bge(){var m,Q,N;if(m=b,Q=[],N=Z1(),N===t&&(fg.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(bt))),N!==t)for(;N!==t;)Q.push(N),N=Z1(),N===t&&(fg.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(bt)));else Q=t;return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function Z1(){var m,Q,N;return m=b,r.substr(b,2)===Ll?(Q=Ll,b+=2):(Q=t,I===0&&be(Nn)),Q!==t&&(Oe=m,Q=ns()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(Bo.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(At)),N!==t?(Oe=m,Q=ln(N),m=Q):(b=m,m=t)):(b=m,m=t)),m}function Qge(){var m,Q,N;for(m=b,Q=[],N=_1(),N===t&&(se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(wo)));N!==t;)Q.push(N),N=_1(),N===t&&(se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(wo)));return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function _1(){var m,Q,N;return m=b,r.substr(b,2)===S?(Q=S,b+=2):(Q=t,I===0&&be(Lt)),Q!==t&&(Oe=m,Q=hg()),m=Q,m===t&&(m=b,r.substr(b,2)===Ml?(Q=Ml,b+=2):(Q=t,I===0&&be(Qp)),Q!==t&&(Oe=m,Q=Sp()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(vp.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(xp)),N!==t?(Oe=m,Q=Pp(),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===G?(Q=G,b+=2):(Q=t,I===0&&be(yt)),Q!==t&&(Oe=m,Q=IA()),m=Q,m===t&&(m=b,r.substr(b,2)===zi?(Q=zi,b+=2):(Q=t,I===0&&be(Ol)),Q!==t&&(Oe=m,Q=Xe()),m=Q,m===t&&(m=b,r.substr(b,2)===pa?(Q=pa,b+=2):(Q=t,I===0&&be(pg)),Q!==t&&(Oe=m,Q=ME()),m=Q,m===t&&(m=b,r.substr(b,2)===Dp?(Q=Dp,b+=2):(Q=t,I===0&&be(OE)),Q!==t&&(Oe=m,Q=ar()),m=Q,m===t&&(m=b,r.substr(b,2)===Tn?(Q=Tn,b+=2):(Q=t,I===0&&be(Kl)),Q!==t&&(Oe=m,Q=kp()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(Us.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(da)),N!==t?(Oe=m,Q=ln(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=Sge()))))))))),m}function Sge(){var m,Q,N,U,ce,Se,ht,Bt,qr,hi,as,AS;return m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(N=nS(),N!==t?(Oe=m,Q=cn(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Le?(Q=Le,b+=2):(Q=t,I===0&&be(dg)),Q!==t?(N=b,U=b,ce=nS(),ce!==t?(Se=On(),Se!==t?(ce=[ce,Se],U=ce):(b=U,U=t)):(b=U,U=t),U===t&&(U=nS()),U!==t?N=r.substring(N,b):N=U,N!==t?(Oe=m,Q=cn(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ul?(Q=Ul,b+=2):(Q=t,I===0&&be(Hs)),Q!==t?(N=b,U=b,ce=On(),ce!==t?(Se=On(),Se!==t?(ht=On(),ht!==t?(Bt=On(),Bt!==t?(ce=[ce,Se,ht,Bt],U=ce):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t),U!==t?N=r.substring(N,b):N=U,N!==t?(Oe=m,Q=cn(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Hl?(Q=Hl,b+=2):(Q=t,I===0&&be(yA)),Q!==t?(N=b,U=b,ce=On(),ce!==t?(Se=On(),Se!==t?(ht=On(),ht!==t?(Bt=On(),Bt!==t?(qr=On(),qr!==t?(hi=On(),hi!==t?(as=On(),as!==t?(AS=On(),AS!==t?(ce=[ce,Se,ht,Bt,qr,hi,as,AS],U=ce):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t),U!==t?N=r.substring(N,b):N=U,N!==t?(Oe=m,Q=Cg(N),m=Q):(b=m,m=t)):(b=m,m=t)))),m}function nS(){var m;return mg.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(Ca)),m}function On(){var m;return ma.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(rt)),m}function vge(){var m,Q,N,U,ce;if(m=b,Q=[],N=b,r.charCodeAt(b)===92?(U=ss,b++):(U=t,I===0&&be(gt)),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t),N===t&&(N=b,U=b,I++,ce=iK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t)),N!==t)for(;N!==t;)Q.push(N),N=b,r.charCodeAt(b)===92?(U=ss,b++):(U=t,I===0&&be(gt)),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t),N===t&&(N=b,U=b,I++,ce=iK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t));else Q=t;return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function sS(){var m,Q,N,U,ce,Se;if(m=b,r.charCodeAt(b)===45?(Q=wA,b++):(Q=t,I===0&&be(Gl)),Q===t&&(r.charCodeAt(b)===43?(Q=Gs,b++):(Q=t,I===0&&be(Yl))),Q===t&&(Q=null),Q!==t){if(N=[],qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne));else N=t;if(N!==t)if(r.charCodeAt(b)===46?(U=KE,b++):(U=t,I===0&&be(Rp)),U!==t){if(ce=[],qe.test(r.charAt(b))?(Se=r.charAt(b),b++):(Se=t,I===0&&be(ne)),Se!==t)for(;Se!==t;)ce.push(Se),qe.test(r.charAt(b))?(Se=r.charAt(b),b++):(Se=t,I===0&&be(ne));else ce=t;ce!==t?(Oe=m,Q=Eg(Q,N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;if(m===t){if(m=b,r.charCodeAt(b)===45?(Q=wA,b++):(Q=t,I===0&&be(Gl)),Q===t&&(r.charCodeAt(b)===43?(Q=Gs,b++):(Q=t,I===0&&be(Yl))),Q===t&&(Q=null),Q!==t){if(N=[],qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne));else N=t;N!==t?(Oe=m,Q=Fp(Q,N),m=Q):(b=m,m=t)}else b=m,m=t;if(m===t&&(m=b,Q=aS(),Q!==t&&(Oe=m,Q=UE(Q)),m=Q,m===t&&(m=b,Q=ql(),Q!==t&&(Oe=m,Q=jl(Q)),m=Q,m===t)))if(m=b,r.charCodeAt(b)===40?(Q=ge,b++):(Q=t,I===0&&be(re)),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=$1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.charCodeAt(b)===41?(Se=M,b++):(Se=t,I===0&&be(F)),Se!==t?(Oe=m,Q=HE(U),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t}return m}function oS(){var m,Q,N,U,ce,Se,ht,Bt;if(m=b,Q=sS(),Q!==t){for(N=[],U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===42?(Se=Ig,b++):(Se=t,I===0&&be(BA)),Se===t&&(r.charCodeAt(b)===47?(Se=Rr,b++):(Se=t,I===0&&be(GE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=sS(),Bt!==t?(Oe=U,ce=Ys(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t;for(;U!==t;){for(N.push(U),U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===42?(Se=Ig,b++):(Se=t,I===0&&be(BA)),Se===t&&(r.charCodeAt(b)===47?(Se=Rr,b++):(Se=t,I===0&&be(GE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=sS(),Bt!==t?(Oe=U,ce=Ys(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t}N!==t?(Oe=m,Q=js(Q,N),m=Q):(b=m,m=t)}else b=m,m=t;return m}function $1(){var m,Q,N,U,ce,Se,ht,Bt;if(m=b,Q=oS(),Q!==t){for(N=[],U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===43?(Se=Gs,b++):(Se=t,I===0&&be(Yl)),Se===t&&(r.charCodeAt(b)===45?(Se=wA,b++):(Se=t,I===0&&be(Gl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=oS(),Bt!==t?(Oe=U,ce=yg(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t;for(;U!==t;){for(N.push(U),U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===43?(Se=Gs,b++):(Se=t,I===0&&be(Yl)),Se===t&&(r.charCodeAt(b)===45?(Se=wA,b++):(Se=t,I===0&&be(Gl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=oS(),Bt!==t?(Oe=U,ce=yg(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t}N!==t?(Oe=m,Q=js(Q,N),m=Q):(b=m,m=t)}else b=m,m=t;return m}function eK(){var m,Q,N,U,ce,Se;if(m=b,r.substr(b,3)===bA?(Q=bA,b+=3):(Q=t,I===0&&be(R)),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=$1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.substr(b,2)===q?(Se=q,b+=2):(Se=t,I===0&&be(Ce)),Se!==t?(Oe=m,Q=Ke(U),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;return m}function tK(){var m,Q,N,U;return m=b,r.substr(b,2)===Re?(Q=Re,b+=2):(Q=t,I===0&&be(ze)),Q!==t?(N=Or(),N!==t?(r.charCodeAt(b)===41?(U=M,b++):(U=t,I===0&&be(F)),U!==t?(Oe=m,Q=dt(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function aS(){var m,Q,N,U,ce,Se;return m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,2)===JQ?(U=JQ,b+=2):(U=t,I===0&&be(k1)),U!==t?(ce=q1(),ce!==t?(r.charCodeAt(b)===125?(Se=Fe,b++):(Se=t,I===0&&be(Ne)),Se!==t?(Oe=m,Q=R1(N,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,3)===WQ?(U=WQ,b+=3):(U=t,I===0&&be(F1)),U!==t?(Oe=m,Q=N1(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,2)===zQ?(U=zQ,b+=2):(U=t,I===0&&be(T1)),U!==t?(ce=q1(),ce!==t?(r.charCodeAt(b)===125?(Se=Fe,b++):(Se=t,I===0&&be(Ne)),Se!==t?(Oe=m,Q=L1(N,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,3)===VQ?(U=VQ,b+=3):(U=t,I===0&&be(M1)),U!==t?(Oe=m,Q=O1(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.charCodeAt(b)===125?(U=Fe,b++):(U=t,I===0&&be(Ne)),U!==t?(Oe=m,Q=XQ(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.charCodeAt(b)===36?(Q=K1,b++):(Q=t,I===0&&be(U1)),Q!==t?(N=ql(),N!==t?(Oe=m,Q=XQ(N),m=Q):(b=m,m=t)):(b=m,m=t)))))),m}function xge(){var m,Q,N;return m=b,Q=Pge(),Q!==t?(Oe=b,N=H1(Q),N?N=void 0:N=t,N!==t?(Oe=m,Q=G1(Q),m=Q):(b=m,m=t)):(b=m,m=t),m}function Pge(){var m,Q,N,U,ce;if(m=b,Q=[],N=b,U=b,I++,ce=nK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t),N!==t)for(;N!==t;)Q.push(N),N=b,U=b,I++,ce=nK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t);else Q=t;return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function rK(){var m,Q,N;if(m=b,Q=[],ZQ.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(_Q)),N!==t)for(;N!==t;)Q.push(N),ZQ.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(_Q));else Q=t;return Q!==t&&(Oe=m,Q=$Q()),m=Q,m}function ql(){var m,Q,N;if(m=b,Q=[],eS.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(tS)),N!==t)for(;N!==t;)Q.push(N),eS.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(tS));else Q=t;return Q!==t&&(Oe=m,Q=$Q()),m=Q,m}function iK(){var m;return Y1.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(wg)),m}function nK(){var m;return rS.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(iS)),m}function He(){var m,Q;if(m=[],YE.test(r.charAt(b))?(Q=r.charAt(b),b++):(Q=t,I===0&&be(jE)),Q!==t)for(;Q!==t;)m.push(Q),YE.test(r.charAt(b))?(Q=r.charAt(b),b++):(Q=t,I===0&&be(jE));else m=t;return m}if(k=n(),k!==t&&b===r.length)return k;throw k!==t&&b{"use strict";function Dfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Dfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gH&&(H=v,j=[]),j.push(ne))}function Ne(ne,Y){return new $l(ne,null,null,Y)}function oe(ne,Y,he){return new $l($l.buildMessage(ne,Y),ne,Y,he)}function le(){var ne,Y,he,ie;return ne=v,Y=Be(),Y!==t?(r.charCodeAt(v)===47?(he=s,v++):(he=t,$===0&&Fe(o)),he!==t?(ie=Be(),ie!==t?(D=ne,Y=a(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=Be(),Y!==t&&(D=ne,Y=l(Y)),ne=Y),ne}function Be(){var ne,Y,he,ie;return ne=v,Y=fe(),Y!==t?(r.charCodeAt(v)===64?(he=c,v++):(he=t,$===0&&Fe(u)),he!==t?(ie=qe(),ie!==t?(D=ne,Y=g(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=fe(),Y!==t&&(D=ne,Y=f(Y)),ne=Y),ne}function fe(){var ne,Y,he,ie,de;return ne=v,r.charCodeAt(v)===64?(Y=c,v++):(Y=t,$===0&&Fe(u)),Y!==t?(he=ae(),he!==t?(r.charCodeAt(v)===47?(ie=s,v++):(ie=t,$===0&&Fe(o)),ie!==t?(de=ae(),de!==t?(D=ne,Y=h(),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=ae(),Y!==t&&(D=ne,Y=h()),ne=Y),ne}function ae(){var ne,Y,he;if(ne=v,Y=[],p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(C)),he!==t)for(;he!==t;)Y.push(he),p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(C));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}function qe(){var ne,Y,he;if(ne=v,Y=[],y.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(B)),he!==t)for(;he!==t;)Y.push(he),y.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(B));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}if(V=n(),V!==t&&v===r.length)return V;throw V!==t&&v{"use strict";function mU(r){return typeof r>"u"||r===null}function Rfe(r){return typeof r=="object"&&r!==null}function Ffe(r){return Array.isArray(r)?r:mU(r)?[]:[r]}function Nfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Vp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Vp.prototype=Object.create(Error.prototype);Vp.prototype.constructor=Vp;Vp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};EU.exports=Vp});var wU=w((SZe,yU)=>{"use strict";var IU=tc();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),mU.repeat(" ",e)+i+a+s+` -`+mU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: -`+t)),i};EU.exports=HS});var si=w((QZe,wU)=>{"use strict";var yU=Ng(),Tfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Lfe=["scalar","sequence","mapping"];function Mfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function Ofe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(Tfe.indexOf(t)===-1)throw new yU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Mfe(e.styleAliases||null),Lfe.indexOf(this.kind)===-1)throw new yU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}wU.exports=Ofe});var rc=w((SZe,bU)=>{"use strict";var BU=tc(),dI=Ng(),Kfe=si();function GS(r,e,t){var i=[];return r.include.forEach(function(n){t=GS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Ufe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var Hfe=si();QU.exports=new Hfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var xU=w((xZe,vU)=>{"use strict";var Gfe=si();vU.exports=new Gfe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var DU=w((PZe,PU)=>{"use strict";var Yfe=si();PU.exports=new Yfe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var CI=w((DZe,kU)=>{"use strict";var jfe=rc();kU.exports=new jfe({explicit:[SU(),xU(),DU()]})});var FU=w((kZe,RU)=>{"use strict";var qfe=si();function Jfe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function Wfe(){return null}function zfe(r){return r===null}RU.exports=new qfe("tag:yaml.org,2002:null",{kind:"scalar",resolve:Jfe,construct:Wfe,predicate:zfe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var TU=w((RZe,NU)=>{"use strict";var Vfe=si();function Xfe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function Zfe(r){return r==="true"||r==="True"||r==="TRUE"}function _fe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}NU.exports=new Vfe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Xfe,construct:Zfe,predicate:_fe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var MU=w((FZe,LU)=>{"use strict";var $fe=tc(),ehe=si();function the(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function rhe(r){return 48<=r&&r<=55}function ihe(r){return 48<=r&&r<=57}function nhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var UU=w((NZe,KU)=>{"use strict";var OU=tc(),ahe=si(),Ahe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function lhe(r){return!(r===null||!Ahe.test(r)||r[r.length-1]==="_")}function che(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var uhe=/^[-+]?[0-9]+e/;function ghe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(OU.isNegativeZero(r))return"-0.0";return t=r.toString(10),uhe.test(t)?t.replace("e",".e"):t}function fhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||OU.isNegativeZero(r))}KU.exports=new ahe("tag:yaml.org,2002:float",{kind:"scalar",resolve:lhe,construct:che,predicate:fhe,represent:ghe,defaultStyle:"lowercase"})});var YS=w((TZe,HU)=>{"use strict";var hhe=rc();HU.exports=new hhe({include:[CI()],implicit:[FU(),TU(),MU(),UU()]})});var jS=w((LZe,GU)=>{"use strict";var phe=rc();GU.exports=new phe({include:[YS()]})});var JU=w((MZe,qU)=>{"use strict";var dhe=si(),YU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),jU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Che(r){return r===null?!1:YU.exec(r)!==null||jU.exec(r)!==null}function mhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=YU.exec(r),e===null&&(e=jU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function Ehe(r){return r.toISOString()}qU.exports=new dhe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Che,construct:mhe,instanceOf:Date,represent:Ehe})});var zU=w((OZe,WU)=>{"use strict";var Ihe=si();function yhe(r){return r==="<<"||r===null}WU.exports=new Ihe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:yhe})});var ZU=w((KZe,XU)=>{"use strict";var ic;try{VU=J,ic=VU("buffer").Buffer}catch{}var VU,whe=si(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function Bhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function bhe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),ic?ic.from?ic.from(a):new ic(a):a}function Qhe(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function She(r){return ic&&ic.isBuffer(r)}XU.exports=new whe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Bhe,construct:bhe,predicate:She,represent:Qhe})});var $U=w((HZe,_U)=>{"use strict";var vhe=si(),xhe=Object.prototype.hasOwnProperty,Phe=Object.prototype.toString;function Dhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var Rhe=si(),Fhe=Object.prototype.toString;function Nhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Lhe=si(),Mhe=Object.prototype.hasOwnProperty;function Ohe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Mhe.call(t,e)&&t[e]!==null)return!1;return!0}function Khe(r){return r!==null?r:{}}r2.exports=new Lhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:Ohe,construct:Khe})});var Lg=w((jZe,n2)=>{"use strict";var Uhe=rc();n2.exports=new Uhe({include:[jS()],implicit:[JU(),zU()],explicit:[ZU(),$U(),t2(),i2()]})});var o2=w((qZe,s2)=>{"use strict";var Hhe=si();function Ghe(){return!0}function Yhe(){}function jhe(){return""}function qhe(r){return typeof r>"u"}s2.exports=new Hhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Ghe,construct:Yhe,predicate:qhe,represent:jhe})});var A2=w((JZe,a2)=>{"use strict";var Jhe=si();function Whe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function zhe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function Vhe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function Xhe(r){return Object.prototype.toString.call(r)==="[object RegExp]"}a2.exports=new Jhe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:Whe,construct:zhe,predicate:Xhe,represent:Vhe})});var u2=w((WZe,c2)=>{"use strict";var mI;try{l2=J,mI=l2("esprima")}catch{typeof window<"u"&&(mI=window.esprima)}var l2,Zhe=si();function _he(r){if(r===null)return!1;try{var e="("+r+")",t=mI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function $he(r){var e="("+r+")",t=mI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function epe(r){return r.toString()}function tpe(r){return Object.prototype.toString.call(r)==="[object Function]"}c2.exports=new Zhe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var Xp=w((VZe,f2)=>{"use strict";var g2=rc();f2.exports=g2.DEFAULT=new g2({include:[Lg()],explicit:[o2(),A2(),u2()]})});var R2=w((XZe,Zp)=>{"use strict";var Ba=tc(),I2=Ng(),rpe=IU(),y2=Lg(),ipe=Xp(),RA=Object.prototype.hasOwnProperty,EI=1,w2=2,B2=3,II=4,JS=1,npe=2,h2=3,spe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ope=/[\x85\u2028\u2029]/,ape=/[,\[\]\{\}]/,b2=/^(?:!|!!|![a-z\-]+!)$/i,Q2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function p2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function sc(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function Mg(r){return r===44||r===91||r===93||r===123||r===125}function Ape(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function lpe(r){return r===120?2:r===117?4:r===85?8:0}function cpe(r){return 48<=r&&r<=57?r-48:-1}function d2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` -`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function upe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var S2=new Array(256),v2=new Array(256);for(nc=0;nc<256;nc++)S2[nc]=d2(nc)?1:0,v2[nc]=d2(nc);var nc;function gpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||ipe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function x2(r,e){return new I2(e,new rpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function ft(r,e){throw x2(r,e)}function yI(r,e){r.onWarning&&r.onWarning.call(null,x2(r,e))}var C2={YAML:function(e,t,i){var n,s,o;e.version!==null&&ft(e,"duplication of %YAML directive"),i.length!==1&&ft(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&ft(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&ft(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&yI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&&ft(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],b2.test(n)||ft(e,"ill-formed tag handle (first argument) of the TAG directive"),RA.call(e.tagMap,n)&&ft(e,'there is a previously declared suffix for "'+n+'" tag handle'),Q2.test(s)||ft(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function kA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=Ba.repeat(` -`,e-1))}function fpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),fn(h)||Mg(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Mg(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Mg(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&wI(r)||t&&Mg(h))break;if(vo(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,zr(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(kA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),sc(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return kA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function hpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(kA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(kA(r,i,n,!0),zS(r,zr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&wI(r)?ft(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);ft(r,"unexpected end of the stream within a single quoted scalar")}function ppe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return kA(r,t,r.position,!0),r.position++,!0;if(a===92){if(kA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))zr(r,!1,e);else if(a<256&&S2[a])r.result+=v2[a],r.position++;else if((o=lpe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=Ape(a))>=0?s=(s<<4)+o:ft(r,"expected hexadecimal character");r.result+=upe(s),r.position++}else ft(r,"unknown escape sequence");t=i=r.position}else vo(a)?(kA(r,t,i,!0),zS(r,zr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&wI(r)?ft(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}ft(r,"unexpected end of the stream within a double quoted scalar")}function dpe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,C,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(zr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||ft(r,"missed comma between flow collection entries"),p=h=C=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,zr(r,!0,e))),i=r.line,Kg(r,e,EI,!1,!0),p=r.tag,h=r.result,zr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),zr(r,!0,e),Kg(r,e,EI,!1,!0),C=r.result),g?Og(r,s,f,p,h,C):c?s.push(Og(r,null,f,p,h,C)):s.push(h),zr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}ft(r,"unexpected end of the stream within a flow collection")}function Cpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?h2:npe:ft(r,"repeat of a chomping mode identifier");else if((u=cpe(g))>=0)u===0?ft(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?ft(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(sc(g)){do g=r.input.charCodeAt(++r.position);while(sc(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndentt/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),IU.repeat(" ",e)+i+a+s+` +`+IU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: +`+t)),i};yU.exports=HS});var si=w((vZe,bU)=>{"use strict";var BU=Ng(),Mfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Ofe=["scalar","sequence","mapping"];function Kfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function Ufe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(Mfe.indexOf(t)===-1)throw new BU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Kfe(e.styleAliases||null),Ofe.indexOf(this.kind)===-1)throw new BU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}bU.exports=Ufe});var rc=w((xZe,SU)=>{"use strict";var QU=tc(),dI=Ng(),Hfe=si();function GS(r,e,t){var i=[];return r.include.forEach(function(n){t=GS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Gfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var Yfe=si();vU.exports=new Yfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var DU=w((DZe,PU)=>{"use strict";var jfe=si();PU.exports=new jfe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var RU=w((kZe,kU)=>{"use strict";var qfe=si();kU.exports=new qfe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var CI=w((RZe,FU)=>{"use strict";var Jfe=rc();FU.exports=new Jfe({explicit:[xU(),DU(),RU()]})});var TU=w((FZe,NU)=>{"use strict";var Wfe=si();function zfe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function Vfe(){return null}function Xfe(r){return r===null}NU.exports=new Wfe("tag:yaml.org,2002:null",{kind:"scalar",resolve:zfe,construct:Vfe,predicate:Xfe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var MU=w((NZe,LU)=>{"use strict";var Zfe=si();function _fe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function $fe(r){return r==="true"||r==="True"||r==="TRUE"}function ehe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}LU.exports=new Zfe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:_fe,construct:$fe,predicate:ehe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var KU=w((TZe,OU)=>{"use strict";var the=tc(),rhe=si();function ihe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function nhe(r){return 48<=r&&r<=55}function she(r){return 48<=r&&r<=57}function ohe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var GU=w((LZe,HU)=>{"use strict";var UU=tc(),lhe=si(),che=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function uhe(r){return!(r===null||!che.test(r)||r[r.length-1]==="_")}function ghe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var fhe=/^[-+]?[0-9]+e/;function hhe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(UU.isNegativeZero(r))return"-0.0";return t=r.toString(10),fhe.test(t)?t.replace("e",".e"):t}function phe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||UU.isNegativeZero(r))}HU.exports=new lhe("tag:yaml.org,2002:float",{kind:"scalar",resolve:uhe,construct:ghe,predicate:phe,represent:hhe,defaultStyle:"lowercase"})});var YS=w((MZe,YU)=>{"use strict";var dhe=rc();YU.exports=new dhe({include:[CI()],implicit:[TU(),MU(),KU(),GU()]})});var jS=w((OZe,jU)=>{"use strict";var Che=rc();jU.exports=new Che({include:[YS()]})});var zU=w((KZe,WU)=>{"use strict";var mhe=si(),qU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),JU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Ehe(r){return r===null?!1:qU.exec(r)!==null||JU.exec(r)!==null}function Ihe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=qU.exec(r),e===null&&(e=JU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function yhe(r){return r.toISOString()}WU.exports=new mhe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Ehe,construct:Ihe,instanceOf:Date,represent:yhe})});var XU=w((UZe,VU)=>{"use strict";var whe=si();function Bhe(r){return r==="<<"||r===null}VU.exports=new whe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Bhe})});var $U=w((HZe,_U)=>{"use strict";var ic;try{ZU=J,ic=ZU("buffer").Buffer}catch{}var ZU,bhe=si(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Qhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function She(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),ic?ic.from?ic.from(a):new ic(a):a}function vhe(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function xhe(r){return ic&&ic.isBuffer(r)}_U.exports=new bhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Qhe,construct:She,predicate:xhe,represent:vhe})});var t2=w((YZe,e2)=>{"use strict";var Phe=si(),Dhe=Object.prototype.hasOwnProperty,khe=Object.prototype.toString;function Rhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var Nhe=si(),The=Object.prototype.toString;function Lhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Ohe=si(),Khe=Object.prototype.hasOwnProperty;function Uhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Khe.call(t,e)&&t[e]!==null)return!1;return!0}function Hhe(r){return r!==null?r:{}}n2.exports=new Ohe("tag:yaml.org,2002:set",{kind:"mapping",resolve:Uhe,construct:Hhe})});var Lg=w((JZe,o2)=>{"use strict";var Ghe=rc();o2.exports=new Ghe({include:[jS()],implicit:[zU(),XU()],explicit:[$U(),t2(),i2(),s2()]})});var A2=w((WZe,a2)=>{"use strict";var Yhe=si();function jhe(){return!0}function qhe(){}function Jhe(){return""}function Whe(r){return typeof r>"u"}a2.exports=new Yhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:jhe,construct:qhe,predicate:Whe,represent:Jhe})});var c2=w((zZe,l2)=>{"use strict";var zhe=si();function Vhe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function Xhe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function Zhe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function _he(r){return Object.prototype.toString.call(r)==="[object RegExp]"}l2.exports=new zhe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:Vhe,construct:Xhe,predicate:_he,represent:Zhe})});var f2=w((VZe,g2)=>{"use strict";var mI;try{u2=J,mI=u2("esprima")}catch{typeof window<"u"&&(mI=window.esprima)}var u2,$he=si();function epe(r){if(r===null)return!1;try{var e="("+r+")",t=mI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function tpe(r){var e="("+r+")",t=mI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function rpe(r){return r.toString()}function ipe(r){return Object.prototype.toString.call(r)==="[object Function]"}g2.exports=new $he("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:epe,construct:tpe,predicate:ipe,represent:rpe})});var Xp=w((ZZe,p2)=>{"use strict";var h2=rc();p2.exports=h2.DEFAULT=new h2({include:[Lg()],explicit:[A2(),c2(),f2()]})});var N2=w((_Ze,Zp)=>{"use strict";var Ba=tc(),w2=Ng(),npe=wU(),B2=Lg(),spe=Xp(),kA=Object.prototype.hasOwnProperty,EI=1,b2=2,Q2=3,II=4,JS=1,ope=2,d2=3,ape=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Ape=/[\x85\u2028\u2029]/,lpe=/[,\[\]\{\}]/,S2=/^(?:!|!!|![a-z\-]+!)$/i,v2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function C2(r){return Object.prototype.toString.call(r)}function xo(r){return r===10||r===13}function sc(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function Mg(r){return r===44||r===91||r===93||r===123||r===125}function cpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function upe(r){return r===120?2:r===117?4:r===85?8:0}function gpe(r){return 48<=r&&r<=57?r-48:-1}function m2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function fpe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var x2=new Array(256),P2=new Array(256);for(nc=0;nc<256;nc++)x2[nc]=m2(nc)?1:0,P2[nc]=m2(nc);var nc;function hpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||spe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function D2(r,e){return new w2(e,new npe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function ft(r,e){throw D2(r,e)}function yI(r,e){r.onWarning&&r.onWarning.call(null,D2(r,e))}var E2={YAML:function(e,t,i){var n,s,o;e.version!==null&&ft(e,"duplication of %YAML directive"),i.length!==1&&ft(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&ft(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&ft(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&yI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&&ft(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],S2.test(n)||ft(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&&ft(e,'there is a previously declared suffix for "'+n+'" tag handle'),v2.test(s)||ft(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function DA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=Ba.repeat(` +`,e-1))}function ppe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),fn(h)||Mg(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Mg(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Mg(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&wI(r)||t&&Mg(h))break;if(xo(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,zr(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(DA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),sc(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return DA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function dpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(DA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else xo(t)?(DA(r,i,n,!0),zS(r,zr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&wI(r)?ft(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);ft(r,"unexpected end of the stream within a single quoted scalar")}function Cpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return DA(r,t,r.position,!0),r.position++,!0;if(a===92){if(DA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),xo(a))zr(r,!1,e);else if(a<256&&x2[a])r.result+=P2[a],r.position++;else if((o=upe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=cpe(a))>=0?s=(s<<4)+o:ft(r,"expected hexadecimal character");r.result+=fpe(s),r.position++}else ft(r,"unknown escape sequence");t=i=r.position}else xo(a)?(DA(r,t,i,!0),zS(r,zr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&wI(r)?ft(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}ft(r,"unexpected end of the stream within a double quoted scalar")}function mpe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,C,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(zr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||ft(r,"missed comma between flow collection entries"),p=h=C=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,zr(r,!0,e))),i=r.line,Kg(r,e,EI,!1,!0),p=r.tag,h=r.result,zr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),zr(r,!0,e),Kg(r,e,EI,!1,!0),C=r.result),g?Og(r,s,f,p,h,C):c?s.push(Og(r,null,f,p,h,C)):s.push(h),zr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}ft(r,"unexpected end of the stream within a flow collection")}function Epe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?d2:ope:ft(r,"repeat of a chomping mode identifier");else if((u=gpe(g))>=0)u===0?ft(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?ft(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(sc(g)){do g=r.input.charCodeAt(++r.position);while(sc(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!xo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),xo(g)){l++;continue}if(r.lineIndente)&&l!==0)ft(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Kg(r,e,II,!0,n)&&(p?f=r.result:h=r.result),p||(Og(r,c,u,g,f,h,s,o),g=f=h=null),zr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)ft(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+r.kind+'"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):ft(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):ft(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function wpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(zr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&&ft(r,"directive name must not be less than one character in length");o!==0;){for(;sc(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),RA.call(C2,i)?C2[i](r,i,n):yI(r,'unknown document directive "'+i+'"')}if(zr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,zr(r,!0,-1)):s&&ft(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,II,!1,!0),zr(r,!0,-1),r.checkLineBreaks&&ope.test(r.input.slice(e,r.position))&&yI(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&wI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,zr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=P2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),D2(r,e,Ba.extend({schema:y2},t))}function bpe(r,e){return k2(r,Ba.extend({schema:y2},e))}Zp.exports.loadAll=D2;Zp.exports.load=k2;Zp.exports.safeLoadAll=Bpe;Zp.exports.safeLoad=bpe});var tH=w((ZZe,_S)=>{"use strict";var $p=tc(),ed=Ng(),Qpe=Xp(),Spe=Lg(),U2=Object.prototype.toString,H2=Object.prototype.hasOwnProperty,vpe=9,_p=10,xpe=13,Ppe=32,Dpe=33,kpe=34,G2=35,Rpe=37,Fpe=38,Npe=39,Tpe=42,Y2=44,Lpe=45,j2=58,Mpe=61,Ope=62,Kpe=63,Upe=64,q2=91,J2=93,Hpe=96,W2=123,Gpe=124,z2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var Ype=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function jpe(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;ne)&&l!==0)ft(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Kg(r,e,II,!0,n)&&(p?f=r.result:h=r.result),p||(Og(r,c,u,g,f,h,s,o),g=f=h=null),zr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)ft(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+r.kind+'"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):ft(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):ft(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function bpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(zr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&&ft(r,"directive name must not be less than one character in length");o!==0;){for(;sc(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!xo(o));break}if(xo(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(E2,i)?E2[i](r,i,n):yI(r,'unknown document directive "'+i+'"')}if(zr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,zr(r,!0,-1)):s&&ft(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,II,!1,!0),zr(r,!0,-1),r.checkLineBreaks&&Ape.test(r.input.slice(e,r.position))&&yI(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&wI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,zr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=k2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),R2(r,e,Ba.extend({schema:B2},t))}function Spe(r,e){return F2(r,Ba.extend({schema:B2},e))}Zp.exports.loadAll=R2;Zp.exports.load=F2;Zp.exports.safeLoadAll=Qpe;Zp.exports.safeLoad=Spe});var iH=w(($Ze,_S)=>{"use strict";var $p=tc(),ed=Ng(),vpe=Xp(),xpe=Lg(),G2=Object.prototype.toString,Y2=Object.prototype.hasOwnProperty,Ppe=9,_p=10,Dpe=13,kpe=32,Rpe=33,Fpe=34,j2=35,Npe=37,Tpe=38,Lpe=39,Mpe=42,q2=44,Ope=45,J2=58,Kpe=61,Upe=62,Hpe=63,Gpe=64,W2=91,z2=93,Ype=96,V2=123,jpe=124,X2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var qpe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function Jpe(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,f=f&&T2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Ug(o))return BI;a=s>0?r.charCodeAt(s-1):null,f=f&&T2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?X2:Z2:t>9&&V2(r)?BI:c?$2:_2}function Xpe(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&Ype.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return Jpe(r,l)}switch(Vpe(e,o,r.indent,s,a)){case X2:return e;case Z2:return"'"+e.replace(/'/g,"''")+"'";case _2:return"|"+L2(e,r.indent)+M2(N2(e,n));case $2:return">"+L2(e,r.indent)+M2(N2(Zpe(e,s),n));case BI:return'"'+_pe(e,s)+'"';default:throw new ed("impossible error: invalid scalar style")}}()}function L2(r,e){var t=V2(r)?String(e):"",i=r[r.length-1]===` +`+$p.repeat(" ",r.indent*e)}function zpe(r,e){var t,i,n;for(t=0,i=r.implicitTypes.length;t0?r.charCodeAt(s-1):null,f=f&&M2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Ug(o))return BI;a=s>0?r.charCodeAt(s-1):null,f=f&&M2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?_2:$2:t>9&&Z2(r)?BI:c?tH:eH}function _pe(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&qpe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return zpe(r,l)}switch(Zpe(e,o,r.indent,s,a)){case _2:return e;case $2:return"'"+e.replace(/'/g,"''")+"'";case eH:return"|"+O2(e,r.indent)+K2(L2(e,n));case tH:return">"+O2(e,r.indent)+K2(L2($pe(e,s),n));case BI:return'"'+ede(e,s)+'"';default:throw new ed("impossible error: invalid scalar style")}}()}function O2(r,e){var t=Z2(r)?String(e):"",i=r[r.length-1]===` `,n=i&&(r[r.length-2]===` `||r===` `),s=n?"+":i?"":"-";return t+s+` -`}function M2(r){return r[r.length-1]===` -`?r.slice(0,-1):r}function Zpe(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` -`);return c=c!==-1?c:r.length,t.lastIndex=c,O2(r.slice(0,c),e)}(),n=r[0]===` +`}function K2(r){return r[r.length-1]===` +`?r.slice(0,-1):r}function $pe(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` +`);return c=c!==-1?c:r.length,t.lastIndex=c,U2(r.slice(0,c),e)}(),n=r[0]===` `||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` -`:"")+O2(l,e),n=s}return i}function O2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`:"")+U2(l,e),n=s}return i}function U2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` `+r.slice(n,s),n=s+1),o=a;return l+=` `,r.length-n>e&&o>n?l+=r.slice(n,o)+` -`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function _pe(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=F2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Ug(t)?r[s]:n||F2(t)}return e}function $pe(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),oc(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function rde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new ed("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&_p===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=VS(r,e)),oc(r,e+1,u,!0,g)&&(r.dump&&_p===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function K2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function oc(r,e,t,i,n,s){r.tag=null,r.dump=t,K2(r,t,!1)||K2(r,t,!0);var o=U2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(rde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(tde(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(ede(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):($pe(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&Xpe(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new ed("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function ide(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n{"use strict";var bI=R2(),rH=tH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Fr.exports.Type=si();Fr.exports.Schema=rc();Fr.exports.FAILSAFE_SCHEMA=CI();Fr.exports.JSON_SCHEMA=YS();Fr.exports.CORE_SCHEMA=jS();Fr.exports.DEFAULT_SAFE_SCHEMA=Lg();Fr.exports.DEFAULT_FULL_SCHEMA=Xp();Fr.exports.load=bI.load;Fr.exports.loadAll=bI.loadAll;Fr.exports.safeLoad=bI.safeLoad;Fr.exports.safeLoadAll=bI.safeLoadAll;Fr.exports.dump=rH.dump;Fr.exports.safeDump=rH.safeDump;Fr.exports.YAMLException=Ng();Fr.exports.MINIMAL_SCHEMA=CI();Fr.exports.SAFE_SCHEMA=Lg();Fr.exports.DEFAULT_SCHEMA=Xp();Fr.exports.scan=QI("scan");Fr.exports.parse=QI("parse");Fr.exports.compose=QI("compose");Fr.exports.addConstructor=QI("addConstructor")});var sH=w(($Ze,nH)=>{"use strict";var sde=iH();nH.exports=sde});var aH=w((e_e,oH)=>{"use strict";function ode(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function ac(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ac)}ode(ac,Error);ac.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[Ke]:Ce})))},H=function(R){return R},j=function(R){return R},$=Us("correct indentation"),V=" ",W=ar(" ",!1),_=function(R){return R.length===QA*yg},A=function(R){return R.length===(QA+1)*yg},Ae=function(){return QA++,!0},ge=function(){return QA--,!0},re=function(){return pg()},M=Us("pseudostring"),F=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ue=Tn(["\r",` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function ede(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=T2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Ug(t)?r[s]:n||T2(t)}return e}function tde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),oc(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function nde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new ed("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&_p===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=VS(r,e)),oc(r,e+1,u,!0,g)&&(r.dump&&_p===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function H2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function oc(r,e,t,i,n,s){r.tag=null,r.dump=t,H2(r,t,!1)||H2(r,t,!0);var o=G2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(nde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ide(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(rde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(tde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&_pe(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new ed("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function sde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n{"use strict";var bI=N2(),nH=iH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Fr.exports.Type=si();Fr.exports.Schema=rc();Fr.exports.FAILSAFE_SCHEMA=CI();Fr.exports.JSON_SCHEMA=YS();Fr.exports.CORE_SCHEMA=jS();Fr.exports.DEFAULT_SAFE_SCHEMA=Lg();Fr.exports.DEFAULT_FULL_SCHEMA=Xp();Fr.exports.load=bI.load;Fr.exports.loadAll=bI.loadAll;Fr.exports.safeLoad=bI.safeLoad;Fr.exports.safeLoadAll=bI.safeLoadAll;Fr.exports.dump=nH.dump;Fr.exports.safeDump=nH.safeDump;Fr.exports.YAMLException=Ng();Fr.exports.MINIMAL_SCHEMA=CI();Fr.exports.SAFE_SCHEMA=Lg();Fr.exports.DEFAULT_SCHEMA=Xp();Fr.exports.scan=QI("scan");Fr.exports.parse=QI("parse");Fr.exports.compose=QI("compose");Fr.exports.addConstructor=QI("addConstructor")});var aH=w((t_e,oH)=>{"use strict";var ade=sH();oH.exports=ade});var lH=w((r_e,AH)=>{"use strict";function Ade(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function ac(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ac)}Ade(ac,Error);ac.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[Ke]:Ce})))},H=function(R){return R},j=function(R){return R},$=Us("correct indentation"),V=" ",W=ar(" ",!1),_=function(R){return R.length===bA*yg},A=function(R){return R.length===(bA+1)*yg},Ae=function(){return bA++,!0},ge=function(){return bA--,!0},re=function(){return pg()},M=Us("pseudostring"),F=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ue=Tn(["\r",` `," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),pe=/^[^\r\n\t ,\][{}:#"']/,ke=Tn(["\r",` `," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Fe=function(){return pg().replace(/^ *| *$/g,"")},Ne="--",oe=ar("--",!1),le=/^[a-zA-Z\/0-9]/,Be=Tn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),fe=/^[^\r\n\t :,]/,ae=Tn(["\r",` -`," "," ",":",","],!0,!1),qe="null",ne=ar("null",!1),Y=function(){return null},he="true",ie=ar("true",!1),de=function(){return!0},_e="false",Pt=ar("false",!1),It=function(){return!1},Mr=Us("string"),ii='"',gi=ar('"',!1),hr=function(){return""},fi=function(R){return R},ni=function(R){return R.join("")},Ks=/^[^"\\\0-\x1F\x7F]/,pr=Tn(['"',"\\",["\0",""],"\x7F"],!0,!1),Ii='\\"',rs=ar('\\"',!1),fa=function(){return'"'},CA="\\\\",cg=ar("\\\\",!1),is=function(){return"\\"},mA="\\/",ha=ar("\\/",!1),wp=function(){return"/"},EA="\\b",IA=ar("\\b",!1),wr=function(){return"\b"},Tl="\\f",ug=ar("\\f",!1),Io=function(){return"\f"},gg="\\n",Bp=ar("\\n",!1),bp=function(){return` -`},vr="\\r",se=ar("\\r",!1),yo=function(){return"\r"},Fn="\\t",fg=ar("\\t",!1),bt=function(){return" "},Ll="\\u",Nn=ar("\\u",!1),ns=function(R,q,Ce,Ke){return String.fromCharCode(parseInt(`0x${R}${q}${Ce}${Ke}`))},ss=/^[0-9a-fA-F]/,gt=Tn([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Us("blank space"),At=/^[ \t]/,ln=Tn([" "," "],!1,!1),S=Us("white space"),Lt=/^[ \t\n\r]/,hg=Tn([" "," ",` +`," "," ",":",","],!0,!1),qe="null",ne=ar("null",!1),Y=function(){return null},he="true",ie=ar("true",!1),de=function(){return!0},_e="false",Pt=ar("false",!1),It=function(){return!1},Mr=Us("string"),ii='"',gi=ar('"',!1),hr=function(){return""},fi=function(R){return R},ni=function(R){return R.join("")},Ks=/^[^"\\\0-\x1F\x7F]/,pr=Tn(['"',"\\",["\0",""],"\x7F"],!0,!1),Ii='\\"',rs=ar('\\"',!1),fa=function(){return'"'},dA="\\\\",cg=ar("\\\\",!1),is=function(){return"\\"},CA="\\/",ha=ar("\\/",!1),wp=function(){return"/"},mA="\\b",EA=ar("\\b",!1),wr=function(){return"\b"},Tl="\\f",ug=ar("\\f",!1),yo=function(){return"\f"},gg="\\n",Bp=ar("\\n",!1),bp=function(){return` +`},vr="\\r",se=ar("\\r",!1),wo=function(){return"\r"},Fn="\\t",fg=ar("\\t",!1),bt=function(){return" "},Ll="\\u",Nn=ar("\\u",!1),ns=function(R,q,Ce,Ke){return String.fromCharCode(parseInt(`0x${R}${q}${Ce}${Ke}`))},ss=/^[0-9a-fA-F]/,gt=Tn([["0","9"],["a","f"],["A","F"]],!1,!1),Bo=Us("blank space"),At=/^[ \t]/,ln=Tn([" "," "],!1,!1),S=Us("white space"),Lt=/^[ \t\n\r]/,hg=Tn([" "," ",` `,"\r"],!1,!1),Ml=`\r `,Qp=ar(`\r `,!1),Sp=` `,vp=ar(` -`,!1),xp="\r",Pp=ar("\r",!1),G=0,yt=0,yA=[{line:1,column:1}],zi=0,Ol=[],Xe=0,pa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function pg(){return r.substring(yt,G)}function ME(){return cn(yt,G)}function Dp(R,q){throw q=q!==void 0?q:cn(yt,G),Ul([Us(R)],r.substring(yt,G),q)}function OE(R,q){throw q=q!==void 0?q:cn(yt,G),dg(R,q)}function ar(R,q){return{type:"literal",text:R,ignoreCase:q}}function Tn(R,q,Ce){return{type:"class",parts:R,inverted:q,ignoreCase:Ce}}function Kl(){return{type:"any"}}function kp(){return{type:"end"}}function Us(R){return{type:"other",description:R}}function da(R){var q=yA[R],Ce;if(q)return q;for(Ce=R-1;!yA[Ce];)Ce--;for(q=yA[Ce],q={line:q.line,column:q.column};Cezi&&(zi=G,Ol=[]),Ol.push(R))}function dg(R,q){return new ac(R,null,null,q)}function Ul(R,q,Ce){return new ac(ac.buildMessage(R,q),R,q,Ce)}function Hs(){var R;return R=Cg(),R}function Hl(){var R,q,Ce;for(R=G,q=[],Ce=wA();Ce!==t;)q.push(Ce),Ce=wA();return q!==t&&(yt=R,q=s(q)),R=q,R}function wA(){var R,q,Ce,Ke,Re;return R=G,q=ma(),q!==t?(r.charCodeAt(G)===45?(Ce=o,G++):(Ce=t,Xe===0&&Le(a)),Ce!==t?(Ke=Rr(),Ke!==t?(Re=Ca(),Re!==t?(yt=R,q=l(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function Cg(){var R,q,Ce;for(R=G,q=[],Ce=mg();Ce!==t;)q.push(Ce),Ce=mg();return q!==t&&(yt=R,q=c(q)),R=q,R}function mg(){var R,q,Ce,Ke,Re,ze,dt,Ft,Ln;if(R=G,q=Rr(),q===t&&(q=null),q!==t){if(Ce=G,r.charCodeAt(G)===35?(Ke=u,G++):(Ke=t,Xe===0&&Le(g)),Ke!==t){if(Re=[],ze=G,dt=G,Xe++,Ft=js(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Le(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t),ze!==t)for(;ze!==t;)Re.push(ze),ze=G,dt=G,Xe++,Ft=js(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Le(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t);else Re=t;Re!==t?(Ke=[Ke,Re],Ce=Ke):(G=Ce,Ce=t)}else G=Ce,Ce=t;if(Ce===t&&(Ce=null),Ce!==t){if(Ke=[],Re=Ys(),Re!==t)for(;Re!==t;)Ke.push(Re),Re=Ys();else Ke=t;Ke!==t?(yt=R,q=h(),R=q):(G=R,R=t)}else G=R,R=t}else G=R,R=t;if(R===t&&(R=G,q=ma(),q!==t?(Ce=Gl(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Le(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=Ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=ma(),q!==t?(Ce=Gs(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Le(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=Ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))){if(R=G,q=ma(),q!==t)if(Ce=Gs(),Ce!==t)if(Ke=Rr(),Ke!==t)if(Re=KE(),Re!==t){if(ze=[],dt=Ys(),dt!==t)for(;dt!==t;)ze.push(dt),dt=Ys();else ze=t;ze!==t?(yt=R,q=y(Ce,Re),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;else G=R,R=t;else G=R,R=t;if(R===t)if(R=G,q=ma(),q!==t)if(Ce=Gs(),Ce!==t){if(Ke=[],Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Le(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Ln=Gs(),Ln!==t?(yt=Re,ze=D(Ce,Ln),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t),Re!==t)for(;Re!==t;)Ke.push(Re),Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Le(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Ln=Gs(),Ln!==t?(yt=Re,ze=D(Ce,Ln),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t);else Ke=t;Ke!==t?(Re=Rr(),Re===t&&(Re=null),Re!==t?(r.charCodeAt(G)===58?(ze=p,G++):(ze=t,Xe===0&&Le(C)),ze!==t?(dt=Rr(),dt===t&&(dt=null),dt!==t?(Ft=Ca(),Ft!==t?(yt=R,q=T(Ce,Ke,Ft),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)}else G=R,R=t;else G=R,R=t}return R}function Ca(){var R,q,Ce,Ke,Re,ze,dt;if(R=G,q=G,Xe++,Ce=G,Ke=js(),Ke!==t?(Re=rt(),Re!==t?(r.charCodeAt(G)===45?(ze=o,G++):(ze=t,Xe===0&&Le(a)),ze!==t?(dt=Rr(),dt!==t?(Ke=[Ke,Re,ze,dt],Ce=Ke):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t),Xe--,Ce!==t?(G=q,q=void 0):q=t,q!==t?(Ce=Ys(),Ce!==t?(Ke=Bo(),Ke!==t?(Re=Hl(),Re!==t?(ze=BA(),ze!==t?(yt=R,q=H(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=js(),q!==t?(Ce=Bo(),Ce!==t?(Ke=Cg(),Ke!==t?(Re=BA(),Re!==t?(yt=R,q=H(Ke),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=Yl(),q!==t){if(Ce=[],Ke=Ys(),Ke!==t)for(;Ke!==t;)Ce.push(Ke),Ke=Ys();else Ce=t;Ce!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function ma(){var R,q,Ce;for(Xe++,R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));return q!==t?(yt=G,Ce=_(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),Xe--,R===t&&(q=t,Xe===0&&Le($)),R}function rt(){var R,q,Ce;for(R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));return q!==t?(yt=G,Ce=A(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),R}function Bo(){var R;return yt=G,R=Ae(),R?R=void 0:R=t,R}function BA(){var R;return yt=G,R=ge(),R?R=void 0:R=t,R}function Gl(){var R;return R=jl(),R===t&&(R=Rp()),R}function Gs(){var R,q,Ce;if(R=jl(),R===t){if(R=G,q=[],Ce=Eg(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=Eg();else q=t;q!==t&&(yt=R,q=re()),R=q}return R}function Yl(){var R;return R=Fp(),R===t&&(R=UE(),R===t&&(R=jl(),R===t&&(R=Rp()))),R}function KE(){var R;return R=Fp(),R===t&&(R=jl(),R===t&&(R=Eg())),R}function Rp(){var R,q,Ce,Ke,Re,ze;if(Xe++,R=G,F.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(ue)),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(pe.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Le(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(pe.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Le(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;return Xe--,R===t&&(q=t,Xe===0&&Le(M)),R}function Eg(){var R,q,Ce,Ke,Re;if(R=G,r.substr(G,2)===Ne?(q=Ne,G+=2):(q=t,Xe===0&&Le(oe)),q===t&&(q=null),q!==t)if(le.test(r.charAt(G))?(Ce=r.charAt(G),G++):(Ce=t,Xe===0&&Le(Be)),Ce!==t){for(Ke=[],fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Le(ae));Re!==t;)Ke.push(Re),fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Le(ae));Ke!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;return R}function Fp(){var R,q;return R=G,r.substr(G,4)===qe?(q=qe,G+=4):(q=t,Xe===0&&Le(ne)),q!==t&&(yt=R,q=Y()),R=q,R}function UE(){var R,q;return R=G,r.substr(G,4)===he?(q=he,G+=4):(q=t,Xe===0&&Le(ie)),q!==t&&(yt=R,q=de()),R=q,R===t&&(R=G,r.substr(G,5)===_e?(q=_e,G+=5):(q=t,Xe===0&&Le(Pt)),q!==t&&(yt=R,q=It()),R=q),R}function jl(){var R,q,Ce,Ke;return Xe++,R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Le(gi)),q!==t?(r.charCodeAt(G)===34?(Ce=ii,G++):(Ce=t,Xe===0&&Le(gi)),Ce!==t?(yt=R,q=hr(),R=q):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Le(gi)),q!==t?(Ce=HE(),Ce!==t?(r.charCodeAt(G)===34?(Ke=ii,G++):(Ke=t,Xe===0&&Le(gi)),Ke!==t?(yt=R,q=fi(Ce),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)),Xe--,R===t&&(q=t,Xe===0&&Le(Mr)),R}function HE(){var R,q,Ce;if(R=G,q=[],Ce=Ig(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=Ig();else q=t;return q!==t&&(yt=R,q=ni(q)),R=q,R}function Ig(){var R,q,Ce,Ke,Re,ze;return Ks.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Le(pr)),R===t&&(R=G,r.substr(G,2)===Ii?(q=Ii,G+=2):(q=t,Xe===0&&Le(rs)),q!==t&&(yt=R,q=fa()),R=q,R===t&&(R=G,r.substr(G,2)===CA?(q=CA,G+=2):(q=t,Xe===0&&Le(cg)),q!==t&&(yt=R,q=is()),R=q,R===t&&(R=G,r.substr(G,2)===mA?(q=mA,G+=2):(q=t,Xe===0&&Le(ha)),q!==t&&(yt=R,q=wp()),R=q,R===t&&(R=G,r.substr(G,2)===EA?(q=EA,G+=2):(q=t,Xe===0&&Le(IA)),q!==t&&(yt=R,q=wr()),R=q,R===t&&(R=G,r.substr(G,2)===Tl?(q=Tl,G+=2):(q=t,Xe===0&&Le(ug)),q!==t&&(yt=R,q=Io()),R=q,R===t&&(R=G,r.substr(G,2)===gg?(q=gg,G+=2):(q=t,Xe===0&&Le(Bp)),q!==t&&(yt=R,q=bp()),R=q,R===t&&(R=G,r.substr(G,2)===vr?(q=vr,G+=2):(q=t,Xe===0&&Le(se)),q!==t&&(yt=R,q=yo()),R=q,R===t&&(R=G,r.substr(G,2)===Fn?(q=Fn,G+=2):(q=t,Xe===0&&Le(fg)),q!==t&&(yt=R,q=bt()),R=q,R===t&&(R=G,r.substr(G,2)===Ll?(q=Ll,G+=2):(q=t,Xe===0&&Le(Nn)),q!==t?(Ce=bA(),Ce!==t?(Ke=bA(),Ke!==t?(Re=bA(),Re!==t?(ze=bA(),ze!==t?(yt=R,q=ns(Ce,Ke,Re,ze),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)))))))))),R}function bA(){var R;return ss.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Le(gt)),R}function Rr(){var R,q;if(Xe++,R=[],At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(ln)),q!==t)for(;q!==t;)R.push(q),At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(ln));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Le(wo)),R}function GE(){var R,q;if(Xe++,R=[],Lt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(hg)),q!==t)for(;q!==t;)R.push(q),Lt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(hg));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Le(S)),R}function Ys(){var R,q,Ce,Ke,Re,ze;if(R=G,q=js(),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=js(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=js(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)}else G=R,R=t;return R}function js(){var R;return r.substr(G,2)===Ml?(R=Ml,G+=2):(R=t,Xe===0&&Le(Qp)),R===t&&(r.charCodeAt(G)===10?(R=Sp,G++):(R=t,Xe===0&&Le(vp)),R===t&&(r.charCodeAt(G)===13?(R=xp,G++):(R=t,Xe===0&&Le(Pp)))),R}let yg=2,QA=0;if(pa=n(),pa!==t&&G===r.length)return pa;throw pa!==t&&G{"use strict";var gde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=gde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=gH;ev.exports.default=gH});var hH=w((o_e,fde)=>{fde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var Ac=w(Un=>{"use strict";var dH=hH(),xo=process.env;Object.defineProperty(Un,"_vendors",{value:dH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;dH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return pH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!xo[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in xo&&xo[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!xo[i]}):Un.isPR=pH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(xo.CI||xo.CONTINUOUS_INTEGRATION||xo.BUILD_NUMBER||xo.RUN_ID||Un.name);function pH(r){return typeof r=="string"?!!xo[r]:Object.keys(r).every(function(e){return xo[e]===r[e]})}});var hn={};ut(hn,{KeyRelationship:()=>lc,applyCascade:()=>od,base64RegExp:()=>yH,colorStringAlphaRegExp:()=>IH,colorStringRegExp:()=>EH,computeKey:()=>FA,getPrintable:()=>Vr,hasExactLength:()=>SH,hasForbiddenKeys:()=>qde,hasKeyRelationship:()=>av,hasMaxLength:()=>xde,hasMinLength:()=>vde,hasMutuallyExclusiveKeys:()=>Jde,hasRequiredKeys:()=>jde,hasUniqueItems:()=>Pde,isArray:()=>Ede,isAtLeast:()=>Rde,isAtMost:()=>Fde,isBase64:()=>Gde,isBoolean:()=>dde,isDate:()=>mde,isDict:()=>yde,isEnum:()=>Zi,isHexColor:()=>Hde,isISO8601:()=>Ude,isInExclusiveRange:()=>Tde,isInInclusiveRange:()=>Nde,isInstanceOf:()=>Bde,isInteger:()=>Lde,isJSON:()=>Yde,isLiteral:()=>hde,isLowerCase:()=>Mde,isNegative:()=>Dde,isNullable:()=>Sde,isNumber:()=>Cde,isObject:()=>wde,isOneOf:()=>bde,isOptional:()=>Qde,isPositive:()=>kde,isString:()=>sd,isTuple:()=>Ide,isUUID4:()=>Kde,isUnknown:()=>QH,isUpperCase:()=>Ode,iso8601RegExp:()=>ov,makeCoercionFn:()=>cc,makeSetter:()=>bH,makeTrait:()=>BH,makeValidator:()=>Qt,matchesRegExp:()=>ad,plural:()=>kI,pushError:()=>pt,simpleKeyRegExp:()=>mH,uuid4RegExp:()=>wH});function Qt({test:r}){return BH(r)()}function Vr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function FA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:mH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function cc(r,e){return t=>{let i=r[e];return r[e]=t,cc(r,e).bind(null,i)}}function bH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function pt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function hde(r){return Qt({test:(e,t)=>e!==r?pt(t,`Expected a literal (got ${Vr(r)})`):!0})}function Zi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Qt({test:(i,n)=>t.has(i)?!0:pt(n,`Expected a valid enumeration value (got ${Vr(i)})`)})}var mH,EH,IH,yH,wH,ov,BH,QH,sd,pde,dde,Cde,mde,Ede,Ide,yde,wde,Bde,bde,od,Qde,Sde,vde,xde,SH,Pde,Dde,kde,Rde,Fde,Nde,Tde,Lde,ad,Mde,Ode,Kde,Ude,Hde,Gde,Yde,jde,qde,Jde,lc,Wde,av,ls=Fge(()=>{mH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,EH=/^#[0-9a-f]{6}$/i,IH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,yH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,wH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,BH=r=>()=>r;QH=()=>Qt({test:(r,e)=>!0});sd=()=>Qt({test:(r,e)=>typeof r!="string"?pt(e,`Expected a string (got ${Vr(r)})`):!0});pde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),dde=()=>Qt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i=pde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a boolean (got ${Vr(r)})`)}return!0}}),Cde=()=>Qt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return pt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a number (got ${Vr(r)})`)}return!0}}),mde=()=>Qt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return pt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a date (got ${Vr(r)})`)}return!0}}),Ede=(r,{delimiter:e}={})=>Qt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return pt(i,`Expected an array (got ${Vr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=SH(r.length);return Qt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return pt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return pt(n,`Expected a tuple (got ${Vr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;aQt({test:(t,i)=>{if(typeof t!="object"||t===null)return pt(i,`Expected an object (got ${Vr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return Qt({test:(i,n)=>{if(typeof i!="object"||i===null)return pt(n,`Expected an object (got ${Vr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=pt(Object.assign(Object.assign({},n),{p:FA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:FA(n,l),coercion:cc(i,l)}))&&a:e===null?a=pt(Object.assign(Object.assign({},n),{p:FA(n,l)}),`Extraneous property (got ${Vr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:bH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Bde=r=>Qt({test:(e,t)=>e instanceof r?!0:pt(t,`Expected an instance of ${r.name} (got ${Vr(e)})`)}),bde=(r,{exclusive:e=!1}={})=>Qt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?pt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),od=(r,e)=>Qt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?cc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Qde=r=>Qt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Sde=r=>Qt({test:(e,t)=>e===null?!0:r(e,t)}),vde=r=>Qt({test:(e,t)=>e.length>=r?!0:pt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),xde=r=>Qt({test:(e,t)=>e.length<=r?!0:pt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),SH=r=>Qt({test:(e,t)=>e.length!==r?pt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Pde=({map:r}={})=>Qt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sQt({test:(r,e)=>r<=0?!0:pt(e,`Expected to be negative (got ${r})`)}),kde=()=>Qt({test:(r,e)=>r>=0?!0:pt(e,`Expected to be positive (got ${r})`)}),Rde=r=>Qt({test:(e,t)=>e>=r?!0:pt(t,`Expected to be at least ${r} (got ${e})`)}),Fde=r=>Qt({test:(e,t)=>e<=r?!0:pt(t,`Expected to be at most ${r} (got ${e})`)}),Nde=(r,e)=>Qt({test:(t,i)=>t>=r&&t<=e?!0:pt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),Tde=(r,e)=>Qt({test:(t,i)=>t>=r&&tQt({test:(e,t)=>e!==Math.round(e)?pt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:pt(t,`Expected to be a safe integer (got ${e})`)}),ad=r=>Qt({test:(e,t)=>r.test(e)?!0:pt(t,`Expected to match the pattern ${r.toString()} (got ${Vr(e)})`)}),Mde=()=>Qt({test:(r,e)=>r!==r.toLowerCase()?pt(e,`Expected to be all-lowercase (got ${r})`):!0}),Ode=()=>Qt({test:(r,e)=>r!==r.toUpperCase()?pt(e,`Expected to be all-uppercase (got ${r})`):!0}),Kde=()=>Qt({test:(r,e)=>wH.test(r)?!0:pt(e,`Expected to be a valid UUID v4 (got ${Vr(r)})`)}),Ude=()=>Qt({test:(r,e)=>ov.test(r)?!1:pt(e,`Expected to be a valid ISO 8601 date string (got ${Vr(r)})`)}),Hde=({alpha:r=!1})=>Qt({test:(e,t)=>(r?EH.test(e):IH.test(e))?!0:pt(t,`Expected to be a valid hexadecimal color string (got ${Vr(e)})`)}),Gde=()=>Qt({test:(r,e)=>yH.test(r)?!0:pt(e,`Expected to be a valid base 64 string (got ${Vr(r)})`)}),Yde=(r=QH())=>Qt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return pt(t,`Expected to be a valid JSON string (got ${Vr(e)})`)}return r(i,t)}}),jde=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?pt(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},qde=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?pt(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},Jde=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?pt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(lc||(lc={}));Wde={[lc.Forbids]:{expect:!1,message:"forbids using"},[lc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=Wde[e];return Qt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?pt(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var YH=w((o$e,GH)=>{"use strict";GH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=w((a$e,pv)=>{"use strict";var cCe=YH(),jH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=cCe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=jH;pv.exports.default=jH});var gd=w((l$e,qH)=>{var uCe="2.0.0",gCe=Number.MAX_SAFE_INTEGER||9007199254740991,fCe=16;qH.exports={SEMVER_SPEC_VERSION:uCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:gCe,MAX_SAFE_COMPONENT_LENGTH:fCe}});var fd=w((c$e,JH)=>{var hCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};JH.exports=hCe});var uc=w((TA,WH)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=gd(),pCe=fd();TA=WH.exports={};var dCe=TA.re=[],et=TA.src=[],tt=TA.t={},CCe=0,St=(r,e,t)=>{let i=CCe++;pCe(i,e),tt[r]=i,et[i]=e,dCe[i]=new RegExp(e,t?"g":void 0)};St("NUMERICIDENTIFIER","0|[1-9]\\d*");St("NUMERICIDENTIFIERLOOSE","[0-9]+");St("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");St("MAINVERSION",`(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})`);St("MAINVERSIONLOOSE",`(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})`);St("PRERELEASEIDENTIFIER",`(?:${et[tt.NUMERICIDENTIFIER]}|${et[tt.NONNUMERICIDENTIFIER]})`);St("PRERELEASEIDENTIFIERLOOSE",`(?:${et[tt.NUMERICIDENTIFIERLOOSE]}|${et[tt.NONNUMERICIDENTIFIER]})`);St("PRERELEASE",`(?:-(${et[tt.PRERELEASEIDENTIFIER]}(?:\\.${et[tt.PRERELEASEIDENTIFIER]})*))`);St("PRERELEASELOOSE",`(?:-?(${et[tt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${et[tt.PRERELEASEIDENTIFIERLOOSE]})*))`);St("BUILDIDENTIFIER","[0-9A-Za-z-]+");St("BUILD",`(?:\\+(${et[tt.BUILDIDENTIFIER]}(?:\\.${et[tt.BUILDIDENTIFIER]})*))`);St("FULLPLAIN",`v?${et[tt.MAINVERSION]}${et[tt.PRERELEASE]}?${et[tt.BUILD]}?`);St("FULL",`^${et[tt.FULLPLAIN]}$`);St("LOOSEPLAIN",`[v=\\s]*${et[tt.MAINVERSIONLOOSE]}${et[tt.PRERELEASELOOSE]}?${et[tt.BUILD]}?`);St("LOOSE",`^${et[tt.LOOSEPLAIN]}$`);St("GTLT","((?:<|>)?=?)");St("XRANGEIDENTIFIERLOOSE",`${et[tt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);St("XRANGEIDENTIFIER",`${et[tt.NUMERICIDENTIFIER]}|x|X|\\*`);St("XRANGEPLAIN",`[v=\\s]*(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:${et[tt.PRERELEASE]})?${et[tt.BUILD]}?)?)?`);St("XRANGEPLAINLOOSE",`[v=\\s]*(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:${et[tt.PRERELEASELOOSE]})?${et[tt.BUILD]}?)?)?`);St("XRANGE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAIN]}$`);St("XRANGELOOSE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAINLOOSE]}$`);St("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);St("COERCERTL",et[tt.COERCE],!0);St("LONETILDE","(?:~>?)");St("TILDETRIM",`(\\s*)${et[tt.LONETILDE]}\\s+`,!0);TA.tildeTrimReplace="$1~";St("TILDE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAIN]}$`);St("TILDELOOSE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAINLOOSE]}$`);St("LONECARET","(?:\\^)");St("CARETTRIM",`(\\s*)${et[tt.LONECARET]}\\s+`,!0);TA.caretTrimReplace="$1^";St("CARET",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAIN]}$`);St("CARETLOOSE",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAINLOOSE]}$`);St("COMPARATORLOOSE",`^${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]})$|^$`);St("COMPARATOR",`^${et[tt.GTLT]}\\s*(${et[tt.FULLPLAIN]})$|^$`);St("COMPARATORTRIM",`(\\s*)${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]}|${et[tt.XRANGEPLAIN]})`,!0);TA.comparatorTrimReplace="$1$2$3";St("HYPHENRANGE",`^\\s*(${et[tt.XRANGEPLAIN]})\\s+-\\s+(${et[tt.XRANGEPLAIN]})\\s*$`);St("HYPHENRANGELOOSE",`^\\s*(${et[tt.XRANGEPLAINLOOSE]})\\s+-\\s+(${et[tt.XRANGEPLAINLOOSE]})\\s*$`);St("STAR","(<|>)?=?\\s*\\*");St("GTE0","^\\s*>=\\s*0.0.0\\s*$");St("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var hd=w((u$e,zH)=>{var mCe=["includePrerelease","loose","rtl"],ECe=r=>r?typeof r!="object"?{loose:!0}:mCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};zH.exports=ECe});var MI=w((g$e,ZH)=>{var VH=/^[0-9]+$/,XH=(r,e)=>{let t=VH.test(r),i=VH.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rXH(e,r);ZH.exports={compareIdentifiers:XH,rcompareIdentifiers:ICe}});var Li=w((f$e,tG)=>{var OI=fd(),{MAX_LENGTH:_H,MAX_SAFE_INTEGER:KI}=gd(),{re:$H,t:eG}=uc(),yCe=hd(),{compareIdentifiers:pd}=MI(),Yn=class{constructor(e,t){if(t=yCe(t),e instanceof Yn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>_H)throw new TypeError(`version is longer than ${_H} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?$H[eG.LOOSE]:$H[eG.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>KI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>KI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>KI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};tG.exports=Yn});var gc=w((h$e,sG)=>{var{MAX_LENGTH:wCe}=gd(),{re:rG,t:iG}=uc(),nG=Li(),BCe=hd(),bCe=(r,e)=>{if(e=BCe(e),r instanceof nG)return r;if(typeof r!="string"||r.length>wCe||!(e.loose?rG[iG.LOOSE]:rG[iG.FULL]).test(r))return null;try{return new nG(r,e)}catch{return null}};sG.exports=bCe});var aG=w((p$e,oG)=>{var QCe=gc(),SCe=(r,e)=>{let t=QCe(r,e);return t?t.version:null};oG.exports=SCe});var lG=w((d$e,AG)=>{var vCe=gc(),xCe=(r,e)=>{let t=vCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};AG.exports=xCe});var uG=w((C$e,cG)=>{var PCe=Li(),DCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new PCe(r,t).inc(e,i).version}catch{return null}};cG.exports=DCe});var cs=w((m$e,fG)=>{var gG=Li(),kCe=(r,e,t)=>new gG(r,t).compare(new gG(e,t));fG.exports=kCe});var UI=w((E$e,hG)=>{var RCe=cs(),FCe=(r,e,t)=>RCe(r,e,t)===0;hG.exports=FCe});var CG=w((I$e,dG)=>{var pG=gc(),NCe=UI(),TCe=(r,e)=>{if(NCe(r,e))return null;{let t=pG(r),i=pG(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};dG.exports=TCe});var EG=w((y$e,mG)=>{var LCe=Li(),MCe=(r,e)=>new LCe(r,e).major;mG.exports=MCe});var yG=w((w$e,IG)=>{var OCe=Li(),KCe=(r,e)=>new OCe(r,e).minor;IG.exports=KCe});var BG=w((B$e,wG)=>{var UCe=Li(),HCe=(r,e)=>new UCe(r,e).patch;wG.exports=HCe});var QG=w((b$e,bG)=>{var GCe=gc(),YCe=(r,e)=>{let t=GCe(r,e);return t&&t.prerelease.length?t.prerelease:null};bG.exports=YCe});var vG=w((Q$e,SG)=>{var jCe=cs(),qCe=(r,e,t)=>jCe(e,r,t);SG.exports=qCe});var PG=w((S$e,xG)=>{var JCe=cs(),WCe=(r,e)=>JCe(r,e,!0);xG.exports=WCe});var HI=w((v$e,kG)=>{var DG=Li(),zCe=(r,e,t)=>{let i=new DG(r,t),n=new DG(e,t);return i.compare(n)||i.compareBuild(n)};kG.exports=zCe});var FG=w((x$e,RG)=>{var VCe=HI(),XCe=(r,e)=>r.sort((t,i)=>VCe(t,i,e));RG.exports=XCe});var TG=w((P$e,NG)=>{var ZCe=HI(),_Ce=(r,e)=>r.sort((t,i)=>ZCe(i,t,e));NG.exports=_Ce});var dd=w((D$e,LG)=>{var $Ce=cs(),eme=(r,e,t)=>$Ce(r,e,t)>0;LG.exports=eme});var GI=w((k$e,MG)=>{var tme=cs(),rme=(r,e,t)=>tme(r,e,t)<0;MG.exports=rme});var Cv=w((R$e,OG)=>{var ime=cs(),nme=(r,e,t)=>ime(r,e,t)!==0;OG.exports=nme});var YI=w((F$e,KG)=>{var sme=cs(),ome=(r,e,t)=>sme(r,e,t)>=0;KG.exports=ome});var jI=w((N$e,UG)=>{var ame=cs(),Ame=(r,e,t)=>ame(r,e,t)<=0;UG.exports=Ame});var mv=w((T$e,HG)=>{var lme=UI(),cme=Cv(),ume=dd(),gme=YI(),fme=GI(),hme=jI(),pme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return lme(r,t,i);case"!=":return cme(r,t,i);case">":return ume(r,t,i);case">=":return gme(r,t,i);case"<":return fme(r,t,i);case"<=":return hme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};HG.exports=pme});var YG=w((L$e,GG)=>{var dme=Li(),Cme=gc(),{re:qI,t:JI}=uc(),mme=(r,e)=>{if(r instanceof dme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(qI[JI.COERCE]);else{let i;for(;(i=qI[JI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),qI[JI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;qI[JI.COERCERTL].lastIndex=-1}return t===null?null:Cme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};GG.exports=mme});var qG=w((M$e,jG)=>{"use strict";jG.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var WI=w((O$e,JG)=>{"use strict";JG.exports=Ht;Ht.Node=fc;Ht.create=Ht;function Ht(r){var e=this;if(e instanceof Ht||(e=new Ht),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Ht.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Ht.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Ht.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Ht.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Ht;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Ht.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var wme=WI(),hc=Symbol("max"),va=Symbol("length"),Wg=Symbol("lengthCalculator"),md=Symbol("allowStale"),pc=Symbol("maxAge"),Sa=Symbol("dispose"),WG=Symbol("noDisposeOnSet"),di=Symbol("lruList"),Zs=Symbol("cache"),VG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[hc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[md]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[pc]=e.maxAge||0,this[Sa]=e.dispose,this[WG]=e.noDisposeOnSet||!1,this[VG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[hc]=e||1/0,Cd(this)}get max(){return this[hc]}set allowStale(e){this[md]=!!e}get allowStale(){return this[md]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[pc]=e,Cd(this)}get maxAge(){return this[pc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[va]=0,this[di].forEach(t=>{t.length=this[Wg](t.value,t.key),this[va]+=t.length})),Cd(this)}get lengthCalculator(){return this[Wg]}get length(){return this[va]}get itemCount(){return this[di].length}rforEach(e,t){t=t||this;for(let i=this[di].tail;i!==null;){let n=i.prev;zG(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[di].head;i!==null;){let n=i.next;zG(this,e,i,t),i=n}}keys(){return this[di].toArray().map(e=>e.key)}values(){return this[di].toArray().map(e=>e.value)}reset(){this[Sa]&&this[di]&&this[di].length&&this[di].forEach(e=>this[Sa](e.key,e.value)),this[Zs]=new Map,this[di]=new wme,this[va]=0}dump(){return this[di].map(e=>zI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[di]}set(e,t,i){if(i=i||this[pc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Zs].has(e)){if(s>this[hc])return zg(this,this[Zs].get(e)),!1;let l=this[Zs].get(e).value;return this[Sa]&&(this[WG]||this[Sa](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[va]+=s-l.length,l.length=s,this.get(e),Cd(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[hc]?(this[Sa]&&this[Sa](e,t),!1):(this[va]+=o.length,this[di].unshift(o),this[Zs].set(e,this[di].head),Cd(this),!0)}has(e){if(!this[Zs].has(e))return!1;let t=this[Zs].get(e).value;return!zI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[di].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Zs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Zs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Zs].get(e);if(i){let n=i.value;if(zI(r,n)){if(zg(r,i),!r[md])return}else t&&(r[VG]&&(i.value.now=Date.now()),r[di].unshiftNode(i));return n.value}},zI=(r,e)=>{if(!e||!e.maxAge&&!r[pc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[pc]&&t>r[pc]},Cd=r=>{if(r[va]>r[hc])for(let e=r[di].tail;r[va]>r[hc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[Sa]&&r[Sa](t.key,t.value),r[va]-=t.length,r[Zs].delete(t.key),r[di].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},zG=(r,e,t,i)=>{let n=t.value;zI(r,n)&&(zg(r,t),r[md]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};XG.exports=yv});var us=w((U$e,tY)=>{var dc=class{constructor(e,t){if(t=bme(t),e instanceof dc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new dc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!$G(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Pme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=_G.get(i);if(n)return n;let s=this.options.loose,o=s?Mi[bi.HYPHENRANGELOOSE]:Mi[bi.HYPHENRANGE];e=e.replace(o,Kme(this.options.includePrerelease)),Gr("hyphen replace",e),e=e.replace(Mi[bi.COMPARATORTRIM],Sme),Gr("comparator trim",e,Mi[bi.COMPARATORTRIM]),e=e.replace(Mi[bi.TILDETRIM],vme),e=e.replace(Mi[bi.CARETTRIM],xme),e=e.split(/\s+/).join(" ");let a=s?Mi[bi.COMPARATORLOOSE]:Mi[bi.COMPARATOR],l=e.split(" ").map(f=>Dme(f,this.options)).join(" ").split(/\s+/).map(f=>Ome(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new Bv(f,this.options)),c=l.length,u=new Map;for(let f of l){if($G(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return _G.set(i,g),g}intersects(e,t){if(!(e instanceof dc))throw new TypeError("a Range is required");return this.set.some(i=>eY(i,t)&&e.set.some(n=>eY(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Qme(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",Pme=r=>r.value==="",eY=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Dme=(r,e)=>(Gr("comp",r,e),r=Fme(r,e),Gr("caret",r),r=kme(r,e),Gr("tildes",r),r=Tme(r,e),Gr("xrange",r),r=Mme(r,e),Gr("stars",r),r),$i=r=>!r||r.toLowerCase()==="x"||r==="*",kme=(r,e)=>r.trim().split(/\s+/).map(t=>Rme(t,e)).join(" "),Rme=(r,e)=>{let t=e.loose?Mi[bi.TILDELOOSE]:Mi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Gr("tilde",r,i,n,s,o,a);let l;return $i(n)?l="":$i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:$i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Gr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Gr("tilde return",l),l})},Fme=(r,e)=>r.trim().split(/\s+/).map(t=>Nme(t,e)).join(" "),Nme=(r,e)=>{Gr("caret",r,e);let t=e.loose?Mi[bi.CARETLOOSE]:Mi[bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Gr("caret",r,n,s,o,a,l);let c;return $i(s)?c="":$i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:$i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Gr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Gr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Gr("caret return",c),c})},Tme=(r,e)=>(Gr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Lme(t,e)).join(" ")),Lme=(r,e)=>{r=r.trim();let t=e.loose?Mi[bi.XRANGELOOSE]:Mi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Gr("xRange",r,i,n,s,o,a,l);let c=$i(s),u=c||$i(o),g=u||$i(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Gr("xRange return",i),i})},Mme=(r,e)=>(Gr("replaceStars",r,e),r.trim().replace(Mi[bi.STAR],"")),Ome=(r,e)=>(Gr("replaceGTE0",r,e),r.trim().replace(Mi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],"")),Kme=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>($i(i)?t="":$i(n)?t=`>=${i}.0.0${r?"-0":""}`:$i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,$i(c)?l="":$i(u)?l=`<${+c+1}.0.0-0`:$i(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Ume=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Ed=w((H$e,oY)=>{var Id=Symbol("SemVer ANY"),Vg=class{static get ANY(){return Id}constructor(e,t){if(t=Hme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}Qv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Id?this.value="":this.value=this.operator+this.semver.version,Qv("comp",this)}parse(e){let t=this.options.loose?rY[iY.COMPARATORLOOSE]:rY[iY.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new nY(i[2],this.options.loose):this.semver=Id}toString(){return this.value}test(e){if(Qv("Comparator.test",e,this.options.loose),this.semver===Id||e===Id)return!0;if(typeof e=="string")try{e=new nY(e,this.options)}catch{return!1}return bv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new sY(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new sY(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=bv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=bv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};oY.exports=Vg;var Hme=hd(),{re:rY,t:iY}=uc(),bv=mv(),Qv=fd(),nY=Li(),sY=us()});var yd=w((G$e,aY)=>{var Gme=us(),Yme=(r,e,t)=>{try{e=new Gme(e,t)}catch{return!1}return e.test(r)};aY.exports=Yme});var lY=w((Y$e,AY)=>{var jme=us(),qme=(r,e)=>new jme(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));AY.exports=qme});var uY=w((j$e,cY)=>{var Jme=Li(),Wme=us(),zme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new Wme(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new Jme(i,t))}),i};cY.exports=zme});var fY=w((q$e,gY)=>{var Vme=Li(),Xme=us(),Zme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new Xme(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new Vme(i,t))}),i};gY.exports=Zme});var dY=w((J$e,pY)=>{var Sv=Li(),_me=us(),hY=dd(),$me=(r,e)=>{r=new _me(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||hY(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||hY(t,s))&&(t=s)}return t&&r.test(t)?t:null};pY.exports=$me});var mY=w((W$e,CY)=>{var eEe=us(),tEe=(r,e)=>{try{return new eEe(r,e).range||"*"}catch{return null}};CY.exports=tEe});var VI=w((z$e,wY)=>{var rEe=Li(),yY=Ed(),{ANY:iEe}=yY,nEe=us(),sEe=yd(),EY=dd(),IY=GI(),oEe=jI(),aEe=YI(),AEe=(r,e,t,i)=>{r=new rEe(r,i),e=new nEe(e,i);let n,s,o,a,l;switch(t){case">":n=EY,s=oEe,o=IY,a=">",l=">=";break;case"<":n=IY,s=aEe,o=EY,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(sEe(r,e,i))return!1;for(let c=0;c{h.semver===iEe&&(h=new yY(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};wY.exports=AEe});var bY=w((V$e,BY)=>{var lEe=VI(),cEe=(r,e,t)=>lEe(r,e,">",t);BY.exports=cEe});var SY=w((X$e,QY)=>{var uEe=VI(),gEe=(r,e,t)=>uEe(r,e,"<",t);QY.exports=gEe});var PY=w((Z$e,xY)=>{var vY=us(),fEe=(r,e,t)=>(r=new vY(r,t),e=new vY(e,t),r.intersects(e));xY.exports=fEe});var kY=w((_$e,DY)=>{var hEe=yd(),pEe=cs();DY.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>pEe(u,g,t));for(let u of o)hEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var RY=us(),XI=Ed(),{ANY:vv}=XI,wd=yd(),xv=cs(),dEe=(r,e,t={})=>{if(r===e)return!0;r=new RY(r,t),e=new RY(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=CEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},CEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new XI(">=0.0.0-0")]:r=[new XI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new XI(">=0.0.0")]}let i=new Set,n,s;for(let h of r)h.operator===">"||h.operator===">="?n=FY(n,h,t):h.operator==="<"||h.operator==="<="?s=NY(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!wd(h,String(n),t)||s&&!wd(h,String(s),t))return null;for(let p of e)if(!wd(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=FY(n,h,t),a===h&&a!==n)return!1}else if(n.operator===">="&&!wd(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=NY(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!wd(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},FY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},NY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};TY.exports=dEe});var Xr=w((eet,MY)=>{var Pv=uc();MY.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:gd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:MI().compareIdentifiers,rcompareIdentifiers:MI().rcompareIdentifiers,parse:gc(),valid:aG(),clean:lG(),inc:uG(),diff:CG(),major:EG(),minor:yG(),patch:BG(),prerelease:QG(),compare:cs(),rcompare:vG(),compareLoose:PG(),compareBuild:HI(),sort:FG(),rsort:TG(),gt:dd(),lt:GI(),eq:UI(),neq:Cv(),gte:YI(),lte:jI(),cmp:mv(),coerce:YG(),Comparator:Ed(),Range:us(),satisfies:yd(),toComparators:lY(),maxSatisfying:uY(),minSatisfying:fY(),minVersion:dY(),validRange:mY(),outside:VI(),gtr:bY(),ltr:SY(),intersects:PY(),simplifyRange:kY(),subset:LY()}});var Dv=w(ZI=>{"use strict";Object.defineProperty(ZI,"__esModule",{value:!0});ZI.VERSION=void 0;ZI.VERSION="9.1.0"});var Gt=w((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof _I=="object"&&_I.exports?_I.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:OY,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var C=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:C,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],C=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(C)}},r.prototype.alternative=function(){for(var p=[],C=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(C)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var C;switch(this.popChar()){case"=":C="Lookahead";break;case"!":C="NegativeLookahead";break}a(C);var y=this.disjunction();return this.consumeChar(")"),{type:C,value:y,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var C,y=this.idx;switch(this.popChar()){case"*":C={atLeast:0,atMost:1/0};break;case"+":C={atLeast:1,atMost:1/0};break;case"?":C={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":C={atLeast:B,atMost:B};break;case",":var v;this.isDigit()?(v=this.integerIncludingZero(),C={atLeast:B,atMost:v}):C={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(p===!0&&C===void 0)return;a(C);break}if(!(p===!0&&C===void 0))return a(C),this.peekChar(0)==="?"?(this.consumeChar("?"),C.greedy=!1):C.greedy=!0,C.type="Quantifier",C.loc=this.loc(y),C},r.prototype.atom=function(){var p,C=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(C),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`,!1),xp="\r",Pp=ar("\r",!1),G=0,yt=0,IA=[{line:1,column:1}],zi=0,Ol=[],Xe=0,pa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function pg(){return r.substring(yt,G)}function ME(){return cn(yt,G)}function Dp(R,q){throw q=q!==void 0?q:cn(yt,G),Ul([Us(R)],r.substring(yt,G),q)}function OE(R,q){throw q=q!==void 0?q:cn(yt,G),dg(R,q)}function ar(R,q){return{type:"literal",text:R,ignoreCase:q}}function Tn(R,q,Ce){return{type:"class",parts:R,inverted:q,ignoreCase:Ce}}function Kl(){return{type:"any"}}function kp(){return{type:"end"}}function Us(R){return{type:"other",description:R}}function da(R){var q=IA[R],Ce;if(q)return q;for(Ce=R-1;!IA[Ce];)Ce--;for(q=IA[Ce],q={line:q.line,column:q.column};Cezi&&(zi=G,Ol=[]),Ol.push(R))}function dg(R,q){return new ac(R,null,null,q)}function Ul(R,q,Ce){return new ac(ac.buildMessage(R,q),R,q,Ce)}function Hs(){var R;return R=Cg(),R}function Hl(){var R,q,Ce;for(R=G,q=[],Ce=yA();Ce!==t;)q.push(Ce),Ce=yA();return q!==t&&(yt=R,q=s(q)),R=q,R}function yA(){var R,q,Ce,Ke,Re;return R=G,q=ma(),q!==t?(r.charCodeAt(G)===45?(Ce=o,G++):(Ce=t,Xe===0&&Le(a)),Ce!==t?(Ke=Rr(),Ke!==t?(Re=Ca(),Re!==t?(yt=R,q=l(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function Cg(){var R,q,Ce;for(R=G,q=[],Ce=mg();Ce!==t;)q.push(Ce),Ce=mg();return q!==t&&(yt=R,q=c(q)),R=q,R}function mg(){var R,q,Ce,Ke,Re,ze,dt,Ft,Ln;if(R=G,q=Rr(),q===t&&(q=null),q!==t){if(Ce=G,r.charCodeAt(G)===35?(Ke=u,G++):(Ke=t,Xe===0&&Le(g)),Ke!==t){if(Re=[],ze=G,dt=G,Xe++,Ft=js(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Le(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t),ze!==t)for(;ze!==t;)Re.push(ze),ze=G,dt=G,Xe++,Ft=js(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Le(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t);else Re=t;Re!==t?(Ke=[Ke,Re],Ce=Ke):(G=Ce,Ce=t)}else G=Ce,Ce=t;if(Ce===t&&(Ce=null),Ce!==t){if(Ke=[],Re=Ys(),Re!==t)for(;Re!==t;)Ke.push(Re),Re=Ys();else Ke=t;Ke!==t?(yt=R,q=h(),R=q):(G=R,R=t)}else G=R,R=t}else G=R,R=t;if(R===t&&(R=G,q=ma(),q!==t?(Ce=Gl(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Le(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=Ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=ma(),q!==t?(Ce=Gs(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Le(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=Ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))){if(R=G,q=ma(),q!==t)if(Ce=Gs(),Ce!==t)if(Ke=Rr(),Ke!==t)if(Re=KE(),Re!==t){if(ze=[],dt=Ys(),dt!==t)for(;dt!==t;)ze.push(dt),dt=Ys();else ze=t;ze!==t?(yt=R,q=y(Ce,Re),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;else G=R,R=t;else G=R,R=t;if(R===t)if(R=G,q=ma(),q!==t)if(Ce=Gs(),Ce!==t){if(Ke=[],Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Le(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Ln=Gs(),Ln!==t?(yt=Re,ze=D(Ce,Ln),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t),Re!==t)for(;Re!==t;)Ke.push(Re),Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Le(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Ln=Gs(),Ln!==t?(yt=Re,ze=D(Ce,Ln),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t);else Ke=t;Ke!==t?(Re=Rr(),Re===t&&(Re=null),Re!==t?(r.charCodeAt(G)===58?(ze=p,G++):(ze=t,Xe===0&&Le(C)),ze!==t?(dt=Rr(),dt===t&&(dt=null),dt!==t?(Ft=Ca(),Ft!==t?(yt=R,q=T(Ce,Ke,Ft),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)}else G=R,R=t;else G=R,R=t}return R}function Ca(){var R,q,Ce,Ke,Re,ze,dt;if(R=G,q=G,Xe++,Ce=G,Ke=js(),Ke!==t?(Re=rt(),Re!==t?(r.charCodeAt(G)===45?(ze=o,G++):(ze=t,Xe===0&&Le(a)),ze!==t?(dt=Rr(),dt!==t?(Ke=[Ke,Re,ze,dt],Ce=Ke):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t),Xe--,Ce!==t?(G=q,q=void 0):q=t,q!==t?(Ce=Ys(),Ce!==t?(Ke=bo(),Ke!==t?(Re=Hl(),Re!==t?(ze=wA(),ze!==t?(yt=R,q=H(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=js(),q!==t?(Ce=bo(),Ce!==t?(Ke=Cg(),Ke!==t?(Re=wA(),Re!==t?(yt=R,q=H(Ke),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=Yl(),q!==t){if(Ce=[],Ke=Ys(),Ke!==t)for(;Ke!==t;)Ce.push(Ke),Ke=Ys();else Ce=t;Ce!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function ma(){var R,q,Ce;for(Xe++,R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));return q!==t?(yt=G,Ce=_(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),Xe--,R===t&&(q=t,Xe===0&&Le($)),R}function rt(){var R,q,Ce;for(R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));return q!==t?(yt=G,Ce=A(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),R}function bo(){var R;return yt=G,R=Ae(),R?R=void 0:R=t,R}function wA(){var R;return yt=G,R=ge(),R?R=void 0:R=t,R}function Gl(){var R;return R=jl(),R===t&&(R=Rp()),R}function Gs(){var R,q,Ce;if(R=jl(),R===t){if(R=G,q=[],Ce=Eg(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=Eg();else q=t;q!==t&&(yt=R,q=re()),R=q}return R}function Yl(){var R;return R=Fp(),R===t&&(R=UE(),R===t&&(R=jl(),R===t&&(R=Rp()))),R}function KE(){var R;return R=Fp(),R===t&&(R=jl(),R===t&&(R=Eg())),R}function Rp(){var R,q,Ce,Ke,Re,ze;if(Xe++,R=G,F.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(ue)),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(pe.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Le(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(pe.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Le(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;return Xe--,R===t&&(q=t,Xe===0&&Le(M)),R}function Eg(){var R,q,Ce,Ke,Re;if(R=G,r.substr(G,2)===Ne?(q=Ne,G+=2):(q=t,Xe===0&&Le(oe)),q===t&&(q=null),q!==t)if(le.test(r.charAt(G))?(Ce=r.charAt(G),G++):(Ce=t,Xe===0&&Le(Be)),Ce!==t){for(Ke=[],fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Le(ae));Re!==t;)Ke.push(Re),fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Le(ae));Ke!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;return R}function Fp(){var R,q;return R=G,r.substr(G,4)===qe?(q=qe,G+=4):(q=t,Xe===0&&Le(ne)),q!==t&&(yt=R,q=Y()),R=q,R}function UE(){var R,q;return R=G,r.substr(G,4)===he?(q=he,G+=4):(q=t,Xe===0&&Le(ie)),q!==t&&(yt=R,q=de()),R=q,R===t&&(R=G,r.substr(G,5)===_e?(q=_e,G+=5):(q=t,Xe===0&&Le(Pt)),q!==t&&(yt=R,q=It()),R=q),R}function jl(){var R,q,Ce,Ke;return Xe++,R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Le(gi)),q!==t?(r.charCodeAt(G)===34?(Ce=ii,G++):(Ce=t,Xe===0&&Le(gi)),Ce!==t?(yt=R,q=hr(),R=q):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Le(gi)),q!==t?(Ce=HE(),Ce!==t?(r.charCodeAt(G)===34?(Ke=ii,G++):(Ke=t,Xe===0&&Le(gi)),Ke!==t?(yt=R,q=fi(Ce),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)),Xe--,R===t&&(q=t,Xe===0&&Le(Mr)),R}function HE(){var R,q,Ce;if(R=G,q=[],Ce=Ig(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=Ig();else q=t;return q!==t&&(yt=R,q=ni(q)),R=q,R}function Ig(){var R,q,Ce,Ke,Re,ze;return Ks.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Le(pr)),R===t&&(R=G,r.substr(G,2)===Ii?(q=Ii,G+=2):(q=t,Xe===0&&Le(rs)),q!==t&&(yt=R,q=fa()),R=q,R===t&&(R=G,r.substr(G,2)===dA?(q=dA,G+=2):(q=t,Xe===0&&Le(cg)),q!==t&&(yt=R,q=is()),R=q,R===t&&(R=G,r.substr(G,2)===CA?(q=CA,G+=2):(q=t,Xe===0&&Le(ha)),q!==t&&(yt=R,q=wp()),R=q,R===t&&(R=G,r.substr(G,2)===mA?(q=mA,G+=2):(q=t,Xe===0&&Le(EA)),q!==t&&(yt=R,q=wr()),R=q,R===t&&(R=G,r.substr(G,2)===Tl?(q=Tl,G+=2):(q=t,Xe===0&&Le(ug)),q!==t&&(yt=R,q=yo()),R=q,R===t&&(R=G,r.substr(G,2)===gg?(q=gg,G+=2):(q=t,Xe===0&&Le(Bp)),q!==t&&(yt=R,q=bp()),R=q,R===t&&(R=G,r.substr(G,2)===vr?(q=vr,G+=2):(q=t,Xe===0&&Le(se)),q!==t&&(yt=R,q=wo()),R=q,R===t&&(R=G,r.substr(G,2)===Fn?(q=Fn,G+=2):(q=t,Xe===0&&Le(fg)),q!==t&&(yt=R,q=bt()),R=q,R===t&&(R=G,r.substr(G,2)===Ll?(q=Ll,G+=2):(q=t,Xe===0&&Le(Nn)),q!==t?(Ce=BA(),Ce!==t?(Ke=BA(),Ke!==t?(Re=BA(),Re!==t?(ze=BA(),ze!==t?(yt=R,q=ns(Ce,Ke,Re,ze),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)))))))))),R}function BA(){var R;return ss.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Le(gt)),R}function Rr(){var R,q;if(Xe++,R=[],At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(ln)),q!==t)for(;q!==t;)R.push(q),At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(ln));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Le(Bo)),R}function GE(){var R,q;if(Xe++,R=[],Lt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(hg)),q!==t)for(;q!==t;)R.push(q),Lt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(hg));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Le(S)),R}function Ys(){var R,q,Ce,Ke,Re,ze;if(R=G,q=js(),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=js(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=js(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)}else G=R,R=t;return R}function js(){var R;return r.substr(G,2)===Ml?(R=Ml,G+=2):(R=t,Xe===0&&Le(Qp)),R===t&&(r.charCodeAt(G)===10?(R=Sp,G++):(R=t,Xe===0&&Le(vp)),R===t&&(r.charCodeAt(G)===13?(R=xp,G++):(R=t,Xe===0&&Le(Pp)))),R}let yg=2,bA=0;if(pa=n(),pa!==t&&G===r.length)return pa;throw pa!==t&&G{"use strict";var hde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=hde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=hH;ev.exports.default=hH});var dH=w((A_e,pde)=>{pde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var Ac=w(Un=>{"use strict";var mH=dH(),Po=process.env;Object.defineProperty(Un,"_vendors",{value:mH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;mH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return CH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!Po[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in Po&&Po[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!Po[i]}):Un.isPR=CH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(Po.CI||Po.CONTINUOUS_INTEGRATION||Po.BUILD_NUMBER||Po.RUN_ID||Un.name);function CH(r){return typeof r=="string"?!!Po[r]:Object.keys(r).every(function(e){return Po[e]===r[e]})}});var hn={};ut(hn,{KeyRelationship:()=>lc,applyCascade:()=>od,base64RegExp:()=>BH,colorStringAlphaRegExp:()=>wH,colorStringRegExp:()=>yH,computeKey:()=>RA,getPrintable:()=>Vr,hasExactLength:()=>xH,hasForbiddenKeys:()=>Wde,hasKeyRelationship:()=>av,hasMaxLength:()=>Dde,hasMinLength:()=>Pde,hasMutuallyExclusiveKeys:()=>zde,hasRequiredKeys:()=>Jde,hasUniqueItems:()=>kde,isArray:()=>yde,isAtLeast:()=>Nde,isAtMost:()=>Tde,isBase64:()=>jde,isBoolean:()=>mde,isDate:()=>Ide,isDict:()=>Bde,isEnum:()=>Zi,isHexColor:()=>Yde,isISO8601:()=>Gde,isInExclusiveRange:()=>Mde,isInInclusiveRange:()=>Lde,isInstanceOf:()=>Qde,isInteger:()=>Ode,isJSON:()=>qde,isLiteral:()=>dde,isLowerCase:()=>Kde,isNegative:()=>Rde,isNullable:()=>xde,isNumber:()=>Ede,isObject:()=>bde,isOneOf:()=>Sde,isOptional:()=>vde,isPositive:()=>Fde,isString:()=>sd,isTuple:()=>wde,isUUID4:()=>Hde,isUnknown:()=>vH,isUpperCase:()=>Ude,iso8601RegExp:()=>ov,makeCoercionFn:()=>cc,makeSetter:()=>SH,makeTrait:()=>QH,makeValidator:()=>Qt,matchesRegExp:()=>ad,plural:()=>kI,pushError:()=>pt,simpleKeyRegExp:()=>IH,uuid4RegExp:()=>bH});function Qt({test:r}){return QH(r)()}function Vr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function RA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:IH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function cc(r,e){return t=>{let i=r[e];return r[e]=t,cc(r,e).bind(null,i)}}function SH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function pt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function dde(r){return Qt({test:(e,t)=>e!==r?pt(t,`Expected a literal (got ${Vr(r)})`):!0})}function Zi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Qt({test:(i,n)=>t.has(i)?!0:pt(n,`Expected a valid enumeration value (got ${Vr(i)})`)})}var IH,yH,wH,BH,bH,ov,QH,vH,sd,Cde,mde,Ede,Ide,yde,wde,Bde,bde,Qde,Sde,od,vde,xde,Pde,Dde,xH,kde,Rde,Fde,Nde,Tde,Lde,Mde,Ode,ad,Kde,Ude,Hde,Gde,Yde,jde,qde,Jde,Wde,zde,lc,Vde,av,ls=Tge(()=>{IH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,yH=/^#[0-9a-f]{6}$/i,wH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,BH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,bH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,QH=r=>()=>r;vH=()=>Qt({test:(r,e)=>!0});sd=()=>Qt({test:(r,e)=>typeof r!="string"?pt(e,`Expected a string (got ${Vr(r)})`):!0});Cde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),mde=()=>Qt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i=Cde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a boolean (got ${Vr(r)})`)}return!0}}),Ede=()=>Qt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return pt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a number (got ${Vr(r)})`)}return!0}}),Ide=()=>Qt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return pt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a date (got ${Vr(r)})`)}return!0}}),yde=(r,{delimiter:e}={})=>Qt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return pt(i,`Expected an array (got ${Vr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=xH(r.length);return Qt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return pt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return pt(n,`Expected a tuple (got ${Vr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;aQt({test:(t,i)=>{if(typeof t!="object"||t===null)return pt(i,`Expected an object (got ${Vr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return Qt({test:(i,n)=>{if(typeof i!="object"||i===null)return pt(n,`Expected an object (got ${Vr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=pt(Object.assign(Object.assign({},n),{p:RA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:RA(n,l),coercion:cc(i,l)}))&&a:e===null?a=pt(Object.assign(Object.assign({},n),{p:RA(n,l)}),`Extraneous property (got ${Vr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:SH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Qde=r=>Qt({test:(e,t)=>e instanceof r?!0:pt(t,`Expected an instance of ${r.name} (got ${Vr(e)})`)}),Sde=(r,{exclusive:e=!1}={})=>Qt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?pt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),od=(r,e)=>Qt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?cc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),vde=r=>Qt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),xde=r=>Qt({test:(e,t)=>e===null?!0:r(e,t)}),Pde=r=>Qt({test:(e,t)=>e.length>=r?!0:pt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Dde=r=>Qt({test:(e,t)=>e.length<=r?!0:pt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),xH=r=>Qt({test:(e,t)=>e.length!==r?pt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),kde=({map:r}={})=>Qt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sQt({test:(r,e)=>r<=0?!0:pt(e,`Expected to be negative (got ${r})`)}),Fde=()=>Qt({test:(r,e)=>r>=0?!0:pt(e,`Expected to be positive (got ${r})`)}),Nde=r=>Qt({test:(e,t)=>e>=r?!0:pt(t,`Expected to be at least ${r} (got ${e})`)}),Tde=r=>Qt({test:(e,t)=>e<=r?!0:pt(t,`Expected to be at most ${r} (got ${e})`)}),Lde=(r,e)=>Qt({test:(t,i)=>t>=r&&t<=e?!0:pt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),Mde=(r,e)=>Qt({test:(t,i)=>t>=r&&tQt({test:(e,t)=>e!==Math.round(e)?pt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:pt(t,`Expected to be a safe integer (got ${e})`)}),ad=r=>Qt({test:(e,t)=>r.test(e)?!0:pt(t,`Expected to match the pattern ${r.toString()} (got ${Vr(e)})`)}),Kde=()=>Qt({test:(r,e)=>r!==r.toLowerCase()?pt(e,`Expected to be all-lowercase (got ${r})`):!0}),Ude=()=>Qt({test:(r,e)=>r!==r.toUpperCase()?pt(e,`Expected to be all-uppercase (got ${r})`):!0}),Hde=()=>Qt({test:(r,e)=>bH.test(r)?!0:pt(e,`Expected to be a valid UUID v4 (got ${Vr(r)})`)}),Gde=()=>Qt({test:(r,e)=>ov.test(r)?!1:pt(e,`Expected to be a valid ISO 8601 date string (got ${Vr(r)})`)}),Yde=({alpha:r=!1})=>Qt({test:(e,t)=>(r?yH.test(e):wH.test(e))?!0:pt(t,`Expected to be a valid hexadecimal color string (got ${Vr(e)})`)}),jde=()=>Qt({test:(r,e)=>BH.test(r)?!0:pt(e,`Expected to be a valid base 64 string (got ${Vr(r)})`)}),qde=(r=vH())=>Qt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return pt(t,`Expected to be a valid JSON string (got ${Vr(e)})`)}return r(i,t)}}),Jde=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?pt(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},Wde=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?pt(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},zde=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?pt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(lc||(lc={}));Vde={[lc.Forbids]:{expect:!1,message:"forbids using"},[lc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=Vde[e];return Qt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?pt(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var qH=w((A$e,jH)=>{"use strict";jH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=w((l$e,pv)=>{"use strict";var gCe=qH(),JH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=gCe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=JH;pv.exports.default=JH});var gd=w((u$e,WH)=>{var fCe="2.0.0",hCe=Number.MAX_SAFE_INTEGER||9007199254740991,pCe=16;WH.exports={SEMVER_SPEC_VERSION:fCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:hCe,MAX_SAFE_COMPONENT_LENGTH:pCe}});var fd=w((g$e,zH)=>{var dCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};zH.exports=dCe});var uc=w((NA,VH)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=gd(),CCe=fd();NA=VH.exports={};var mCe=NA.re=[],et=NA.src=[],tt=NA.t={},ECe=0,St=(r,e,t)=>{let i=ECe++;CCe(i,e),tt[r]=i,et[i]=e,mCe[i]=new RegExp(e,t?"g":void 0)};St("NUMERICIDENTIFIER","0|[1-9]\\d*");St("NUMERICIDENTIFIERLOOSE","[0-9]+");St("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");St("MAINVERSION",`(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})`);St("MAINVERSIONLOOSE",`(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})`);St("PRERELEASEIDENTIFIER",`(?:${et[tt.NUMERICIDENTIFIER]}|${et[tt.NONNUMERICIDENTIFIER]})`);St("PRERELEASEIDENTIFIERLOOSE",`(?:${et[tt.NUMERICIDENTIFIERLOOSE]}|${et[tt.NONNUMERICIDENTIFIER]})`);St("PRERELEASE",`(?:-(${et[tt.PRERELEASEIDENTIFIER]}(?:\\.${et[tt.PRERELEASEIDENTIFIER]})*))`);St("PRERELEASELOOSE",`(?:-?(${et[tt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${et[tt.PRERELEASEIDENTIFIERLOOSE]})*))`);St("BUILDIDENTIFIER","[0-9A-Za-z-]+");St("BUILD",`(?:\\+(${et[tt.BUILDIDENTIFIER]}(?:\\.${et[tt.BUILDIDENTIFIER]})*))`);St("FULLPLAIN",`v?${et[tt.MAINVERSION]}${et[tt.PRERELEASE]}?${et[tt.BUILD]}?`);St("FULL",`^${et[tt.FULLPLAIN]}$`);St("LOOSEPLAIN",`[v=\\s]*${et[tt.MAINVERSIONLOOSE]}${et[tt.PRERELEASELOOSE]}?${et[tt.BUILD]}?`);St("LOOSE",`^${et[tt.LOOSEPLAIN]}$`);St("GTLT","((?:<|>)?=?)");St("XRANGEIDENTIFIERLOOSE",`${et[tt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);St("XRANGEIDENTIFIER",`${et[tt.NUMERICIDENTIFIER]}|x|X|\\*`);St("XRANGEPLAIN",`[v=\\s]*(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:${et[tt.PRERELEASE]})?${et[tt.BUILD]}?)?)?`);St("XRANGEPLAINLOOSE",`[v=\\s]*(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:${et[tt.PRERELEASELOOSE]})?${et[tt.BUILD]}?)?)?`);St("XRANGE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAIN]}$`);St("XRANGELOOSE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAINLOOSE]}$`);St("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);St("COERCERTL",et[tt.COERCE],!0);St("LONETILDE","(?:~>?)");St("TILDETRIM",`(\\s*)${et[tt.LONETILDE]}\\s+`,!0);NA.tildeTrimReplace="$1~";St("TILDE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAIN]}$`);St("TILDELOOSE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAINLOOSE]}$`);St("LONECARET","(?:\\^)");St("CARETTRIM",`(\\s*)${et[tt.LONECARET]}\\s+`,!0);NA.caretTrimReplace="$1^";St("CARET",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAIN]}$`);St("CARETLOOSE",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAINLOOSE]}$`);St("COMPARATORLOOSE",`^${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]})$|^$`);St("COMPARATOR",`^${et[tt.GTLT]}\\s*(${et[tt.FULLPLAIN]})$|^$`);St("COMPARATORTRIM",`(\\s*)${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]}|${et[tt.XRANGEPLAIN]})`,!0);NA.comparatorTrimReplace="$1$2$3";St("HYPHENRANGE",`^\\s*(${et[tt.XRANGEPLAIN]})\\s+-\\s+(${et[tt.XRANGEPLAIN]})\\s*$`);St("HYPHENRANGELOOSE",`^\\s*(${et[tt.XRANGEPLAINLOOSE]})\\s+-\\s+(${et[tt.XRANGEPLAINLOOSE]})\\s*$`);St("STAR","(<|>)?=?\\s*\\*");St("GTE0","^\\s*>=\\s*0.0.0\\s*$");St("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var hd=w((f$e,XH)=>{var ICe=["includePrerelease","loose","rtl"],yCe=r=>r?typeof r!="object"?{loose:!0}:ICe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};XH.exports=yCe});var MI=w((h$e,$H)=>{var ZH=/^[0-9]+$/,_H=(r,e)=>{let t=ZH.test(r),i=ZH.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:r_H(e,r);$H.exports={compareIdentifiers:_H,rcompareIdentifiers:wCe}});var Li=w((p$e,iG)=>{var OI=fd(),{MAX_LENGTH:eG,MAX_SAFE_INTEGER:KI}=gd(),{re:tG,t:rG}=uc(),BCe=hd(),{compareIdentifiers:pd}=MI(),Yn=class{constructor(e,t){if(t=BCe(t),e instanceof Yn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>eG)throw new TypeError(`version is longer than ${eG} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?tG[rG.LOOSE]:tG[rG.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>KI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>KI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>KI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};iG.exports=Yn});var gc=w((d$e,aG)=>{var{MAX_LENGTH:bCe}=gd(),{re:nG,t:sG}=uc(),oG=Li(),QCe=hd(),SCe=(r,e)=>{if(e=QCe(e),r instanceof oG)return r;if(typeof r!="string"||r.length>bCe||!(e.loose?nG[sG.LOOSE]:nG[sG.FULL]).test(r))return null;try{return new oG(r,e)}catch{return null}};aG.exports=SCe});var lG=w((C$e,AG)=>{var vCe=gc(),xCe=(r,e)=>{let t=vCe(r,e);return t?t.version:null};AG.exports=xCe});var uG=w((m$e,cG)=>{var PCe=gc(),DCe=(r,e)=>{let t=PCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};cG.exports=DCe});var fG=w((E$e,gG)=>{var kCe=Li(),RCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new kCe(r,t).inc(e,i).version}catch{return null}};gG.exports=RCe});var cs=w((I$e,pG)=>{var hG=Li(),FCe=(r,e,t)=>new hG(r,t).compare(new hG(e,t));pG.exports=FCe});var UI=w((y$e,dG)=>{var NCe=cs(),TCe=(r,e,t)=>NCe(r,e,t)===0;dG.exports=TCe});var EG=w((w$e,mG)=>{var CG=gc(),LCe=UI(),MCe=(r,e)=>{if(LCe(r,e))return null;{let t=CG(r),i=CG(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};mG.exports=MCe});var yG=w((B$e,IG)=>{var OCe=Li(),KCe=(r,e)=>new OCe(r,e).major;IG.exports=KCe});var BG=w((b$e,wG)=>{var UCe=Li(),HCe=(r,e)=>new UCe(r,e).minor;wG.exports=HCe});var QG=w((Q$e,bG)=>{var GCe=Li(),YCe=(r,e)=>new GCe(r,e).patch;bG.exports=YCe});var vG=w((S$e,SG)=>{var jCe=gc(),qCe=(r,e)=>{let t=jCe(r,e);return t&&t.prerelease.length?t.prerelease:null};SG.exports=qCe});var PG=w((v$e,xG)=>{var JCe=cs(),WCe=(r,e,t)=>JCe(e,r,t);xG.exports=WCe});var kG=w((x$e,DG)=>{var zCe=cs(),VCe=(r,e)=>zCe(r,e,!0);DG.exports=VCe});var HI=w((P$e,FG)=>{var RG=Li(),XCe=(r,e,t)=>{let i=new RG(r,t),n=new RG(e,t);return i.compare(n)||i.compareBuild(n)};FG.exports=XCe});var TG=w((D$e,NG)=>{var ZCe=HI(),_Ce=(r,e)=>r.sort((t,i)=>ZCe(t,i,e));NG.exports=_Ce});var MG=w((k$e,LG)=>{var $Ce=HI(),eme=(r,e)=>r.sort((t,i)=>$Ce(i,t,e));LG.exports=eme});var dd=w((R$e,OG)=>{var tme=cs(),rme=(r,e,t)=>tme(r,e,t)>0;OG.exports=rme});var GI=w((F$e,KG)=>{var ime=cs(),nme=(r,e,t)=>ime(r,e,t)<0;KG.exports=nme});var Cv=w((N$e,UG)=>{var sme=cs(),ome=(r,e,t)=>sme(r,e,t)!==0;UG.exports=ome});var YI=w((T$e,HG)=>{var ame=cs(),Ame=(r,e,t)=>ame(r,e,t)>=0;HG.exports=Ame});var jI=w((L$e,GG)=>{var lme=cs(),cme=(r,e,t)=>lme(r,e,t)<=0;GG.exports=cme});var mv=w((M$e,YG)=>{var ume=UI(),gme=Cv(),fme=dd(),hme=YI(),pme=GI(),dme=jI(),Cme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return ume(r,t,i);case"!=":return gme(r,t,i);case">":return fme(r,t,i);case">=":return hme(r,t,i);case"<":return pme(r,t,i);case"<=":return dme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};YG.exports=Cme});var qG=w((O$e,jG)=>{var mme=Li(),Eme=gc(),{re:qI,t:JI}=uc(),Ime=(r,e)=>{if(r instanceof mme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(qI[JI.COERCE]);else{let i;for(;(i=qI[JI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),qI[JI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;qI[JI.COERCERTL].lastIndex=-1}return t===null?null:Eme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};jG.exports=Ime});var WG=w((K$e,JG)=>{"use strict";JG.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var WI=w((U$e,zG)=>{"use strict";zG.exports=Ht;Ht.Node=fc;Ht.create=Ht;function Ht(r){var e=this;if(e instanceof Ht||(e=new Ht),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Ht.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Ht.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Ht.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Ht.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Ht;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Ht.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var bme=WI(),hc=Symbol("max"),va=Symbol("length"),Wg=Symbol("lengthCalculator"),md=Symbol("allowStale"),pc=Symbol("maxAge"),Sa=Symbol("dispose"),VG=Symbol("noDisposeOnSet"),di=Symbol("lruList"),Zs=Symbol("cache"),ZG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[hc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[md]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[pc]=e.maxAge||0,this[Sa]=e.dispose,this[VG]=e.noDisposeOnSet||!1,this[ZG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[hc]=e||1/0,Cd(this)}get max(){return this[hc]}set allowStale(e){this[md]=!!e}get allowStale(){return this[md]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[pc]=e,Cd(this)}get maxAge(){return this[pc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[va]=0,this[di].forEach(t=>{t.length=this[Wg](t.value,t.key),this[va]+=t.length})),Cd(this)}get lengthCalculator(){return this[Wg]}get length(){return this[va]}get itemCount(){return this[di].length}rforEach(e,t){t=t||this;for(let i=this[di].tail;i!==null;){let n=i.prev;XG(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[di].head;i!==null;){let n=i.next;XG(this,e,i,t),i=n}}keys(){return this[di].toArray().map(e=>e.key)}values(){return this[di].toArray().map(e=>e.value)}reset(){this[Sa]&&this[di]&&this[di].length&&this[di].forEach(e=>this[Sa](e.key,e.value)),this[Zs]=new Map,this[di]=new bme,this[va]=0}dump(){return this[di].map(e=>zI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[di]}set(e,t,i){if(i=i||this[pc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Zs].has(e)){if(s>this[hc])return zg(this,this[Zs].get(e)),!1;let l=this[Zs].get(e).value;return this[Sa]&&(this[VG]||this[Sa](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[va]+=s-l.length,l.length=s,this.get(e),Cd(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[hc]?(this[Sa]&&this[Sa](e,t),!1):(this[va]+=o.length,this[di].unshift(o),this[Zs].set(e,this[di].head),Cd(this),!0)}has(e){if(!this[Zs].has(e))return!1;let t=this[Zs].get(e).value;return!zI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[di].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Zs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Zs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Zs].get(e);if(i){let n=i.value;if(zI(r,n)){if(zg(r,i),!r[md])return}else t&&(r[ZG]&&(i.value.now=Date.now()),r[di].unshiftNode(i));return n.value}},zI=(r,e)=>{if(!e||!e.maxAge&&!r[pc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[pc]&&t>r[pc]},Cd=r=>{if(r[va]>r[hc])for(let e=r[di].tail;r[va]>r[hc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[Sa]&&r[Sa](t.key,t.value),r[va]-=t.length,r[Zs].delete(t.key),r[di].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},XG=(r,e,t,i)=>{let n=t.value;zI(r,n)&&(zg(r,t),r[md]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};_G.exports=yv});var us=w((G$e,iY)=>{var dc=class{constructor(e,t){if(t=Sme(t),e instanceof dc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new dc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!tY(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=eY.get(i);if(n)return n;let s=this.options.loose,o=s?Mi[bi.HYPHENRANGELOOSE]:Mi[bi.HYPHENRANGE];e=e.replace(o,Hme(this.options.includePrerelease)),Hr("hyphen replace",e),e=e.replace(Mi[bi.COMPARATORTRIM],xme),Hr("comparator trim",e,Mi[bi.COMPARATORTRIM]),e=e.replace(Mi[bi.TILDETRIM],Pme),e=e.replace(Mi[bi.CARETTRIM],Dme),e=e.split(/\s+/).join(" ");let a=s?Mi[bi.COMPARATORLOOSE]:Mi[bi.COMPARATOR],l=e.split(" ").map(f=>Rme(f,this.options)).join(" ").split(/\s+/).map(f=>Ume(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new Bv(f,this.options)),c=l.length,u=new Map;for(let f of l){if(tY(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return eY.set(i,g),g}intersects(e,t){if(!(e instanceof dc))throw new TypeError("a Range is required");return this.set.some(i=>rY(i,t)&&e.set.some(n=>rY(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new vme(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",kme=r=>r.value==="",rY=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Rme=(r,e)=>(Hr("comp",r,e),r=Tme(r,e),Hr("caret",r),r=Fme(r,e),Hr("tildes",r),r=Mme(r,e),Hr("xrange",r),r=Kme(r,e),Hr("stars",r),r),$i=r=>!r||r.toLowerCase()==="x"||r==="*",Fme=(r,e)=>r.trim().split(/\s+/).map(t=>Nme(t,e)).join(" "),Nme=(r,e)=>{let t=e.loose?Mi[bi.TILDELOOSE]:Mi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Hr("tilde",r,i,n,s,o,a);let l;return $i(n)?l="":$i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:$i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Hr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Hr("tilde return",l),l})},Tme=(r,e)=>r.trim().split(/\s+/).map(t=>Lme(t,e)).join(" "),Lme=(r,e)=>{Hr("caret",r,e);let t=e.loose?Mi[bi.CARETLOOSE]:Mi[bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Hr("caret",r,n,s,o,a,l);let c;return $i(s)?c="":$i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:$i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Hr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Hr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Hr("caret return",c),c})},Mme=(r,e)=>(Hr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Ome(t,e)).join(" ")),Ome=(r,e)=>{r=r.trim();let t=e.loose?Mi[bi.XRANGELOOSE]:Mi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Hr("xRange",r,i,n,s,o,a,l);let c=$i(s),u=c||$i(o),g=u||$i(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Hr("xRange return",i),i})},Kme=(r,e)=>(Hr("replaceStars",r,e),r.trim().replace(Mi[bi.STAR],"")),Ume=(r,e)=>(Hr("replaceGTE0",r,e),r.trim().replace(Mi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],"")),Hme=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>($i(i)?t="":$i(n)?t=`>=${i}.0.0${r?"-0":""}`:$i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,$i(c)?l="":$i(u)?l=`<${+c+1}.0.0-0`:$i(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Gme=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Ed=w((Y$e,AY)=>{var Id=Symbol("SemVer ANY"),Vg=class{static get ANY(){return Id}constructor(e,t){if(t=Yme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}Qv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Id?this.value="":this.value=this.operator+this.semver.version,Qv("comp",this)}parse(e){let t=this.options.loose?nY[sY.COMPARATORLOOSE]:nY[sY.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new oY(i[2],this.options.loose):this.semver=Id}toString(){return this.value}test(e){if(Qv("Comparator.test",e,this.options.loose),this.semver===Id||e===Id)return!0;if(typeof e=="string")try{e=new oY(e,this.options)}catch{return!1}return bv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new aY(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new aY(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=bv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=bv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};AY.exports=Vg;var Yme=hd(),{re:nY,t:sY}=uc(),bv=mv(),Qv=fd(),oY=Li(),aY=us()});var yd=w((j$e,lY)=>{var jme=us(),qme=(r,e,t)=>{try{e=new jme(e,t)}catch{return!1}return e.test(r)};lY.exports=qme});var uY=w((q$e,cY)=>{var Jme=us(),Wme=(r,e)=>new Jme(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));cY.exports=Wme});var fY=w((J$e,gY)=>{var zme=Li(),Vme=us(),Xme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new Vme(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new zme(i,t))}),i};gY.exports=Xme});var pY=w((W$e,hY)=>{var Zme=Li(),_me=us(),$me=(r,e,t)=>{let i=null,n=null,s=null;try{s=new _me(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new Zme(i,t))}),i};hY.exports=$me});var mY=w((z$e,CY)=>{var Sv=Li(),eEe=us(),dY=dd(),tEe=(r,e)=>{r=new eEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||dY(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||dY(t,s))&&(t=s)}return t&&r.test(t)?t:null};CY.exports=tEe});var IY=w((V$e,EY)=>{var rEe=us(),iEe=(r,e)=>{try{return new rEe(r,e).range||"*"}catch{return null}};EY.exports=iEe});var VI=w((X$e,bY)=>{var nEe=Li(),BY=Ed(),{ANY:sEe}=BY,oEe=us(),aEe=yd(),yY=dd(),wY=GI(),AEe=jI(),lEe=YI(),cEe=(r,e,t,i)=>{r=new nEe(r,i),e=new oEe(e,i);let n,s,o,a,l;switch(t){case">":n=yY,s=AEe,o=wY,a=">",l=">=";break;case"<":n=wY,s=lEe,o=yY,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(aEe(r,e,i))return!1;for(let c=0;c{h.semver===sEe&&(h=new BY(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};bY.exports=cEe});var SY=w((Z$e,QY)=>{var uEe=VI(),gEe=(r,e,t)=>uEe(r,e,">",t);QY.exports=gEe});var xY=w((_$e,vY)=>{var fEe=VI(),hEe=(r,e,t)=>fEe(r,e,"<",t);vY.exports=hEe});var kY=w(($$e,DY)=>{var PY=us(),pEe=(r,e,t)=>(r=new PY(r,t),e=new PY(e,t),r.intersects(e));DY.exports=pEe});var FY=w((eet,RY)=>{var dEe=yd(),CEe=cs();RY.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>CEe(u,g,t));for(let u of o)dEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var NY=us(),XI=Ed(),{ANY:vv}=XI,wd=yd(),xv=cs(),mEe=(r,e,t={})=>{if(r===e)return!0;r=new NY(r,t),e=new NY(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=EEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},EEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new XI(">=0.0.0-0")]:r=[new XI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new XI(">=0.0.0")]}let i=new Set,n,s;for(let h of r)h.operator===">"||h.operator===">="?n=TY(n,h,t):h.operator==="<"||h.operator==="<="?s=LY(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!wd(h,String(n),t)||s&&!wd(h,String(s),t))return null;for(let p of e)if(!wd(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=TY(n,h,t),a===h&&a!==n)return!1}else if(n.operator===">="&&!wd(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=LY(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!wd(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},TY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},LY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};MY.exports=mEe});var Xr=w((ret,KY)=>{var Pv=uc();KY.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:gd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:MI().compareIdentifiers,rcompareIdentifiers:MI().rcompareIdentifiers,parse:gc(),valid:lG(),clean:uG(),inc:fG(),diff:EG(),major:yG(),minor:BG(),patch:QG(),prerelease:vG(),compare:cs(),rcompare:PG(),compareLoose:kG(),compareBuild:HI(),sort:TG(),rsort:MG(),gt:dd(),lt:GI(),eq:UI(),neq:Cv(),gte:YI(),lte:jI(),cmp:mv(),coerce:qG(),Comparator:Ed(),Range:us(),satisfies:yd(),toComparators:uY(),maxSatisfying:fY(),minSatisfying:pY(),minVersion:mY(),validRange:IY(),outside:VI(),gtr:SY(),ltr:xY(),intersects:kY(),simplifyRange:FY(),subset:OY()}});var Dv=w(ZI=>{"use strict";Object.defineProperty(ZI,"__esModule",{value:!0});ZI.VERSION=void 0;ZI.VERSION="9.1.0"});var Gt=w((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof _I=="object"&&_I.exports?_I.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:UY,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var C=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:C,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],C=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(C)}},r.prototype.alternative=function(){for(var p=[],C=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(C)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var C;switch(this.popChar()){case"=":C="Lookahead";break;case"!":C="NegativeLookahead";break}a(C);var y=this.disjunction();return this.consumeChar(")"),{type:C,value:y,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var C,y=this.idx;switch(this.popChar()){case"*":C={atLeast:0,atMost:1/0};break;case"+":C={atLeast:1,atMost:1/0};break;case"?":C={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":C={atLeast:B,atMost:B};break;case",":var v;this.isDigit()?(v=this.integerIncludingZero(),C={atLeast:B,atMost:v}):C={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(p===!0&&C===void 0)return;a(C);break}if(!(p===!0&&C===void 0))return a(C),this.peekChar(0)==="?"?(this.consumeChar("?"),C.greedy=!1):C.greedy=!0,C.type="Quantifier",C.loc=this.loc(y),C},r.prototype.atom=function(){var p,C=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(C),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` `),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},r.prototype.characterClassEscape=function(){var p,C=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,C=!0;break;case"s":p=f;break;case"S":p=f,C=!0;break;case"w":p=g;break;case"W":p=g,C=!0;break}return a(p),{type:"Set",value:p,complement:C}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` `);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var C=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:C}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` `:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},r.prototype.characterClass=function(){var p=[],C=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),C=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),D=v.type==="Character";if(D){if(v.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,C){p.length!==void 0?p.forEach(function(y){C.push(y)}):C.push(p)}function o(p,C){if(p[C]===!0)throw"duplicate flag "+C;p[C]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` -`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var C in p){var y=p[C];p.hasOwnProperty(C)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var ty=w(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var mEe=$I(),ey={},EEe=new mEe.RegExpParser;function IEe(r){var e=r.toString();if(ey.hasOwnProperty(e))return ey[e];var t=EEe.pattern(e);return ey[e]=t,t}Xg.getRegExpAst=IEe;function yEe(){ey={}}Xg.clearRegExpParserCache=yEe});var YY=w(Cn=>{"use strict";var wEe=Cn&&Cn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cn,"__esModule",{value:!0});Cn.canMatchCharCode=Cn.firstCharOptimizedIndices=Cn.getOptimizedStartCodesIndices=Cn.failedOptimizationPrefixMsg=void 0;var UY=$I(),gs=Gt(),HY=ty(),xa=Rv(),GY="Complement Sets are not supported for first char optimization";Cn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: -`;function BEe(r,e){e===void 0&&(e=!1);try{var t=(0,HY.getRegExpAst)(r),i=iy(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===GY)e&&(0,gs.PRINT_WARNING)(""+Cn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var C in p){var y=p[C];p.hasOwnProperty(C)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var ty=w(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var IEe=$I(),ey={},yEe=new IEe.RegExpParser;function wEe(r){var e=r.toString();if(ey.hasOwnProperty(e))return ey[e];var t=yEe.pattern(e);return ey[e]=t,t}Xg.getRegExpAst=wEe;function BEe(){ey={}}Xg.clearRegExpParserCache=BEe});var qY=w(Cn=>{"use strict";var bEe=Cn&&Cn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cn,"__esModule",{value:!0});Cn.canMatchCharCode=Cn.firstCharOptimizedIndices=Cn.getOptimizedStartCodesIndices=Cn.failedOptimizationPrefixMsg=void 0;var GY=$I(),gs=Gt(),YY=ty(),xa=Rv(),jY="Complement Sets are not supported for first char optimization";Cn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function QEe(r,e){e===void 0&&(e=!1);try{var t=(0,YY.getRegExpAst)(r),i=iy(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===jY)e&&(0,gs.PRINT_WARNING)(""+Cn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > `)+` Complement Sets cannot be automatically optimized. This will disable the lexer's first char optimizations. See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` This will disable the lexer's first char optimizations. See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,gs.PRINT_ERROR)(Cn.failedOptimizationPrefixMsg+` `+(" Failed parsing: < "+r.toString()+` > -`)+(" Using the regexp-to-ast library version: "+UY.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Cn.getOptimizedStartCodesIndices=BEe;function iy(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=xa.minOptimizationVal)for(var f=u.from>=xa.minOptimizationVal?u.from:xa.minOptimizationVal,h=u.to,p=(0,xa.charCodeToOptimizedIndex)(f),C=(0,xa.charCodeToOptimizedIndex)(h),y=p;y<=C;y++)e[y]=y}}});break;case"Group":iy(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&kv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,gs.values)(e)}Cn.firstCharOptimizedIndices=iy;function ry(r,e,t){var i=(0,xa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&bEe(r,e)}function bEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,xa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,xa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function KY(r,e){return(0,gs.find)(r.value,function(t){if(typeof t=="number")return(0,gs.contains)(e,t);var i=t;return(0,gs.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function kv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,gs.isArray)(r.value)?(0,gs.every)(r.value,kv):kv(r.value):!1}var QEe=function(r){wEe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,gs.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?KY(t,this.targetCharCodes)===void 0&&(this.found=!0):KY(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(UY.BaseRegExpVisitor);function SEe(r,e){if(e instanceof RegExp){var t=(0,HY.getRegExpAst)(e),i=new QEe(r);return i.visit(t),i.found}else return(0,gs.find)(e,function(n){return(0,gs.contains)(r,n.charCodeAt(0))})!==void 0}Cn.canMatchCharCode=SEe});var Rv=w(Ve=>{"use strict";var jY=Ve&&Ve.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ve,"__esModule",{value:!0});Ve.charCodeToOptimizedIndex=Ve.minOptimizationVal=Ve.buildLineBreakIssueMessage=Ve.LineTerminatorOptimizedTester=Ve.isShortPattern=Ve.isCustomPattern=Ve.cloneEmptyGroups=Ve.performWarningRuntimeChecks=Ve.performRuntimeChecks=Ve.addStickyFlag=Ve.addStartOfInput=Ve.findUnreachablePatterns=Ve.findModesThatDoNotExist=Ve.findInvalidGroupType=Ve.findDuplicatePatterns=Ve.findUnsupportedFlags=Ve.findStartOfInputAnchor=Ve.findEmptyMatchRegExps=Ve.findEndOfInputAnchor=Ve.findInvalidPatterns=Ve.findMissingPatterns=Ve.validatePatterns=Ve.analyzeTokenTypes=Ve.enableSticky=Ve.disableSticky=Ve.SUPPORT_STICKY=Ve.MODES=Ve.DEFAULT_MODE=void 0;var qY=$I(),ir=Bd(),xe=Gt(),Zg=YY(),JY=ty(),Do="PATTERN";Ve.DEFAULT_MODE="defaultMode";Ve.MODES="modes";Ve.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function vEe(){Ve.SUPPORT_STICKY=!1}Ve.disableSticky=vEe;function xEe(){Ve.SUPPORT_STICKY=!0}Ve.enableSticky=xEe;function PEe(r,e){e=(0,xe.defaults)(e,{useSticky:Ve.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(v,D){return D()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){KEe()});var i;t("Reject Lexer.NA",function(){i=(0,xe.reject)(r,function(v){return v[Do]===ir.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,xe.map)(i,function(v){var D=v[Do];if((0,xe.isRegExp)(D)){var T=D.source;return T.length===1&&T!=="^"&&T!=="$"&&T!=="."&&!D.ignoreCase?T:T.length===2&&T[0]==="\\"&&!(0,xe.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],T[1])?T[1]:e.useSticky?Tv(D):Nv(D)}else{if((0,xe.isFunction)(D))return n=!0,{exec:D};if((0,xe.has)(D,"exec"))return n=!0,D;if(typeof D=="string"){if(D.length===1)return D;var H=D.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(H);return e.useSticky?Tv(j):Nv(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,xe.map)(i,function(v){return v.tokenTypeIdx}),a=(0,xe.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,xe.isString)(D))return D;if((0,xe.isUndefined)(D))return!1;throw Error("non exhaustive match")}}),l=(0,xe.map)(i,function(v){var D=v.LONGER_ALT;if(D){var T=(0,xe.isArray)(D)?(0,xe.map)(D,function(H){return(0,xe.indexOf)(i,H)}):[(0,xe.indexOf)(i,D)];return T}}),c=(0,xe.map)(i,function(v){return v.PUSH_MODE}),u=(0,xe.map)(i,function(v){return(0,xe.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=oj(e.lineTerminatorCharacters);g=(0,xe.map)(i,function(D){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,xe.map)(i,function(D){if((0,xe.has)(D,"LINE_BREAKS"))return D.LINE_BREAKS;if(nj(D,v)===!1)return(0,Zg.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,C;t("Misc Mapping #2",function(){f=(0,xe.map)(i,Mv),h=(0,xe.map)(s,ij),p=(0,xe.reduce)(i,function(v,D){var T=D.GROUP;return(0,xe.isString)(T)&&T!==ir.Lexer.SKIPPED&&(v[T]=[]),v},{}),C=(0,xe.map)(s,function(v,D){return{pattern:s[D],longerAlt:l[D],canLineTerminator:g[D],isCustom:f[D],short:h[D],group:a[D],push:c[D],pop:u[D],tokenTypeIdx:o[D],tokenType:i[D]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,xe.reduce)(i,function(v,D,T){if(typeof D.PATTERN=="string"){var H=D.PATTERN.charCodeAt(0),j=Lv(H);Fv(v,j,C[T])}else if((0,xe.isArray)(D.START_CHARS_HINT)){var $;(0,xe.forEach)(D.START_CHARS_HINT,function(W){var _=typeof W=="string"?W.charCodeAt(0):W,A=Lv(_);$!==A&&($=A,Fv(v,A,C[T]))})}else if((0,xe.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+D.PATTERN.toString()+` > pattern. +`)+(" Using the regexp-to-ast library version: "+GY.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Cn.getOptimizedStartCodesIndices=QEe;function iy(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=xa.minOptimizationVal)for(var f=u.from>=xa.minOptimizationVal?u.from:xa.minOptimizationVal,h=u.to,p=(0,xa.charCodeToOptimizedIndex)(f),C=(0,xa.charCodeToOptimizedIndex)(h),y=p;y<=C;y++)e[y]=y}}});break;case"Group":iy(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&kv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,gs.values)(e)}Cn.firstCharOptimizedIndices=iy;function ry(r,e,t){var i=(0,xa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&SEe(r,e)}function SEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,xa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,xa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function HY(r,e){return(0,gs.find)(r.value,function(t){if(typeof t=="number")return(0,gs.contains)(e,t);var i=t;return(0,gs.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function kv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,gs.isArray)(r.value)?(0,gs.every)(r.value,kv):kv(r.value):!1}var vEe=function(r){bEe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,gs.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?HY(t,this.targetCharCodes)===void 0&&(this.found=!0):HY(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(GY.BaseRegExpVisitor);function xEe(r,e){if(e instanceof RegExp){var t=(0,YY.getRegExpAst)(e),i=new vEe(r);return i.visit(t),i.found}else return(0,gs.find)(e,function(n){return(0,gs.contains)(r,n.charCodeAt(0))})!==void 0}Cn.canMatchCharCode=xEe});var Rv=w(Ve=>{"use strict";var JY=Ve&&Ve.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ve,"__esModule",{value:!0});Ve.charCodeToOptimizedIndex=Ve.minOptimizationVal=Ve.buildLineBreakIssueMessage=Ve.LineTerminatorOptimizedTester=Ve.isShortPattern=Ve.isCustomPattern=Ve.cloneEmptyGroups=Ve.performWarningRuntimeChecks=Ve.performRuntimeChecks=Ve.addStickyFlag=Ve.addStartOfInput=Ve.findUnreachablePatterns=Ve.findModesThatDoNotExist=Ve.findInvalidGroupType=Ve.findDuplicatePatterns=Ve.findUnsupportedFlags=Ve.findStartOfInputAnchor=Ve.findEmptyMatchRegExps=Ve.findEndOfInputAnchor=Ve.findInvalidPatterns=Ve.findMissingPatterns=Ve.validatePatterns=Ve.analyzeTokenTypes=Ve.enableSticky=Ve.disableSticky=Ve.SUPPORT_STICKY=Ve.MODES=Ve.DEFAULT_MODE=void 0;var WY=$I(),ir=Bd(),xe=Gt(),Zg=qY(),zY=ty(),ko="PATTERN";Ve.DEFAULT_MODE="defaultMode";Ve.MODES="modes";Ve.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function PEe(){Ve.SUPPORT_STICKY=!1}Ve.disableSticky=PEe;function DEe(){Ve.SUPPORT_STICKY=!0}Ve.enableSticky=DEe;function kEe(r,e){e=(0,xe.defaults)(e,{useSticky:Ve.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(v,D){return D()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){HEe()});var i;t("Reject Lexer.NA",function(){i=(0,xe.reject)(r,function(v){return v[ko]===ir.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,xe.map)(i,function(v){var D=v[ko];if((0,xe.isRegExp)(D)){var T=D.source;return T.length===1&&T!=="^"&&T!=="$"&&T!=="."&&!D.ignoreCase?T:T.length===2&&T[0]==="\\"&&!(0,xe.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],T[1])?T[1]:e.useSticky?Tv(D):Nv(D)}else{if((0,xe.isFunction)(D))return n=!0,{exec:D};if((0,xe.has)(D,"exec"))return n=!0,D;if(typeof D=="string"){if(D.length===1)return D;var H=D.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(H);return e.useSticky?Tv(j):Nv(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,xe.map)(i,function(v){return v.tokenTypeIdx}),a=(0,xe.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,xe.isString)(D))return D;if((0,xe.isUndefined)(D))return!1;throw Error("non exhaustive match")}}),l=(0,xe.map)(i,function(v){var D=v.LONGER_ALT;if(D){var T=(0,xe.isArray)(D)?(0,xe.map)(D,function(H){return(0,xe.indexOf)(i,H)}):[(0,xe.indexOf)(i,D)];return T}}),c=(0,xe.map)(i,function(v){return v.PUSH_MODE}),u=(0,xe.map)(i,function(v){return(0,xe.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=Aj(e.lineTerminatorCharacters);g=(0,xe.map)(i,function(D){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,xe.map)(i,function(D){if((0,xe.has)(D,"LINE_BREAKS"))return D.LINE_BREAKS;if(oj(D,v)===!1)return(0,Zg.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,C;t("Misc Mapping #2",function(){f=(0,xe.map)(i,Mv),h=(0,xe.map)(s,sj),p=(0,xe.reduce)(i,function(v,D){var T=D.GROUP;return(0,xe.isString)(T)&&T!==ir.Lexer.SKIPPED&&(v[T]=[]),v},{}),C=(0,xe.map)(s,function(v,D){return{pattern:s[D],longerAlt:l[D],canLineTerminator:g[D],isCustom:f[D],short:h[D],group:a[D],push:c[D],pop:u[D],tokenTypeIdx:o[D],tokenType:i[D]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,xe.reduce)(i,function(v,D,T){if(typeof D.PATTERN=="string"){var H=D.PATTERN.charCodeAt(0),j=Lv(H);Fv(v,j,C[T])}else if((0,xe.isArray)(D.START_CHARS_HINT)){var $;(0,xe.forEach)(D.START_CHARS_HINT,function(W){var _=typeof W=="string"?W.charCodeAt(0):W,A=Lv(_);$!==A&&($=A,Fv(v,A,C[T]))})}else if((0,xe.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+D.PATTERN.toString()+` > pattern. `)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. This will disable the lexer's first char optimizations. For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var V=(0,Zg.getOptimizedStartCodesIndices)(D.PATTERN,e.ensureOptimizations);(0,xe.isEmpty)(V)&&(y=!1),(0,xe.forEach)(V,function(W){Fv(v,W,C[T])})}else e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+D.name+`> is using a custom token pattern without providing parameter. `)+` This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return v},[])}),t("ArrayPacking",function(){B=(0,xe.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:C,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}Ve.analyzeTokenTypes=PEe;function DEe(r,e){var t=[],i=WY(r);t=t.concat(i.errors);var n=zY(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(kEe(s)),t=t.concat(ej(s)),t=t.concat(tj(s,e)),t=t.concat(rj(s)),t}Ve.validatePatterns=DEe;function kEe(r){var e=[],t=(0,xe.filter)(r,function(i){return(0,xe.isRegExp)(i[Do])});return e=e.concat(VY(t)),e=e.concat(ZY(t)),e=e.concat(_Y(t)),e=e.concat($Y(t)),e=e.concat(XY(t)),e}function WY(r){var e=(0,xe.filter)(r,function(n){return!(0,xe.has)(n,Do)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findMissingPatterns=WY;function zY(r){var e=(0,xe.filter)(r,function(n){var s=n[Do];return!(0,xe.isRegExp)(s)&&!(0,xe.isFunction)(s)&&!(0,xe.has)(s,"exec")&&!(0,xe.isString)(s)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ir.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findInvalidPatterns=zY;var REe=/[^\\][\$]/;function VY(r){var e=function(n){jY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(qY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[Do];try{var o=(0,JY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return REe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return v},[])}),t("ArrayPacking",function(){B=(0,xe.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:C,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}Ve.analyzeTokenTypes=kEe;function REe(r,e){var t=[],i=VY(r);t=t.concat(i.errors);var n=XY(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(FEe(s)),t=t.concat(rj(s)),t=t.concat(ij(s,e)),t=t.concat(nj(s)),t}Ve.validatePatterns=REe;function FEe(r){var e=[],t=(0,xe.filter)(r,function(i){return(0,xe.isRegExp)(i[ko])});return e=e.concat(ZY(t)),e=e.concat($Y(t)),e=e.concat(ej(t)),e=e.concat(tj(t)),e=e.concat(_Y(t)),e}function VY(r){var e=(0,xe.filter)(r,function(n){return!(0,xe.has)(n,ko)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findMissingPatterns=VY;function XY(r){var e=(0,xe.filter)(r,function(n){var s=n[ko];return!(0,xe.isRegExp)(s)&&!(0,xe.isFunction)(s)&&!(0,xe.has)(s,"exec")&&!(0,xe.isString)(s)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ir.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findInvalidPatterns=XY;var NEe=/[^\\][\$]/;function ZY(r){var e=function(n){JY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(WY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[ko];try{var o=(0,zY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return NEe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findEndOfInputAnchor=VY;function XY(r){var e=(0,xe.filter)(r,function(i){var n=i[Do];return n.test("")}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:ir.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Ve.findEmptyMatchRegExps=XY;var FEe=/[^\\[][\^]|^\^/;function ZY(r){var e=function(n){jY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(qY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[Do];try{var o=(0,JY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return FEe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findEndOfInputAnchor=ZY;function _Y(r){var e=(0,xe.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:ir.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Ve.findEmptyMatchRegExps=_Y;var TEe=/[^\\[][\^]|^\^/;function $Y(r){var e=function(n){JY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(WY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[ko];try{var o=(0,zY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return TEe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findStartOfInputAnchor=ZY;function _Y(r){var e=(0,xe.filter)(r,function(i){var n=i[Do];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ir.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Ve.findUnsupportedFlags=_Y;function $Y(r){var e=[],t=(0,xe.map)(r,function(s){return(0,xe.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,xe.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,xe.compact)(t);var i=(0,xe.filter)(t,function(s){return s.length>1}),n=(0,xe.map)(i,function(s){var o=(0,xe.map)(s,function(l){return l.name}),a=(0,xe.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:ir.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Ve.findDuplicatePatterns=$Y;function ej(r){var e=(0,xe.filter)(r,function(i){if(!(0,xe.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,xe.isString)(n)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ir.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Ve.findInvalidGroupType=ej;function tj(r,e){var t=(0,xe.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,xe.contains)(e,n.PUSH_MODE)}),i=(0,xe.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:ir.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Ve.findModesThatDoNotExist=tj;function rj(r){var e=[],t=(0,xe.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,xe.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,xe.isRegExp)(o)&&TEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,xe.forEach)(r,function(i,n){(0,xe.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ir.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Ve.findUnsupportedFlags=ej;function tj(r){var e=[],t=(0,xe.map)(r,function(s){return(0,xe.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,xe.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,xe.compact)(t);var i=(0,xe.filter)(t,function(s){return s.length>1}),n=(0,xe.map)(i,function(s){var o=(0,xe.map)(s,function(l){return l.name}),a=(0,xe.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:ir.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Ve.findDuplicatePatterns=tj;function rj(r){var e=(0,xe.filter)(r,function(i){if(!(0,xe.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,xe.isString)(n)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ir.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Ve.findInvalidGroupType=rj;function ij(r,e){var t=(0,xe.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,xe.contains)(e,n.PUSH_MODE)}),i=(0,xe.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:ir.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Ve.findModesThatDoNotExist=ij;function nj(r){var e=[],t=(0,xe.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,xe.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,xe.isRegExp)(o)&&MEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,xe.forEach)(r,function(i,n){(0,xe.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:ir.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Ve.findUnreachablePatterns=rj;function NEe(r,e){if((0,xe.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,xe.isFunction)(e))return e(r,0,[],{});if((0,xe.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function TEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,xe.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Ve.addStartOfInput=Nv;function Tv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Ve.addStickyFlag=Tv;function LEe(r,e,t){var i=[];return(0,xe.has)(r,Ve.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.DEFAULT_MODE+`> property in its definition +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:ir.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Ve.findUnreachablePatterns=nj;function LEe(r,e){if((0,xe.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,xe.isFunction)(e))return e(r,0,[],{});if((0,xe.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function MEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,xe.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Ve.addStartOfInput=Nv;function Tv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Ve.addStickyFlag=Tv;function OEe(r,e,t){var i=[];return(0,xe.has)(r,Ve.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.DEFAULT_MODE+`> property in its definition `,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,xe.has)(r,Ve.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.MODES+`> property in its definition `,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,xe.has)(r,Ve.MODES)&&(0,xe.has)(r,Ve.DEFAULT_MODE)&&!(0,xe.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Ve.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist `,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,xe.has)(r,Ve.MODES)&&(0,xe.forEach)(r.modes,function(n,s){(0,xe.forEach)(n,function(o,a){(0,xe.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> -`),type:ir.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Ve.performRuntimeChecks=LEe;function MEe(r,e,t){var i=[],n=!1,s=(0,xe.compact)((0,xe.flatten)((0,xe.mapValues)(r.modes,function(l){return l}))),o=(0,xe.reject)(s,function(l){return l[Do]===ir.Lexer.NA}),a=oj(t);return e&&(0,xe.forEach)(o,function(l){var c=nj(l,a);if(c!==!1){var u=sj(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,xe.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. +`),type:ir.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Ve.performRuntimeChecks=OEe;function KEe(r,e,t){var i=[],n=!1,s=(0,xe.compact)((0,xe.flatten)((0,xe.mapValues)(r.modes,function(l){return l}))),o=(0,xe.reject)(s,function(l){return l[ko]===ir.Lexer.NA}),a=Aj(t);return e&&(0,xe.forEach)(o,function(l){var c=oj(l,a);if(c!==!1){var u=aj(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,xe.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. This Lexer has been defined to track line and column information, But none of the Token Types can be identified as matching a line terminator. See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS - for details.`,type:ir.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Ve.performWarningRuntimeChecks=MEe;function OEe(r){var e={},t=(0,xe.keys)(r);return(0,xe.forEach)(t,function(i){var n=r[i];if((0,xe.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Ve.cloneEmptyGroups=OEe;function Mv(r){var e=r.PATTERN;if((0,xe.isRegExp)(e))return!1;if((0,xe.isFunction)(e))return!0;if((0,xe.has)(e,"exec"))return!0;if((0,xe.isString)(e))return!1;throw Error("non exhaustive match")}Ve.isCustomPattern=Mv;function ij(r){return(0,xe.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Ve.isShortPattern=ij;Ve.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type `)+(" Root cause: "+e.errMsg+`. `)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. `+(" The problem is in the <"+r.name+`> Token Type -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Ve.buildLineBreakIssueMessage=sj;function oj(r){var e=(0,xe.map)(r,function(t){return(0,xe.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Ve.minOptimizationVal=256;var ny=[];function Lv(r){return r255?255+~~(r/255):r}}});var _g=w(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.isTokenType=Nt.hasExtendingTokensTypesMapProperty=Nt.hasExtendingTokensTypesProperty=Nt.hasCategoriesProperty=Nt.hasShortKeyProperty=Nt.singleAssignCategoriesToksMap=Nt.assignCategoriesMapProp=Nt.assignCategoriesTokensProp=Nt.assignTokenDefaultProps=Nt.expandCategories=Nt.augmentTokenTypes=Nt.tokenIdxToClass=Nt.tokenShortNameIdx=Nt.tokenStructuredMatcherNoCategories=Nt.tokenStructuredMatcher=void 0;var Zr=Gt();function UEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=UEe;function HEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=HEe;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function GEe(r){var e=aj(r);Aj(e),cj(e),lj(e),(0,Zr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=GEe;function aj(r){for(var e=(0,Zr.cloneArr)(r),t=r,i=!0;i;){t=(0,Zr.compact)((0,Zr.flatten)((0,Zr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Zr.difference)(t,e);e=e.concat(n),(0,Zr.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=aj;function Aj(r){(0,Zr.forEach)(r,function(e){uj(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),Ov(e)&&!(0,Zr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Ov(e)||(e.CATEGORIES=[]),gj(e)||(e.categoryMatches=[]),fj(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=Aj;function lj(r){(0,Zr.forEach)(r,function(e){e.categoryMatches=[],(0,Zr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=lj;function cj(r){(0,Zr.forEach)(r,function(e){Kv([],e)})}Nt.assignCategoriesMapProp=cj;function Kv(r,e){(0,Zr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Zr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Zr.contains)(i,t)||Kv(i,t)})}Nt.singleAssignCategoriesToksMap=Kv;function uj(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.hasShortKeyProperty=uj;function Ov(r){return(0,Zr.has)(r,"CATEGORIES")}Nt.hasCategoriesProperty=Ov;function gj(r){return(0,Zr.has)(r,"categoryMatches")}Nt.hasExtendingTokensTypesProperty=gj;function fj(r){return(0,Zr.has)(r,"categoryMatchesMap")}Nt.hasExtendingTokensTypesMapProperty=fj;function YEe(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.isTokenType=YEe});var Uv=w(sy=>{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.defaultLexerErrorProvider=void 0;sy.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Bd=w(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});Cc.Lexer=Cc.LexerDefinitionErrorType=void 0;var _s=Rv(),nr=Gt(),jEe=_g(),qEe=Uv(),JEe=ty(),WEe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(WEe=Cc.LexerDefinitionErrorType||(Cc.LexerDefinitionErrorType={}));var bd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` -`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:qEe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(bd);var zEe=function(){function r(e,t){var i=this;if(t===void 0&&(t=bd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Ve.buildLineBreakIssueMessage=aj;function Aj(r){var e=(0,xe.map)(r,function(t){return(0,xe.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Ve.minOptimizationVal=256;var ny=[];function Lv(r){return r255?255+~~(r/255):r}}});var _g=w(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.isTokenType=Nt.hasExtendingTokensTypesMapProperty=Nt.hasExtendingTokensTypesProperty=Nt.hasCategoriesProperty=Nt.hasShortKeyProperty=Nt.singleAssignCategoriesToksMap=Nt.assignCategoriesMapProp=Nt.assignCategoriesTokensProp=Nt.assignTokenDefaultProps=Nt.expandCategories=Nt.augmentTokenTypes=Nt.tokenIdxToClass=Nt.tokenShortNameIdx=Nt.tokenStructuredMatcherNoCategories=Nt.tokenStructuredMatcher=void 0;var Zr=Gt();function GEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=GEe;function YEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=YEe;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function jEe(r){var e=lj(r);cj(e),gj(e),uj(e),(0,Zr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=jEe;function lj(r){for(var e=(0,Zr.cloneArr)(r),t=r,i=!0;i;){t=(0,Zr.compact)((0,Zr.flatten)((0,Zr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Zr.difference)(t,e);e=e.concat(n),(0,Zr.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=lj;function cj(r){(0,Zr.forEach)(r,function(e){fj(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),Ov(e)&&!(0,Zr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Ov(e)||(e.CATEGORIES=[]),hj(e)||(e.categoryMatches=[]),pj(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=cj;function uj(r){(0,Zr.forEach)(r,function(e){e.categoryMatches=[],(0,Zr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=uj;function gj(r){(0,Zr.forEach)(r,function(e){Kv([],e)})}Nt.assignCategoriesMapProp=gj;function Kv(r,e){(0,Zr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Zr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Zr.contains)(i,t)||Kv(i,t)})}Nt.singleAssignCategoriesToksMap=Kv;function fj(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.hasShortKeyProperty=fj;function Ov(r){return(0,Zr.has)(r,"CATEGORIES")}Nt.hasCategoriesProperty=Ov;function hj(r){return(0,Zr.has)(r,"categoryMatches")}Nt.hasExtendingTokensTypesProperty=hj;function pj(r){return(0,Zr.has)(r,"categoryMatchesMap")}Nt.hasExtendingTokensTypesMapProperty=pj;function qEe(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.isTokenType=qEe});var Uv=w(sy=>{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.defaultLexerErrorProvider=void 0;sy.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Bd=w(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});Cc.Lexer=Cc.LexerDefinitionErrorType=void 0;var _s=Rv(),nr=Gt(),JEe=_g(),WEe=Uv(),zEe=ty(),VEe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(VEe=Cc.LexerDefinitionErrorType||(Cc.LexerDefinitionErrorType={}));var bd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:WEe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(bd);var XEe=function(){function r(e,t){var i=this;if(t===void 0&&(t=bd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. a boolean 2nd argument is no longer supported`);this.config=(0,nr.merge)(bd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===bd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=_s.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===bd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,nr.isArray)(e)?(s={modes:{}},s.modes[_s.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[_s.DEFAULT_MODE]=_s.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,_s.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,_s.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,nr.forEach)(s.modes,function(u,g){s.modes[g]=(0,nr.reject)(u,function(f){return(0,nr.isUndefined)(f)})});var a=(0,nr.keys)(s.modes);if((0,nr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,_s.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,jEe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,_s.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,nr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,nr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,nr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,nr.isArray)(e)?(s={modes:{}},s.modes[_s.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[_s.DEFAULT_MODE]=_s.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,_s.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,_s.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,nr.forEach)(s.modes,function(u,g){s.modes[g]=(0,nr.reject)(u,function(f){return(0,nr.isUndefined)(f)})});var a=(0,nr.keys)(s.modes);if((0,nr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,_s.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,JEe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,_s.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,nr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,nr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,nr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- `);throw new Error(`Errors detected in definition of Lexer: `+c)}(0,nr.forEach)(i.lexerDefinitionWarning,function(u){(0,nr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(_s.SUPPORT_STICKY?(i.chopInput=nr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=nr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=nr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=nr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=nr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,nr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,nr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. - Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,JEe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,nr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,nr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,nr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- + Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,zEe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,nr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,nr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,nr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- `);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,C,y,B,v,D,T=e,H=T.length,j=0,$=0,V=this.hasCustom?0:Math.floor(e.length/10),W=new Array(V),_=[],A=this.trackStartLines?1:void 0,Ae=this.trackStartLines?1:void 0,ge=(0,_s.cloneEmptyGroups)(this.emptyGroups),re=this.trackStartLines,M=this.config.lineTerminatorsPattern,F=0,ue=[],pe=[],ke=[],Fe=[];Object.freeze(Fe);var Ne=void 0;function oe(){return ue}function le(pr){var Ii=(0,_s.charCodeToOptimizedIndex)(pr),rs=pe[Ii];return rs===void 0?Fe:rs}var Be=function(pr){if(ke.length===1&&pr.tokenType.PUSH_MODE===void 0){var Ii=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(pr);_.push({offset:pr.startOffset,line:pr.startLine!==void 0?pr.startLine:void 0,column:pr.startColumn!==void 0?pr.startColumn:void 0,length:pr.image.length,message:Ii})}else{ke.pop();var rs=(0,nr.last)(ke);ue=i.patternIdxToConfig[rs],pe=i.charCodeToPatternIdxToConfig[rs],F=ue.length;var fa=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;pe&&fa?Ne=le:Ne=oe}};function fe(pr){ke.push(pr),pe=this.charCodeToPatternIdxToConfig[pr],ue=this.patternIdxToConfig[pr],F=ue.length,F=ue.length;var Ii=this.canModeBeOptimized[pr]&&this.config.safeMode===!1;pe&&Ii?Ne=le:Ne=oe}fe.call(this,t);for(var ae;jc.length){c=a,u=g,ae=_e;break}}}break}}if(c!==null){if(f=c.length,h=ae.group,h!==void 0&&(p=ae.tokenTypeIdx,C=this.createTokenInstance(c,j,p,ae.tokenType,A,Ae,f),this.handlePayload(C,u),h===!1?$=this.addToken(W,$,C):ge[h].push(C)),e=this.chopInput(e,f),j=j+f,Ae=this.computeNewColumn(Ae,f),re===!0&&ae.canLineTerminator===!0){var It=0,Mr=void 0,ii=void 0;M.lastIndex=0;do Mr=M.test(c),Mr===!0&&(ii=M.lastIndex-1,It++);while(Mr===!0);It!==0&&(A=A+It,Ae=f-ii,this.updateTokenEndLineColumnLocation(C,h,ii,It,A,Ae,f))}this.handleModes(ae,Be,fe,C)}else{for(var gi=j,hr=A,fi=Ae,ni=!1;!ni&&j <"+e+">");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Cc.Lexer=zEe});var LA=w(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.tokenMatcher=Qi.createTokenInstance=Qi.EOF=Qi.createToken=Qi.hasTokenLabel=Qi.tokenName=Qi.tokenLabel=void 0;var $s=Gt(),VEe=Bd(),Hv=_g();function XEe(r){return wj(r)?r.LABEL:r.name}Qi.tokenLabel=XEe;function ZEe(r){return r.name}Qi.tokenName=ZEe;function wj(r){return(0,$s.isString)(r.LABEL)&&r.LABEL!==""}Qi.hasTokenLabel=wj;var _Ee="parent",hj="categories",pj="label",dj="group",Cj="push_mode",mj="pop_mode",Ej="longer_alt",Ij="line_breaks",yj="start_chars_hint";function Bj(r){return $Ee(r)}Qi.createToken=Bj;function $Ee(r){var e=r.pattern,t={};if(t.name=r.name,(0,$s.isUndefined)(e)||(t.PATTERN=e),(0,$s.has)(r,_Ee))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,$s.has)(r,hj)&&(t.CATEGORIES=r[hj]),(0,Hv.augmentTokenTypes)([t]),(0,$s.has)(r,pj)&&(t.LABEL=r[pj]),(0,$s.has)(r,dj)&&(t.GROUP=r[dj]),(0,$s.has)(r,mj)&&(t.POP_MODE=r[mj]),(0,$s.has)(r,Cj)&&(t.PUSH_MODE=r[Cj]),(0,$s.has)(r,Ej)&&(t.LONGER_ALT=r[Ej]),(0,$s.has)(r,Ij)&&(t.LINE_BREAKS=r[Ij]),(0,$s.has)(r,yj)&&(t.START_CHARS_HINT=r[yj]),t}Qi.EOF=Bj({name:"EOF",pattern:VEe.Lexer.NA});(0,Hv.augmentTokenTypes)([Qi.EOF]);function eIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Qi.createTokenInstance=eIe;function tIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Qi.tokenMatcher=tIe});var mn=w(zt=>{"use strict";var Pa=zt&&zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(zt,"__esModule",{value:!0});zt.serializeProduction=zt.serializeGrammar=zt.Terminal=zt.Alternation=zt.RepetitionWithSeparator=zt.Repetition=zt.RepetitionMandatoryWithSeparator=zt.RepetitionMandatory=zt.Option=zt.Alternative=zt.Rule=zt.NonTerminal=zt.AbstractProduction=void 0;var Ar=Gt(),rIe=LA(),ko=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,Ar.forEach)(this.definition,function(t){t.accept(e)})},r}();zt.AbstractProduction=ko;var bj=function(r){Pa(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(ko);zt.NonTerminal=bj;var Qj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.Rule=Qj;var Sj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.Alternative=Sj;var vj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.Option=vj;var xj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.RepetitionMandatory=xj;var Pj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.RepetitionMandatoryWithSeparator=Pj;var Dj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.Repetition=Dj;var kj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.RepetitionWithSeparator=kj;var Rj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(ko);zt.Alternation=Rj;var oy=function(){function r(e){this.idx=1,(0,Ar.assign)(this,(0,Ar.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();zt.Terminal=oy;function iIe(r){return(0,Ar.map)(r,Qd)}zt.serializeGrammar=iIe;function Qd(r){function e(s){return(0,Ar.map)(s,Qd)}if(r instanceof bj){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,Ar.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof Sj)return{type:"Alternative",definition:e(r.definition)};if(r instanceof vj)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof xj)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof Pj)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Qd(new oy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof kj)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Qd(new oy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof Dj)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof Rj)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof oy){var i={type:"Terminal",name:r.terminalType.name,label:(0,rIe.tokenLabel)(r.terminalType),idx:r.idx};(0,Ar.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,Ar.isRegExp)(n)?n.source:n),i}else{if(r instanceof Qj)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}zt.serializeProduction=Qd});var Ay=w(ay=>{"use strict";Object.defineProperty(ay,"__esModule",{value:!0});ay.RestWalker=void 0;var Gv=Gt(),En=mn(),nIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,Gv.forEach)(e.definition,function(n,s){var o=(0,Gv.drop)(e.definition,s+1);if(n instanceof En.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof En.Terminal)i.walkTerminal(n,o,t);else if(n instanceof En.Alternative)i.walkFlat(n,o,t);else if(n instanceof En.Option)i.walkOption(n,o,t);else if(n instanceof En.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof En.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof En.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof En.Repetition)i.walkMany(n,o,t);else if(n instanceof En.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=Fj(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=Fj(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,Gv.forEach)(e.definition,function(o){var a=new En.Alternative({definition:[o]});n.walk(a,s)})},r}();ay.RestWalker=nIe;function Fj(r,e,t){var i=[new En.Option({definition:[new En.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.GAstVisitor=void 0;var Ro=mn(),sIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();ly.GAstVisitor=sIe});var vd=w(Oi=>{"use strict";var oIe=Oi&&Oi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Oi,"__esModule",{value:!0});Oi.collectMethods=Oi.DslMethodsCollectorVisitor=Oi.getProductionDslName=Oi.isBranchingProd=Oi.isOptionalProd=Oi.isSequenceProd=void 0;var Sd=Gt(),br=mn(),aIe=$g();function AIe(r){return r instanceof br.Alternative||r instanceof br.Option||r instanceof br.Repetition||r instanceof br.RepetitionMandatory||r instanceof br.RepetitionMandatoryWithSeparator||r instanceof br.RepetitionWithSeparator||r instanceof br.Terminal||r instanceof br.Rule}Oi.isSequenceProd=AIe;function Yv(r,e){e===void 0&&(e=[]);var t=r instanceof br.Option||r instanceof br.Repetition||r instanceof br.RepetitionWithSeparator;return t?!0:r instanceof br.Alternation?(0,Sd.some)(r.definition,function(i){return Yv(i,e)}):r instanceof br.NonTerminal&&(0,Sd.contains)(e,r)?!1:r instanceof br.AbstractProduction?(r instanceof br.NonTerminal&&e.push(r),(0,Sd.every)(r.definition,function(i){return Yv(i,e)})):!1}Oi.isOptionalProd=Yv;function lIe(r){return r instanceof br.Alternation}Oi.isBranchingProd=lIe;function cIe(r){if(r instanceof br.NonTerminal)return"SUBRULE";if(r instanceof br.Option)return"OPTION";if(r instanceof br.Alternation)return"OR";if(r instanceof br.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof br.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof br.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof br.Repetition)return"MANY";if(r instanceof br.Terminal)return"CONSUME";throw Error("non exhaustive match")}Oi.getProductionDslName=cIe;var Nj=function(r){oIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,Sd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,Sd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(aIe.GAstVisitor);Oi.DslMethodsCollectorVisitor=Nj;var cy=new Nj;function uIe(r){cy.reset(),r.accept(cy);var e=cy.dslMethods;return cy.reset(),e}Oi.collectMethods=uIe});var qv=w(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var uy=Gt(),Tj=mn(),jv=vd();function gy(r){if(r instanceof Tj.NonTerminal)return gy(r.referencedRule);if(r instanceof Tj.Terminal)return Oj(r);if((0,jv.isSequenceProd)(r))return Lj(r);if((0,jv.isBranchingProd)(r))return Mj(r);throw Error("non exhaustive match")}Fo.first=gy;function Lj(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,jv.isOptionalProd)(s),e=e.concat(gy(s)),i=i+1,n=t.length>i;return(0,uy.uniq)(e)}Fo.firstForSequence=Lj;function Mj(r){var e=(0,uy.map)(r.definition,function(t){return gy(t)});return(0,uy.uniq)((0,uy.flatten)(e))}Fo.firstForBranching=Mj;function Oj(r){return[r.terminalType]}Fo.firstForTerminal=Oj});var Jv=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.IN=void 0;fy.IN="_~IN~_"});var Yj=w(fs=>{"use strict";var gIe=fs&&fs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(fs,"__esModule",{value:!0});fs.buildInProdFollowPrefix=fs.buildBetweenProdsFollowPrefix=fs.computeAllProdsFollows=fs.ResyncFollowsWalker=void 0;var fIe=Ay(),hIe=qv(),Kj=Gt(),Uj=Jv(),pIe=mn(),Hj=function(r){gIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=Gj(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new pIe.Alternative({definition:o}),l=(0,hIe.first)(a);this.follows[s]=l},e}(fIe.RestWalker);fs.ResyncFollowsWalker=Hj;function dIe(r){var e={};return(0,Kj.forEach)(r,function(t){var i=new Hj(t).startWalking();(0,Kj.assign)(e,i)}),e}fs.computeAllProdsFollows=dIe;function Gj(r,e){return r.name+e+Uj.IN}fs.buildBetweenProdsFollowPrefix=Gj;function CIe(r){var e=r.terminalType.name;return e+r.idx+Uj.IN}fs.buildInProdFollowPrefix=CIe});var xd=w(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=LA(),mIe=Gt(),eo=Gt(),Wv=mn(),jj=vd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,eo.first)(t).image,l=` +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,C,y,B,v,D,T=e,H=T.length,j=0,$=0,V=this.hasCustom?0:Math.floor(e.length/10),W=new Array(V),_=[],A=this.trackStartLines?1:void 0,Ae=this.trackStartLines?1:void 0,ge=(0,_s.cloneEmptyGroups)(this.emptyGroups),re=this.trackStartLines,M=this.config.lineTerminatorsPattern,F=0,ue=[],pe=[],ke=[],Fe=[];Object.freeze(Fe);var Ne=void 0;function oe(){return ue}function le(pr){var Ii=(0,_s.charCodeToOptimizedIndex)(pr),rs=pe[Ii];return rs===void 0?Fe:rs}var Be=function(pr){if(ke.length===1&&pr.tokenType.PUSH_MODE===void 0){var Ii=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(pr);_.push({offset:pr.startOffset,line:pr.startLine!==void 0?pr.startLine:void 0,column:pr.startColumn!==void 0?pr.startColumn:void 0,length:pr.image.length,message:Ii})}else{ke.pop();var rs=(0,nr.last)(ke);ue=i.patternIdxToConfig[rs],pe=i.charCodeToPatternIdxToConfig[rs],F=ue.length;var fa=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;pe&&fa?Ne=le:Ne=oe}};function fe(pr){ke.push(pr),pe=this.charCodeToPatternIdxToConfig[pr],ue=this.patternIdxToConfig[pr],F=ue.length,F=ue.length;var Ii=this.canModeBeOptimized[pr]&&this.config.safeMode===!1;pe&&Ii?Ne=le:Ne=oe}fe.call(this,t);for(var ae;jc.length){c=a,u=g,ae=_e;break}}}break}}if(c!==null){if(f=c.length,h=ae.group,h!==void 0&&(p=ae.tokenTypeIdx,C=this.createTokenInstance(c,j,p,ae.tokenType,A,Ae,f),this.handlePayload(C,u),h===!1?$=this.addToken(W,$,C):ge[h].push(C)),e=this.chopInput(e,f),j=j+f,Ae=this.computeNewColumn(Ae,f),re===!0&&ae.canLineTerminator===!0){var It=0,Mr=void 0,ii=void 0;M.lastIndex=0;do Mr=M.test(c),Mr===!0&&(ii=M.lastIndex-1,It++);while(Mr===!0);It!==0&&(A=A+It,Ae=f-ii,this.updateTokenEndLineColumnLocation(C,h,ii,It,A,Ae,f))}this.handleModes(ae,Be,fe,C)}else{for(var gi=j,hr=A,fi=Ae,ni=!1;!ni&&j <"+e+">");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Cc.Lexer=XEe});var TA=w(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.tokenMatcher=Qi.createTokenInstance=Qi.EOF=Qi.createToken=Qi.hasTokenLabel=Qi.tokenName=Qi.tokenLabel=void 0;var $s=Gt(),ZEe=Bd(),Hv=_g();function _Ee(r){return bj(r)?r.LABEL:r.name}Qi.tokenLabel=_Ee;function $Ee(r){return r.name}Qi.tokenName=$Ee;function bj(r){return(0,$s.isString)(r.LABEL)&&r.LABEL!==""}Qi.hasTokenLabel=bj;var eIe="parent",dj="categories",Cj="label",mj="group",Ej="push_mode",Ij="pop_mode",yj="longer_alt",wj="line_breaks",Bj="start_chars_hint";function Qj(r){return tIe(r)}Qi.createToken=Qj;function tIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,$s.isUndefined)(e)||(t.PATTERN=e),(0,$s.has)(r,eIe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,$s.has)(r,dj)&&(t.CATEGORIES=r[dj]),(0,Hv.augmentTokenTypes)([t]),(0,$s.has)(r,Cj)&&(t.LABEL=r[Cj]),(0,$s.has)(r,mj)&&(t.GROUP=r[mj]),(0,$s.has)(r,Ij)&&(t.POP_MODE=r[Ij]),(0,$s.has)(r,Ej)&&(t.PUSH_MODE=r[Ej]),(0,$s.has)(r,yj)&&(t.LONGER_ALT=r[yj]),(0,$s.has)(r,wj)&&(t.LINE_BREAKS=r[wj]),(0,$s.has)(r,Bj)&&(t.START_CHARS_HINT=r[Bj]),t}Qi.EOF=Qj({name:"EOF",pattern:ZEe.Lexer.NA});(0,Hv.augmentTokenTypes)([Qi.EOF]);function rIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Qi.createTokenInstance=rIe;function iIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Qi.tokenMatcher=iIe});var mn=w(zt=>{"use strict";var Pa=zt&&zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(zt,"__esModule",{value:!0});zt.serializeProduction=zt.serializeGrammar=zt.Terminal=zt.Alternation=zt.RepetitionWithSeparator=zt.Repetition=zt.RepetitionMandatoryWithSeparator=zt.RepetitionMandatory=zt.Option=zt.Alternative=zt.Rule=zt.NonTerminal=zt.AbstractProduction=void 0;var Ar=Gt(),nIe=TA(),Ro=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,Ar.forEach)(this.definition,function(t){t.accept(e)})},r}();zt.AbstractProduction=Ro;var Sj=function(r){Pa(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Ro);zt.NonTerminal=Sj;var vj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Rule=vj;var xj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Alternative=xj;var Pj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Option=Pj;var Dj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.RepetitionMandatory=Dj;var kj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.RepetitionMandatoryWithSeparator=kj;var Rj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Repetition=Rj;var Fj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.RepetitionWithSeparator=Fj;var Nj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Ro);zt.Alternation=Nj;var oy=function(){function r(e){this.idx=1,(0,Ar.assign)(this,(0,Ar.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();zt.Terminal=oy;function sIe(r){return(0,Ar.map)(r,Qd)}zt.serializeGrammar=sIe;function Qd(r){function e(s){return(0,Ar.map)(s,Qd)}if(r instanceof Sj){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,Ar.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof xj)return{type:"Alternative",definition:e(r.definition)};if(r instanceof Pj)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof Dj)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof kj)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Qd(new oy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof Fj)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Qd(new oy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof Rj)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof Nj)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof oy){var i={type:"Terminal",name:r.terminalType.name,label:(0,nIe.tokenLabel)(r.terminalType),idx:r.idx};(0,Ar.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,Ar.isRegExp)(n)?n.source:n),i}else{if(r instanceof vj)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}zt.serializeProduction=Qd});var Ay=w(ay=>{"use strict";Object.defineProperty(ay,"__esModule",{value:!0});ay.RestWalker=void 0;var Gv=Gt(),En=mn(),oIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,Gv.forEach)(e.definition,function(n,s){var o=(0,Gv.drop)(e.definition,s+1);if(n instanceof En.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof En.Terminal)i.walkTerminal(n,o,t);else if(n instanceof En.Alternative)i.walkFlat(n,o,t);else if(n instanceof En.Option)i.walkOption(n,o,t);else if(n instanceof En.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof En.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof En.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof En.Repetition)i.walkMany(n,o,t);else if(n instanceof En.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=Tj(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=Tj(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,Gv.forEach)(e.definition,function(o){var a=new En.Alternative({definition:[o]});n.walk(a,s)})},r}();ay.RestWalker=oIe;function Tj(r,e,t){var i=[new En.Option({definition:[new En.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.GAstVisitor=void 0;var Fo=mn(),aIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Fo.NonTerminal:return this.visitNonTerminal(t);case Fo.Alternative:return this.visitAlternative(t);case Fo.Option:return this.visitOption(t);case Fo.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Fo.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Fo.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Fo.Repetition:return this.visitRepetition(t);case Fo.Alternation:return this.visitAlternation(t);case Fo.Terminal:return this.visitTerminal(t);case Fo.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();ly.GAstVisitor=aIe});var vd=w(Oi=>{"use strict";var AIe=Oi&&Oi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Oi,"__esModule",{value:!0});Oi.collectMethods=Oi.DslMethodsCollectorVisitor=Oi.getProductionDslName=Oi.isBranchingProd=Oi.isOptionalProd=Oi.isSequenceProd=void 0;var Sd=Gt(),br=mn(),lIe=$g();function cIe(r){return r instanceof br.Alternative||r instanceof br.Option||r instanceof br.Repetition||r instanceof br.RepetitionMandatory||r instanceof br.RepetitionMandatoryWithSeparator||r instanceof br.RepetitionWithSeparator||r instanceof br.Terminal||r instanceof br.Rule}Oi.isSequenceProd=cIe;function Yv(r,e){e===void 0&&(e=[]);var t=r instanceof br.Option||r instanceof br.Repetition||r instanceof br.RepetitionWithSeparator;return t?!0:r instanceof br.Alternation?(0,Sd.some)(r.definition,function(i){return Yv(i,e)}):r instanceof br.NonTerminal&&(0,Sd.contains)(e,r)?!1:r instanceof br.AbstractProduction?(r instanceof br.NonTerminal&&e.push(r),(0,Sd.every)(r.definition,function(i){return Yv(i,e)})):!1}Oi.isOptionalProd=Yv;function uIe(r){return r instanceof br.Alternation}Oi.isBranchingProd=uIe;function gIe(r){if(r instanceof br.NonTerminal)return"SUBRULE";if(r instanceof br.Option)return"OPTION";if(r instanceof br.Alternation)return"OR";if(r instanceof br.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof br.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof br.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof br.Repetition)return"MANY";if(r instanceof br.Terminal)return"CONSUME";throw Error("non exhaustive match")}Oi.getProductionDslName=gIe;var Lj=function(r){AIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,Sd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,Sd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(lIe.GAstVisitor);Oi.DslMethodsCollectorVisitor=Lj;var cy=new Lj;function fIe(r){cy.reset(),r.accept(cy);var e=cy.dslMethods;return cy.reset(),e}Oi.collectMethods=fIe});var qv=w(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.firstForTerminal=No.firstForBranching=No.firstForSequence=No.first=void 0;var uy=Gt(),Mj=mn(),jv=vd();function gy(r){if(r instanceof Mj.NonTerminal)return gy(r.referencedRule);if(r instanceof Mj.Terminal)return Uj(r);if((0,jv.isSequenceProd)(r))return Oj(r);if((0,jv.isBranchingProd)(r))return Kj(r);throw Error("non exhaustive match")}No.first=gy;function Oj(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,jv.isOptionalProd)(s),e=e.concat(gy(s)),i=i+1,n=t.length>i;return(0,uy.uniq)(e)}No.firstForSequence=Oj;function Kj(r){var e=(0,uy.map)(r.definition,function(t){return gy(t)});return(0,uy.uniq)((0,uy.flatten)(e))}No.firstForBranching=Kj;function Uj(r){return[r.terminalType]}No.firstForTerminal=Uj});var Jv=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.IN=void 0;fy.IN="_~IN~_"});var qj=w(fs=>{"use strict";var hIe=fs&&fs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(fs,"__esModule",{value:!0});fs.buildInProdFollowPrefix=fs.buildBetweenProdsFollowPrefix=fs.computeAllProdsFollows=fs.ResyncFollowsWalker=void 0;var pIe=Ay(),dIe=qv(),Hj=Gt(),Gj=Jv(),CIe=mn(),Yj=function(r){hIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=jj(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new CIe.Alternative({definition:o}),l=(0,dIe.first)(a);this.follows[s]=l},e}(pIe.RestWalker);fs.ResyncFollowsWalker=Yj;function mIe(r){var e={};return(0,Hj.forEach)(r,function(t){var i=new Yj(t).startWalking();(0,Hj.assign)(e,i)}),e}fs.computeAllProdsFollows=mIe;function jj(r,e){return r.name+e+Gj.IN}fs.buildBetweenProdsFollowPrefix=jj;function EIe(r){var e=r.terminalType.name;return e+r.idx+Gj.IN}fs.buildInProdFollowPrefix=EIe});var xd=w(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=TA(),IIe=Gt(),eo=Gt(),Wv=mn(),Jj=vd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,eo.first)(t).image,l=` but found: '`+a+"'";if(n)return o+n+l;var c=(0,eo.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,eo.map)(c,function(h){return"["+(0,eo.map)(h,function(p){return(0,ef.tokenLabel)(p)}).join(", ")+"]"}),g=(0,eo.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: `+g.join(` `);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,eo.first)(t).image,a=` but found: '`+o+"'";if(i)return s+i+a;var l=(0,eo.map)(e,function(u){return"["+(0,eo.map)(u,function(g){return(0,ef.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Da.defaultParserErrorProvider);Da.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- -inside top level rule: ->`+r.name+"<-";return t}};Da.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,eo.first)(e),s=n.idx,o=(0,jj.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` +inside top level rule: ->`+r.name+"<-";return t}};Da.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,eo.first)(e),s=n.idx,o=(0,Jj.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` @@ -115,42 +115,42 @@ and Non-Terminal names start with a lower case letter.`;return e},buildAlternati For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,eo.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, `)+("<"+e+`> may appears as a prefix path in all these alternatives. `);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,jj.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. +For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,Jj.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. `)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: `+(" inside <"+r.topLevelRule.name+`> Rule. - has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=mIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. + has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=IIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. `+("rule: <"+e+`> can be invoked from itself (directly or indirectly) `)+(`without consuming any Tokens. The grammar path that causes this is: `+i+` `)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var Wj=w(MA=>{"use strict";var EIe=MA&&MA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(MA,"__esModule",{value:!0});MA.GastRefResolverVisitor=MA.resolveGrammar=void 0;var IIe=jn(),qj=Gt(),yIe=$g();function wIe(r,e){var t=new Jj(r,e);return t.resolveRefs(),t.errors}MA.resolveGrammar=wIe;var Jj=function(r){EIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,qj.forEach)((0,qj.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:IIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(yIe.GAstVisitor);MA.GastRefResolverVisitor=Jj});var Dd=w(Nr=>{"use strict";var mc=Nr&&Nr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Nr,"__esModule",{value:!0});Nr.nextPossibleTokensAfter=Nr.possiblePathsFrom=Nr.NextTerminalAfterAtLeastOneSepWalker=Nr.NextTerminalAfterAtLeastOneWalker=Nr.NextTerminalAfterManySepWalker=Nr.NextTerminalAfterManyWalker=Nr.AbstractNextTerminalAfterProductionWalker=Nr.NextAfterTokenWalker=Nr.AbstractNextPossibleTokensWalker=void 0;var zj=Ay(),Kt=Gt(),BIe=qv(),kt=mn(),Vj=function(r){mc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Kt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Kt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Kt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(zj.RestWalker);Nr.AbstractNextPossibleTokensWalker=Vj;var bIe=function(r){mc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,BIe.first)(o),this.found=!0}},e}(Vj);Nr.NextAfterTokenWalker=bIe;var Pd=function(r){mc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(zj.RestWalker);Nr.AbstractNextTerminalAfterProductionWalker=Pd;var QIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterManyWalker=QIe;var SIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterManySepWalker=SIe;var vIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterAtLeastOneWalker=vIe;var xIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterAtLeastOneSepWalker=xIe;function Xj(r,e,t){t===void 0&&(t=[]),t=(0,Kt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Kt.drop)(r,n+1))}function o(c){var u=Xj(s(c),e,t);return i.concat(u)}for(;t.length=0;ge--){var re=B.definition[ge],M={idx:p,def:re.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y};g.push(M),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:p,def:B.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(DIe(B,p,C,y));else throw Error("non exhaustive match")}}return u}Nr.nextPossibleTokensAfter=PIe;function DIe(r,e,t,i){var n=(0,Kt.cloneArr)(t);n.push(r.name);var s=(0,Kt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var kd=w(Zt=>{"use strict";var $j=Zt&&Zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Zt,"__esModule",{value:!0});Zt.areTokenCategoriesNotUsed=Zt.isStrictPrefixOfPath=Zt.containsPath=Zt.getLookaheadPathsForOptionalProd=Zt.getLookaheadPathsForOr=Zt.lookAheadSequenceFromAlternatives=Zt.buildSingleAlternativeLookaheadFunction=Zt.buildAlternativesLookAheadFunc=Zt.buildLookaheadFuncForOptionalProd=Zt.buildLookaheadFuncForOr=Zt.getProdType=Zt.PROD_TYPE=void 0;var sr=Gt(),Zj=Dd(),kIe=Ay(),hy=_g(),OA=mn(),RIe=$g(),oi;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(oi=Zt.PROD_TYPE||(Zt.PROD_TYPE={}));function FIe(r){if(r instanceof OA.Option)return oi.OPTION;if(r instanceof OA.Repetition)return oi.REPETITION;if(r instanceof OA.RepetitionMandatory)return oi.REPETITION_MANDATORY;if(r instanceof OA.RepetitionMandatoryWithSeparator)return oi.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof OA.RepetitionWithSeparator)return oi.REPETITION_WITH_SEPARATOR;if(r instanceof OA.Alternation)return oi.ALTERNATION;throw Error("non exhaustive match")}Zt.getProdType=FIe;function NIe(r,e,t,i,n,s){var o=tq(r,e,t),a=Xv(o)?hy.tokenStructuredMatcherNoCategories:hy.tokenStructuredMatcher;return s(o,i,a,n)}Zt.buildLookaheadFuncForOr=NIe;function TIe(r,e,t,i,n,s){var o=rq(r,e,n,t),a=Xv(o)?hy.tokenStructuredMatcherNoCategories:hy.tokenStructuredMatcher;return s(o[0],a,i)}Zt.buildLookaheadFuncForOptionalProd=TIe;function LIe(r,e,t,i){var n=r.length,s=(0,sr.every)(r,function(l){return(0,sr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,sr.map)(l,function(D){return D.GATE}),u=0;u{"use strict";var Zv=Vt&&Vt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Vt,"__esModule",{value:!0});Vt.checkPrefixAlternativesAmbiguities=Vt.validateSomeNonEmptyLookaheadPath=Vt.validateTooManyAlts=Vt.RepetionCollector=Vt.validateAmbiguousAlternationAlternatives=Vt.validateEmptyOrAlternative=Vt.getFirstNoneTerminal=Vt.validateNoLeftRecursion=Vt.validateRuleIsOverridden=Vt.validateRuleDoesNotAlreadyExist=Vt.OccurrenceValidationCollector=Vt.identifyProductionForDuplicates=Vt.validateGrammar=void 0;var er=Gt(),Qr=Gt(),No=jn(),_v=vd(),tf=kd(),HIe=Dd(),to=mn(),$v=$g();function GIe(r,e,t,i,n){var s=er.map(r,function(h){return YIe(h,i)}),o=er.map(r,function(h){return ex(h,h,i)}),a=[],l=[],c=[];(0,Qr.every)(o,Qr.isEmpty)&&(a=(0,Qr.map)(r,function(h){return Aq(h,i)}),l=(0,Qr.map)(r,function(h){return lq(h,e,i)}),c=gq(r,e,i));var u=JIe(r,t,i),g=(0,Qr.map)(r,function(h){return uq(h,i)}),f=(0,Qr.map)(r,function(h){return aq(h,r,n,i)});return er.flatten(s.concat(c,o,a,l,u,g,f))}Vt.validateGrammar=GIe;function YIe(r,e){var t=new oq;r.accept(t);var i=t.allProductions,n=er.groupBy(i,nq),s=er.pick(n,function(a){return a.length>1}),o=er.map(er.values(s),function(a){var l=er.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=sq(l);return f&&(g.parameter=f),g});return o}function nq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+sq(r)}Vt.identifyProductionForDuplicates=nq;function sq(r){return r instanceof to.Terminal?r.terminalType.name:r instanceof to.NonTerminal?r.nonTerminalName:""}var oq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Vt.OccurrenceValidationCollector=oq;function aq(r,e,t,i){var n=[],s=(0,Qr.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Vt.validateRuleDoesNotAlreadyExist=aq;function jIe(r,e,t){var i=[],n;return er.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Vt.validateRuleIsOverridden=jIe;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Rd(e.definition);if(er.isEmpty(s))return[];var o=r.name,a=er.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=er.difference(s,i.concat([r])),c=er.map(l,function(u){var g=er.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(er.flatten(c))}Vt.validateNoLeftRecursion=ex;function Rd(r){var e=[];if(er.isEmpty(r))return e;var t=er.first(r);if(t instanceof to.NonTerminal)e.push(t.referencedRule);else if(t instanceof to.Alternative||t instanceof to.Option||t instanceof to.RepetitionMandatory||t instanceof to.RepetitionMandatoryWithSeparator||t instanceof to.RepetitionWithSeparator||t instanceof to.Repetition)e=e.concat(Rd(t.definition));else if(t instanceof to.Alternation)e=er.flatten(er.map(t.definition,function(o){return Rd(o.definition)}));else if(!(t instanceof to.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=er.drop(r);return e.concat(Rd(s))}else return e}Vt.getFirstNoneTerminal=Rd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function Aq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){var a=er.dropRight(o.definition),l=er.map(a,function(c,u){var g=(0,HIe.nextPossibleTokensAfter)([c],[],null,1);return er.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(er.compact(l))},[]);return n}Vt.validateEmptyOrAlternative=Aq;function lq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,Qr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=er.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=qIe(u,a,r,t),f=fq(u,a,r,t);return o.concat(g,f)},[]);return s}Vt.validateAmbiguousAlternationAlternatives=lq;var cq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Vt.RepetionCollector=cq;function uq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Vt.validateTooManyAlts=uq;function gq(r,e,t){var i=[];return(0,Qr.forEach)(r,function(n){var s=new cq;n.accept(s);var o=s.allProductions;(0,Qr.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,Qr.isEmpty)((0,Qr.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Vt.validateSomeNonEmptyLookaheadPath=gq;function qIe(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Qr.forEach)(l,function(u){var g=[c];(0,Qr.forEach)(r,function(f,h){c!==h&&(0,tf.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=er.map(s,function(a){var l=(0,Qr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function fq(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(o,a,l){var c=(0,Qr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Qr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Qr.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Gt(),WIe=Wj(),zIe=rx(),hq=xd();function VIe(r){r=(0,ix.defaults)(r,{errMsgProvider:hq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,WIe.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=VIe;function XIe(r){return r=(0,ix.defaults)(r,{errMsgProvider:hq.defaultGrammarValidatorErrorProvider}),(0,zIe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=XIe});var nf=w(In=>{"use strict";var Fd=In&&In.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(In,"__esModule",{value:!0});In.EarlyExitException=In.NotAllInputParsedException=In.NoViableAltException=In.MismatchedTokenException=In.isRecognitionException=void 0;var ZIe=Gt(),dq="MismatchedTokenException",Cq="NoViableAltException",mq="EarlyExitException",Eq="NotAllInputParsedException",Iq=[dq,Cq,mq,Eq];Object.freeze(Iq);function _Ie(r){return(0,ZIe.contains)(Iq,r.name)}In.isRecognitionException=_Ie;var py=function(r){Fd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),$Ie=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=dq,s}return e}(py);In.MismatchedTokenException=$Ie;var eye=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Cq,s}return e}(py);In.NoViableAltException=eye;var tye=function(r){Fd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=Eq,n}return e}(py);In.NotAllInputParsedException=tye;var rye=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=mq,s}return e}(py);In.EarlyExitException=rye});var sx=w(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var dy=LA(),hs=Gt(),iye=nf(),nye=Jv(),sye=jn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var oye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,hs.has)(e,"recoveryEnabled")?e.recoveryEnabled:sye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=yq)},r.prototype.getTokenToInsert=function(e){var t=(0,dy.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),C=new iye.MismatchedTokenException(p,u,s.LA(0));C.resyncedTokens=(0,hs.dropRight)(l),s.SAVE_ERROR(C)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,hs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,hs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,hs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,hs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,hs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,hs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,hs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[dy.EOF];var t=e.ruleName+e.idxInCallingRule+nye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,dy.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,hs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,hs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,hs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=oye;function yq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=dy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Ki.attemptInRepetitionRecovery=yq});var Cy=w(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.getKeyForAutomaticLookahead=Jt.AT_LEAST_ONE_SEP_IDX=Jt.MANY_SEP_IDX=Jt.AT_LEAST_ONE_IDX=Jt.MANY_IDX=Jt.OPTION_IDX=Jt.OR_IDX=Jt.BITS_FOR_ALT_IDX=Jt.BITS_FOR_RULE_IDX=Jt.BITS_FOR_OCCURRENCE_IDX=Jt.BITS_FOR_METHOD_TYPE=void 0;Jt.BITS_FOR_METHOD_TYPE=4;Jt.BITS_FOR_OCCURRENCE_IDX=8;Jt.BITS_FOR_RULE_IDX=12;Jt.BITS_FOR_ALT_IDX=8;Jt.OR_IDX=1<{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.LooksAhead=void 0;var ka=kd(),ro=Gt(),wq=jn(),Ra=Cy(),Ec=vd(),Aye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,ro.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:wq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,ro.has)(e,"maxLookahead")?e.maxLookahead:wq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,ro.isES2015MapSupported)()?new Map:[],(0,ro.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,ro.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,Ec.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,ro.forEach)(s,function(g){var f=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,Ec.getProductionDslName)(g)+f,function(){var h=(0,ka.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,Ra.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Ra.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,ro.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Ra.MANY_IDX,ka.PROD_TYPE.REPETITION,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Ra.OPTION_IDX,ka.PROD_TYPE.OPTION,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Ra.AT_LEAST_ONE_IDX,ka.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Ra.AT_LEAST_ONE_SEP_IDX,ka.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Ra.MANY_SEP_IDX,ka.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,Ec.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,ka.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Ra.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,ka.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,ka.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Ra.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();my.LooksAhead=Aye});var bq=w(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.addNoneTerminalToCst=To.addTerminalToCst=To.setNodeLocationFull=To.setNodeLocationOnlyOffset=void 0;function lye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.defineNameProp=KA.functionName=KA.classNameFromInstance=void 0;var fye=Gt();function hye(r){return Sq(r.constructor)}KA.classNameFromInstance=hye;var Qq="name";function Sq(r){var e=r.name;return e||"anonymous"}KA.functionName=Sq;function pye(r,e){var t=Object.getOwnPropertyDescriptor(r,Qq);return(0,fye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,Qq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}KA.defineNameProp=pye});var kq=w(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.validateRedundantMethods=Si.validateMissingCstMethods=Si.validateVisitor=Si.CstVisitorDefinitionError=Si.createBaseVisitorConstructorWithDefaults=Si.createBaseSemanticVisitorConstructor=Si.defaultVisit=void 0;var ps=Gt(),Nd=ox();function vq(r,e){for(var t=(0,ps.keys)(r),i=t.length,n=0;n: +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var Vj=w(LA=>{"use strict";var yIe=LA&&LA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(LA,"__esModule",{value:!0});LA.GastRefResolverVisitor=LA.resolveGrammar=void 0;var wIe=jn(),Wj=Gt(),BIe=$g();function bIe(r,e){var t=new zj(r,e);return t.resolveRefs(),t.errors}LA.resolveGrammar=bIe;var zj=function(r){yIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,Wj.forEach)((0,Wj.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:wIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(BIe.GAstVisitor);LA.GastRefResolverVisitor=zj});var Dd=w(Nr=>{"use strict";var mc=Nr&&Nr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Nr,"__esModule",{value:!0});Nr.nextPossibleTokensAfter=Nr.possiblePathsFrom=Nr.NextTerminalAfterAtLeastOneSepWalker=Nr.NextTerminalAfterAtLeastOneWalker=Nr.NextTerminalAfterManySepWalker=Nr.NextTerminalAfterManyWalker=Nr.AbstractNextTerminalAfterProductionWalker=Nr.NextAfterTokenWalker=Nr.AbstractNextPossibleTokensWalker=void 0;var Xj=Ay(),Kt=Gt(),QIe=qv(),kt=mn(),Zj=function(r){mc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Kt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Kt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Kt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(Xj.RestWalker);Nr.AbstractNextPossibleTokensWalker=Zj;var SIe=function(r){mc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,QIe.first)(o),this.found=!0}},e}(Zj);Nr.NextAfterTokenWalker=SIe;var Pd=function(r){mc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(Xj.RestWalker);Nr.AbstractNextTerminalAfterProductionWalker=Pd;var vIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterManyWalker=vIe;var xIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterManySepWalker=xIe;var PIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterAtLeastOneWalker=PIe;var DIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterAtLeastOneSepWalker=DIe;function _j(r,e,t){t===void 0&&(t=[]),t=(0,Kt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Kt.drop)(r,n+1))}function o(c){var u=_j(s(c),e,t);return i.concat(u)}for(;t.length=0;ge--){var re=B.definition[ge],M={idx:p,def:re.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y};g.push(M),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:p,def:B.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(RIe(B,p,C,y));else throw Error("non exhaustive match")}}return u}Nr.nextPossibleTokensAfter=kIe;function RIe(r,e,t,i){var n=(0,Kt.cloneArr)(t);n.push(r.name);var s=(0,Kt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var kd=w(Zt=>{"use strict";var tq=Zt&&Zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Zt,"__esModule",{value:!0});Zt.areTokenCategoriesNotUsed=Zt.isStrictPrefixOfPath=Zt.containsPath=Zt.getLookaheadPathsForOptionalProd=Zt.getLookaheadPathsForOr=Zt.lookAheadSequenceFromAlternatives=Zt.buildSingleAlternativeLookaheadFunction=Zt.buildAlternativesLookAheadFunc=Zt.buildLookaheadFuncForOptionalProd=Zt.buildLookaheadFuncForOr=Zt.getProdType=Zt.PROD_TYPE=void 0;var sr=Gt(),$j=Dd(),FIe=Ay(),hy=_g(),MA=mn(),NIe=$g(),oi;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(oi=Zt.PROD_TYPE||(Zt.PROD_TYPE={}));function TIe(r){if(r instanceof MA.Option)return oi.OPTION;if(r instanceof MA.Repetition)return oi.REPETITION;if(r instanceof MA.RepetitionMandatory)return oi.REPETITION_MANDATORY;if(r instanceof MA.RepetitionMandatoryWithSeparator)return oi.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof MA.RepetitionWithSeparator)return oi.REPETITION_WITH_SEPARATOR;if(r instanceof MA.Alternation)return oi.ALTERNATION;throw Error("non exhaustive match")}Zt.getProdType=TIe;function LIe(r,e,t,i,n,s){var o=iq(r,e,t),a=Xv(o)?hy.tokenStructuredMatcherNoCategories:hy.tokenStructuredMatcher;return s(o,i,a,n)}Zt.buildLookaheadFuncForOr=LIe;function MIe(r,e,t,i,n,s){var o=nq(r,e,n,t),a=Xv(o)?hy.tokenStructuredMatcherNoCategories:hy.tokenStructuredMatcher;return s(o[0],a,i)}Zt.buildLookaheadFuncForOptionalProd=MIe;function OIe(r,e,t,i){var n=r.length,s=(0,sr.every)(r,function(l){return(0,sr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,sr.map)(l,function(D){return D.GATE}),u=0;u{"use strict";var Zv=Vt&&Vt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Vt,"__esModule",{value:!0});Vt.checkPrefixAlternativesAmbiguities=Vt.validateSomeNonEmptyLookaheadPath=Vt.validateTooManyAlts=Vt.RepetionCollector=Vt.validateAmbiguousAlternationAlternatives=Vt.validateEmptyOrAlternative=Vt.getFirstNoneTerminal=Vt.validateNoLeftRecursion=Vt.validateRuleIsOverridden=Vt.validateRuleDoesNotAlreadyExist=Vt.OccurrenceValidationCollector=Vt.identifyProductionForDuplicates=Vt.validateGrammar=void 0;var er=Gt(),Qr=Gt(),To=jn(),_v=vd(),tf=kd(),YIe=Dd(),to=mn(),$v=$g();function jIe(r,e,t,i,n){var s=er.map(r,function(h){return qIe(h,i)}),o=er.map(r,function(h){return ex(h,h,i)}),a=[],l=[],c=[];(0,Qr.every)(o,Qr.isEmpty)&&(a=(0,Qr.map)(r,function(h){return cq(h,i)}),l=(0,Qr.map)(r,function(h){return uq(h,e,i)}),c=hq(r,e,i));var u=zIe(r,t,i),g=(0,Qr.map)(r,function(h){return fq(h,i)}),f=(0,Qr.map)(r,function(h){return lq(h,r,n,i)});return er.flatten(s.concat(c,o,a,l,u,g,f))}Vt.validateGrammar=jIe;function qIe(r,e){var t=new Aq;r.accept(t);var i=t.allProductions,n=er.groupBy(i,oq),s=er.pick(n,function(a){return a.length>1}),o=er.map(er.values(s),function(a){var l=er.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:To.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=aq(l);return f&&(g.parameter=f),g});return o}function oq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+aq(r)}Vt.identifyProductionForDuplicates=oq;function aq(r){return r instanceof to.Terminal?r.terminalType.name:r instanceof to.NonTerminal?r.nonTerminalName:""}var Aq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Vt.OccurrenceValidationCollector=Aq;function lq(r,e,t,i){var n=[],s=(0,Qr.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:To.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Vt.validateRuleDoesNotAlreadyExist=lq;function JIe(r,e,t){var i=[],n;return er.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:To.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Vt.validateRuleIsOverridden=JIe;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Rd(e.definition);if(er.isEmpty(s))return[];var o=r.name,a=er.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:To.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=er.difference(s,i.concat([r])),c=er.map(l,function(u){var g=er.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(er.flatten(c))}Vt.validateNoLeftRecursion=ex;function Rd(r){var e=[];if(er.isEmpty(r))return e;var t=er.first(r);if(t instanceof to.NonTerminal)e.push(t.referencedRule);else if(t instanceof to.Alternative||t instanceof to.Option||t instanceof to.RepetitionMandatory||t instanceof to.RepetitionMandatoryWithSeparator||t instanceof to.RepetitionWithSeparator||t instanceof to.Repetition)e=e.concat(Rd(t.definition));else if(t instanceof to.Alternation)e=er.flatten(er.map(t.definition,function(o){return Rd(o.definition)}));else if(!(t instanceof to.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=er.drop(r);return e.concat(Rd(s))}else return e}Vt.getFirstNoneTerminal=Rd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function cq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){var a=er.dropRight(o.definition),l=er.map(a,function(c,u){var g=(0,YIe.nextPossibleTokensAfter)([c],[],null,1);return er.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:To.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(er.compact(l))},[]);return n}Vt.validateEmptyOrAlternative=cq;function uq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,Qr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=er.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=WIe(u,a,r,t),f=pq(u,a,r,t);return o.concat(g,f)},[]);return s}Vt.validateAmbiguousAlternationAlternatives=uq;var gq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Vt.RepetionCollector=gq;function fq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:To.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Vt.validateTooManyAlts=fq;function hq(r,e,t){var i=[];return(0,Qr.forEach)(r,function(n){var s=new gq;n.accept(s);var o=s.allProductions;(0,Qr.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,Qr.isEmpty)((0,Qr.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:To.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Vt.validateSomeNonEmptyLookaheadPath=hq;function WIe(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Qr.forEach)(l,function(u){var g=[c];(0,Qr.forEach)(r,function(f,h){c!==h&&(0,tf.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=er.map(s,function(a){var l=(0,Qr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:To.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function pq(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(o,a,l){var c=(0,Qr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Qr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Qr.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Gt(),VIe=Vj(),XIe=rx(),dq=xd();function ZIe(r){r=(0,ix.defaults)(r,{errMsgProvider:dq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,VIe.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=ZIe;function _Ie(r){return r=(0,ix.defaults)(r,{errMsgProvider:dq.defaultGrammarValidatorErrorProvider}),(0,XIe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=_Ie});var nf=w(In=>{"use strict";var Fd=In&&In.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(In,"__esModule",{value:!0});In.EarlyExitException=In.NotAllInputParsedException=In.NoViableAltException=In.MismatchedTokenException=In.isRecognitionException=void 0;var $Ie=Gt(),mq="MismatchedTokenException",Eq="NoViableAltException",Iq="EarlyExitException",yq="NotAllInputParsedException",wq=[mq,Eq,Iq,yq];Object.freeze(wq);function eye(r){return(0,$Ie.contains)(wq,r.name)}In.isRecognitionException=eye;var py=function(r){Fd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),tye=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=mq,s}return e}(py);In.MismatchedTokenException=tye;var rye=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Eq,s}return e}(py);In.NoViableAltException=rye;var iye=function(r){Fd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=yq,n}return e}(py);In.NotAllInputParsedException=iye;var nye=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Iq,s}return e}(py);In.EarlyExitException=nye});var sx=w(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var dy=TA(),hs=Gt(),sye=nf(),oye=Jv(),aye=jn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var Aye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,hs.has)(e,"recoveryEnabled")?e.recoveryEnabled:aye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Bq)},r.prototype.getTokenToInsert=function(e){var t=(0,dy.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),C=new sye.MismatchedTokenException(p,u,s.LA(0));C.resyncedTokens=(0,hs.dropRight)(l),s.SAVE_ERROR(C)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,hs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,hs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,hs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,hs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,hs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,hs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,hs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[dy.EOF];var t=e.ruleName+e.idxInCallingRule+oye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,dy.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,hs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,hs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,hs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=Aye;function Bq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=dy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Ki.attemptInRepetitionRecovery=Bq});var Cy=w(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.getKeyForAutomaticLookahead=Jt.AT_LEAST_ONE_SEP_IDX=Jt.MANY_SEP_IDX=Jt.AT_LEAST_ONE_IDX=Jt.MANY_IDX=Jt.OPTION_IDX=Jt.OR_IDX=Jt.BITS_FOR_ALT_IDX=Jt.BITS_FOR_RULE_IDX=Jt.BITS_FOR_OCCURRENCE_IDX=Jt.BITS_FOR_METHOD_TYPE=void 0;Jt.BITS_FOR_METHOD_TYPE=4;Jt.BITS_FOR_OCCURRENCE_IDX=8;Jt.BITS_FOR_RULE_IDX=12;Jt.BITS_FOR_ALT_IDX=8;Jt.OR_IDX=1<{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.LooksAhead=void 0;var ka=kd(),ro=Gt(),bq=jn(),Ra=Cy(),Ec=vd(),cye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,ro.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:bq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,ro.has)(e,"maxLookahead")?e.maxLookahead:bq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,ro.isES2015MapSupported)()?new Map:[],(0,ro.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,ro.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,Ec.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,ro.forEach)(s,function(g){var f=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,Ec.getProductionDslName)(g)+f,function(){var h=(0,ka.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,Ra.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Ra.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,ro.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Ra.MANY_IDX,ka.PROD_TYPE.REPETITION,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Ra.OPTION_IDX,ka.PROD_TYPE.OPTION,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Ra.AT_LEAST_ONE_IDX,ka.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Ra.AT_LEAST_ONE_SEP_IDX,ka.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Ra.MANY_SEP_IDX,ka.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,Ec.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,ka.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Ra.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,ka.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,ka.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Ra.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();my.LooksAhead=cye});var Sq=w(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});Lo.addNoneTerminalToCst=Lo.addTerminalToCst=Lo.setNodeLocationFull=Lo.setNodeLocationOnlyOffset=void 0;function uye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var pye=Gt();function dye(r){return xq(r.constructor)}OA.classNameFromInstance=dye;var vq="name";function xq(r){var e=r.name;return e||"anonymous"}OA.functionName=xq;function Cye(r,e){var t=Object.getOwnPropertyDescriptor(r,vq);return(0,pye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,vq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=Cye});var Fq=w(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.validateRedundantMethods=Si.validateMissingCstMethods=Si.validateVisitor=Si.CstVisitorDefinitionError=Si.createBaseVisitorConstructorWithDefaults=Si.createBaseSemanticVisitorConstructor=Si.defaultVisit=void 0;var ps=Gt(),Nd=ox();function Pq(r,e){for(var t=(0,ps.keys)(r),i=t.length,n=0;n: `+(""+s.join(` `).replace(/\n/g,` - `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}Si.createBaseSemanticVisitorConstructor=dye;function Cye(r,e,t){var i=function(){};(0,Nd.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,ps.forEach)(e,function(s){n[s]=vq}),i.prototype=n,i.prototype.constructor=i,i}Si.createBaseVisitorConstructorWithDefaults=Cye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=Si.CstVisitorDefinitionError||(Si.CstVisitorDefinitionError={}));function xq(r,e){var t=Pq(r,e),i=Dq(r,e);return t.concat(i)}Si.validateVisitor=xq;function Pq(r,e){var t=(0,ps.map)(e,function(i){if(!(0,ps.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,ps.compact)(t)}Si.validateMissingCstMethods=Pq;var mye=["constructor","visit","validateVisitor"];function Dq(r,e){var t=[];for(var i in r)(0,ps.isFunction)(r[i])&&!(0,ps.contains)(mye,i)&&!(0,ps.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+` CST Visitor + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}Si.createBaseSemanticVisitorConstructor=mye;function Eye(r,e,t){var i=function(){};(0,Nd.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,ps.forEach)(e,function(s){n[s]=Pq}),i.prototype=n,i.prototype.constructor=i,i}Si.createBaseVisitorConstructorWithDefaults=Eye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=Si.CstVisitorDefinitionError||(Si.CstVisitorDefinitionError={}));function Dq(r,e){var t=kq(r,e),i=Rq(r,e);return t.concat(i)}Si.validateVisitor=Dq;function kq(r,e){var t=(0,ps.map)(e,function(i){if(!(0,ps.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,ps.compact)(t)}Si.validateMissingCstMethods=kq;var Iye=["constructor","visit","validateVisitor"];function Rq(r,e){var t=[];for(var i in r)(0,ps.isFunction)(r[i])&&!(0,ps.contains)(Iye,i)&&!(0,ps.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+` CST Visitor There is no Grammar Rule corresponding to this method's name. -`,type:ax.REDUNDANT_METHOD,methodName:i});return t}Si.validateRedundantMethods=Dq});var Fq=w(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.TreeBuilder=void 0;var sf=bq(),_r=Gt(),Rq=kq(),Eye=jn(),Iye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,_r.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Eye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=_r.NOOP,this.cstFinallyStateUpdate=_r.NOOP,this.cstPostTerminal=_r.NOOP,this.cstPostNonTerminal=_r.NOOP,this.cstPostRule=_r.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=_r.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,_r.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Rq.createBaseSemanticVisitorConstructor)(this.className,(0,_r.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,_r.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Rq.createBaseVisitorConstructorWithDefaults)(this.className,(0,_r.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();Ey.TreeBuilder=Iye});var Tq=w(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.LexerAdapter=void 0;var Nq=jn(),yye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Nq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Nq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Iy.LexerAdapter=yye});var Mq=w(yy=>{"use strict";Object.defineProperty(yy,"__esModule",{value:!0});yy.RecognizerApi=void 0;var Lq=Gt(),wye=nf(),Ax=jn(),Bye=xd(),bye=rx(),Qye=mn(),Sye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Lq.contains)(this.definedRulesNames,e)){var n=Bye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,bye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,wye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Qye.serializeGrammar)((0,Lq.values)(this.gastProductionsCache))},r}();yy.RecognizerApi=Sye});var Hq=w(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.RecognizerEngine=void 0;var Pr=Gt(),qn=Cy(),wy=nf(),Oq=kd(),of=Dd(),Kq=jn(),vye=sx(),Uq=LA(),Td=_g(),xye=ox(),Pye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,xye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Td.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. +`,type:ax.REDUNDANT_METHOD,methodName:i});return t}Si.validateRedundantMethods=Rq});var Tq=w(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.TreeBuilder=void 0;var sf=Sq(),_r=Gt(),Nq=Fq(),yye=jn(),wye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,_r.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:yye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=_r.NOOP,this.cstFinallyStateUpdate=_r.NOOP,this.cstPostTerminal=_r.NOOP,this.cstPostNonTerminal=_r.NOOP,this.cstPostRule=_r.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=_r.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,_r.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Nq.createBaseSemanticVisitorConstructor)(this.className,(0,_r.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,_r.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Nq.createBaseVisitorConstructorWithDefaults)(this.className,(0,_r.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();Ey.TreeBuilder=wye});var Mq=w(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.LexerAdapter=void 0;var Lq=jn(),Bye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Lq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Lq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Iy.LexerAdapter=Bye});var Kq=w(yy=>{"use strict";Object.defineProperty(yy,"__esModule",{value:!0});yy.RecognizerApi=void 0;var Oq=Gt(),bye=nf(),Ax=jn(),Qye=xd(),Sye=rx(),vye=mn(),xye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Oq.contains)(this.definedRulesNames,e)){var n=Qye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Sye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,bye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,vye.serializeGrammar)((0,Oq.values)(this.gastProductionsCache))},r}();yy.RecognizerApi=xye});var Yq=w(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.RecognizerEngine=void 0;var Pr=Gt(),qn=Cy(),wy=nf(),Uq=kd(),of=Dd(),Hq=jn(),Pye=sx(),Gq=TA(),Td=_g(),Dye=ox(),kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Dye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Td.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 For Further details.`);if((0,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. Note that the first argument for the parser constructor is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 - For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Td.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=Uq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Td.tokenStructuredMatcherNoCategories:Td.tokenStructuredMatcher,(0,Td.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Kq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Kq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new wy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,wy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new wy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===vye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),Uq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();By.RecognizerEngine=Pye});var Yq=w(by=>{"use strict";Object.defineProperty(by,"__esModule",{value:!0});by.ErrorHandler=void 0;var lx=nf(),cx=Gt(),Gq=kd(),Dye=jn(),kye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Dye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Gq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Gq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();by.ErrorHandler=kye});var Jq=w(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.ContentAssist=void 0;var jq=Dd(),qq=Gt(),Rye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,qq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,jq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,qq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new jq.NextAfterTokenWalker(n,e).startWalking();return s},r}();Qy.ContentAssist=Rye});var eJ=w(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.GastRecorder=void 0;var yn=Gt(),Lo=mn(),Fye=Bd(),Xq=_g(),Zq=LA(),Nye=jn(),Tye=Cy(),vy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(vy);var Wq=!0,zq=Math.pow(2,Tye.BITS_FOR_OCCURRENCE_IDX)-1,_q=(0,Zq.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Fye.Lexer.NA});(0,Xq.augmentTokenTypes)([_q]);var $q=(0,Zq.createTokenInstance)(_q,`This IToken indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze($q);var Lye={name:`This CSTNode indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Mye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Nye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Lo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Td.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=Gq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Td.tokenStructuredMatcherNoCategories:Td.tokenStructuredMatcher,(0,Td.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Hq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Hq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new wy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,wy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new wy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Pye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),Gq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();By.RecognizerEngine=kye});var qq=w(by=>{"use strict";Object.defineProperty(by,"__esModule",{value:!0});by.ErrorHandler=void 0;var lx=nf(),cx=Gt(),jq=kd(),Rye=jn(),Fye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Rye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,jq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,jq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();by.ErrorHandler=Fye});var zq=w(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.ContentAssist=void 0;var Jq=Dd(),Wq=Gt(),Nye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Wq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Jq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Wq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Jq.NextAfterTokenWalker(n,e).startWalking();return s},r}();Qy.ContentAssist=Nye});var rJ=w(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.GastRecorder=void 0;var yn=Gt(),Mo=mn(),Tye=Bd(),_q=_g(),$q=TA(),Lye=jn(),Mye=Cy(),vy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(vy);var Vq=!0,Xq=Math.pow(2,Mye.BITS_FOR_OCCURRENCE_IDX)-1,eJ=(0,$q.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Tye.Lexer.NA});(0,_q.augmentTokenTypes)([eJ]);var tJ=(0,$q.createTokenInstance)(eJ,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(tJ);var Oye={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Kye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Lye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Mo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Ld.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Ld.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Ld.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,Wq)},r.prototype.manyInternalRecord=function(e,t){Ld.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Ld.call(this,Lo.RepetitionWithSeparator,t,e,Wq)},r.prototype.orInternalRecord=function(e,t){return Oye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(Sy(t),!e||(0,yn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Lye:vy},r.prototype.consumeInternalRecord=function(e,t,i){if(Sy(t),!(0,Xq.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),$q},r}();xy.GastRecorder=Mye;function Ld(r,e,t,i){i===void 0&&(i=!1),Sy(t);var n=(0,yn.peek)(this.recordingProdStack),s=(0,yn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,yn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),vy}function Oye(r,e){var t=this;Sy(e);var i=(0,yn.peek)(this.recordingProdStack),n=(0,yn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,yn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,yn.some)(s,function(l){return(0,yn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,yn.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,yn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,yn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),vy}function Vq(r){return r===0?"":""+r}function Sy(r){if(r<0||r>zq){var e=new Error("Invalid DSL Method idx value: <"+r+`> - `+("Idx value must be a none negative value smaller than "+(zq+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var rJ=w(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.PerformanceTracer=void 0;var tJ=Gt(),Kye=jn(),Uye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,tJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Kye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,tJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();Py.PerformanceTracer=Uye});var iJ=w(Dy=>{"use strict";Object.defineProperty(Dy,"__esModule",{value:!0});Dy.applyMixins=void 0;function Hye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Dy.applyMixins=Hye});var jn=w(dr=>{"use strict";var oJ=dr&&dr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dr,"__esModule",{value:!0});dr.EmbeddedActionsParser=dr.CstParser=dr.Parser=dr.EMPTY_ALT=dr.ParserDefinitionErrorType=dr.DEFAULT_RULE_CONFIG=dr.DEFAULT_PARSER_CONFIG=dr.END_OF_FILE=void 0;var en=Gt(),Gye=Yj(),nJ=LA(),aJ=xd(),sJ=pq(),Yye=sx(),jye=Bq(),qye=Fq(),Jye=Tq(),Wye=Mq(),zye=Hq(),Vye=Yq(),Xye=Jq(),Zye=eJ(),_ye=rJ(),$ye=iJ();dr.END_OF_FILE=(0,nJ.createTokenInstance)(nJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(dr.END_OF_FILE);dr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:aJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});dr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var ewe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(ewe=dr.ParserDefinitionErrorType||(dr.ParserDefinitionErrorType={}));function twe(r){return r===void 0&&(r=void 0),function(){return r}}dr.EMPTY_ALT=twe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,en.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Ld.call(this,Mo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Ld.call(this,Mo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Ld.call(this,Mo.RepetitionMandatoryWithSeparator,t,e,Vq)},r.prototype.manyInternalRecord=function(e,t){Ld.call(this,Mo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Ld.call(this,Mo.RepetitionWithSeparator,t,e,Vq)},r.prototype.orInternalRecord=function(e,t){return Uye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(Sy(t),!e||(0,yn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=e.ruleName,a=new Mo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Oye:vy},r.prototype.consumeInternalRecord=function(e,t,i){if(Sy(t),!(0,_q.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=new Mo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),tJ},r}();xy.GastRecorder=Kye;function Ld(r,e,t,i){i===void 0&&(i=!1),Sy(t);var n=(0,yn.peek)(this.recordingProdStack),s=(0,yn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,yn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),vy}function Uye(r,e){var t=this;Sy(e);var i=(0,yn.peek)(this.recordingProdStack),n=(0,yn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Mo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,yn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,yn.some)(s,function(l){return(0,yn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,yn.forEach)(s,function(l){var c=new Mo.Alternative({definition:[]});o.definition.push(c),(0,yn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,yn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),vy}function Zq(r){return r===0?"":""+r}function Sy(r){if(r<0||r>Xq){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+(Xq+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var nJ=w(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.PerformanceTracer=void 0;var iJ=Gt(),Hye=jn(),Gye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,iJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Hye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,iJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();Py.PerformanceTracer=Gye});var sJ=w(Dy=>{"use strict";Object.defineProperty(Dy,"__esModule",{value:!0});Dy.applyMixins=void 0;function Yye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Dy.applyMixins=Yye});var jn=w(dr=>{"use strict";var AJ=dr&&dr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dr,"__esModule",{value:!0});dr.EmbeddedActionsParser=dr.CstParser=dr.Parser=dr.EMPTY_ALT=dr.ParserDefinitionErrorType=dr.DEFAULT_RULE_CONFIG=dr.DEFAULT_PARSER_CONFIG=dr.END_OF_FILE=void 0;var en=Gt(),jye=qj(),oJ=TA(),lJ=xd(),aJ=Cq(),qye=sx(),Jye=Qq(),Wye=Tq(),zye=Mq(),Vye=Kq(),Xye=Yq(),Zye=qq(),_ye=zq(),$ye=rJ(),ewe=nJ(),twe=sJ();dr.END_OF_FILE=(0,oJ.createTokenInstance)(oJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(dr.END_OF_FILE);dr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:lJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});dr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var rwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(rwe=dr.ParserDefinitionErrorType||(dr.ParserDefinitionErrorType={}));function iwe(r){return r===void 0&&(r=void 0),function(){return r}}dr.EMPTY_ALT=iwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,en.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. Please use the flag on the relevant DSL method instead. See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES - For further details.`);this.skipValidations=(0,en.has)(t,"skipValidations")?t.skipValidations:dr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,en.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,en.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,sJ.resolveGrammar)({rules:(0,en.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,en.isEmpty)(n)&&e.skipValidations===!1){var s=(0,sJ.validateGrammar)({rules:(0,en.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,en.values)(e.tokensMap),errMsgProvider:aJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,en.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,Gye.computeAllProdsFollows)((0,en.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,en.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,en.isEmpty)(e.definitionErrors))throw t=(0,en.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: + For further details.`);this.skipValidations=(0,en.has)(t,"skipValidations")?t.skipValidations:dr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,en.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,en.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,aJ.resolveGrammar)({rules:(0,en.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,en.isEmpty)(n)&&e.skipValidations===!1){var s=(0,aJ.validateGrammar)({rules:(0,en.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,en.values)(e.tokensMap),errMsgProvider:lJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,en.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,jye.computeAllProdsFollows)((0,en.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,en.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,en.isEmpty)(e.definitionErrors))throw t=(0,en.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: `+t.join(` ------------------------------- -`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();dr.Parser=ky;(0,$ye.applyMixins)(ky,[Yye.Recoverable,jye.LooksAhead,qye.TreeBuilder,Jye.LexerAdapter,zye.RecognizerEngine,Wye.RecognizerApi,Vye.ErrorHandler,Xye.ContentAssist,Zye.GastRecorder,_ye.PerformanceTracer]);var rwe=function(r){oJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(ky);dr.CstParser=rwe;var iwe=function(r){oJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(ky);dr.EmbeddedActionsParser=iwe});var lJ=w(Ry=>{"use strict";Object.defineProperty(Ry,"__esModule",{value:!0});Ry.createSyntaxDiagramsCode=void 0;var AJ=Dv();function nwe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+AJ.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+AJ.VERSION+"/diagrams/diagrams.css":s,a=` +`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();dr.Parser=ky;(0,twe.applyMixins)(ky,[qye.Recoverable,Jye.LooksAhead,Wye.TreeBuilder,zye.LexerAdapter,Xye.RecognizerEngine,Vye.RecognizerApi,Zye.ErrorHandler,_ye.ContentAssist,$ye.GastRecorder,ewe.PerformanceTracer]);var nwe=function(r){AJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(ky);dr.CstParser=nwe;var swe=function(r){AJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(ky);dr.EmbeddedActionsParser=swe});var uJ=w(Ry=>{"use strict";Object.defineProperty(Ry,"__esModule",{value:!0});Ry.createSyntaxDiagramsCode=void 0;var cJ=Dv();function owe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+cJ.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+cJ.VERSION+"/diagrams/diagrams.css":s,a=` @@ -178,62 +178,62 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis var diagramsDiv = document.getElementById("diagrams"); main.drawDiagramsFromSerializedGrammar(serializedGrammar, diagramsDiv); <\/script> -`;return a+l+c+u+g+f}Ry.createSyntaxDiagramsCode=nwe});var gJ=w(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.Parser=We.createSyntaxDiagramsCode=We.clearCache=We.GAstVisitor=We.serializeProduction=We.serializeGrammar=We.Terminal=We.Rule=We.RepetitionWithSeparator=We.RepetitionMandatoryWithSeparator=We.RepetitionMandatory=We.Repetition=We.Option=We.NonTerminal=We.Alternative=We.Alternation=We.defaultLexerErrorProvider=We.NoViableAltException=We.NotAllInputParsedException=We.MismatchedTokenException=We.isRecognitionException=We.EarlyExitException=We.defaultParserErrorProvider=We.tokenName=We.tokenMatcher=We.tokenLabel=We.EOF=We.createTokenInstance=We.createToken=We.LexerDefinitionErrorType=We.Lexer=We.EMPTY_ALT=We.ParserDefinitionErrorType=We.EmbeddedActionsParser=We.CstParser=We.VERSION=void 0;var swe=Dv();Object.defineProperty(We,"VERSION",{enumerable:!0,get:function(){return swe.VERSION}});var Fy=jn();Object.defineProperty(We,"CstParser",{enumerable:!0,get:function(){return Fy.CstParser}});Object.defineProperty(We,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Fy.EmbeddedActionsParser}});Object.defineProperty(We,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Fy.ParserDefinitionErrorType}});Object.defineProperty(We,"EMPTY_ALT",{enumerable:!0,get:function(){return Fy.EMPTY_ALT}});var cJ=Bd();Object.defineProperty(We,"Lexer",{enumerable:!0,get:function(){return cJ.Lexer}});Object.defineProperty(We,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return cJ.LexerDefinitionErrorType}});var af=LA();Object.defineProperty(We,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(We,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(We,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(We,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(We,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(We,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var owe=xd();Object.defineProperty(We,"defaultParserErrorProvider",{enumerable:!0,get:function(){return owe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(We,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(We,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(We,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(We,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(We,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var awe=Uv();Object.defineProperty(We,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return awe.defaultLexerErrorProvider}});var Mo=mn();Object.defineProperty(We,"Alternation",{enumerable:!0,get:function(){return Mo.Alternation}});Object.defineProperty(We,"Alternative",{enumerable:!0,get:function(){return Mo.Alternative}});Object.defineProperty(We,"NonTerminal",{enumerable:!0,get:function(){return Mo.NonTerminal}});Object.defineProperty(We,"Option",{enumerable:!0,get:function(){return Mo.Option}});Object.defineProperty(We,"Repetition",{enumerable:!0,get:function(){return Mo.Repetition}});Object.defineProperty(We,"RepetitionMandatory",{enumerable:!0,get:function(){return Mo.RepetitionMandatory}});Object.defineProperty(We,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Mo.RepetitionMandatoryWithSeparator}});Object.defineProperty(We,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Mo.RepetitionWithSeparator}});Object.defineProperty(We,"Rule",{enumerable:!0,get:function(){return Mo.Rule}});Object.defineProperty(We,"Terminal",{enumerable:!0,get:function(){return Mo.Terminal}});var uJ=mn();Object.defineProperty(We,"serializeGrammar",{enumerable:!0,get:function(){return uJ.serializeGrammar}});Object.defineProperty(We,"serializeProduction",{enumerable:!0,get:function(){return uJ.serializeProduction}});var Awe=$g();Object.defineProperty(We,"GAstVisitor",{enumerable:!0,get:function(){return Awe.GAstVisitor}});function lwe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. +`;return a+l+c+u+g+f}Ry.createSyntaxDiagramsCode=owe});var hJ=w(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.Parser=We.createSyntaxDiagramsCode=We.clearCache=We.GAstVisitor=We.serializeProduction=We.serializeGrammar=We.Terminal=We.Rule=We.RepetitionWithSeparator=We.RepetitionMandatoryWithSeparator=We.RepetitionMandatory=We.Repetition=We.Option=We.NonTerminal=We.Alternative=We.Alternation=We.defaultLexerErrorProvider=We.NoViableAltException=We.NotAllInputParsedException=We.MismatchedTokenException=We.isRecognitionException=We.EarlyExitException=We.defaultParserErrorProvider=We.tokenName=We.tokenMatcher=We.tokenLabel=We.EOF=We.createTokenInstance=We.createToken=We.LexerDefinitionErrorType=We.Lexer=We.EMPTY_ALT=We.ParserDefinitionErrorType=We.EmbeddedActionsParser=We.CstParser=We.VERSION=void 0;var awe=Dv();Object.defineProperty(We,"VERSION",{enumerable:!0,get:function(){return awe.VERSION}});var Fy=jn();Object.defineProperty(We,"CstParser",{enumerable:!0,get:function(){return Fy.CstParser}});Object.defineProperty(We,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Fy.EmbeddedActionsParser}});Object.defineProperty(We,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Fy.ParserDefinitionErrorType}});Object.defineProperty(We,"EMPTY_ALT",{enumerable:!0,get:function(){return Fy.EMPTY_ALT}});var gJ=Bd();Object.defineProperty(We,"Lexer",{enumerable:!0,get:function(){return gJ.Lexer}});Object.defineProperty(We,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return gJ.LexerDefinitionErrorType}});var af=TA();Object.defineProperty(We,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(We,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(We,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(We,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(We,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(We,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var Awe=xd();Object.defineProperty(We,"defaultParserErrorProvider",{enumerable:!0,get:function(){return Awe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(We,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(We,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(We,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(We,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(We,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var lwe=Uv();Object.defineProperty(We,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return lwe.defaultLexerErrorProvider}});var Oo=mn();Object.defineProperty(We,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(We,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(We,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(We,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(We,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(We,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(We,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(We,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(We,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(We,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var fJ=mn();Object.defineProperty(We,"serializeGrammar",{enumerable:!0,get:function(){return fJ.serializeGrammar}});Object.defineProperty(We,"serializeProduction",{enumerable:!0,get:function(){return fJ.serializeProduction}});var cwe=$g();Object.defineProperty(We,"GAstVisitor",{enumerable:!0,get:function(){return cwe.GAstVisitor}});function uwe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. It performs no action other than printing this message. - Please avoid using it as it will be completely removed in the future`)}We.clearCache=lwe;var cwe=lJ();Object.defineProperty(We,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return cwe.createSyntaxDiagramsCode}});var uwe=function(){function r(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. -See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();We.Parser=uwe});var pJ=w((jet,hJ)=>{var Ny=gJ(),Fa=Ny.createToken,fJ=Ny.tokenMatcher,ux=Ny.Lexer,gwe=Ny.EmbeddedActionsParser;hJ.exports=r=>{let e=Fa({name:"LogicalOperator",pattern:ux.NA}),t=Fa({name:"Or",pattern:/\|/,categories:e}),i=Fa({name:"Xor",pattern:/\^/,categories:e}),n=Fa({name:"And",pattern:/&/,categories:e}),s=Fa({name:"Not",pattern:/!/}),o=Fa({name:"LParen",pattern:/\(/}),a=Fa({name:"RParen",pattern:/\)/}),l=Fa({name:"Query",pattern:r}),u=[Fa({name:"WhiteSpace",pattern:/\s+/,group:ux.SKIPPED}),t,i,n,o,a,s,e,l],g=new ux(u);class f extends gwe{constructor(p){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,v=this.CONSUME(e),D=this.SUBRULE2(this.atomicExpression);fJ(v,t)?y=T=>B(T)||D(T):fJ(v,i)?y=T=>!!(B(T)^D(T)):y=T=>B(T)&&D(T)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:C}=this.CONSUME(l);return y=>y(C)}},{ALT:()=>{this.CONSUME(s);let C=this.SUBRULE(this.atomicExpression);return y=>!C(y)}}])),this.RULE("parenthesisExpression",()=>{let C;return this.CONSUME(o),C=this.SUBRULE(this.expression),this.CONSUME(a),C}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:f}}});var dJ=w(Ty=>{var fwe=pJ();Ty.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=fwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ty.parse=Ty.makeParser()});var mJ=w((Jet,CJ)=>{"use strict";CJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gx=w((Wet,IJ)=>{var Od=mJ(),EJ={};for(let r of Object.keys(Od))EJ[Od[r]]=r;var st={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};IJ.exports=st;for(let r of Object.keys(st)){if(!("channels"in st[r]))throw new Error("missing channels property: "+r);if(!("labels"in st[r]))throw new Error("missing channel labels property: "+r);if(st[r].labels.length!==st[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=st[r];delete st[r].channels,delete st[r].labels,Object.defineProperty(st[r],"channels",{value:e}),Object.defineProperty(st[r],"labels",{value:t})}st.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};st.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(f){return(c-f)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};st.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=st.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};st.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function hwe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}st.rgb.keyword=function(r){let e=EJ[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(Od)){let s=Od[n],o=hwe(r,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};st.rgb.lab=function(r){let e=st.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};st.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};st.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};st.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};st.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};st.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};st.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};st.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};st.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};st.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};st.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};st.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};st.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?st.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};st.hsv.ansi16=function(r){return st.rgb.ansi16(st.hsv.rgb(r),r[2])};st.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};st.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};st.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};st.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};st.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};st.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};st.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};st.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};st.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};st.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};st.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};st.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};st.hwb.hcg=function(r){let e=r[1]/100,i=1-r[2]/100,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};st.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};st.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};st.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};st.gray.hsl=function(r){return[0,0,r[0]]};st.gray.hsv=st.gray.hsl;st.gray.hwb=function(r){return[0,100,r[0]]};st.gray.cmyk=function(r){return[0,0,0,r[0]]};st.gray.lab=function(r){return[r[0],0,0]};st.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};st.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var wJ=w((zet,yJ)=>{var Ly=gx();function pwe(){let r={},e=Object.keys(Ly);for(let t=e.length,i=0;i{var fx=gx(),Ewe=wJ(),Af={},Iwe=Object.keys(fx);function ywe(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function wwe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o{Af[r]={},Object.defineProperty(Af[r],"channels",{value:fx[r].channels}),Object.defineProperty(Af[r],"labels",{value:fx[r].labels});let e=Ewe(r);Object.keys(e).forEach(i=>{let n=e[i];Af[r][i]=wwe(n),Af[r][i].raw=ywe(n)})});BJ.exports=Af});var DJ=w((Xet,PJ)=>{"use strict";var QJ=(r,e)=>(...t)=>`\x1B[${r(...t)+e}m`,SJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};5;${i}m`},vJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},My=r=>r,xJ=(r,e,t)=>[r,e,t],lf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},hx,cf=(r,e,t,i)=>{hx===void 0&&(hx=bJ());let n=i?10:0,s={};for(let[o,a]of Object.entries(hx)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Bwe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",lf(e.color,"ansi",()=>cf(QJ,"ansi16",My,!1)),lf(e.color,"ansi256",()=>cf(SJ,"ansi256",My,!1)),lf(e.color,"ansi16m",()=>cf(vJ,"rgb",xJ,!1)),lf(e.bgColor,"ansi",()=>cf(QJ,"ansi16",My,!0)),lf(e.bgColor,"ansi256",()=>cf(SJ,"ansi256",My,!0)),lf(e.bgColor,"ansi16m",()=>cf(vJ,"rgb",xJ,!0)),e}Object.defineProperty(PJ,"exports",{enumerable:!0,get:Bwe})});var RJ=w((Zet,kJ)=>{"use strict";kJ.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var bwe=J("os"),FJ=J("tty"),ds=RJ(),{env:ai}=process,UA;ds("no-color")||ds("no-colors")||ds("color=false")||ds("color=never")?UA=0:(ds("color")||ds("colors")||ds("color=true")||ds("color=always"))&&(UA=1);"FORCE_COLOR"in ai&&(ai.FORCE_COLOR==="true"?UA=1:ai.FORCE_COLOR==="false"?UA=0:UA=ai.FORCE_COLOR.length===0?1:Math.min(parseInt(ai.FORCE_COLOR,10),3));function px(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function dx(r,e){if(UA===0)return 0;if(ds("color=16m")||ds("color=full")||ds("color=truecolor"))return 3;if(ds("color=256"))return 2;if(r&&!e&&UA===void 0)return 0;let t=UA||0;if(ai.TERM==="dumb")return t;if(process.platform==="win32"){let i=bwe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in ai)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in ai)||ai.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in ai)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(ai.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in ai)return 1;if(ai.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in ai){let i=parseInt((ai.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(ai.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(ai.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(ai.TERM)||"COLORTERM"in ai?1:t}function Qwe(r){let e=dx(r,r&&r.isTTY);return px(e)}NJ.exports={supportsColor:Qwe,stdout:px(dx(!0,FJ.isatty(1))),stderr:px(dx(!0,FJ.isatty(2)))}});var MJ=w(($et,LJ)=>{"use strict";var Swe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},vwe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r + Please avoid using it as it will be completely removed in the future`)}We.clearCache=uwe;var gwe=uJ();Object.defineProperty(We,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return gwe.createSyntaxDiagramsCode}});var fwe=function(){function r(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. +See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();We.Parser=fwe});var CJ=w((Jet,dJ)=>{var Ny=hJ(),Fa=Ny.createToken,pJ=Ny.tokenMatcher,ux=Ny.Lexer,hwe=Ny.EmbeddedActionsParser;dJ.exports=r=>{let e=Fa({name:"LogicalOperator",pattern:ux.NA}),t=Fa({name:"Or",pattern:/\|/,categories:e}),i=Fa({name:"Xor",pattern:/\^/,categories:e}),n=Fa({name:"And",pattern:/&/,categories:e}),s=Fa({name:"Not",pattern:/!/}),o=Fa({name:"LParen",pattern:/\(/}),a=Fa({name:"RParen",pattern:/\)/}),l=Fa({name:"Query",pattern:r}),u=[Fa({name:"WhiteSpace",pattern:/\s+/,group:ux.SKIPPED}),t,i,n,o,a,s,e,l],g=new ux(u);class f extends hwe{constructor(p){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,v=this.CONSUME(e),D=this.SUBRULE2(this.atomicExpression);pJ(v,t)?y=T=>B(T)||D(T):pJ(v,i)?y=T=>!!(B(T)^D(T)):y=T=>B(T)&&D(T)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:C}=this.CONSUME(l);return y=>y(C)}},{ALT:()=>{this.CONSUME(s);let C=this.SUBRULE(this.atomicExpression);return y=>!C(y)}}])),this.RULE("parenthesisExpression",()=>{let C;return this.CONSUME(o),C=this.SUBRULE(this.expression),this.CONSUME(a),C}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:f}}});var mJ=w(Ty=>{var pwe=CJ();Ty.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=pwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ty.parse=Ty.makeParser()});var IJ=w((zet,EJ)=>{"use strict";EJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gx=w((Vet,wJ)=>{var Od=IJ(),yJ={};for(let r of Object.keys(Od))yJ[Od[r]]=r;var st={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};wJ.exports=st;for(let r of Object.keys(st)){if(!("channels"in st[r]))throw new Error("missing channels property: "+r);if(!("labels"in st[r]))throw new Error("missing channel labels property: "+r);if(st[r].labels.length!==st[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=st[r];delete st[r].channels,delete st[r].labels,Object.defineProperty(st[r],"channels",{value:e}),Object.defineProperty(st[r],"labels",{value:t})}st.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};st.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(f){return(c-f)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};st.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=st.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};st.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function dwe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}st.rgb.keyword=function(r){let e=yJ[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(Od)){let s=Od[n],o=dwe(r,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};st.rgb.lab=function(r){let e=st.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};st.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};st.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};st.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};st.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};st.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};st.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};st.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};st.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};st.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};st.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};st.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};st.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?st.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};st.hsv.ansi16=function(r){return st.rgb.ansi16(st.hsv.rgb(r),r[2])};st.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};st.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};st.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};st.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};st.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};st.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};st.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};st.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};st.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};st.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};st.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};st.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};st.hwb.hcg=function(r){let e=r[1]/100,i=1-r[2]/100,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};st.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};st.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};st.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};st.gray.hsl=function(r){return[0,0,r[0]]};st.gray.hsv=st.gray.hsl;st.gray.hwb=function(r){return[0,100,r[0]]};st.gray.cmyk=function(r){return[0,0,0,r[0]]};st.gray.lab=function(r){return[r[0],0,0]};st.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};st.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var bJ=w((Xet,BJ)=>{var Ly=gx();function Cwe(){let r={},e=Object.keys(Ly);for(let t=e.length,i=0;i{var fx=gx(),ywe=bJ(),Af={},wwe=Object.keys(fx);function Bwe(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function bwe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o{Af[r]={},Object.defineProperty(Af[r],"channels",{value:fx[r].channels}),Object.defineProperty(Af[r],"labels",{value:fx[r].labels});let e=ywe(r);Object.keys(e).forEach(i=>{let n=e[i];Af[r][i]=bwe(n),Af[r][i].raw=Bwe(n)})});QJ.exports=Af});var RJ=w((_et,kJ)=>{"use strict";var vJ=(r,e)=>(...t)=>`\x1B[${r(...t)+e}m`,xJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};5;${i}m`},PJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},My=r=>r,DJ=(r,e,t)=>[r,e,t],lf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},hx,cf=(r,e,t,i)=>{hx===void 0&&(hx=SJ());let n=i?10:0,s={};for(let[o,a]of Object.entries(hx)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Qwe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",lf(e.color,"ansi",()=>cf(vJ,"ansi16",My,!1)),lf(e.color,"ansi256",()=>cf(xJ,"ansi256",My,!1)),lf(e.color,"ansi16m",()=>cf(PJ,"rgb",DJ,!1)),lf(e.bgColor,"ansi",()=>cf(vJ,"ansi16",My,!0)),lf(e.bgColor,"ansi256",()=>cf(xJ,"ansi256",My,!0)),lf(e.bgColor,"ansi16m",()=>cf(PJ,"rgb",DJ,!0)),e}Object.defineProperty(kJ,"exports",{enumerable:!0,get:Qwe})});var NJ=w(($et,FJ)=>{"use strict";FJ.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var Swe=J("os"),TJ=J("tty"),ds=NJ(),{env:ai}=process,KA;ds("no-color")||ds("no-colors")||ds("color=false")||ds("color=never")?KA=0:(ds("color")||ds("colors")||ds("color=true")||ds("color=always"))&&(KA=1);"FORCE_COLOR"in ai&&(ai.FORCE_COLOR==="true"?KA=1:ai.FORCE_COLOR==="false"?KA=0:KA=ai.FORCE_COLOR.length===0?1:Math.min(parseInt(ai.FORCE_COLOR,10),3));function px(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function dx(r,e){if(KA===0)return 0;if(ds("color=16m")||ds("color=full")||ds("color=truecolor"))return 3;if(ds("color=256"))return 2;if(r&&!e&&KA===void 0)return 0;let t=KA||0;if(ai.TERM==="dumb")return t;if(process.platform==="win32"){let i=Swe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in ai)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in ai)||ai.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in ai)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(ai.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in ai)return 1;if(ai.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in ai){let i=parseInt((ai.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(ai.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(ai.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(ai.TERM)||"COLORTERM"in ai?1:t}function vwe(r){let e=dx(r,r&&r.isTTY);return px(e)}LJ.exports={supportsColor:vwe,stdout:px(dx(!0,TJ.isatty(1))),stderr:px(dx(!0,TJ.isatty(2)))}});var KJ=w((ttt,OJ)=>{"use strict";var xwe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},Pwe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r `:` `)+t,n=i+1,i=r.indexOf(` -`,n)}while(i!==-1);return s+=r.substr(n),s};LJ.exports={stringReplaceAll:Swe,stringEncaseCRLFWithFirstIndex:vwe}});var GJ=w((ett,HJ)=>{"use strict";var xwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,OJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Pwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Dwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,kwe=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function UJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):kwe.get(r)||r}function Rwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(Pwe))t.push(n[2].replace(Dwe,(a,l,c)=>l?UJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function Fwe(r){OJ.lastIndex=0;let e=[],t;for(;(t=OJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=Rwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function KJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}HJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(xwe,(s,o,a,l,c,u)=>{if(o)n.push(UJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:KJ(r,t)(g)),t.push({inverse:a,styles:Fwe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(KJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wx=w((ttt,JJ)=>{"use strict";var Kd=DJ(),{stdout:mx,stderr:Ex}=TJ(),{stringReplaceAll:Nwe,stringEncaseCRLFWithFirstIndex:Twe}=MJ(),YJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Lwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mx?mx.level:0;r.level=e.level===void 0?t:e.level},Ix=class{constructor(e){return jJ(e)}},jJ=r=>{let e={};return Lwe(e,r),e.template=(...t)=>Kwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Ix,e.template};function Oy(r){return jJ(r)}for(let[r,e]of Object.entries(Kd))uf[r]={get(){let t=Ky(this,yx(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=Ky(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var qJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of qJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yx(Kd.color[YJ[e]][r](...t),Kd.color.close,this._styler);return Ky(this,i,this._isEmpty)}}};for(let r of qJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yx(Kd.bgColor[YJ[t]][r](...i),Kd.bgColor.close,this._styler);return Ky(this,n,this._isEmpty)}}}}var Mwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yx=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},Ky=(r,e,t)=>{let i=(...n)=>Owe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Mwe,i._generator=r,i._styler=e,i._isEmpty=t,i},Owe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Nwe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` -`);return s!==-1&&(e=Twe(e,n,i,s)),i+e+n},Cx,Kwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s{"use strict";Cs.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;Cs.find=(r,e)=>r.nodes.find(t=>t.type===e);Cs.exceedsLimit=(r,e,t=1,i)=>i===!1||!Cs.isInteger(r)||!Cs.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;Cs.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};Cs.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;Cs.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;Cs.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;Cs.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);Cs.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n{"use strict";var WJ=Uy();zJ.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&WJ.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&WJ.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var XJ=w((ntt,VJ)=>{"use strict";VJ.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var sW=w((stt,nW)=>{"use strict";var ZJ=XJ(),Ic=(r,e,t)=>{if(ZJ(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(ZJ(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(Ic.cache.hasOwnProperty(l))return Ic.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let C=r+"|"+e;return i.capture?`(${C})`:i.wrap===!1?C:`(?:${C})`}let g=iW(r)||iW(e),f={min:r,max:e,a:c,b:u},h=[],p=[];if(g&&(f.isPadded=g,f.maxLen=String(f.max).length),c<0){let C=u<0?Math.abs(u):1;p=_J(C,Math.abs(c),f,i),c=f.a=0}return u>=0&&(h=_J(c,u,f,i)),f.negatives=p,f.positives=h,f.result=Uwe(p,h,i),i.capture===!0?f.result=`(${f.result})`:i.wrap!==!1&&h.length+p.length>1&&(f.result=`(?:${f.result})`),Ic.cache[l]=f,f.result};function Uwe(r,e,t){let i=Bx(r,e,"-",!1,t)||[],n=Bx(e,r,"",!1,t)||[],s=Bx(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Hwe(r,e){let t=1,i=1,n=eW(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=eW(r,t);for(n=tW(e+1,i)-1;r1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+rW(a.count),o=c+1;continue}t.isPadded&&(g=Jwe(c,t,i)),u.string=g+u.pattern+rW(u.count),s.push(u),o=c+1,a=u}return s}function Bx(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!$J(e,"string",a)&&s.push(t+a),i&&$J(e,"string",a)&&s.push(t+a)}return s}function Ywe(r,e){let t=[];for(let i=0;ie?1:e>r?-1:0}function $J(r,e,t){return r.some(i=>i[e]===t)}function eW(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function tW(r,e){return r-r%Math.pow(10,e)}function rW(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function qwe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function iW(r){return/^-?(0+)\d/.test(r)}function Jwe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}Ic.cache={};Ic.clearCache=()=>Ic.cache={};nW.exports=Ic});var Sx=w((ott,fW)=>{"use strict";var Wwe=J("util"),AW=sW(),oW=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),zwe=r=>e=>r===!0?Number(e):String(e),bx=r=>typeof r=="number"||typeof r=="string"&&r!=="",Hd=r=>Number.isInteger(+r),Qx=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},Vwe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,Xwe=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},aW=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length{r.negatives.sort((o,a)=>oa?1:0),r.positives.sort((o,a)=>oa?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},lW=(r,e,t,i)=>{if(t)return AW(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},cW=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return AW(r,e,t)},uW=(...r)=>new RangeError("Invalid range arguments: "+Wwe.inspect(...r)),gW=(r,e,t)=>{if(t.strictRanges===!0)throw uW([r,e]);return[]},_we=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},$we=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw uW([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=Qx(a)||Qx(l)||Qx(c),g=u?Math.max(a.length,l.length,c.length):0,f=u===!1&&Vwe(r,e,i)===!1,h=i.transform||zwe(f);if(i.toRegex&&t===1)return lW(aW(r,g),aW(e,g),!0,i);let p={negatives:[],positives:[]},C=v=>p[v<0?"negatives":"positives"].push(Math.abs(v)),y=[],B=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?C(n):y.push(Xwe(h(n,B),g,f)),n=o?n-t:n+t,B++;return i.toRegex===!0?t>1?Zwe(p,i):cW(y,null,{wrap:!1,...i}):y},eBe=(r,e,t=1,i={})=>{if(!Hd(r)&&r.length>1||!Hd(e)&&e.length>1)return gW(r,e,i);let n=i.transform||(f=>String.fromCharCode(f)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return lW(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?cW(u,null,{wrap:!1,options:i}):u},Gy=(r,e,t,i={})=>{if(e==null&&bx(r))return[r];if(!bx(r)||!bx(e))return gW(r,e,i);if(typeof t=="function")return Gy(r,e,1,{transform:t});if(oW(t))return Gy(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,Hd(t)?Hd(r)&&Hd(e)?$we(r,e,t,n):eBe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!oW(t)?_we(t,n):Gy(r,e,1,t)};fW.exports=Gy});var dW=w((att,pW)=>{"use strict";var tBe=Sx(),hW=Uy(),rBe=(r,e={})=>{let t=(i,n={})=>{let s=hW.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=hW.reduce(i.nodes),g=tBe(...u,{...e,wrap:!1,toRegex:!0});if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};pW.exports=rBe});var EW=w((Att,mW)=>{"use strict";var iBe=Sx(),CW=Hy(),gf=Uy(),yc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?gf.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(yc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?yc(n,s,t):n+s);return gf.flatten(i)},nBe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(yc(a.pop(),CW(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(yc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=gf.reduce(n.nodes);if(gf.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=iBe(...g,e);f.length===0&&(f=CW(n,e)),a.push(yc(a.pop(),f)),n.nodes=[];return}let l=gf.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g{"use strict";IW.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var SW=w((ctt,QW)=>{"use strict";var sBe=Hy(),{MAX_LENGTH:wW,CHAR_BACKSLASH:vx,CHAR_BACKTICK:oBe,CHAR_COMMA:aBe,CHAR_DOT:ABe,CHAR_LEFT_PARENTHESES:lBe,CHAR_RIGHT_PARENTHESES:cBe,CHAR_LEFT_CURLY_BRACE:uBe,CHAR_RIGHT_CURLY_BRACE:gBe,CHAR_LEFT_SQUARE_BRACKET:BW,CHAR_RIGHT_SQUARE_BRACKET:bW,CHAR_DOUBLE_QUOTE:fBe,CHAR_SINGLE_QUOTE:hBe,CHAR_NO_BREAK_SPACE:pBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:dBe}=yW(),CBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(wW,t.maxLength):wW;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,f,h={},p=()=>r[u++],C=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(C({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:sBe(o)}]}C({type:"comma",value:f}),o.commas++;continue}if(f===ABe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){C({type:"text",value:f});continue}if(a.type==="dot"){if(o.range=[],a.value+=f,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+f,a=B,o.ranges--;continue}C({type:"dot",value:f});continue}C({type:"text",value:f})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(v=>{v.nodes||(v.type==="open"&&(v.isOpen=!0),v.type==="close"&&(v.isClose=!0),v.nodes||(v.type="text"),v.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return C({type:"eos"}),n};QW.exports=CBe});var PW=w((utt,xW)=>{"use strict";var vW=Hy(),mBe=dW(),EBe=EW(),IBe=SW(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>IBe(r,e);Jn.stringify=(r,e={})=>vW(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),mBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=EBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);xW.exports=Jn});var Gd=w((gtt,NW)=>{"use strict";var yBe=J("path"),Oo="\\\\/",DW=`[^${Oo}]`,Na="\\.",wBe="\\+",BBe="\\?",Yy="\\/",bBe="(?=.)",kW="[^/]",xx=`(?:${Yy}|$)`,RW=`(?:^|${Yy})`,Px=`${Na}{1,2}${xx}`,QBe=`(?!${Na})`,SBe=`(?!${RW}${Px})`,vBe=`(?!${Na}{0,1}${xx})`,xBe=`(?!${Px})`,PBe=`[^.${Yy}]`,DBe=`${kW}*?`,FW={DOT_LITERAL:Na,PLUS_LITERAL:wBe,QMARK_LITERAL:BBe,SLASH_LITERAL:Yy,ONE_CHAR:bBe,QMARK:kW,END_ANCHOR:xx,DOTS_SLASH:Px,NO_DOT:QBe,NO_DOTS:SBe,NO_DOT_SLASH:vBe,NO_DOTS_SLASH:xBe,QMARK_NO_DOT:PBe,STAR:DBe,START_ANCHOR:RW},kBe={...FW,SLASH_LITERAL:`[${Oo}]`,QMARK:DW,STAR:`${DW}*?`,DOTS_SLASH:`${Na}{1,2}(?:[${Oo}]|$)`,NO_DOT:`(?!${Na})`,NO_DOTS:`(?!(?:^|[${Oo}])${Na}{1,2}(?:[${Oo}]|$))`,NO_DOT_SLASH:`(?!${Na}{0,1}(?:[${Oo}]|$))`,NO_DOTS_SLASH:`(?!${Na}{1,2}(?:[${Oo}]|$))`,QMARK_NO_DOT:`[^.${Oo}]`,START_ANCHOR:`(?:^|[${Oo}])`,END_ANCHOR:`(?:[${Oo}]|$)`},RBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};NW.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:RBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:yBe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?kBe:FW}}});var Yd=w(wn=>{"use strict";var FBe=J("path"),NBe=process.platform==="win32",{REGEX_BACKSLASH:TBe,REGEX_REMOVE_BACKSLASH:LBe,REGEX_SPECIAL_CHARS:MBe,REGEX_SPECIAL_CHARS_GLOBAL:OBe}=Gd();wn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);wn.hasRegexChars=r=>MBe.test(r);wn.isRegexChar=r=>r.length===1&&wn.hasRegexChars(r);wn.escapeRegex=r=>r.replace(OBe,"\\$1");wn.toPosixSlashes=r=>r.replace(TBe,"/");wn.removeBackslashes=r=>r.replace(LBe,e=>e==="\\"?"":e);wn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};wn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:NBe===!0||FBe.sep==="\\";wn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?wn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};wn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};wn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var GW=w((htt,HW)=>{"use strict";var TW=Yd(),{CHAR_ASTERISK:Dx,CHAR_AT:KBe,CHAR_BACKWARD_SLASH:jd,CHAR_COMMA:UBe,CHAR_DOT:kx,CHAR_EXCLAMATION_MARK:Rx,CHAR_FORWARD_SLASH:UW,CHAR_LEFT_CURLY_BRACE:Fx,CHAR_LEFT_PARENTHESES:Nx,CHAR_LEFT_SQUARE_BRACKET:HBe,CHAR_PLUS:GBe,CHAR_QUESTION_MARK:LW,CHAR_RIGHT_CURLY_BRACE:YBe,CHAR_RIGHT_PARENTHESES:MW,CHAR_RIGHT_SQUARE_BRACKET:jBe}=Gd(),OW=r=>r===UW||r===jd,KW=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},qBe=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,f=!1,h=!1,p=!1,C=!1,y=!1,B=!1,v=!1,D=!1,T=!1,H=!1,j=0,$,V,W={value:"",depth:0,isGlob:!1},_=()=>c>=i,A=()=>l.charCodeAt(c+1),Ae=()=>($=V,l.charCodeAt(++c));for(;c0&&(re=l.slice(0,u),l=l.slice(u),g-=u),ge&&p===!0&&g>0?(ge=l.slice(0,g),M=l.slice(g)):p===!0?(ge="",M=l):ge=l,ge&&ge!==""&&ge!=="/"&&ge!==l&&OW(ge.charCodeAt(ge.length-1))&&(ge=ge.slice(0,-1)),t.unescape===!0&&(M&&(M=TW.removeBackslashes(M)),ge&&v===!0&&(ge=TW.removeBackslashes(ge)));let F={prefix:re,input:r,start:u,base:ge,glob:M,isBrace:f,isBracket:h,isGlob:p,isExtglob:C,isGlobstar:y,negated:D,negatedExtglob:T};if(t.tokens===!0&&(F.maxDepth=0,OW(V)||o.push(W),F.tokens=o),t.parts===!0||t.tokens===!0){let ue;for(let pe=0;pe{"use strict";var jy=Gd(),Wn=Yd(),{MAX_LENGTH:qy,POSIX_REGEX_SOURCE:JBe,REGEX_NON_SPECIAL_CHARS:WBe,REGEX_SPECIAL_CHARS_BACKREF:zBe,REPLACEMENTS:YW}=jy,VBe=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch{return r.map(n=>Wn.escapeRegex(n)).join("..")}return t},ff=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,Tx=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=YW[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(qy,t.maxLength):qy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=Wn.isWindows(e),c=jy.globChars(l),u=jy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:f,SLASH_LITERAL:h,ONE_CHAR:p,DOTS_SLASH:C,NO_DOT:y,NO_DOT_SLASH:B,NO_DOTS_SLASH:v,QMARK:D,QMARK_NO_DOT:T,STAR:H,START_ANCHOR:j}=c,$=Y=>`(${a}(?:(?!${j}${Y.dot?C:g}).)*?)`,V=t.dot?"":y,W=t.dot?D:T,_=t.bash===!0?$(t):H;t.capture&&(_=`(${_})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=Wn.removePrefix(r,A),n=r.length;let Ae=[],ge=[],re=[],M=s,F,ue=()=>A.index===n-1,pe=A.peek=(Y=1)=>r[A.index+Y],ke=A.advance=()=>r[++A.index]||"",Fe=()=>r.slice(A.index+1),Ne=(Y="",he=0)=>{A.consumed+=Y,A.index+=he},oe=Y=>{A.output+=Y.output!=null?Y.output:Y.value,Ne(Y.value)},le=()=>{let Y=1;for(;pe()==="!"&&(pe(2)!=="("||pe(3)==="?");)ke(),A.start++,Y++;return Y%2===0?!1:(A.negated=!0,A.start++,!0)},Be=Y=>{A[Y]++,re.push(Y)},fe=Y=>{A[Y]--,re.pop()},ae=Y=>{if(M.type==="globstar"){let he=A.braces>0&&(Y.type==="comma"||Y.type==="brace"),ie=Y.extglob===!0||Ae.length&&(Y.type==="pipe"||Y.type==="paren");Y.type!=="slash"&&Y.type!=="paren"&&!he&&!ie&&(A.output=A.output.slice(0,-M.output.length),M.type="star",M.value="*",M.output=_,A.output+=M.output)}if(Ae.length&&Y.type!=="paren"&&(Ae[Ae.length-1].inner+=Y.value),(Y.value||Y.output)&&oe(Y),M&&M.type==="text"&&Y.type==="text"){M.value+=Y.value,M.output=(M.output||"")+Y.value;return}Y.prev=M,o.push(Y),M=Y},qe=(Y,he)=>{let ie={...u[he],conditions:1,inner:""};ie.prev=M,ie.parens=A.parens,ie.output=A.output;let de=(t.capture?"(":"")+ie.open;Be("parens"),ae({type:Y,value:he,output:A.output?"":p}),ae({type:"paren",extglob:!0,value:ke(),output:de}),Ae.push(ie)},ne=Y=>{let he=Y.close+(t.capture?")":""),ie;if(Y.type==="negate"){let de=_;if(Y.inner&&Y.inner.length>1&&Y.inner.includes("/")&&(de=$(t)),(de!==_||ue()||/^\)+$/.test(Fe()))&&(he=Y.close=`)$))${de}`),Y.inner.includes("*")&&(ie=Fe())&&/^\.[^\\/.]+$/.test(ie)){let _e=Tx(ie,{...e,fastpaths:!1}).output;he=Y.close=`)${_e})${de})`}Y.prev.type==="bos"&&(A.negatedExtglob=!0)}ae({type:"paren",extglob:!0,value:F,output:he}),fe("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let Y=!1,he=r.replace(zBe,(ie,de,_e,Pt,It,Mr)=>Pt==="\\"?(Y=!0,ie):Pt==="?"?de?de+Pt+(It?D.repeat(It.length):""):Mr===0?W+(It?D.repeat(It.length):""):D.repeat(_e.length):Pt==="."?g.repeat(_e.length):Pt==="*"?de?de+Pt+(It?_:""):_:de?ie:`\\${ie}`);return Y===!0&&(t.unescape===!0?he=he.replace(/\\/g,""):he=he.replace(/\\+/g,ie=>ie.length%2===0?"\\\\":ie?"\\":"")),he===r&&t.contains===!0?(A.output=r,A):(A.output=Wn.wrapOutput(he,A,e),A)}for(;!ue();){if(F=ke(),F==="\0")continue;if(F==="\\"){let ie=pe();if(ie==="/"&&t.bash!==!0||ie==="."||ie===";")continue;if(!ie){F+="\\",ae({type:"text",value:F});continue}let de=/^\\+/.exec(Fe()),_e=0;if(de&&de[0].length>2&&(_e=de[0].length,A.index+=_e,_e%2!==0&&(F+="\\")),t.unescape===!0?F=ke():F+=ke(),A.brackets===0){ae({type:"text",value:F});continue}}if(A.brackets>0&&(F!=="]"||M.value==="["||M.value==="[^")){if(t.posix!==!1&&F===":"){let ie=M.value.slice(1);if(ie.includes("[")&&(M.posix=!0,ie.includes(":"))){let de=M.value.lastIndexOf("["),_e=M.value.slice(0,de),Pt=M.value.slice(de+2),It=JBe[Pt];if(It){M.value=_e+It,A.backtrack=!0,ke(),!s.output&&o.indexOf(M)===1&&(s.output=p);continue}}}(F==="["&&pe()!==":"||F==="-"&&pe()==="]")&&(F=`\\${F}`),F==="]"&&(M.value==="["||M.value==="[^")&&(F=`\\${F}`),t.posix===!0&&F==="!"&&M.value==="["&&(F="^"),M.value+=F,oe({value:F});continue}if(A.quotes===1&&F!=='"'){F=Wn.escapeRegex(F),M.value+=F,oe({value:F});continue}if(F==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&ae({type:"text",value:F});continue}if(F==="("){Be("parens"),ae({type:"paren",value:F});continue}if(F===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ff("opening","("));let ie=Ae[Ae.length-1];if(ie&&A.parens===ie.parens+1){ne(Ae.pop());continue}ae({type:"paren",value:F,output:A.parens?")":"\\)"}),fe("parens");continue}if(F==="["){if(t.nobracket===!0||!Fe().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));F=`\\${F}`}else Be("brackets");ae({type:"bracket",value:F});continue}if(F==="]"){if(t.nobracket===!0||M&&M.type==="bracket"&&M.value.length===1){ae({type:"text",value:F,output:`\\${F}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ff("opening","["));ae({type:"text",value:F,output:`\\${F}`});continue}fe("brackets");let ie=M.value.slice(1);if(M.posix!==!0&&ie[0]==="^"&&!ie.includes("/")&&(F=`/${F}`),M.value+=F,oe({value:F}),t.literalBrackets===!1||Wn.hasRegexChars(ie))continue;let de=Wn.escapeRegex(M.value);if(A.output=A.output.slice(0,-M.value.length),t.literalBrackets===!0){A.output+=de,M.value=de;continue}M.value=`(${a}${de}|${M.value})`,A.output+=M.value;continue}if(F==="{"&&t.nobrace!==!0){Be("braces");let ie={type:"brace",value:F,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ge.push(ie),ae(ie);continue}if(F==="}"){let ie=ge[ge.length-1];if(t.nobrace===!0||!ie){ae({type:"text",value:F,output:F});continue}let de=")";if(ie.dots===!0){let _e=o.slice(),Pt=[];for(let It=_e.length-1;It>=0&&(o.pop(),_e[It].type!=="brace");It--)_e[It].type!=="dots"&&Pt.unshift(_e[It].value);de=VBe(Pt,t),A.backtrack=!0}if(ie.comma!==!0&&ie.dots!==!0){let _e=A.output.slice(0,ie.outputIndex),Pt=A.tokens.slice(ie.tokensIndex);ie.value=ie.output="\\{",F=de="\\}",A.output=_e;for(let It of Pt)A.output+=It.output||It.value}ae({type:"brace",value:F,output:de}),fe("braces"),ge.pop();continue}if(F==="|"){Ae.length>0&&Ae[Ae.length-1].conditions++,ae({type:"text",value:F});continue}if(F===","){let ie=F,de=ge[ge.length-1];de&&re[re.length-1]==="braces"&&(de.comma=!0,ie="|"),ae({type:"comma",value:F,output:ie});continue}if(F==="/"){if(M.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),M=s;continue}ae({type:"slash",value:F,output:h});continue}if(F==="."){if(A.braces>0&&M.type==="dot"){M.value==="."&&(M.output=g);let ie=ge[ge.length-1];M.type="dots",M.output+=F,M.value+=F,ie.dots=!0;continue}if(A.braces+A.parens===0&&M.type!=="bos"&&M.type!=="slash"){ae({type:"text",value:F,output:g});continue}ae({type:"dot",value:F,output:g});continue}if(F==="?"){if(!(M&&M.value==="(")&&t.noextglob!==!0&&pe()==="("&&pe(2)!=="?"){qe("qmark",F);continue}if(M&&M.type==="paren"){let de=pe(),_e=F;if(de==="<"&&!Wn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(M.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(Fe()))&&(_e=`\\${F}`),ae({type:"text",value:F,output:_e});continue}if(t.dot!==!0&&(M.type==="slash"||M.type==="bos")){ae({type:"qmark",value:F,output:T});continue}ae({type:"qmark",value:F,output:D});continue}if(F==="!"){if(t.noextglob!==!0&&pe()==="("&&(pe(2)!=="?"||!/[!=<:]/.test(pe(3)))){qe("negate",F);continue}if(t.nonegate!==!0&&A.index===0){le();continue}}if(F==="+"){if(t.noextglob!==!0&&pe()==="("&&pe(2)!=="?"){qe("plus",F);continue}if(M&&M.value==="("||t.regex===!1){ae({type:"plus",value:F,output:f});continue}if(M&&(M.type==="bracket"||M.type==="paren"||M.type==="brace")||A.parens>0){ae({type:"plus",value:F});continue}ae({type:"plus",value:f});continue}if(F==="@"){if(t.noextglob!==!0&&pe()==="("&&pe(2)!=="?"){ae({type:"at",extglob:!0,value:F,output:""});continue}ae({type:"text",value:F});continue}if(F!=="*"){(F==="$"||F==="^")&&(F=`\\${F}`);let ie=WBe.exec(Fe());ie&&(F+=ie[0],A.index+=ie[0].length),ae({type:"text",value:F});continue}if(M&&(M.type==="globstar"||M.star===!0)){M.type="star",M.star=!0,M.value+=F,M.output=_,A.backtrack=!0,A.globstar=!0,Ne(F);continue}let Y=Fe();if(t.noextglob!==!0&&/^\([^?]/.test(Y)){qe("star",F);continue}if(M.type==="star"){if(t.noglobstar===!0){Ne(F);continue}let ie=M.prev,de=ie.prev,_e=ie.type==="slash"||ie.type==="bos",Pt=de&&(de.type==="star"||de.type==="globstar");if(t.bash===!0&&(!_e||Y[0]&&Y[0]!=="/")){ae({type:"star",value:F,output:""});continue}let It=A.braces>0&&(ie.type==="comma"||ie.type==="brace"),Mr=Ae.length&&(ie.type==="pipe"||ie.type==="paren");if(!_e&&ie.type!=="paren"&&!It&&!Mr){ae({type:"star",value:F,output:""});continue}for(;Y.slice(0,3)==="/**";){let ii=r[A.index+4];if(ii&&ii!=="/")break;Y=Y.slice(3),Ne("/**",3)}if(ie.type==="bos"&&ue()){M.type="globstar",M.value+=F,M.output=$(t),A.output=M.output,A.globstar=!0,Ne(F);continue}if(ie.type==="slash"&&ie.prev.type!=="bos"&&!Pt&&ue()){A.output=A.output.slice(0,-(ie.output+M.output).length),ie.output=`(?:${ie.output}`,M.type="globstar",M.output=$(t)+(t.strictSlashes?")":"|$)"),M.value+=F,A.globstar=!0,A.output+=ie.output+M.output,Ne(F);continue}if(ie.type==="slash"&&ie.prev.type!=="bos"&&Y[0]==="/"){let ii=Y[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(ie.output+M.output).length),ie.output=`(?:${ie.output}`,M.type="globstar",M.output=`${$(t)}${h}|${h}${ii})`,M.value+=F,A.output+=ie.output+M.output,A.globstar=!0,Ne(F+ke()),ae({type:"slash",value:"/",output:""});continue}if(ie.type==="bos"&&Y[0]==="/"){M.type="globstar",M.value+=F,M.output=`(?:^|${h}|${$(t)}${h})`,A.output=M.output,A.globstar=!0,Ne(F+ke()),ae({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-M.output.length),M.type="globstar",M.output=$(t),M.value+=F,A.output+=M.output,A.globstar=!0,Ne(F);continue}let he={type:"star",value:F,output:_};if(t.bash===!0){he.output=".*?",(M.type==="bos"||M.type==="slash")&&(he.output=V+he.output),ae(he);continue}if(M&&(M.type==="bracket"||M.type==="paren")&&t.regex===!0){he.output=F,ae(he);continue}(A.index===A.start||M.type==="slash"||M.type==="dot")&&(M.type==="dot"?(A.output+=B,M.output+=B):t.dot===!0?(A.output+=v,M.output+=v):(A.output+=V,M.output+=V),pe()!=="*"&&(A.output+=p,M.output+=p)),ae(he)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));A.output=Wn.escapeLast(A.output,"["),fe("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing",")"));A.output=Wn.escapeLast(A.output,"("),fe("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","}"));A.output=Wn.escapeLast(A.output,"{"),fe("braces")}if(t.strictSlashes!==!0&&(M.type==="star"||M.type==="bracket")&&ae({type:"maybe_slash",value:"",output:`${h}?`}),A.backtrack===!0){A.output="";for(let Y of A.tokens)A.output+=Y.output!=null?Y.output:Y.value,Y.suffix&&(A.output+=Y.suffix)}return A};Tx.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(qy,t.maxLength):qy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=YW[r]||r;let s=Wn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:f,STAR:h,START_ANCHOR:p}=jy.globChars(s),C=t.dot?g:u,y=t.dot?f:u,B=t.capture?"":"?:",v={negated:!1,prefix:""},D=t.bash===!0?".*?":h;t.capture&&(D=`(${D})`);let T=V=>V.noglobstar===!0?D:`(${B}(?:(?!${p}${V.dot?c:o}).)*?)`,H=V=>{switch(V){case"*":return`${C}${l}${D}`;case".*":return`${o}${l}${D}`;case"*.*":return`${C}${D}${o}${l}${D}`;case"*/*":return`${C}${D}${a}${l}${y}${D}`;case"**":return C+T(t);case"**/*":return`(?:${C}${T(t)}${a})?${y}${l}${D}`;case"**/*.*":return`(?:${C}${T(t)}${a})?${y}${D}${o}${l}${D}`;case"**/.*":return`(?:${C}${T(t)}${a})?${o}${l}${D}`;default:{let W=/^(.*?)\.(\w+)$/.exec(V);if(!W)return;let _=H(W[1]);return _?_+o+W[2]:void 0}}},j=Wn.removePrefix(r,v),$=H(j);return $&&t.strictSlashes!==!0&&($+=`${a}?`),$};jW.exports=Tx});var WW=w((dtt,JW)=>{"use strict";var XBe=J("path"),ZBe=GW(),Lx=qW(),Mx=Yd(),_Be=Gd(),$Be=r=>r&&typeof r=="object"&&!Array.isArray(r),Yr=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(f=>Yr(f,e,t));return f=>{for(let h of u){let p=h(f);if(p)return p}return!1}}let i=$Be(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Mx.isWindows(e),o=i?Yr.compileRe(r,e):Yr.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=Yr(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:f,match:h,output:p}=Yr.test(u,o,e,{glob:r,posix:s}),C={glob:r,state:a,regex:o,posix:s,input:u,output:p,match:h,isMatch:f};return typeof n.onResult=="function"&&n.onResult(C),f===!1?(C.isMatch=!1,g?C:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(C),C.isMatch=!1,g?C:!1):(typeof n.onMatch=="function"&&n.onMatch(C),g?C:!0)};return t&&(c.state=a),c};Yr.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?Mx.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Yr.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Yr.matchBase=(r,e,t,i=Mx.isWindows(t))=>(e instanceof RegExp?e:Yr.makeRe(e,t)).test(XBe.basename(r));Yr.isMatch=(r,e,t)=>Yr(e,t)(r);Yr.parse=(r,e)=>Array.isArray(r)?r.map(t=>Yr.parse(t,e)):Lx(r,{...e,fastpaths:!1});Yr.scan=(r,e)=>ZBe(r,e);Yr.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=Yr.toRegex(a,e);return i===!0&&(l.state=r),l};Yr.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=Lx.fastpaths(r,e)),n.output||(n=Lx(r,e)),Yr.compileRe(n,e,t,i)};Yr.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};Yr.constants=_Be;JW.exports=Yr});var Ox=w((Ctt,zW)=>{"use strict";zW.exports=WW()});var Bn=w((mtt,_W)=>{"use strict";var XW=J("util"),ZW=PW(),Ko=Ox(),Kx=Yd(),VW=r=>r===""||r==="./",Sr=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};Sr.match=Sr;Sr.matcher=(r,e)=>Ko(r,e);Sr.isMatch=(r,e,t)=>Ko(e,t)(r);Sr.any=Sr.isMatch;Sr.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=Sr(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};Sr.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${XW.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>Sr.contains(r,i,t));if(typeof e=="string"){if(VW(r)||VW(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return Sr.isMatch(r,e,{...t,contains:!0})};Sr.matchKeys=(r,e,t)=>{if(!Kx.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=Sr(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};Sr.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(i.some(o=>s(o)))return!0}return!1};Sr.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};Sr.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${XW.inspect(r)}"`);return[].concat(e).every(i=>Ko(i,t)(r))};Sr.capture=(r,e,t)=>{let i=Kx.isWindows(t),s=Ko.makeRe(String(r),{...t,capture:!0}).exec(i?Kx.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};Sr.makeRe=(...r)=>Ko.makeRe(...r);Sr.scan=(...r)=>Ko.scan(...r);Sr.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of ZW(String(i),e))t.push(Ko.parse(n,e));return t};Sr.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:ZW(r,e)};Sr.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return Sr.braces(r,{...e,expand:!0})};_W.exports=Sr});var e3=w((Ett,$W)=>{"use strict";$W.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var r3=w((Itt,t3)=>{"use strict";var e0e=e3();t3.exports=r=>typeof r=="string"?r.replace(e0e(),""):r});var d3=w((ktt,p3)=>{"use strict";p3.exports=(...r)=>[...new Set([].concat(...r))]});var sP=w((Rtt,E3)=>{"use strict";var f0e=J("stream"),C3=f0e.PassThrough,h0e=Array.prototype.slice;E3.exports=p0e;function p0e(){let r=[],e=!1,t=h0e.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=C3(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function f(h){function p(){h.removeListener("merge2UnpipeEnd",p),h.removeListener("end",p),g()}if(h._readableState.endEmitted)return g();h.on("merge2UnpipeEnd",p),h.on("end",p),h.pipe(s,{end:!1}),h.resume()}for(let h=0;h{"use strict";Object.defineProperty(Zy,"__esModule",{value:!0});function d0e(r){return r.reduce((e,t)=>[].concat(e,t),[])}Zy.flatten=d0e;function C0e(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Zy.splitWhen=C0e});var y3=w(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});function m0e(r){return r.code==="ENOENT"}oP.isEnoentCodeError=m0e});var w3=w(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});var aP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function E0e(r,e){return new aP(r,e)}AP.createDirentFromStats=E0e});var B3=w(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var I0e=J("path"),y0e=2,w0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function B0e(r){return r.replace(/\\/g,"/")}yf.unixify=B0e;function b0e(r,e){return I0e.resolve(r,e)}yf.makeAbsolute=b0e;function Q0e(r){return r.replace(w0e,"\\$2")}yf.escape=Q0e;function S0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(y0e)}return r}yf.removeLeadingDotSegment=S0e});var Q3=w((Mtt,b3)=>{b3.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var x3=w((Ott,v3)=>{var v0e=Q3(),S3={"{":"}","(":")","[":"]"},x0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;ee&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(tt&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=S3[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},P0e=function(r){if(r[0]==="!")return!0;for(var e=0;e{"use strict";var D0e=x3(),k0e=J("path").posix.dirname,R0e=J("os").platform()==="win32",lP="/",F0e=/\\/g,N0e=/[\{\[].*[\}\]]$/,T0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,L0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;P3.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&R0e&&e.indexOf(lP)<0&&(e=e.replace(F0e,lP)),N0e.test(e)&&(e+=lP),e+="a";do e=k0e(e);while(D0e(e)||T0e.test(e));return e.replace(L0e,"$1")}});var K3=w($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});var M0e=J("path"),O0e=D3(),k3=Bn(),K0e=Ox(),R3="**",U0e="\\",H0e=/[*?]|^!/,G0e=/\[.*]/,Y0e=/(?:^|[^!*+?@])\(.*\|.*\)/,j0e=/[!*+?@]\(.*\)/,q0e=/{.*(?:,|\.\.).*}/;function F3(r,e={}){return!N3(r,e)}$r.isStaticPattern=F3;function N3(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(U0e)||H0e.test(r)||G0e.test(r)||Y0e.test(r)||e.extglob!==!1&&j0e.test(r)||e.braceExpansion!==!1&&q0e.test(r))}$r.isDynamicPattern=N3;function J0e(r){return _y(r)?r.slice(1):r}$r.convertToPositivePattern=J0e;function W0e(r){return"!"+r}$r.convertToNegativePattern=W0e;function _y(r){return r.startsWith("!")&&r[1]!=="("}$r.isNegativePattern=_y;function T3(r){return!_y(r)}$r.isPositivePattern=T3;function z0e(r){return r.filter(_y)}$r.getNegativePatterns=z0e;function V0e(r){return r.filter(T3)}$r.getPositivePatterns=V0e;function X0e(r){return O0e(r,{flipBackslashes:!1})}$r.getBaseDirectory=X0e;function Z0e(r){return r.includes(R3)}$r.hasGlobStar=Z0e;function L3(r){return r.endsWith("/"+R3)}$r.endsWithSlashGlobStar=L3;function _0e(r){let e=M0e.basename(r);return L3(r)||F3(e)}$r.isAffectDepthOfReadingPattern=_0e;function $0e(r){return r.reduce((e,t)=>e.concat(M3(t)),[])}$r.expandPatternsWithBraceExpansion=$0e;function M3(r){return k3.braces(r,{expand:!0,nodupes:!0})}$r.expandBraceExpansion=M3;function ebe(r,e){let t=K0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}$r.getPatternParts=ebe;function O3(r,e){return k3.makeRe(r,e)}$r.makeRe=O3;function tbe(r,e){return r.map(t=>O3(t,e))}$r.convertPatternsToRe=tbe;function rbe(r,e){return e.some(t=>t.test(r))}$r.matchAny=rbe});var H3=w(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});var ibe=sP();function nbe(r){let e=ibe(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>U3(r)),e.once("end",()=>U3(r)),e}cP.merge=nbe;function U3(r){r.forEach(e=>e.emit("close"))}});var G3=w($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});function sbe(r){return typeof r=="string"}$y.isString=sbe;function obe(r){return r===""}$y.isEmpty=obe});var Ma=w(La=>{"use strict";Object.defineProperty(La,"__esModule",{value:!0});var abe=I3();La.array=abe;var Abe=y3();La.errno=Abe;var lbe=w3();La.fs=lbe;var cbe=B3();La.path=cbe;var ube=K3();La.pattern=ube;var gbe=H3();La.stream=gbe;var fbe=G3();La.string=fbe});var W3=w(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});var bc=Ma();function hbe(r,e){let t=Y3(r),i=j3(r,e.ignore),n=t.filter(l=>bc.pattern.isStaticPattern(l,e)),s=t.filter(l=>bc.pattern.isDynamicPattern(l,e)),o=uP(n,i,!1),a=uP(s,i,!0);return o.concat(a)}Oa.generate=hbe;function uP(r,e,t){let i=q3(r);return"."in i?[gP(".",r,e,t)]:J3(i,e,t)}Oa.convertPatternsToTasks=uP;function Y3(r){return bc.pattern.getPositivePatterns(r)}Oa.getPositivePatterns=Y3;function j3(r,e){return bc.pattern.getNegativePatterns(r).concat(e).map(bc.pattern.convertToPositivePattern)}Oa.getNegativePatternsAsPositive=j3;function q3(r){let e={};return r.reduce((t,i)=>{let n=bc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Oa.groupPatternsByBaseDirectory=q3;function J3(r,e,t){return Object.keys(r).map(i=>gP(i,r[i],e,t))}Oa.convertPatternGroupsToTasks=J3;function gP(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(bc.pattern.convertToNegativePattern))}}Oa.convertPatternGroupToTask=gP});var V3=w(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.read=void 0;function pbe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){z3(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){fP(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){z3(t,s);return}fP(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),fP(t,o)})})}ew.read=pbe;function z3(r,e){r(e)}function fP(r,e){r(null,e)}});var X3=w(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.read=void 0;function dbe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}tw.read=dbe});var Z3=w(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.createFileSystemAdapter=HA.FILE_SYSTEM_ADAPTER=void 0;var rw=J("fs");HA.FILE_SYSTEM_ADAPTER={lstat:rw.lstat,stat:rw.stat,lstatSync:rw.lstatSync,statSync:rw.statSync};function Cbe(r){return r===void 0?HA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},HA.FILE_SYSTEM_ADAPTER),r)}HA.createFileSystemAdapter=Cbe});var _3=w(pP=>{"use strict";Object.defineProperty(pP,"__esModule",{value:!0});var mbe=Z3(),hP=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=mbe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};pP.default=hP});var Qc=w(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.statSync=GA.stat=GA.Settings=void 0;var $3=V3(),Ebe=X3(),dP=_3();GA.Settings=dP.default;function Ibe(r,e,t){if(typeof e=="function"){$3.read(r,CP(),e);return}$3.read(r,CP(e),t)}GA.stat=Ibe;function ybe(r,e){let t=CP(e);return Ebe.read(r,t)}GA.statSync=ybe;function CP(r={}){return r instanceof dP.default?r:new dP.default(r)}});var t4=w((Xtt,e4)=>{e4.exports=wbe;function wbe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var mP=w(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var iw=process.versions.node.split(".");if(iw[0]===void 0||iw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var r4=Number.parseInt(iw[0],10),Bbe=Number.parseInt(iw[1],10),i4=10,bbe=10,Qbe=r4>i4,Sbe=r4===i4&&Bbe>=bbe;nw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=Qbe||Sbe});var n4=w(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.createDirentFromStats=void 0;var EP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function vbe(r,e){return new EP(r,e)}sw.createDirentFromStats=vbe});var IP=w(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.fs=void 0;var xbe=n4();ow.fs=xbe});var yP=w(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.joinPathSegments=void 0;function Pbe(r,e,t){return r.endsWith(t)?r+e:r+t+e}aw.joinPathSegments=Pbe});var c4=w(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.readdir=YA.readdirWithFileTypes=YA.read=void 0;var Dbe=Qc(),s4=t4(),kbe=mP(),o4=IP(),a4=yP();function Rbe(r,e,t){if(!e.stats&&kbe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){A4(r,e,t);return}l4(r,e,t)}YA.read=Rbe;function A4(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){Aw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:a4.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){wP(t,s);return}let o=s.map(a=>Fbe(a,e));s4(o,(a,l)=>{if(a!==null){Aw(t,a);return}wP(t,l)})})}YA.readdirWithFileTypes=A4;function Fbe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=o4.fs.createDirentFromStats(r.name,n),t(null,r)})}}function l4(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){Aw(t,i);return}let s=n.map(o=>{let a=a4.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{Dbe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:o4.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});s4(s,(o,a)=>{if(o!==null){Aw(t,o);return}wP(t,a)})})}YA.readdir=l4;function Aw(r,e){r(e)}function wP(r,e){r(null,e)}});var p4=w(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.readdir=jA.readdirWithFileTypes=jA.read=void 0;var Nbe=Qc(),Tbe=mP(),u4=IP(),g4=yP();function Lbe(r,e){return!e.stats&&Tbe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?f4(r,e):h4(r,e)}jA.read=Lbe;function f4(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:g4.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=u4.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}jA.readdirWithFileTypes=f4;function h4(r,e){return e.fs.readdirSync(r).map(i=>{let n=g4.joinPathSegments(r,i,e.pathSegmentSeparator),s=Nbe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:u4.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}jA.readdir=h4});var d4=w(qA=>{"use strict";Object.defineProperty(qA,"__esModule",{value:!0});qA.createFileSystemAdapter=qA.FILE_SYSTEM_ADAPTER=void 0;var wf=J("fs");qA.FILE_SYSTEM_ADAPTER={lstat:wf.lstat,stat:wf.stat,lstatSync:wf.lstatSync,statSync:wf.statSync,readdir:wf.readdir,readdirSync:wf.readdirSync};function Mbe(r){return r===void 0?qA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},qA.FILE_SYSTEM_ADAPTER),r)}qA.createFileSystemAdapter=Mbe});var C4=w(bP=>{"use strict";Object.defineProperty(bP,"__esModule",{value:!0});var Obe=J("path"),Kbe=Qc(),Ube=d4(),BP=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=Ube.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,Obe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new Kbe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};bP.default=BP});var lw=w(JA=>{"use strict";Object.defineProperty(JA,"__esModule",{value:!0});JA.Settings=JA.scandirSync=JA.scandir=void 0;var m4=c4(),Hbe=p4(),QP=C4();JA.Settings=QP.default;function Gbe(r,e,t){if(typeof e=="function"){m4.read(r,SP(),e);return}m4.read(r,SP(e),t)}JA.scandir=Gbe;function Ybe(r,e){let t=SP(e);return Hbe.read(r,t)}JA.scandirSync=Ybe;function SP(r={}){return r instanceof QP.default?r:new QP.default(r)}});var I4=w((ort,E4)=>{"use strict";function jbe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}E4.exports=jbe});var w4=w((art,vP)=>{"use strict";var qbe=I4();function y4(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=qbe(Jbe),n=null,s=null,o=0,a=null,l={push:C,drain:Is,saturated:Is,pause:u,paused:!1,concurrency:t,running:c,resume:h,idle:p,length:g,getQueue:f,unshift:y,empty:Is,kill:v,killAndDrain:D,error:T};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,j=0;H;)H=H.next,j++;return j}function f(){for(var H=n,j=[];H;)j.push(H.value),H=H.next;return j}function h(){if(!!l.paused){l.paused=!1;for(var H=0;H{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.joinPathSegments=Go.replacePathSegmentSeparator=Go.isAppliedFilter=Go.isFatalError=void 0;function zbe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}Go.isFatalError=zbe;function Vbe(r,e){return r===null||r(e)}Go.isAppliedFilter=Vbe;function Xbe(r,e){return r.split(/[/\\]/).join(e)}Go.replacePathSegmentSeparator=Xbe;function Zbe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}Go.joinPathSegments=Zbe});var DP=w(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var _be=cw(),xP=class{constructor(e,t){this._root=e,this._settings=t,this._root=_be.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};PP.default=xP});var FP=w(RP=>{"use strict";Object.defineProperty(RP,"__esModule",{value:!0});var $be=J("events"),eQe=lw(),tQe=w4(),uw=cw(),rQe=DP(),kP=class extends rQe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=eQe.scandir,this._emitter=new $be.EventEmitter,this._queue=tQe(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!uw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),uw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};RP.default=kP});var B4=w(TP=>{"use strict";Object.defineProperty(TP,"__esModule",{value:!0});var iQe=FP(),NP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new iQe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{nQe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{sQe(e,[...this._storage])}),this._reader.read()}};TP.default=NP;function nQe(r,e){r(e)}function sQe(r,e){r(null,e)}});var b4=w(MP=>{"use strict";Object.defineProperty(MP,"__esModule",{value:!0});var oQe=J("stream"),aQe=FP(),LP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new aQe.default(this._root,this._settings),this._stream=new oQe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};MP.default=LP});var Q4=w(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});var AQe=lw(),gw=cw(),lQe=DP(),OP=class extends lQe.default{constructor(){super(...arguments),this._scandir=AQe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!gw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=gw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),gw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&gw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};KP.default=OP});var S4=w(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});var cQe=Q4(),UP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new cQe.default(this._root,this._settings)}read(){return this._reader.read()}};HP.default=UP});var v4=w(YP=>{"use strict";Object.defineProperty(YP,"__esModule",{value:!0});var uQe=J("path"),gQe=lw(),GP=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,uQe.sep),this.fsScandirSettings=new gQe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};YP.default=GP});var qP=w(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.Settings=Yo.walkStream=Yo.walkSync=Yo.walk=void 0;var x4=B4(),fQe=b4(),hQe=S4(),jP=v4();Yo.Settings=jP.default;function pQe(r,e,t){if(typeof e=="function"){new x4.default(r,fw()).read(e);return}new x4.default(r,fw(e)).read(t)}Yo.walk=pQe;function dQe(r,e){let t=fw(e);return new hQe.default(r,t).read()}Yo.walkSync=dQe;function CQe(r,e){let t=fw(e);return new fQe.default(r,t).read()}Yo.walkStream=CQe;function fw(r={}){return r instanceof jP.default?r:new jP.default(r)}});var zP=w(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});var mQe=J("path"),EQe=Qc(),P4=Ma(),JP=class{constructor(e){this._settings=e,this._fsStatSettings=new EQe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return mQe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:P4.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!P4.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};WP.default=JP});var ZP=w(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});var IQe=J("stream"),yQe=Qc(),wQe=qP(),BQe=zP(),VP=class extends BQe.default{constructor(){super(...arguments),this._walkStream=wQe.walkStream,this._stat=yQe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new IQe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};XP.default=VP});var D4=w($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});var Bf=Ma(),_P=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Bf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Bf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Bf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Bf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Bf.array.splitWhen(e,t=>t.dynamic&&Bf.pattern.hasGlobStar(t.pattern))}};$P.default=_P});var k4=w(tD=>{"use strict";Object.defineProperty(tD,"__esModule",{value:!0});var bQe=D4(),eD=class extends bQe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};tD.default=eD});var R4=w(iD=>{"use strict";Object.defineProperty(iD,"__esModule",{value:!0});var hw=Ma(),QQe=k4(),rD=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new QQe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(hw.pattern.isAffectDepthOfReadingPattern);return hw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=hw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!hw.pattern.matchAny(e,t)}};iD.default=rD});var F4=w(sD=>{"use strict";Object.defineProperty(sD,"__esModule",{value:!0});var Zd=Ma(),nD=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=Zd.pattern.convertPatternsToRe(e,this._micromatchOptions),n=Zd.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=Zd.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=Zd.path.removeLeadingDotSegment(e);return Zd.pattern.matchAny(i,t)}};sD.default=nD});var N4=w(aD=>{"use strict";Object.defineProperty(aD,"__esModule",{value:!0});var SQe=Ma(),oD=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return SQe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};aD.default=oD});var L4=w(lD=>{"use strict";Object.defineProperty(lD,"__esModule",{value:!0});var T4=Ma(),AD=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=T4.path.makeAbsolute(this._settings.cwd,t),t=T4.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};lD.default=AD});var pw=w(uD=>{"use strict";Object.defineProperty(uD,"__esModule",{value:!0});var vQe=J("path"),xQe=R4(),PQe=F4(),DQe=N4(),kQe=L4(),cD=class{constructor(e){this._settings=e,this.errorFilter=new DQe.default(this._settings),this.entryFilter=new PQe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new xQe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new kQe.default(this._settings)}_getRootDirectory(e){return vQe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};uD.default=cD});var M4=w(fD=>{"use strict";Object.defineProperty(fD,"__esModule",{value:!0});var RQe=ZP(),FQe=pw(),gD=class extends FQe.default{constructor(){super(...arguments),this._reader=new RQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};fD.default=gD});var O4=w(pD=>{"use strict";Object.defineProperty(pD,"__esModule",{value:!0});var NQe=J("stream"),TQe=ZP(),LQe=pw(),hD=class extends LQe.default{constructor(){super(...arguments),this._reader=new TQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new NQe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};pD.default=hD});var K4=w(CD=>{"use strict";Object.defineProperty(CD,"__esModule",{value:!0});var MQe=Qc(),OQe=qP(),KQe=zP(),dD=class extends KQe.default{constructor(){super(...arguments),this._walkSync=OQe.walkSync,this._statSync=MQe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};CD.default=dD});var U4=w(ED=>{"use strict";Object.defineProperty(ED,"__esModule",{value:!0});var UQe=K4(),HQe=pw(),mD=class extends HQe.default{constructor(){super(...arguments),this._reader=new UQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};ED.default=mD});var H4=w(_d=>{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});var bf=J("fs"),GQe=J("os"),YQe=GQe.cpus().length;_d.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:bf.lstat,lstatSync:bf.lstatSync,stat:bf.stat,statSync:bf.statSync,readdir:bf.readdir,readdirSync:bf.readdirSync};var ID=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,YQe),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},_d.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};_d.default=ID});var dw=w((krt,Y4)=>{"use strict";var G4=W3(),jQe=M4(),qQe=O4(),JQe=U4(),yD=H4(),Sc=Ma();async function wD(r,e){Qf(r);let t=BD(r,jQe.default,e),i=await Promise.all(t);return Sc.array.flatten(i)}(function(r){function e(o,a){Qf(o);let l=BD(o,JQe.default,a);return Sc.array.flatten(l)}r.sync=e;function t(o,a){Qf(o);let l=BD(o,qQe.default,a);return Sc.stream.merge(l)}r.stream=t;function i(o,a){Qf(o);let l=[].concat(o),c=new yD.default(a);return G4.generate(l,c)}r.generateTasks=i;function n(o,a){Qf(o);let l=new yD.default(a);return Sc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return Qf(o),Sc.path.escape(o)}r.escapePath=s})(wD||(wD={}));function BD(r,e,t){let i=[].concat(r),n=new yD.default(t),s=G4.generate(i,n),o=new e(n);return s.map(o.read,o)}function Qf(r){if(![].concat(r).every(i=>Sc.string.isString(i)&&!Sc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}Y4.exports=wD});var q4=w(vc=>{"use strict";var{promisify:WQe}=J("util"),j4=J("fs");async function bD(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await WQe(j4[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function QD(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return j4[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}vc.isFile=bD.bind(null,"stat","isFile");vc.isDirectory=bD.bind(null,"stat","isDirectory");vc.isSymlink=bD.bind(null,"lstat","isSymbolicLink");vc.isFileSync=QD.bind(null,"statSync","isFile");vc.isDirectorySync=QD.bind(null,"statSync","isDirectory");vc.isSymlinkSync=QD.bind(null,"lstatSync","isSymbolicLink")});var X4=w((Frt,SD)=>{"use strict";var xc=J("path"),J4=q4(),W4=r=>r.length>1?`{${r.join(",")}}`:r[0],z4=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return xc.isAbsolute(t)?t:xc.join(e,t)},zQe=(r,e)=>xc.extname(r)?`**/${r}`:`**/${r}.${W4(e)}`,V4=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>xc.posix.join(r,zQe(t,e.extensions))):e.files?e.files.map(t=>xc.posix.join(r,`**/${t}`)):e.extensions?[xc.posix.join(r,`**/*.${W4(e.extensions)}`)]:[xc.posix.join(r,"**")]};SD.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await J4.isDirectory(z4(i,e.cwd))?V4(i,e):i));return[].concat.apply([],t)};SD.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>J4.isDirectorySync(z4(i,e.cwd))?V4(i,e):i);return[].concat.apply([],t)}});var n8=w((Nrt,i8)=>{function Z4(r){return Array.isArray(r)?r:[r]}var t8="",_4=" ",vD="\\",VQe=/^\s+$/,XQe=/^\\!/,ZQe=/^\\#/,_Qe=/\r?\n/g,$Qe=/^\.*\/|^\.+$/,xD="/",$4=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",eSe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),tSe=/([0-z])-([0-z])/g,rSe=r=>r.replace(tSe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:t8),iSe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},nSe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?_4:t8],[/\\\s/g,()=>_4],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>vD],[/\\\\/g,()=>vD],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===vD?`\\[${t}${iSe(i)}${n}`:n==="]"&&i.length%2===0?`[${rSe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],e8=Object.create(null),sSe=(r,e)=>{let t=e8[r];return t||(t=nSe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),e8[r]=t),e?new RegExp(t,"i"):new RegExp(t)},kD=r=>typeof r=="string",oSe=r=>r&&kD(r)&&!VQe.test(r)&&r.indexOf("#")!==0,aSe=r=>r.split(_Qe),PD=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},ASe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(XQe,"!").replace(ZQe,"#");let n=sSe(r,e);return new PD(t,r,i,n)},lSe=(r,e)=>{throw new e(r)},Ka=(r,e,t)=>kD(r)?r?Ka.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),r8=r=>$Qe.test(r);Ka.isNotRelative=r8;Ka.convert=r=>r;var DD=class{constructor({ignorecase:e=!0}={}){eSe(this,$4,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[$4]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(oSe(e)){let t=ASe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,Z4(kD(e)?aSe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ka.convert(e);return Ka(s,e,lSe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(xD)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(xD)+xD,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return Z4(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},Cw=r=>new DD(r),cSe=()=>!1,uSe=r=>Ka(r&&Ka.convert(r),r,cSe);Cw.isPathValid=uSe;Cw.default=Cw;i8.exports=Cw;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");Ka.convert=r;let e=/^[a-z]:\//i;Ka.isNotRelative=t=>e.test(t)||r8(t)}});var o8=w((Trt,s8)=>{"use strict";s8.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var f8=w((Lrt,RD)=>{"use strict";var{promisify:gSe}=J("util"),a8=J("fs"),Ua=J("path"),A8=dw(),fSe=n8(),$d=o8(),l8=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],hSe=gSe(a8.readFile),pSe=r=>e=>e.startsWith("!")?"!"+Ua.posix.join(r,e.slice(1)):Ua.posix.join(r,e),dSe=(r,e)=>{let t=$d(Ua.relative(e.cwd,Ua.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(pSe(t))},c8=r=>{let e=fSe();for(let t of r)e.add(dSe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},CSe=(r,e)=>{if(r=$d(r),Ua.isAbsolute(e)){if($d(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ua.join(r,e)},u8=(r,e)=>t=>r.ignores($d(Ua.relative(e,CSe(e,t.path||t)))),mSe=async(r,e)=>{let t=Ua.join(e,r),i=await hSe(t,"utf8");return{cwd:e,filePath:t,content:i}},ESe=(r,e)=>{let t=Ua.join(e,r),i=a8.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},g8=({ignore:r=[],cwd:e=$d(process.cwd())}={})=>({ignore:r,cwd:e});RD.exports=async r=>{r=g8(r);let e=await A8("**/.gitignore",{ignore:l8.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>mSe(n,r.cwd))),i=c8(t);return u8(i,r.cwd)};RD.exports.sync=r=>{r=g8(r);let t=A8.sync("**/.gitignore",{ignore:l8.concat(r.ignore),cwd:r.cwd}).map(n=>ESe(n,r.cwd)),i=c8(t);return u8(i,r.cwd)}});var p8=w((Mrt,h8)=>{"use strict";var{Transform:ISe}=J("stream"),mw=class extends ISe{constructor(){super({objectMode:!0})}},FD=class extends mw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},ND=class extends mw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};h8.exports={FilterStream:FD,UniqueStream:ND}});var OD=w((Ort,Pc)=>{"use strict";var C8=J("fs"),Ew=d3(),ySe=sP(),Iw=dw(),yw=X4(),TD=f8(),{FilterStream:wSe,UniqueStream:BSe}=p8(),m8=()=>!1,d8=r=>r[0]==="!",bSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},QSe=(r={})=>{if(!r.cwd)return;let e;try{e=C8.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},SSe=r=>r.stats instanceof C8.Stats?r.path:r,ww=(r,e)=>{r=Ew([].concat(r)),bSe(r),QSe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(d8(n))continue;let s=r.slice(i).filter(a=>d8(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},vSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories=="object"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},LD=(r,e)=>r.options.expandDirectories?vSe(r,e):[r.pattern],E8=r=>r&&r.gitignore?TD.sync({cwd:r.cwd,ignore:r.ignore}):m8,MD=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=yw.sync(t.ignore)),{pattern:e,options:t}};Pc.exports=async(r,e)=>{let t=ww(r,e),i=async()=>e&&e.gitignore?TD({cwd:e.cwd,ignore:e.ignore}):m8,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await LD(c,yw);return Promise.all(u.map(MD(c)))}));return Ew(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>Iw(l.pattern,l.options)));return Ew(...a).filter(l=>!s(SSe(l)))};Pc.exports.sync=(r,e)=>{let t=ww(r,e),i=[];for(let o of t){let a=LD(o,yw.sync).map(MD(o));i.push(...a)}let n=E8(e),s=[];for(let o of i)s=Ew(s,Iw.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Pc.exports.stream=(r,e)=>{let t=ww(r,e),i=[];for(let a of t){let l=LD(a,yw.sync).map(MD(a));i.push(...l)}let n=E8(e),s=new wSe(a=>!n(a)),o=new BSe;return ySe(i.map(a=>Iw.stream(a.pattern,a.options))).pipe(s).pipe(o)};Pc.exports.generateGlobTasks=ww;Pc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>Iw.isDynamicPattern(t,e));Pc.exports.gitignore=TD});var vn=w((tit,N8)=>{function USe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}N8.exports=USe});var WD=w((rit,T8)=>{var HSe=typeof global=="object"&&global&&global.Object===Object&&global;T8.exports=HSe});var ys=w((iit,L8)=>{var GSe=WD(),YSe=typeof self=="object"&&self&&self.Object===Object&&self,jSe=GSe||YSe||Function("return this")();L8.exports=jSe});var O8=w((nit,M8)=>{var qSe=ys(),JSe=function(){return qSe.Date.now()};M8.exports=JSe});var U8=w((sit,K8)=>{var WSe=/\s/;function zSe(r){for(var e=r.length;e--&&WSe.test(r.charAt(e)););return e}K8.exports=zSe});var G8=w((oit,H8)=>{var VSe=U8(),XSe=/^\s+/;function ZSe(r){return r&&r.slice(0,VSe(r)+1).replace(XSe,"")}H8.exports=ZSe});var Rc=w((ait,Y8)=>{var _Se=ys(),$Se=_Se.Symbol;Y8.exports=$Se});var W8=w((Ait,J8)=>{var j8=Rc(),q8=Object.prototype,eve=q8.hasOwnProperty,tve=q8.toString,uC=j8?j8.toStringTag:void 0;function rve(r){var e=eve.call(r,uC),t=r[uC];try{r[uC]=void 0;var i=!0}catch{}var n=tve.call(r);return i&&(e?r[uC]=t:delete r[uC]),n}J8.exports=rve});var V8=w((lit,z8)=>{var ive=Object.prototype,nve=ive.toString;function sve(r){return nve.call(r)}z8.exports=sve});var Fc=w((cit,_8)=>{var X8=Rc(),ove=W8(),ave=V8(),Ave="[object Null]",lve="[object Undefined]",Z8=X8?X8.toStringTag:void 0;function cve(r){return r==null?r===void 0?lve:Ave:Z8&&Z8 in Object(r)?ove(r):ave(r)}_8.exports=cve});var Jo=w((uit,$8)=>{function uve(r){return r!=null&&typeof r=="object"}$8.exports=uve});var gC=w((git,ez)=>{var gve=Fc(),fve=Jo(),hve="[object Symbol]";function pve(r){return typeof r=="symbol"||fve(r)&&gve(r)==hve}ez.exports=pve});var nz=w((fit,iz)=>{var dve=G8(),tz=vn(),Cve=gC(),rz=0/0,mve=/^[-+]0x[0-9a-f]+$/i,Eve=/^0b[01]+$/i,Ive=/^0o[0-7]+$/i,yve=parseInt;function wve(r){if(typeof r=="number")return r;if(Cve(r))return rz;if(tz(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=tz(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=dve(r);var t=Eve.test(r);return t||Ive.test(r)?yve(r.slice(2),t?2:8):mve.test(r)?rz:+r}iz.exports=wve});var az=w((hit,oz)=>{var Bve=vn(),zD=O8(),sz=nz(),bve="Expected a function",Qve=Math.max,Sve=Math.min;function vve(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,f=!0;if(typeof r!="function")throw new TypeError(bve);e=sz(e)||0,Bve(t)&&(u=!!t.leading,g="maxWait"in t,s=g?Qve(sz(t.maxWait)||0,e):s,f="trailing"in t?!!t.trailing:f);function h(j){var $=i,V=n;return i=n=void 0,c=j,o=r.apply(V,$),o}function p(j){return c=j,a=setTimeout(B,e),u?h(j):o}function C(j){var $=j-l,V=j-c,W=e-$;return g?Sve(W,s-V):W}function y(j){var $=j-l,V=j-c;return l===void 0||$>=e||$<0||g&&V>=s}function B(){var j=zD();if(y(j))return v(j);a=setTimeout(B,C(j))}function v(j){return a=void 0,f&&i?h(j):(i=n=void 0,o)}function D(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function T(){return a===void 0?o:v(zD())}function H(){var j=zD(),$=y(j);if(i=arguments,n=this,l=j,$){if(a===void 0)return p(l);if(g)return clearTimeout(a),a=setTimeout(B,e),h(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=D,H.flush=T,H}oz.exports=vve});var lz=w((pit,Az)=>{var xve=az(),Pve=vn(),Dve="Expected a function";function kve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(Dve);return Pve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),xve(r,e,{leading:i,maxWait:e,trailing:n})}Az.exports=kve});var Ya=w((Ga,jw)=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});var mz=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function jve(r){return mz.includes(r)}var qve=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...mz];function Jve(r){return qve.includes(r)}var Wve=["null","undefined","string","number","bigint","boolean","symbol"];function zve(r){return Wve.includes(r)}function Lf(r){return e=>typeof e===r}var{toString:Ez}=Object.prototype,CC=r=>{let e=Ez.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&X.domElement(r))return"HTMLElement";if(Jve(e))return e},lr=r=>e=>CC(e)===r;function X(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(X.observable(r))return"Observable";if(X.array(r))return"Array";if(X.buffer(r))return"Buffer";let e=CC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}X.undefined=Lf("undefined");X.string=Lf("string");var Vve=Lf("number");X.number=r=>Vve(r)&&!X.nan(r);X.bigint=Lf("bigint");X.function_=Lf("function");X.null_=r=>r===null;X.class_=r=>X.function_(r)&&r.toString().startsWith("class ");X.boolean=r=>r===!0||r===!1;X.symbol=Lf("symbol");X.numericString=r=>X.string(r)&&!X.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));X.array=(r,e)=>Array.isArray(r)?X.function_(e)?r.every(e):!0:!1;X.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};X.nullOrUndefined=r=>X.null_(r)||X.undefined(r);X.object=r=>!X.null_(r)&&(typeof r=="object"||X.function_(r));X.iterable=r=>{var e;return X.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};X.asyncIterable=r=>{var e;return X.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};X.generator=r=>X.iterable(r)&&X.function_(r.next)&&X.function_(r.throw);X.asyncGenerator=r=>X.asyncIterable(r)&&X.function_(r.next)&&X.function_(r.throw);X.nativePromise=r=>lr("Promise")(r);var Xve=r=>{var e,t;return X.function_((e=r)===null||e===void 0?void 0:e.then)&&X.function_((t=r)===null||t===void 0?void 0:t.catch)};X.promise=r=>X.nativePromise(r)||Xve(r);X.generatorFunction=lr("GeneratorFunction");X.asyncGeneratorFunction=r=>CC(r)==="AsyncGeneratorFunction";X.asyncFunction=r=>CC(r)==="AsyncFunction";X.boundFunction=r=>X.function_(r)&&!r.hasOwnProperty("prototype");X.regExp=lr("RegExp");X.date=lr("Date");X.error=lr("Error");X.map=r=>lr("Map")(r);X.set=r=>lr("Set")(r);X.weakMap=r=>lr("WeakMap")(r);X.weakSet=r=>lr("WeakSet")(r);X.int8Array=lr("Int8Array");X.uint8Array=lr("Uint8Array");X.uint8ClampedArray=lr("Uint8ClampedArray");X.int16Array=lr("Int16Array");X.uint16Array=lr("Uint16Array");X.int32Array=lr("Int32Array");X.uint32Array=lr("Uint32Array");X.float32Array=lr("Float32Array");X.float64Array=lr("Float64Array");X.bigInt64Array=lr("BigInt64Array");X.bigUint64Array=lr("BigUint64Array");X.arrayBuffer=lr("ArrayBuffer");X.sharedArrayBuffer=lr("SharedArrayBuffer");X.dataView=lr("DataView");X.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;X.urlInstance=r=>lr("URL")(r);X.urlString=r=>{if(!X.string(r))return!1;try{return new URL(r),!0}catch{return!1}};X.truthy=r=>Boolean(r);X.falsy=r=>!r;X.nan=r=>Number.isNaN(r);X.primitive=r=>X.null_(r)||zve(typeof r);X.integer=r=>Number.isInteger(r);X.safeInteger=r=>Number.isSafeInteger(r);X.plainObject=r=>{if(Ez.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};X.typedArray=r=>jve(CC(r));var Zve=r=>X.safeInteger(r)&&r>=0;X.arrayLike=r=>!X.nullOrUndefined(r)&&!X.function_(r)&&Zve(r.length);X.inRange=(r,e)=>{if(X.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(X.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var _ve=1,$ve=["innerHTML","ownerDocument","style","attributes","nodeValue"];X.domElement=r=>X.object(r)&&r.nodeType===_ve&&X.string(r.nodeName)&&!X.plainObject(r)&&$ve.every(e=>e in r);X.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};X.nodeStream=r=>X.object(r)&&X.function_(r.pipe)&&!X.observable(r);X.infinite=r=>r===1/0||r===-1/0;var Iz=r=>e=>X.integer(e)&&Math.abs(e%2)===r;X.evenInteger=Iz(0);X.oddInteger=Iz(1);X.emptyArray=r=>X.array(r)&&r.length===0;X.nonEmptyArray=r=>X.array(r)&&r.length>0;X.emptyString=r=>X.string(r)&&r.length===0;X.nonEmptyString=r=>X.string(r)&&r.length>0;var exe=r=>X.string(r)&&!/\S/.test(r);X.emptyStringOrWhitespace=r=>X.emptyString(r)||exe(r);X.emptyObject=r=>X.object(r)&&!X.map(r)&&!X.set(r)&&Object.keys(r).length===0;X.nonEmptyObject=r=>X.object(r)&&!X.map(r)&&!X.set(r)&&Object.keys(r).length>0;X.emptySet=r=>X.set(r)&&r.size===0;X.nonEmptySet=r=>X.set(r)&&r.size>0;X.emptyMap=r=>X.map(r)&&r.size===0;X.nonEmptyMap=r=>X.map(r)&&r.size>0;X.propertyKey=r=>X.any([X.string,X.number,X.symbol],r);X.formData=r=>lr("FormData")(r);X.urlSearchParams=r=>lr("URLSearchParams")(r);var yz=(r,e,t)=>{if(!X.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};X.any=(r,...e)=>(X.array(r)?r:[r]).some(i=>yz(Array.prototype.some,i,e));X.all=(r,...e)=>yz(Array.prototype.every,r,e);var Ye=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${X(o)}\``))].join(", ")}`:`received value of type \`${X(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};Ga.assert={undefined:r=>Ye(X.undefined(r),"undefined",r),string:r=>Ye(X.string(r),"string",r),number:r=>Ye(X.number(r),"number",r),bigint:r=>Ye(X.bigint(r),"bigint",r),function_:r=>Ye(X.function_(r),"Function",r),null_:r=>Ye(X.null_(r),"null",r),class_:r=>Ye(X.class_(r),"Class",r),boolean:r=>Ye(X.boolean(r),"boolean",r),symbol:r=>Ye(X.symbol(r),"symbol",r),numericString:r=>Ye(X.numericString(r),"string with a number",r),array:(r,e)=>{Ye(X.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>Ye(X.buffer(r),"Buffer",r),nullOrUndefined:r=>Ye(X.nullOrUndefined(r),"null or undefined",r),object:r=>Ye(X.object(r),"Object",r),iterable:r=>Ye(X.iterable(r),"Iterable",r),asyncIterable:r=>Ye(X.asyncIterable(r),"AsyncIterable",r),generator:r=>Ye(X.generator(r),"Generator",r),asyncGenerator:r=>Ye(X.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>Ye(X.nativePromise(r),"native Promise",r),promise:r=>Ye(X.promise(r),"Promise",r),generatorFunction:r=>Ye(X.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>Ye(X.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>Ye(X.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>Ye(X.boundFunction(r),"Function",r),regExp:r=>Ye(X.regExp(r),"RegExp",r),date:r=>Ye(X.date(r),"Date",r),error:r=>Ye(X.error(r),"Error",r),map:r=>Ye(X.map(r),"Map",r),set:r=>Ye(X.set(r),"Set",r),weakMap:r=>Ye(X.weakMap(r),"WeakMap",r),weakSet:r=>Ye(X.weakSet(r),"WeakSet",r),int8Array:r=>Ye(X.int8Array(r),"Int8Array",r),uint8Array:r=>Ye(X.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>Ye(X.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>Ye(X.int16Array(r),"Int16Array",r),uint16Array:r=>Ye(X.uint16Array(r),"Uint16Array",r),int32Array:r=>Ye(X.int32Array(r),"Int32Array",r),uint32Array:r=>Ye(X.uint32Array(r),"Uint32Array",r),float32Array:r=>Ye(X.float32Array(r),"Float32Array",r),float64Array:r=>Ye(X.float64Array(r),"Float64Array",r),bigInt64Array:r=>Ye(X.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>Ye(X.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>Ye(X.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>Ye(X.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>Ye(X.dataView(r),"DataView",r),urlInstance:r=>Ye(X.urlInstance(r),"URL",r),urlString:r=>Ye(X.urlString(r),"string with a URL",r),truthy:r=>Ye(X.truthy(r),"truthy",r),falsy:r=>Ye(X.falsy(r),"falsy",r),nan:r=>Ye(X.nan(r),"NaN",r),primitive:r=>Ye(X.primitive(r),"primitive",r),integer:r=>Ye(X.integer(r),"integer",r),safeInteger:r=>Ye(X.safeInteger(r),"integer",r),plainObject:r=>Ye(X.plainObject(r),"plain object",r),typedArray:r=>Ye(X.typedArray(r),"TypedArray",r),arrayLike:r=>Ye(X.arrayLike(r),"array-like",r),domElement:r=>Ye(X.domElement(r),"HTMLElement",r),observable:r=>Ye(X.observable(r),"Observable",r),nodeStream:r=>Ye(X.nodeStream(r),"Node.js Stream",r),infinite:r=>Ye(X.infinite(r),"infinite number",r),emptyArray:r=>Ye(X.emptyArray(r),"empty array",r),nonEmptyArray:r=>Ye(X.nonEmptyArray(r),"non-empty array",r),emptyString:r=>Ye(X.emptyString(r),"empty string",r),nonEmptyString:r=>Ye(X.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>Ye(X.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>Ye(X.emptyObject(r),"empty object",r),nonEmptyObject:r=>Ye(X.nonEmptyObject(r),"non-empty object",r),emptySet:r=>Ye(X.emptySet(r),"empty set",r),nonEmptySet:r=>Ye(X.nonEmptySet(r),"non-empty set",r),emptyMap:r=>Ye(X.emptyMap(r),"empty map",r),nonEmptyMap:r=>Ye(X.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>Ye(X.propertyKey(r),"PropertyKey",r),formData:r=>Ye(X.formData(r),"FormData",r),urlSearchParams:r=>Ye(X.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>Ye(X.evenInteger(r),"even integer",r),oddInteger:r=>Ye(X.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>Ye(X.directInstanceOf(r,e),"T",r),inRange:(r,e)=>Ye(X.inRange(r,e),"in range",r),any:(r,...e)=>Ye(X.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>Ye(X.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(X,{class:{value:X.class_},function:{value:X.function_},null:{value:X.null_}});Object.defineProperties(Ga.assert,{class:{value:Ga.assert.class_},function:{value:Ga.assert.function_},null:{value:Ga.assert.null_}});Ga.default=X;jw.exports=X;jw.exports.default=X;jw.exports.assert=Ga.assert});var wz=w((ent,dk)=>{"use strict";var qw=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Mf=class{static fn(e){return(...t)=>new Mf((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new qw(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Mf.prototype,Promise.prototype);dk.exports=Mf;dk.exports.CancelError=qw});var Bz=w((mk,Ek)=>{"use strict";Object.defineProperty(mk,"__esModule",{value:!0});var txe=J("tls"),Ck=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof txe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};mk.default=Ck;Ek.exports=Ck;Ek.exports.default=Ck});var bz=w((yk,wk)=>{"use strict";Object.defineProperty(yk,"__esModule",{value:!0});var rxe=Bz(),ixe=Number(process.versions.node.split(".")[0]),Ik=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||ixe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),rxe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};yk.default=Ik;wk.exports=Ik;wk.exports.default=Ik});var kz=w((tnt,Qk)=>{"use strict";var{V4MAPPED:nxe,ADDRCONFIG:sxe,ALL:Dz,promises:{Resolver:Qz},lookup:oxe}=J("dns"),{promisify:Bk}=J("util"),axe=J("os"),Of=Symbol("cacheableLookupCreateConnection"),bk=Symbol("cacheableLookupInstance"),Sz=Symbol("expires"),Axe=typeof Dz=="number",vz=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},lxe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},xz=()=>{let r=!1,e=!1;for(let t of Object.values(axe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},cxe=r=>Symbol.iterator in r,Pz={ttl:!0},uxe={all:!0},Jw=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new Qz,lookup:o=oxe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=Bk(o),this._resolver instanceof Qz?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=Bk(this._resolver.resolve4.bind(this._resolver)),this._resolve6=Bk(this._resolver.resolve6.bind(this._resolver))),this._iface=xz(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&nxe&&(Axe&&t.hints&Dz||n.length===0)?lxe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&sxe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,Pz),this._resolve6(e,Pz)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[Sz]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}cxe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,uxe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[Sz];n>=a?this._cache.delete(s):a("lookup"in t||(t.lookup=this.lookup),e[Of](t,i))}uninstall(e){if(vz(e),e[Of]){if(e[bk]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Of],delete e[Of],delete e[bk]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=xz(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};Qk.exports=Jw;Qk.exports.default=Jw});var Nz=w((rnt,Sk)=>{"use strict";var gxe=typeof URL>"u"?J("url").URL:URL,fxe="text/plain",hxe="us-ascii",Rz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),pxe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,f=""]=u.split("=").map(h=>h.trim());return g==="charset"&&(f=f.toLowerCase(),f===hxe)?"":`${g}${f?`=${f}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==fxe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},Fz=(r,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return pxe(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new gxe(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Rz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Rz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};Sk.exports=Fz;Sk.exports.default=Fz});var Mz=w((int,Lz)=>{Lz.exports=Tz;function Tz(r,e){if(r&&e)return Tz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n{var Oz=Mz();vk.exports=Oz(Ww);vk.exports.strict=Oz(Kz);Ww.proto=Ww(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Ww(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return Kz(this)},configurable:!0})});function Ww(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function Kz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var Pk=w((snt,Hz)=>{var dxe=xk(),Cxe=function(){},mxe=function(r){return r.setHeader&&typeof r.abort=="function"},Exe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},Uz=function(r,e,t){if(typeof e=="function")return Uz(r,null,e);e||(e={}),t=dxe(t||Cxe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(p){t.call(r,p?new Error("exited with error code: "+p):null)},g=function(p){t.call(r,p)},f=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},h=function(){r.req.on("finish",l)};return mxe(r)?(r.on("complete",l),r.on("abort",f),r.req?h():r.on("request",h)):o&&!i&&(r.on("end",a),r.on("close",a)),Exe(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",f),function(){r.removeListener("complete",l),r.removeListener("abort",f),r.removeListener("request",h),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",f)}};Hz.exports=Uz});var jz=w((ont,Yz)=>{var Ixe=xk(),yxe=Pk(),Dk=J("fs"),mC=function(){},wxe=/^v?\.0/.test(process.version),zw=function(r){return typeof r=="function"},Bxe=function(r){return!wxe||!Dk?!1:(r instanceof(Dk.ReadStream||mC)||r instanceof(Dk.WriteStream||mC))&&zw(r.close)},bxe=function(r){return r.setHeader&&zw(r.abort)},Qxe=function(r,e,t,i){i=Ixe(i);var n=!1;r.on("close",function(){n=!0}),yxe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Bxe(r))return r.close(mC);if(bxe(r))return r.abort();if(zw(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},Gz=function(r){r()},Sxe=function(r,e){return r.pipe(e)},vxe=function(){var r=Array.prototype.slice.call(arguments),e=zw(r[r.length-1]||mC)&&r.pop()||mC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s0;return Qxe(n,o,a,function(l){t||(t=l),l&&i.forEach(Gz),!o&&(i.forEach(Gz),e(t))})});return r.reduce(Sxe)};Yz.exports=vxe});var Jz=w((ant,qz)=>{"use strict";var{PassThrough:xxe}=J("stream");qz.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new xxe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var Wz=w((Ant,Kf)=>{"use strict";var Pxe=jz(),Dxe=Jz(),Vw=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Xw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=Pxe(r,Dxe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new Vw)})}),i.getBufferedValue()}Kf.exports=Xw;Kf.exports.default=Xw;Kf.exports.buffer=(r,e)=>Xw(r,{...e,encoding:"buffer"});Kf.exports.array=(r,e)=>Xw(r,{...e,array:!0});Kf.exports.MaxBufferError=Vw});var Vz=w((cnt,zz)=>{"use strict";var kxe=new Set([200,203,204,206,300,301,404,405,410,414,501]),Rxe=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Fxe=new Set([500,502,503,504]),Nxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Txe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Lc(r){let e=parseInt(r,10);return isFinite(e)?e:0}function Lxe(r){return r?Fxe.has(r.status):!0}function kk(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function Mxe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}zz.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,_fromObject:a}={}){if(a){this._fromObject(a);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=kk(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=kk(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":Mxe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers["cache-control"]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Rxe.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||kxe.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=kk(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)Nxe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){return Lc(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Lc(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Lc(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+Lc(this._rescc["stale-if-error"]),i=e+Lc(this._rescc["stale-while-revalidate"]);return Math.max(0,e,t,i)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Lc(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Lc(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Lxe(t))return{modified:!1,matches:!1,policy:this};if(!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!Txe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Zw=w((unt,Xz)=>{"use strict";Xz.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var _z=w((gnt,Zz)=>{"use strict";var Oxe=J("stream").Readable,Kxe=Zw(),Rk=class extends Oxe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=Kxe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};Zz.exports=Rk});var e5=w((fnt,$z)=>{"use strict";var Uxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];$z.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(Uxe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var r5=w((hnt,t5)=>{"use strict";var Hxe=J("stream").PassThrough,Gxe=e5(),Yxe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new Hxe;return Gxe(r,e),r.pipe(e)};t5.exports=Yxe});var i5=w(Fk=>{Fk.stringify=function r(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]>"u";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};Fk.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var o5=w((dnt,s5)=>{"use strict";var jxe=J("events"),n5=i5(),qxe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},Nk=class extends jxe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:n5.stringify,deserialize:n5.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=qxe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>"u"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};s5.exports=Nk});var l5=w((mnt,A5)=>{"use strict";var Jxe=J("events"),_w=J("url"),Wxe=Nz(),zxe=Wz(),Tk=Vz(),a5=_z(),Vxe=Zw(),Xxe=r5(),Zxe=o5(),oo=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Zxe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=Lk(_w.parse(t)),t={};else if(t instanceof _w.URL)n=Lk(_w.parse(t.toString())),t={};else{let[g,...f]=(t.path||"").split("?"),h=f.length>0?`?${f.join("?")}`:"";n=Lk({...t,pathname:g,search:h})}t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,..._xe(n)},t.headers=Vxe(t.headers);let s=new Jxe,o=Wxe(_w.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let f=!1,h,p=new Promise(y=>{h=()=>{f||(f=!0,y())}}),C=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let v=Tk.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!v.modified){let D=v.policy.responseHeaders();y=new a5(l.statusCode,D,l.body,l.url),y.cachePolicy=v.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new Tk(g,y,g),y.fromCache=!1);let B;g.cache&&y.cachePolicy.storable()?(B=Xxe(y),(async()=>{try{let v=zxe.buffer(y);if(await Promise.race([p,new Promise(j=>y.once("end",j))]),f)return;let D=await v,T={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:D},H=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,T,H)}catch(v){s.emit("error",new oo.CacheError(v))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(v){s.emit("error",new oo.CacheError(v))}})(),s.emit("response",B||y),typeof i=="function"&&i(B||y)};try{let y=e(g,C);y.once("error",h),y.once("abort",h),s.emit("request",y)}catch(y){s.emit("error",new oo.RequestError(y))}};return(async()=>{let g=async h=>{await Promise.resolve();let p=h.cache?await this.cache.get(a):void 0;if(typeof p>"u")return u(h);let C=Tk.fromObject(p.cachePolicy);if(C.satisfiesWithoutRevalidation(h)&&!h.forceRefresh){let y=C.responseHeaders(),B=new a5(p.statusCode,y,p.body,p.url);B.cachePolicy=C,B.fromCache=!0,s.emit("response",B),typeof i=="function"&&i(B)}else l=p,h.headers=C.revalidationHeaders(h),u(h)},f=h=>s.emit("error",new oo.CacheError(h));this.cache.once("error",f),s.on("response",()=>this.cache.removeListener("error",f));try{await g(t)}catch(h){t.automaticFailover&&!c&&u(t),s.emit("error",new oo.CacheError(h))}})(),s}}};function _xe(r){let e={...r};return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function Lk(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}oo.RequestError=class extends Error{constructor(r){super(r.message),this.name="RequestError",Object.assign(this,r)}};oo.CacheError=class extends Error{constructor(r){super(r.message),this.name="CacheError",Object.assign(this,r)}};A5.exports=oo});var u5=w((ynt,c5)=>{"use strict";var $xe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];c5.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat($xe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var f5=w((wnt,g5)=>{"use strict";var{Transform:ePe,PassThrough:tPe}=J("stream"),Mk=J("zlib"),rPe=u5();g5.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof Mk.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new ePe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new tPe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?Mk.createBrotliDecompress():Mk.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),rPe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var Kk=w((Bnt,h5)=>{"use strict";var Ok=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};h5.exports=Ok});var Hk=w((bnt,m5)=>{"use strict";var iPe=J("events"),nPe=J("tls"),sPe=J("http2"),oPe=Kk(),on=Symbol("currentStreamsCount"),p5=Symbol("request"),Bs=Symbol("cachedOriginSet"),Uf=Symbol("gracefullyClosing"),aPe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],APe=(r,e,t)=>{let i=0,n=r.length;for(;i>>1;t(r[s],e)?i=s+1:n=s}return i},lPe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,Uk=(r,e)=>{for(let t of r)t[Bs].lengthe[Bs].includes(i))&&t[on]+e[on]<=e.remoteSettings.maxConcurrentStreams&&C5(t)},cPe=(r,e)=>{for(let t of r)e[Bs].lengtht[Bs].includes(i))&&e[on]+t[on]<=t.remoteSettings.maxConcurrentStreams&&C5(e)},d5=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[zo.kCurrentStreamsCount]{r[Uf]=!0,r[on]===0&&r.close()},zo=class extends iPe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new oPe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of aPe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=zo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,f=-1,h;for(let p of u){let C=p.remoteSettings.maxConcurrentStreams;if(C=C||p[Uf]||p.destroyed)continue;h||(g=C),y>f&&(h=p,f=y)}}if(h){if(i.length!==1){for(let{reject:p}of i){let C=new Error(`Expected the length of listeners to be 1, got ${i.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);p(C)}return}i[0].resolve(h);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let f=sPe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});f[on]=0,f[Uf]=!1;let h=()=>f[on]{this.tlsSessionCache.set(u,y)}),f.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),f.setTimeout(this.timeout,()=>{f.destroy()}),f.once("close",()=>{if(g){p&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(f),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let C=()=>{if(!(!(o in this.queue)||!h())){for(let y of f[Bs])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&h();)B.shift().resolve(f);let v=this.queue[o];if(v[y].listeners.length===0&&(delete v[y],Object.keys(v).length===0)){delete this.queue[o];break}if(!h())break}}};f.on("origin",()=>{f[Bs]=f.originSet,h()&&(C(),Uk(this.sessions[o],f))}),f.once("remoteSettings",()=>{if(f.ref(),f.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);f.destroy();return}f[Bs]=f.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(APe(B,f,lPe),0,f)}else y[o]=[f]}this._freeSessionsCount+=1,g=!0,this.emit("session",f),C(),l(),f[on]===0&&this._freeSessionsCount>this.maxFreeSessions&&f.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),f.on("remoteSettings",()=>{C(),Uk(this.sessions[o],f)})}),f[p5]=f.request,f.request=(y,B)=>{if(f[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let v=f[p5](y,B);return f.ref(),++f[on],f[on]===f.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,v.once("close",()=>{if(p=h(),--f[on],!f.destroyed&&!f.closed&&(cPe(this.sessions[o],f),h()&&!f.closed)){p||(this._freeSessionsCount++,p=!0);let D=f[on]===0;D&&f.unref(),D&&(this._freeSessionsCount>this.maxFreeSessions||f[Uf])?f.close():(Uk(this.sessions[o],f),C())}}),v}}catch(f){for(let h of i)h.reject(f);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return zo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),nPe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[on]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return d5({agent:this,isFree:!0})}get busySessions(){return d5({agent:this,isFree:!1})}};zo.kCurrentStreamsCount=on;zo.kGracefullyClosing=Uf;m5.exports={Agent:zo,globalAgent:new zo}});var Yk=w((Qnt,E5)=>{"use strict";var{Readable:uPe}=J("stream"),Gk=class extends uPe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};E5.exports=Gk});var jk=w((Snt,I5)=>{"use strict";I5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var w5=w((vnt,y5)=>{"use strict";y5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var b5=w((xnt,B5)=>{"use strict";B5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var S5=w((Dnt,Q5)=>{"use strict";var Hf=(r,e,t)=>{Q5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};Hf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});Hf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);Hf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);Hf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);Hf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);Hf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var Vk=w((knt,F5)=>{"use strict";var gPe=J("http2"),{Writable:fPe}=J("stream"),{Agent:v5,globalAgent:hPe}=Hk(),pPe=Yk(),dPe=jk(),CPe=w5(),mPe=b5(),{ERR_INVALID_ARG_TYPE:qk,ERR_INVALID_PROTOCOL:EPe,ERR_HTTP_HEADERS_SENT:x5,ERR_INVALID_HTTP_TOKEN:IPe,ERR_HTTP_INVALID_HEADER_VALUE:yPe,ERR_INVALID_CHAR:wPe}=S5(),{HTTP2_HEADER_STATUS:P5,HTTP2_HEADER_METHOD:D5,HTTP2_HEADER_PATH:k5,HTTP2_METHOD_CONNECT:BPe}=gPe.constants,Ui=Symbol("headers"),Jk=Symbol("origin"),Wk=Symbol("session"),R5=Symbol("options"),$w=Symbol("flushedHeaders"),EC=Symbol("jobs"),bPe=/^[\^`\-\w!#$%&*+.|~]+$/,QPe=/[^\t\u0020-\u007E\u0080-\u00FF]/,zk=class extends fPe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=dPe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[Wk]=t.h2session;else if(t.agent===!1)this.agent=new v5({maxFreeSessions:0});else if(typeof t.agent>"u"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new v5({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=hPe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new qk("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new EPe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Ui]=Object.create(null),this[EC]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Ui])&&(this[Ui].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[R5]=t,s===443?(this[Jk]=`https://${o}`,":authority"in this[Ui]||(this[Ui][":authority"]=o)):(this[Jk]=`https://${o}:${s}`,":authority"in this[Ui]||(this[Ui][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[$w]=!1}get method(){return this[Ui][D5]}set method(e){e&&(this[Ui][D5]=e.toUpperCase())}get path(){return this[Ui][k5]}set path(e){e&&(this[Ui][k5]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[EC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[EC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[$w]||this.destroyed)return;this[$w]=!0;let e=this.method===BPe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||CPe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new pPe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[P5],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[P5]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[EC])o();this.emit("socket",this.socket)};if(this[Wk])try{t(this[Wk].request(this[Ui]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[Jk],this[R5],this[Ui]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new qk("name","string",e);return this[Ui][e.toLowerCase()]}get headersSent(){return this[$w]}removeHeader(e){if(typeof e!="string")throw new qk("name","string",e);if(this.headersSent)throw new x5("remove");delete this[Ui][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new x5("set");if(typeof e!="string"||!bPe.test(e)&&!mPe(e))throw new IPe("Header name",e);if(typeof t>"u")throw new yPe(t,e);if(QPe.test(t))throw new wPe("header content",e);this[Ui][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[EC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};F5.exports=zk});var T5=w((Rnt,N5)=>{"use strict";var SPe=J("tls");N5.exports=(r={})=>new Promise((e,t)=>{let i=SPe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var M5=w((Fnt,L5)=>{"use strict";var vPe=J("net");L5.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),vPe.isIP(e)?"":e}});var U5=w((Nnt,Zk)=>{"use strict";var O5=J("http"),Xk=J("https"),xPe=T5(),PPe=Kk(),DPe=Vk(),kPe=M5(),RPe=jk(),eB=new PPe({maxSize:100}),IC=new Map,K5=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},FPe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!eB.has(e)){if(IC.has(e))return(await IC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=xPe(r);IC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if(eB.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=Xk,l=Xk.Agent.prototype.createConnection;i?i.createConnection===l?K5(i,s,r):s.destroy():a.createConnection===l?K5(a,s,r):s.destroy()}return IC.delete(e),o}catch(s){throw IC.delete(e),s}}return eB.get(e)};Zk.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=RPe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||kPe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?Xk.globalAgent:O5.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await FPe(e)==="h2"?(n&&(e.agent=n.http2),new DPe(e,t)):O5.request(e,t)};Zk.exports.protocolCache=eB});var G5=w((Tnt,H5)=>{"use strict";var NPe=J("http2"),TPe=Hk(),_k=Vk(),LPe=Yk(),MPe=U5(),OPe=(r,e,t)=>new _k(r,e,t),KPe=(r,e,t)=>{let i=new _k(r,e,t);return i.end(),i};H5.exports={...NPe,ClientRequest:_k,IncomingMessage:LPe,...TPe,request:OPe,get:KPe,auto:MPe}});var eR=w($k=>{"use strict";Object.defineProperty($k,"__esModule",{value:!0});var Y5=Ya();$k.default=r=>Y5.default.nodeStream(r)&&Y5.default.function_(r.getBoundary)});var W5=w(tR=>{"use strict";Object.defineProperty(tR,"__esModule",{value:!0});var q5=J("fs"),J5=J("util"),j5=Ya(),UPe=eR(),HPe=J5.promisify(q5.stat);tR.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(j5.default.string(r))return Buffer.byteLength(r);if(j5.default.buffer(r))return r.length;if(UPe.default(r))return J5.promisify(r.getLength.bind(r))();if(r instanceof q5.ReadStream){let{size:t}=await HPe(r.path);return t===0?void 0:t}}});var iR=w(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});function GPe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}rR.default=GPe});var z5=w(nR=>{"use strict";Object.defineProperty(nR,"__esModule",{value:!0});nR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var X5=w(yC=>{"use strict";Object.defineProperty(yC,"__esModule",{value:!0});yC.TimeoutError=void 0;var YPe=J("net"),jPe=z5(),V5=Symbol("reentry"),qPe=()=>{},tB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};yC.TimeoutError=tB;yC.default=(r,e,t)=>{if(V5 in r)return qPe;r[V5]=!0;let i=[],{once:n,unhandleAll:s}=jPe.default(),o=(g,f,h)=>{var p;let C=setTimeout(f,g,g,h);(p=C.unref)===null||p===void 0||p.call(C);let y=()=>{clearTimeout(C)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,f)=>{r.destroy(new tB(g,f))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request<"u"&&o(e.request,c,"request"),typeof e.socket<"u"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var f;let{socketPath:h}=r;if(g.connecting){let p=Boolean(h!=null?h:YPe.isIP((f=l!=null?l:a)!==null&&f!==void 0?f:"")!==0);if(typeof e.lookup<"u"&&!p&&typeof g.address().address>"u"){let C=o(e.lookup,c,"lookup");n(g,"lookup",C)}if(typeof e.connect<"u"){let C=()=>o(e.connect,c,"connect");p?n(g,"connect",C()):n(g,"lookup",y=>{y===null&&n(g,"connect",C())})}typeof e.secureConnect<"u"&&t.protocol==="https:"&&n(g,"connect",()=>{let C=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",C)})}if(typeof e.send<"u"){let p=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",p())}):n(r,"upload-complete",p())}}),typeof e.response<"u"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var _5=w(sR=>{"use strict";Object.defineProperty(sR,"__esModule",{value:!0});var Z5=Ya();sR.default=r=>{r=r;let e={protocol:r.protocol,hostname:Z5.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return Z5.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var $5=w(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});var JPe=J("url"),WPe=["protocol","host","hostname","port","pathname","search"];oR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new JPe.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of WPe)e[s]&&(n[s]=e[s].toString());return n}});var e6=w(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});var aR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};AR.default=aR});var cR=w(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});var zPe=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};lR.default=zPe});var r6=w(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});Mc.dnsLookupIpVersionToFamily=Mc.isDnsLookupIpVersion=void 0;var t6={auto:0,ipv4:4,ipv6:6};Mc.isDnsLookupIpVersion=r=>r in t6;Mc.dnsLookupIpVersionToFamily=r=>{if(Mc.isDnsLookupIpVersion(r))return t6[r];throw new Error("Invalid DNS lookup IP version")}});var uR=w(rB=>{"use strict";Object.defineProperty(rB,"__esModule",{value:!0});rB.isResponseOk=void 0;rB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var n6=w(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});var i6=new Set;gR.default=r=>{i6.has(r)||(i6.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var s6=w(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});var mr=Ya(),VPe=(r,e)=>{if(mr.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");mr.assert.any([mr.default.string,mr.default.undefined],r.encoding),mr.assert.any([mr.default.boolean,mr.default.undefined],r.resolveBodyOnly),mr.assert.any([mr.default.boolean,mr.default.undefined],r.methodRewriting),mr.assert.any([mr.default.boolean,mr.default.undefined],r.isStream),mr.assert.any([mr.default.string,mr.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},mr.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):mr.default.number(t)&&(r.retry.limit=t),mr.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(mr.default.number))),mr.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!mr.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!mr.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!mr.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!mr.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};fR.default=VPe});var o6=w(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.retryAfterStatusCodes=void 0;wC.retryAfterStatusCodes=new Set([413,429,503]);var XPe=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};wC.default=XPe});var QC=w(Yt=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.UnsupportedProtocolError=Yt.ReadError=Yt.TimeoutError=Yt.UploadError=Yt.CacheError=Yt.HTTPError=Yt.MaxRedirectsError=Yt.RequestError=Yt.setNonEnumerableProperties=Yt.knownHookEvents=Yt.withoutBody=Yt.kIsNormalizedAlready=void 0;var a6=J("util"),A6=J("stream"),ZPe=J("fs"),XA=J("url"),l6=J("http"),hR=J("http"),_Pe=J("https"),$Pe=bz(),eDe=kz(),c6=l5(),tDe=f5(),rDe=G5(),iDe=Zw(),Ee=Ya(),nDe=W5(),u6=eR(),sDe=iR(),g6=X5(),oDe=_5(),f6=$5(),aDe=e6(),ADe=cR(),h6=r6(),lDe=uR(),ZA=n6(),cDe=s6(),uDe=o6(),pR,Pi=Symbol("request"),sB=Symbol("response"),Gf=Symbol("responseSize"),Yf=Symbol("downloadedSize"),jf=Symbol("bodySize"),qf=Symbol("uploadedSize"),iB=Symbol("serverResponsesPiped"),p6=Symbol("unproxyEvents"),d6=Symbol("isFromCache"),dR=Symbol("cancelTimeouts"),C6=Symbol("startedReading"),Jf=Symbol("stopReading"),nB=Symbol("triggerRead"),_A=Symbol("body"),BC=Symbol("jobs"),m6=Symbol("originalResponse"),E6=Symbol("retryTimeout");Yt.kIsNormalizedAlready=Symbol("isNormalizedAlready");var gDe=Ee.default.string(process.versions.brotli);Yt.withoutBody=new Set(["GET","HEAD"]);Yt.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function fDe(r){for(let e in r){let t=r[e];if(!Ee.default.string(t)&&!Ee.default.number(t)&&!Ee.default.boolean(t)&&!Ee.default.null_(t)&&!Ee.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function hDe(r){return Ee.default.object(r)&&!("statusCode"in r)}var CR=new aDe.default,pDe=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),dDe=new Set([300,301,302,303,304,307,308]),CDe=["context","body","json","form"];Yt.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of CDe)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var ei=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof gB?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[sB]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ee.default.string(t.stack)&&Ee.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` +`,n)}while(i!==-1);return s+=r.substr(n),s};OJ.exports={stringReplaceAll:xwe,stringEncaseCRLFWithFirstIndex:Pwe}});var jJ=w((rtt,YJ)=>{"use strict";var Dwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,UJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,kwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Rwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Fwe=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function GJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Fwe.get(r)||r}function Nwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(kwe))t.push(n[2].replace(Rwe,(a,l,c)=>l?GJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function Twe(r){UJ.lastIndex=0;let e=[],t;for(;(t=UJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=Nwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function HJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}YJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Dwe,(s,o,a,l,c,u)=>{if(o)n.push(GJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:HJ(r,t)(g)),t.push({inverse:a,styles:Twe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(HJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wx=w((itt,zJ)=>{"use strict";var Kd=RJ(),{stdout:mx,stderr:Ex}=MJ(),{stringReplaceAll:Lwe,stringEncaseCRLFWithFirstIndex:Mwe}=KJ(),qJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Owe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mx?mx.level:0;r.level=e.level===void 0?t:e.level},Ix=class{constructor(e){return JJ(e)}},JJ=r=>{let e={};return Owe(e,r),e.template=(...t)=>Hwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Ix,e.template};function Oy(r){return JJ(r)}for(let[r,e]of Object.entries(Kd))uf[r]={get(){let t=Ky(this,yx(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=Ky(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var WJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of WJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yx(Kd.color[qJ[e]][r](...t),Kd.color.close,this._styler);return Ky(this,i,this._isEmpty)}}};for(let r of WJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yx(Kd.bgColor[qJ[t]][r](...i),Kd.bgColor.close,this._styler);return Ky(this,n,this._isEmpty)}}}}var Kwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yx=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},Ky=(r,e,t)=>{let i=(...n)=>Uwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Kwe,i._generator=r,i._styler=e,i._isEmpty=t,i},Uwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Lwe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` +`);return s!==-1&&(e=Mwe(e,n,i,s)),i+e+n},Cx,Hwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s{"use strict";Cs.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;Cs.find=(r,e)=>r.nodes.find(t=>t.type===e);Cs.exceedsLimit=(r,e,t=1,i)=>i===!1||!Cs.isInteger(r)||!Cs.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;Cs.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};Cs.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;Cs.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;Cs.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;Cs.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);Cs.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n{"use strict";var VJ=Uy();XJ.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&VJ.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&VJ.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var _J=w((ott,ZJ)=>{"use strict";ZJ.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var aW=w((att,oW)=>{"use strict";var $J=_J(),Ic=(r,e,t)=>{if($J(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if($J(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(Ic.cache.hasOwnProperty(l))return Ic.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let C=r+"|"+e;return i.capture?`(${C})`:i.wrap===!1?C:`(?:${C})`}let g=sW(r)||sW(e),f={min:r,max:e,a:c,b:u},h=[],p=[];if(g&&(f.isPadded=g,f.maxLen=String(f.max).length),c<0){let C=u<0?Math.abs(u):1;p=eW(C,Math.abs(c),f,i),c=f.a=0}return u>=0&&(h=eW(c,u,f,i)),f.negatives=p,f.positives=h,f.result=Gwe(p,h,i),i.capture===!0?f.result=`(${f.result})`:i.wrap!==!1&&h.length+p.length>1&&(f.result=`(?:${f.result})`),Ic.cache[l]=f,f.result};function Gwe(r,e,t){let i=Bx(r,e,"-",!1,t)||[],n=Bx(e,r,"",!1,t)||[],s=Bx(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Ywe(r,e){let t=1,i=1,n=rW(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=rW(r,t);for(n=iW(e+1,i)-1;r1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+nW(a.count),o=c+1;continue}t.isPadded&&(g=zwe(c,t,i)),u.string=g+u.pattern+nW(u.count),s.push(u),o=c+1,a=u}return s}function Bx(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!tW(e,"string",a)&&s.push(t+a),i&&tW(e,"string",a)&&s.push(t+a)}return s}function qwe(r,e){let t=[];for(let i=0;ie?1:e>r?-1:0}function tW(r,e,t){return r.some(i=>i[e]===t)}function rW(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function iW(r,e){return r-r%Math.pow(10,e)}function nW(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function Wwe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function sW(r){return/^-?(0+)\d/.test(r)}function zwe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}Ic.cache={};Ic.clearCache=()=>Ic.cache={};oW.exports=Ic});var Sx=w((Att,pW)=>{"use strict";var Vwe=J("util"),cW=aW(),AW=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),Xwe=r=>e=>r===!0?Number(e):String(e),bx=r=>typeof r=="number"||typeof r=="string"&&r!=="",Hd=r=>Number.isInteger(+r),Qx=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},Zwe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,_we=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},lW=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length{r.negatives.sort((o,a)=>oa?1:0),r.positives.sort((o,a)=>oa?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},uW=(r,e,t,i)=>{if(t)return cW(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},gW=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return cW(r,e,t)},fW=(...r)=>new RangeError("Invalid range arguments: "+Vwe.inspect(...r)),hW=(r,e,t)=>{if(t.strictRanges===!0)throw fW([r,e]);return[]},eBe=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},tBe=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw fW([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=Qx(a)||Qx(l)||Qx(c),g=u?Math.max(a.length,l.length,c.length):0,f=u===!1&&Zwe(r,e,i)===!1,h=i.transform||Xwe(f);if(i.toRegex&&t===1)return uW(lW(r,g),lW(e,g),!0,i);let p={negatives:[],positives:[]},C=v=>p[v<0?"negatives":"positives"].push(Math.abs(v)),y=[],B=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?C(n):y.push(_we(h(n,B),g,f)),n=o?n-t:n+t,B++;return i.toRegex===!0?t>1?$we(p,i):gW(y,null,{wrap:!1,...i}):y},rBe=(r,e,t=1,i={})=>{if(!Hd(r)&&r.length>1||!Hd(e)&&e.length>1)return hW(r,e,i);let n=i.transform||(f=>String.fromCharCode(f)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return uW(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?gW(u,null,{wrap:!1,options:i}):u},Gy=(r,e,t,i={})=>{if(e==null&&bx(r))return[r];if(!bx(r)||!bx(e))return hW(r,e,i);if(typeof t=="function")return Gy(r,e,1,{transform:t});if(AW(t))return Gy(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,Hd(t)?Hd(r)&&Hd(e)?tBe(r,e,t,n):rBe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!AW(t)?eBe(t,n):Gy(r,e,1,t)};pW.exports=Gy});var mW=w((ltt,CW)=>{"use strict";var iBe=Sx(),dW=Uy(),nBe=(r,e={})=>{let t=(i,n={})=>{let s=dW.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=dW.reduce(i.nodes),g=iBe(...u,{...e,wrap:!1,toRegex:!0});if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};CW.exports=nBe});var yW=w((ctt,IW)=>{"use strict";var sBe=Sx(),EW=Hy(),gf=Uy(),yc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?gf.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(yc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?yc(n,s,t):n+s);return gf.flatten(i)},oBe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(yc(a.pop(),EW(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(yc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=gf.reduce(n.nodes);if(gf.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=sBe(...g,e);f.length===0&&(f=EW(n,e)),a.push(yc(a.pop(),f)),n.nodes=[];return}let l=gf.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g{"use strict";wW.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var xW=w((gtt,vW)=>{"use strict";var aBe=Hy(),{MAX_LENGTH:bW,CHAR_BACKSLASH:vx,CHAR_BACKTICK:ABe,CHAR_COMMA:lBe,CHAR_DOT:cBe,CHAR_LEFT_PARENTHESES:uBe,CHAR_RIGHT_PARENTHESES:gBe,CHAR_LEFT_CURLY_BRACE:fBe,CHAR_RIGHT_CURLY_BRACE:hBe,CHAR_LEFT_SQUARE_BRACKET:QW,CHAR_RIGHT_SQUARE_BRACKET:SW,CHAR_DOUBLE_QUOTE:pBe,CHAR_SINGLE_QUOTE:dBe,CHAR_NO_BREAK_SPACE:CBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:mBe}=BW(),EBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(bW,t.maxLength):bW;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,f,h={},p=()=>r[u++],C=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(C({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:aBe(o)}]}C({type:"comma",value:f}),o.commas++;continue}if(f===cBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){C({type:"text",value:f});continue}if(a.type==="dot"){if(o.range=[],a.value+=f,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+f,a=B,o.ranges--;continue}C({type:"dot",value:f});continue}C({type:"text",value:f})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(v=>{v.nodes||(v.type==="open"&&(v.isOpen=!0),v.type==="close"&&(v.isClose=!0),v.nodes||(v.type="text"),v.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return C({type:"eos"}),n};vW.exports=EBe});var kW=w((ftt,DW)=>{"use strict";var PW=Hy(),IBe=mW(),yBe=yW(),wBe=xW(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>wBe(r,e);Jn.stringify=(r,e={})=>PW(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),IBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=yBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);DW.exports=Jn});var Gd=w((htt,LW)=>{"use strict";var BBe=J("path"),Ko="\\\\/",RW=`[^${Ko}]`,Na="\\.",bBe="\\+",QBe="\\?",Yy="\\/",SBe="(?=.)",FW="[^/]",xx=`(?:${Yy}|$)`,NW=`(?:^|${Yy})`,Px=`${Na}{1,2}${xx}`,vBe=`(?!${Na})`,xBe=`(?!${NW}${Px})`,PBe=`(?!${Na}{0,1}${xx})`,DBe=`(?!${Px})`,kBe=`[^.${Yy}]`,RBe=`${FW}*?`,TW={DOT_LITERAL:Na,PLUS_LITERAL:bBe,QMARK_LITERAL:QBe,SLASH_LITERAL:Yy,ONE_CHAR:SBe,QMARK:FW,END_ANCHOR:xx,DOTS_SLASH:Px,NO_DOT:vBe,NO_DOTS:xBe,NO_DOT_SLASH:PBe,NO_DOTS_SLASH:DBe,QMARK_NO_DOT:kBe,STAR:RBe,START_ANCHOR:NW},FBe={...TW,SLASH_LITERAL:`[${Ko}]`,QMARK:RW,STAR:`${RW}*?`,DOTS_SLASH:`${Na}{1,2}(?:[${Ko}]|$)`,NO_DOT:`(?!${Na})`,NO_DOTS:`(?!(?:^|[${Ko}])${Na}{1,2}(?:[${Ko}]|$))`,NO_DOT_SLASH:`(?!${Na}{0,1}(?:[${Ko}]|$))`,NO_DOTS_SLASH:`(?!${Na}{1,2}(?:[${Ko}]|$))`,QMARK_NO_DOT:`[^.${Ko}]`,START_ANCHOR:`(?:^|[${Ko}])`,END_ANCHOR:`(?:[${Ko}]|$)`},NBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};LW.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:NBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:BBe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?FBe:TW}}});var Yd=w(wn=>{"use strict";var TBe=J("path"),LBe=process.platform==="win32",{REGEX_BACKSLASH:MBe,REGEX_REMOVE_BACKSLASH:OBe,REGEX_SPECIAL_CHARS:KBe,REGEX_SPECIAL_CHARS_GLOBAL:UBe}=Gd();wn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);wn.hasRegexChars=r=>KBe.test(r);wn.isRegexChar=r=>r.length===1&&wn.hasRegexChars(r);wn.escapeRegex=r=>r.replace(UBe,"\\$1");wn.toPosixSlashes=r=>r.replace(MBe,"/");wn.removeBackslashes=r=>r.replace(OBe,e=>e==="\\"?"":e);wn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};wn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:LBe===!0||TBe.sep==="\\";wn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?wn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};wn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};wn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var jW=w((dtt,YW)=>{"use strict";var MW=Yd(),{CHAR_ASTERISK:Dx,CHAR_AT:HBe,CHAR_BACKWARD_SLASH:jd,CHAR_COMMA:GBe,CHAR_DOT:kx,CHAR_EXCLAMATION_MARK:Rx,CHAR_FORWARD_SLASH:GW,CHAR_LEFT_CURLY_BRACE:Fx,CHAR_LEFT_PARENTHESES:Nx,CHAR_LEFT_SQUARE_BRACKET:YBe,CHAR_PLUS:jBe,CHAR_QUESTION_MARK:OW,CHAR_RIGHT_CURLY_BRACE:qBe,CHAR_RIGHT_PARENTHESES:KW,CHAR_RIGHT_SQUARE_BRACKET:JBe}=Gd(),UW=r=>r===GW||r===jd,HW=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},WBe=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,f=!1,h=!1,p=!1,C=!1,y=!1,B=!1,v=!1,D=!1,T=!1,H=!1,j=0,$,V,W={value:"",depth:0,isGlob:!1},_=()=>c>=i,A=()=>l.charCodeAt(c+1),Ae=()=>($=V,l.charCodeAt(++c));for(;c0&&(re=l.slice(0,u),l=l.slice(u),g-=u),ge&&p===!0&&g>0?(ge=l.slice(0,g),M=l.slice(g)):p===!0?(ge="",M=l):ge=l,ge&&ge!==""&&ge!=="/"&&ge!==l&&UW(ge.charCodeAt(ge.length-1))&&(ge=ge.slice(0,-1)),t.unescape===!0&&(M&&(M=MW.removeBackslashes(M)),ge&&v===!0&&(ge=MW.removeBackslashes(ge)));let F={prefix:re,input:r,start:u,base:ge,glob:M,isBrace:f,isBracket:h,isGlob:p,isExtglob:C,isGlobstar:y,negated:D,negatedExtglob:T};if(t.tokens===!0&&(F.maxDepth=0,UW(V)||o.push(W),F.tokens=o),t.parts===!0||t.tokens===!0){let ue;for(let pe=0;pe{"use strict";var jy=Gd(),Wn=Yd(),{MAX_LENGTH:qy,POSIX_REGEX_SOURCE:zBe,REGEX_NON_SPECIAL_CHARS:VBe,REGEX_SPECIAL_CHARS_BACKREF:XBe,REPLACEMENTS:qW}=jy,ZBe=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch{return r.map(n=>Wn.escapeRegex(n)).join("..")}return t},ff=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,Tx=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=qW[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(qy,t.maxLength):qy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=Wn.isWindows(e),c=jy.globChars(l),u=jy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:f,SLASH_LITERAL:h,ONE_CHAR:p,DOTS_SLASH:C,NO_DOT:y,NO_DOT_SLASH:B,NO_DOTS_SLASH:v,QMARK:D,QMARK_NO_DOT:T,STAR:H,START_ANCHOR:j}=c,$=Y=>`(${a}(?:(?!${j}${Y.dot?C:g}).)*?)`,V=t.dot?"":y,W=t.dot?D:T,_=t.bash===!0?$(t):H;t.capture&&(_=`(${_})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=Wn.removePrefix(r,A),n=r.length;let Ae=[],ge=[],re=[],M=s,F,ue=()=>A.index===n-1,pe=A.peek=(Y=1)=>r[A.index+Y],ke=A.advance=()=>r[++A.index]||"",Fe=()=>r.slice(A.index+1),Ne=(Y="",he=0)=>{A.consumed+=Y,A.index+=he},oe=Y=>{A.output+=Y.output!=null?Y.output:Y.value,Ne(Y.value)},le=()=>{let Y=1;for(;pe()==="!"&&(pe(2)!=="("||pe(3)==="?");)ke(),A.start++,Y++;return Y%2===0?!1:(A.negated=!0,A.start++,!0)},Be=Y=>{A[Y]++,re.push(Y)},fe=Y=>{A[Y]--,re.pop()},ae=Y=>{if(M.type==="globstar"){let he=A.braces>0&&(Y.type==="comma"||Y.type==="brace"),ie=Y.extglob===!0||Ae.length&&(Y.type==="pipe"||Y.type==="paren");Y.type!=="slash"&&Y.type!=="paren"&&!he&&!ie&&(A.output=A.output.slice(0,-M.output.length),M.type="star",M.value="*",M.output=_,A.output+=M.output)}if(Ae.length&&Y.type!=="paren"&&(Ae[Ae.length-1].inner+=Y.value),(Y.value||Y.output)&&oe(Y),M&&M.type==="text"&&Y.type==="text"){M.value+=Y.value,M.output=(M.output||"")+Y.value;return}Y.prev=M,o.push(Y),M=Y},qe=(Y,he)=>{let ie={...u[he],conditions:1,inner:""};ie.prev=M,ie.parens=A.parens,ie.output=A.output;let de=(t.capture?"(":"")+ie.open;Be("parens"),ae({type:Y,value:he,output:A.output?"":p}),ae({type:"paren",extglob:!0,value:ke(),output:de}),Ae.push(ie)},ne=Y=>{let he=Y.close+(t.capture?")":""),ie;if(Y.type==="negate"){let de=_;if(Y.inner&&Y.inner.length>1&&Y.inner.includes("/")&&(de=$(t)),(de!==_||ue()||/^\)+$/.test(Fe()))&&(he=Y.close=`)$))${de}`),Y.inner.includes("*")&&(ie=Fe())&&/^\.[^\\/.]+$/.test(ie)){let _e=Tx(ie,{...e,fastpaths:!1}).output;he=Y.close=`)${_e})${de})`}Y.prev.type==="bos"&&(A.negatedExtglob=!0)}ae({type:"paren",extglob:!0,value:F,output:he}),fe("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let Y=!1,he=r.replace(XBe,(ie,de,_e,Pt,It,Mr)=>Pt==="\\"?(Y=!0,ie):Pt==="?"?de?de+Pt+(It?D.repeat(It.length):""):Mr===0?W+(It?D.repeat(It.length):""):D.repeat(_e.length):Pt==="."?g.repeat(_e.length):Pt==="*"?de?de+Pt+(It?_:""):_:de?ie:`\\${ie}`);return Y===!0&&(t.unescape===!0?he=he.replace(/\\/g,""):he=he.replace(/\\+/g,ie=>ie.length%2===0?"\\\\":ie?"\\":"")),he===r&&t.contains===!0?(A.output=r,A):(A.output=Wn.wrapOutput(he,A,e),A)}for(;!ue();){if(F=ke(),F==="\0")continue;if(F==="\\"){let ie=pe();if(ie==="/"&&t.bash!==!0||ie==="."||ie===";")continue;if(!ie){F+="\\",ae({type:"text",value:F});continue}let de=/^\\+/.exec(Fe()),_e=0;if(de&&de[0].length>2&&(_e=de[0].length,A.index+=_e,_e%2!==0&&(F+="\\")),t.unescape===!0?F=ke():F+=ke(),A.brackets===0){ae({type:"text",value:F});continue}}if(A.brackets>0&&(F!=="]"||M.value==="["||M.value==="[^")){if(t.posix!==!1&&F===":"){let ie=M.value.slice(1);if(ie.includes("[")&&(M.posix=!0,ie.includes(":"))){let de=M.value.lastIndexOf("["),_e=M.value.slice(0,de),Pt=M.value.slice(de+2),It=zBe[Pt];if(It){M.value=_e+It,A.backtrack=!0,ke(),!s.output&&o.indexOf(M)===1&&(s.output=p);continue}}}(F==="["&&pe()!==":"||F==="-"&&pe()==="]")&&(F=`\\${F}`),F==="]"&&(M.value==="["||M.value==="[^")&&(F=`\\${F}`),t.posix===!0&&F==="!"&&M.value==="["&&(F="^"),M.value+=F,oe({value:F});continue}if(A.quotes===1&&F!=='"'){F=Wn.escapeRegex(F),M.value+=F,oe({value:F});continue}if(F==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&ae({type:"text",value:F});continue}if(F==="("){Be("parens"),ae({type:"paren",value:F});continue}if(F===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ff("opening","("));let ie=Ae[Ae.length-1];if(ie&&A.parens===ie.parens+1){ne(Ae.pop());continue}ae({type:"paren",value:F,output:A.parens?")":"\\)"}),fe("parens");continue}if(F==="["){if(t.nobracket===!0||!Fe().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));F=`\\${F}`}else Be("brackets");ae({type:"bracket",value:F});continue}if(F==="]"){if(t.nobracket===!0||M&&M.type==="bracket"&&M.value.length===1){ae({type:"text",value:F,output:`\\${F}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ff("opening","["));ae({type:"text",value:F,output:`\\${F}`});continue}fe("brackets");let ie=M.value.slice(1);if(M.posix!==!0&&ie[0]==="^"&&!ie.includes("/")&&(F=`/${F}`),M.value+=F,oe({value:F}),t.literalBrackets===!1||Wn.hasRegexChars(ie))continue;let de=Wn.escapeRegex(M.value);if(A.output=A.output.slice(0,-M.value.length),t.literalBrackets===!0){A.output+=de,M.value=de;continue}M.value=`(${a}${de}|${M.value})`,A.output+=M.value;continue}if(F==="{"&&t.nobrace!==!0){Be("braces");let ie={type:"brace",value:F,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ge.push(ie),ae(ie);continue}if(F==="}"){let ie=ge[ge.length-1];if(t.nobrace===!0||!ie){ae({type:"text",value:F,output:F});continue}let de=")";if(ie.dots===!0){let _e=o.slice(),Pt=[];for(let It=_e.length-1;It>=0&&(o.pop(),_e[It].type!=="brace");It--)_e[It].type!=="dots"&&Pt.unshift(_e[It].value);de=ZBe(Pt,t),A.backtrack=!0}if(ie.comma!==!0&&ie.dots!==!0){let _e=A.output.slice(0,ie.outputIndex),Pt=A.tokens.slice(ie.tokensIndex);ie.value=ie.output="\\{",F=de="\\}",A.output=_e;for(let It of Pt)A.output+=It.output||It.value}ae({type:"brace",value:F,output:de}),fe("braces"),ge.pop();continue}if(F==="|"){Ae.length>0&&Ae[Ae.length-1].conditions++,ae({type:"text",value:F});continue}if(F===","){let ie=F,de=ge[ge.length-1];de&&re[re.length-1]==="braces"&&(de.comma=!0,ie="|"),ae({type:"comma",value:F,output:ie});continue}if(F==="/"){if(M.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),M=s;continue}ae({type:"slash",value:F,output:h});continue}if(F==="."){if(A.braces>0&&M.type==="dot"){M.value==="."&&(M.output=g);let ie=ge[ge.length-1];M.type="dots",M.output+=F,M.value+=F,ie.dots=!0;continue}if(A.braces+A.parens===0&&M.type!=="bos"&&M.type!=="slash"){ae({type:"text",value:F,output:g});continue}ae({type:"dot",value:F,output:g});continue}if(F==="?"){if(!(M&&M.value==="(")&&t.noextglob!==!0&&pe()==="("&&pe(2)!=="?"){qe("qmark",F);continue}if(M&&M.type==="paren"){let de=pe(),_e=F;if(de==="<"&&!Wn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(M.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(Fe()))&&(_e=`\\${F}`),ae({type:"text",value:F,output:_e});continue}if(t.dot!==!0&&(M.type==="slash"||M.type==="bos")){ae({type:"qmark",value:F,output:T});continue}ae({type:"qmark",value:F,output:D});continue}if(F==="!"){if(t.noextglob!==!0&&pe()==="("&&(pe(2)!=="?"||!/[!=<:]/.test(pe(3)))){qe("negate",F);continue}if(t.nonegate!==!0&&A.index===0){le();continue}}if(F==="+"){if(t.noextglob!==!0&&pe()==="("&&pe(2)!=="?"){qe("plus",F);continue}if(M&&M.value==="("||t.regex===!1){ae({type:"plus",value:F,output:f});continue}if(M&&(M.type==="bracket"||M.type==="paren"||M.type==="brace")||A.parens>0){ae({type:"plus",value:F});continue}ae({type:"plus",value:f});continue}if(F==="@"){if(t.noextglob!==!0&&pe()==="("&&pe(2)!=="?"){ae({type:"at",extglob:!0,value:F,output:""});continue}ae({type:"text",value:F});continue}if(F!=="*"){(F==="$"||F==="^")&&(F=`\\${F}`);let ie=VBe.exec(Fe());ie&&(F+=ie[0],A.index+=ie[0].length),ae({type:"text",value:F});continue}if(M&&(M.type==="globstar"||M.star===!0)){M.type="star",M.star=!0,M.value+=F,M.output=_,A.backtrack=!0,A.globstar=!0,Ne(F);continue}let Y=Fe();if(t.noextglob!==!0&&/^\([^?]/.test(Y)){qe("star",F);continue}if(M.type==="star"){if(t.noglobstar===!0){Ne(F);continue}let ie=M.prev,de=ie.prev,_e=ie.type==="slash"||ie.type==="bos",Pt=de&&(de.type==="star"||de.type==="globstar");if(t.bash===!0&&(!_e||Y[0]&&Y[0]!=="/")){ae({type:"star",value:F,output:""});continue}let It=A.braces>0&&(ie.type==="comma"||ie.type==="brace"),Mr=Ae.length&&(ie.type==="pipe"||ie.type==="paren");if(!_e&&ie.type!=="paren"&&!It&&!Mr){ae({type:"star",value:F,output:""});continue}for(;Y.slice(0,3)==="/**";){let ii=r[A.index+4];if(ii&&ii!=="/")break;Y=Y.slice(3),Ne("/**",3)}if(ie.type==="bos"&&ue()){M.type="globstar",M.value+=F,M.output=$(t),A.output=M.output,A.globstar=!0,Ne(F);continue}if(ie.type==="slash"&&ie.prev.type!=="bos"&&!Pt&&ue()){A.output=A.output.slice(0,-(ie.output+M.output).length),ie.output=`(?:${ie.output}`,M.type="globstar",M.output=$(t)+(t.strictSlashes?")":"|$)"),M.value+=F,A.globstar=!0,A.output+=ie.output+M.output,Ne(F);continue}if(ie.type==="slash"&&ie.prev.type!=="bos"&&Y[0]==="/"){let ii=Y[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(ie.output+M.output).length),ie.output=`(?:${ie.output}`,M.type="globstar",M.output=`${$(t)}${h}|${h}${ii})`,M.value+=F,A.output+=ie.output+M.output,A.globstar=!0,Ne(F+ke()),ae({type:"slash",value:"/",output:""});continue}if(ie.type==="bos"&&Y[0]==="/"){M.type="globstar",M.value+=F,M.output=`(?:^|${h}|${$(t)}${h})`,A.output=M.output,A.globstar=!0,Ne(F+ke()),ae({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-M.output.length),M.type="globstar",M.output=$(t),M.value+=F,A.output+=M.output,A.globstar=!0,Ne(F);continue}let he={type:"star",value:F,output:_};if(t.bash===!0){he.output=".*?",(M.type==="bos"||M.type==="slash")&&(he.output=V+he.output),ae(he);continue}if(M&&(M.type==="bracket"||M.type==="paren")&&t.regex===!0){he.output=F,ae(he);continue}(A.index===A.start||M.type==="slash"||M.type==="dot")&&(M.type==="dot"?(A.output+=B,M.output+=B):t.dot===!0?(A.output+=v,M.output+=v):(A.output+=V,M.output+=V),pe()!=="*"&&(A.output+=p,M.output+=p)),ae(he)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));A.output=Wn.escapeLast(A.output,"["),fe("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing",")"));A.output=Wn.escapeLast(A.output,"("),fe("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","}"));A.output=Wn.escapeLast(A.output,"{"),fe("braces")}if(t.strictSlashes!==!0&&(M.type==="star"||M.type==="bracket")&&ae({type:"maybe_slash",value:"",output:`${h}?`}),A.backtrack===!0){A.output="";for(let Y of A.tokens)A.output+=Y.output!=null?Y.output:Y.value,Y.suffix&&(A.output+=Y.suffix)}return A};Tx.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(qy,t.maxLength):qy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=qW[r]||r;let s=Wn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:f,STAR:h,START_ANCHOR:p}=jy.globChars(s),C=t.dot?g:u,y=t.dot?f:u,B=t.capture?"":"?:",v={negated:!1,prefix:""},D=t.bash===!0?".*?":h;t.capture&&(D=`(${D})`);let T=V=>V.noglobstar===!0?D:`(${B}(?:(?!${p}${V.dot?c:o}).)*?)`,H=V=>{switch(V){case"*":return`${C}${l}${D}`;case".*":return`${o}${l}${D}`;case"*.*":return`${C}${D}${o}${l}${D}`;case"*/*":return`${C}${D}${a}${l}${y}${D}`;case"**":return C+T(t);case"**/*":return`(?:${C}${T(t)}${a})?${y}${l}${D}`;case"**/*.*":return`(?:${C}${T(t)}${a})?${y}${D}${o}${l}${D}`;case"**/.*":return`(?:${C}${T(t)}${a})?${o}${l}${D}`;default:{let W=/^(.*?)\.(\w+)$/.exec(V);if(!W)return;let _=H(W[1]);return _?_+o+W[2]:void 0}}},j=Wn.removePrefix(r,v),$=H(j);return $&&t.strictSlashes!==!0&&($+=`${a}?`),$};JW.exports=Tx});var VW=w((mtt,zW)=>{"use strict";var _Be=J("path"),$Be=jW(),Lx=WW(),Mx=Yd(),e0e=Gd(),t0e=r=>r&&typeof r=="object"&&!Array.isArray(r),Gr=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(f=>Gr(f,e,t));return f=>{for(let h of u){let p=h(f);if(p)return p}return!1}}let i=t0e(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Mx.isWindows(e),o=i?Gr.compileRe(r,e):Gr.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=Gr(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:f,match:h,output:p}=Gr.test(u,o,e,{glob:r,posix:s}),C={glob:r,state:a,regex:o,posix:s,input:u,output:p,match:h,isMatch:f};return typeof n.onResult=="function"&&n.onResult(C),f===!1?(C.isMatch=!1,g?C:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(C),C.isMatch=!1,g?C:!1):(typeof n.onMatch=="function"&&n.onMatch(C),g?C:!0)};return t&&(c.state=a),c};Gr.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?Mx.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Gr.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Gr.matchBase=(r,e,t,i=Mx.isWindows(t))=>(e instanceof RegExp?e:Gr.makeRe(e,t)).test(_Be.basename(r));Gr.isMatch=(r,e,t)=>Gr(e,t)(r);Gr.parse=(r,e)=>Array.isArray(r)?r.map(t=>Gr.parse(t,e)):Lx(r,{...e,fastpaths:!1});Gr.scan=(r,e)=>$Be(r,e);Gr.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=Gr.toRegex(a,e);return i===!0&&(l.state=r),l};Gr.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=Lx.fastpaths(r,e)),n.output||(n=Lx(r,e)),Gr.compileRe(n,e,t,i)};Gr.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};Gr.constants=e0e;zW.exports=Gr});var Ox=w((Ett,XW)=>{"use strict";XW.exports=VW()});var Bn=w((Itt,e3)=>{"use strict";var _W=J("util"),$W=kW(),Uo=Ox(),Kx=Yd(),ZW=r=>r===""||r==="./",Sr=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};Sr.match=Sr;Sr.matcher=(r,e)=>Uo(r,e);Sr.isMatch=(r,e,t)=>Uo(e,t)(r);Sr.any=Sr.isMatch;Sr.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=Sr(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};Sr.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${_W.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>Sr.contains(r,i,t));if(typeof e=="string"){if(ZW(r)||ZW(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return Sr.isMatch(r,e,{...t,contains:!0})};Sr.matchKeys=(r,e,t)=>{if(!Kx.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=Sr(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};Sr.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Uo(String(n),t);if(i.some(o=>s(o)))return!0}return!1};Sr.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Uo(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};Sr.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${_W.inspect(r)}"`);return[].concat(e).every(i=>Uo(i,t)(r))};Sr.capture=(r,e,t)=>{let i=Kx.isWindows(t),s=Uo.makeRe(String(r),{...t,capture:!0}).exec(i?Kx.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};Sr.makeRe=(...r)=>Uo.makeRe(...r);Sr.scan=(...r)=>Uo.scan(...r);Sr.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of $W(String(i),e))t.push(Uo.parse(n,e));return t};Sr.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:$W(r,e)};Sr.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return Sr.braces(r,{...e,expand:!0})};e3.exports=Sr});var r3=w((ytt,t3)=>{"use strict";t3.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var n3=w((wtt,i3)=>{"use strict";var r0e=r3();i3.exports=r=>typeof r=="string"?r.replace(r0e(),""):r});var m3=w((Ftt,C3)=>{"use strict";C3.exports=(...r)=>[...new Set([].concat(...r))]});var sP=w((Ntt,y3)=>{"use strict";var p0e=J("stream"),E3=p0e.PassThrough,d0e=Array.prototype.slice;y3.exports=C0e;function C0e(){let r=[],e=!1,t=d0e.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=E3(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function f(h){function p(){h.removeListener("merge2UnpipeEnd",p),h.removeListener("end",p),g()}if(h._readableState.endEmitted)return g();h.on("merge2UnpipeEnd",p),h.on("end",p),h.pipe(s,{end:!1}),h.resume()}for(let h=0;h{"use strict";Object.defineProperty(Zy,"__esModule",{value:!0});function m0e(r){return r.reduce((e,t)=>[].concat(e,t),[])}Zy.flatten=m0e;function E0e(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Zy.splitWhen=E0e});var B3=w(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});function I0e(r){return r.code==="ENOENT"}oP.isEnoentCodeError=I0e});var b3=w(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});var aP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function y0e(r,e){return new aP(r,e)}AP.createDirentFromStats=y0e});var Q3=w(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var w0e=J("path"),B0e=2,b0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function Q0e(r){return r.replace(/\\/g,"/")}yf.unixify=Q0e;function S0e(r,e){return w0e.resolve(r,e)}yf.makeAbsolute=S0e;function v0e(r){return r.replace(b0e,"\\$2")}yf.escape=v0e;function x0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(B0e)}return r}yf.removeLeadingDotSegment=x0e});var v3=w((Ktt,S3)=>{S3.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var D3=w((Utt,P3)=>{var P0e=v3(),x3={"{":"}","(":")","[":"]"},D0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;ee&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(tt&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=x3[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},k0e=function(r){if(r[0]==="!")return!0;for(var e=0;e{"use strict";var R0e=D3(),F0e=J("path").posix.dirname,N0e=J("os").platform()==="win32",lP="/",T0e=/\\/g,L0e=/[\{\[].*[\}\]]$/,M0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,O0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;k3.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&N0e&&e.indexOf(lP)<0&&(e=e.replace(T0e,lP)),L0e.test(e)&&(e+=lP),e+="a";do e=F0e(e);while(R0e(e)||M0e.test(e));return e.replace(O0e,"$1")}});var H3=w($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});var K0e=J("path"),U0e=R3(),F3=Bn(),H0e=Ox(),N3="**",G0e="\\",Y0e=/[*?]|^!/,j0e=/\[.*]/,q0e=/(?:^|[^!*+?@])\(.*\|.*\)/,J0e=/[!*+?@]\(.*\)/,W0e=/{.*(?:,|\.\.).*}/;function T3(r,e={}){return!L3(r,e)}$r.isStaticPattern=T3;function L3(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(G0e)||Y0e.test(r)||j0e.test(r)||q0e.test(r)||e.extglob!==!1&&J0e.test(r)||e.braceExpansion!==!1&&W0e.test(r))}$r.isDynamicPattern=L3;function z0e(r){return _y(r)?r.slice(1):r}$r.convertToPositivePattern=z0e;function V0e(r){return"!"+r}$r.convertToNegativePattern=V0e;function _y(r){return r.startsWith("!")&&r[1]!=="("}$r.isNegativePattern=_y;function M3(r){return!_y(r)}$r.isPositivePattern=M3;function X0e(r){return r.filter(_y)}$r.getNegativePatterns=X0e;function Z0e(r){return r.filter(M3)}$r.getPositivePatterns=Z0e;function _0e(r){return U0e(r,{flipBackslashes:!1})}$r.getBaseDirectory=_0e;function $0e(r){return r.includes(N3)}$r.hasGlobStar=$0e;function O3(r){return r.endsWith("/"+N3)}$r.endsWithSlashGlobStar=O3;function ebe(r){let e=K0e.basename(r);return O3(r)||T3(e)}$r.isAffectDepthOfReadingPattern=ebe;function tbe(r){return r.reduce((e,t)=>e.concat(K3(t)),[])}$r.expandPatternsWithBraceExpansion=tbe;function K3(r){return F3.braces(r,{expand:!0,nodupes:!0})}$r.expandBraceExpansion=K3;function rbe(r,e){let t=H0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}$r.getPatternParts=rbe;function U3(r,e){return F3.makeRe(r,e)}$r.makeRe=U3;function ibe(r,e){return r.map(t=>U3(t,e))}$r.convertPatternsToRe=ibe;function nbe(r,e){return e.some(t=>t.test(r))}$r.matchAny=nbe});var Y3=w(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});var sbe=sP();function obe(r){let e=sbe(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>G3(r)),e.once("end",()=>G3(r)),e}cP.merge=obe;function G3(r){r.forEach(e=>e.emit("close"))}});var j3=w($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});function abe(r){return typeof r=="string"}$y.isString=abe;function Abe(r){return r===""}$y.isEmpty=Abe});var Ma=w(La=>{"use strict";Object.defineProperty(La,"__esModule",{value:!0});var lbe=w3();La.array=lbe;var cbe=B3();La.errno=cbe;var ube=b3();La.fs=ube;var gbe=Q3();La.path=gbe;var fbe=H3();La.pattern=fbe;var hbe=Y3();La.stream=hbe;var pbe=j3();La.string=pbe});var V3=w(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});var bc=Ma();function dbe(r,e){let t=q3(r),i=J3(r,e.ignore),n=t.filter(l=>bc.pattern.isStaticPattern(l,e)),s=t.filter(l=>bc.pattern.isDynamicPattern(l,e)),o=uP(n,i,!1),a=uP(s,i,!0);return o.concat(a)}Oa.generate=dbe;function uP(r,e,t){let i=W3(r);return"."in i?[gP(".",r,e,t)]:z3(i,e,t)}Oa.convertPatternsToTasks=uP;function q3(r){return bc.pattern.getPositivePatterns(r)}Oa.getPositivePatterns=q3;function J3(r,e){return bc.pattern.getNegativePatterns(r).concat(e).map(bc.pattern.convertToPositivePattern)}Oa.getNegativePatternsAsPositive=J3;function W3(r){let e={};return r.reduce((t,i)=>{let n=bc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Oa.groupPatternsByBaseDirectory=W3;function z3(r,e,t){return Object.keys(r).map(i=>gP(i,r[i],e,t))}Oa.convertPatternGroupsToTasks=z3;function gP(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(bc.pattern.convertToNegativePattern))}}Oa.convertPatternGroupToTask=gP});var Z3=w(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.read=void 0;function Cbe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){X3(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){fP(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){X3(t,s);return}fP(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),fP(t,o)})})}ew.read=Cbe;function X3(r,e){r(e)}function fP(r,e){r(null,e)}});var _3=w(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.read=void 0;function mbe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}tw.read=mbe});var $3=w(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.createFileSystemAdapter=UA.FILE_SYSTEM_ADAPTER=void 0;var rw=J("fs");UA.FILE_SYSTEM_ADAPTER={lstat:rw.lstat,stat:rw.stat,lstatSync:rw.lstatSync,statSync:rw.statSync};function Ebe(r){return r===void 0?UA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},UA.FILE_SYSTEM_ADAPTER),r)}UA.createFileSystemAdapter=Ebe});var e4=w(pP=>{"use strict";Object.defineProperty(pP,"__esModule",{value:!0});var Ibe=$3(),hP=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=Ibe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};pP.default=hP});var Qc=w(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.statSync=HA.stat=HA.Settings=void 0;var t4=Z3(),ybe=_3(),dP=e4();HA.Settings=dP.default;function wbe(r,e,t){if(typeof e=="function"){t4.read(r,CP(),e);return}t4.read(r,CP(e),t)}HA.stat=wbe;function Bbe(r,e){let t=CP(e);return ybe.read(r,t)}HA.statSync=Bbe;function CP(r={}){return r instanceof dP.default?r:new dP.default(r)}});var i4=w((_tt,r4)=>{r4.exports=bbe;function bbe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var mP=w(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var iw=process.versions.node.split(".");if(iw[0]===void 0||iw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var n4=Number.parseInt(iw[0],10),Qbe=Number.parseInt(iw[1],10),s4=10,Sbe=10,vbe=n4>s4,xbe=n4===s4&&Qbe>=Sbe;nw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=vbe||xbe});var o4=w(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.createDirentFromStats=void 0;var EP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function Pbe(r,e){return new EP(r,e)}sw.createDirentFromStats=Pbe});var IP=w(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.fs=void 0;var Dbe=o4();ow.fs=Dbe});var yP=w(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.joinPathSegments=void 0;function kbe(r,e,t){return r.endsWith(t)?r+e:r+t+e}aw.joinPathSegments=kbe});var g4=w(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.readdir=GA.readdirWithFileTypes=GA.read=void 0;var Rbe=Qc(),a4=i4(),Fbe=mP(),A4=IP(),l4=yP();function Nbe(r,e,t){if(!e.stats&&Fbe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){c4(r,e,t);return}u4(r,e,t)}GA.read=Nbe;function c4(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){Aw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:l4.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){wP(t,s);return}let o=s.map(a=>Tbe(a,e));a4(o,(a,l)=>{if(a!==null){Aw(t,a);return}wP(t,l)})})}GA.readdirWithFileTypes=c4;function Tbe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=A4.fs.createDirentFromStats(r.name,n),t(null,r)})}}function u4(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){Aw(t,i);return}let s=n.map(o=>{let a=l4.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{Rbe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:A4.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});a4(s,(o,a)=>{if(o!==null){Aw(t,o);return}wP(t,a)})})}GA.readdir=u4;function Aw(r,e){r(e)}function wP(r,e){r(null,e)}});var C4=w(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.readdir=YA.readdirWithFileTypes=YA.read=void 0;var Lbe=Qc(),Mbe=mP(),f4=IP(),h4=yP();function Obe(r,e){return!e.stats&&Mbe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?p4(r,e):d4(r,e)}YA.read=Obe;function p4(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:h4.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=f4.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}YA.readdirWithFileTypes=p4;function d4(r,e){return e.fs.readdirSync(r).map(i=>{let n=h4.joinPathSegments(r,i,e.pathSegmentSeparator),s=Lbe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:f4.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}YA.readdir=d4});var m4=w(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.createFileSystemAdapter=jA.FILE_SYSTEM_ADAPTER=void 0;var wf=J("fs");jA.FILE_SYSTEM_ADAPTER={lstat:wf.lstat,stat:wf.stat,lstatSync:wf.lstatSync,statSync:wf.statSync,readdir:wf.readdir,readdirSync:wf.readdirSync};function Kbe(r){return r===void 0?jA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},jA.FILE_SYSTEM_ADAPTER),r)}jA.createFileSystemAdapter=Kbe});var E4=w(bP=>{"use strict";Object.defineProperty(bP,"__esModule",{value:!0});var Ube=J("path"),Hbe=Qc(),Gbe=m4(),BP=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=Gbe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,Ube.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new Hbe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};bP.default=BP});var lw=w(qA=>{"use strict";Object.defineProperty(qA,"__esModule",{value:!0});qA.Settings=qA.scandirSync=qA.scandir=void 0;var I4=g4(),Ybe=C4(),QP=E4();qA.Settings=QP.default;function jbe(r,e,t){if(typeof e=="function"){I4.read(r,SP(),e);return}I4.read(r,SP(e),t)}qA.scandir=jbe;function qbe(r,e){let t=SP(e);return Ybe.read(r,t)}qA.scandirSync=qbe;function SP(r={}){return r instanceof QP.default?r:new QP.default(r)}});var w4=w((Art,y4)=>{"use strict";function Jbe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}y4.exports=Jbe});var b4=w((lrt,vP)=>{"use strict";var Wbe=w4();function B4(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=Wbe(zbe),n=null,s=null,o=0,a=null,l={push:C,drain:Is,saturated:Is,pause:u,paused:!1,concurrency:t,running:c,resume:h,idle:p,length:g,getQueue:f,unshift:y,empty:Is,kill:v,killAndDrain:D,error:T};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,j=0;H;)H=H.next,j++;return j}function f(){for(var H=n,j=[];H;)j.push(H.value),H=H.next;return j}function h(){if(!!l.paused){l.paused=!1;for(var H=0;H{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.joinPathSegments=Yo.replacePathSegmentSeparator=Yo.isAppliedFilter=Yo.isFatalError=void 0;function Xbe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}Yo.isFatalError=Xbe;function Zbe(r,e){return r===null||r(e)}Yo.isAppliedFilter=Zbe;function _be(r,e){return r.split(/[/\\]/).join(e)}Yo.replacePathSegmentSeparator=_be;function $be(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}Yo.joinPathSegments=$be});var DP=w(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var eQe=cw(),xP=class{constructor(e,t){this._root=e,this._settings=t,this._root=eQe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};PP.default=xP});var FP=w(RP=>{"use strict";Object.defineProperty(RP,"__esModule",{value:!0});var tQe=J("events"),rQe=lw(),iQe=b4(),uw=cw(),nQe=DP(),kP=class extends nQe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=rQe.scandir,this._emitter=new tQe.EventEmitter,this._queue=iQe(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!uw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),uw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};RP.default=kP});var Q4=w(TP=>{"use strict";Object.defineProperty(TP,"__esModule",{value:!0});var sQe=FP(),NP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new sQe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{oQe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{aQe(e,[...this._storage])}),this._reader.read()}};TP.default=NP;function oQe(r,e){r(e)}function aQe(r,e){r(null,e)}});var S4=w(MP=>{"use strict";Object.defineProperty(MP,"__esModule",{value:!0});var AQe=J("stream"),lQe=FP(),LP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new lQe.default(this._root,this._settings),this._stream=new AQe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};MP.default=LP});var v4=w(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});var cQe=lw(),gw=cw(),uQe=DP(),OP=class extends uQe.default{constructor(){super(...arguments),this._scandir=cQe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!gw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=gw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),gw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&gw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};KP.default=OP});var x4=w(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});var gQe=v4(),UP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new gQe.default(this._root,this._settings)}read(){return this._reader.read()}};HP.default=UP});var P4=w(YP=>{"use strict";Object.defineProperty(YP,"__esModule",{value:!0});var fQe=J("path"),hQe=lw(),GP=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,fQe.sep),this.fsScandirSettings=new hQe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};YP.default=GP});var qP=w(jo=>{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.Settings=jo.walkStream=jo.walkSync=jo.walk=void 0;var D4=Q4(),pQe=S4(),dQe=x4(),jP=P4();jo.Settings=jP.default;function CQe(r,e,t){if(typeof e=="function"){new D4.default(r,fw()).read(e);return}new D4.default(r,fw(e)).read(t)}jo.walk=CQe;function mQe(r,e){let t=fw(e);return new dQe.default(r,t).read()}jo.walkSync=mQe;function EQe(r,e){let t=fw(e);return new pQe.default(r,t).read()}jo.walkStream=EQe;function fw(r={}){return r instanceof jP.default?r:new jP.default(r)}});var zP=w(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});var IQe=J("path"),yQe=Qc(),k4=Ma(),JP=class{constructor(e){this._settings=e,this._fsStatSettings=new yQe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return IQe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:k4.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!k4.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};WP.default=JP});var ZP=w(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});var wQe=J("stream"),BQe=Qc(),bQe=qP(),QQe=zP(),VP=class extends QQe.default{constructor(){super(...arguments),this._walkStream=bQe.walkStream,this._stat=BQe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new wQe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};XP.default=VP});var R4=w($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});var Bf=Ma(),_P=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Bf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Bf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Bf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Bf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Bf.array.splitWhen(e,t=>t.dynamic&&Bf.pattern.hasGlobStar(t.pattern))}};$P.default=_P});var F4=w(tD=>{"use strict";Object.defineProperty(tD,"__esModule",{value:!0});var SQe=R4(),eD=class extends SQe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};tD.default=eD});var N4=w(iD=>{"use strict";Object.defineProperty(iD,"__esModule",{value:!0});var hw=Ma(),vQe=F4(),rD=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new vQe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(hw.pattern.isAffectDepthOfReadingPattern);return hw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=hw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!hw.pattern.matchAny(e,t)}};iD.default=rD});var T4=w(sD=>{"use strict";Object.defineProperty(sD,"__esModule",{value:!0});var Zd=Ma(),nD=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=Zd.pattern.convertPatternsToRe(e,this._micromatchOptions),n=Zd.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=Zd.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=Zd.path.removeLeadingDotSegment(e);return Zd.pattern.matchAny(i,t)}};sD.default=nD});var L4=w(aD=>{"use strict";Object.defineProperty(aD,"__esModule",{value:!0});var xQe=Ma(),oD=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return xQe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};aD.default=oD});var O4=w(lD=>{"use strict";Object.defineProperty(lD,"__esModule",{value:!0});var M4=Ma(),AD=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=M4.path.makeAbsolute(this._settings.cwd,t),t=M4.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};lD.default=AD});var pw=w(uD=>{"use strict";Object.defineProperty(uD,"__esModule",{value:!0});var PQe=J("path"),DQe=N4(),kQe=T4(),RQe=L4(),FQe=O4(),cD=class{constructor(e){this._settings=e,this.errorFilter=new RQe.default(this._settings),this.entryFilter=new kQe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new DQe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new FQe.default(this._settings)}_getRootDirectory(e){return PQe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};uD.default=cD});var K4=w(fD=>{"use strict";Object.defineProperty(fD,"__esModule",{value:!0});var NQe=ZP(),TQe=pw(),gD=class extends TQe.default{constructor(){super(...arguments),this._reader=new NQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};fD.default=gD});var U4=w(pD=>{"use strict";Object.defineProperty(pD,"__esModule",{value:!0});var LQe=J("stream"),MQe=ZP(),OQe=pw(),hD=class extends OQe.default{constructor(){super(...arguments),this._reader=new MQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new LQe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};pD.default=hD});var H4=w(CD=>{"use strict";Object.defineProperty(CD,"__esModule",{value:!0});var KQe=Qc(),UQe=qP(),HQe=zP(),dD=class extends HQe.default{constructor(){super(...arguments),this._walkSync=UQe.walkSync,this._statSync=KQe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};CD.default=dD});var G4=w(ED=>{"use strict";Object.defineProperty(ED,"__esModule",{value:!0});var GQe=H4(),YQe=pw(),mD=class extends YQe.default{constructor(){super(...arguments),this._reader=new GQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};ED.default=mD});var Y4=w(_d=>{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});var bf=J("fs"),jQe=J("os"),qQe=jQe.cpus().length;_d.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:bf.lstat,lstatSync:bf.lstatSync,stat:bf.stat,statSync:bf.statSync,readdir:bf.readdir,readdirSync:bf.readdirSync};var ID=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,qQe),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},_d.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};_d.default=ID});var dw=w((Frt,q4)=>{"use strict";var j4=V3(),JQe=K4(),WQe=U4(),zQe=G4(),yD=Y4(),Sc=Ma();async function wD(r,e){Qf(r);let t=BD(r,JQe.default,e),i=await Promise.all(t);return Sc.array.flatten(i)}(function(r){function e(o,a){Qf(o);let l=BD(o,zQe.default,a);return Sc.array.flatten(l)}r.sync=e;function t(o,a){Qf(o);let l=BD(o,WQe.default,a);return Sc.stream.merge(l)}r.stream=t;function i(o,a){Qf(o);let l=[].concat(o),c=new yD.default(a);return j4.generate(l,c)}r.generateTasks=i;function n(o,a){Qf(o);let l=new yD.default(a);return Sc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return Qf(o),Sc.path.escape(o)}r.escapePath=s})(wD||(wD={}));function BD(r,e,t){let i=[].concat(r),n=new yD.default(t),s=j4.generate(i,n),o=new e(n);return s.map(o.read,o)}function Qf(r){if(![].concat(r).every(i=>Sc.string.isString(i)&&!Sc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}q4.exports=wD});var W4=w(vc=>{"use strict";var{promisify:VQe}=J("util"),J4=J("fs");async function bD(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await VQe(J4[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function QD(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return J4[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}vc.isFile=bD.bind(null,"stat","isFile");vc.isDirectory=bD.bind(null,"stat","isDirectory");vc.isSymlink=bD.bind(null,"lstat","isSymbolicLink");vc.isFileSync=QD.bind(null,"statSync","isFile");vc.isDirectorySync=QD.bind(null,"statSync","isDirectory");vc.isSymlinkSync=QD.bind(null,"lstatSync","isSymbolicLink")});var _4=w((Trt,SD)=>{"use strict";var xc=J("path"),z4=W4(),V4=r=>r.length>1?`{${r.join(",")}}`:r[0],X4=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return xc.isAbsolute(t)?t:xc.join(e,t)},XQe=(r,e)=>xc.extname(r)?`**/${r}`:`**/${r}.${V4(e)}`,Z4=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>xc.posix.join(r,XQe(t,e.extensions))):e.files?e.files.map(t=>xc.posix.join(r,`**/${t}`)):e.extensions?[xc.posix.join(r,`**/*.${V4(e.extensions)}`)]:[xc.posix.join(r,"**")]};SD.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await z4.isDirectory(X4(i,e.cwd))?Z4(i,e):i));return[].concat.apply([],t)};SD.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>z4.isDirectorySync(X4(i,e.cwd))?Z4(i,e):i);return[].concat.apply([],t)}});var o8=w((Lrt,s8)=>{function $4(r){return Array.isArray(r)?r:[r]}var i8="",e8=" ",vD="\\",ZQe=/^\s+$/,_Qe=/^\\!/,$Qe=/^\\#/,eSe=/\r?\n/g,tSe=/^\.*\/|^\.+$/,xD="/",t8=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",rSe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),iSe=/([0-z])-([0-z])/g,nSe=r=>r.replace(iSe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:i8),sSe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},oSe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?e8:i8],[/\\\s/g,()=>e8],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>vD],[/\\\\/g,()=>vD],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===vD?`\\[${t}${sSe(i)}${n}`:n==="]"&&i.length%2===0?`[${nSe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],r8=Object.create(null),aSe=(r,e)=>{let t=r8[r];return t||(t=oSe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),r8[r]=t),e?new RegExp(t,"i"):new RegExp(t)},kD=r=>typeof r=="string",ASe=r=>r&&kD(r)&&!ZQe.test(r)&&r.indexOf("#")!==0,lSe=r=>r.split(eSe),PD=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},cSe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(_Qe,"!").replace($Qe,"#");let n=aSe(r,e);return new PD(t,r,i,n)},uSe=(r,e)=>{throw new e(r)},Ka=(r,e,t)=>kD(r)?r?Ka.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),n8=r=>tSe.test(r);Ka.isNotRelative=n8;Ka.convert=r=>r;var DD=class{constructor({ignorecase:e=!0}={}){rSe(this,t8,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[t8]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(ASe(e)){let t=cSe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,$4(kD(e)?lSe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ka.convert(e);return Ka(s,e,uSe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(xD)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(xD)+xD,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return $4(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},Cw=r=>new DD(r),gSe=()=>!1,fSe=r=>Ka(r&&Ka.convert(r),r,gSe);Cw.isPathValid=fSe;Cw.default=Cw;s8.exports=Cw;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");Ka.convert=r;let e=/^[a-z]:\//i;Ka.isNotRelative=t=>e.test(t)||n8(t)}});var A8=w((Mrt,a8)=>{"use strict";a8.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var p8=w((Ort,RD)=>{"use strict";var{promisify:hSe}=J("util"),l8=J("fs"),Ua=J("path"),c8=dw(),pSe=o8(),$d=A8(),u8=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],dSe=hSe(l8.readFile),CSe=r=>e=>e.startsWith("!")?"!"+Ua.posix.join(r,e.slice(1)):Ua.posix.join(r,e),mSe=(r,e)=>{let t=$d(Ua.relative(e.cwd,Ua.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(CSe(t))},g8=r=>{let e=pSe();for(let t of r)e.add(mSe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},ESe=(r,e)=>{if(r=$d(r),Ua.isAbsolute(e)){if($d(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ua.join(r,e)},f8=(r,e)=>t=>r.ignores($d(Ua.relative(e,ESe(e,t.path||t)))),ISe=async(r,e)=>{let t=Ua.join(e,r),i=await dSe(t,"utf8");return{cwd:e,filePath:t,content:i}},ySe=(r,e)=>{let t=Ua.join(e,r),i=l8.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},h8=({ignore:r=[],cwd:e=$d(process.cwd())}={})=>({ignore:r,cwd:e});RD.exports=async r=>{r=h8(r);let e=await c8("**/.gitignore",{ignore:u8.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>ISe(n,r.cwd))),i=g8(t);return f8(i,r.cwd)};RD.exports.sync=r=>{r=h8(r);let t=c8.sync("**/.gitignore",{ignore:u8.concat(r.ignore),cwd:r.cwd}).map(n=>ySe(n,r.cwd)),i=g8(t);return f8(i,r.cwd)}});var C8=w((Krt,d8)=>{"use strict";var{Transform:wSe}=J("stream"),mw=class extends wSe{constructor(){super({objectMode:!0})}},FD=class extends mw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},ND=class extends mw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};d8.exports={FilterStream:FD,UniqueStream:ND}});var OD=w((Urt,Pc)=>{"use strict";var E8=J("fs"),Ew=m3(),BSe=sP(),Iw=dw(),yw=_4(),TD=p8(),{FilterStream:bSe,UniqueStream:QSe}=C8(),I8=()=>!1,m8=r=>r[0]==="!",SSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},vSe=(r={})=>{if(!r.cwd)return;let e;try{e=E8.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},xSe=r=>r.stats instanceof E8.Stats?r.path:r,ww=(r,e)=>{r=Ew([].concat(r)),SSe(r),vSe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(m8(n))continue;let s=r.slice(i).filter(a=>m8(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},PSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories=="object"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},LD=(r,e)=>r.options.expandDirectories?PSe(r,e):[r.pattern],y8=r=>r&&r.gitignore?TD.sync({cwd:r.cwd,ignore:r.ignore}):I8,MD=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=yw.sync(t.ignore)),{pattern:e,options:t}};Pc.exports=async(r,e)=>{let t=ww(r,e),i=async()=>e&&e.gitignore?TD({cwd:e.cwd,ignore:e.ignore}):I8,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await LD(c,yw);return Promise.all(u.map(MD(c)))}));return Ew(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>Iw(l.pattern,l.options)));return Ew(...a).filter(l=>!s(xSe(l)))};Pc.exports.sync=(r,e)=>{let t=ww(r,e),i=[];for(let o of t){let a=LD(o,yw.sync).map(MD(o));i.push(...a)}let n=y8(e),s=[];for(let o of i)s=Ew(s,Iw.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Pc.exports.stream=(r,e)=>{let t=ww(r,e),i=[];for(let a of t){let l=LD(a,yw.sync).map(MD(a));i.push(...l)}let n=y8(e),s=new bSe(a=>!n(a)),o=new QSe;return BSe(i.map(a=>Iw.stream(a.pattern,a.options))).pipe(s).pipe(o)};Pc.exports.generateGlobTasks=ww;Pc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>Iw.isDynamicPattern(t,e));Pc.exports.gitignore=TD});var vn=w((iit,L8)=>{function GSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}L8.exports=GSe});var WD=w((nit,M8)=>{var YSe=typeof global=="object"&&global&&global.Object===Object&&global;M8.exports=YSe});var ys=w((sit,O8)=>{var jSe=WD(),qSe=typeof self=="object"&&self&&self.Object===Object&&self,JSe=jSe||qSe||Function("return this")();O8.exports=JSe});var U8=w((oit,K8)=>{var WSe=ys(),zSe=function(){return WSe.Date.now()};K8.exports=zSe});var G8=w((ait,H8)=>{var VSe=/\s/;function XSe(r){for(var e=r.length;e--&&VSe.test(r.charAt(e)););return e}H8.exports=XSe});var j8=w((Ait,Y8)=>{var ZSe=G8(),_Se=/^\s+/;function $Se(r){return r&&r.slice(0,ZSe(r)+1).replace(_Se,"")}Y8.exports=$Se});var Rc=w((lit,q8)=>{var eve=ys(),tve=eve.Symbol;q8.exports=tve});var V8=w((cit,z8)=>{var J8=Rc(),W8=Object.prototype,rve=W8.hasOwnProperty,ive=W8.toString,uC=J8?J8.toStringTag:void 0;function nve(r){var e=rve.call(r,uC),t=r[uC];try{r[uC]=void 0;var i=!0}catch{}var n=ive.call(r);return i&&(e?r[uC]=t:delete r[uC]),n}z8.exports=nve});var Z8=w((uit,X8)=>{var sve=Object.prototype,ove=sve.toString;function ave(r){return ove.call(r)}X8.exports=ave});var Fc=w((git,ez)=>{var _8=Rc(),Ave=V8(),lve=Z8(),cve="[object Null]",uve="[object Undefined]",$8=_8?_8.toStringTag:void 0;function gve(r){return r==null?r===void 0?uve:cve:$8&&$8 in Object(r)?Ave(r):lve(r)}ez.exports=gve});var Wo=w((fit,tz)=>{function fve(r){return r!=null&&typeof r=="object"}tz.exports=fve});var gC=w((hit,rz)=>{var hve=Fc(),pve=Wo(),dve="[object Symbol]";function Cve(r){return typeof r=="symbol"||pve(r)&&hve(r)==dve}rz.exports=Cve});var oz=w((pit,sz)=>{var mve=j8(),iz=vn(),Eve=gC(),nz=0/0,Ive=/^[-+]0x[0-9a-f]+$/i,yve=/^0b[01]+$/i,wve=/^0o[0-7]+$/i,Bve=parseInt;function bve(r){if(typeof r=="number")return r;if(Eve(r))return nz;if(iz(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=iz(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=mve(r);var t=yve.test(r);return t||wve.test(r)?Bve(r.slice(2),t?2:8):Ive.test(r)?nz:+r}sz.exports=bve});var lz=w((dit,Az)=>{var Qve=vn(),zD=U8(),az=oz(),Sve="Expected a function",vve=Math.max,xve=Math.min;function Pve(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,f=!0;if(typeof r!="function")throw new TypeError(Sve);e=az(e)||0,Qve(t)&&(u=!!t.leading,g="maxWait"in t,s=g?vve(az(t.maxWait)||0,e):s,f="trailing"in t?!!t.trailing:f);function h(j){var $=i,V=n;return i=n=void 0,c=j,o=r.apply(V,$),o}function p(j){return c=j,a=setTimeout(B,e),u?h(j):o}function C(j){var $=j-l,V=j-c,W=e-$;return g?xve(W,s-V):W}function y(j){var $=j-l,V=j-c;return l===void 0||$>=e||$<0||g&&V>=s}function B(){var j=zD();if(y(j))return v(j);a=setTimeout(B,C(j))}function v(j){return a=void 0,f&&i?h(j):(i=n=void 0,o)}function D(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function T(){return a===void 0?o:v(zD())}function H(){var j=zD(),$=y(j);if(i=arguments,n=this,l=j,$){if(a===void 0)return p(l);if(g)return clearTimeout(a),a=setTimeout(B,e),h(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=D,H.flush=T,H}Az.exports=Pve});var uz=w((Cit,cz)=>{var Dve=lz(),kve=vn(),Rve="Expected a function";function Fve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(Rve);return kve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),Dve(r,e,{leading:i,maxWait:e,trailing:n})}cz.exports=Fve});var Ya=w((Ga,jw)=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});var Iz=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Jve(r){return Iz.includes(r)}var Wve=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Iz];function zve(r){return Wve.includes(r)}var Vve=["null","undefined","string","number","bigint","boolean","symbol"];function Xve(r){return Vve.includes(r)}function Lf(r){return e=>typeof e===r}var{toString:yz}=Object.prototype,CC=r=>{let e=yz.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&X.domElement(r))return"HTMLElement";if(zve(e))return e},lr=r=>e=>CC(e)===r;function X(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(X.observable(r))return"Observable";if(X.array(r))return"Array";if(X.buffer(r))return"Buffer";let e=CC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}X.undefined=Lf("undefined");X.string=Lf("string");var Zve=Lf("number");X.number=r=>Zve(r)&&!X.nan(r);X.bigint=Lf("bigint");X.function_=Lf("function");X.null_=r=>r===null;X.class_=r=>X.function_(r)&&r.toString().startsWith("class ");X.boolean=r=>r===!0||r===!1;X.symbol=Lf("symbol");X.numericString=r=>X.string(r)&&!X.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));X.array=(r,e)=>Array.isArray(r)?X.function_(e)?r.every(e):!0:!1;X.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};X.nullOrUndefined=r=>X.null_(r)||X.undefined(r);X.object=r=>!X.null_(r)&&(typeof r=="object"||X.function_(r));X.iterable=r=>{var e;return X.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};X.asyncIterable=r=>{var e;return X.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};X.generator=r=>X.iterable(r)&&X.function_(r.next)&&X.function_(r.throw);X.asyncGenerator=r=>X.asyncIterable(r)&&X.function_(r.next)&&X.function_(r.throw);X.nativePromise=r=>lr("Promise")(r);var _ve=r=>{var e,t;return X.function_((e=r)===null||e===void 0?void 0:e.then)&&X.function_((t=r)===null||t===void 0?void 0:t.catch)};X.promise=r=>X.nativePromise(r)||_ve(r);X.generatorFunction=lr("GeneratorFunction");X.asyncGeneratorFunction=r=>CC(r)==="AsyncGeneratorFunction";X.asyncFunction=r=>CC(r)==="AsyncFunction";X.boundFunction=r=>X.function_(r)&&!r.hasOwnProperty("prototype");X.regExp=lr("RegExp");X.date=lr("Date");X.error=lr("Error");X.map=r=>lr("Map")(r);X.set=r=>lr("Set")(r);X.weakMap=r=>lr("WeakMap")(r);X.weakSet=r=>lr("WeakSet")(r);X.int8Array=lr("Int8Array");X.uint8Array=lr("Uint8Array");X.uint8ClampedArray=lr("Uint8ClampedArray");X.int16Array=lr("Int16Array");X.uint16Array=lr("Uint16Array");X.int32Array=lr("Int32Array");X.uint32Array=lr("Uint32Array");X.float32Array=lr("Float32Array");X.float64Array=lr("Float64Array");X.bigInt64Array=lr("BigInt64Array");X.bigUint64Array=lr("BigUint64Array");X.arrayBuffer=lr("ArrayBuffer");X.sharedArrayBuffer=lr("SharedArrayBuffer");X.dataView=lr("DataView");X.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;X.urlInstance=r=>lr("URL")(r);X.urlString=r=>{if(!X.string(r))return!1;try{return new URL(r),!0}catch{return!1}};X.truthy=r=>Boolean(r);X.falsy=r=>!r;X.nan=r=>Number.isNaN(r);X.primitive=r=>X.null_(r)||Xve(typeof r);X.integer=r=>Number.isInteger(r);X.safeInteger=r=>Number.isSafeInteger(r);X.plainObject=r=>{if(yz.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};X.typedArray=r=>Jve(CC(r));var $ve=r=>X.safeInteger(r)&&r>=0;X.arrayLike=r=>!X.nullOrUndefined(r)&&!X.function_(r)&&$ve(r.length);X.inRange=(r,e)=>{if(X.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(X.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var exe=1,txe=["innerHTML","ownerDocument","style","attributes","nodeValue"];X.domElement=r=>X.object(r)&&r.nodeType===exe&&X.string(r.nodeName)&&!X.plainObject(r)&&txe.every(e=>e in r);X.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};X.nodeStream=r=>X.object(r)&&X.function_(r.pipe)&&!X.observable(r);X.infinite=r=>r===1/0||r===-1/0;var wz=r=>e=>X.integer(e)&&Math.abs(e%2)===r;X.evenInteger=wz(0);X.oddInteger=wz(1);X.emptyArray=r=>X.array(r)&&r.length===0;X.nonEmptyArray=r=>X.array(r)&&r.length>0;X.emptyString=r=>X.string(r)&&r.length===0;X.nonEmptyString=r=>X.string(r)&&r.length>0;var rxe=r=>X.string(r)&&!/\S/.test(r);X.emptyStringOrWhitespace=r=>X.emptyString(r)||rxe(r);X.emptyObject=r=>X.object(r)&&!X.map(r)&&!X.set(r)&&Object.keys(r).length===0;X.nonEmptyObject=r=>X.object(r)&&!X.map(r)&&!X.set(r)&&Object.keys(r).length>0;X.emptySet=r=>X.set(r)&&r.size===0;X.nonEmptySet=r=>X.set(r)&&r.size>0;X.emptyMap=r=>X.map(r)&&r.size===0;X.nonEmptyMap=r=>X.map(r)&&r.size>0;X.propertyKey=r=>X.any([X.string,X.number,X.symbol],r);X.formData=r=>lr("FormData")(r);X.urlSearchParams=r=>lr("URLSearchParams")(r);var Bz=(r,e,t)=>{if(!X.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};X.any=(r,...e)=>(X.array(r)?r:[r]).some(i=>Bz(Array.prototype.some,i,e));X.all=(r,...e)=>Bz(Array.prototype.every,r,e);var Ye=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${X(o)}\``))].join(", ")}`:`received value of type \`${X(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};Ga.assert={undefined:r=>Ye(X.undefined(r),"undefined",r),string:r=>Ye(X.string(r),"string",r),number:r=>Ye(X.number(r),"number",r),bigint:r=>Ye(X.bigint(r),"bigint",r),function_:r=>Ye(X.function_(r),"Function",r),null_:r=>Ye(X.null_(r),"null",r),class_:r=>Ye(X.class_(r),"Class",r),boolean:r=>Ye(X.boolean(r),"boolean",r),symbol:r=>Ye(X.symbol(r),"symbol",r),numericString:r=>Ye(X.numericString(r),"string with a number",r),array:(r,e)=>{Ye(X.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>Ye(X.buffer(r),"Buffer",r),nullOrUndefined:r=>Ye(X.nullOrUndefined(r),"null or undefined",r),object:r=>Ye(X.object(r),"Object",r),iterable:r=>Ye(X.iterable(r),"Iterable",r),asyncIterable:r=>Ye(X.asyncIterable(r),"AsyncIterable",r),generator:r=>Ye(X.generator(r),"Generator",r),asyncGenerator:r=>Ye(X.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>Ye(X.nativePromise(r),"native Promise",r),promise:r=>Ye(X.promise(r),"Promise",r),generatorFunction:r=>Ye(X.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>Ye(X.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>Ye(X.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>Ye(X.boundFunction(r),"Function",r),regExp:r=>Ye(X.regExp(r),"RegExp",r),date:r=>Ye(X.date(r),"Date",r),error:r=>Ye(X.error(r),"Error",r),map:r=>Ye(X.map(r),"Map",r),set:r=>Ye(X.set(r),"Set",r),weakMap:r=>Ye(X.weakMap(r),"WeakMap",r),weakSet:r=>Ye(X.weakSet(r),"WeakSet",r),int8Array:r=>Ye(X.int8Array(r),"Int8Array",r),uint8Array:r=>Ye(X.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>Ye(X.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>Ye(X.int16Array(r),"Int16Array",r),uint16Array:r=>Ye(X.uint16Array(r),"Uint16Array",r),int32Array:r=>Ye(X.int32Array(r),"Int32Array",r),uint32Array:r=>Ye(X.uint32Array(r),"Uint32Array",r),float32Array:r=>Ye(X.float32Array(r),"Float32Array",r),float64Array:r=>Ye(X.float64Array(r),"Float64Array",r),bigInt64Array:r=>Ye(X.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>Ye(X.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>Ye(X.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>Ye(X.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>Ye(X.dataView(r),"DataView",r),urlInstance:r=>Ye(X.urlInstance(r),"URL",r),urlString:r=>Ye(X.urlString(r),"string with a URL",r),truthy:r=>Ye(X.truthy(r),"truthy",r),falsy:r=>Ye(X.falsy(r),"falsy",r),nan:r=>Ye(X.nan(r),"NaN",r),primitive:r=>Ye(X.primitive(r),"primitive",r),integer:r=>Ye(X.integer(r),"integer",r),safeInteger:r=>Ye(X.safeInteger(r),"integer",r),plainObject:r=>Ye(X.plainObject(r),"plain object",r),typedArray:r=>Ye(X.typedArray(r),"TypedArray",r),arrayLike:r=>Ye(X.arrayLike(r),"array-like",r),domElement:r=>Ye(X.domElement(r),"HTMLElement",r),observable:r=>Ye(X.observable(r),"Observable",r),nodeStream:r=>Ye(X.nodeStream(r),"Node.js Stream",r),infinite:r=>Ye(X.infinite(r),"infinite number",r),emptyArray:r=>Ye(X.emptyArray(r),"empty array",r),nonEmptyArray:r=>Ye(X.nonEmptyArray(r),"non-empty array",r),emptyString:r=>Ye(X.emptyString(r),"empty string",r),nonEmptyString:r=>Ye(X.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>Ye(X.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>Ye(X.emptyObject(r),"empty object",r),nonEmptyObject:r=>Ye(X.nonEmptyObject(r),"non-empty object",r),emptySet:r=>Ye(X.emptySet(r),"empty set",r),nonEmptySet:r=>Ye(X.nonEmptySet(r),"non-empty set",r),emptyMap:r=>Ye(X.emptyMap(r),"empty map",r),nonEmptyMap:r=>Ye(X.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>Ye(X.propertyKey(r),"PropertyKey",r),formData:r=>Ye(X.formData(r),"FormData",r),urlSearchParams:r=>Ye(X.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>Ye(X.evenInteger(r),"even integer",r),oddInteger:r=>Ye(X.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>Ye(X.directInstanceOf(r,e),"T",r),inRange:(r,e)=>Ye(X.inRange(r,e),"in range",r),any:(r,...e)=>Ye(X.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>Ye(X.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(X,{class:{value:X.class_},function:{value:X.function_},null:{value:X.null_}});Object.defineProperties(Ga.assert,{class:{value:Ga.assert.class_},function:{value:Ga.assert.function_},null:{value:Ga.assert.null_}});Ga.default=X;jw.exports=X;jw.exports.default=X;jw.exports.assert=Ga.assert});var bz=w((rnt,dk)=>{"use strict";var qw=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Mf=class{static fn(e){return(...t)=>new Mf((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new qw(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Mf.prototype,Promise.prototype);dk.exports=Mf;dk.exports.CancelError=qw});var Qz=w((mk,Ek)=>{"use strict";Object.defineProperty(mk,"__esModule",{value:!0});var ixe=J("tls"),Ck=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof ixe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};mk.default=Ck;Ek.exports=Ck;Ek.exports.default=Ck});var Sz=w((yk,wk)=>{"use strict";Object.defineProperty(yk,"__esModule",{value:!0});var nxe=Qz(),sxe=Number(process.versions.node.split(".")[0]),Ik=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||sxe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),nxe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};yk.default=Ik;wk.exports=Ik;wk.exports.default=Ik});var Fz=w((int,Qk)=>{"use strict";var{V4MAPPED:oxe,ADDRCONFIG:axe,ALL:Rz,promises:{Resolver:vz},lookup:Axe}=J("dns"),{promisify:Bk}=J("util"),lxe=J("os"),Of=Symbol("cacheableLookupCreateConnection"),bk=Symbol("cacheableLookupInstance"),xz=Symbol("expires"),cxe=typeof Rz=="number",Pz=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},uxe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Dz=()=>{let r=!1,e=!1;for(let t of Object.values(lxe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},gxe=r=>Symbol.iterator in r,kz={ttl:!0},fxe={all:!0},Jw=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new vz,lookup:o=Axe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=Bk(o),this._resolver instanceof vz?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=Bk(this._resolver.resolve4.bind(this._resolver)),this._resolve6=Bk(this._resolver.resolve6.bind(this._resolver))),this._iface=Dz(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&oxe&&(cxe&&t.hints&Rz||n.length===0)?uxe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&axe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,kz),this._resolve6(e,kz)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[xz]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}gxe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,fxe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[xz];n>=a?this._cache.delete(s):a("lookup"in t||(t.lookup=this.lookup),e[Of](t,i))}uninstall(e){if(Pz(e),e[Of]){if(e[bk]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Of],delete e[Of],delete e[bk]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Dz(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};Qk.exports=Jw;Qk.exports.default=Jw});var Lz=w((nnt,Sk)=>{"use strict";var hxe=typeof URL>"u"?J("url").URL:URL,pxe="text/plain",dxe="us-ascii",Nz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),Cxe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,f=""]=u.split("=").map(h=>h.trim());return g==="charset"&&(f=f.toLowerCase(),f===dxe)?"":`${g}${f?`=${f}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==pxe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},Tz=(r,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return Cxe(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new hxe(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Nz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Nz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};Sk.exports=Tz;Sk.exports.default=Tz});var Kz=w((snt,Oz)=>{Oz.exports=Mz;function Mz(r,e){if(r&&e)return Mz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n{var Uz=Kz();vk.exports=Uz(Ww);vk.exports.strict=Uz(Hz);Ww.proto=Ww(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Ww(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return Hz(this)},configurable:!0})});function Ww(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function Hz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var Pk=w((ant,Yz)=>{var mxe=xk(),Exe=function(){},Ixe=function(r){return r.setHeader&&typeof r.abort=="function"},yxe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},Gz=function(r,e,t){if(typeof e=="function")return Gz(r,null,e);e||(e={}),t=mxe(t||Exe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(p){t.call(r,p?new Error("exited with error code: "+p):null)},g=function(p){t.call(r,p)},f=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},h=function(){r.req.on("finish",l)};return Ixe(r)?(r.on("complete",l),r.on("abort",f),r.req?h():r.on("request",h)):o&&!i&&(r.on("end",a),r.on("close",a)),yxe(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",f),function(){r.removeListener("complete",l),r.removeListener("abort",f),r.removeListener("request",h),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",f)}};Yz.exports=Gz});var Jz=w((Ant,qz)=>{var wxe=xk(),Bxe=Pk(),Dk=J("fs"),mC=function(){},bxe=/^v?\.0/.test(process.version),zw=function(r){return typeof r=="function"},Qxe=function(r){return!bxe||!Dk?!1:(r instanceof(Dk.ReadStream||mC)||r instanceof(Dk.WriteStream||mC))&&zw(r.close)},Sxe=function(r){return r.setHeader&&zw(r.abort)},vxe=function(r,e,t,i){i=wxe(i);var n=!1;r.on("close",function(){n=!0}),Bxe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Qxe(r))return r.close(mC);if(Sxe(r))return r.abort();if(zw(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},jz=function(r){r()},xxe=function(r,e){return r.pipe(e)},Pxe=function(){var r=Array.prototype.slice.call(arguments),e=zw(r[r.length-1]||mC)&&r.pop()||mC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s0;return vxe(n,o,a,function(l){t||(t=l),l&&i.forEach(jz),!o&&(i.forEach(jz),e(t))})});return r.reduce(xxe)};qz.exports=Pxe});var zz=w((lnt,Wz)=>{"use strict";var{PassThrough:Dxe}=J("stream");Wz.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new Dxe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var Vz=w((cnt,Kf)=>{"use strict";var kxe=Jz(),Rxe=zz(),Vw=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Xw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=kxe(r,Rxe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new Vw)})}),i.getBufferedValue()}Kf.exports=Xw;Kf.exports.default=Xw;Kf.exports.buffer=(r,e)=>Xw(r,{...e,encoding:"buffer"});Kf.exports.array=(r,e)=>Xw(r,{...e,array:!0});Kf.exports.MaxBufferError=Vw});var Zz=w((gnt,Xz)=>{"use strict";var Fxe=new Set([200,203,204,206,300,301,404,405,410,414,501]),Nxe=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Txe=new Set([500,502,503,504]),Lxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Mxe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Lc(r){let e=parseInt(r,10);return isFinite(e)?e:0}function Oxe(r){return r?Txe.has(r.status):!0}function kk(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function Kxe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}Xz.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,_fromObject:a}={}){if(a){this._fromObject(a);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=kk(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=kk(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":Kxe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers["cache-control"]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Nxe.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||Fxe.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=kk(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)Lxe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){return Lc(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Lc(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Lc(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+Lc(this._rescc["stale-if-error"]),i=e+Lc(this._rescc["stale-while-revalidate"]);return Math.max(0,e,t,i)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Lc(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Lc(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Oxe(t))return{modified:!1,matches:!1,policy:this};if(!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!Mxe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Zw=w((fnt,_z)=>{"use strict";_z.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var e5=w((hnt,$z)=>{"use strict";var Uxe=J("stream").Readable,Hxe=Zw(),Rk=class extends Uxe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=Hxe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};$z.exports=Rk});var r5=w((pnt,t5)=>{"use strict";var Gxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];t5.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(Gxe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var n5=w((dnt,i5)=>{"use strict";var Yxe=J("stream").PassThrough,jxe=r5(),qxe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new Yxe;return jxe(r,e),r.pipe(e)};i5.exports=qxe});var s5=w(Fk=>{Fk.stringify=function r(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]>"u";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};Fk.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var A5=w((mnt,a5)=>{"use strict";var Jxe=J("events"),o5=s5(),Wxe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},Nk=class extends Jxe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:o5.stringify,deserialize:o5.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=Wxe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>"u"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};a5.exports=Nk});var u5=w((Int,c5)=>{"use strict";var zxe=J("events"),_w=J("url"),Vxe=Lz(),Xxe=Vz(),Tk=Zz(),l5=e5(),Zxe=Zw(),_xe=n5(),$xe=A5(),ao=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new $xe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=Lk(_w.parse(t)),t={};else if(t instanceof _w.URL)n=Lk(_w.parse(t.toString())),t={};else{let[g,...f]=(t.path||"").split("?"),h=f.length>0?`?${f.join("?")}`:"";n=Lk({...t,pathname:g,search:h})}t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...ePe(n)},t.headers=Zxe(t.headers);let s=new zxe,o=Vxe(_w.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let f=!1,h,p=new Promise(y=>{h=()=>{f||(f=!0,y())}}),C=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let v=Tk.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!v.modified){let D=v.policy.responseHeaders();y=new l5(l.statusCode,D,l.body,l.url),y.cachePolicy=v.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new Tk(g,y,g),y.fromCache=!1);let B;g.cache&&y.cachePolicy.storable()?(B=_xe(y),(async()=>{try{let v=Xxe.buffer(y);if(await Promise.race([p,new Promise(j=>y.once("end",j))]),f)return;let D=await v,T={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:D},H=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,T,H)}catch(v){s.emit("error",new ao.CacheError(v))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(v){s.emit("error",new ao.CacheError(v))}})(),s.emit("response",B||y),typeof i=="function"&&i(B||y)};try{let y=e(g,C);y.once("error",h),y.once("abort",h),s.emit("request",y)}catch(y){s.emit("error",new ao.RequestError(y))}};return(async()=>{let g=async h=>{await Promise.resolve();let p=h.cache?await this.cache.get(a):void 0;if(typeof p>"u")return u(h);let C=Tk.fromObject(p.cachePolicy);if(C.satisfiesWithoutRevalidation(h)&&!h.forceRefresh){let y=C.responseHeaders(),B=new l5(p.statusCode,y,p.body,p.url);B.cachePolicy=C,B.fromCache=!0,s.emit("response",B),typeof i=="function"&&i(B)}else l=p,h.headers=C.revalidationHeaders(h),u(h)},f=h=>s.emit("error",new ao.CacheError(h));this.cache.once("error",f),s.on("response",()=>this.cache.removeListener("error",f));try{await g(t)}catch(h){t.automaticFailover&&!c&&u(t),s.emit("error",new ao.CacheError(h))}})(),s}}};function ePe(r){let e={...r};return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function Lk(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}ao.RequestError=class extends Error{constructor(r){super(r.message),this.name="RequestError",Object.assign(this,r)}};ao.CacheError=class extends Error{constructor(r){super(r.message),this.name="CacheError",Object.assign(this,r)}};c5.exports=ao});var f5=w((Bnt,g5)=>{"use strict";var tPe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];g5.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(tPe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var p5=w((bnt,h5)=>{"use strict";var{Transform:rPe,PassThrough:iPe}=J("stream"),Mk=J("zlib"),nPe=f5();h5.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof Mk.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new rPe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new iPe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?Mk.createBrotliDecompress():Mk.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),nPe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var Kk=w((Qnt,d5)=>{"use strict";var Ok=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};d5.exports=Ok});var Hk=w((Snt,I5)=>{"use strict";var sPe=J("events"),oPe=J("tls"),aPe=J("http2"),APe=Kk(),on=Symbol("currentStreamsCount"),C5=Symbol("request"),Bs=Symbol("cachedOriginSet"),Uf=Symbol("gracefullyClosing"),lPe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],cPe=(r,e,t)=>{let i=0,n=r.length;for(;i>>1;t(r[s],e)?i=s+1:n=s}return i},uPe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,Uk=(r,e)=>{for(let t of r)t[Bs].lengthe[Bs].includes(i))&&t[on]+e[on]<=e.remoteSettings.maxConcurrentStreams&&E5(t)},gPe=(r,e)=>{for(let t of r)e[Bs].lengtht[Bs].includes(i))&&e[on]+t[on]<=t.remoteSettings.maxConcurrentStreams&&E5(e)},m5=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[zo.kCurrentStreamsCount]{r[Uf]=!0,r[on]===0&&r.close()},zo=class extends sPe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new APe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of lPe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=zo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,f=-1,h;for(let p of u){let C=p.remoteSettings.maxConcurrentStreams;if(C=C||p[Uf]||p.destroyed)continue;h||(g=C),y>f&&(h=p,f=y)}}if(h){if(i.length!==1){for(let{reject:p}of i){let C=new Error(`Expected the length of listeners to be 1, got ${i.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);p(C)}return}i[0].resolve(h);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let f=aPe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});f[on]=0,f[Uf]=!1;let h=()=>f[on]{this.tlsSessionCache.set(u,y)}),f.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),f.setTimeout(this.timeout,()=>{f.destroy()}),f.once("close",()=>{if(g){p&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(f),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let C=()=>{if(!(!(o in this.queue)||!h())){for(let y of f[Bs])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&h();)B.shift().resolve(f);let v=this.queue[o];if(v[y].listeners.length===0&&(delete v[y],Object.keys(v).length===0)){delete this.queue[o];break}if(!h())break}}};f.on("origin",()=>{f[Bs]=f.originSet,h()&&(C(),Uk(this.sessions[o],f))}),f.once("remoteSettings",()=>{if(f.ref(),f.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);f.destroy();return}f[Bs]=f.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(cPe(B,f,uPe),0,f)}else y[o]=[f]}this._freeSessionsCount+=1,g=!0,this.emit("session",f),C(),l(),f[on]===0&&this._freeSessionsCount>this.maxFreeSessions&&f.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),f.on("remoteSettings",()=>{C(),Uk(this.sessions[o],f)})}),f[C5]=f.request,f.request=(y,B)=>{if(f[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let v=f[C5](y,B);return f.ref(),++f[on],f[on]===f.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,v.once("close",()=>{if(p=h(),--f[on],!f.destroyed&&!f.closed&&(gPe(this.sessions[o],f),h()&&!f.closed)){p||(this._freeSessionsCount++,p=!0);let D=f[on]===0;D&&f.unref(),D&&(this._freeSessionsCount>this.maxFreeSessions||f[Uf])?f.close():(Uk(this.sessions[o],f),C())}}),v}}catch(f){for(let h of i)h.reject(f);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return zo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),oPe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[on]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return m5({agent:this,isFree:!0})}get busySessions(){return m5({agent:this,isFree:!1})}};zo.kCurrentStreamsCount=on;zo.kGracefullyClosing=Uf;I5.exports={Agent:zo,globalAgent:new zo}});var Yk=w((vnt,y5)=>{"use strict";var{Readable:fPe}=J("stream"),Gk=class extends fPe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};y5.exports=Gk});var jk=w((xnt,w5)=>{"use strict";w5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var b5=w((Pnt,B5)=>{"use strict";B5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var S5=w((Dnt,Q5)=>{"use strict";Q5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var x5=w((Rnt,v5)=>{"use strict";var Hf=(r,e,t)=>{v5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};Hf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});Hf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);Hf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);Hf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);Hf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);Hf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var Vk=w((Fnt,T5)=>{"use strict";var hPe=J("http2"),{Writable:pPe}=J("stream"),{Agent:P5,globalAgent:dPe}=Hk(),CPe=Yk(),mPe=jk(),EPe=b5(),IPe=S5(),{ERR_INVALID_ARG_TYPE:qk,ERR_INVALID_PROTOCOL:yPe,ERR_HTTP_HEADERS_SENT:D5,ERR_INVALID_HTTP_TOKEN:wPe,ERR_HTTP_INVALID_HEADER_VALUE:BPe,ERR_INVALID_CHAR:bPe}=x5(),{HTTP2_HEADER_STATUS:k5,HTTP2_HEADER_METHOD:R5,HTTP2_HEADER_PATH:F5,HTTP2_METHOD_CONNECT:QPe}=hPe.constants,Ui=Symbol("headers"),Jk=Symbol("origin"),Wk=Symbol("session"),N5=Symbol("options"),$w=Symbol("flushedHeaders"),EC=Symbol("jobs"),SPe=/^[\^`\-\w!#$%&*+.|~]+$/,vPe=/[^\t\u0020-\u007E\u0080-\u00FF]/,zk=class extends pPe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=mPe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[Wk]=t.h2session;else if(t.agent===!1)this.agent=new P5({maxFreeSessions:0});else if(typeof t.agent>"u"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new P5({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=dPe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new qk("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new yPe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Ui]=Object.create(null),this[EC]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Ui])&&(this[Ui].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[N5]=t,s===443?(this[Jk]=`https://${o}`,":authority"in this[Ui]||(this[Ui][":authority"]=o)):(this[Jk]=`https://${o}:${s}`,":authority"in this[Ui]||(this[Ui][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[$w]=!1}get method(){return this[Ui][R5]}set method(e){e&&(this[Ui][R5]=e.toUpperCase())}get path(){return this[Ui][F5]}set path(e){e&&(this[Ui][F5]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[EC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[EC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[$w]||this.destroyed)return;this[$w]=!0;let e=this.method===QPe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||EPe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new CPe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[k5],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[k5]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[EC])o();this.emit("socket",this.socket)};if(this[Wk])try{t(this[Wk].request(this[Ui]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[Jk],this[N5],this[Ui]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new qk("name","string",e);return this[Ui][e.toLowerCase()]}get headersSent(){return this[$w]}removeHeader(e){if(typeof e!="string")throw new qk("name","string",e);if(this.headersSent)throw new D5("remove");delete this[Ui][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new D5("set");if(typeof e!="string"||!SPe.test(e)&&!IPe(e))throw new wPe("Header name",e);if(typeof t>"u")throw new BPe(t,e);if(vPe.test(t))throw new bPe("header content",e);this[Ui][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[EC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};T5.exports=zk});var M5=w((Nnt,L5)=>{"use strict";var xPe=J("tls");L5.exports=(r={})=>new Promise((e,t)=>{let i=xPe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var K5=w((Tnt,O5)=>{"use strict";var PPe=J("net");O5.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),PPe.isIP(e)?"":e}});var G5=w((Lnt,Zk)=>{"use strict";var U5=J("http"),Xk=J("https"),DPe=M5(),kPe=Kk(),RPe=Vk(),FPe=K5(),NPe=jk(),eB=new kPe({maxSize:100}),IC=new Map,H5=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},TPe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!eB.has(e)){if(IC.has(e))return(await IC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=DPe(r);IC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if(eB.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=Xk,l=Xk.Agent.prototype.createConnection;i?i.createConnection===l?H5(i,s,r):s.destroy():a.createConnection===l?H5(a,s,r):s.destroy()}return IC.delete(e),o}catch(s){throw IC.delete(e),s}}return eB.get(e)};Zk.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=NPe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||FPe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?Xk.globalAgent:U5.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await TPe(e)==="h2"?(n&&(e.agent=n.http2),new RPe(e,t)):U5.request(e,t)};Zk.exports.protocolCache=eB});var j5=w((Mnt,Y5)=>{"use strict";var LPe=J("http2"),MPe=Hk(),_k=Vk(),OPe=Yk(),KPe=G5(),UPe=(r,e,t)=>new _k(r,e,t),HPe=(r,e,t)=>{let i=new _k(r,e,t);return i.end(),i};Y5.exports={...LPe,ClientRequest:_k,IncomingMessage:OPe,...MPe,request:UPe,get:HPe,auto:KPe}});var eR=w($k=>{"use strict";Object.defineProperty($k,"__esModule",{value:!0});var q5=Ya();$k.default=r=>q5.default.nodeStream(r)&&q5.default.function_(r.getBoundary)});var V5=w(tR=>{"use strict";Object.defineProperty(tR,"__esModule",{value:!0});var W5=J("fs"),z5=J("util"),J5=Ya(),GPe=eR(),YPe=z5.promisify(W5.stat);tR.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(J5.default.string(r))return Buffer.byteLength(r);if(J5.default.buffer(r))return r.length;if(GPe.default(r))return z5.promisify(r.getLength.bind(r))();if(r instanceof W5.ReadStream){let{size:t}=await YPe(r.path);return t===0?void 0:t}}});var iR=w(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});function jPe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}rR.default=jPe});var X5=w(nR=>{"use strict";Object.defineProperty(nR,"__esModule",{value:!0});nR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var _5=w(yC=>{"use strict";Object.defineProperty(yC,"__esModule",{value:!0});yC.TimeoutError=void 0;var qPe=J("net"),JPe=X5(),Z5=Symbol("reentry"),WPe=()=>{},tB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};yC.TimeoutError=tB;yC.default=(r,e,t)=>{if(Z5 in r)return WPe;r[Z5]=!0;let i=[],{once:n,unhandleAll:s}=JPe.default(),o=(g,f,h)=>{var p;let C=setTimeout(f,g,g,h);(p=C.unref)===null||p===void 0||p.call(C);let y=()=>{clearTimeout(C)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,f)=>{r.destroy(new tB(g,f))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request<"u"&&o(e.request,c,"request"),typeof e.socket<"u"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var f;let{socketPath:h}=r;if(g.connecting){let p=Boolean(h!=null?h:qPe.isIP((f=l!=null?l:a)!==null&&f!==void 0?f:"")!==0);if(typeof e.lookup<"u"&&!p&&typeof g.address().address>"u"){let C=o(e.lookup,c,"lookup");n(g,"lookup",C)}if(typeof e.connect<"u"){let C=()=>o(e.connect,c,"connect");p?n(g,"connect",C()):n(g,"lookup",y=>{y===null&&n(g,"connect",C())})}typeof e.secureConnect<"u"&&t.protocol==="https:"&&n(g,"connect",()=>{let C=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",C)})}if(typeof e.send<"u"){let p=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",p())}):n(r,"upload-complete",p())}}),typeof e.response<"u"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var e6=w(sR=>{"use strict";Object.defineProperty(sR,"__esModule",{value:!0});var $5=Ya();sR.default=r=>{r=r;let e={protocol:r.protocol,hostname:$5.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return $5.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var t6=w(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});var zPe=J("url"),VPe=["protocol","host","hostname","port","pathname","search"];oR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new zPe.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of VPe)e[s]&&(n[s]=e[s].toString());return n}});var r6=w(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});var aR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};AR.default=aR});var cR=w(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});var XPe=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};lR.default=XPe});var n6=w(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});Mc.dnsLookupIpVersionToFamily=Mc.isDnsLookupIpVersion=void 0;var i6={auto:0,ipv4:4,ipv6:6};Mc.isDnsLookupIpVersion=r=>r in i6;Mc.dnsLookupIpVersionToFamily=r=>{if(Mc.isDnsLookupIpVersion(r))return i6[r];throw new Error("Invalid DNS lookup IP version")}});var uR=w(rB=>{"use strict";Object.defineProperty(rB,"__esModule",{value:!0});rB.isResponseOk=void 0;rB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var o6=w(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});var s6=new Set;gR.default=r=>{s6.has(r)||(s6.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var a6=w(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});var mr=Ya(),ZPe=(r,e)=>{if(mr.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");mr.assert.any([mr.default.string,mr.default.undefined],r.encoding),mr.assert.any([mr.default.boolean,mr.default.undefined],r.resolveBodyOnly),mr.assert.any([mr.default.boolean,mr.default.undefined],r.methodRewriting),mr.assert.any([mr.default.boolean,mr.default.undefined],r.isStream),mr.assert.any([mr.default.string,mr.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},mr.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):mr.default.number(t)&&(r.retry.limit=t),mr.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(mr.default.number))),mr.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!mr.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!mr.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!mr.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!mr.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};fR.default=ZPe});var A6=w(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.retryAfterStatusCodes=void 0;wC.retryAfterStatusCodes=new Set([413,429,503]);var _Pe=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};wC.default=_Pe});var QC=w(Yt=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.UnsupportedProtocolError=Yt.ReadError=Yt.TimeoutError=Yt.UploadError=Yt.CacheError=Yt.HTTPError=Yt.MaxRedirectsError=Yt.RequestError=Yt.setNonEnumerableProperties=Yt.knownHookEvents=Yt.withoutBody=Yt.kIsNormalizedAlready=void 0;var l6=J("util"),c6=J("stream"),$Pe=J("fs"),VA=J("url"),u6=J("http"),hR=J("http"),eDe=J("https"),tDe=Sz(),rDe=Fz(),g6=u5(),iDe=p5(),nDe=j5(),sDe=Zw(),Ee=Ya(),oDe=V5(),f6=eR(),aDe=iR(),h6=_5(),ADe=e6(),p6=t6(),lDe=r6(),cDe=cR(),d6=n6(),uDe=uR(),XA=o6(),gDe=a6(),fDe=A6(),pR,Pi=Symbol("request"),sB=Symbol("response"),Gf=Symbol("responseSize"),Yf=Symbol("downloadedSize"),jf=Symbol("bodySize"),qf=Symbol("uploadedSize"),iB=Symbol("serverResponsesPiped"),C6=Symbol("unproxyEvents"),m6=Symbol("isFromCache"),dR=Symbol("cancelTimeouts"),E6=Symbol("startedReading"),Jf=Symbol("stopReading"),nB=Symbol("triggerRead"),ZA=Symbol("body"),BC=Symbol("jobs"),I6=Symbol("originalResponse"),y6=Symbol("retryTimeout");Yt.kIsNormalizedAlready=Symbol("isNormalizedAlready");var hDe=Ee.default.string(process.versions.brotli);Yt.withoutBody=new Set(["GET","HEAD"]);Yt.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function pDe(r){for(let e in r){let t=r[e];if(!Ee.default.string(t)&&!Ee.default.number(t)&&!Ee.default.boolean(t)&&!Ee.default.null_(t)&&!Ee.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function dDe(r){return Ee.default.object(r)&&!("statusCode"in r)}var CR=new lDe.default,CDe=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),mDe=new Set([300,301,302,303,304,307,308]),EDe=["context","body","json","form"];Yt.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of EDe)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var ei=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof gB?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[sB]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ee.default.string(t.stack)&&Ee.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` `).reverse(),a=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split(` `).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(` `)}${a.reverse().join(` -`)}`}}};Yt.RequestError=ei;var oB=class extends ei{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Yt.MaxRedirectsError=oB;var aB=class extends ei{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Yt.HTTPError=aB;var AB=class extends ei{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Yt.CacheError=AB;var lB=class extends ei{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Yt.UploadError=lB;var cB=class extends ei{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Yt.TimeoutError=cB;var bC=class extends ei{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Yt.ReadError=bC;var uB=class extends ei{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Yt.UnsupportedProtocolError=uB;var mDe=["socket","connect","continue","information","upgrade","timeout"],gB=class extends A6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[Yf]=0,this[qf]=0,this.requestInitialized=!1,this[iB]=new Set,this.redirects=[],this[Jf]=!1,this[nB]=!1,this[BC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Yt.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ee.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof ZPe.ReadStream&&await pDe(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Pi])===null||c===void 0||c.destroy();return}for(let g of this[BC])g();this[BC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof ei){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ee.default.object(e)&&!Ee.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ee.default.urlInstance(t.url)&&(t.url=new XA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.method),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.headers),Ee.assert.any([Ee.default.string,Ee.default.urlInstance,Ee.default.undefined],t.prefixUrl),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.cookieJar),Ee.assert.any([Ee.default.object,Ee.default.string,Ee.default.undefined],t.searchParams),Ee.assert.any([Ee.default.object,Ee.default.string,Ee.default.undefined],t.cache),Ee.assert.any([Ee.default.object,Ee.default.number,Ee.default.undefined],t.timeout),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.context),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.hooks),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.decompress),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.ignoreInvalidCookies),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.followRedirect),Ee.assert.any([Ee.default.number,Ee.default.undefined],t.maxRedirects),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.throwHttpErrors),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.http2),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.allowGetBody),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.localAddress),Ee.assert.any([h6.isDnsLookupIpVersion,Ee.default.undefined],t.dnsLookupIpVersion),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.https),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.rejectUnauthorized),t.https&&(Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.https.rejectUnauthorized),Ee.assert.any([Ee.default.function_,Ee.default.undefined],t.https.checkServerIdentity),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.certificateAuthority),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.key),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.certificate),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.https.passphrase),Ee.assert.any([Ee.default.string,Ee.default.buffer,Ee.default.array,Ee.default.undefined],t.https.pfx)),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.cacheOptions),Ee.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=iDe({...i==null?void 0:i.headers,...t.headers}),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let h;if(Ee.default.string(t.searchParams)||t.searchParams instanceof XA.URLSearchParams)h=new XA.URLSearchParams(t.searchParams);else{fDe(t.searchParams),h=new XA.URLSearchParams;for(let p in t.searchParams){let C=t.searchParams[p];C===null?h.append(p,""):C!==void 0&&h.append(p,C)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((p,C)=>{h.has(C)||h.append(C,p)}),t.searchParams=h}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ee.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ee.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=f6.default(t.prefixUrl+t.url,t)}else(Ee.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=f6.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:h}=t;Object.defineProperty(t,"prefixUrl",{set:C=>{let y=t.url;if(!y.href.startsWith(C))throw new Error(`Cannot change \`prefixUrl\` from ${h} to ${C}: ${y.href}`);t.url=new XA.URL(C+y.href.slice(h.length)),h=C},get:()=>h});let{protocol:p}=t.url;if(p==="unix:"&&(p="http:",t.url=new XA.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),p!=="http:"&&p!=="https:")throw new uB(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:h,getCookieString:p}=u;Ee.assert.function_(h),Ee.assert.function_(p),h.length===4&&p.length===0&&(h=a6.promisify(h.bind(t.cookieJar)),p=a6.promisify(p.bind(t.cookieJar)),t.cookieJar={setCookie:h,getCookieString:p})}let{cache:g}=t;if(g&&(CR.has(g)||CR.set(g,new c6((h,p)=>{let C=h[Pi](h,p);return Ee.default.promise(C)&&(C.once=(y,B)=>{if(y==="error")C.catch(B);else if(y==="abort")(async()=>{try{(await C).once("abort",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return C}),C},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)pR||(pR=new eDe.default),t.dnsCache=pR;else if(!Ee.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ee.default(t.dnsCache)}`);Ee.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let f=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let h of Yt.knownHookEvents)if(h in t.hooks)if(Ee.default.array(t.hooks[h]))t.hooks[h]=[...t.hooks[h]];else throw new TypeError(`Parameter \`${h}\` must be an Array, got ${Ee.default(t.hooks[h])}`);else t.hooks[h]=[];if(i&&!f)for(let h of Yt.knownHookEvents)i.hooks[h].length>0&&(t.hooks[h]=[...i.hooks[h],...t.hooks[h]]);if("family"in t&&ZA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),"rejectUnauthorized"in t&&ZA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&ZA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&ZA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&ZA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&ZA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&ZA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&ZA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let h in t.agent)if(h!=="http"&&h!=="https"&&h!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${h}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Yt.setNonEnumerableProperties([i,c],t),cDe.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ee.default.undefined(e.form),n=!Ee.default.undefined(e.json),s=!Ee.default.undefined(e.body),o=i||n||s,a=Yt.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof A6.Readable)&&!Ee.default.string(e.body)&&!Ee.default.buffer(e.body)&&!u6.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ee.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ee.default.string(t["content-type"]);s?(u6.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[_A]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[_A]=new XA.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[_A]=e.stringifyJson(e.json));let c=await nDe.default(this[_A],e.headers);Ee.default.undefined(t["content-length"])&&Ee.default.undefined(t["transfer-encoding"])&&!a&&!Ee.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[jf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[m6]=e,t.decompress&&(e=tDe(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:l6.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[d6]=s.isFromCache,this[Gf]=Number(e.headers["content-length"])||void 0,this[sB]=e,e.once("end",()=>{this[Gf]=this[Yf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new bC(a,this))}),e.once("aborted",()=>{this._beforeError(new bC({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ee.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&dDe.has(n)){if(e.resume(),this[Pi]&&(this[dR](),delete this[Pi],this[p6]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[_A]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new oB(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new XA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!lDe.isResponseOk(s)){this._beforeError(new aB(s));return}e.on("readable",()=>{this[nB]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[iB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;$Pe.default(e),this[dR]=g6.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof g6.TimeoutError?new cB(l,this.timings,this):new ei(l.message,l,this),this._beforeError(l)}),this[p6]=sDe.default(e,this,mDe),this[Pi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[_A],a=this.redirects.length===0?this:e;Ee.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new lB(l,this))})):(this._unlockWrite(),Ee.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,oDe.default(e)),delete t.url;let s,o=CR.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ee.default.undefined(a[B]))delete a[B];else if(Ee.default.null_(a[B]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${B}\` header`);if(o.decompress&&Ee.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=gDe?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ee.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let v=await B(o);if(!Ee.default.undefined(v)){o.request=()=>v;break}}o.body&&this[_A]!==o.body&&(this[_A]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let B=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:v,path:D}=B.groups;Object.assign(o,{socketPath:v,path:D,host:""})}}let f=g.protocol==="https:",h;o.http2?h=rDe.auto:h=f?_Pe.request:l6.request;let p=(e=o.request)!==null&&e!==void 0?e:h,C=o.cache?this._createCacheableRequest:p;l&&!o.http2&&(o.agent=l[f?"https":"http"]),o[Pi]=p,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=h6.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let B=await C(g,y);Ee.default.undefined(B)&&(B=h(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),hDe(B)?this._onRequest(B):this.writable?(this.once("finish",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof c6.CacheError?new AB(B,this):new ei(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new ei(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Jf])return;let{options:t}=this,i=this.retryCount+1;this[Jf]=!0,e instanceof ei||(e=new ei(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await ADe.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:uDe.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new ei(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new ei(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[E6]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[nB]=!0;let e=this[sB];if(e&&!this[Jf]){e.readableLength&&(this[nB]=!1);let t;for(;(t=e.read())!==null;){this[Yf]+=t.length,this[C6]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[BC].push(n)}_writeRequest(e,t,i){this[Pi].destroyed||(this._progressCallbacks.push(()=>{this[qf]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Pi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Pi in this)){e();return}if(this[Pi].destroyed){e();return}this[Pi].end(i=>{i||(this[jf]=this[qf],this.emit("uploadProgress",this.uploadProgress),this[Pi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[BC].push(t)}_destroy(e,t){var i;this[Jf]=!0,clearTimeout(this[E6]),Pi in this&&(this[dR](),!((i=this[sB])===null||i===void 0)&&i.complete||this[Pi].destroy()),e!==null&&!Ee.default.undefined(e)&&!(e instanceof ei)&&(e=new ei(e.message,e,this)),t(e)}get _isAboutToError(){return this[Jf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Pi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[m6])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[Pi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[Gf]?e=this[Yf]/this[Gf]:this[Gf]===this[Yf]?e=1:e=0,{percent:e,transferred:this[Yf],total:this[Gf]}}get uploadProgress(){let e;return this[jf]?e=this[qf]/this[jf]:this[jf]===this[qf]?e=1:e=0,{percent:e,transferred:this[qf],total:this[jf]}}get timings(){var e;return(e=this[Pi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[d6]}pipe(e,t){if(this[C6])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof hR.ServerResponse&&this[iB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof hR.ServerResponse&&this[iB].delete(e),super.unpipe(e),this}};Yt.default=gB});var SC=w(ao=>{"use strict";var EDe=ao&&ao.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),IDe=ao&&ao.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&EDe(e,r,t)};Object.defineProperty(ao,"__esModule",{value:!0});ao.CancelError=ao.ParseError=void 0;var I6=QC(),mR=class extends I6.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request),this.name="ParseError"}};ao.ParseError=mR;var ER=class extends I6.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};ao.CancelError=ER;IDe(QC(),ao)});var w6=w(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});var y6=SC(),yDe=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new y6.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new y6.ParseError(s,r)}};IR.default=yDe});var yR=w($A=>{"use strict";var wDe=$A&&$A.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),BDe=$A&&$A.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&wDe(e,r,t)};Object.defineProperty($A,"__esModule",{value:!0});var bDe=J("events"),QDe=Ya(),SDe=wz(),fB=SC(),B6=w6(),b6=QC(),vDe=iR(),xDe=cR(),Q6=uR(),PDe=["request","response","redirect","uploadProgress","downloadProgress"];function S6(r){let e,t,i=new bDe.EventEmitter,n=new SDe((o,a,l)=>{let c=u=>{let g=new b6.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new fB.CancelError(g))),e=g,g.once("response",async p=>{var C;if(p.retryCount=u,p.request.aborted)return;let y;try{y=await xDe.default(g),p.rawBody=y}catch{return}if(g._isAboutToError)return;let B=((C=p.headers["content-encoding"])!==null&&C!==void 0?C:"").toLowerCase(),v=["gzip","deflate","br"].includes(B),{options:D}=g;if(v&&!D.decompress)p.body=y;else try{p.body=B6.default(p,D.responseType,D.parseJson,D.encoding)}catch(T){if(p.body=y.toString(),Q6.isResponseOk(p)){g._beforeError(T);return}}try{for(let[T,H]of D.hooks.afterResponse.entries())p=await H(p,async j=>{let $=b6.default.normalizeArguments(void 0,{...j,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},D);$.hooks.afterResponse=$.hooks.afterResponse.slice(0,T);for(let W of $.hooks.beforeRetry)await W($);let V=S6($);return l(()=>{V.catch(()=>{}),V.cancel()}),V})}catch(T){g._beforeError(new fB.RequestError(T.message,T,g));return}if(!Q6.isResponseOk(p)){g._beforeError(new fB.HTTPError(p));return}t=p,o(g.options.resolveBodyOnly?p.body:p)});let f=p=>{if(n.isCanceled)return;let{options:C}=g;if(p instanceof fB.HTTPError&&!C.throwHttpErrors){let{response:y}=p;o(g.options.resolveBodyOnly?y.body:y);return}a(p)};g.once("error",f);let h=g.options.body;g.once("retry",(p,C)=>{var y,B;if(h===((y=C.request)===null||y===void 0?void 0:y.options.body)&&QDe.default.nodeStream((B=C.request)===null||B===void 0?void 0:B.options.body)){f(C);return}c(p)}),vDe.default(g,i,PDe)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return B6.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}$A.default=S6;BDe(SC(),$A)});var v6=w(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});var DDe=SC();function kDe(r,...e){let t=(async()=>{if(r instanceof DDe.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}wR.default=kDe});var D6=w(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});var x6=Ya();function P6(r){for(let e of Object.values(r))(x6.default.plainObject(e)||x6.default.array(e))&&P6(e);return Object.freeze(r)}BR.default=P6});var R6=w(k6=>{"use strict";Object.defineProperty(k6,"__esModule",{value:!0})});var bR=w(Qs=>{"use strict";var RDe=Qs&&Qs.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),FDe=Qs&&Qs.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&RDe(e,r,t)};Object.defineProperty(Qs,"__esModule",{value:!0});Qs.defaultHandler=void 0;var F6=Ya(),bs=yR(),NDe=v6(),pB=QC(),TDe=D6(),LDe={RequestError:bs.RequestError,CacheError:bs.CacheError,ReadError:bs.ReadError,HTTPError:bs.HTTPError,MaxRedirectsError:bs.MaxRedirectsError,TimeoutError:bs.TimeoutError,ParseError:bs.ParseError,CancelError:bs.CancelError,UnsupportedProtocolError:bs.UnsupportedProtocolError,UploadError:bs.UploadError},MDe=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:hB}=pB.default,N6=(...r)=>{let e;for(let t of r)e=hB(void 0,t,e);return e},ODe=r=>r.isStream?new pB.default(void 0,r):bs.default(r),KDe=r=>"defaults"in r&&"options"in r.defaults,UDe=["get","post","put","patch","head","delete"];Qs.defaultHandler=(r,e)=>e(r);var T6=(r,e)=>{if(r)for(let t of r)t(e)},L6=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?ODe:c);if(F6.default.plainObject(i)){let u={...i,...n};pB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{T6(r.options.hooks.init,n),T6((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(f){u=f}let g=hB(i,n,s!=null?s:r.options);if(g[pB.kIsNormalizedAlready]=!0,u)throw new bs.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return NDe.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)KDe(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Qs.defaultHandler),s.length===0&&s.push(Qs.defaultHandler),L6({options:N6(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=hB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!F6.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of UDe)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,LDe),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:TDe.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=N6,e};Qs.default=L6;FDe(R6(),Qs)});var CB=w((ja,dB)=>{"use strict";var HDe=ja&&ja.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),M6=ja&&ja.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&HDe(e,r,t)};Object.defineProperty(ja,"__esModule",{value:!0});var GDe=J("url"),O6=bR(),YDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new GDe.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[O6.defaultHandler],mutableDefaults:!1},QR=O6.default(YDe);ja.default=QR;dB.exports=QR;dB.exports.default=QR;dB.exports.__esModule=!0;M6(bR(),ja);M6(yR(),ja)});var G6=w(Wf=>{"use strict";var nst=J("net"),jDe=J("tls"),SR=J("http"),K6=J("https"),qDe=J("events"),sst=J("assert"),JDe=J("util");Wf.httpOverHttp=WDe;Wf.httpsOverHttp=zDe;Wf.httpOverHttps=VDe;Wf.httpsOverHttps=XDe;function WDe(r){var e=new qa(r);return e.request=SR.request,e}function zDe(r){var e=new qa(r);return e.request=SR.request,e.createSocket=U6,e.defaultPort=443,e}function VDe(r){var e=new qa(r);return e.request=K6.request,e}function XDe(r){var e=new qa(r);return e.request=K6.request,e.createSocket=U6,e.defaultPort=443,e}function qa(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||SR.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=H6(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};qa.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=vR({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),el("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,f,h){process.nextTick(function(){c(g,f,h)})}function c(g,f,h){if(o.removeAllListeners(),f.removeAllListeners(),g.statusCode!==200){el("tunneling socket could not be established, statusCode=%d",g.statusCode),f.destroy();var p=new Error("tunneling socket could not be established, statusCode="+g.statusCode);p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}if(h.length>0){el("got illegal response body from proxy"),f.destroy();var p=new Error("got illegal response body from proxy");p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}return el("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=f,t(f)}function u(g){o.removeAllListeners(),el(`tunneling socket could not be established, cause=%s -`,g.message,g.stack);var f=new Error("tunneling socket could not be established, cause="+g.message);f.code="ECONNRESET",e.request.emit("error",f),i.removeSocket(n)}};qa.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function U6(r,e){var t=this;qa.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=jDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function H6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e{Y6.exports=G6()});var tV=w((IB,FR)=>{var eV=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(d,E){i=d,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(d,E){throw E},u=!1,g=!0,f="";function h(d){return t.locateFile?t.locateFile(d,f):f+d}var p,C,y,B;g&&(u?f=J("path").dirname(f)+"/":f=__dirname+"/",p=function(E,I){var k=Ca(E);return k?I?k:k.toString():(y||(y=eV),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,I?null:"utf8"))},C=function(E){var I=p(E,!0);return I.buffer||(I=new Uint8Array(I)),re(I.buffer),I},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(d){process.exit(d)},t.inspect=function(){return"[Emscripten Module object]"});var v=t.print||console.log.bind(console),D=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var T=16;function H(d,E){return E||(E=T),Math.ceil(d/E)*E}var j=0,$=function(d){j=d},V;t.wasmBinary&&(V=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&wr("no native wasm support detected");function _(d,E,I){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ne[d>>0];case"i8":return ne[d>>0];case"i16":return he[d>>1];case"i32":return de[d>>2];case"i64":return de[d>>2];case"float":return Pt[d>>2];case"double":return It[d>>3];default:wr("invalid type for getValue: "+E)}return null}var A,Ae=!1,ge;function re(d,E){d||wr("Assertion failed: "+E)}function M(d){var E=t["_"+d];return re(E,"Cannot call unknown function "+d+", make sure it is exported"),E}function F(d,E,I,k,L){var Z={string:function(it){var Et=0;if(it!=null&&it!==0){var be=(it.length<<2)+1;Et=b(be),oe(it,Et,be)}return Et},array:function(it){var Et=b(it.length);return fe(it,Et),Et}};function te(it){return E==="string"?Fe(it):E==="boolean"?Boolean(it):it}var we=M(d),me=[],Je=0;if(k)for(var nt=0;nt=k);)++L;if(L-E>16&&d.subarray&&pe)return pe.decode(d.subarray(E,L));for(var Z="";E>10,56320|Je&1023)}}return Z}function Fe(d,E){return d?ke(Y,d,E):""}function Ne(d,E,I,k){if(!(k>0))return 0;for(var L=I,Z=I+k-1,te=0;te=55296&&we<=57343){var me=d.charCodeAt(++te);we=65536+((we&1023)<<10)|me&1023}if(we<=127){if(I>=Z)break;E[I++]=we}else if(we<=2047){if(I+1>=Z)break;E[I++]=192|we>>6,E[I++]=128|we&63}else if(we<=65535){if(I+2>=Z)break;E[I++]=224|we>>12,E[I++]=128|we>>6&63,E[I++]=128|we&63}else{if(I+3>=Z)break;E[I++]=240|we>>18,E[I++]=128|we>>12&63,E[I++]=128|we>>6&63,E[I++]=128|we&63}}return E[I]=0,I-L}function oe(d,E,I){return Ne(d,Y,E,I)}function le(d){for(var E=0,I=0;I=55296&&k<=57343&&(k=65536+((k&1023)<<10)|d.charCodeAt(++I)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function Be(d){var E=le(d)+1,I=dt(E);return I&&Ne(d,ne,I,E),I}function fe(d,E){ne.set(d,E)}function ae(d,E){return d%E>0&&(d+=E-d%E),d}var qe,ne,Y,he,ie,de,_e,Pt,It;function Mr(d){qe=d,t.HEAP8=ne=new Int8Array(d),t.HEAP16=he=new Int16Array(d),t.HEAP32=de=new Int32Array(d),t.HEAPU8=Y=new Uint8Array(d),t.HEAPU16=ie=new Uint16Array(d),t.HEAPU32=_e=new Uint32Array(d),t.HEAPF32=Pt=new Float32Array(d),t.HEAPF64=It=new Float64Array(d)}var ii=t.INITIAL_MEMORY||16777216,gi,hr=[],fi=[],ni=[],Ks=!1;function pr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)fa(t.preRun.shift());yo(hr)}function Ii(){Ks=!0,!t.noFSInit&&!S.init.initialized&&S.init(),ns.init(),yo(fi)}function rs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)cg(t.postRun.shift());yo(ni)}function fa(d){hr.unshift(d)}function CA(d){fi.unshift(d)}function cg(d){ni.unshift(d)}var is=0,mA=null,ha=null;function wp(d){return d}function EA(d){is++,t.monitorRunDependencies&&t.monitorRunDependencies(is)}function IA(d){if(is--,t.monitorRunDependencies&&t.monitorRunDependencies(is),is==0&&(mA!==null&&(clearInterval(mA),mA=null),ha)){var E=ha;ha=null,E()}}t.preloadedImages={},t.preloadedAudios={};function wr(d){t.onAbort&&t.onAbort(d),d+="",D(d),Ae=!0,ge=1,d="abort("+d+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(d);throw n(E),E}var Tl="data:application/octet-stream;base64,";function ug(d){return d.startsWith(Tl)}var Io="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";ug(Io)||(Io=h(Io));function gg(d){try{if(d==Io&&V)return new Uint8Array(V);var E=Ca(d);if(E)return E;if(C)return C(d);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(I){wr(I)}}function Bp(d,E){var I,k,L;try{L=gg(d),k=new WebAssembly.Module(L),I=new WebAssembly.Instance(k,E)}catch(te){var Z=te.toString();throw D("failed to compile wasm module: "+Z),(Z.includes("imported Memory")||Z.includes("memory import"))&&D("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),te}return[I,k]}function bp(){var d={a:ma};function E(L,Z){var te=L.exports;t.asm=te,A=t.asm.u,Mr(A.buffer),gi=t.asm.pa,CA(t.asm.v),IA("wasm-instantiate")}if(EA("wasm-instantiate"),t.instantiateWasm)try{var I=t.instantiateWasm(d,E);return I}catch(L){return D("Module.instantiateWasm callback failed with error: "+L),!1}var k=Bp(Io,d);return E(k[0]),t.asm}var vr,se;function yo(d){for(;d.length>0;){var E=d.shift();if(typeof E=="function"){E(t);continue}var I=E.func;typeof I=="number"?E.arg===void 0?gi.get(I)():gi.get(I)(E.arg):I(E.arg===void 0?null:E.arg)}}function Fn(d,E){var I=new Date(de[d>>2]*1e3);de[E>>2]=I.getUTCSeconds(),de[E+4>>2]=I.getUTCMinutes(),de[E+8>>2]=I.getUTCHours(),de[E+12>>2]=I.getUTCDate(),de[E+16>>2]=I.getUTCMonth(),de[E+20>>2]=I.getUTCFullYear()-1900,de[E+24>>2]=I.getUTCDay(),de[E+36>>2]=0,de[E+32>>2]=0;var k=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),L=(I.getTime()-k)/(1e3*60*60*24)|0;return de[E+28>>2]=L,Fn.GMTString||(Fn.GMTString=Be("GMT")),de[E+40>>2]=Fn.GMTString,E}function fg(d,E){return Fn(d,E)}var bt={splitPath:function(d){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(d).slice(1)},normalizeArray:function(d,E){for(var I=0,k=d.length-1;k>=0;k--){var L=d[k];L==="."?d.splice(k,1):L===".."?(d.splice(k,1),I++):I&&(d.splice(k,1),I--)}if(E)for(;I;I--)d.unshift("..");return d},normalize:function(d){var E=d.charAt(0)==="/",I=d.substr(-1)==="/";return d=bt.normalizeArray(d.split("/").filter(function(k){return!!k}),!E).join("/"),!d&&!E&&(d="."),d&&I&&(d+="/"),(E?"/":"")+d},dirname:function(d){var E=bt.splitPath(d),I=E[0],k=E[1];return!I&&!k?".":(k&&(k=k.substr(0,k.length-1)),I+k)},basename:function(d){if(d==="/")return"/";d=bt.normalize(d),d=d.replace(/\/$/,"");var E=d.lastIndexOf("/");return E===-1?d:d.substr(E+1)},extname:function(d){return bt.splitPath(d)[3]},join:function(){var d=Array.prototype.slice.call(arguments,0);return bt.normalize(d.join("/"))},join2:function(d,E){return bt.normalize(d+"/"+E)}};function Ll(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var d=new Uint8Array(1);return function(){return crypto.getRandomValues(d),d[0]}}else if(g)try{var E=J("crypto");return function(){return E.randomBytes(1)[0]}}catch{}return function(){wr("randomDevice")}}var Nn={resolve:function(){for(var d="",E=!1,I=arguments.length-1;I>=-1&&!E;I--){var k=I>=0?arguments[I]:S.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";d=k+"/"+d,E=k.charAt(0)==="/"}return d=bt.normalizeArray(d.split("/").filter(function(L){return!!L}),!E).join("/"),(E?"/":"")+d||"."},relative:function(d,E){d=Nn.resolve(d).substr(1),E=Nn.resolve(E).substr(1);function I(Je){for(var nt=0;nt=0&&Je[wt]==="";wt--);return nt>wt?[]:Je.slice(nt,wt-nt+1)}for(var k=I(d.split("/")),L=I(E.split("/")),Z=Math.min(k.length,L.length),te=Z,we=0;we0?E=k.slice(0,L).toString("utf-8"):E=null}else typeof window<"u"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` +`)}`}}};Yt.RequestError=ei;var oB=class extends ei{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Yt.MaxRedirectsError=oB;var aB=class extends ei{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Yt.HTTPError=aB;var AB=class extends ei{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Yt.CacheError=AB;var lB=class extends ei{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Yt.UploadError=lB;var cB=class extends ei{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Yt.TimeoutError=cB;var bC=class extends ei{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Yt.ReadError=bC;var uB=class extends ei{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Yt.UnsupportedProtocolError=uB;var IDe=["socket","connect","continue","information","upgrade","timeout"],gB=class extends c6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[Yf]=0,this[qf]=0,this.requestInitialized=!1,this[iB]=new Set,this.redirects=[],this[Jf]=!1,this[nB]=!1,this[BC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Yt.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ee.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof $Pe.ReadStream&&await CDe(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Pi])===null||c===void 0||c.destroy();return}for(let g of this[BC])g();this[BC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof ei){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ee.default.object(e)&&!Ee.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ee.default.urlInstance(t.url)&&(t.url=new VA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.method),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.headers),Ee.assert.any([Ee.default.string,Ee.default.urlInstance,Ee.default.undefined],t.prefixUrl),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.cookieJar),Ee.assert.any([Ee.default.object,Ee.default.string,Ee.default.undefined],t.searchParams),Ee.assert.any([Ee.default.object,Ee.default.string,Ee.default.undefined],t.cache),Ee.assert.any([Ee.default.object,Ee.default.number,Ee.default.undefined],t.timeout),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.context),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.hooks),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.decompress),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.ignoreInvalidCookies),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.followRedirect),Ee.assert.any([Ee.default.number,Ee.default.undefined],t.maxRedirects),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.throwHttpErrors),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.http2),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.allowGetBody),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.localAddress),Ee.assert.any([d6.isDnsLookupIpVersion,Ee.default.undefined],t.dnsLookupIpVersion),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.https),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.rejectUnauthorized),t.https&&(Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.https.rejectUnauthorized),Ee.assert.any([Ee.default.function_,Ee.default.undefined],t.https.checkServerIdentity),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.certificateAuthority),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.key),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.certificate),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.https.passphrase),Ee.assert.any([Ee.default.string,Ee.default.buffer,Ee.default.array,Ee.default.undefined],t.https.pfx)),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.cacheOptions),Ee.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=sDe({...i==null?void 0:i.headers,...t.headers}),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let h;if(Ee.default.string(t.searchParams)||t.searchParams instanceof VA.URLSearchParams)h=new VA.URLSearchParams(t.searchParams);else{pDe(t.searchParams),h=new VA.URLSearchParams;for(let p in t.searchParams){let C=t.searchParams[p];C===null?h.append(p,""):C!==void 0&&h.append(p,C)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((p,C)=>{h.has(C)||h.append(C,p)}),t.searchParams=h}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ee.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ee.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=p6.default(t.prefixUrl+t.url,t)}else(Ee.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=p6.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:h}=t;Object.defineProperty(t,"prefixUrl",{set:C=>{let y=t.url;if(!y.href.startsWith(C))throw new Error(`Cannot change \`prefixUrl\` from ${h} to ${C}: ${y.href}`);t.url=new VA.URL(C+y.href.slice(h.length)),h=C},get:()=>h});let{protocol:p}=t.url;if(p==="unix:"&&(p="http:",t.url=new VA.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),p!=="http:"&&p!=="https:")throw new uB(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:h,getCookieString:p}=u;Ee.assert.function_(h),Ee.assert.function_(p),h.length===4&&p.length===0&&(h=l6.promisify(h.bind(t.cookieJar)),p=l6.promisify(p.bind(t.cookieJar)),t.cookieJar={setCookie:h,getCookieString:p})}let{cache:g}=t;if(g&&(CR.has(g)||CR.set(g,new g6((h,p)=>{let C=h[Pi](h,p);return Ee.default.promise(C)&&(C.once=(y,B)=>{if(y==="error")C.catch(B);else if(y==="abort")(async()=>{try{(await C).once("abort",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return C}),C},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)pR||(pR=new rDe.default),t.dnsCache=pR;else if(!Ee.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ee.default(t.dnsCache)}`);Ee.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let f=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let h of Yt.knownHookEvents)if(h in t.hooks)if(Ee.default.array(t.hooks[h]))t.hooks[h]=[...t.hooks[h]];else throw new TypeError(`Parameter \`${h}\` must be an Array, got ${Ee.default(t.hooks[h])}`);else t.hooks[h]=[];if(i&&!f)for(let h of Yt.knownHookEvents)i.hooks[h].length>0&&(t.hooks[h]=[...i.hooks[h],...t.hooks[h]]);if("family"in t&&XA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),"rejectUnauthorized"in t&&XA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&XA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&XA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&XA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&XA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&XA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&XA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let h in t.agent)if(h!=="http"&&h!=="https"&&h!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${h}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Yt.setNonEnumerableProperties([i,c],t),gDe.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ee.default.undefined(e.form),n=!Ee.default.undefined(e.json),s=!Ee.default.undefined(e.body),o=i||n||s,a=Yt.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof c6.Readable)&&!Ee.default.string(e.body)&&!Ee.default.buffer(e.body)&&!f6.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ee.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ee.default.string(t["content-type"]);s?(f6.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[ZA]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[ZA]=new VA.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[ZA]=e.stringifyJson(e.json));let c=await oDe.default(this[ZA],e.headers);Ee.default.undefined(t["content-length"])&&Ee.default.undefined(t["transfer-encoding"])&&!a&&!Ee.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[jf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[I6]=e,t.decompress&&(e=iDe(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:u6.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[m6]=s.isFromCache,this[Gf]=Number(e.headers["content-length"])||void 0,this[sB]=e,e.once("end",()=>{this[Gf]=this[Yf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new bC(a,this))}),e.once("aborted",()=>{this._beforeError(new bC({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ee.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&mDe.has(n)){if(e.resume(),this[Pi]&&(this[dR](),delete this[Pi],this[C6]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[ZA]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new oB(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new VA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!uDe.isResponseOk(s)){this._beforeError(new aB(s));return}e.on("readable",()=>{this[nB]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[iB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;tDe.default(e),this[dR]=h6.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof h6.TimeoutError?new cB(l,this.timings,this):new ei(l.message,l,this),this._beforeError(l)}),this[C6]=aDe.default(e,this,IDe),this[Pi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[ZA],a=this.redirects.length===0?this:e;Ee.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new lB(l,this))})):(this._unlockWrite(),Ee.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,ADe.default(e)),delete t.url;let s,o=CR.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ee.default.undefined(a[B]))delete a[B];else if(Ee.default.null_(a[B]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${B}\` header`);if(o.decompress&&Ee.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=hDe?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ee.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let v=await B(o);if(!Ee.default.undefined(v)){o.request=()=>v;break}}o.body&&this[ZA]!==o.body&&(this[ZA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let B=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:v,path:D}=B.groups;Object.assign(o,{socketPath:v,path:D,host:""})}}let f=g.protocol==="https:",h;o.http2?h=nDe.auto:h=f?eDe.request:u6.request;let p=(e=o.request)!==null&&e!==void 0?e:h,C=o.cache?this._createCacheableRequest:p;l&&!o.http2&&(o.agent=l[f?"https":"http"]),o[Pi]=p,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=d6.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let B=await C(g,y);Ee.default.undefined(B)&&(B=h(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),dDe(B)?this._onRequest(B):this.writable?(this.once("finish",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof g6.CacheError?new AB(B,this):new ei(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new ei(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Jf])return;let{options:t}=this,i=this.retryCount+1;this[Jf]=!0,e instanceof ei||(e=new ei(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await cDe.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:fDe.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new ei(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new ei(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[y6]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[nB]=!0;let e=this[sB];if(e&&!this[Jf]){e.readableLength&&(this[nB]=!1);let t;for(;(t=e.read())!==null;){this[Yf]+=t.length,this[E6]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[BC].push(n)}_writeRequest(e,t,i){this[Pi].destroyed||(this._progressCallbacks.push(()=>{this[qf]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Pi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Pi in this)){e();return}if(this[Pi].destroyed){e();return}this[Pi].end(i=>{i||(this[jf]=this[qf],this.emit("uploadProgress",this.uploadProgress),this[Pi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[BC].push(t)}_destroy(e,t){var i;this[Jf]=!0,clearTimeout(this[y6]),Pi in this&&(this[dR](),!((i=this[sB])===null||i===void 0)&&i.complete||this[Pi].destroy()),e!==null&&!Ee.default.undefined(e)&&!(e instanceof ei)&&(e=new ei(e.message,e,this)),t(e)}get _isAboutToError(){return this[Jf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Pi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[I6])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[Pi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[Gf]?e=this[Yf]/this[Gf]:this[Gf]===this[Yf]?e=1:e=0,{percent:e,transferred:this[Yf],total:this[Gf]}}get uploadProgress(){let e;return this[jf]?e=this[qf]/this[jf]:this[jf]===this[qf]?e=1:e=0,{percent:e,transferred:this[qf],total:this[jf]}}get timings(){var e;return(e=this[Pi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[m6]}pipe(e,t){if(this[E6])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof hR.ServerResponse&&this[iB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof hR.ServerResponse&&this[iB].delete(e),super.unpipe(e),this}};Yt.default=gB});var SC=w(Ao=>{"use strict";var yDe=Ao&&Ao.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),wDe=Ao&&Ao.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&yDe(e,r,t)};Object.defineProperty(Ao,"__esModule",{value:!0});Ao.CancelError=Ao.ParseError=void 0;var w6=QC(),mR=class extends w6.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request),this.name="ParseError"}};Ao.ParseError=mR;var ER=class extends w6.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};Ao.CancelError=ER;wDe(QC(),Ao)});var b6=w(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});var B6=SC(),BDe=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new B6.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new B6.ParseError(s,r)}};IR.default=BDe});var yR=w(_A=>{"use strict";var bDe=_A&&_A.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),QDe=_A&&_A.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&bDe(e,r,t)};Object.defineProperty(_A,"__esModule",{value:!0});var SDe=J("events"),vDe=Ya(),xDe=bz(),fB=SC(),Q6=b6(),S6=QC(),PDe=iR(),DDe=cR(),v6=uR(),kDe=["request","response","redirect","uploadProgress","downloadProgress"];function x6(r){let e,t,i=new SDe.EventEmitter,n=new xDe((o,a,l)=>{let c=u=>{let g=new S6.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new fB.CancelError(g))),e=g,g.once("response",async p=>{var C;if(p.retryCount=u,p.request.aborted)return;let y;try{y=await DDe.default(g),p.rawBody=y}catch{return}if(g._isAboutToError)return;let B=((C=p.headers["content-encoding"])!==null&&C!==void 0?C:"").toLowerCase(),v=["gzip","deflate","br"].includes(B),{options:D}=g;if(v&&!D.decompress)p.body=y;else try{p.body=Q6.default(p,D.responseType,D.parseJson,D.encoding)}catch(T){if(p.body=y.toString(),v6.isResponseOk(p)){g._beforeError(T);return}}try{for(let[T,H]of D.hooks.afterResponse.entries())p=await H(p,async j=>{let $=S6.default.normalizeArguments(void 0,{...j,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},D);$.hooks.afterResponse=$.hooks.afterResponse.slice(0,T);for(let W of $.hooks.beforeRetry)await W($);let V=x6($);return l(()=>{V.catch(()=>{}),V.cancel()}),V})}catch(T){g._beforeError(new fB.RequestError(T.message,T,g));return}if(!v6.isResponseOk(p)){g._beforeError(new fB.HTTPError(p));return}t=p,o(g.options.resolveBodyOnly?p.body:p)});let f=p=>{if(n.isCanceled)return;let{options:C}=g;if(p instanceof fB.HTTPError&&!C.throwHttpErrors){let{response:y}=p;o(g.options.resolveBodyOnly?y.body:y);return}a(p)};g.once("error",f);let h=g.options.body;g.once("retry",(p,C)=>{var y,B;if(h===((y=C.request)===null||y===void 0?void 0:y.options.body)&&vDe.default.nodeStream((B=C.request)===null||B===void 0?void 0:B.options.body)){f(C);return}c(p)}),PDe.default(g,i,kDe)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return Q6.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}_A.default=x6;QDe(SC(),_A)});var P6=w(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});var RDe=SC();function FDe(r,...e){let t=(async()=>{if(r instanceof RDe.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}wR.default=FDe});var R6=w(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});var D6=Ya();function k6(r){for(let e of Object.values(r))(D6.default.plainObject(e)||D6.default.array(e))&&k6(e);return Object.freeze(r)}BR.default=k6});var N6=w(F6=>{"use strict";Object.defineProperty(F6,"__esModule",{value:!0})});var bR=w(Qs=>{"use strict";var NDe=Qs&&Qs.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),TDe=Qs&&Qs.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&NDe(e,r,t)};Object.defineProperty(Qs,"__esModule",{value:!0});Qs.defaultHandler=void 0;var T6=Ya(),bs=yR(),LDe=P6(),pB=QC(),MDe=R6(),ODe={RequestError:bs.RequestError,CacheError:bs.CacheError,ReadError:bs.ReadError,HTTPError:bs.HTTPError,MaxRedirectsError:bs.MaxRedirectsError,TimeoutError:bs.TimeoutError,ParseError:bs.ParseError,CancelError:bs.CancelError,UnsupportedProtocolError:bs.UnsupportedProtocolError,UploadError:bs.UploadError},KDe=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:hB}=pB.default,L6=(...r)=>{let e;for(let t of r)e=hB(void 0,t,e);return e},UDe=r=>r.isStream?new pB.default(void 0,r):bs.default(r),HDe=r=>"defaults"in r&&"options"in r.defaults,GDe=["get","post","put","patch","head","delete"];Qs.defaultHandler=(r,e)=>e(r);var M6=(r,e)=>{if(r)for(let t of r)t(e)},O6=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?UDe:c);if(T6.default.plainObject(i)){let u={...i,...n};pB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{M6(r.options.hooks.init,n),M6((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(f){u=f}let g=hB(i,n,s!=null?s:r.options);if(g[pB.kIsNormalizedAlready]=!0,u)throw new bs.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return LDe.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)HDe(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Qs.defaultHandler),s.length===0&&s.push(Qs.defaultHandler),O6({options:L6(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=hB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!T6.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of GDe)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,ODe),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:MDe.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=L6,e};Qs.default=O6;TDe(N6(),Qs)});var CB=w((ja,dB)=>{"use strict";var YDe=ja&&ja.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),K6=ja&&ja.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&YDe(e,r,t)};Object.defineProperty(ja,"__esModule",{value:!0});var jDe=J("url"),U6=bR(),qDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new jDe.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[U6.defaultHandler],mutableDefaults:!1},QR=U6.default(qDe);ja.default=QR;dB.exports=QR;dB.exports.default=QR;dB.exports.__esModule=!0;K6(bR(),ja);K6(yR(),ja)});var j6=w(Wf=>{"use strict";var ost=J("net"),JDe=J("tls"),SR=J("http"),H6=J("https"),WDe=J("events"),ast=J("assert"),zDe=J("util");Wf.httpOverHttp=VDe;Wf.httpsOverHttp=XDe;Wf.httpOverHttps=ZDe;Wf.httpsOverHttps=_De;function VDe(r){var e=new qa(r);return e.request=SR.request,e}function XDe(r){var e=new qa(r);return e.request=SR.request,e.createSocket=G6,e.defaultPort=443,e}function ZDe(r){var e=new qa(r);return e.request=H6.request,e}function _De(r){var e=new qa(r);return e.request=H6.request,e.createSocket=G6,e.defaultPort=443,e}function qa(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||SR.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=Y6(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};qa.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=vR({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),$A("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,f,h){process.nextTick(function(){c(g,f,h)})}function c(g,f,h){if(o.removeAllListeners(),f.removeAllListeners(),g.statusCode!==200){$A("tunneling socket could not be established, statusCode=%d",g.statusCode),f.destroy();var p=new Error("tunneling socket could not be established, statusCode="+g.statusCode);p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}if(h.length>0){$A("got illegal response body from proxy"),f.destroy();var p=new Error("got illegal response body from proxy");p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}return $A("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=f,t(f)}function u(g){o.removeAllListeners(),$A(`tunneling socket could not be established, cause=%s +`,g.message,g.stack);var f=new Error("tunneling socket could not be established, cause="+g.message);f.code="ECONNRESET",e.request.emit("error",f),i.removeSocket(n)}};qa.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function G6(r,e){var t=this;qa.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=JDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function Y6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e{q6.exports=j6()});var iV=w((IB,FR)=>{var rV=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(d,E){i=d,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(d,E){throw E},u=!1,g=!0,f="";function h(d){return t.locateFile?t.locateFile(d,f):f+d}var p,C,y,B;g&&(u?f=J("path").dirname(f)+"/":f=__dirname+"/",p=function(E,I){var k=Ca(E);return k?I?k:k.toString():(y||(y=rV),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,I?null:"utf8"))},C=function(E){var I=p(E,!0);return I.buffer||(I=new Uint8Array(I)),re(I.buffer),I},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(d){process.exit(d)},t.inspect=function(){return"[Emscripten Module object]"});var v=t.print||console.log.bind(console),D=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var T=16;function H(d,E){return E||(E=T),Math.ceil(d/E)*E}var j=0,$=function(d){j=d},V;t.wasmBinary&&(V=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&wr("no native wasm support detected");function _(d,E,I){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ne[d>>0];case"i8":return ne[d>>0];case"i16":return he[d>>1];case"i32":return de[d>>2];case"i64":return de[d>>2];case"float":return Pt[d>>2];case"double":return It[d>>3];default:wr("invalid type for getValue: "+E)}return null}var A,Ae=!1,ge;function re(d,E){d||wr("Assertion failed: "+E)}function M(d){var E=t["_"+d];return re(E,"Cannot call unknown function "+d+", make sure it is exported"),E}function F(d,E,I,k,L){var Z={string:function(it){var Et=0;if(it!=null&&it!==0){var be=(it.length<<2)+1;Et=b(be),oe(it,Et,be)}return Et},array:function(it){var Et=b(it.length);return fe(it,Et),Et}};function te(it){return E==="string"?Fe(it):E==="boolean"?Boolean(it):it}var we=M(d),me=[],Je=0;if(k)for(var nt=0;nt=k);)++L;if(L-E>16&&d.subarray&&pe)return pe.decode(d.subarray(E,L));for(var Z="";E>10,56320|Je&1023)}}return Z}function Fe(d,E){return d?ke(Y,d,E):""}function Ne(d,E,I,k){if(!(k>0))return 0;for(var L=I,Z=I+k-1,te=0;te=55296&&we<=57343){var me=d.charCodeAt(++te);we=65536+((we&1023)<<10)|me&1023}if(we<=127){if(I>=Z)break;E[I++]=we}else if(we<=2047){if(I+1>=Z)break;E[I++]=192|we>>6,E[I++]=128|we&63}else if(we<=65535){if(I+2>=Z)break;E[I++]=224|we>>12,E[I++]=128|we>>6&63,E[I++]=128|we&63}else{if(I+3>=Z)break;E[I++]=240|we>>18,E[I++]=128|we>>12&63,E[I++]=128|we>>6&63,E[I++]=128|we&63}}return E[I]=0,I-L}function oe(d,E,I){return Ne(d,Y,E,I)}function le(d){for(var E=0,I=0;I=55296&&k<=57343&&(k=65536+((k&1023)<<10)|d.charCodeAt(++I)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function Be(d){var E=le(d)+1,I=dt(E);return I&&Ne(d,ne,I,E),I}function fe(d,E){ne.set(d,E)}function ae(d,E){return d%E>0&&(d+=E-d%E),d}var qe,ne,Y,he,ie,de,_e,Pt,It;function Mr(d){qe=d,t.HEAP8=ne=new Int8Array(d),t.HEAP16=he=new Int16Array(d),t.HEAP32=de=new Int32Array(d),t.HEAPU8=Y=new Uint8Array(d),t.HEAPU16=ie=new Uint16Array(d),t.HEAPU32=_e=new Uint32Array(d),t.HEAPF32=Pt=new Float32Array(d),t.HEAPF64=It=new Float64Array(d)}var ii=t.INITIAL_MEMORY||16777216,gi,hr=[],fi=[],ni=[],Ks=!1;function pr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)fa(t.preRun.shift());wo(hr)}function Ii(){Ks=!0,!t.noFSInit&&!S.init.initialized&&S.init(),ns.init(),wo(fi)}function rs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)cg(t.postRun.shift());wo(ni)}function fa(d){hr.unshift(d)}function dA(d){fi.unshift(d)}function cg(d){ni.unshift(d)}var is=0,CA=null,ha=null;function wp(d){return d}function mA(d){is++,t.monitorRunDependencies&&t.monitorRunDependencies(is)}function EA(d){if(is--,t.monitorRunDependencies&&t.monitorRunDependencies(is),is==0&&(CA!==null&&(clearInterval(CA),CA=null),ha)){var E=ha;ha=null,E()}}t.preloadedImages={},t.preloadedAudios={};function wr(d){t.onAbort&&t.onAbort(d),d+="",D(d),Ae=!0,ge=1,d="abort("+d+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(d);throw n(E),E}var Tl="data:application/octet-stream;base64,";function ug(d){return d.startsWith(Tl)}var yo="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyABKAJcQYUPNgIYIAEoAlRB0f4ANgIEDAQLDAILIAEoAgxBwABxRQRAIAEgASgCJCABLwESIAEoAixBASABKAIMdEEBa3FqQQJ0aigBADYBEAwBCwsgASgCDEEgcQRAIAEoAlRBv/4ANgIEDAILIAEoAlxB6Q42AhggASgCVEHR/gA2AgQMAQsgASgCUCABKAJMSQR/IAEoAkggASgCQEkFQQALQQFxDQELCyABIAEoAihBA3Y2AgggASABKAJQIAEoAghrNgJQIAEgASgCKCABKAIIQQN0azYCKCABIAEoAixBASABKAIodEEBa3E2AiwgASgCXCABKAJQNgIAIAEoAlwgASgCSDYCDCABKAJcAn8gASgCUCABKAJMSQRAIAEoAkwgASgCUGtBBWoMAQtBBSABKAJQIAEoAkxraws2AgQgASgCXAJ/IAEoAkggASgCQEkEQCABKAJAIAEoAkhrQYECagwBC0GBAiABKAJIIAEoAkBraws2AhAgASgCVCABKAIsNgI8IAEoAlQgASgCKDYCQCAAIAAoAlgoAgw2AkggACAAKAJYKAIQNgJAIAAgACgCWCgCADYCTCAAIAAoAlgoAgQ2AkQgACAAKAJQKAI8NgI8IAAgACgCUCgCQDYCOCAAKAJQKAIEQb/+AEYEQCAAKAJQQX82Asg3CwwNCyAAKAJQQQA2Asg3A0ACQCAAIAAoAlAoAlAgACgCPEEBIAAoAlAoAlh0QQFrcUECdGooAQA2ASAgAC0AISAAKAI4TQ0AIAAoAkRFDQ0gACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLAkAgAC0AIEUNACAALQAgQfABcQ0AIAAgACgBIDYBGANAAkAgACAAKAJQKAJQIAAvARogACgCPEEBIAAtABkgAC0AGGp0QQFrcSAALQAZdmpBAnRqKAEANgEgIAAoAjggAC0AGSAALQAhak8NACAAKAJERQ0OIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAIAAoAjwgAC0AGXY2AjwgACAAKAI4IAAtABlrNgI4IAAoAlAiASAALQAZIAEoAsg3ajYCyDcLIAAgACgCPCAALQAhdjYCPCAAIAAoAjggAC0AIWs2AjggACgCUCIBIAAtACEgASgCyDdqNgLINyAAKAJQIAAvASI2AkQgAC0AIEUEQCAAKAJQQc3+ADYCBAwNCyAALQAgQSBxBEAgACgCUEF/NgLINyAAKAJQQb/+ADYCBAwNCyAALQAgQcAAcQRAIAAoAlhB6Q42AhggACgCUEHR/gA2AgQMDQsgACgCUCAALQAgQQ9xNgJMIAAoAlBByf4ANgIECyAAKAJQKAJMBEADQCAAKAI4IAAoAlAoAkxJBEAgACgCREUNDSAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCUCIBIAEoAkQgACgCPEEBIAAoAlAoAkx0QQFrcWo2AkQgACAAKAI8IAAoAlAoAkx2NgI8IAAgACgCOCAAKAJQKAJMazYCOCAAKAJQIgEgACgCUCgCTCABKALIN2o2Asg3CyAAKAJQIAAoAlAoAkQ2Asw3IAAoAlBByv4ANgIECwNAAkAgACAAKAJQKAJUIAAoAjxBASAAKAJQKAJcdEEBa3FBAnRqKAEANgEgIAAtACEgACgCOE0NACAAKAJERQ0LIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAALQAgQfABcUUEQCAAIAAoASA2ARgDQAJAIAAgACgCUCgCVCAALwEaIAAoAjxBASAALQAZIAAtABhqdEEBa3EgAC0AGXZqQQJ0aigBADYBICAAKAI4IAAtABkgAC0AIWpPDQAgACgCREUNDCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACAAKAI8IAAtABl2NgI8IAAgACgCOCAALQAZazYCOCAAKAJQIgEgAC0AGSABKALIN2o2Asg3CyAAIAAoAjwgAC0AIXY2AjwgACAAKAI4IAAtACFrNgI4IAAoAlAiASAALQAhIAEoAsg3ajYCyDcgAC0AIEHAAHEEQCAAKAJYQYUPNgIYIAAoAlBB0f4ANgIEDAsLIAAoAlAgAC8BIjYCSCAAKAJQIAAtACBBD3E2AkwgACgCUEHL/gA2AgQLIAAoAlAoAkwEQANAIAAoAjggACgCUCgCTEkEQCAAKAJERQ0LIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAKAJQIgEgASgCSCAAKAI8QQEgACgCUCgCTHRBAWtxajYCSCAAIAAoAjwgACgCUCgCTHY2AjwgACAAKAI4IAAoAlAoAkxrNgI4IAAoAlAiASAAKAJQKAJMIAEoAsg3ajYCyDcLIAAoAlBBzP4ANgIECyAAKAJARQ0HIAAgACgCMCAAKAJAazYCLAJAIAAoAlAoAkggACgCLEsEQCAAIAAoAlAoAkggACgCLGs2AiwgACgCLCAAKAJQKAIwSwRAIAAoAlAoAsQ3BEAgACgCWEHdDDYCGCAAKAJQQdH+ADYCBAwMCwsCQCAAKAIsIAAoAlAoAjRLBEAgACAAKAIsIAAoAlAoAjRrNgIsIAAgACgCUCgCOCAAKAJQKAIsIAAoAixrajYCKAwBCyAAIAAoAlAoAjggACgCUCgCNCAAKAIsa2o2AigLIAAoAiwgACgCUCgCREsEQCAAIAAoAlAoAkQ2AiwLDAELIAAgACgCSCAAKAJQKAJIazYCKCAAIAAoAlAoAkQ2AiwLIAAoAiwgACgCQEsEQCAAIAAoAkA2AiwLIAAgACgCQCAAKAIsazYCQCAAKAJQIgEgASgCRCAAKAIsazYCRANAIAAgACgCKCIBQQFqNgIoIAEtAAAhASAAIAAoAkgiAkEBajYCSCACIAE6AAAgACAAKAIsQQFrIgE2AiwgAQ0ACyAAKAJQKAJERQRAIAAoAlBByP4ANgIECwwICyAAKAJARQ0GIAAoAlAoAkQhASAAIAAoAkgiAkEBajYCSCACIAE6AAAgACAAKAJAQQFrNgJAIAAoAlBByP4ANgIEDAcLIAAoAlAoAgwEQANAIAAoAjhBIEkEQCAAKAJERQ0IIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAIAAoAjAgACgCQGs2AjAgACgCWCIBIAAoAjAgASgCFGo2AhQgACgCUCIBIAAoAjAgASgCIGo2AiACQCAAKAJQKAIMQQRxRQ0AIAAoAjBFDQACfyAAKAJQKAIUBEAgACgCUCgCHCAAKAJIIAAoAjBrIAAoAjAQGgwBCyAAKAJQKAIcIAAoAkggACgCMGsgACgCMBA9CyEBIAAoAlAgATYCHCAAKAJYIAE2AjALIAAgACgCQDYCMAJAIAAoAlAoAgxBBHFFDQACfyAAKAJQKAIUBEAgACgCPAwBCyAAKAI8QQh2QYD+A3EgACgCPEEYdmogACgCPEGA/gNxQQh0aiAAKAI8Qf8BcUEYdGoLIAAoAlAoAhxGDQAgACgCWEHIDDYCGCAAKAJQQdH+ADYCBAwICyAAQQA2AjwgAEEANgI4CyAAKAJQQc/+ADYCBAsCQCAAKAJQKAIMRQ0AIAAoAlAoAhRFDQADQCAAKAI4QSBJBEAgACgCREUNByAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCPCAAKAJQKAIgRwRAIAAoAlhBsQw2AhggACgCUEHR/gA2AgQMBwsgAEEANgI8IABBADYCOAsgACgCUEHQ/gA2AgQLIABBATYCEAwDCyAAQX02AhAMAgsgAEF8NgJcDAMLIABBfjYCXAwCCwsgACgCWCAAKAJINgIMIAAoAlggACgCQDYCECAAKAJYIAAoAkw2AgAgACgCWCAAKAJENgIEIAAoAlAgACgCPDYCPCAAKAJQIAAoAjg2AkACQAJAIAAoAlAoAiwNACAAKAIwIAAoAlgoAhBGDQEgACgCUCgCBEHR/gBPDQEgACgCUCgCBEHO/gBJDQAgACgCVEEERg0BCwJ/IAAoAlghAiAAKAJYKAIMIQMgACgCMCAAKAJYKAIQayEEIwBBIGsiASQAIAEgAjYCGCABIAM2AhQgASAENgIQIAEgASgCGCgCHDYCDAJAIAEoAgwoAjhFBEAgASgCGCgCKEEBIAEoAgwoAih0QQEgASgCGCgCIBEBACECIAEoAgwgAjYCOCABKAIMKAI4RQRAIAFBATYCHAwCCwsgASgCDCgCLEUEQCABKAIMQQEgASgCDCgCKHQ2AiwgASgCDEEANgI0IAEoAgxBADYCMAsCQCABKAIQIAEoAgwoAixPBEAgASgCDCgCOCABKAIUIAEoAgwoAixrIAEoAgwoAiwQGRogASgCDEEANgI0IAEoAgwgASgCDCgCLDYCMAwBCyABIAEoAgwoAiwgASgCDCgCNGs2AgggASgCCCABKAIQSwRAIAEgASgCEDYCCAsgASgCDCgCOCABKAIMKAI0aiABKAIUIAEoAhBrIAEoAggQGRogASABKAIQIAEoAghrNgIQAkAgASgCEARAIAEoAgwoAjggASgCFCABKAIQayABKAIQEBkaIAEoAgwgASgCEDYCNCABKAIMIAEoAgwoAiw2AjAMAQsgASgCDCICIAEoAgggAigCNGo2AjQgASgCDCgCNCABKAIMKAIsRgRAIAEoAgxBADYCNAsgASgCDCgCMCABKAIMKAIsSQRAIAEoAgwiAiABKAIIIAIoAjBqNgIwCwsLIAFBADYCHAsgASgCHCECIAFBIGokACACCwRAIAAoAlBB0v4ANgIEIABBfDYCXAwCCwsgACAAKAI0IAAoAlgoAgRrNgI0IAAgACgCMCAAKAJYKAIQazYCMCAAKAJYIgEgACgCNCABKAIIajYCCCAAKAJYIgEgACgCMCABKAIUajYCFCAAKAJQIgEgACgCMCABKAIgajYCIAJAIAAoAlAoAgxBBHFFDQAgACgCMEUNAAJ/IAAoAlAoAhQEQCAAKAJQKAIcIAAoAlgoAgwgACgCMGsgACgCMBAaDAELIAAoAlAoAhwgACgCWCgCDCAAKAIwayAAKAIwED0LIQEgACgCUCABNgIcIAAoAlggATYCMAsgACgCWCAAKAJQKAJAQcAAQQAgACgCUCgCCBtqQYABQQAgACgCUCgCBEG//gBGG2pBgAJBACAAKAJQKAIEQcf+AEcEfyAAKAJQKAIEQcL+AEYFQQELQQFxG2o2AiwCQAJAIAAoAjRFBEAgACgCMEUNAQsgACgCVEEERw0BCyAAKAIQDQAgAEF7NgIQCyAAIAAoAhA2AlwLIAAoAlwhASAAQeAAaiQAIAUgATYCCAsgBSgCECIAIAApAwAgBSgCDDUCIH03AwACQAJAAkACQAJAIAUoAghBBWoOBwIDAwMDAAEDCyAFQQA2AhwMAwsgBUEBNgIcDAILIAUoAgwoAhRFBEAgBUEDNgIcDAILCyAFKAIMKAIAQQ0gBSgCCBAUIAVBAjYCHAsgBSgCHCEAIAVBIGokACAACyQBAX8jAEEQayIBIAA2AgwgASABKAIMNgIIIAEoAghBAToADAuXAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjcDCCADIAMoAhg2AgQCQAJAIAMpAwhC/////w9YBEAgAygCBCgCFEUNAQsgAygCBCgCAEESQQAQFCADQQA6AB8MAQsgAygCBCADKQMIPgIUIAMoAgQgAygCFDYCECADQQE6AB8LIAMtAB9BAXEhACADQSBqJAAgAAukAgECfyMAQRBrIgEkACABIAA2AgggASABKAIINgIEAkAgASgCBC0ABEEBcQRAIAEgASgCBEEQahC4ATYCAAwBCyABKAIEQRBqIQIjAEEQayIAJAAgACACNgIIAkAgACgCCBBKBEAgAEF+NgIMDAELIAAgACgCCCgCHDYCBCAAKAIEKAI4BEAgACgCCCgCKCAAKAIEKAI4IAAoAggoAiQRBAALIAAoAggoAiggACgCCCgCHCAAKAIIKAIkEQQAIAAoAghBADYCHCAAQQA2AgwLIAAoAgwhAiAAQRBqJAAgASACNgIACwJAIAEoAgAEQCABKAIEKAIAQQ0gASgCABAUIAFBADoADwwBCyABQQE6AA8LIAEtAA9BAXEhACABQRBqJAAgAAuyGAEFfyMAQRBrIgQkACAEIAA2AgggBCAEKAIINgIEIAQoAgRBADYCFCAEKAIEQQA2AhAgBCgCBEEANgIgIAQoAgRBADYCHAJAIAQoAgQtAARBAXEEQCAEKAIEQRBqIQEgBCgCBCgCCCECIwBBMGsiACQAIAAgATYCKCAAIAI2AiQgAEEINgIgIABBcTYCHCAAQQk2AhggAEEANgIUIABBwBI2AhAgAEE4NgIMIABBATYCBAJAAkACQCAAKAIQRQ0AIAAoAhAsAABB+O4ALAAARw0AIAAoAgxBOEYNAQsgAEF6NgIsDAELIAAoAihFBEAgAEF+NgIsDAELIAAoAihBADYCGCAAKAIoKAIgRQRAIAAoAihBBTYCICAAKAIoQQA2AigLIAAoAigoAiRFBEAgACgCKEEGNgIkCyAAKAIkQX9GBEAgAEEGNgIkCwJAIAAoAhxBAEgEQCAAQQA2AgQgAEEAIAAoAhxrNgIcDAELIAAoAhxBD0oEQCAAQQI2AgQgACAAKAIcQRBrNgIcCwsCQAJAIAAoAhhBAUgNACAAKAIYQQlKDQAgACgCIEEIRw0AIAAoAhxBCEgNACAAKAIcQQ9KDQAgACgCJEEASA0AIAAoAiRBCUoNACAAKAIUQQBIDQAgACgCFEEESg0AIAAoAhxBCEcNASAAKAIEQQFGDQELIABBfjYCLAwBCyAAKAIcQQhGBEAgAEEJNgIcCyAAIAAoAigoAihBAUHELSAAKAIoKAIgEQEANgIIIAAoAghFBEAgAEF8NgIsDAELIAAoAiggACgCCDYCHCAAKAIIIAAoAig2AgAgACgCCEEqNgIEIAAoAgggACgCBDYCGCAAKAIIQQA2AhwgACgCCCAAKAIcNgIwIAAoAghBASAAKAIIKAIwdDYCLCAAKAIIIAAoAggoAixBAWs2AjQgACgCCCAAKAIYQQdqNgJQIAAoAghBASAAKAIIKAJQdDYCTCAAKAIIIAAoAggoAkxBAWs2AlQgACgCCCAAKAIIKAJQQQJqQQNuNgJYIAAoAigoAiggACgCCCgCLEECIAAoAigoAiARAQAhASAAKAIIIAE2AjggACgCKCgCKCAAKAIIKAIsQQIgACgCKCgCIBEBACEBIAAoAgggATYCQCAAKAIoKAIoIAAoAggoAkxBAiAAKAIoKAIgEQEAIQEgACgCCCABNgJEIAAoAghBADYCwC0gACgCCEEBIAAoAhhBBmp0NgKcLSAAIAAoAigoAiggACgCCCgCnC1BBCAAKAIoKAIgEQEANgIAIAAoAgggACgCADYCCCAAKAIIIAAoAggoApwtQQJ0NgIMAkACQCAAKAIIKAI4RQ0AIAAoAggoAkBFDQAgACgCCCgCREUNACAAKAIIKAIIDQELIAAoAghBmgU2AgQgACgCKEG42QAoAgA2AhggACgCKBC4ARogAEF8NgIsDAELIAAoAgggACgCACAAKAIIKAKcLUEBdkEBdGo2AqQtIAAoAgggACgCCCgCCCAAKAIIKAKcLUEDbGo2ApgtIAAoAgggACgCJDYChAEgACgCCCAAKAIUNgKIASAAKAIIIAAoAiA6ACQgACgCKCEBIwBBEGsiAyQAIAMgATYCDCADKAIMIQIjAEEQayIBJAAgASACNgIIAkAgASgCCBB4BEAgAUF+NgIMDAELIAEoAghBADYCFCABKAIIQQA2AgggASgCCEEANgIYIAEoAghBAjYCLCABIAEoAggoAhw2AgQgASgCBEEANgIUIAEoAgQgASgCBCgCCDYCECABKAIEKAIYQQBIBEAgASgCBEEAIAEoAgQoAhhrNgIYCyABKAIEIAEoAgQoAhhBAkYEf0E5BUEqQfEAIAEoAgQoAhgbCzYCBAJ/IAEoAgQoAhhBAkYEQEEAQQBBABAaDAELQQBBAEEAED0LIQIgASgCCCACNgIwIAEoAgRBADYCKCABKAIEIQUjAEEQayICJAAgAiAFNgIMIAIoAgwgAigCDEGUAWo2ApgWIAIoAgxB0N8ANgKgFiACKAIMIAIoAgxBiBNqNgKkFiACKAIMQeTfADYCrBYgAigCDCACKAIMQfwUajYCsBYgAigCDEH43wA2ArgWIAIoAgxBADsBuC0gAigCDEEANgK8LSACKAIMEL4BIAJBEGokACABQQA2AgwLIAEoAgwhAiABQRBqJAAgAyACNgIIIAMoAghFBEAgAygCDCgCHCECIwBBEGsiASQAIAEgAjYCDCABKAIMIAEoAgwoAixBAXQ2AjwgASgCDCgCRCABKAIMKAJMQQFrQQF0akEAOwEAIAEoAgwoAkRBACABKAIMKAJMQQFrQQF0EDMgASgCDCABKAIMKAKEAUEMbEGA7wBqLwECNgKAASABKAIMIAEoAgwoAoQBQQxsQYDvAGovAQA2AowBIAEoAgwgASgCDCgChAFBDGxBgO8Aai8BBDYCkAEgASgCDCABKAIMKAKEAUEMbEGA7wBqLwEGNgJ8IAEoAgxBADYCbCABKAIMQQA2AlwgASgCDEEANgJ0IAEoAgxBADYCtC0gASgCDEECNgJ4IAEoAgxBAjYCYCABKAIMQQA2AmggASgCDEEANgJIIAFBEGokAAsgAygCCCEBIANBEGokACAAIAE2AiwLIAAoAiwhASAAQTBqJAAgBCABNgIADAELIAQoAgRBEGohASMAQSBrIgAkACAAIAE2AhggAEFxNgIUIABBwBI2AhAgAEE4NgIMAkACQAJAIAAoAhBFDQAgACgCECwAAEHAEiwAAEcNACAAKAIMQThGDQELIABBejYCHAwBCyAAKAIYRQRAIABBfjYCHAwBCyAAKAIYQQA2AhggACgCGCgCIEUEQCAAKAIYQQU2AiAgACgCGEEANgIoCyAAKAIYKAIkRQRAIAAoAhhBBjYCJAsgACAAKAIYKAIoQQFB0DcgACgCGCgCIBEBADYCBCAAKAIERQRAIABBfDYCHAwBCyAAKAIYIAAoAgQ2AhwgACgCBCAAKAIYNgIAIAAoAgRBADYCOCAAKAIEQbT+ADYCBCAAKAIYIQIgACgCFCEDIwBBIGsiASQAIAEgAjYCGCABIAM2AhQCQCABKAIYEEoEQCABQX42AhwMAQsgASABKAIYKAIcNgIMAkAgASgCFEEASARAIAFBADYCECABQQAgASgCFGs2AhQMAQsgASABKAIUQQR1QQVqNgIQIAEoAhRBMEgEQCABIAEoAhRBD3E2AhQLCwJAIAEoAhRFDQAgASgCFEEITgRAIAEoAhRBD0wNAQsgAUF+NgIcDAELAkAgASgCDCgCOEUNACABKAIMKAIoIAEoAhRGDQAgASgCGCgCKCABKAIMKAI4IAEoAhgoAiQRBAAgASgCDEEANgI4CyABKAIMIAEoAhA2AgwgASgCDCABKAIUNgIoIAEoAhghAiMAQRBrIgMkACADIAI2AggCQCADKAIIEEoEQCADQX42AgwMAQsgAyADKAIIKAIcNgIEIAMoAgRBADYCLCADKAIEQQA2AjAgAygCBEEANgI0IAMoAgghBSMAQRBrIgIkACACIAU2AggCQCACKAIIEEoEQCACQX42AgwMAQsgAiACKAIIKAIcNgIEIAIoAgRBADYCICACKAIIQQA2AhQgAigCCEEANgIIIAIoAghBADYCGCACKAIEKAIMBEAgAigCCCACKAIEKAIMQQFxNgIwCyACKAIEQbT+ADYCBCACKAIEQQA2AgggAigCBEEANgIQIAIoAgRBgIACNgIYIAIoAgRBADYCJCACKAIEQQA2AjwgAigCBEEANgJAIAIoAgQgAigCBEG0CmoiBTYCcCACKAIEIAU2AlQgAigCBCAFNgJQIAIoAgRBATYCxDcgAigCBEF/NgLINyACQQA2AgwLIAIoAgwhBSACQRBqJAAgAyAFNgIMCyADKAIMIQIgA0EQaiQAIAEgAjYCHAsgASgCHCECIAFBIGokACAAIAI2AgggACgCCARAIAAoAhgoAiggACgCBCAAKAIYKAIkEQQAIAAoAhhBADYCHAsgACAAKAIINgIcCyAAKAIcIQEgAEEgaiQAIAQgATYCAAsCQCAEKAIABEAgBCgCBCgCAEENIAQoAgAQFCAEQQA6AA8MAQsgBEEBOgAPCyAELQAPQQFxIQAgBEEQaiQAIAALbwEBfyMAQRBrIgEgADYCCCABIAEoAgg2AgQCQCABKAIELQAEQQFxRQRAIAFBADYCDAwBCyABKAIEKAIIQQNIBEAgAUECNgIMDAELIAEoAgQoAghBB0oEQCABQQE2AgwMAQsgAUEANgIMCyABKAIMCywBAX8jAEEQayIBJAAgASAANgIMIAEgASgCDDYCCCABKAIIEBUgAUEQaiQACzwBAX8jAEEQayIDJAAgAyAAOwEOIAMgATYCCCADIAI2AgRBASADKAIIIAMoAgQQtAEhACADQRBqJAAgAAvBEAECfyMAQSBrIgIkACACIAA2AhggAiABNgIUAkADQAJAIAIoAhgoAnRBhgJJBEAgAigCGBBcAkAgAigCGCgCdEGGAk8NACACKAIUDQAgAkEANgIcDAQLIAIoAhgoAnRFDQELIAJBADYCECACKAIYKAJ0QQNPBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsgAigCGCACKAIYKAJgNgJ4IAIoAhggAigCGCgCcDYCZCACKAIYQQI2AmACQCACKAIQRQ0AIAIoAhgoAnggAigCGCgCgAFPDQAgAigCGCgCLEGGAmsgAigCGCgCbCACKAIQa0kNACACKAIYIAIoAhAQtgEhACACKAIYIAA2AmACQCACKAIYKAJgQQVLDQAgAigCGCgCiAFBAUcEQCACKAIYKAJgQQNHDQEgAigCGCgCbCACKAIYKAJwa0GAIE0NAQsgAigCGEECNgJgCwsCQAJAIAIoAhgoAnhBA0kNACACKAIYKAJgIAIoAhgoAnhLDQAgAiACKAIYIgAoAmwgACgCdGpBA2s2AgggAiACKAIYKAJ4QQNrOgAHIAIgAigCGCIAKAJsIAAoAmRBf3NqOwEEIAIoAhgiACgCpC0gACgCoC1BAXRqIAIvAQQ7AQAgAi0AByEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACIAIvAQRBAWs7AQQgAigCGCACLQAHQdDdAGotAABBAnRqQZgJaiIAIAAvAQBBAWo7AQAgAigCGEGIE2oCfyACLwEEQYACSQRAIAIvAQQtANBZDAELIAIvAQRBB3ZBgAJqLQDQWQtBAnRqIgAgAC8BAEEBajsBACACIAIoAhgoAqAtIAIoAhgoApwtQQFrRjYCDCACKAIYIgAgACgCdCACKAIYKAJ4QQFrazYCdCACKAIYIgAgACgCeEECazYCeANAIAIoAhgiASgCbEEBaiEAIAEgADYCbCAAIAIoAghNBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsgAigCGCIBKAJ4QQFrIQAgASAANgJ4IAANAAsgAigCGEEANgJoIAIoAhhBAjYCYCACKAIYIgAgACgCbEEBajYCbCACKAIMBEAgAigCGAJ/IAIoAhgoAlxBAE4EQCACKAIYKAI4IAIoAhgoAlxqDAELQQALIAIoAhgoAmwgAigCGCgCXGtBABAoIAIoAhggAigCGCgCbDYCXCACKAIYKAIAEBwgAigCGCgCACgCEEUEQCACQQA2AhwMBgsLDAELAkAgAigCGCgCaARAIAIgAigCGCIAKAI4IAAoAmxqQQFrLQAAOgADIAIoAhgiACgCpC0gACgCoC1BAXRqQQA7AQAgAi0AAyEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACKAIYIAItAANBAnRqIgAgAC8BlAFBAWo7AZQBIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAgwEQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EAECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHAsgAigCGCIAIAAoAmxBAWo2AmwgAigCGCIAIAAoAnRBAWs2AnQgAigCGCgCACgCEEUEQCACQQA2AhwMBgsMAQsgAigCGEEBNgJoIAIoAhgiACAAKAJsQQFqNgJsIAIoAhgiACAAKAJ0QQFrNgJ0CwsMAQsLIAIoAhgoAmgEQCACIAIoAhgiACgCOCAAKAJsakEBay0AADoAAiACKAIYIgAoAqQtIAAoAqAtQQF0akEAOwEAIAItAAIhASACKAIYIgAoApgtIQMgACAAKAKgLSIAQQFqNgKgLSAAIANqIAE6AAAgAigCGCACLQACQQJ0aiIAIAAvAZQBQQFqOwGUASACIAIoAhgoAqAtIAIoAhgoApwtQQFrRjYCDCACKAIYQQA2AmgLIAIoAhgCfyACKAIYKAJsQQJJBEAgAigCGCgCbAwBC0ECCzYCtC0gAigCFEEERgRAIAIoAhgCfyACKAIYKAJcQQBOBEAgAigCGCgCOCACKAIYKAJcagwBC0EACyACKAIYKAJsIAIoAhgoAlxrQQEQKCACKAIYIAIoAhgoAmw2AlwgAigCGCgCABAcIAIoAhgoAgAoAhBFBEAgAkECNgIcDAILIAJBAzYCHAwBCyACKAIYKAKgLQRAIAIoAhgCfyACKAIYKAJcQQBOBEAgAigCGCgCOCACKAIYKAJcagwBC0EACyACKAIYKAJsIAIoAhgoAlxrQQAQKCACKAIYIAIoAhgoAmw2AlwgAigCGCgCABAcIAIoAhgoAgAoAhBFBEAgAkEANgIcDAILCyACQQE2AhwLIAIoAhwhACACQSBqJAAgAAuVDQECfyMAQSBrIgIkACACIAA2AhggAiABNgIUAkADQAJAIAIoAhgoAnRBhgJJBEAgAigCGBBcAkAgAigCGCgCdEGGAk8NACACKAIUDQAgAkEANgIcDAQLIAIoAhgoAnRFDQELIAJBADYCECACKAIYKAJ0QQNPBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsCQCACKAIQRQ0AIAIoAhgoAixBhgJrIAIoAhgoAmwgAigCEGtJDQAgAigCGCACKAIQELYBIQAgAigCGCAANgJgCwJAIAIoAhgoAmBBA08EQCACIAIoAhgoAmBBA2s6AAsgAiACKAIYIgAoAmwgACgCcGs7AQggAigCGCIAKAKkLSAAKAKgLUEBdGogAi8BCDsBACACLQALIQEgAigCGCIAKAKYLSEDIAAgACgCoC0iAEEBajYCoC0gACADaiABOgAAIAIgAi8BCEEBazsBCCACKAIYIAItAAtB0N0Aai0AAEECdGpBmAlqIgAgAC8BAEEBajsBACACKAIYQYgTagJ/IAIvAQhBgAJJBEAgAi8BCC0A0FkMAQsgAi8BCEEHdkGAAmotANBZC0ECdGoiACAALwEAQQFqOwEAIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAhgiACAAKAJ0IAIoAhgoAmBrNgJ0AkACQCACKAIYKAJgIAIoAhgoAoABSw0AIAIoAhgoAnRBA0kNACACKAIYIgAgACgCYEEBazYCYANAIAIoAhgiACAAKAJsQQFqNgJsIAIoAhggAigCGCgCVCACKAIYKAI4IAIoAhgoAmxBAmpqLQAAIAIoAhgoAkggAigCGCgCWHRzcTYCSCACKAIYKAJAIAIoAhgoAmwgAigCGCgCNHFBAXRqIAIoAhgoAkQgAigCGCgCSEEBdGovAQAiADsBACACIABB//8DcTYCECACKAIYKAJEIAIoAhgoAkhBAXRqIAIoAhgoAmw7AQAgAigCGCIBKAJgQQFrIQAgASAANgJgIAANAAsgAigCGCIAIAAoAmxBAWo2AmwMAQsgAigCGCIAIAIoAhgoAmAgACgCbGo2AmwgAigCGEEANgJgIAIoAhggAigCGCgCOCACKAIYKAJsai0AADYCSCACKAIYIAIoAhgoAlQgAigCGCgCOCACKAIYKAJsQQFqai0AACACKAIYKAJIIAIoAhgoAlh0c3E2AkgLDAELIAIgAigCGCIAKAI4IAAoAmxqLQAAOgAHIAIoAhgiACgCpC0gACgCoC1BAXRqQQA7AQAgAi0AByEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACKAIYIAItAAdBAnRqIgAgAC8BlAFBAWo7AZQBIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAhgiACAAKAJ0QQFrNgJ0IAIoAhgiACAAKAJsQQFqNgJsCyACKAIMBEAgAigCGAJ/IAIoAhgoAlxBAE4EQCACKAIYKAI4IAIoAhgoAlxqDAELQQALIAIoAhgoAmwgAigCGCgCXGtBABAoIAIoAhggAigCGCgCbDYCXCACKAIYKAIAEBwgAigCGCgCACgCEEUEQCACQQA2AhwMBAsLDAELCyACKAIYAn8gAigCGCgCbEECSQRAIAIoAhgoAmwMAQtBAgs2ArQtIAIoAhRBBEYEQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EBECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHCACKAIYKAIAKAIQRQRAIAJBAjYCHAwCCyACQQM2AhwMAQsgAigCGCgCoC0EQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EAECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHCACKAIYKAIAKAIQRQRAIAJBADYCHAwCCwsgAkEBNgIcCyACKAIcIQAgAkEgaiQAIAALBwAgAC8BMAspAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCCBAVIAJBEGokAAs6AQF/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMoAgggAygCBGwQGCEAIANBEGokACAAC84FAQF/IwBB0ABrIgUkACAFIAA2AkQgBSABNgJAIAUgAjYCPCAFIAM3AzAgBSAENgIsIAUgBSgCQDYCKAJAAkACQAJAAkACQAJAAkACQCAFKAIsDg8AAQIDBQYHBwcHBwcHBwQHCwJ/IAUoAkQhASAFKAIoIQIjAEHgAGsiACQAIAAgATYCWCAAIAI2AlQgACAAKAJYIABByABqQgwQKyIDNwMIAkAgA0IAUwRAIAAoAlQgACgCWBAXIABBfzYCXAwBCyAAKQMIQgxSBEAgACgCVEERQQAQFCAAQX82AlwMAQsgACgCVCAAQcgAaiAAQcgAakIMQQAQfCAAKAJYIABBEGoQOUEASARAIABBADYCXAwBCyAAKAI4IABBBmogAEEEahCNAQJAIAAtAFMgACgCPEEYdkYNACAALQBTIAAvAQZBCHZGDQAgACgCVEEbQQAQFCAAQX82AlwMAQsgAEEANgJcCyAAKAJcIQEgAEHgAGokACABQQBICwRAIAVCfzcDSAwICyAFQgA3A0gMBwsgBSAFKAJEIAUoAjwgBSkDMBArIgM3AyAgA0IAUwRAIAUoAiggBSgCRBAXIAVCfzcDSAwHCyAFKAJAIAUoAjwgBSgCPCAFKQMgQQAQfCAFIAUpAyA3A0gMBgsgBUIANwNIDAULIAUgBSgCPDYCHCAFKAIcQQA7ATIgBSgCHCIAIAApAwBCgAGENwMAIAUoAhwpAwBCCINCAFIEQCAFKAIcIgAgACkDIEIMfTcDIAsgBUIANwNIDAQLIAVBfzYCFCAFQQU2AhAgBUEENgIMIAVBAzYCCCAFQQI2AgQgBUEBNgIAIAVBACAFEDQ3A0gMAwsgBSAFKAIoIAUoAjwgBSkDMBBDNwNIDAILIAUoAigQvwEgBUIANwNIDAELIAUoAihBEkEAEBQgBUJ/NwNICyAFKQNIIQMgBUHQAGokACADC+4CAQF/IwBBIGsiBSQAIAUgADYCGCAFIAE2AhQgBSACOwESIAUgAzYCDCAFIAQ2AggCQAJAAkAgBSgCCEUNACAFKAIURQ0AIAUvARJBAUYNAQsgBSgCGEEIakESQQAQFCAFQQA2AhwMAQsgBSgCDEEBcQRAIAUoAhhBCGpBGEEAEBQgBUEANgIcDAELIAVBGBAYIgA2AgQgAEUEQCAFKAIYQQhqQQ5BABAUIAVBADYCHAwBCyMAQRBrIgAgBSgCBDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAFKAIEQfis0ZEBNgIMIAUoAgRBic+VmgI2AhAgBSgCBEGQ8dmiAzYCFCAFKAIEQQAgBSgCCCAFKAIIEC6tQQEQfCAFIAUoAhggBSgCFEEDIAUoAgQQYSIANgIAIABFBEAgBSgCBBC/ASAFQQA2AhwMAQsgBSAFKAIANgIcCyAFKAIcIQAgBUEgaiQAIAALBwAgACgCIAu9GAECfyMAQfAAayIEJAAgBCAANgJkIAQgATYCYCAEIAI3A1ggBCADNgJUIAQgBCgCZDYCUAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBCgCVA4UBgcCDAQFCg8AAwkRCxAOCBIBEg0SC0EAQgBBACAEKAJQEEwhACAEKAJQIAA2AhQgAEUEQCAEQn83A2gMEwsgBCgCUCgCFEIANwM4IAQoAlAoAhRCADcDQCAEQgA3A2gMEgsgBCgCUCgCECEBIAQpA1ghAiAEKAJQIQMjAEFAaiIAJAAgACABNgI4IAAgAjcDMCAAIAM2AiwCQCAAKQMwUARAIABBAEIAQQEgACgCLBBMNgI8DAELIAApAzAgACgCOCkDMFYEQCAAKAIsQRJBABAUIABBADYCPAwBCyAAKAI4KAIoBEAgACgCLEEdQQAQFCAAQQA2AjwMAQsgACAAKAI4IAApAzAQwAE3AyAgACAAKQMwIAAoAjgoAgQgACkDIKdBA3RqKQMAfTcDGCAAKQMYUARAIAAgACkDIEIBfTcDICAAIAAoAjgoAgAgACkDIKdBBHRqKQMINwMYCyAAIAAoAjgoAgAgACkDIKdBBHRqKQMIIAApAxh9NwMQIAApAxAgACkDMFYEQCAAKAIsQRxBABAUIABBADYCPAwBCyAAIAAoAjgoAgAgACkDIEIBfEEAIAAoAiwQTCIBNgIMIAFFBEAgAEEANgI8DAELIAAoAgwoAgAgACgCDCkDCEIBfadBBHRqIAApAxg3AwggACgCDCgCBCAAKAIMKQMIp0EDdGogACkDMDcDACAAKAIMIAApAzA3AzAgACgCDAJ+IAAoAjgpAxggACgCDCkDCEIBfVQEQCAAKAI4KQMYDAELIAAoAgwpAwhCAX0LNwMYIAAoAjggACgCDDYCKCAAKAIMIAAoAjg2AiggACgCOCAAKAIMKQMINwMgIAAoAgwgACkDIEIBfDcDICAAIAAoAgw2AjwLIAAoAjwhASAAQUBrJAAgASEAIAQoAlAgADYCFCAARQRAIARCfzcDaAwSCyAEKAJQKAIUIAQpA1g3AzggBCgCUCgCFCAEKAJQKAIUKQMINwNAIARCADcDaAwRCyAEQgA3A2gMEAsgBCgCUCgCEBAyIAQoAlAgBCgCUCgCFDYCECAEKAJQQQA2AhQgBEIANwNoDA8LIAQgBCgCUCAEKAJgIAQpA1gQQzcDaAwOCyAEKAJQKAIQEDIgBCgCUCgCFBAyIAQoAlAQFSAEQgA3A2gMDQsgBCgCUCgCEEIANwM4IAQoAlAoAhBCADcDQCAEQgA3A2gMDAsgBCkDWEL///////////8AVgRAIAQoAlBBEkEAEBQgBEJ/NwNoDAwLIAQoAlAoAhAhASAEKAJgIQMgBCkDWCECIwBBQGoiACQAIAAgATYCNCAAIAM2AjAgACACNwMoIAACfiAAKQMoIAAoAjQpAzAgACgCNCkDOH1UBEAgACkDKAwBCyAAKAI0KQMwIAAoAjQpAzh9CzcDKAJAIAApAyhQBEAgAEIANwM4DAELIAApAyhC////////////AFYEQCAAQn83AzgMAQsgACAAKAI0KQNANwMYIAAgACgCNCkDOCAAKAI0KAIEIAApAxinQQN0aikDAH03AxAgAEIANwMgA0AgACkDICAAKQMoVARAIAACfiAAKQMoIAApAyB9IAAoAjQoAgAgACkDGKdBBHRqKQMIIAApAxB9VARAIAApAyggACkDIH0MAQsgACgCNCgCACAAKQMYp0EEdGopAwggACkDEH0LNwMIIAAoAjAgACkDIKdqIAAoAjQoAgAgACkDGKdBBHRqKAIAIAApAxCnaiAAKQMIpxAZGiAAKQMIIAAoAjQoAgAgACkDGKdBBHRqKQMIIAApAxB9UQRAIAAgACkDGEIBfDcDGAsgACAAKQMIIAApAyB8NwMgIABCADcDEAwBCwsgACgCNCIBIAApAyAgASkDOHw3AzggACgCNCAAKQMYNwNAIAAgACkDIDcDOAsgACkDOCECIABBQGskACAEIAI3A2gMCwsgBEEAQgBBACAEKAJQEEw2AkwgBCgCTEUEQCAEQn83A2gMCwsgBCgCUCgCEBAyIAQoAlAgBCgCTDYCECAEQgA3A2gMCgsgBCgCUCgCFBAyIAQoAlBBADYCFCAEQgA3A2gMCQsgBCAEKAJQKAIQIAQoAmAgBCkDWCAEKAJQEMEBrDcDaAwICyAEIAQoAlAoAhQgBCgCYCAEKQNYIAQoAlAQwQGsNwNoDAcLIAQpA1hCOFQEQCAEKAJQQRJBABAUIARCfzcDaAwHCyAEIAQoAmA2AkggBCgCSBA7IAQoAkggBCgCUCgCDDYCKCAEKAJIIAQoAlAoAhApAzA3AxggBCgCSCAEKAJIKQMYNwMgIAQoAkhBADsBMCAEKAJIQQA7ATIgBCgCSELcATcDACAEQjg3A2gMBgsgBCgCUCAEKAJgKAIANgIMIARCADcDaAwFCyAEQX82AkAgBEETNgI8IARBCzYCOCAEQQ02AjQgBEEMNgIwIARBCjYCLCAEQQ82AiggBEEJNgIkIARBETYCICAEQQg2AhwgBEEHNgIYIARBBjYCFCAEQQU2AhAgBEEENgIMIARBAzYCCCAEQQI2AgQgBEEBNgIAIARBACAEEDQ3A2gMBAsgBCgCUCgCECkDOEL///////////8AVgRAIAQoAlBBHkE9EBQgBEJ/NwNoDAQLIAQgBCgCUCgCECkDODcDaAwDCyAEKAJQKAIUKQM4Qv///////////wBWBEAgBCgCUEEeQT0QFCAEQn83A2gMAwsgBCAEKAJQKAIUKQM4NwNoDAILIAQpA1hC////////////AFYEQCAEKAJQQRJBABAUIARCfzcDaAwCCyAEKAJQKAIUIQEgBCgCYCEDIAQpA1ghAiAEKAJQIQUjAEHgAGsiACQAIAAgATYCVCAAIAM2AlAgACACNwNIIAAgBTYCRAJAIAApA0ggACgCVCkDOCAAKQNIfEL//wN8VgRAIAAoAkRBEkEAEBQgAEJ/NwNYDAELIAAgACgCVCgCBCAAKAJUKQMIp0EDdGopAwA3AyAgACkDICAAKAJUKQM4IAApA0h8VARAIAAgACgCVCkDCCAAKQNIIAApAyAgACgCVCkDOH19Qv//A3xCEIh8NwMYIAApAxggACgCVCkDEFYEQCAAIAAoAlQpAxA3AxAgACkDEFAEQCAAQhA3AxALA0AgACkDECAAKQMYVARAIAAgACkDEEIBhjcDEAwBCwsgACgCVCAAKQMQIAAoAkQQwgFBAXFFBEAgACgCREEOQQAQFCAAQn83A1gMAwsLA0AgACgCVCkDCCAAKQMYVARAQYCABBAYIQEgACgCVCgCACAAKAJUKQMIp0EEdGogATYCACABBEAgACgCVCgCACAAKAJUKQMIp0EEdGpCgIAENwMIIAAoAlQiASABKQMIQgF8NwMIIAAgACkDIEKAgAR8NwMgIAAoAlQoAgQgACgCVCkDCKdBA3RqIAApAyA3AwAMAgUgACgCREEOQQAQFCAAQn83A1gMBAsACwsLIAAgACgCVCkDQDcDMCAAIAAoAlQpAzggACgCVCgCBCAAKQMwp0EDdGopAwB9NwMoIABCADcDOANAIAApAzggACkDSFQEQCAAAn4gACkDSCAAKQM4fSAAKAJUKAIAIAApAzCnQQR0aikDCCAAKQMofVQEQCAAKQNIIAApAzh9DAELIAAoAlQoAgAgACkDMKdBBHRqKQMIIAApAyh9CzcDCCAAKAJUKAIAIAApAzCnQQR0aigCACAAKQMop2ogACgCUCAAKQM4p2ogACkDCKcQGRogACkDCCAAKAJUKAIAIAApAzCnQQR0aikDCCAAKQMofVEEQCAAIAApAzBCAXw3AzALIAAgACkDCCAAKQM4fDcDOCAAQgA3AygMAQsLIAAoAlQiASAAKQM4IAEpAzh8NwM4IAAoAlQgACkDMDcDQCAAKAJUKQM4IAAoAlQpAzBWBEAgACgCVCAAKAJUKQM4NwMwCyAAIAApAzg3A1gLIAApA1ghAiAAQeAAaiQAIAQgAjcDaAwBCyAEKAJQQRxBABAUIARCfzcDaAsgBCkDaCECIARB8ABqJAAgAgsHACAAKAIACxgAQaibAUIANwIAQbCbAUEANgIAQaibAQuGAQIEfwF+IwBBEGsiASQAAkAgACkDMFAEQAwBCwNAAkAgACAFQQAgAUEPaiABQQhqEIoBIgRBf0YNACABLQAPQQNHDQAgAiABKAIIQYCAgIB/cUGAgICAekZqIQILQX8hAyAEQX9GDQEgAiEDIAVCAXwiBSAAKQMwVA0ACwsgAUEQaiQAIAMLC4GNASMAQYAIC4EMaW5zdWZmaWNpZW50IG1lbW9yeQBuZWVkIGRpY3Rpb25hcnkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABaaXAgYXJjaGl2ZSBpbmNvbnNpc3RlbnQASW52YWxpZCBhcmd1bWVudABpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdABGaWxlIGFscmVhZHkgZXhpc3RzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAJXMlcyVzAGJ1ZmZlciBlcnJvcgBObyBlcnJvcgBzdHJlYW0gZXJyb3IAVGVsbCBlcnJvcgBJbnRlcm5hbCBlcnJvcgBTZWVrIGVycm9yAFdyaXRlIGVycm9yAGZpbGUgZXJyb3IAUmVhZCBlcnJvcgBabGliIGVycm9yAGRhdGEgZXJyb3IAQ1JDIGVycm9yAGluY29tcGF0aWJsZSB2ZXJzaW9uAG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";ug(yo)||(yo=h(yo));function gg(d){try{if(d==yo&&V)return new Uint8Array(V);var E=Ca(d);if(E)return E;if(C)return C(d);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(I){wr(I)}}function Bp(d,E){var I,k,L;try{L=gg(d),k=new WebAssembly.Module(L),I=new WebAssembly.Instance(k,E)}catch(te){var Z=te.toString();throw D("failed to compile wasm module: "+Z),(Z.includes("imported Memory")||Z.includes("memory import"))&&D("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),te}return[I,k]}function bp(){var d={a:ma};function E(L,Z){var te=L.exports;t.asm=te,A=t.asm.u,Mr(A.buffer),gi=t.asm.pa,dA(t.asm.v),EA("wasm-instantiate")}if(mA("wasm-instantiate"),t.instantiateWasm)try{var I=t.instantiateWasm(d,E);return I}catch(L){return D("Module.instantiateWasm callback failed with error: "+L),!1}var k=Bp(yo,d);return E(k[0]),t.asm}var vr,se;function wo(d){for(;d.length>0;){var E=d.shift();if(typeof E=="function"){E(t);continue}var I=E.func;typeof I=="number"?E.arg===void 0?gi.get(I)():gi.get(I)(E.arg):I(E.arg===void 0?null:E.arg)}}function Fn(d,E){var I=new Date(de[d>>2]*1e3);de[E>>2]=I.getUTCSeconds(),de[E+4>>2]=I.getUTCMinutes(),de[E+8>>2]=I.getUTCHours(),de[E+12>>2]=I.getUTCDate(),de[E+16>>2]=I.getUTCMonth(),de[E+20>>2]=I.getUTCFullYear()-1900,de[E+24>>2]=I.getUTCDay(),de[E+36>>2]=0,de[E+32>>2]=0;var k=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),L=(I.getTime()-k)/(1e3*60*60*24)|0;return de[E+28>>2]=L,Fn.GMTString||(Fn.GMTString=Be("GMT")),de[E+40>>2]=Fn.GMTString,E}function fg(d,E){return Fn(d,E)}var bt={splitPath:function(d){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(d).slice(1)},normalizeArray:function(d,E){for(var I=0,k=d.length-1;k>=0;k--){var L=d[k];L==="."?d.splice(k,1):L===".."?(d.splice(k,1),I++):I&&(d.splice(k,1),I--)}if(E)for(;I;I--)d.unshift("..");return d},normalize:function(d){var E=d.charAt(0)==="/",I=d.substr(-1)==="/";return d=bt.normalizeArray(d.split("/").filter(function(k){return!!k}),!E).join("/"),!d&&!E&&(d="."),d&&I&&(d+="/"),(E?"/":"")+d},dirname:function(d){var E=bt.splitPath(d),I=E[0],k=E[1];return!I&&!k?".":(k&&(k=k.substr(0,k.length-1)),I+k)},basename:function(d){if(d==="/")return"/";d=bt.normalize(d),d=d.replace(/\/$/,"");var E=d.lastIndexOf("/");return E===-1?d:d.substr(E+1)},extname:function(d){return bt.splitPath(d)[3]},join:function(){var d=Array.prototype.slice.call(arguments,0);return bt.normalize(d.join("/"))},join2:function(d,E){return bt.normalize(d+"/"+E)}};function Ll(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var d=new Uint8Array(1);return function(){return crypto.getRandomValues(d),d[0]}}else if(g)try{var E=J("crypto");return function(){return E.randomBytes(1)[0]}}catch{}return function(){wr("randomDevice")}}var Nn={resolve:function(){for(var d="",E=!1,I=arguments.length-1;I>=-1&&!E;I--){var k=I>=0?arguments[I]:S.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";d=k+"/"+d,E=k.charAt(0)==="/"}return d=bt.normalizeArray(d.split("/").filter(function(L){return!!L}),!E).join("/"),(E?"/":"")+d||"."},relative:function(d,E){d=Nn.resolve(d).substr(1),E=Nn.resolve(E).substr(1);function I(Je){for(var nt=0;nt=0&&Je[wt]==="";wt--);return nt>wt?[]:Je.slice(nt,wt-nt+1)}for(var k=I(d.split("/")),L=I(E.split("/")),Z=Math.min(k.length,L.length),te=Z,we=0;we0?E=k.slice(0,L).toString("utf-8"):E=null}else typeof window<"u"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` `)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=` -`));if(!E)return null;d.input=wA(E,!0)}return d.input.shift()},put_char:function(d,E){E===null||E===10?(v(ke(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(v(ke(d.output,0)),d.output=[])}},default_tty1_ops:{put_char:function(d,E){E===null||E===10?(D(ke(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(D(ke(d.output,0)),d.output=[])}}};function ss(d){for(var E=H(d,65536),I=dt(E);d=E)){var k=1024*1024;E=Math.max(E,I*(I>>0),I!=0&&(E=Math.max(E,256));var L=d.contents;d.contents=new Uint8Array(E),d.usedBytes>0&&d.contents.set(L.subarray(0,d.usedBytes),0)}},resizeFileStorage:function(d,E){if(d.usedBytes!=E)if(E==0)d.contents=null,d.usedBytes=0;else{var I=d.contents;d.contents=new Uint8Array(E),I&&d.contents.set(I.subarray(0,Math.min(E,d.usedBytes))),d.usedBytes=E}},node_ops:{getattr:function(d){var E={};return E.dev=S.isChrdev(d.mode)?d.id:1,E.ino=d.id,E.mode=d.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=d.rdev,S.isDir(d.mode)?E.size=4096:S.isFile(d.mode)?E.size=d.usedBytes:S.isLink(d.mode)?E.size=d.link.length:E.size=0,E.atime=new Date(d.timestamp),E.mtime=new Date(d.timestamp),E.ctime=new Date(d.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(d,E){E.mode!==void 0&&(d.mode=E.mode),E.timestamp!==void 0&&(d.timestamp=E.timestamp),E.size!==void 0&>.resizeFileStorage(d,E.size)},lookup:function(d,E){throw S.genericErrors[44]},mknod:function(d,E,I,k){return gt.createNode(d,E,I,k)},rename:function(d,E,I){if(S.isDir(d.mode)){var k;try{k=S.lookupNode(E,I)}catch{}if(k)for(var L in k.contents)throw new S.ErrnoError(55)}delete d.parent.contents[d.name],d.parent.timestamp=Date.now(),d.name=I,E.contents[I]=d,E.timestamp=d.parent.timestamp,d.parent=E},unlink:function(d,E){delete d.contents[E],d.timestamp=Date.now()},rmdir:function(d,E){var I=S.lookupNode(d,E);for(var k in I.contents)throw new S.ErrnoError(55);delete d.contents[E],d.timestamp=Date.now()},readdir:function(d){var E=[".",".."];for(var I in d.contents)!d.contents.hasOwnProperty(I)||E.push(I);return E},symlink:function(d,E,I){var k=gt.createNode(d,E,41471,0);return k.link=I,k},readlink:function(d){if(!S.isLink(d.mode))throw new S.ErrnoError(28);return d.link}},stream_ops:{read:function(d,E,I,k,L){var Z=d.node.contents;if(L>=d.node.usedBytes)return 0;var te=Math.min(d.node.usedBytes-L,k);if(te>8&&Z.subarray)E.set(Z.subarray(L,L+te),I);else for(var we=0;we0||k+I>2)}catch(I){throw I.code?new S.ErrnoError(At.convertNodeCode(I)):I}return E.mode},realPath:function(d){for(var E=[];d.parent!==d;)E.push(d.name),d=d.parent;return E.push(d.mount.opts.root),E.reverse(),bt.join.apply(null,E)},flagsForNode:function(d){d&=-2097153,d&=-2049,d&=-32769,d&=-524289;var E=0;for(var I in At.flagsForNodeMap)d&I&&(E|=At.flagsForNodeMap[I],d^=I);if(d)throw new S.ErrnoError(28);return E},node_ops:{getattr:function(d){var E=At.realPath(d),I;try{I=Le.lstatSync(E)}catch(k){throw k.code?new S.ErrnoError(At.convertNodeCode(k)):k}return At.isWindows&&!I.blksize&&(I.blksize=4096),At.isWindows&&!I.blocks&&(I.blocks=(I.size+I.blksize-1)/I.blksize|0),{dev:I.dev,ino:I.ino,mode:I.mode,nlink:I.nlink,uid:I.uid,gid:I.gid,rdev:I.rdev,size:I.size,atime:I.atime,mtime:I.mtime,ctime:I.ctime,blksize:I.blksize,blocks:I.blocks}},setattr:function(d,E){var I=At.realPath(d);try{if(E.mode!==void 0&&(Le.chmodSync(I,E.mode),d.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);Le.utimesSync(I,k,k)}E.size!==void 0&&Le.truncateSync(I,E.size)}catch(L){throw L.code?new S.ErrnoError(At.convertNodeCode(L)):L}},lookup:function(d,E){var I=bt.join2(At.realPath(d),E),k=At.getMode(I);return At.createNode(d,E,k)},mknod:function(d,E,I,k){var L=At.createNode(d,E,I,k),Z=At.realPath(L);try{S.isDir(L.mode)?Le.mkdirSync(Z,L.mode):Le.writeFileSync(Z,"",{mode:L.mode})}catch(te){throw te.code?new S.ErrnoError(At.convertNodeCode(te)):te}return L},rename:function(d,E,I){var k=At.realPath(d),L=bt.join2(At.realPath(E),I);try{Le.renameSync(k,L)}catch(Z){throw Z.code?new S.ErrnoError(At.convertNodeCode(Z)):Z}d.name=I},unlink:function(d,E){var I=bt.join2(At.realPath(d),E);try{Le.unlinkSync(I)}catch(k){throw k.code?new S.ErrnoError(At.convertNodeCode(k)):k}},rmdir:function(d,E){var I=bt.join2(At.realPath(d),E);try{Le.rmdirSync(I)}catch(k){throw k.code?new S.ErrnoError(At.convertNodeCode(k)):k}},readdir:function(d){var E=At.realPath(d);try{return Le.readdirSync(E)}catch(I){throw I.code?new S.ErrnoError(At.convertNodeCode(I)):I}},symlink:function(d,E,I){var k=bt.join2(At.realPath(d),E);try{Le.symlinkSync(I,k)}catch(L){throw L.code?new S.ErrnoError(At.convertNodeCode(L)):L}},readlink:function(d){var E=At.realPath(d);try{return E=Le.readlinkSync(E),E=dg.relative(dg.resolve(d.mount.opts.root),E),E}catch(I){throw I.code?new S.ErrnoError(At.convertNodeCode(I)):I}}},stream_ops:{open:function(d){var E=At.realPath(d.node);try{S.isFile(d.node.mode)&&(d.nfd=Le.openSync(E,At.flagsForNode(d.flags)))}catch(I){throw I.code?new S.ErrnoError(At.convertNodeCode(I)):I}},close:function(d){try{S.isFile(d.node.mode)&&d.nfd&&Le.closeSync(d.nfd)}catch(E){throw E.code?new S.ErrnoError(At.convertNodeCode(E)):E}},read:function(d,E,I,k,L){if(k===0)return 0;try{return Le.readSync(d.nfd,At.bufferFrom(E.buffer),I,k,L)}catch(Z){throw new S.ErrnoError(At.convertNodeCode(Z))}},write:function(d,E,I,k,L){try{return Le.writeSync(d.nfd,At.bufferFrom(E.buffer),I,k,L)}catch(Z){throw new S.ErrnoError(At.convertNodeCode(Z))}},llseek:function(d,E,I){var k=E;if(I===1)k+=d.position;else if(I===2&&S.isFile(d.node.mode))try{var L=Le.fstatSync(d.nfd);k+=L.size}catch(Z){throw new S.ErrnoError(At.convertNodeCode(Z))}if(k<0)throw new S.ErrnoError(28);return k},mmap:function(d,E,I,k,L,Z){if(E!==0)throw new S.ErrnoError(28);if(!S.isFile(d.node.mode))throw new S.ErrnoError(43);var te=ss(I);return At.stream_ops.read(d,ne,te,I,k),{ptr:te,allocated:!0}},msync:function(d,E,I,k,L){if(!S.isFile(d.node.mode))throw new S.ErrnoError(43);if(L&2)return 0;var Z=At.stream_ops.write(d,E,0,k,I,!1);return 0}}},ln={lookupPath:function(d){return{path:d,node:{mode:At.getMode(d)}}},createStandardStreams:function(){S.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var d=1;d<3;d++)S.streams[d]={fd:d,nfd:d,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(d,E){S.isDir(d)?Le.mkdirSync(d,E):Le.writeFileSync(d,"",{mode:E})},mkdir:function(){Le.mkdirSync.apply(void 0,arguments)},symlink:function(){Le.symlinkSync.apply(void 0,arguments)},rename:function(){Le.renameSync.apply(void 0,arguments)},rmdir:function(){Le.rmdirSync.apply(void 0,arguments)},readdir:function(){Le.readdirSync.apply(void 0,arguments)},unlink:function(){Le.unlinkSync.apply(void 0,arguments)},readlink:function(){return Le.readlinkSync.apply(void 0,arguments)},stat:function(){return Le.statSync.apply(void 0,arguments)},lstat:function(){return Le.lstatSync.apply(void 0,arguments)},chmod:function(){Le.chmodSync.apply(void 0,arguments)},fchmod:function(){Le.fchmodSync.apply(void 0,arguments)},chown:function(){Le.chownSync.apply(void 0,arguments)},fchown:function(){Le.fchownSync.apply(void 0,arguments)},truncate:function(){Le.truncateSync.apply(void 0,arguments)},ftruncate:function(d,E){if(E<0)throw new S.ErrnoError(28);Le.ftruncateSync.apply(void 0,arguments)},utime:function(){Le.utimesSync.apply(void 0,arguments)},open:function(d,E,I,k){typeof E=="string"&&(E=Hs.modeStringToFlags(E));var L=Le.openSync(d,At.flagsForNode(E),I),Z=k!=null?k:S.nextfd(L),te={fd:Z,nfd:L,position:0,path:d,flags:E,seekable:!0};return S.streams[Z]=te,te},close:function(d){d.stream_ops||Le.closeSync(d.nfd),S.closeStream(d.fd)},llseek:function(d,E,I){if(d.stream_ops)return Hs.llseek(d,E,I);var k=E;if(I===1)k+=d.position;else if(I===2)k+=Le.fstatSync(d.nfd).size;else if(I!==0)throw new S.ErrnoError(wo.EINVAL);if(k<0)throw new S.ErrnoError(wo.EINVAL);return d.position=k,k},read:function(d,E,I,k,L){if(d.stream_ops)return Hs.read(d,E,I,k,L);var Z=typeof L<"u";!Z&&d.seekable&&(L=d.position);var te=Le.readSync(d.nfd,At.bufferFrom(E.buffer),I,k,L);return Z||(d.position+=te),te},write:function(d,E,I,k,L){if(d.stream_ops)return Hs.write(d,E,I,k,L);d.flags&+"1024"&&S.llseek(d,0,+"2");var Z=typeof L<"u";!Z&&d.seekable&&(L=d.position);var te=Le.writeSync(d.nfd,At.bufferFrom(E.buffer),I,k,L);return Z||(d.position+=te),te},allocate:function(){throw new S.ErrnoError(wo.EOPNOTSUPP)},mmap:function(d,E,I,k,L,Z){if(d.stream_ops)return Hs.mmap(d,E,I,k,L,Z);if(E!==0)throw new S.ErrnoError(28);var te=ss(I);return S.read(d,ne,te,I,k),{ptr:te,allocated:!0}},msync:function(d,E,I,k,L){return d.stream_ops?Hs.msync(d,E,I,k,L):(L&2||S.write(d,E,0,k,I),0)},munmap:function(){return 0},ioctl:function(){throw new S.ErrnoError(wo.ENOTTY)}},S={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(d,E){if(d=Nn.resolve(S.cwd(),d),E=E||{},!d)return{path:"",node:null};var I={follow_mount:!0,recurse_count:0};for(var k in I)E[k]===void 0&&(E[k]=I[k]);if(E.recurse_count>8)throw new S.ErrnoError(32);for(var L=bt.normalizeArray(d.split("/").filter(function(lt){return!!lt}),!1),Z=S.root,te="/",we=0;we40)throw new S.ErrnoError(32)}}return{path:te,node:Z}},getPath:function(d){for(var E;;){if(S.isRoot(d)){var I=d.mount.mountpoint;return E?I[I.length-1]!=="/"?I+"/"+E:I+E:I}E=E?d.name+"/"+E:d.name,d=d.parent}},hashName:function(d,E){for(var I=0,k=0;k>>0)%S.nameTable.length},hashAddNode:function(d){var E=S.hashName(d.parent.id,d.name);d.name_next=S.nameTable[E],S.nameTable[E]=d},hashRemoveNode:function(d){var E=S.hashName(d.parent.id,d.name);if(S.nameTable[E]===d)S.nameTable[E]=d.name_next;else for(var I=S.nameTable[E];I;){if(I.name_next===d){I.name_next=d.name_next;break}I=I.name_next}},lookupNode:function(d,E){var I=S.mayLookup(d);if(I)throw new S.ErrnoError(I,d);for(var k=S.hashName(d.id,E),L=S.nameTable[k];L;L=L.name_next){var Z=L.name;if(L.parent.id===d.id&&Z===E)return L}return S.lookup(d,E)},createNode:function(d,E,I,k){var L=new S.FSNode(d,E,I,k);return S.hashAddNode(L),L},destroyNode:function(d){S.hashRemoveNode(d)},isRoot:function(d){return d===d.parent},isMountpoint:function(d){return!!d.mounted},isFile:function(d){return(d&61440)===32768},isDir:function(d){return(d&61440)===16384},isLink:function(d){return(d&61440)===40960},isChrdev:function(d){return(d&61440)===8192},isBlkdev:function(d){return(d&61440)===24576},isFIFO:function(d){return(d&61440)===4096},isSocket:function(d){return(d&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(d){var E=S.flagModes[d];if(typeof E>"u")throw new Error("Unknown file open mode: "+d);return E},flagsToPermissionString:function(d){var E=["r","w","rw"][d&3];return d&512&&(E+="w"),E},nodePermissions:function(d,E){return S.ignorePermissions?0:E.includes("r")&&!(d.mode&292)||E.includes("w")&&!(d.mode&146)||E.includes("x")&&!(d.mode&73)?2:0},mayLookup:function(d){var E=S.nodePermissions(d,"x");return E||(d.node_ops.lookup?0:2)},mayCreate:function(d,E){try{var I=S.lookupNode(d,E);return 20}catch{}return S.nodePermissions(d,"wx")},mayDelete:function(d,E,I){var k;try{k=S.lookupNode(d,E)}catch(Z){return Z.errno}var L=S.nodePermissions(d,"wx");if(L)return L;if(I){if(!S.isDir(k.mode))return 54;if(S.isRoot(k)||S.getPath(k)===S.cwd())return 10}else if(S.isDir(k.mode))return 31;return 0},mayOpen:function(d,E){return d?S.isLink(d.mode)?32:S.isDir(d.mode)&&(S.flagsToPermissionString(E)!=="r"||E&512)?31:S.nodePermissions(d,S.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(d,E){d=d||0,E=E||S.MAX_OPEN_FDS;for(var I=d;I<=E;I++)if(!S.streams[I])return I;throw new S.ErrnoError(33)},getStream:function(d){return S.streams[d]},createStream:function(d,E,I){S.FSStream||(S.FSStream=function(){},S.FSStream.prototype={object:{get:function(){return this.node},set:function(te){this.node=te}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new S.FSStream;for(var L in d)k[L]=d[L];d=k;var Z=S.nextfd(E,I);return d.fd=Z,S.streams[Z]=d,d},closeStream:function(d){S.streams[d]=null},chrdev_stream_ops:{open:function(d){var E=S.getDevice(d.node.rdev);d.stream_ops=E.stream_ops,d.stream_ops.open&&d.stream_ops.open(d)},llseek:function(){throw new S.ErrnoError(70)}},major:function(d){return d>>8},minor:function(d){return d&255},makedev:function(d,E){return d<<8|E},registerDevice:function(d,E){S.devices[d]={stream_ops:E}},getDevice:function(d){return S.devices[d]},getMounts:function(d){for(var E=[],I=[d];I.length;){var k=I.pop();E.push(k),I.push.apply(I,k.mounts)}return E},syncfs:function(d,E){typeof d=="function"&&(E=d,d=!1),S.syncFSRequests++,S.syncFSRequests>1&&D("warning: "+S.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var I=S.getMounts(S.root.mount),k=0;function L(te){return S.syncFSRequests--,E(te)}function Z(te){if(te)return Z.errored?void 0:(Z.errored=!0,L(te));++k>=I.length&&L(null)}I.forEach(function(te){if(!te.type.syncfs)return Z(null);te.type.syncfs(te,d,Z)})},mount:function(d,E,I){var k=I==="/",L=!I,Z;if(k&&S.root)throw new S.ErrnoError(10);if(!k&&!L){var te=S.lookupPath(I,{follow_mount:!1});if(I=te.path,Z=te.node,S.isMountpoint(Z))throw new S.ErrnoError(10);if(!S.isDir(Z.mode))throw new S.ErrnoError(54)}var we={type:d,opts:E,mountpoint:I,mounts:[]},me=d.mount(we);return me.mount=we,we.root=me,k?S.root=me:Z&&(Z.mounted=we,Z.mount&&Z.mount.mounts.push(we)),me},unmount:function(d){var E=S.lookupPath(d,{follow_mount:!1});if(!S.isMountpoint(E.node))throw new S.ErrnoError(28);var I=E.node,k=I.mounted,L=S.getMounts(k);Object.keys(S.nameTable).forEach(function(te){for(var we=S.nameTable[te];we;){var me=we.name_next;L.includes(we.mount)&&S.destroyNode(we),we=me}}),I.mounted=null;var Z=I.mount.mounts.indexOf(k);I.mount.mounts.splice(Z,1)},lookup:function(d,E){return d.node_ops.lookup(d,E)},mknod:function(d,E,I){var k=S.lookupPath(d,{parent:!0}),L=k.node,Z=bt.basename(d);if(!Z||Z==="."||Z==="..")throw new S.ErrnoError(28);var te=S.mayCreate(L,Z);if(te)throw new S.ErrnoError(te);if(!L.node_ops.mknod)throw new S.ErrnoError(63);return L.node_ops.mknod(L,Z,E,I)},create:function(d,E){return E=E!==void 0?E:438,E&=4095,E|=32768,S.mknod(d,E,0)},mkdir:function(d,E){return E=E!==void 0?E:511,E&=1023,E|=16384,S.mknod(d,E,0)},mkdirTree:function(d,E){for(var I=d.split("/"),k="",L=0;L"u"&&(I=E,E=438),E|=8192,S.mknod(d,E,I)},symlink:function(d,E){if(!Nn.resolve(d))throw new S.ErrnoError(44);var I=S.lookupPath(E,{parent:!0}),k=I.node;if(!k)throw new S.ErrnoError(44);var L=bt.basename(E),Z=S.mayCreate(k,L);if(Z)throw new S.ErrnoError(Z);if(!k.node_ops.symlink)throw new S.ErrnoError(63);return k.node_ops.symlink(k,L,d)},rename:function(d,E){var I=bt.dirname(d),k=bt.dirname(E),L=bt.basename(d),Z=bt.basename(E),te,we,me;if(te=S.lookupPath(d,{parent:!0}),we=te.node,te=S.lookupPath(E,{parent:!0}),me=te.node,!we||!me)throw new S.ErrnoError(44);if(we.mount!==me.mount)throw new S.ErrnoError(75);var Je=S.lookupNode(we,L),nt=Nn.relative(d,k);if(nt.charAt(0)!==".")throw new S.ErrnoError(28);if(nt=Nn.relative(E,I),nt.charAt(0)!==".")throw new S.ErrnoError(55);var wt;try{wt=S.lookupNode(me,Z)}catch{}if(Je!==wt){var lt=S.isDir(Je.mode),it=S.mayDelete(we,L,lt);if(it)throw new S.ErrnoError(it);if(it=wt?S.mayDelete(me,Z,lt):S.mayCreate(me,Z),it)throw new S.ErrnoError(it);if(!we.node_ops.rename)throw new S.ErrnoError(63);if(S.isMountpoint(Je)||wt&&S.isMountpoint(wt))throw new S.ErrnoError(10);if(me!==we&&(it=S.nodePermissions(we,"w"),it))throw new S.ErrnoError(it);try{S.trackingDelegate.willMovePath&&S.trackingDelegate.willMovePath(d,E)}catch(Et){D("FS.trackingDelegate['willMovePath']('"+d+"', '"+E+"') threw an exception: "+Et.message)}S.hashRemoveNode(Je);try{we.node_ops.rename(Je,me,Z)}catch(Et){throw Et}finally{S.hashAddNode(Je)}try{S.trackingDelegate.onMovePath&&S.trackingDelegate.onMovePath(d,E)}catch(Et){D("FS.trackingDelegate['onMovePath']('"+d+"', '"+E+"') threw an exception: "+Et.message)}}},rmdir:function(d){var E=S.lookupPath(d,{parent:!0}),I=E.node,k=bt.basename(d),L=S.lookupNode(I,k),Z=S.mayDelete(I,k,!0);if(Z)throw new S.ErrnoError(Z);if(!I.node_ops.rmdir)throw new S.ErrnoError(63);if(S.isMountpoint(L))throw new S.ErrnoError(10);try{S.trackingDelegate.willDeletePath&&S.trackingDelegate.willDeletePath(d)}catch(te){D("FS.trackingDelegate['willDeletePath']('"+d+"') threw an exception: "+te.message)}I.node_ops.rmdir(I,k),S.destroyNode(L);try{S.trackingDelegate.onDeletePath&&S.trackingDelegate.onDeletePath(d)}catch(te){D("FS.trackingDelegate['onDeletePath']('"+d+"') threw an exception: "+te.message)}},readdir:function(d){var E=S.lookupPath(d,{follow:!0}),I=E.node;if(!I.node_ops.readdir)throw new S.ErrnoError(54);return I.node_ops.readdir(I)},unlink:function(d){var E=S.lookupPath(d,{parent:!0}),I=E.node,k=bt.basename(d),L=S.lookupNode(I,k),Z=S.mayDelete(I,k,!1);if(Z)throw new S.ErrnoError(Z);if(!I.node_ops.unlink)throw new S.ErrnoError(63);if(S.isMountpoint(L))throw new S.ErrnoError(10);try{S.trackingDelegate.willDeletePath&&S.trackingDelegate.willDeletePath(d)}catch(te){D("FS.trackingDelegate['willDeletePath']('"+d+"') threw an exception: "+te.message)}I.node_ops.unlink(I,k),S.destroyNode(L);try{S.trackingDelegate.onDeletePath&&S.trackingDelegate.onDeletePath(d)}catch(te){D("FS.trackingDelegate['onDeletePath']('"+d+"') threw an exception: "+te.message)}},readlink:function(d){var E=S.lookupPath(d),I=E.node;if(!I)throw new S.ErrnoError(44);if(!I.node_ops.readlink)throw new S.ErrnoError(28);return Nn.resolve(S.getPath(I.parent),I.node_ops.readlink(I))},stat:function(d,E){var I=S.lookupPath(d,{follow:!E}),k=I.node;if(!k)throw new S.ErrnoError(44);if(!k.node_ops.getattr)throw new S.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(d){return S.stat(d,!0)},chmod:function(d,E,I){var k;if(typeof d=="string"){var L=S.lookupPath(d,{follow:!I});k=L.node}else k=d;if(!k.node_ops.setattr)throw new S.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(d,E){S.chmod(d,E,!0)},fchmod:function(d,E){var I=S.getStream(d);if(!I)throw new S.ErrnoError(8);S.chmod(I.node,E)},chown:function(d,E,I,k){var L;if(typeof d=="string"){var Z=S.lookupPath(d,{follow:!k});L=Z.node}else L=d;if(!L.node_ops.setattr)throw new S.ErrnoError(63);L.node_ops.setattr(L,{timestamp:Date.now()})},lchown:function(d,E,I){S.chown(d,E,I,!0)},fchown:function(d,E,I){var k=S.getStream(d);if(!k)throw new S.ErrnoError(8);S.chown(k.node,E,I)},truncate:function(d,E){if(E<0)throw new S.ErrnoError(28);var I;if(typeof d=="string"){var k=S.lookupPath(d,{follow:!0});I=k.node}else I=d;if(!I.node_ops.setattr)throw new S.ErrnoError(63);if(S.isDir(I.mode))throw new S.ErrnoError(31);if(!S.isFile(I.mode))throw new S.ErrnoError(28);var L=S.nodePermissions(I,"w");if(L)throw new S.ErrnoError(L);I.node_ops.setattr(I,{size:E,timestamp:Date.now()})},ftruncate:function(d,E){var I=S.getStream(d);if(!I)throw new S.ErrnoError(8);if((I.flags&2097155)===0)throw new S.ErrnoError(28);S.truncate(I.node,E)},utime:function(d,E,I){var k=S.lookupPath(d,{follow:!0}),L=k.node;L.node_ops.setattr(L,{timestamp:Math.max(E,I)})},open:function(d,E,I,k,L){if(d==="")throw new S.ErrnoError(44);E=typeof E=="string"?S.modeStringToFlags(E):E,I=typeof I>"u"?438:I,E&64?I=I&4095|32768:I=0;var Z;if(typeof d=="object")Z=d;else{d=bt.normalize(d);try{var te=S.lookupPath(d,{follow:!(E&131072)});Z=te.node}catch{}}var we=!1;if(E&64)if(Z){if(E&128)throw new S.ErrnoError(20)}else Z=S.mknod(d,I,0),we=!0;if(!Z)throw new S.ErrnoError(44);if(S.isChrdev(Z.mode)&&(E&=-513),E&65536&&!S.isDir(Z.mode))throw new S.ErrnoError(54);if(!we){var me=S.mayOpen(Z,E);if(me)throw new S.ErrnoError(me)}E&512&&S.truncate(Z,0),E&=-131713;var Je=S.createStream({node:Z,path:S.getPath(Z),flags:E,seekable:!0,position:0,stream_ops:Z.stream_ops,ungotten:[],error:!1},k,L);Je.stream_ops.open&&Je.stream_ops.open(Je),t.logReadFiles&&!(E&1)&&(S.readFiles||(S.readFiles={}),d in S.readFiles||(S.readFiles[d]=1,D("FS.trackingDelegate error on read file: "+d)));try{if(S.trackingDelegate.onOpenFile){var nt=0;(E&2097155)!==1&&(nt|=S.tracking.openFlags.READ),(E&2097155)!==0&&(nt|=S.tracking.openFlags.WRITE),S.trackingDelegate.onOpenFile(d,nt)}}catch(wt){D("FS.trackingDelegate['onOpenFile']('"+d+"', flags) threw an exception: "+wt.message)}return Je},close:function(d){if(S.isClosed(d))throw new S.ErrnoError(8);d.getdents&&(d.getdents=null);try{d.stream_ops.close&&d.stream_ops.close(d)}catch(E){throw E}finally{S.closeStream(d.fd)}d.fd=null},isClosed:function(d){return d.fd===null},llseek:function(d,E,I){if(S.isClosed(d))throw new S.ErrnoError(8);if(!d.seekable||!d.stream_ops.llseek)throw new S.ErrnoError(70);if(I!=0&&I!=1&&I!=2)throw new S.ErrnoError(28);return d.position=d.stream_ops.llseek(d,E,I),d.ungotten=[],d.position},read:function(d,E,I,k,L){if(k<0||L<0)throw new S.ErrnoError(28);if(S.isClosed(d))throw new S.ErrnoError(8);if((d.flags&2097155)===1)throw new S.ErrnoError(8);if(S.isDir(d.node.mode))throw new S.ErrnoError(31);if(!d.stream_ops.read)throw new S.ErrnoError(28);var Z=typeof L<"u";if(!Z)L=d.position;else if(!d.seekable)throw new S.ErrnoError(70);var te=d.stream_ops.read(d,E,I,k,L);return Z||(d.position+=te),te},write:function(d,E,I,k,L,Z){if(k<0||L<0)throw new S.ErrnoError(28);if(S.isClosed(d))throw new S.ErrnoError(8);if((d.flags&2097155)===0)throw new S.ErrnoError(8);if(S.isDir(d.node.mode))throw new S.ErrnoError(31);if(!d.stream_ops.write)throw new S.ErrnoError(28);d.seekable&&d.flags&1024&&S.llseek(d,0,2);var te=typeof L<"u";if(!te)L=d.position;else if(!d.seekable)throw new S.ErrnoError(70);var we=d.stream_ops.write(d,E,I,k,L,Z);te||(d.position+=we);try{d.path&&S.trackingDelegate.onWriteToFile&&S.trackingDelegate.onWriteToFile(d.path)}catch(me){D("FS.trackingDelegate['onWriteToFile']('"+d.path+"') threw an exception: "+me.message)}return we},allocate:function(d,E,I){if(S.isClosed(d))throw new S.ErrnoError(8);if(E<0||I<=0)throw new S.ErrnoError(28);if((d.flags&2097155)===0)throw new S.ErrnoError(8);if(!S.isFile(d.node.mode)&&!S.isDir(d.node.mode))throw new S.ErrnoError(43);if(!d.stream_ops.allocate)throw new S.ErrnoError(138);d.stream_ops.allocate(d,E,I)},mmap:function(d,E,I,k,L,Z){if((L&2)!==0&&(Z&2)===0&&(d.flags&2097155)!==2)throw new S.ErrnoError(2);if((d.flags&2097155)===1)throw new S.ErrnoError(2);if(!d.stream_ops.mmap)throw new S.ErrnoError(43);return d.stream_ops.mmap(d,E,I,k,L,Z)},msync:function(d,E,I,k,L){return!d||!d.stream_ops.msync?0:d.stream_ops.msync(d,E,I,k,L)},munmap:function(d){return 0},ioctl:function(d,E,I){if(!d.stream_ops.ioctl)throw new S.ErrnoError(59);return d.stream_ops.ioctl(d,E,I)},readFile:function(d,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary")throw new Error('Invalid encoding type "'+E.encoding+'"');var I,k=S.open(d,E.flags),L=S.stat(d),Z=L.size,te=new Uint8Array(Z);return S.read(k,te,0,Z,0),E.encoding==="utf8"?I=ke(te,0):E.encoding==="binary"&&(I=te),S.close(k),I},writeFile:function(d,E,I){I=I||{},I.flags=I.flags||577;var k=S.open(d,I.flags,I.mode);if(typeof E=="string"){var L=new Uint8Array(le(E)+1),Z=Ne(E,L,0,L.length);S.write(k,L,0,Z,void 0,I.canOwn)}else if(ArrayBuffer.isView(E))S.write(k,E,0,E.byteLength,void 0,I.canOwn);else throw new Error("Unsupported data type");S.close(k)},cwd:function(){return S.currentPath},chdir:function(d){var E=S.lookupPath(d,{follow:!0});if(E.node===null)throw new S.ErrnoError(44);if(!S.isDir(E.node.mode))throw new S.ErrnoError(54);var I=S.nodePermissions(E.node,"x");if(I)throw new S.ErrnoError(I);S.currentPath=E.path},createDefaultDirectories:function(){S.mkdir("/tmp"),S.mkdir("/home"),S.mkdir("/home/web_user")},createDefaultDevices:function(){S.mkdir("/dev"),S.registerDevice(S.makedev(1,3),{read:function(){return 0},write:function(E,I,k,L,Z){return L}}),S.mkdev("/dev/null",S.makedev(1,3)),ns.register(S.makedev(5,0),ns.default_tty_ops),ns.register(S.makedev(6,0),ns.default_tty1_ops),S.mkdev("/dev/tty",S.makedev(5,0)),S.mkdev("/dev/tty1",S.makedev(6,0));var d=Ll();S.createDevice("/dev","random",d),S.createDevice("/dev","urandom",d),S.mkdir("/dev/shm"),S.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){S.mkdir("/proc");var d=S.mkdir("/proc/self");S.mkdir("/proc/self/fd"),S.mount({mount:function(){var E=S.createNode(d,"fd",16895,73);return E.node_ops={lookup:function(I,k){var L=+k,Z=S.getStream(L);if(!Z)throw new S.ErrnoError(8);var te={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return Z.path}}};return te.parent=te,te}},E}},{},"/proc/self/fd")},createStandardStreams:function(){t.stdin?S.createDevice("/dev","stdin",t.stdin):S.symlink("/dev/tty","/dev/stdin"),t.stdout?S.createDevice("/dev","stdout",null,t.stdout):S.symlink("/dev/tty","/dev/stdout"),t.stderr?S.createDevice("/dev","stderr",null,t.stderr):S.symlink("/dev/tty1","/dev/stderr");var d=S.open("/dev/stdin",0),E=S.open("/dev/stdout",1),I=S.open("/dev/stderr",1)},ensureErrnoError:function(){S.ErrnoError||(S.ErrnoError=function(E,I){this.node=I,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message="FS error"},S.ErrnoError.prototype=new Error,S.ErrnoError.prototype.constructor=S.ErrnoError,[44].forEach(function(d){S.genericErrors[d]=new S.ErrnoError(d),S.genericErrors[d].stack=""}))},staticInit:function(){S.ensureErrnoError(),S.nameTable=new Array(4096),S.mount(gt,{},"/"),S.createDefaultDirectories(),S.createDefaultDevices(),S.createSpecialDirectories(),S.filesystems={MEMFS:gt,NODEFS:At}},init:function(d,E,I){S.init.initialized=!0,S.ensureErrnoError(),t.stdin=d||t.stdin,t.stdout=E||t.stdout,t.stderr=I||t.stderr,S.createStandardStreams()},quit:function(){S.init.initialized=!1;var d=t._fflush;d&&d(0);for(var E=0;Ethis.length-1||lt<0)){var it=lt%this.chunkSize,Et=lt/this.chunkSize|0;return this.getter(Et)[it]}},Z.prototype.setDataGetter=function(lt){this.getter=lt},Z.prototype.cacheLength=function(){var lt=new XMLHttpRequest;if(lt.open("HEAD",I,!1),lt.send(null),!(lt.status>=200&<.status<300||lt.status===304))throw new Error("Couldn't load "+I+". Status: "+lt.status);var it=Number(lt.getResponseHeader("Content-length")),Et,be=(Et=lt.getResponseHeader("Accept-Ranges"))&&Et==="bytes",Mn=(Et=lt.getResponseHeader("Content-Encoding"))&&Et==="gzip",Ri=1024*1024;be||(Ri=it);var vA=function(os,Ea){if(os>Ea)throw new Error("invalid range ("+os+", "+Ea+") or no bytes requested!");if(Ea>it-1)throw new Error("only "+it+" bytes available! programmer error!");var Kr=new XMLHttpRequest;if(Kr.open("GET",I,!1),it!==Ri&&Kr.setRequestHeader("Range","bytes="+os+"-"+Ea),typeof Uint8Array<"u"&&(Kr.responseType="arraybuffer"),Kr.overrideMimeType&&Kr.overrideMimeType("text/plain; charset=x-user-defined"),Kr.send(null),!(Kr.status>=200&&Kr.status<300||Kr.status===304))throw new Error("Couldn't load "+I+". Status: "+Kr.status);return Kr.response!==void 0?new Uint8Array(Kr.response||[]):wA(Kr.responseText||"",!0)},Or=this;Or.setDataGetter(function(os){var Ea=os*Ri,Kr=(os+1)*Ri-1;if(Kr=Math.min(Kr,it-1),typeof Or.chunks[os]>"u"&&(Or.chunks[os]=vA(Ea,Kr)),typeof Or.chunks[os]>"u")throw new Error("doXHR failed!");return Or.chunks[os]}),(Mn||!it)&&(Ri=it=1,it=this.getter(0).length,Ri=it,v("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=it,this._chunkSize=Ri,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var te=new Z;Object.defineProperties(te,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var we={isDevice:!1,contents:te}}else var we={isDevice:!1,url:I};var me=S.createFile(d,E,we,k,L);we.contents?me.contents=we.contents:we.url&&(me.contents=null,me.url=we.url),Object.defineProperties(me,{usedBytes:{get:function(){return this.contents.length}}});var Je={},nt=Object.keys(me.stream_ops);return nt.forEach(function(wt){var lt=me.stream_ops[wt];Je[wt]=function(){return S.forceLoadFile(me),lt.apply(null,arguments)}}),Je.read=function(lt,it,Et,be,Mn){S.forceLoadFile(me);var Ri=lt.node.contents;if(Mn>=Ri.length)return 0;var vA=Math.min(Ri.length-Mn,be);if(Ri.slice)for(var Or=0;Or>2]=k.dev,de[I+4>>2]=0,de[I+8>>2]=k.ino,de[I+12>>2]=k.mode,de[I+16>>2]=k.nlink,de[I+20>>2]=k.uid,de[I+24>>2]=k.gid,de[I+28>>2]=k.rdev,de[I+32>>2]=0,se=[k.size>>>0,(vr=k.size,+Math.abs(vr)>=1?vr>0?(Math.min(+Math.floor(vr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((vr-+(~~vr>>>0))/4294967296)>>>0:0)],de[I+40>>2]=se[0],de[I+44>>2]=se[1],de[I+48>>2]=4096,de[I+52>>2]=k.blocks,de[I+56>>2]=k.atime.getTime()/1e3|0,de[I+60>>2]=0,de[I+64>>2]=k.mtime.getTime()/1e3|0,de[I+68>>2]=0,de[I+72>>2]=k.ctime.getTime()/1e3|0,de[I+76>>2]=0,se=[k.ino>>>0,(vr=k.ino,+Math.abs(vr)>=1?vr>0?(Math.min(+Math.floor(vr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((vr-+(~~vr>>>0))/4294967296)>>>0:0)],de[I+80>>2]=se[0],de[I+84>>2]=se[1],0},doMsync:function(d,E,I,k,L){var Z=Y.slice(d,d+I);S.msync(E,Z,L,I,k)},doMkdir:function(d,E){return d=bt.normalize(d),d[d.length-1]==="/"&&(d=d.substr(0,d.length-1)),S.mkdir(d,E,0),0},doMknod:function(d,E,I){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return S.mknod(d,E,I),0},doReadlink:function(d,E,I){if(I<=0)return-28;var k=S.readlink(d),L=Math.min(I,le(k)),Z=ne[E+L];return oe(k,E,I+1),ne[E+L]=Z,L},doAccess:function(d,E){if(E&-8)return-28;var I,k=S.lookupPath(d,{follow:!0});if(I=k.node,!I)return-44;var L="";return E&4&&(L+="r"),E&2&&(L+="w"),E&1&&(L+="x"),L&&S.nodePermissions(I,L)?-2:0},doDup:function(d,E,I){var k=S.getStream(I);return k&&S.close(k),S.open(d,E,0,I,I).fd},doReadv:function(d,E,I,k){for(var L=0,Z=0;Z>2],we=de[E+(Z*8+4)>>2],me=S.read(d,ne,te,we,k);if(me<0)return-1;if(L+=me,me>2],we=de[E+(Z*8+4)>>2],me=S.write(d,ne,te,we,k);if(me<0)return-1;L+=me}return L},varargs:void 0,get:function(){Lt.varargs+=4;var d=de[Lt.varargs-4>>2];return d},getStr:function(d){var E=Fe(d);return E},getStreamFromFD:function(d){var E=S.getStream(d);if(!E)throw new S.ErrnoError(8);return E},get64:function(d,E){return d}};function hg(d,E){try{return d=Lt.getStr(d),S.chmod(d,E),0}catch(I){return(typeof S>"u"||!(I instanceof S.ErrnoError))&&wr(I),-I.errno}}function Ml(d){return de[Ft()>>2]=d,d}function Qp(d,E,I){Lt.varargs=I;try{var k=Lt.getStreamFromFD(d);switch(E){case 0:{var L=Lt.get();if(L<0)return-28;var Z;return Z=S.open(k.path,k.flags,0,L),Z.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var L=Lt.get();return k.flags|=L,0}case 12:{var L=Lt.get(),te=0;return he[L+te>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Ml(28),-1;default:return-28}}catch(we){return(typeof S>"u"||!(we instanceof S.ErrnoError))&&wr(we),-we.errno}}function Sp(d,E){try{var I=Lt.getStreamFromFD(d);return Lt.doStat(S.stat,I.path,E)}catch(k){return(typeof S>"u"||!(k instanceof S.ErrnoError))&&wr(k),-k.errno}}function vp(d,E,I){Lt.varargs=I;try{var k=Lt.getStreamFromFD(d);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var L=Lt.get();return de[L>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var L=Lt.get();return S.ioctl(k,E,L)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:wr("bad ioctl syscall "+E)}}catch(Z){return(typeof S>"u"||!(Z instanceof S.ErrnoError))&&wr(Z),-Z.errno}}function xp(d,E,I){Lt.varargs=I;try{var k=Lt.getStr(d),L=I?Lt.get():0,Z=S.open(k,E,L);return Z.fd}catch(te){return(typeof S>"u"||!(te instanceof S.ErrnoError))&&wr(te),-te.errno}}function Pp(d,E){try{return d=Lt.getStr(d),E=Lt.getStr(E),S.rename(d,E),0}catch(I){return(typeof S>"u"||!(I instanceof S.ErrnoError))&&wr(I),-I.errno}}function G(d){try{return d=Lt.getStr(d),S.rmdir(d),0}catch(E){return(typeof S>"u"||!(E instanceof S.ErrnoError))&&wr(E),-E.errno}}function yt(d,E){try{return d=Lt.getStr(d),Lt.doStat(S.stat,d,E)}catch(I){return(typeof S>"u"||!(I instanceof S.ErrnoError))&&wr(I),-I.errno}}function yA(d){try{return d=Lt.getStr(d),S.unlink(d),0}catch(E){return(typeof S>"u"||!(E instanceof S.ErrnoError))&&wr(E),-E.errno}}function zi(d,E,I){Y.copyWithin(d,E,E+I)}function Ol(d){try{return A.grow(d-qe.byteLength+65535>>>16),Mr(A.buffer),1}catch{}}function Xe(d){var E=Y.length;d=d>>>0;var I=2147483648;if(d>I)return!1;for(var k=1;k<=4;k*=2){var L=E*(1+.2/k);L=Math.min(L,d+100663296);var Z=Math.min(I,ae(Math.max(d,L),65536)),te=Ol(Z);if(te)return!0}return!1}function pa(d){try{var E=Lt.getStreamFromFD(d);return S.close(E),0}catch(I){return(typeof S>"u"||!(I instanceof S.ErrnoError))&&wr(I),I.errno}}function pg(d,E){try{var I=Lt.getStreamFromFD(d),k=I.tty?2:S.isDir(I.mode)?3:S.isLink(I.mode)?7:4;return ne[E>>0]=k,0}catch(L){return(typeof S>"u"||!(L instanceof S.ErrnoError))&&wr(L),L.errno}}function ME(d,E,I,k){try{var L=Lt.getStreamFromFD(d),Z=Lt.doReadv(L,E,I);return de[k>>2]=Z,0}catch(te){return(typeof S>"u"||!(te instanceof S.ErrnoError))&&wr(te),te.errno}}function Dp(d,E,I,k,L){try{var Z=Lt.getStreamFromFD(d),te=4294967296,we=I*te+(E>>>0),me=9007199254740992;return we<=-me||we>=me?-61:(S.llseek(Z,we,k),se=[Z.position>>>0,(vr=Z.position,+Math.abs(vr)>=1?vr>0?(Math.min(+Math.floor(vr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((vr-+(~~vr>>>0))/4294967296)>>>0:0)],de[L>>2]=se[0],de[L+4>>2]=se[1],Z.getdents&&we===0&&k===0&&(Z.getdents=null),0)}catch(Je){return(typeof S>"u"||!(Je instanceof S.ErrnoError))&&wr(Je),Je.errno}}function OE(d,E,I,k){try{var L=Lt.getStreamFromFD(d),Z=Lt.doWritev(L,E,I);return de[k>>2]=Z,0}catch(te){return(typeof S>"u"||!(te instanceof S.ErrnoError))&&wr(te),te.errno}}function ar(d){$(d)}function Tn(d){var E=Date.now()/1e3|0;return d&&(de[d>>2]=E),E}function Kl(){if(Kl.called)return;Kl.called=!0;var d=new Date().getFullYear(),E=new Date(d,0,1),I=new Date(d,6,1),k=E.getTimezoneOffset(),L=I.getTimezoneOffset(),Z=Math.max(k,L);de[iS()>>2]=Z*60,de[rS()>>2]=Number(k!=L);function te(wt){var lt=wt.toTimeString().match(/\(([A-Za-z ]+)\)$/);return lt?lt[1]:"GMT"}var we=te(E),me=te(I),Je=Be(we),nt=Be(me);L>2]=Je,de[wg()+4>>2]=nt):(de[wg()>>2]=nt,de[wg()+4>>2]=Je)}function kp(d){Kl();var E=Date.UTC(de[d+20>>2]+1900,de[d+16>>2],de[d+12>>2],de[d+8>>2],de[d+4>>2],de[d>>2],0),I=new Date(E);de[d+24>>2]=I.getUTCDay();var k=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),L=(I.getTime()-k)/(1e3*60*60*24)|0;return de[d+28>>2]=L,I.getTime()/1e3|0}var Us=function(d,E,I,k){d||(d=this),this.parent=d,this.mount=d.mount,this.mounted=null,this.id=S.nextInode++,this.name=E,this.mode=I,this.node_ops={},this.stream_ops={},this.rdev=k},da=365,cn=146;if(Object.defineProperties(Us.prototype,{read:{get:function(){return(this.mode&da)===da},set:function(d){d?this.mode|=da:this.mode&=~da}},write:{get:function(){return(this.mode&cn)===cn},set:function(d){d?this.mode|=cn:this.mode&=~cn}},isFolder:{get:function(){return S.isDir(this.mode)}},isDevice:{get:function(){return S.isChrdev(this.mode)}}}),S.FSNode=Us,S.staticInit(),g){var Le=eV,dg=J("path");At.staticInit()}if(g){var Ul=function(d){return function(){try{return d.apply(this,arguments)}catch(E){throw E.code?new S.ErrnoError(wo[E.code]):E}}},Hs=Object.assign({},S);for(var Hl in ln)S[Hl]=Ul(ln[Hl])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function wA(d,E,I){var k=I>0?I:le(d)+1,L=new Array(k),Z=Ne(d,L,0,L.length);return E&&(L.length=Z),L}var Cg=typeof atob=="function"?atob:function(d){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",I="",k,L,Z,te,we,me,Je,nt=0;d=d.replace(/[^A-Za-z0-9\+\/\=]/g,"");do te=E.indexOf(d.charAt(nt++)),we=E.indexOf(d.charAt(nt++)),me=E.indexOf(d.charAt(nt++)),Je=E.indexOf(d.charAt(nt++)),k=te<<2|we>>4,L=(we&15)<<4|me>>2,Z=(me&3)<<6|Je,I=I+String.fromCharCode(k),me!==64&&(I=I+String.fromCharCode(L)),Je!==64&&(I=I+String.fromCharCode(Z));while(nt0||(pr(),is>0))return;function E(){Oe||(Oe=!0,t.calledRun=!0,!Ae&&(Ii(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=SA,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return SA(),e}}();typeof IB=="object"&&typeof FR=="object"?FR.exports=RR:typeof define=="function"&&define.amd?define([],function(){return RR}):typeof IB=="object"&&(IB.createModule=RR)});var QV=w((Gst,bV)=>{function hke(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t{var pke=Array.isArray;SV.exports=pke});var RV=w((jst,kV)=>{var vV=Rc(),dke=QV(),Cke=vs(),mke=gC(),Eke=1/0,xV=vV?vV.prototype:void 0,PV=xV?xV.toString:void 0;function DV(r){if(typeof r=="string")return r;if(Cke(r))return dke(r,DV)+"";if(mke(r))return PV?PV.call(r):"";var e=r+"";return e=="0"&&1/r==-Eke?"-0":e}kV.exports=DV});var Vf=w((qst,FV)=>{var Ike=RV();function yke(r){return r==null?"":Ike(r)}FV.exports=yke});var HR=w((Jst,NV)=>{function wke(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i{var Bke=HR();function bke(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:Bke(r,e,t)}TV.exports=bke});var GR=w((zst,MV)=>{var Qke="\\ud800-\\udfff",Ske="\\u0300-\\u036f",vke="\\ufe20-\\ufe2f",xke="\\u20d0-\\u20ff",Pke=Ske+vke+xke,Dke="\\ufe0e\\ufe0f",kke="\\u200d",Rke=RegExp("["+kke+Qke+Pke+Dke+"]");function Fke(r){return Rke.test(r)}MV.exports=Fke});var KV=w((Vst,OV)=>{function Nke(r){return r.split("")}OV.exports=Nke});var WV=w((Xst,JV)=>{var UV="\\ud800-\\udfff",Tke="\\u0300-\\u036f",Lke="\\ufe20-\\ufe2f",Mke="\\u20d0-\\u20ff",Oke=Tke+Lke+Mke,Kke="\\ufe0e\\ufe0f",Uke="["+UV+"]",YR="["+Oke+"]",jR="\\ud83c[\\udffb-\\udfff]",Hke="(?:"+YR+"|"+jR+")",HV="[^"+UV+"]",GV="(?:\\ud83c[\\udde6-\\uddff]){2}",YV="[\\ud800-\\udbff][\\udc00-\\udfff]",Gke="\\u200d",jV=Hke+"?",qV="["+Kke+"]?",Yke="(?:"+Gke+"(?:"+[HV,GV,YV].join("|")+")"+qV+jV+")*",jke=qV+jV+Yke,qke="(?:"+[HV+YR+"?",YR,GV,YV,Uke].join("|")+")",Jke=RegExp(jR+"(?="+jR+")|"+qke+jke,"g");function Wke(r){return r.match(Jke)||[]}JV.exports=Wke});var VV=w((Zst,zV)=>{var zke=KV(),Vke=GR(),Xke=WV();function Zke(r){return Vke(r)?Xke(r):zke(r)}zV.exports=Zke});var ZV=w((_st,XV)=>{var _ke=LV(),$ke=GR(),eRe=VV(),tRe=Vf();function rRe(r){return function(e){e=tRe(e);var t=$ke(e)?eRe(e):void 0,i=t?t[0]:e.charAt(0),n=t?_ke(t,1).join(""):e.slice(1);return i[r]()+n}}XV.exports=rRe});var $V=w(($st,_V)=>{var iRe=ZV(),nRe=iRe("toUpperCase");_V.exports=nRe});var PB=w((eot,e9)=>{var sRe=Vf(),oRe=$V();function aRe(r){return oRe(sRe(r).toLowerCase())}e9.exports=aRe});var t9=w((tot,DB)=>{function ARe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,f=12,h=13,p=14,C=15,y=16,B=17,v=0,D=1,T=2,H=3,j=4;function $(A,Ae){return 55296<=A.charCodeAt(Ae)&&A.charCodeAt(Ae)<=56319&&56320<=A.charCodeAt(Ae+1)&&A.charCodeAt(Ae+1)<=57343}function V(A,Ae){Ae===void 0&&(Ae=0);var ge=A.charCodeAt(Ae);if(55296<=ge&&ge<=56319&&Ae=1){var re=A.charCodeAt(Ae-1),M=ge;return 55296<=re&&re<=56319?(re-55296)*1024+(M-56320)+65536:M}return ge}function W(A,Ae,ge){var re=[A].concat(Ae).concat([ge]),M=re[re.length-2],F=ge,ue=re.lastIndexOf(p);if(ue>1&&re.slice(1,ue).every(function(Fe){return Fe==i})&&[i,h,B].indexOf(A)==-1)return T;var pe=re.lastIndexOf(n);if(pe>0&&re.slice(1,pe).every(function(Fe){return Fe==n})&&[f,n].indexOf(M)==-1)return re.filter(function(Fe){return Fe==n}).length%2==1?H:j;if(M==r&&F==e)return v;if(M==t||M==r||M==e)return F==p&&Ae.every(function(Fe){return Fe==i})?T:D;if(F==t||F==r||F==e)return D;if(M==o&&(F==o||F==a||F==c||F==u))return v;if((M==c||M==a)&&(F==a||F==l))return v;if((M==u||M==l)&&F==l)return v;if(F==i||F==C)return v;if(F==s)return v;if(M==f)return v;var ke=re.indexOf(i)!=-1?re.lastIndexOf(i)-1:re.length-2;return[h,B].indexOf(re[ke])!=-1&&re.slice(ke+1,-1).every(function(Fe){return Fe==i})&&F==p||M==C&&[y,B].indexOf(F)!=-1?v:Ae.indexOf(n)!=-1?T:M==n&&F==n?v:D}this.nextBreak=function(A,Ae){if(Ae===void 0&&(Ae=0),Ae<0)return 0;if(Ae>=A.length-1)return A.length;for(var ge=_(V(A,Ae)),re=[],M=Ae+1;M{var lRe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,kB;function cRe(){if(kB)return kB;if(typeof Intl.Segmenter<"u"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return kB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=t9(),e=new r;return kB=t=>e.splitGraphemes(t)}}r9.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(lRe)||[r,r,void 0],l=cRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]<"u"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var Xf=w((wot,E9)=>{"use strict";var m9=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);E9.exports=r=>r?Object.keys(r).map(e=>[m9.has(e)?m9.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var _f=w((Bot,x9)=>{"use strict";var I9=typeof process=="object"&&process?process:{stdout:null,stderr:null},BRe=J("events"),y9=J("stream"),w9=J("string_decoder").StringDecoder,za=Symbol("EOF"),Va=Symbol("maybeEmitEnd"),rl=Symbol("emittedEnd"),MB=Symbol("emittingEnd"),NC=Symbol("emittedError"),OB=Symbol("closed"),B9=Symbol("read"),KB=Symbol("flush"),b9=Symbol("flushChunk"),xn=Symbol("encoding"),Xa=Symbol("decoder"),UB=Symbol("flowing"),TC=Symbol("paused"),Zf=Symbol("resume"),Ci=Symbol("bufferLength"),zR=Symbol("bufferPush"),VR=Symbol("bufferShift"),Hi=Symbol("objectMode"),Gi=Symbol("destroyed"),XR=Symbol("emitData"),Q9=Symbol("emitEnd"),ZR=Symbol("emitEnd2"),Za=Symbol("async"),LC=r=>Promise.resolve().then(r),S9=global._MP_NO_ITERATOR_SYMBOLS_!=="1",bRe=S9&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),QRe=S9&&Symbol.iterator||Symbol("iterator not implemented"),SRe=r=>r==="end"||r==="finish"||r==="prefinish",vRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,xRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),HB=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Zf](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},_R=class extends HB{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=n=>t.emit("error",n),e.on("error",this.proxyErrors)}};x9.exports=class v9 extends y9{constructor(e){super(),this[UB]=!1,this[TC]=!1,this.pipes=[],this.buffer=[],this[Hi]=e&&e.objectMode||!1,this[Hi]?this[xn]=null:this[xn]=e&&e.encoding||null,this[xn]==="buffer"&&(this[xn]=null),this[Za]=e&&!!e.async||!1,this[Xa]=this[xn]?new w9(this[xn]):null,this[za]=!1,this[rl]=!1,this[MB]=!1,this[OB]=!1,this[NC]=null,this.writable=!0,this.readable=!0,this[Ci]=0,this[Gi]=!1}get bufferLength(){return this[Ci]}get encoding(){return this[xn]}set encoding(e){if(this[Hi])throw new Error("cannot set encoding in objectMode");if(this[xn]&&e!==this[xn]&&(this[Xa]&&this[Xa].lastNeed||this[Ci]))throw new Error("cannot change encoding");this[xn]!==e&&(this[Xa]=e?new w9(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Xa].write(t)))),this[xn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Hi]}set objectMode(e){this[Hi]=this[Hi]||!!e}get async(){return this[Za]}set async(e){this[Za]=this[Za]||!!e}write(e,t,i){if(this[za])throw new Error("write after end");if(this[Gi])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let n=this[Za]?LC:s=>s();return!this[Hi]&&!Buffer.isBuffer(e)&&(xRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):vRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Hi]?(this.flowing&&this[Ci]!==0&&this[KB](!0),this.flowing?this.emit("data",e):this[zR](e),this[Ci]!==0&&this.emit("readable"),i&&n(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[xn]&&!this[Xa].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[xn]&&(e=this[Xa].write(e)),this.flowing&&this[Ci]!==0&&this[KB](!0),this.flowing?this.emit("data",e):this[zR](e),this[Ci]!==0&&this.emit("readable"),i&&n(i),this.flowing):(this[Ci]!==0&&this.emit("readable"),i&&n(i),this.flowing)}read(e){if(this[Gi])return null;if(this[Ci]===0||e===0||e>this[Ci])return this[Va](),null;this[Hi]&&(e=null),this.buffer.length>1&&!this[Hi]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[Ci])]);let t=this[B9](e||null,this.buffer[0]);return this[Va](),t}[B9](e,t){return e===t.length||e===null?this[VR]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[Ci]-=e),this.emit("data",t),!this.buffer.length&&!this[za]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[za]=!0,this.writable=!1,(this.flowing||!this[TC])&&this[Va](),this}[Zf](){this[Gi]||(this[TC]=!1,this[UB]=!0,this.emit("resume"),this.buffer.length?this[KB]():this[za]?this[Va]():this.emit("drain"))}resume(){return this[Zf]()}pause(){this[UB]=!1,this[TC]=!0}get destroyed(){return this[Gi]}get flowing(){return this[UB]}get paused(){return this[TC]}[zR](e){this[Hi]?this[Ci]+=1:this[Ci]+=e.length,this.buffer.push(e)}[VR](){return this.buffer.length&&(this[Hi]?this[Ci]-=1:this[Ci]-=this.buffer[0].length),this.buffer.shift()}[KB](e){do;while(this[b9](this[VR]()));!e&&!this.buffer.length&&!this[za]&&this.emit("drain")}[b9](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[Gi])return;let i=this[rl];return t=t||{},e===I9.stdout||e===I9.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new _R(this,e,t):new HB(this,e,t)),this[Za]?LC(()=>this[Zf]()):this[Zf]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[Zf]():e==="readable"&&this[Ci]!==0?super.emit("readable"):SRe(e)&&this[rl]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[NC]&&(this[Za]?LC(()=>t.call(this,this[NC])):t.call(this,this[NC])),i}get emittedEnd(){return this[rl]}[Va](){!this[MB]&&!this[rl]&&!this[Gi]&&this.buffer.length===0&&this[za]&&(this[MB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OB]&&this.emit("close"),this[MB]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==Gi&&this[Gi])return;if(e==="data")return t?this[Za]?LC(()=>this[XR](t)):this[XR](t):!1;if(e==="end")return this[Q9]();if(e==="close"){if(this[OB]=!0,!this[rl]&&!this[Gi])return;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[NC]=t;let s=super.emit("error",t);return this[Va](),s}else if(e==="resume"){let s=super.emit("resume");return this[Va](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let n=super.emit(e,t,...i);return this[Va](),n}[XR](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Va](),t}[Q9](){this[rl]||(this[rl]=!0,this.readable=!1,this[Za]?LC(()=>this[ZR]()):this[ZR]())}[ZR](){if(this[Xa]){let t=this[Xa].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Hi]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[Hi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this[xn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(Gi,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[bRe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[za])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[za]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(Gi,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[QRe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[Gi]?(e?this.emit("error",e):this.emit(Gi),this):(this[Gi]=!0,this.buffer.length=0,this[Ci]=0,typeof this.close=="function"&&!this[OB]&&this.close(),e?this.emit("error",e):this.emit(Gi),this)}static isStream(e){return!!e&&(e instanceof v9||e instanceof y9||e instanceof BRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var D9=w((bot,P9)=>{var PRe=J("zlib").constants||{ZLIB_VERNUM:4736};P9.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},PRe))});var hF=w(Xn=>{"use strict";var iF=J("assert"),il=J("buffer").Buffer,F9=J("zlib"),Uc=Xn.constants=D9(),DRe=_f(),k9=il.concat,Hc=Symbol("_superWrite"),eh=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},kRe=Symbol("opts"),MC=Symbol("flushFlag"),R9=Symbol("finishFlushFlag"),fF=Symbol("fullFlushFlag"),cr=Symbol("handle"),GB=Symbol("onError"),$f=Symbol("sawError"),$R=Symbol("level"),eF=Symbol("strategy"),tF=Symbol("ended"),Qot=Symbol("_defaultFullFlush"),YB=class extends DRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[$f]=!1,this[tF]=!1,this[kRe]=e,this[MC]=e.flush,this[R9]=e.finishFlush;try{this[cr]=new F9[t](e)}catch(i){throw new eh(i)}this[GB]=i=>{this[$f]||(this[$f]=!0,this.close(),this.emit("error",i))},this[cr].on("error",i=>this[GB](new eh(i))),this.once("end",()=>this.close)}close(){this[cr]&&(this[cr].close(),this[cr]=null,this.emit("close"))}reset(){if(!this[$f])return iF(this[cr],"zlib binding closed"),this[cr].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[fF]),this.write(Object.assign(il.alloc(0),{[MC]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[R9]),this[tF]=!0,super.end(null,null,i)}get ended(){return this[tF]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=il.from(e,t)),this[$f])return;iF(this[cr],"zlib binding closed");let n=this[cr]._handle,s=n.close;n.close=()=>{};let o=this[cr].close;this[cr].close=()=>{},il.concat=c=>c;let a;try{let c=typeof e[MC]=="number"?e[MC]:this[MC];a=this[cr]._processChunk(e,c),il.concat=k9}catch(c){il.concat=k9,this[GB](new eh(c))}finally{this[cr]&&(this[cr]._handle=n,n.close=s,this[cr].close=o,this[cr].removeAllListeners("error"))}this[cr]&&this[cr].on("error",c=>this[GB](new eh(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[Hc](il.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[cr].params(e,t)}finally{this[cr].flush=i}this[cr]&&(this[$R]=e,this[eF]=t)}}}},nF=class extends _a{constructor(e){super(e,"Deflate")}},sF=class extends _a{constructor(e){super(e,"Inflate")}},rF=Symbol("_portable"),oF=class extends _a{constructor(e){super(e,"Gzip"),this[rF]=e&&!!e.portable}[Hc](e){return this[rF]?(this[rF]=!1,e[9]=255,super[Hc](e)):super[Hc](e)}},aF=class extends _a{constructor(e){super(e,"Gunzip")}},AF=class extends _a{constructor(e){super(e,"DeflateRaw")}},lF=class extends _a{constructor(e){super(e,"InflateRaw")}},cF=class extends _a{constructor(e){super(e,"Unzip")}},jB=class extends YB{constructor(e,t){e=e||{},e.flush=e.flush||Uc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||Uc.BROTLI_OPERATION_FINISH,super(e,t),this[fF]=Uc.BROTLI_OPERATION_FLUSH}},uF=class extends jB{constructor(e){super(e,"BrotliCompress")}},gF=class extends jB{constructor(e){super(e,"BrotliDecompress")}};Xn.Deflate=nF;Xn.Inflate=sF;Xn.Gzip=oF;Xn.Gunzip=aF;Xn.DeflateRaw=AF;Xn.InflateRaw=lF;Xn.Unzip=cF;typeof F9.BrotliCompress=="function"?(Xn.BrotliCompress=uF,Xn.BrotliDecompress=gF):Xn.BrotliCompress=Xn.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var th=w((xot,N9)=>{var RRe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;N9.exports=RRe!=="win32"?r=>r:r=>r&&r.replace(/\\/g,"/")});var qB=w((Dot,T9)=>{"use strict";var FRe=_f(),pF=th(),dF=Symbol("slurp");T9.exports=class extends FRe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=pF(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=pF(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[dF](t),i&&this[dF](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[dF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?pF(e[i]):e[i])}}});var CF=w(JB=>{"use strict";JB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);JB.code=new Map(Array.from(JB.name).map(r=>[r[1],r[0]]))});var K9=w((Rot,O9)=>{"use strict";var NRe=(r,e)=>{if(Number.isSafeInteger(r))r<0?LRe(r,e):TRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},TRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},LRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=L9(n):n===0?e[i-1]=0:(t=!0,e[i-1]=M9(n))}},MRe=r=>{let e=r[0],t=e===128?KRe(r.slice(1,r.length)):e===255?ORe(r):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},ORe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=L9(s):s===0?o=s:(i=!0,o=M9(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},KRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},L9=r=>(255^r)&255,M9=r=>(255^r)+1&255;O9.exports={encode:NRe,parse:MRe}});var ih=w((Fot,H9)=>{"use strict";var mF=CF(),rh=J("path").posix,U9=K9(),EF=Symbol("slurp"),Zn=Symbol("type"),wF=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=Gc(e,t,100),this.mode=nl(e,t+100,8),this.uid=nl(e,t+108,8),this.gid=nl(e,t+116,8),this.size=nl(e,t+124,12),this.mtime=IF(e,t+136,12),this.cksum=nl(e,t+148,12),this[EF](i),this[EF](n,!0),this[Zn]=Gc(e,t+156,1),this[Zn]===""&&(this[Zn]="0"),this[Zn]==="0"&&this.path.substr(-1)==="/"&&(this[Zn]="5"),this[Zn]==="5"&&(this.size=0),this.linkpath=Gc(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=Gc(e,t+265,32),this.gname=Gc(e,t+297,32),this.devmaj=nl(e,t+329,8),this.devmin=nl(e,t+337,8),e[t+475]!==0){let o=Gc(e,t+345,155);this.path=o+"/"+this.path}else{let o=Gc(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=IF(e,t+476,12),this.ctime=IF(e,t+488,12)}let s=8*32;for(let o=t;o=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=URe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=Yc(e,t,100,s)||this.needPax,this.needPax=sl(e,t+100,8,this.mode)||this.needPax,this.needPax=sl(e,t+108,8,this.uid)||this.needPax,this.needPax=sl(e,t+116,8,this.gid)||this.needPax,this.needPax=sl(e,t+124,12,this.size)||this.needPax,this.needPax=yF(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Zn].charCodeAt(0),this.needPax=Yc(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=Yc(e,t+265,32,this.uname)||this.needPax,this.needPax=Yc(e,t+297,32,this.gname)||this.needPax,this.needPax=sl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=sl(e,t+337,8,this.devmin)||this.needPax,this.needPax=Yc(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=Yc(e,t+345,155,o)||this.needPax:(this.needPax=Yc(e,t+345,130,o)||this.needPax,this.needPax=yF(e,t+476,12,this.atime)||this.needPax,this.needPax=yF(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l{let i=r,n="",s,o=rh.parse(r).root||".";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=rh.dirname(i),i=rh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=rh.join(rh.basename(n),i),n=rh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),"",!0])}return s},Gc=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),IF=(r,e,t)=>HRe(nl(r,e,t)),HRe=r=>r===null?null:new Date(r*1e3),nl=(r,e,t)=>r[e]&128?U9.parse(r.slice(e,e+t)):YRe(r,e,t),GRe=r=>isNaN(r)?null:r,YRe=(r,e,t)=>GRe(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),jRe={12:8589934591,8:2097151},sl=(r,e,t,i)=>i===null?!1:i>jRe[t]||i<0?(U9.encode(i,r.slice(e,e+t)),!0):(qRe(r,e,t,i),!1),qRe=(r,e,t,i)=>r.write(JRe(i,t),e,t,"ascii"),JRe=(r,e)=>WRe(Math.floor(r).toString(8),e),WRe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",yF=(r,e,t,i)=>i===null?!1:sl(r,e,t,i.getTime()/1e3),zRe=new Array(156).join("\0"),Yc=(r,e,t,i)=>i===null?!1:(r.write(i+zRe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);H9.exports=wF});var WB=w((Not,G9)=>{"use strict";var VRe=ih(),XRe=J("path"),OC=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new VRe({path:("PaxHeader/"+XRe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s=Math.pow(10,s)&&(s+=1),s+n+i}};OC.parse=(r,e,t)=>new OC(ZRe(_Re(r),e),t);var ZRe=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,_Re=r=>r.replace(/\n$/,"").split(` -`).reduce($Re,Object.create(null)),$Re=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};G9.exports=OC});var nh=w((Tot,Y9)=>{Y9.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var zB=w((Lot,j9)=>{"use strict";j9.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var bF=w((Oot,q9)=>{"use strict";var VB=["|","<",">","?",":"],BF=VB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),eFe=new Map(VB.map((r,e)=>[r,BF[e]])),tFe=new Map(BF.map((r,e)=>[r,VB[e]]));q9.exports={encode:r=>VB.reduce((e,t)=>e.split(t).join(eFe.get(t)),r),decode:r=>BF.reduce((e,t)=>e.split(t).join(tFe.get(t)),r)}});var QF=w((Kot,W9)=>{var{isAbsolute:rFe,parse:J9}=J("path").win32;W9.exports=r=>{let e="",t=J9(r);for(;rFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=J9(r)}return[e,r]}});var V9=w((Uot,z9)=>{"use strict";z9.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var TF=w((Yot,l7)=>{"use strict";var r7=_f(),i7=WB(),n7=ih(),Zo=J("fs"),X9=J("path"),Xo=th(),iFe=nh(),s7=(r,e)=>e?(r=Xo(r).replace(/^\.(\/|$)/,""),iFe(e)+"/"+r):Xo(r),nFe=16*1024*1024,Z9=Symbol("process"),_9=Symbol("file"),$9=Symbol("directory"),vF=Symbol("symlink"),e7=Symbol("hardlink"),KC=Symbol("header"),XB=Symbol("read"),xF=Symbol("lstat"),ZB=Symbol("onlstat"),PF=Symbol("onread"),DF=Symbol("onreadlink"),kF=Symbol("openfile"),RF=Symbol("onopenfile"),ol=Symbol("close"),_B=Symbol("mode"),FF=Symbol("awaitDrain"),SF=Symbol("ondrain"),_o=Symbol("prefix"),t7=Symbol("hadError"),o7=zB(),sFe=bF(),a7=QF(),A7=V9(),$B=o7(class extends r7{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Xo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||nFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Xo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Xo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=a7(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=sFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Xo(t.absolute||X9.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[ZB](this.statCache.get(this.absolute)):this[xF]()}emit(e,...t){return e==="error"&&(this[t7]=!0),super.emit(e,...t)}[xF](){Zo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[ZB](t)})}[ZB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=aFe(e),this.emit("stat",e),this[Z9]()}[Z9](){switch(this.type){case"File":return this[_9]();case"Directory":return this[$9]();case"SymbolicLink":return this[vF]();default:return this.end()}}[_B](e){return A7(e,this.type==="Directory",this.portable)}[_o](e){return s7(e,this.prefix)}[KC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new n7({path:this[_o](this.path),linkpath:this.type==="Link"?this[_o](this.linkpath):this.linkpath,mode:this[_B](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new i7({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[_o](this.path),linkpath:this.type==="Link"?this[_o](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[$9](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[KC](),this.end()}[vF](){Zo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[DF](t)})}[DF](e){this.linkpath=Xo(e),this[KC](),this.end()}[e7](e){this.type="Link",this.linkpath=Xo(X9.relative(this.cwd,e)),this.stat.size=0,this[KC](),this.end()}[_9](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[e7](t)}this.linkCache.set(e,this.absolute)}if(this[KC](),this.stat.size===0)return this.end();this[kF]()}[kF](){Zo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[RF](t)})}[RF](e){if(this.fd=e,this[t7])return this[ol]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[XB]()}[XB](){let{fd:e,buf:t,offset:i,length:n,pos:s}=this;Zo.read(e,t,i,n,s,(o,a)=>{if(o)return this[ol](()=>this.emit("error",o));this[PF](a)})}[ol](e){Zo.close(this.fd,e)}[PF](e){if(e<=0&&this.remain>0){let n=new Error("encountered unexpected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[ol](()=>this.emit("error",n))}if(e>this.remain){let n=new Error("did not encounter expected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[ol](()=>this.emit("error",n))}if(e===this.remain)for(let n=e;nthis[SF]())}[FF](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[XB]()}}),NF=class extends $B{[xF](){this[ZB](Zo.lstatSync(this.absolute))}[vF](){this[DF](Zo.readlinkSync(this.absolute))}[kF](){this[RF](Zo.openSync(this.absolute,"r"))}[XB](){let e=!0;try{let{fd:t,buf:i,offset:n,length:s,pos:o}=this,a=Zo.readSync(t,i,n,s,o);this[PF](a),e=!1}finally{if(e)try{this[ol](()=>{})}catch{}}}[FF](e){e()}[ol](e){Zo.closeSync(this.fd),e()}},oFe=o7(class extends r7{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=Xo(e.path),this.mode=this[_B](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=Xo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=a7(this.path);n&&(this.path=s,i=n)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new n7({path:this[_o](this.path),linkpath:this.type==="Link"?this[_o](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new i7({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[_o](this.path),linkpath:this.type==="Link"?this[_o](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[_o](e){return s7(e,this.prefix)}[_B](e){return A7(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});$B.Sync=NF;$B.Tar=oFe;var aFe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";l7.exports=$B});var A0=w((qot,d7)=>{"use strict";var o0=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},AFe=_f(),lFe=hF(),cFe=qB(),jF=TF(),uFe=jF.Sync,gFe=jF.Tar,fFe=WI(),c7=Buffer.alloc(1024),r0=Symbol("onStat"),e0=Symbol("ended"),$o=Symbol("queue"),sh=Symbol("current"),jc=Symbol("process"),t0=Symbol("processing"),u7=Symbol("processJob"),ea=Symbol("jobs"),LF=Symbol("jobDone"),i0=Symbol("addFSEntry"),g7=Symbol("addTarEntry"),UF=Symbol("stat"),HF=Symbol("readdir"),n0=Symbol("onreaddir"),s0=Symbol("pipe"),f7=Symbol("entry"),MF=Symbol("entryOpt"),GF=Symbol("writeEntryClass"),p7=Symbol("write"),OF=Symbol("ondrain"),a0=J("fs"),h7=J("path"),hFe=zB(),KF=th(),qF=hFe(class extends AFe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=KF(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[GF]=jF,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new lFe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[OF]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[OF]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[$o]=new fFe,this[ea]=0,this.jobs=+e.jobs||4,this[t0]=!1,this[e0]=!1}[p7](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[e0]=!0,this[jc](),this}write(e){if(this[e0])throw new Error("write after end");return e instanceof cFe?this[g7](e):this[i0](e),this.flowing}[g7](e){let t=KF(h7.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new o0(e.path,t,!1);i.entry=new gFe(e,this[MF](i)),i.entry.on("end",n=>this[LF](i)),this[ea]+=1,this[$o].push(i)}this[jc]()}[i0](e){let t=KF(h7.resolve(this.cwd,e));this[$o].push(new o0(e,t)),this[jc]()}[UF](e){e.pending=!0,this[ea]+=1;let t=this.follow?"stat":"lstat";a0[t](e.absolute,(i,n)=>{e.pending=!1,this[ea]-=1,i?this.emit("error",i):this[r0](e,n)})}[r0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[jc]()}[HF](e){e.pending=!0,this[ea]+=1,a0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[ea]-=1,t)return this.emit("error",t);this[n0](e,i)})}[n0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[jc]()}[jc](){if(!this[t0]){this[t0]=!0;for(let e=this[$o].head;e!==null&&this[ea]this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[f7](e){this[ea]+=1;try{return new this[GF](e.path,this[MF](e)).on("end",()=>this[LF](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[OF](){this[sh]&&this[sh].entry&&this[sh].entry.resume()}[s0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[i0](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),YF=class extends qF{constructor(e){super(e),this[GF]=uFe}pause(){}resume(){}[UF](e){let t=this.follow?"statSync":"lstatSync";this[r0](e,a0[t](e.absolute))}[HF](e,t){this[n0](e,a0.readdirSync(e.absolute))}[s0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[i0](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[p7](n)})}};qF.Sync=YF;d7.exports=qF});var fh=w(HC=>{"use strict";var pFe=_f(),dFe=J("events").EventEmitter,Pn=J("fs"),zF=Pn.writev;if(!zF){let r=process.binding("fs"),e=r.FSReqWrap||r.FSReqCallback;zF=(t,i,n,s)=>{let o=(l,c)=>s(l,c,i),a=new e;a.oncomplete=o,r.writeBuffers(t,i,n,a)}}var uh=Symbol("_autoClose"),Ao=Symbol("_close"),UC=Symbol("_ended"),rr=Symbol("_fd"),C7=Symbol("_finished"),Al=Symbol("_flags"),JF=Symbol("_flush"),VF=Symbol("_handleChunk"),XF=Symbol("_makeBuf"),f0=Symbol("_mode"),l0=Symbol("_needDrain"),lh=Symbol("_onerror"),gh=Symbol("_onopen"),WF=Symbol("_onread"),ah=Symbol("_onwrite"),ll=Symbol("_open"),$a=Symbol("_path"),qc=Symbol("_pos"),ta=Symbol("_queue"),Ah=Symbol("_read"),m7=Symbol("_readSize"),al=Symbol("_reading"),c0=Symbol("_remain"),E7=Symbol("_size"),u0=Symbol("_write"),oh=Symbol("_writing"),g0=Symbol("_defaultFlag"),ch=Symbol("_errored"),h0=class extends pFe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[ch]=!1,this[rr]=typeof t.fd=="number"?t.fd:null,this[$a]=e,this[m7]=t.readSize||16*1024*1024,this[al]=!1,this[E7]=typeof t.size=="number"?t.size:1/0,this[c0]=this[E7],this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[rr]=="number"?this[Ah]():this[ll]()}get fd(){return this[rr]}get path(){return this[$a]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[ll](){Pn.open(this[$a],"r",(e,t)=>this[gh](e,t))}[gh](e,t){e?this[lh](e):(this[rr]=t,this.emit("open",t),this[Ah]())}[XF](){return Buffer.allocUnsafe(Math.min(this[m7],this[c0]))}[Ah](){if(!this[al]){this[al]=!0;let e=this[XF]();if(e.length===0)return process.nextTick(()=>this[WF](null,0,e));Pn.read(this[rr],e,0,e.length,null,(t,i,n)=>this[WF](t,i,n))}}[WF](e,t,i){this[al]=!1,e?this[lh](e):this[VF](t,i)&&this[Ah]()}[Ao](){if(this[uh]&&typeof this[rr]=="number"){let e=this[rr];this[rr]=null,Pn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[lh](e){this[al]=!0,this[Ao](),this.emit("error",e)}[VF](e,t){let i=!1;return this[c0]-=e,e>0&&(i=super.write(ethis[gh](e,t))}[gh](e,t){this[g0]&&this[Al]==="r+"&&e&&e.code==="ENOENT"?(this[Al]="w",this[ll]()):e?this[lh](e):(this[rr]=t,this.emit("open",t),this[JF]())}end(e,t){return e&&this.write(e,t),this[UC]=!0,!this[oh]&&!this[ta].length&&typeof this[rr]=="number"&&this[ah](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[UC]?(this.emit("error",new Error("write() after end()")),!1):this[rr]===null||this[oh]||this[ta].length?(this[ta].push(e),this[l0]=!0,!1):(this[oh]=!0,this[u0](e),!0)}[u0](e){Pn.write(this[rr],e,0,e.length,this[qc],(t,i)=>this[ah](t,i))}[ah](e,t){e?this[lh](e):(this[qc]!==null&&(this[qc]+=t),this[ta].length?this[JF]():(this[oh]=!1,this[UC]&&!this[C7]?(this[C7]=!0,this[Ao](),this.emit("finish")):this[l0]&&(this[l0]=!1,this.emit("drain"))))}[JF](){if(this[ta].length===0)this[UC]&&this[ah](null,0);else if(this[ta].length===1)this[u0](this[ta].pop());else{let e=this[ta];this[ta]=[],zF(this[rr],e,this[qc],(t,i)=>this[ah](t,i))}}[Ao](){if(this[uh]&&typeof this[rr]=="number"){let e=this[rr];this[rr]=null,Pn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},_F=class extends p0{[ll](){let e;if(this[g0]&&this[Al]==="r+")try{e=Pn.openSync(this[$a],this[Al],this[f0])}catch(t){if(t.code==="ENOENT")return this[Al]="w",this[ll]();throw t}else e=Pn.openSync(this[$a],this[Al],this[f0]);this[gh](null,e)}[Ao](){if(this[uh]&&typeof this[rr]=="number"){let e=this[rr];this[rr]=null,Pn.closeSync(e),this.emit("close")}}[u0](e){let t=!0;try{this[ah](null,Pn.writeSync(this[rr],e,0,e.length,this[qc])),t=!1}finally{if(t)try{this[Ao]()}catch{}}}};HC.ReadStream=h0;HC.ReadStreamSync=ZF;HC.WriteStream=p0;HC.WriteStreamSync=_F});var w0=w((zot,S7)=>{"use strict";var CFe=zB(),mFe=ih(),EFe=J("events"),IFe=WI(),yFe=1024*1024,wFe=qB(),I7=WB(),BFe=hF(),$F=Buffer.from([31,139]),xs=Symbol("state"),Jc=Symbol("writeEntry"),eA=Symbol("readEntry"),eN=Symbol("nextEntry"),y7=Symbol("processEntry"),Ps=Symbol("extendedHeader"),GC=Symbol("globalExtendedHeader"),cl=Symbol("meta"),w7=Symbol("emitMeta"),Er=Symbol("buffer"),tA=Symbol("queue"),Wc=Symbol("ended"),B7=Symbol("emittedEnd"),zc=Symbol("emit"),Dn=Symbol("unzip"),d0=Symbol("consumeChunk"),C0=Symbol("consumeChunkSub"),tN=Symbol("consumeBody"),b7=Symbol("consumeMeta"),Q7=Symbol("consumeHeader"),m0=Symbol("consuming"),rN=Symbol("bufferConcat"),iN=Symbol("maybeEnd"),YC=Symbol("writing"),ul=Symbol("aborted"),E0=Symbol("onDone"),Vc=Symbol("sawValidEntry"),I0=Symbol("sawNullBlock"),y0=Symbol("sawEOF"),bFe=r=>!0;S7.exports=CFe(class extends EFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Vc]=null,this.on(E0,t=>{(this[xs]==="begin"||this[Vc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(E0,e.ondone):this.on(E0,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||yFe,this.filter=typeof e.filter=="function"?e.filter:bFe,this.writable=!0,this.readable=!1,this[tA]=new IFe,this[Er]=null,this[eA]=null,this[Jc]=null,this[xs]="begin",this[cl]="",this[Ps]=null,this[GC]=null,this[Wc]=!1,this[Dn]=null,this[ul]=!1,this[I0]=!1,this[y0]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[Q7](e,t){this[Vc]===null&&(this[Vc]=!1);let i;try{i=new mFe(e,t,this[Ps],this[GC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[I0]?(this[y0]=!0,this[xs]==="begin"&&(this[xs]="header"),this[zc]("eof")):(this[I0]=!0,this[zc]("nullBlock"));else if(this[I0]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[Jc]=new wFe(i,this[Ps],this[GC]);if(!this[Vc])if(s.remain){let o=()=>{s.invalid||(this[Vc]=!0)};s.on("end",o)}else this[Vc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[zc]("ignoredEntry",s),this[xs]="ignore",s.resume()):s.size>0&&(this[cl]="",s.on("data",o=>this[cl]+=o),this[xs]="meta"):(this[Ps]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[zc]("ignoredEntry",s),this[xs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[xs]="body":(this[xs]="header",s.end()),this[eA]?this[tA].push(s):(this[tA].push(s),this[eN]())))}}}[y7](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[eA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[eN]()),t=!1)):(this[eA]=null,t=!1),t}[eN](){do;while(this[y7](this[tA].shift()));if(!this[tA].length){let e=this[eA];!e||e.flowing||e.size===e.remain?this[YC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[tN](e,t){let i=this[Jc],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[xs]="header",this[Jc]=null,i.end()),s.length}[b7](e,t){let i=this[Jc],n=this[tN](e,t);return this[Jc]||this[w7](i),n}[zc](e,t,i){!this[tA].length&&!this[eA]?this.emit(e,t,i):this[tA].push([e,t,i])}[w7](e){switch(this[zc]("meta",this[cl]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Ps]=I7.parse(this[cl],this[Ps],!1);break;case"GlobalExtendedHeader":this[GC]=I7.parse(this[cl],this[GC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Ps]=this[Ps]||Object.create(null),this[Ps].path=this[cl].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Ps]=this[Ps]||Object.create(null),this[Ps].linkpath=this[cl].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[ul]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[ul])return;if(this[Dn]===null&&e){if(this[Er]&&(e=Buffer.concat([this[Er],e]),this[Er]=null),e.length<$F.length)return this[Er]=e,!0;for(let i=0;this[Dn]===null&&i<$F.length;i++)e[i]!==$F[i]&&(this[Dn]=!1);if(this[Dn]===null){let i=this[Wc];this[Wc]=!1,this[Dn]=new BFe.Unzip,this[Dn].on("data",s=>this[d0](s)),this[Dn].on("error",s=>this.abort(s)),this[Dn].on("end",s=>{this[Wc]=!0,this[d0]()}),this[YC]=!0;let n=this[Dn][i?"end":"write"](e);return this[YC]=!1,n}}this[YC]=!0,this[Dn]?this[Dn].write(e):this[d0](e),this[YC]=!1;let t=this[tA].length?!1:this[eA]?this[eA].flowing:!0;return!t&&!this[tA].length&&this[eA].once("drain",i=>this.emit("drain")),t}[rN](e){e&&!this[ul]&&(this[Er]=this[Er]?Buffer.concat([this[Er],e]):e)}[iN](){if(this[Wc]&&!this[B7]&&!this[ul]&&!this[m0]){this[B7]=!0;let e=this[Jc];if(e&&e.blockRemain){let t=this[Er]?this[Er].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Er]&&e.write(this[Er]),e.end()}this[zc](E0)}}[d0](e){if(this[m0])this[rN](e);else if(!e&&!this[Er])this[iN]();else{if(this[m0]=!0,this[Er]){this[rN](e);let t=this[Er];this[Er]=null,this[C0](t)}else this[C0](e);for(;this[Er]&&this[Er].length>=512&&!this[ul]&&!this[y0];){let t=this[Er];this[Er]=null,this[C0](t)}this[m0]=!1}(!this[Er]||this[Wc])&&this[iN]()}[C0](e){let t=0,i=e.length;for(;t+512<=i&&!this[ul]&&!this[y0];)switch(this[xs]){case"begin":case"header":this[Q7](e,t),t+=512;break;case"ignore":case"body":t+=this[tN](e,t);break;case"meta":t+=this[b7](e,t);break;default:throw new Error("invalid state: "+this[xs])}t{"use strict";var QFe=Xf(),x7=w0(),hh=J("fs"),SFe=fh(),v7=J("path"),nN=nh();D7.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=QFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&xFe(i,e),i.noResume||vFe(i),i.file&&i.sync?PFe(i):i.file?DFe(i,t):P7(i)};var vFe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},xFe=(r,e)=>{let t=new Map(e.map(s=>[nN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||v7.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(v7.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(nN(s)):s=>n(nN(s))},PFe=r=>{let e=P7(r),t=r.file,i=!0,n;try{let s=hh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size{let t=new x7(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),hh.stat(n,(l,c)=>{if(l)a(l);else{let u=new SFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},P7=r=>new x7(r)});var L7=w((Xot,T7)=>{"use strict";var kFe=Xf(),b0=A0(),k7=fh(),R7=B0(),F7=J("path");T7.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=kFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?RFe(i,e):i.file?FFe(i,e,t):i.sync?NFe(i,e):TFe(i,e)};var RFe=(r,e)=>{let t=new b0.Sync(r),i=new k7.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),N7(t,e)},FFe=(r,e,t)=>{let i=new b0(r),n=new k7.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return sN(i,e),t?s.then(t,t):s},N7=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?R7({file:F7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},sN=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return R7({file:F7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>sN(r,e));r.add(t)}r.end()},NFe=(r,e)=>{let t=new b0.Sync(r);return N7(t,e),t},TFe=(r,e)=>{let t=new b0(r);return sN(t,e),t}});var oN=w((Zot,Y7)=>{"use strict";var LFe=Xf(),M7=A0(),_n=J("fs"),O7=fh(),K7=B0(),U7=J("path"),H7=ih();Y7.exports=(r,e,t)=>{let i=LFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?MFe(i,e):KFe(i,e,t)};var MFe=(r,e)=>{let t=new M7.Sync(r),i=!0,n,s;try{try{n=_n.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=_n.openSync(r.file,"w+");else throw l}let o=_n.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,OFe(r,t,s,n,e)}finally{if(i)try{_n.closeSync(n)}catch{}}},OFe=(r,e,t,i,n)=>{let s=new O7.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),UFe(e,n)},KFe=(r,e,t)=>{e=Array.from(e);let i=new M7(r),n=(o,a,l)=>{let c=(p,C)=>{p?_n.close(o,y=>l(p)):l(null,C)},u=0;if(a===0)return c(null,0);let g=0,f=Buffer.alloc(512),h=(p,C)=>{if(p)return c(p);if(g+=C,g<512&&C)return _n.read(o,f,g,f.length-g,u+g,h);if(u===0&&f[0]===31&&f[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new H7(f);if(!y.cksumValid)return c(null,u);let B=512*Math.ceil(y.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,_n.read(o,f,0,512,u,h)};_n.read(o,f,0,512,u,h)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",_n.open(r.file,l,c);if(u)return a(u);_n.fstat(g,(f,h)=>{if(f)return _n.close(g,()=>a(f));n(g,h.size,(p,C)=>{if(p)return a(p);let y=new O7.WriteStream(r.file,{fd:g,start:C});i.pipe(y),y.on("error",a),y.on("close",o),G7(i,e)})})};_n.open(r.file,l,c)});return t?s.then(t,t):s},UFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?K7({file:U7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},G7=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return K7({file:U7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>G7(r,e));r.add(t)}r.end()}});var q7=w((_ot,j7)=>{"use strict";var HFe=Xf(),GFe=oN();j7.exports=(r,e,t)=>{let i=HFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),YFe(i),GFe(i,e,t)};var YFe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var z7=w(($ot,W7)=>{var{promisify:J7}=J("util"),gl=J("fs"),jFe=r=>{if(!r)r={mode:511,fs:gl};else if(typeof r=="object")r={mode:511,fs:gl,...r};else if(typeof r=="number")r={mode:r,fs:gl};else if(typeof r=="string")r={mode:parseInt(r,8),fs:gl};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||gl.mkdir,r.mkdirAsync=J7(r.mkdir),r.stat=r.stat||r.fs.stat||gl.stat,r.statAsync=J7(r.stat),r.statSync=r.statSync||r.fs.statSync||gl.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||gl.mkdirSync,r};W7.exports=jFe});var X7=w((eat,V7)=>{var qFe=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,{resolve:JFe,parse:WFe}=J("path"),zFe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=JFe(r),qFe==="win32"){let e=/[*|"<>?:]/,{root:t}=WFe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};V7.exports=zFe});var tX=w((tat,eX)=>{var{dirname:Z7}=J("path"),_7=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?_7(r,Z7(e),e):void 0),$7=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?$7(r,Z7(e),e):void 0}};eX.exports={findMade:_7,findMadeSync:$7}});var lN=w((rat,iX)=>{var{dirname:rX}=J("path"),aN=(r,e,t)=>{e.recursive=!1;let i=rX(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return aN(i,e).then(s=>aN(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},AN=(r,e,t)=>{let i=rX(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return AN(r,e,AN(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};iX.exports={mkdirpManual:aN,mkdirpManualSync:AN}});var oX=w((iat,sX)=>{var{dirname:nX}=J("path"),{findMade:VFe,findMadeSync:XFe}=tX(),{mkdirpManual:ZFe,mkdirpManualSync:_Fe}=lN(),$Fe=(r,e)=>(e.recursive=!0,nX(r)===r?e.mkdirAsync(r,e):VFe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return ZFe(r,e);throw n}))),eNe=(r,e)=>{if(e.recursive=!0,nX(r)===r)return e.mkdirSync(r,e);let i=XFe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return _Fe(r,e);throw n}};sX.exports={mkdirpNative:$Fe,mkdirpNativeSync:eNe}});var cX=w((nat,lX)=>{var aX=J("fs"),tNe=process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version,cN=tNe.replace(/^v/,"").split("."),AX=+cN[0]>10||+cN[0]==10&&+cN[1]>=12,rNe=AX?r=>r.mkdir===aX.mkdir:()=>!1,iNe=AX?r=>r.mkdirSync===aX.mkdirSync:()=>!1;lX.exports={useNative:rNe,useNativeSync:iNe}});var dX=w((sat,pX)=>{var ph=z7(),dh=X7(),{mkdirpNative:uX,mkdirpNativeSync:gX}=oX(),{mkdirpManual:fX,mkdirpManualSync:hX}=lN(),{useNative:nNe,useNativeSync:sNe}=cX(),Ch=(r,e)=>(r=dh(r),e=ph(e),nNe(e)?uX(r,e):fX(r,e)),oNe=(r,e)=>(r=dh(r),e=ph(e),sNe(e)?gX(r,e):hX(r,e));Ch.sync=oNe;Ch.native=(r,e)=>uX(dh(r),ph(e));Ch.manual=(r,e)=>fX(dh(r),ph(e));Ch.nativeSync=(r,e)=>gX(dh(r),ph(e));Ch.manualSync=(r,e)=>hX(dh(r),ph(e));pX.exports=Ch});var BX=w((oat,wX)=>{"use strict";var Ds=J("fs"),Xc=J("path"),aNe=Ds.lchown?"lchown":"chown",ANe=Ds.lchownSync?"lchownSync":"chownSync",mX=Ds.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),CX=(r,e,t)=>{try{return Ds[ANe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},lNe=(r,e,t)=>{try{return Ds.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},cNe=mX?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):Ds.chown(r,e,t,i)}:(r,e,t,i)=>i,uN=mX?(r,e,t)=>{try{return CX(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;lNe(r,e,t)}}:(r,e,t)=>CX(r,e,t),uNe=process.version,EX=(r,e,t)=>Ds.readdir(r,e,t),gNe=(r,e)=>Ds.readdirSync(r,e);/^v4\./.test(uNe)&&(EX=(r,e,t)=>Ds.readdir(r,t));var Q0=(r,e,t,i)=>{Ds[aNe](r,e,t,cNe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},IX=(r,e,t,i,n)=>{if(typeof e=="string")return Ds.lstat(Xc.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,IX(r,o,t,i,n)});if(e.isDirectory())gN(Xc.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=Xc.resolve(r,e.name);Q0(o,t,i,n)});else{let s=Xc.resolve(r,e.name);Q0(s,t,i,n)}},gN=(r,e,t,i)=>{EX(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return Q0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return Q0(r,e,t,i)}};s.forEach(c=>IX(r,c,e,t,l))})},fNe=(r,e,t,i)=>{if(typeof e=="string")try{let n=Ds.lstatSync(Xc.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&yX(Xc.resolve(r,e.name),t,i),uN(Xc.resolve(r,e.name),t,i)},yX=(r,e,t)=>{let i;try{i=gNe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return uN(r,e,t);throw n}return i&&i.length&&i.forEach(n=>fNe(r,n,e,t)),uN(r,e,t)};wX.exports=gN;gN.sync=yX});var vX=w((aat,fN)=>{"use strict";var bX=dX(),ks=J("fs"),S0=J("path"),QX=BX(),lo=th(),v0=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},x0=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},P0=(r,e)=>r.get(lo(e)),jC=(r,e,t)=>r.set(lo(e),t),hNe=(r,e)=>{ks.stat(r,(t,i)=>{(t||!i.isDirectory())&&(t=new x0(r,t&&t.code||"ENOTDIR")),e(t)})};fN.exports=(r,e,t)=>{r=lo(r);let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,f=lo(e.cwd),h=(y,B)=>{y?t(y):(jC(g,r,!0),B&&l?QX(B,o,a,v=>h(v)):s?ks.chmod(r,n,t):t())};if(g&&P0(g,r)===!0)return h();if(r===f)return hNe(r,h);if(c)return bX(r,{mode:n}).then(y=>h(null,y),h);let C=lo(S0.relative(f,r)).split("/");D0(f,C,n,g,u,f,null,h)};var D0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=lo(S0.resolve(r+"/"+l));if(P0(i,c))return D0(c,e,t,i,n,s,o,a);ks.mkdir(c,t,SX(c,e,t,i,n,s,o,a))},SX=(r,e,t,i,n,s,o,a)=>l=>{l?ks.lstat(r,(c,u)=>{if(c)c.path=c.path&&lo(c.path),a(c);else if(u.isDirectory())D0(r,e,t,i,n,s,o,a);else if(n)ks.unlink(r,g=>{if(g)return a(g);ks.mkdir(r,t,SX(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new v0(r,r+"/"+e.join("/")));a(l)}}):(o=o||r,D0(r,e,t,i,n,s,o,a))},pNe=r=>{let e=!1,t="ENOTDIR";try{e=ks.statSync(r).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new x0(r,t)}};fN.exports.sync=(r,e)=>{r=lo(r);let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=lo(e.cwd),f=y=>{jC(u,r,!0),y&&a&&QX.sync(y,s,o),n&&ks.chmodSync(r,i)};if(u&&P0(u,r)===!0)return f();if(r===g)return pNe(g),f();if(l)return f(bX.sync(r,i));let p=lo(S0.relative(g,r)).split("/"),C=null;for(let y=p.shift(),B=g;y&&(B+="/"+y);y=p.shift())if(B=lo(S0.resolve(B)),!P0(u,B))try{ks.mkdirSync(B,i),C=C||B,jC(u,B,!0)}catch{let D=ks.lstatSync(B);if(D.isDirectory()){jC(u,B,!0);continue}else if(c){ks.unlinkSync(B),ks.mkdirSync(B,i),C=C||B,jC(u,B,!0);continue}else if(D.isSymbolicLink())return new v0(B,B+"/"+p.join("/"))}return f(C)}});var pN=w((Aat,xX)=>{var hN=Object.create(null),{hasOwnProperty:dNe}=Object.prototype;xX.exports=r=>(dNe.call(hN,r)||(hN[r]=r.normalize("NFKD")),hN[r])});var RX=w((lat,kX)=>{var PX=J("assert"),CNe=pN(),mNe=nh(),{join:DX}=J("path"),ENe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,INe=ENe==="win32";kX.exports=()=>{let r=new Map,e=new Map,t=c=>c.split("/").slice(0,-1).reduce((g,f)=>(g.length&&(f=DX(g[g.length-1],f)),g.push(f||"/"),g),[]),i=new Set,n=c=>{let u=e.get(c);if(!u)throw new Error("function does not have any path reservations");return{paths:u.paths.map(g=>r.get(g)),dirs:[...u.dirs].map(g=>r.get(g))}},s=c=>{let{paths:u,dirs:g}=n(c);return u.every(f=>f[0]===c)&&g.every(f=>f[0]instanceof Set&&f[0].has(c))},o=c=>i.has(c)||!s(c)?!1:(i.add(c),c(()=>a(c)),!0),a=c=>{if(!i.has(c))return!1;let{paths:u,dirs:g}=e.get(c),f=new Set;return u.forEach(h=>{let p=r.get(h);PX.equal(p[0],c),p.length===1?r.delete(h):(p.shift(),typeof p[0]=="function"?f.add(p[0]):p[0].forEach(C=>f.add(C)))}),g.forEach(h=>{let p=r.get(h);PX(p[0]instanceof Set),p[0].size===1&&p.length===1?r.delete(h):p[0].size===1?(p.shift(),f.add(p[0])):p[0].delete(c)}),i.delete(c),f.forEach(h=>o(h)),!0};return{check:s,reserve:(c,u)=>{c=INe?["win32 parallelization disabled"]:c.map(f=>CNe(mNe(DX(f))).toLowerCase());let g=new Set(c.map(f=>t(f)).reduce((f,h)=>f.concat(h)));return e.set(u,{dirs:g,paths:c}),c.forEach(f=>{let h=r.get(f);h?h.push(u):r.set(f,[u])}),g.forEach(f=>{let h=r.get(f);h?h[h.length-1]instanceof Set?h[h.length-1].add(u):h.push(new Set([u])):r.set(f,[new Set([u])])}),o(u)}}}});var TX=w((cat,NX)=>{var yNe=process.env.__FAKE_PLATFORM__||process.platform,wNe=yNe==="win32",BNe=global.__FAKE_TESTING_FS__||J("fs"),{O_CREAT:bNe,O_TRUNC:QNe,O_WRONLY:SNe,UV_FS_O_FILEMAP:FX=0}=BNe.constants,vNe=wNe&&!!FX,xNe=512*1024,PNe=FX|QNe|bNe|SNe;NX.exports=vNe?r=>r"w"});var bN=w((uat,VX)=>{"use strict";var DNe=J("assert"),kNe=w0(),jt=J("fs"),RNe=fh(),rA=J("path"),JX=vX(),LX=bF(),FNe=RX(),NNe=QF(),$n=th(),TNe=nh(),LNe=pN(),MX=Symbol("onEntry"),mN=Symbol("checkFs"),OX=Symbol("checkFs2"),F0=Symbol("pruneCache"),EN=Symbol("isReusable"),Rs=Symbol("makeFs"),IN=Symbol("file"),yN=Symbol("directory"),N0=Symbol("link"),KX=Symbol("symlink"),UX=Symbol("hardlink"),HX=Symbol("unsupported"),GX=Symbol("checkPath"),fl=Symbol("mkdir"),Yi=Symbol("onError"),k0=Symbol("pending"),YX=Symbol("pend"),mh=Symbol("unpend"),dN=Symbol("ended"),CN=Symbol("maybeClose"),wN=Symbol("skip"),qC=Symbol("doChown"),JC=Symbol("uid"),WC=Symbol("gid"),zC=Symbol("checkedCwd"),WX=J("crypto"),zX=TX(),MNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,VC=MNe==="win32",ONe=(r,e)=>{if(!VC)return jt.unlink(r,e);let t=r+".DELETE."+WX.randomBytes(16).toString("hex");jt.rename(r,t,i=>{if(i)return e(i);jt.unlink(t,e)})},KNe=r=>{if(!VC)return jt.unlinkSync(r);let e=r+".DELETE."+WX.randomBytes(16).toString("hex");jt.renameSync(r,e),jt.unlinkSync(e)},jX=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,qX=r=>LNe(TNe($n(r))).toLowerCase(),UNe=(r,e)=>{e=qX(e);for(let t of r.keys()){let i=qX(t);(i===e||i.indexOf(e+"/")===0)&&r.delete(t)}},HNe=r=>{for(let e of r.keys())r.delete(e)},XC=class extends kNe{constructor(e){if(e||(e={}),e.ondone=t=>{this[dN]=!0,this[CN]()},super(e),this[zC]=!1,this.reservations=FNe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[k0]=0,this[dN]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||VC,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$n(rA.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[MX](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[CN](){this[dN]&&this[k0]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[GX](e){if(this.strip){let t=$n(e.path).split("/");if(t.length=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=$n(e.path),i=t.split("/");if(i.includes("..")||VC&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[n,s]=NNe(t);n&&(e.path=s,this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t}))}if(rA.isAbsolute(e.path)?e.absolute=$n(rA.resolve(e.path)):e.absolute=$n(rA.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$n(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=rA.win32.parse(e.absolute);e.absolute=t+LX.encode(e.absolute.substr(t.length));let{root:i}=rA.win32.parse(e.path);e.path=i+LX.encode(e.path.substr(i.length))}return!0}[MX](e){if(!this[GX](e))return e.resume();switch(DNe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[mN](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[HX](e)}}[Yi](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[mh](),t.resume())}[fl](e,t,i){JX($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[qC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[JC](e){return jX(this.uid,e.uid,this.processUid)}[WC](e){return jX(this.gid,e.gid,this.processGid)}[IN](e,t){let i=e.mode&4095||this.fmode,n=new RNe.WriteStream(e.absolute,{flags:zX(e.size),mode:i,autoClose:!1});n.on("error",l=>{n.fd&&jt.close(n.fd,()=>{}),n.write=()=>!0,this[Yi](l,e),t()});let s=1,o=l=>{if(l){n.fd&&jt.close(n.fd,()=>{}),this[Yi](l,e),t();return}--s===0&&jt.close(n.fd,c=>{c?this[Yi](c,e):this[mh](),t()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,f=e.mtime;jt.futimes(u,g,f,h=>h?jt.utimes(c,g,f,p=>o(p&&h)):o())}if(this[qC](e)){s++;let g=this[JC](e),f=this[WC](e);jt.fchown(u,g,f,h=>h?jt.chown(c,g,f,p=>o(p&&h)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[Yi](l,e),t()}),e.pipe(a)),a.pipe(n)}[yN](e,t){let i=e.mode&4095||this.dmode;this[fl](e.absolute,i,n=>{if(n){this[Yi](n,e),t();return}let s=1,o=a=>{--s===0&&(t(),this[mh](),e.resume())};e.mtime&&!this.noMtime&&(s++,jt.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[qC](e)&&(s++,jt.chown(e.absolute,this[JC](e),this[WC](e),o)),o()})}[HX](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[KX](e,t){this[N0](e,e.linkpath,"symlink",t)}[UX](e,t){let i=$n(rA.resolve(this.cwd,e.linkpath));this[N0](e,i,"link",t)}[YX](){this[k0]++}[mh](){this[k0]--,this[CN]()}[wN](e){this[mh](),e.resume()}[EN](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!VC}[mN](e){this[YX]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[OX](e,i))}[F0](e){e.type==="SymbolicLink"?HNe(this.dirCache):e.type!=="Directory"&&UNe(this.dirCache,e.absolute)}[OX](e,t){this[F0](e);let i=a=>{this[F0](e),t(a)},n=()=>{this[fl](this.cwd,this.dmode,a=>{if(a){this[Yi](a,e),i();return}this[zC]=!0,s()})},s=()=>{if(e.absolute!==this.cwd){let a=$n(rA.dirname(e.absolute));if(a!==this.cwd)return this[fl](a,this.dmode,l=>{if(l){this[Yi](l,e),i();return}o()})}o()},o=()=>{jt.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[wN](e),i();return}if(a||this[EN](e,l))return this[Rs](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,u=g=>this[Rs](g,e,i);return c?jt.chmod(e.absolute,e.mode,u):u()}if(e.absolute!==this.cwd)return jt.rmdir(e.absolute,c=>this[Rs](c,e,i))}if(e.absolute===this.cwd)return this[Rs](null,e,i);ONe(e.absolute,c=>this[Rs](c,e,i))})};this[zC]?s():n()}[Rs](e,t,i){if(e){this[Yi](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[IN](t,i);case"Link":return this[UX](t,i);case"SymbolicLink":return this[KX](t,i);case"Directory":case"GNUDumpDir":return this[yN](t,i)}}[N0](e,t,i,n){jt[i](t,e.absolute,s=>{s?this[Yi](s,e):(this[mh](),e.resume()),n()})}},R0=r=>{try{return[null,r()]}catch(e){return[e,null]}},BN=class extends XC{[Rs](e,t){return super[Rs](e,t,()=>{})}[mN](e){if(this[F0](e),!this[zC]){let s=this[fl](this.cwd,this.dmode);if(s)return this[Yi](s,e);this[zC]=!0}if(e.absolute!==this.cwd){let s=$n(rA.dirname(e.absolute));if(s!==this.cwd){let o=this[fl](s,this.dmode);if(o)return this[Yi](o,e)}}let[t,i]=R0(()=>jt.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[wN](e);if(t||this[EN](e,i))return this[Rs](null,e);if(i.isDirectory()){if(e.type==="Directory"){let o=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=o?R0(()=>{jt.chmodSync(e.absolute,e.mode)}):[];return this[Rs](a,e)}let[s]=R0(()=>jt.rmdirSync(e.absolute));this[Rs](s,e)}let[n]=e.absolute===this.cwd?[]:R0(()=>KNe(e.absolute));this[Rs](n,e)}[IN](e,t){let i=e.mode&4095||this.fmode,n=a=>{let l;try{jt.closeSync(s)}catch(c){l=c}(a||l)&&this[Yi](a||l,e),t()},s;try{s=jt.openSync(e.absolute,zX(e.size),i)}catch(a){return n(a)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",a=>this[Yi](a,e)),e.pipe(o)),o.on("data",a=>{try{jt.writeSync(s,a,0,a.length)}catch(l){n(l)}}),o.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,u=e.mtime;try{jt.futimesSync(s,c,u)}catch(g){try{jt.utimesSync(e.absolute,c,u)}catch{l=g}}}if(this[qC](e)){let c=this[JC](e),u=this[WC](e);try{jt.fchownSync(s,c,u)}catch(g){try{jt.chownSync(e.absolute,c,u)}catch{l=l||g}}}n(l)})}[yN](e,t){let i=e.mode&4095||this.dmode,n=this[fl](e.absolute,i);if(n){this[Yi](n,e),t();return}if(e.mtime&&!this.noMtime)try{jt.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[qC](e))try{jt.chownSync(e.absolute,this[JC](e),this[WC](e))}catch{}t(),e.resume()}[fl](e,t){try{return JX.sync($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[N0](e,t,i,n){try{jt[i+"Sync"](t,e.absolute),n(),e.resume()}catch(s){return this[Yi](s,e)}}};XC.Sync=BN;VX.exports=XC});var eZ=w((gat,$X)=>{"use strict";var GNe=Xf(),T0=bN(),ZX=J("fs"),_X=fh(),XX=J("path"),QN=nh();$X.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=GNe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&YNe(i,e),i.file&&i.sync?jNe(i):i.file?qNe(i,t):i.sync?JNe(i):WNe(i)};var YNe=(r,e)=>{let t=new Map(e.map(s=>[QN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||XX.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(XX.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(QN(s)):s=>n(QN(s))},jNe=r=>{let e=new T0.Sync(r),t=r.file,i=ZX.statSync(t),n=r.maxReadSize||16*1024*1024;new _X.ReadStreamSync(t,{readSize:n,size:i.size}).pipe(e)},qNe=(r,e)=>{let t=new T0(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),ZX.stat(n,(l,c)=>{if(l)a(l);else{let u=new _X.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},JNe=r=>new T0.Sync(r),WNe=r=>new T0(r)});var tZ=w(ci=>{"use strict";ci.c=ci.create=L7();ci.r=ci.replace=oN();ci.t=ci.list=B0();ci.u=ci.update=q7();ci.x=ci.extract=eZ();ci.Pack=A0();ci.Unpack=bN();ci.Parse=w0();ci.ReadEntry=qB();ci.WriteEntry=TF();ci.Header=ih();ci.Pax=WB();ci.types=CF()});var sZ=w((pat,nZ)=>{var SN;nZ.exports.getContent=()=>(typeof SN>"u"&&(SN=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),SN)});var uZ=w((vN,cZ)=>{(function(r,e){typeof vN=="object"?cZ.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(vN,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",f=0,h,p,C=a.slice(0);if(C.push([s,o])&&a.length>0&&(a.forEach(function(B,v){v>0&&(g+=(B[1]?" ":"\u2502")+" "),!p&&B[0]===s&&(p=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),p&&(g+=" (circular ref.)"),u(g)),!p&&typeof s=="object"){var y=e(s,c);y.forEach(function(B){h=++f===y.length,t(B,s[B],h,C,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` -`}),a},i})});var K0=w((Oat,yZ)=>{var uTe=vs(),gTe=gC(),fTe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,hTe=/^\w*$/;function pTe(r,e){if(uTe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||gTe(r)?!0:hTe.test(r)||!fTe.test(r)||e!=null&&r in Object(e)}yZ.exports=pTe});var U0=w((Kat,wZ)=>{var dTe=Fc(),CTe=vn(),mTe="[object AsyncFunction]",ETe="[object Function]",ITe="[object GeneratorFunction]",yTe="[object Proxy]";function wTe(r){if(!CTe(r))return!1;var e=dTe(r);return e==ETe||e==ITe||e==mTe||e==yTe}wZ.exports=wTe});var bZ=w((Uat,BZ)=>{var BTe=ys(),bTe=BTe["__core-js_shared__"];BZ.exports=bTe});var vZ=w((Hat,SZ)=>{var TN=bZ(),QZ=function(){var r=/[^.]+$/.exec(TN&&TN.keys&&TN.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function QTe(r){return!!QZ&&QZ in r}SZ.exports=QTe});var LN=w((Gat,xZ)=>{var STe=Function.prototype,vTe=STe.toString;function xTe(r){if(r!=null){try{return vTe.call(r)}catch{}try{return r+""}catch{}}return""}xZ.exports=xTe});var DZ=w((Yat,PZ)=>{var PTe=U0(),DTe=vZ(),kTe=vn(),RTe=LN(),FTe=/[\\^$.*+?()[\]{}|]/g,NTe=/^\[object .+?Constructor\]$/,TTe=Function.prototype,LTe=Object.prototype,MTe=TTe.toString,OTe=LTe.hasOwnProperty,KTe=RegExp("^"+MTe.call(OTe).replace(FTe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function UTe(r){if(!kTe(r)||DTe(r))return!1;var e=PTe(r)?KTe:NTe;return e.test(RTe(r))}PZ.exports=UTe});var RZ=w((jat,kZ)=>{function HTe(r,e){return r==null?void 0:r[e]}kZ.exports=HTe});var pl=w((qat,FZ)=>{var GTe=DZ(),YTe=RZ();function jTe(r,e){var t=YTe(r,e);return GTe(t)?t:void 0}FZ.exports=jTe});var _C=w((Jat,NZ)=>{var qTe=pl(),JTe=qTe(Object,"create");NZ.exports=JTe});var MZ=w((Wat,LZ)=>{var TZ=_C();function WTe(){this.__data__=TZ?TZ(null):{},this.size=0}LZ.exports=WTe});var KZ=w((zat,OZ)=>{function zTe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}OZ.exports=zTe});var HZ=w((Vat,UZ)=>{var VTe=_C(),XTe="__lodash_hash_undefined__",ZTe=Object.prototype,_Te=ZTe.hasOwnProperty;function $Te(r){var e=this.__data__;if(VTe){var t=e[r];return t===XTe?void 0:t}return _Te.call(e,r)?e[r]:void 0}UZ.exports=$Te});var YZ=w((Xat,GZ)=>{var eLe=_C(),tLe=Object.prototype,rLe=tLe.hasOwnProperty;function iLe(r){var e=this.__data__;return eLe?e[r]!==void 0:rLe.call(e,r)}GZ.exports=iLe});var qZ=w((Zat,jZ)=>{var nLe=_C(),sLe="__lodash_hash_undefined__";function oLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=nLe&&e===void 0?sLe:e,this}jZ.exports=oLe});var WZ=w((_at,JZ)=>{var aLe=MZ(),ALe=KZ(),lLe=HZ(),cLe=YZ(),uLe=qZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{function gLe(){this.__data__=[],this.size=0}zZ.exports=gLe});var Ih=w((eAt,XZ)=>{function fLe(r,e){return r===e||r!==r&&e!==e}XZ.exports=fLe});var $C=w((tAt,ZZ)=>{var hLe=Ih();function pLe(r,e){for(var t=r.length;t--;)if(hLe(r[t][0],e))return t;return-1}ZZ.exports=pLe});var $Z=w((rAt,_Z)=>{var dLe=$C(),CLe=Array.prototype,mLe=CLe.splice;function ELe(r){var e=this.__data__,t=dLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():mLe.call(e,t,1),--this.size,!0}_Z.exports=ELe});var t_=w((iAt,e_)=>{var ILe=$C();function yLe(r){var e=this.__data__,t=ILe(e,r);return t<0?void 0:e[t][1]}e_.exports=yLe});var i_=w((nAt,r_)=>{var wLe=$C();function BLe(r){return wLe(this.__data__,r)>-1}r_.exports=BLe});var s_=w((sAt,n_)=>{var bLe=$C();function QLe(r,e){var t=this.__data__,i=bLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}n_.exports=QLe});var em=w((oAt,o_)=>{var SLe=VZ(),vLe=$Z(),xLe=t_(),PLe=i_(),DLe=s_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var kLe=pl(),RLe=ys(),FLe=kLe(RLe,"Map");a_.exports=FLe});var c_=w((AAt,l_)=>{var A_=WZ(),NLe=em(),TLe=H0();function LLe(){this.size=0,this.__data__={hash:new A_,map:new(TLe||NLe),string:new A_}}l_.exports=LLe});var g_=w((lAt,u_)=>{function MLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}u_.exports=MLe});var tm=w((cAt,f_)=>{var OLe=g_();function KLe(r,e){var t=r.__data__;return OLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}f_.exports=KLe});var p_=w((uAt,h_)=>{var ULe=tm();function HLe(r){var e=ULe(this,r).delete(r);return this.size-=e?1:0,e}h_.exports=HLe});var C_=w((gAt,d_)=>{var GLe=tm();function YLe(r){return GLe(this,r).get(r)}d_.exports=YLe});var E_=w((fAt,m_)=>{var jLe=tm();function qLe(r){return jLe(this,r).has(r)}m_.exports=qLe});var y_=w((hAt,I_)=>{var JLe=tm();function WLe(r,e){var t=JLe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}I_.exports=WLe});var G0=w((pAt,w_)=>{var zLe=c_(),VLe=p_(),XLe=C_(),ZLe=E_(),_Le=y_();function wh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var B_=G0(),$Le="Expected a function";function MN(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError($Le);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(MN.Cache||B_),t}MN.Cache=B_;b_.exports=MN});var v_=w((CAt,S_)=>{var eMe=Q_(),tMe=500;function rMe(r){var e=eMe(r,function(i){return t.size===tMe&&t.clear(),i}),t=e.cache;return e}S_.exports=rMe});var P_=w((mAt,x_)=>{var iMe=v_(),nMe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,sMe=/\\(\\)?/g,oMe=iMe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(nMe,function(t,i,n,s){e.push(n?s.replace(sMe,"$1"):i||t)}),e});x_.exports=oMe});var Bh=w((EAt,D_)=>{var aMe=vs(),AMe=K0(),lMe=P_(),cMe=Vf();function uMe(r,e){return aMe(r)?r:AMe(r,e)?[r]:lMe(cMe(r))}D_.exports=uMe});var Zc=w((IAt,k_)=>{var gMe=gC(),fMe=1/0;function hMe(r){if(typeof r=="string"||gMe(r))return r;var e=r+"";return e=="0"&&1/r==-fMe?"-0":e}k_.exports=hMe});var rm=w((yAt,R_)=>{var pMe=Bh(),dMe=Zc();function CMe(r,e){e=pMe(e,r);for(var t=0,i=e.length;r!=null&&t{var mMe=pl(),EMe=function(){try{var r=mMe(Object,"defineProperty");return r({},"",{}),r}catch{}}();F_.exports=EMe});var bh=w((BAt,T_)=>{var N_=ON();function IMe(r,e,t){e=="__proto__"&&N_?N_(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}T_.exports=IMe});var Y0=w((bAt,L_)=>{var yMe=bh(),wMe=Ih(),BMe=Object.prototype,bMe=BMe.hasOwnProperty;function QMe(r,e,t){var i=r[e];(!(bMe.call(r,e)&&wMe(i,t))||t===void 0&&!(e in r))&&yMe(r,e,t)}L_.exports=QMe});var im=w((QAt,M_)=>{var SMe=9007199254740991,vMe=/^(?:0|[1-9]\d*)$/;function xMe(r,e){var t=typeof r;return e=e==null?SMe:e,!!e&&(t=="number"||t!="symbol"&&vMe.test(r))&&r>-1&&r%1==0&&r{var PMe=Y0(),DMe=Bh(),kMe=im(),O_=vn(),RMe=Zc();function FMe(r,e,t,i){if(!O_(r))return r;e=DMe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n{var NMe=rm(),TMe=KN(),LMe=Bh();function MMe(r,e,t){for(var i=-1,n=e.length,s={};++i{function OMe(r,e){return r!=null&&e in Object(r)}G_.exports=OMe});var q_=w((PAt,j_)=>{var KMe=Fc(),UMe=Jo(),HMe="[object Arguments]";function GMe(r){return UMe(r)&&KMe(r)==HMe}j_.exports=GMe});var nm=w((DAt,z_)=>{var J_=q_(),YMe=Jo(),W_=Object.prototype,jMe=W_.hasOwnProperty,qMe=W_.propertyIsEnumerable,JMe=J_(function(){return arguments}())?J_:function(r){return YMe(r)&&jMe.call(r,"callee")&&!qMe.call(r,"callee")};z_.exports=JMe});var j0=w((kAt,V_)=>{var WMe=9007199254740991;function zMe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=WMe}V_.exports=zMe});var UN=w((RAt,X_)=>{var VMe=Bh(),XMe=nm(),ZMe=vs(),_Me=im(),$Me=j0(),eOe=Zc();function tOe(r,e,t){e=VMe(e,r);for(var i=-1,n=e.length,s=!1;++i{var rOe=Y_(),iOe=UN();function nOe(r,e){return r!=null&&iOe(r,e,rOe)}Z_.exports=nOe});var $_=w((NAt,__)=>{var sOe=H_(),oOe=HN();function aOe(r,e){return sOe(r,e,function(t,i){return oOe(r,i)})}__.exports=aOe});var q0=w((TAt,e$)=>{function AOe(r,e){for(var t=-1,i=e.length,n=r.length;++t{var t$=Rc(),lOe=nm(),cOe=vs(),r$=t$?t$.isConcatSpreadable:void 0;function uOe(r){return cOe(r)||lOe(r)||!!(r$&&r&&r[r$])}i$.exports=uOe});var a$=w((MAt,o$)=>{var gOe=q0(),fOe=n$();function s$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=fOe),n||(n=[]);++s0&&t(a)?e>1?s$(a,e-1,t,i,n):gOe(n,a):i||(n[n.length]=a)}return n}o$.exports=s$});var l$=w((OAt,A$)=>{var hOe=a$();function pOe(r){var e=r==null?0:r.length;return e?hOe(r,1):[]}A$.exports=pOe});var u$=w((KAt,c$)=>{function dOe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}c$.exports=dOe});var GN=w((UAt,f$)=>{var COe=u$(),g$=Math.max;function mOe(r,e,t){return e=g$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=g$(i.length-e,0),o=Array(s);++n{function EOe(r){return function(){return r}}h$.exports=EOe});var J0=w((GAt,d$)=>{function IOe(r){return r}d$.exports=IOe});var E$=w((YAt,m$)=>{var yOe=p$(),C$=ON(),wOe=J0(),BOe=C$?function(r,e){return C$(r,"toString",{configurable:!0,enumerable:!1,value:yOe(e),writable:!0})}:wOe;m$.exports=BOe});var y$=w((jAt,I$)=>{var bOe=800,QOe=16,SOe=Date.now;function vOe(r){var e=0,t=0;return function(){var i=SOe(),n=QOe-(i-t);if(t=i,n>0){if(++e>=bOe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}I$.exports=vOe});var YN=w((qAt,w$)=>{var xOe=E$(),POe=y$(),DOe=POe(xOe);w$.exports=DOe});var b$=w((JAt,B$)=>{var kOe=l$(),ROe=GN(),FOe=YN();function NOe(r){return FOe(ROe(r,void 0,kOe),r+"")}B$.exports=NOe});var S$=w((WAt,Q$)=>{var TOe=$_(),LOe=b$(),MOe=LOe(function(r,e){return r==null?{}:TOe(r,e)});Q$.exports=MOe});var M$=w((dct,L$)=>{"use strict";var XN;try{XN=Map}catch{}var ZN;try{ZN=Set}catch{}function N$(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(T$);if(XN&&r instanceof XN)return new Map(Array.from(r.entries()));if(ZN&&r instanceof ZN)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:N$(r[n],e,t)}return i}return r}function T$(r){return N$(r,[],[])}L$.exports=T$});var om=w(_N=>{"use strict";Object.defineProperty(_N,"__esModule",{value:!0});_N.default=_Oe;var JOe=Object.prototype.toString,WOe=Error.prototype.toString,zOe=RegExp.prototype.toString,VOe=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",XOe=/^Symbol\((.*)\)(.*)$/;function ZOe(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function O$(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return ZOe(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return VOe.call(r).replace(XOe,"Symbol($1)");let i=JOe.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+WOe.call(r)+"]":i==="RegExp"?zOe.call(r):null}function _Oe(r,e){let t=O$(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=O$(this[i],e);return s!==null?s:n},2)}});var nA=w(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.default=Ei.array=Ei.object=Ei.boolean=Ei.date=Ei.number=Ei.string=Ei.mixed=void 0;var K$=$Oe(om());function $Oe(r){return r&&r.__esModule?r:{default:r}}var U$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,K$.default)(t,!0)}\``+(n?` (cast from the value \`${(0,K$.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};Ei.mixed=U$;var H$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};Ei.string=H$;var G$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};Ei.number=G$;var Y$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ei.date=Y$;var j$={isValue:"${path} field must be ${value}"};Ei.boolean=j$;var q$={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ei.object=q$;var J$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Ei.array=J$;var e1e=Object.assign(Object.create(null),{mixed:U$,string:H$,number:G$,date:Y$,object:q$,array:J$,boolean:j$});Ei.default=e1e});var z$=w((Ect,W$)=>{var t1e=Object.prototype,r1e=t1e.hasOwnProperty;function i1e(r,e){return r!=null&&r1e.call(r,e)}W$.exports=i1e});var am=w((Ict,V$)=>{var n1e=z$(),s1e=UN();function o1e(r,e){return r!=null&&s1e(r,e,n1e)}V$.exports=o1e});var xh=w(eb=>{"use strict";Object.defineProperty(eb,"__esModule",{value:!0});eb.default=void 0;var a1e=r=>r&&r.__isYupSchema__;eb.default=a1e});var Z$=w(tb=>{"use strict";Object.defineProperty(tb,"__esModule",{value:!0});tb.default=void 0;var A1e=X$(am()),l1e=X$(xh());function X$(r){return r&&r.__esModule?r:{default:r}}var $N=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,A1e.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,l1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},c1e=$N;tb.default=c1e});var tT=w(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.default=u1e;function u1e(r){return r==null?[]:[].concat(r)}});var _c=w(rb=>{"use strict";Object.defineProperty(rb,"__esModule",{value:!0});rb.default=void 0;var g1e=_$(om()),f1e=_$(tT());function _$(r){return r&&r.__esModule?r:{default:r}}function rT(){return rT=Object.assign||function(r){for(var e=1;e(0,g1e.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super(),this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,f1e.default)(e).forEach(s=>{Ph.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Ph)}};rb.default=Ph});var ib=w(nT=>{"use strict";Object.defineProperty(nT,"__esModule",{value:!0});nT.default=C1e;var iT=p1e(_c());function p1e(r){return r&&r.__esModule?r:{default:r}}var d1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function C1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=d1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new iT.default(o,s,l)):c(null,s);for(let f=0;f{function m1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}$$.exports=m1e});var sT=w((vct,tee)=>{var E1e=eee(),I1e=E1e();tee.exports=I1e});var iee=w((xct,ree)=>{function y1e(r,e){for(var t=-1,i=Array(r);++t{function w1e(){return!1}nee.exports=w1e});var lm=w((Am,Dh)=>{var B1e=ys(),b1e=see(),Aee=typeof Am=="object"&&Am&&!Am.nodeType&&Am,oee=Aee&&typeof Dh=="object"&&Dh&&!Dh.nodeType&&Dh,Q1e=oee&&oee.exports===Aee,aee=Q1e?B1e.Buffer:void 0,S1e=aee?aee.isBuffer:void 0,v1e=S1e||b1e;Dh.exports=v1e});var cee=w((Dct,lee)=>{var x1e=Fc(),P1e=j0(),D1e=Jo(),k1e="[object Arguments]",R1e="[object Array]",F1e="[object Boolean]",N1e="[object Date]",T1e="[object Error]",L1e="[object Function]",M1e="[object Map]",O1e="[object Number]",K1e="[object Object]",U1e="[object RegExp]",H1e="[object Set]",G1e="[object String]",Y1e="[object WeakMap]",j1e="[object ArrayBuffer]",q1e="[object DataView]",J1e="[object Float32Array]",W1e="[object Float64Array]",z1e="[object Int8Array]",V1e="[object Int16Array]",X1e="[object Int32Array]",Z1e="[object Uint8Array]",_1e="[object Uint8ClampedArray]",$1e="[object Uint16Array]",eKe="[object Uint32Array]",Ir={};Ir[J1e]=Ir[W1e]=Ir[z1e]=Ir[V1e]=Ir[X1e]=Ir[Z1e]=Ir[_1e]=Ir[$1e]=Ir[eKe]=!0;Ir[k1e]=Ir[R1e]=Ir[j1e]=Ir[F1e]=Ir[q1e]=Ir[N1e]=Ir[T1e]=Ir[L1e]=Ir[M1e]=Ir[O1e]=Ir[K1e]=Ir[U1e]=Ir[H1e]=Ir[G1e]=Ir[Y1e]=!1;function tKe(r){return D1e(r)&&P1e(r.length)&&!!Ir[x1e(r)]}lee.exports=tKe});var nb=w((kct,uee)=>{function rKe(r){return function(e){return r(e)}}uee.exports=rKe});var sb=w((cm,kh)=>{var iKe=WD(),gee=typeof cm=="object"&&cm&&!cm.nodeType&&cm,um=gee&&typeof kh=="object"&&kh&&!kh.nodeType&&kh,nKe=um&&um.exports===gee,oT=nKe&&iKe.process,sKe=function(){try{var r=um&&um.require&&um.require("util").types;return r||oT&&oT.binding&&oT.binding("util")}catch{}}();kh.exports=sKe});var ob=w((Rct,pee)=>{var oKe=cee(),aKe=nb(),fee=sb(),hee=fee&&fee.isTypedArray,AKe=hee?aKe(hee):oKe;pee.exports=AKe});var aT=w((Fct,dee)=>{var lKe=iee(),cKe=nm(),uKe=vs(),gKe=lm(),fKe=im(),hKe=ob(),pKe=Object.prototype,dKe=pKe.hasOwnProperty;function CKe(r,e){var t=uKe(r),i=!t&&cKe(r),n=!t&&!i&&gKe(r),s=!t&&!i&&!n&&hKe(r),o=t||i||n||s,a=o?lKe(r.length,String):[],l=a.length;for(var c in r)(e||dKe.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||fKe(c,l)))&&a.push(c);return a}dee.exports=CKe});var ab=w((Nct,Cee)=>{var mKe=Object.prototype;function EKe(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||mKe;return r===t}Cee.exports=EKe});var AT=w((Tct,mee)=>{function IKe(r,e){return function(t){return r(e(t))}}mee.exports=IKe});var Iee=w((Lct,Eee)=>{var yKe=AT(),wKe=yKe(Object.keys,Object);Eee.exports=wKe});var wee=w((Mct,yee)=>{var BKe=ab(),bKe=Iee(),QKe=Object.prototype,SKe=QKe.hasOwnProperty;function vKe(r){if(!BKe(r))return bKe(r);var e=[];for(var t in Object(r))SKe.call(r,t)&&t!="constructor"&&e.push(t);return e}yee.exports=vKe});var gm=w((Oct,Bee)=>{var xKe=U0(),PKe=j0();function DKe(r){return r!=null&&PKe(r.length)&&!xKe(r)}Bee.exports=DKe});var Rh=w((Kct,bee)=>{var kKe=aT(),RKe=wee(),FKe=gm();function NKe(r){return FKe(r)?kKe(r):RKe(r)}bee.exports=NKe});var lT=w((Uct,Qee)=>{var TKe=sT(),LKe=Rh();function MKe(r,e){return r&&TKe(r,e,LKe)}Qee.exports=MKe});var vee=w((Hct,See)=>{var OKe=em();function KKe(){this.__data__=new OKe,this.size=0}See.exports=KKe});var Pee=w((Gct,xee)=>{function UKe(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}xee.exports=UKe});var kee=w((Yct,Dee)=>{function HKe(r){return this.__data__.get(r)}Dee.exports=HKe});var Fee=w((jct,Ree)=>{function GKe(r){return this.__data__.has(r)}Ree.exports=GKe});var Tee=w((qct,Nee)=>{var YKe=em(),jKe=H0(),qKe=G0(),JKe=200;function WKe(r,e){var t=this.__data__;if(t instanceof YKe){var i=t.__data__;if(!jKe||i.length{var zKe=em(),VKe=vee(),XKe=Pee(),ZKe=kee(),_Ke=Fee(),$Ke=Tee();function Fh(r){var e=this.__data__=new zKe(r);this.size=e.size}Fh.prototype.clear=VKe;Fh.prototype.delete=XKe;Fh.prototype.get=ZKe;Fh.prototype.has=_Ke;Fh.prototype.set=$Ke;Lee.exports=Fh});var Oee=w((Wct,Mee)=>{var eUe="__lodash_hash_undefined__";function tUe(r){return this.__data__.set(r,eUe),this}Mee.exports=tUe});var Uee=w((zct,Kee)=>{function rUe(r){return this.__data__.has(r)}Kee.exports=rUe});var Gee=w((Vct,Hee)=>{var iUe=G0(),nUe=Oee(),sUe=Uee();function Ab(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new iUe;++e{function oUe(r,e){for(var t=-1,i=r==null?0:r.length;++t{function aUe(r,e){return r.has(e)}qee.exports=aUe});var cT=w((_ct,Wee)=>{var AUe=Gee(),lUe=jee(),cUe=Jee(),uUe=1,gUe=2;function fUe(r,e,t,i,n,s){var o=t&uUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,f=!0,h=t&gUe?new AUe:void 0;for(s.set(r,e),s.set(e,r);++g{var hUe=ys(),pUe=hUe.Uint8Array;zee.exports=pUe});var Xee=w((eut,Vee)=>{function dUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}Vee.exports=dUe});var _ee=w((tut,Zee)=>{function CUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}Zee.exports=CUe});var ite=w((rut,rte)=>{var $ee=Rc(),ete=uT(),mUe=Ih(),EUe=cT(),IUe=Xee(),yUe=_ee(),wUe=1,BUe=2,bUe="[object Boolean]",QUe="[object Date]",SUe="[object Error]",vUe="[object Map]",xUe="[object Number]",PUe="[object RegExp]",DUe="[object Set]",kUe="[object String]",RUe="[object Symbol]",FUe="[object ArrayBuffer]",NUe="[object DataView]",tte=$ee?$ee.prototype:void 0,gT=tte?tte.valueOf:void 0;function TUe(r,e,t,i,n,s,o){switch(t){case NUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case FUe:return!(r.byteLength!=e.byteLength||!s(new ete(r),new ete(e)));case bUe:case QUe:case xUe:return mUe(+r,+e);case SUe:return r.name==e.name&&r.message==e.message;case PUe:case kUe:return r==e+"";case vUe:var a=IUe;case DUe:var l=i&wUe;if(a||(a=yUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=BUe,o.set(r,e);var u=EUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case RUe:if(gT)return gT.call(r)==gT.call(e)}return!1}rte.exports=TUe});var fT=w((iut,nte)=>{var LUe=q0(),MUe=vs();function OUe(r,e,t){var i=e(r);return MUe(r)?i:LUe(i,t(r))}nte.exports=OUe});var ote=w((nut,ste)=>{function KUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t{function UUe(){return[]}ate.exports=UUe});var lb=w((out,lte)=>{var HUe=ote(),GUe=hT(),YUe=Object.prototype,jUe=YUe.propertyIsEnumerable,Ate=Object.getOwnPropertySymbols,qUe=Ate?function(r){return r==null?[]:(r=Object(r),HUe(Ate(r),function(e){return jUe.call(r,e)}))}:GUe;lte.exports=qUe});var pT=w((aut,cte)=>{var JUe=fT(),WUe=lb(),zUe=Rh();function VUe(r){return JUe(r,zUe,WUe)}cte.exports=VUe});var fte=w((Aut,gte)=>{var ute=pT(),XUe=1,ZUe=Object.prototype,_Ue=ZUe.hasOwnProperty;function $Ue(r,e,t,i,n,s){var o=t&XUe,a=ute(r),l=a.length,c=ute(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var f=a[g];if(!(o?f in e:_Ue.call(e,f)))return!1}var h=s.get(r),p=s.get(e);if(h&&p)return h==e&&p==r;var C=!0;s.set(r,e),s.set(e,r);for(var y=o;++g{var e2e=pl(),t2e=ys(),r2e=e2e(t2e,"DataView");hte.exports=r2e});var Cte=w((cut,dte)=>{var i2e=pl(),n2e=ys(),s2e=i2e(n2e,"Promise");dte.exports=s2e});var Ete=w((uut,mte)=>{var o2e=pl(),a2e=ys(),A2e=o2e(a2e,"Set");mte.exports=A2e});var yte=w((gut,Ite)=>{var l2e=pl(),c2e=ys(),u2e=l2e(c2e,"WeakMap");Ite.exports=u2e});var hm=w((fut,xte)=>{var dT=pte(),CT=H0(),mT=Cte(),ET=Ete(),IT=yte(),vte=Fc(),Nh=LN(),wte="[object Map]",g2e="[object Object]",Bte="[object Promise]",bte="[object Set]",Qte="[object WeakMap]",Ste="[object DataView]",f2e=Nh(dT),h2e=Nh(CT),p2e=Nh(mT),d2e=Nh(ET),C2e=Nh(IT),$c=vte;(dT&&$c(new dT(new ArrayBuffer(1)))!=Ste||CT&&$c(new CT)!=wte||mT&&$c(mT.resolve())!=Bte||ET&&$c(new ET)!=bte||IT&&$c(new IT)!=Qte)&&($c=function(r){var e=vte(r),t=e==g2e?r.constructor:void 0,i=t?Nh(t):"";if(i)switch(i){case f2e:return Ste;case h2e:return wte;case p2e:return Bte;case d2e:return bte;case C2e:return Qte}return e});xte.exports=$c});var Lte=w((hut,Tte)=>{var yT=fm(),m2e=cT(),E2e=ite(),I2e=fte(),Pte=hm(),Dte=vs(),kte=lm(),y2e=ob(),w2e=1,Rte="[object Arguments]",Fte="[object Array]",cb="[object Object]",B2e=Object.prototype,Nte=B2e.hasOwnProperty;function b2e(r,e,t,i,n,s){var o=Dte(r),a=Dte(e),l=o?Fte:Pte(r),c=a?Fte:Pte(e);l=l==Rte?cb:l,c=c==Rte?cb:c;var u=l==cb,g=c==cb,f=l==c;if(f&&kte(r)){if(!kte(e))return!1;o=!0,u=!1}if(f&&!u)return s||(s=new yT),o||y2e(r)?m2e(r,e,t,i,n,s):E2e(r,e,l,t,i,n,s);if(!(t&w2e)){var h=u&&Nte.call(r,"__wrapped__"),p=g&&Nte.call(e,"__wrapped__");if(h||p){var C=h?r.value():r,y=p?e.value():e;return s||(s=new yT),n(C,y,t,i,s)}}return f?(s||(s=new yT),I2e(r,e,t,i,n,s)):!1}Tte.exports=b2e});var wT=w((put,Kte)=>{var Q2e=Lte(),Mte=Jo();function Ote(r,e,t,i,n){return r===e?!0:r==null||e==null||!Mte(r)&&!Mte(e)?r!==r&&e!==e:Q2e(r,e,t,i,Ote,n)}Kte.exports=Ote});var Hte=w((dut,Ute)=>{var S2e=fm(),v2e=wT(),x2e=1,P2e=2;function D2e(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n{var k2e=vn();function R2e(r){return r===r&&!k2e(r)}Gte.exports=R2e});var jte=w((mut,Yte)=>{var F2e=BT(),N2e=Rh();function T2e(r){for(var e=N2e(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,F2e(n)]}return e}Yte.exports=T2e});var bT=w((Eut,qte)=>{function L2e(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}qte.exports=L2e});var Wte=w((Iut,Jte)=>{var M2e=Hte(),O2e=jte(),K2e=bT();function U2e(r){var e=O2e(r);return e.length==1&&e[0][2]?K2e(e[0][0],e[0][1]):function(t){return t===r||M2e(t,r,e)}}Jte.exports=U2e});var ub=w((yut,zte)=>{var H2e=rm();function G2e(r,e,t){var i=r==null?void 0:H2e(r,e);return i===void 0?t:i}zte.exports=G2e});var Xte=w((wut,Vte)=>{var Y2e=wT(),j2e=ub(),q2e=HN(),J2e=K0(),W2e=BT(),z2e=bT(),V2e=Zc(),X2e=1,Z2e=2;function _2e(r,e){return J2e(r)&&W2e(e)?z2e(V2e(r),e):function(t){var i=j2e(t,r);return i===void 0&&i===e?q2e(t,r):Y2e(e,i,X2e|Z2e)}}Vte.exports=_2e});var _te=w((But,Zte)=>{function $2e(r){return function(e){return e==null?void 0:e[r]}}Zte.exports=$2e});var ere=w((but,$te)=>{var eHe=rm();function tHe(r){return function(e){return eHe(e,r)}}$te.exports=tHe});var rre=w((Qut,tre)=>{var rHe=_te(),iHe=ere(),nHe=K0(),sHe=Zc();function oHe(r){return nHe(r)?rHe(sHe(r)):iHe(r)}tre.exports=oHe});var QT=w((Sut,ire)=>{var aHe=Wte(),AHe=Xte(),lHe=J0(),cHe=vs(),uHe=rre();function gHe(r){return typeof r=="function"?r:r==null?lHe:typeof r=="object"?cHe(r)?AHe(r[0],r[1]):aHe(r):uHe(r)}ire.exports=gHe});var ST=w((vut,nre)=>{var fHe=bh(),hHe=lT(),pHe=QT();function dHe(r,e){var t={};return e=pHe(e,3),hHe(r,function(i,n,s){fHe(t,n,e(i,n,s))}),t}nre.exports=dHe});var pm=w((xut,lre)=>{"use strict";function eu(r){this._maxSize=r,this.clear()}eu.prototype.clear=function(){this._size=0,this._values=Object.create(null)};eu.prototype.get=function(r){return this._values[r]};eu.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var CHe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Are=/^\d+$/,mHe=/^\d/,EHe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,IHe=/^\s*(['"]?)(.*?)(\1)\s*$/,PT=512,sre=new eu(PT),ore=new eu(PT),are=new eu(PT);lre.exports={Cache:eu,split:xT,normalizePath:vT,setter:function(r){var e=vT(r);return ore.get(r)||ore.set(r,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(Cm,"__esModule",{value:!0});Cm.create=SHe;Cm.default=void 0;var QHe=pm(),gb={context:"$",value:"."};function SHe(r,e){return new dm(r,e)}var dm=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===gb.context,this.isValue=this.key[0]===gb.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?gb.context:this.isValue?gb.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,QHe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Cm.default=dm;dm.prototype.__isYupRef=!0});var cre=w(RT=>{"use strict";Object.defineProperty(RT,"__esModule",{value:!0});RT.default=DHe;var vHe=kT(ST()),fb=kT(_c()),xHe=kT(tu());function kT(r){return r&&r.__esModule?r:{default:r}}function hb(){return hb=Object.assign||function(r){for(var e=1;e=0)&&(t[n]=r[n]);return t}function DHe(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=PHe(t,["value","path","label","options","originalValue","sync"]),{name:g,test:f,params:h,message:p}=r,{parent:C,context:y}=a;function B(j){return xHe.default.isRef(j)?j.getValue(n,C,y):j}function v(j={}){let $=(0,vHe.default)(hb({value:n,originalValue:l,label:o,path:j.path||s},h,j.params),B),V=new fb.default(fb.default.formatError(j.message||p,$),n,$.path,j.type||g);return V.params=$,V}let D=hb({path:s,parent:C,type:g,createError:v,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(f.call(D,n,D)).then(j=>{fb.default.isError(j)?i(j):j?i(null,j):i(v())})}catch(j){i(j)}return}let T;try{var H;if(T=f.call(D,n,D),typeof((H=T)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${D.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(j){i(j);return}fb.default.isError(T)?i(T):T?i(null,T):i(v())}return e.OPTIONS=r,e}});var FT=w(mm=>{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.getIn=ure;mm.default=void 0;var kHe=pm(),RHe=r=>r.substr(0,r.length-1).substr(1);function ure(r,e,t,i=t){let n,s,o;return e?((0,kHe.forEach)(e,(a,l,c)=>{let u=l?RHe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var FHe=(r,e,t,i)=>ure(r,e,t,i).schema,NHe=FHe;mm.default=NHe});var fre=w(pb=>{"use strict";Object.defineProperty(pb,"__esModule",{value:!0});pb.default=void 0;var gre=THe(tu());function THe(r){return r&&r.__esModule?r:{default:r}}var Em=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){gre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){gre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Em;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};pb.default=Em});var oA=w(Cb=>{"use strict";Object.defineProperty(Cb,"__esModule",{value:!0});Cb.default=void 0;var hre=sA(M$()),Th=nA(),LHe=sA(Z$()),pre=sA(ib()),db=sA(cre()),dre=sA(om()),MHe=sA(tu()),OHe=FT(),KHe=sA(tT()),Cre=sA(_c()),mre=sA(fre());function sA(r){return r&&r.__esModule?r:{default:r}}function Fs(){return Fs=Object.assign||function(r){for(var e=1;e{this.typeError(Th.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Fs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Fs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,hre.default)(Fs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Fs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Fs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,dre.default)(e),o=(0,dre.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". +`));if(!E)return null;d.input=yA(E,!0)}return d.input.shift()},put_char:function(d,E){E===null||E===10?(v(ke(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(v(ke(d.output,0)),d.output=[])}},default_tty1_ops:{put_char:function(d,E){E===null||E===10?(D(ke(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(D(ke(d.output,0)),d.output=[])}}};function ss(d){for(var E=H(d,65536),I=dt(E);d=E)){var k=1024*1024;E=Math.max(E,I*(I>>0),I!=0&&(E=Math.max(E,256));var L=d.contents;d.contents=new Uint8Array(E),d.usedBytes>0&&d.contents.set(L.subarray(0,d.usedBytes),0)}},resizeFileStorage:function(d,E){if(d.usedBytes!=E)if(E==0)d.contents=null,d.usedBytes=0;else{var I=d.contents;d.contents=new Uint8Array(E),I&&d.contents.set(I.subarray(0,Math.min(E,d.usedBytes))),d.usedBytes=E}},node_ops:{getattr:function(d){var E={};return E.dev=S.isChrdev(d.mode)?d.id:1,E.ino=d.id,E.mode=d.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=d.rdev,S.isDir(d.mode)?E.size=4096:S.isFile(d.mode)?E.size=d.usedBytes:S.isLink(d.mode)?E.size=d.link.length:E.size=0,E.atime=new Date(d.timestamp),E.mtime=new Date(d.timestamp),E.ctime=new Date(d.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(d,E){E.mode!==void 0&&(d.mode=E.mode),E.timestamp!==void 0&&(d.timestamp=E.timestamp),E.size!==void 0&>.resizeFileStorage(d,E.size)},lookup:function(d,E){throw S.genericErrors[44]},mknod:function(d,E,I,k){return gt.createNode(d,E,I,k)},rename:function(d,E,I){if(S.isDir(d.mode)){var k;try{k=S.lookupNode(E,I)}catch{}if(k)for(var L in k.contents)throw new S.ErrnoError(55)}delete d.parent.contents[d.name],d.parent.timestamp=Date.now(),d.name=I,E.contents[I]=d,E.timestamp=d.parent.timestamp,d.parent=E},unlink:function(d,E){delete d.contents[E],d.timestamp=Date.now()},rmdir:function(d,E){var I=S.lookupNode(d,E);for(var k in I.contents)throw new S.ErrnoError(55);delete d.contents[E],d.timestamp=Date.now()},readdir:function(d){var E=[".",".."];for(var I in d.contents)!d.contents.hasOwnProperty(I)||E.push(I);return E},symlink:function(d,E,I){var k=gt.createNode(d,E,41471,0);return k.link=I,k},readlink:function(d){if(!S.isLink(d.mode))throw new S.ErrnoError(28);return d.link}},stream_ops:{read:function(d,E,I,k,L){var Z=d.node.contents;if(L>=d.node.usedBytes)return 0;var te=Math.min(d.node.usedBytes-L,k);if(te>8&&Z.subarray)E.set(Z.subarray(L,L+te),I);else for(var we=0;we0||k+I>2)}catch(I){throw I.code?new S.ErrnoError(At.convertNodeCode(I)):I}return E.mode},realPath:function(d){for(var E=[];d.parent!==d;)E.push(d.name),d=d.parent;return E.push(d.mount.opts.root),E.reverse(),bt.join.apply(null,E)},flagsForNode:function(d){d&=-2097153,d&=-2049,d&=-32769,d&=-524289;var E=0;for(var I in At.flagsForNodeMap)d&I&&(E|=At.flagsForNodeMap[I],d^=I);if(d)throw new S.ErrnoError(28);return E},node_ops:{getattr:function(d){var E=At.realPath(d),I;try{I=Le.lstatSync(E)}catch(k){throw k.code?new S.ErrnoError(At.convertNodeCode(k)):k}return At.isWindows&&!I.blksize&&(I.blksize=4096),At.isWindows&&!I.blocks&&(I.blocks=(I.size+I.blksize-1)/I.blksize|0),{dev:I.dev,ino:I.ino,mode:I.mode,nlink:I.nlink,uid:I.uid,gid:I.gid,rdev:I.rdev,size:I.size,atime:I.atime,mtime:I.mtime,ctime:I.ctime,blksize:I.blksize,blocks:I.blocks}},setattr:function(d,E){var I=At.realPath(d);try{if(E.mode!==void 0&&(Le.chmodSync(I,E.mode),d.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);Le.utimesSync(I,k,k)}E.size!==void 0&&Le.truncateSync(I,E.size)}catch(L){throw L.code?new S.ErrnoError(At.convertNodeCode(L)):L}},lookup:function(d,E){var I=bt.join2(At.realPath(d),E),k=At.getMode(I);return At.createNode(d,E,k)},mknod:function(d,E,I,k){var L=At.createNode(d,E,I,k),Z=At.realPath(L);try{S.isDir(L.mode)?Le.mkdirSync(Z,L.mode):Le.writeFileSync(Z,"",{mode:L.mode})}catch(te){throw te.code?new S.ErrnoError(At.convertNodeCode(te)):te}return L},rename:function(d,E,I){var k=At.realPath(d),L=bt.join2(At.realPath(E),I);try{Le.renameSync(k,L)}catch(Z){throw Z.code?new S.ErrnoError(At.convertNodeCode(Z)):Z}d.name=I},unlink:function(d,E){var I=bt.join2(At.realPath(d),E);try{Le.unlinkSync(I)}catch(k){throw k.code?new S.ErrnoError(At.convertNodeCode(k)):k}},rmdir:function(d,E){var I=bt.join2(At.realPath(d),E);try{Le.rmdirSync(I)}catch(k){throw k.code?new S.ErrnoError(At.convertNodeCode(k)):k}},readdir:function(d){var E=At.realPath(d);try{return Le.readdirSync(E)}catch(I){throw I.code?new S.ErrnoError(At.convertNodeCode(I)):I}},symlink:function(d,E,I){var k=bt.join2(At.realPath(d),E);try{Le.symlinkSync(I,k)}catch(L){throw L.code?new S.ErrnoError(At.convertNodeCode(L)):L}},readlink:function(d){var E=At.realPath(d);try{return E=Le.readlinkSync(E),E=dg.relative(dg.resolve(d.mount.opts.root),E),E}catch(I){throw I.code?new S.ErrnoError(At.convertNodeCode(I)):I}}},stream_ops:{open:function(d){var E=At.realPath(d.node);try{S.isFile(d.node.mode)&&(d.nfd=Le.openSync(E,At.flagsForNode(d.flags)))}catch(I){throw I.code?new S.ErrnoError(At.convertNodeCode(I)):I}},close:function(d){try{S.isFile(d.node.mode)&&d.nfd&&Le.closeSync(d.nfd)}catch(E){throw E.code?new S.ErrnoError(At.convertNodeCode(E)):E}},read:function(d,E,I,k,L){if(k===0)return 0;try{return Le.readSync(d.nfd,At.bufferFrom(E.buffer),I,k,L)}catch(Z){throw new S.ErrnoError(At.convertNodeCode(Z))}},write:function(d,E,I,k,L){try{return Le.writeSync(d.nfd,At.bufferFrom(E.buffer),I,k,L)}catch(Z){throw new S.ErrnoError(At.convertNodeCode(Z))}},llseek:function(d,E,I){var k=E;if(I===1)k+=d.position;else if(I===2&&S.isFile(d.node.mode))try{var L=Le.fstatSync(d.nfd);k+=L.size}catch(Z){throw new S.ErrnoError(At.convertNodeCode(Z))}if(k<0)throw new S.ErrnoError(28);return k},mmap:function(d,E,I,k,L,Z){if(E!==0)throw new S.ErrnoError(28);if(!S.isFile(d.node.mode))throw new S.ErrnoError(43);var te=ss(I);return At.stream_ops.read(d,ne,te,I,k),{ptr:te,allocated:!0}},msync:function(d,E,I,k,L){if(!S.isFile(d.node.mode))throw new S.ErrnoError(43);if(L&2)return 0;var Z=At.stream_ops.write(d,E,0,k,I,!1);return 0}}},ln={lookupPath:function(d){return{path:d,node:{mode:At.getMode(d)}}},createStandardStreams:function(){S.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var d=1;d<3;d++)S.streams[d]={fd:d,nfd:d,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(d,E){S.isDir(d)?Le.mkdirSync(d,E):Le.writeFileSync(d,"",{mode:E})},mkdir:function(){Le.mkdirSync.apply(void 0,arguments)},symlink:function(){Le.symlinkSync.apply(void 0,arguments)},rename:function(){Le.renameSync.apply(void 0,arguments)},rmdir:function(){Le.rmdirSync.apply(void 0,arguments)},readdir:function(){Le.readdirSync.apply(void 0,arguments)},unlink:function(){Le.unlinkSync.apply(void 0,arguments)},readlink:function(){return Le.readlinkSync.apply(void 0,arguments)},stat:function(){return Le.statSync.apply(void 0,arguments)},lstat:function(){return Le.lstatSync.apply(void 0,arguments)},chmod:function(){Le.chmodSync.apply(void 0,arguments)},fchmod:function(){Le.fchmodSync.apply(void 0,arguments)},chown:function(){Le.chownSync.apply(void 0,arguments)},fchown:function(){Le.fchownSync.apply(void 0,arguments)},truncate:function(){Le.truncateSync.apply(void 0,arguments)},ftruncate:function(d,E){if(E<0)throw new S.ErrnoError(28);Le.ftruncateSync.apply(void 0,arguments)},utime:function(){Le.utimesSync.apply(void 0,arguments)},open:function(d,E,I,k){typeof E=="string"&&(E=Hs.modeStringToFlags(E));var L=Le.openSync(d,At.flagsForNode(E),I),Z=k!=null?k:S.nextfd(L),te={fd:Z,nfd:L,position:0,path:d,flags:E,seekable:!0};return S.streams[Z]=te,te},close:function(d){d.stream_ops||Le.closeSync(d.nfd),S.closeStream(d.fd)},llseek:function(d,E,I){if(d.stream_ops)return Hs.llseek(d,E,I);var k=E;if(I===1)k+=d.position;else if(I===2)k+=Le.fstatSync(d.nfd).size;else if(I!==0)throw new S.ErrnoError(Bo.EINVAL);if(k<0)throw new S.ErrnoError(Bo.EINVAL);return d.position=k,k},read:function(d,E,I,k,L){if(d.stream_ops)return Hs.read(d,E,I,k,L);var Z=typeof L<"u";!Z&&d.seekable&&(L=d.position);var te=Le.readSync(d.nfd,At.bufferFrom(E.buffer),I,k,L);return Z||(d.position+=te),te},write:function(d,E,I,k,L){if(d.stream_ops)return Hs.write(d,E,I,k,L);d.flags&+"1024"&&S.llseek(d,0,+"2");var Z=typeof L<"u";!Z&&d.seekable&&(L=d.position);var te=Le.writeSync(d.nfd,At.bufferFrom(E.buffer),I,k,L);return Z||(d.position+=te),te},allocate:function(){throw new S.ErrnoError(Bo.EOPNOTSUPP)},mmap:function(d,E,I,k,L,Z){if(d.stream_ops)return Hs.mmap(d,E,I,k,L,Z);if(E!==0)throw new S.ErrnoError(28);var te=ss(I);return S.read(d,ne,te,I,k),{ptr:te,allocated:!0}},msync:function(d,E,I,k,L){return d.stream_ops?Hs.msync(d,E,I,k,L):(L&2||S.write(d,E,0,k,I),0)},munmap:function(){return 0},ioctl:function(){throw new S.ErrnoError(Bo.ENOTTY)}},S={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(d,E){if(d=Nn.resolve(S.cwd(),d),E=E||{},!d)return{path:"",node:null};var I={follow_mount:!0,recurse_count:0};for(var k in I)E[k]===void 0&&(E[k]=I[k]);if(E.recurse_count>8)throw new S.ErrnoError(32);for(var L=bt.normalizeArray(d.split("/").filter(function(lt){return!!lt}),!1),Z=S.root,te="/",we=0;we40)throw new S.ErrnoError(32)}}return{path:te,node:Z}},getPath:function(d){for(var E;;){if(S.isRoot(d)){var I=d.mount.mountpoint;return E?I[I.length-1]!=="/"?I+"/"+E:I+E:I}E=E?d.name+"/"+E:d.name,d=d.parent}},hashName:function(d,E){for(var I=0,k=0;k>>0)%S.nameTable.length},hashAddNode:function(d){var E=S.hashName(d.parent.id,d.name);d.name_next=S.nameTable[E],S.nameTable[E]=d},hashRemoveNode:function(d){var E=S.hashName(d.parent.id,d.name);if(S.nameTable[E]===d)S.nameTable[E]=d.name_next;else for(var I=S.nameTable[E];I;){if(I.name_next===d){I.name_next=d.name_next;break}I=I.name_next}},lookupNode:function(d,E){var I=S.mayLookup(d);if(I)throw new S.ErrnoError(I,d);for(var k=S.hashName(d.id,E),L=S.nameTable[k];L;L=L.name_next){var Z=L.name;if(L.parent.id===d.id&&Z===E)return L}return S.lookup(d,E)},createNode:function(d,E,I,k){var L=new S.FSNode(d,E,I,k);return S.hashAddNode(L),L},destroyNode:function(d){S.hashRemoveNode(d)},isRoot:function(d){return d===d.parent},isMountpoint:function(d){return!!d.mounted},isFile:function(d){return(d&61440)===32768},isDir:function(d){return(d&61440)===16384},isLink:function(d){return(d&61440)===40960},isChrdev:function(d){return(d&61440)===8192},isBlkdev:function(d){return(d&61440)===24576},isFIFO:function(d){return(d&61440)===4096},isSocket:function(d){return(d&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(d){var E=S.flagModes[d];if(typeof E>"u")throw new Error("Unknown file open mode: "+d);return E},flagsToPermissionString:function(d){var E=["r","w","rw"][d&3];return d&512&&(E+="w"),E},nodePermissions:function(d,E){return S.ignorePermissions?0:E.includes("r")&&!(d.mode&292)||E.includes("w")&&!(d.mode&146)||E.includes("x")&&!(d.mode&73)?2:0},mayLookup:function(d){var E=S.nodePermissions(d,"x");return E||(d.node_ops.lookup?0:2)},mayCreate:function(d,E){try{var I=S.lookupNode(d,E);return 20}catch{}return S.nodePermissions(d,"wx")},mayDelete:function(d,E,I){var k;try{k=S.lookupNode(d,E)}catch(Z){return Z.errno}var L=S.nodePermissions(d,"wx");if(L)return L;if(I){if(!S.isDir(k.mode))return 54;if(S.isRoot(k)||S.getPath(k)===S.cwd())return 10}else if(S.isDir(k.mode))return 31;return 0},mayOpen:function(d,E){return d?S.isLink(d.mode)?32:S.isDir(d.mode)&&(S.flagsToPermissionString(E)!=="r"||E&512)?31:S.nodePermissions(d,S.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(d,E){d=d||0,E=E||S.MAX_OPEN_FDS;for(var I=d;I<=E;I++)if(!S.streams[I])return I;throw new S.ErrnoError(33)},getStream:function(d){return S.streams[d]},createStream:function(d,E,I){S.FSStream||(S.FSStream=function(){},S.FSStream.prototype={object:{get:function(){return this.node},set:function(te){this.node=te}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new S.FSStream;for(var L in d)k[L]=d[L];d=k;var Z=S.nextfd(E,I);return d.fd=Z,S.streams[Z]=d,d},closeStream:function(d){S.streams[d]=null},chrdev_stream_ops:{open:function(d){var E=S.getDevice(d.node.rdev);d.stream_ops=E.stream_ops,d.stream_ops.open&&d.stream_ops.open(d)},llseek:function(){throw new S.ErrnoError(70)}},major:function(d){return d>>8},minor:function(d){return d&255},makedev:function(d,E){return d<<8|E},registerDevice:function(d,E){S.devices[d]={stream_ops:E}},getDevice:function(d){return S.devices[d]},getMounts:function(d){for(var E=[],I=[d];I.length;){var k=I.pop();E.push(k),I.push.apply(I,k.mounts)}return E},syncfs:function(d,E){typeof d=="function"&&(E=d,d=!1),S.syncFSRequests++,S.syncFSRequests>1&&D("warning: "+S.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var I=S.getMounts(S.root.mount),k=0;function L(te){return S.syncFSRequests--,E(te)}function Z(te){if(te)return Z.errored?void 0:(Z.errored=!0,L(te));++k>=I.length&&L(null)}I.forEach(function(te){if(!te.type.syncfs)return Z(null);te.type.syncfs(te,d,Z)})},mount:function(d,E,I){var k=I==="/",L=!I,Z;if(k&&S.root)throw new S.ErrnoError(10);if(!k&&!L){var te=S.lookupPath(I,{follow_mount:!1});if(I=te.path,Z=te.node,S.isMountpoint(Z))throw new S.ErrnoError(10);if(!S.isDir(Z.mode))throw new S.ErrnoError(54)}var we={type:d,opts:E,mountpoint:I,mounts:[]},me=d.mount(we);return me.mount=we,we.root=me,k?S.root=me:Z&&(Z.mounted=we,Z.mount&&Z.mount.mounts.push(we)),me},unmount:function(d){var E=S.lookupPath(d,{follow_mount:!1});if(!S.isMountpoint(E.node))throw new S.ErrnoError(28);var I=E.node,k=I.mounted,L=S.getMounts(k);Object.keys(S.nameTable).forEach(function(te){for(var we=S.nameTable[te];we;){var me=we.name_next;L.includes(we.mount)&&S.destroyNode(we),we=me}}),I.mounted=null;var Z=I.mount.mounts.indexOf(k);I.mount.mounts.splice(Z,1)},lookup:function(d,E){return d.node_ops.lookup(d,E)},mknod:function(d,E,I){var k=S.lookupPath(d,{parent:!0}),L=k.node,Z=bt.basename(d);if(!Z||Z==="."||Z==="..")throw new S.ErrnoError(28);var te=S.mayCreate(L,Z);if(te)throw new S.ErrnoError(te);if(!L.node_ops.mknod)throw new S.ErrnoError(63);return L.node_ops.mknod(L,Z,E,I)},create:function(d,E){return E=E!==void 0?E:438,E&=4095,E|=32768,S.mknod(d,E,0)},mkdir:function(d,E){return E=E!==void 0?E:511,E&=1023,E|=16384,S.mknod(d,E,0)},mkdirTree:function(d,E){for(var I=d.split("/"),k="",L=0;L"u"&&(I=E,E=438),E|=8192,S.mknod(d,E,I)},symlink:function(d,E){if(!Nn.resolve(d))throw new S.ErrnoError(44);var I=S.lookupPath(E,{parent:!0}),k=I.node;if(!k)throw new S.ErrnoError(44);var L=bt.basename(E),Z=S.mayCreate(k,L);if(Z)throw new S.ErrnoError(Z);if(!k.node_ops.symlink)throw new S.ErrnoError(63);return k.node_ops.symlink(k,L,d)},rename:function(d,E){var I=bt.dirname(d),k=bt.dirname(E),L=bt.basename(d),Z=bt.basename(E),te,we,me;if(te=S.lookupPath(d,{parent:!0}),we=te.node,te=S.lookupPath(E,{parent:!0}),me=te.node,!we||!me)throw new S.ErrnoError(44);if(we.mount!==me.mount)throw new S.ErrnoError(75);var Je=S.lookupNode(we,L),nt=Nn.relative(d,k);if(nt.charAt(0)!==".")throw new S.ErrnoError(28);if(nt=Nn.relative(E,I),nt.charAt(0)!==".")throw new S.ErrnoError(55);var wt;try{wt=S.lookupNode(me,Z)}catch{}if(Je!==wt){var lt=S.isDir(Je.mode),it=S.mayDelete(we,L,lt);if(it)throw new S.ErrnoError(it);if(it=wt?S.mayDelete(me,Z,lt):S.mayCreate(me,Z),it)throw new S.ErrnoError(it);if(!we.node_ops.rename)throw new S.ErrnoError(63);if(S.isMountpoint(Je)||wt&&S.isMountpoint(wt))throw new S.ErrnoError(10);if(me!==we&&(it=S.nodePermissions(we,"w"),it))throw new S.ErrnoError(it);try{S.trackingDelegate.willMovePath&&S.trackingDelegate.willMovePath(d,E)}catch(Et){D("FS.trackingDelegate['willMovePath']('"+d+"', '"+E+"') threw an exception: "+Et.message)}S.hashRemoveNode(Je);try{we.node_ops.rename(Je,me,Z)}catch(Et){throw Et}finally{S.hashAddNode(Je)}try{S.trackingDelegate.onMovePath&&S.trackingDelegate.onMovePath(d,E)}catch(Et){D("FS.trackingDelegate['onMovePath']('"+d+"', '"+E+"') threw an exception: "+Et.message)}}},rmdir:function(d){var E=S.lookupPath(d,{parent:!0}),I=E.node,k=bt.basename(d),L=S.lookupNode(I,k),Z=S.mayDelete(I,k,!0);if(Z)throw new S.ErrnoError(Z);if(!I.node_ops.rmdir)throw new S.ErrnoError(63);if(S.isMountpoint(L))throw new S.ErrnoError(10);try{S.trackingDelegate.willDeletePath&&S.trackingDelegate.willDeletePath(d)}catch(te){D("FS.trackingDelegate['willDeletePath']('"+d+"') threw an exception: "+te.message)}I.node_ops.rmdir(I,k),S.destroyNode(L);try{S.trackingDelegate.onDeletePath&&S.trackingDelegate.onDeletePath(d)}catch(te){D("FS.trackingDelegate['onDeletePath']('"+d+"') threw an exception: "+te.message)}},readdir:function(d){var E=S.lookupPath(d,{follow:!0}),I=E.node;if(!I.node_ops.readdir)throw new S.ErrnoError(54);return I.node_ops.readdir(I)},unlink:function(d){var E=S.lookupPath(d,{parent:!0}),I=E.node,k=bt.basename(d),L=S.lookupNode(I,k),Z=S.mayDelete(I,k,!1);if(Z)throw new S.ErrnoError(Z);if(!I.node_ops.unlink)throw new S.ErrnoError(63);if(S.isMountpoint(L))throw new S.ErrnoError(10);try{S.trackingDelegate.willDeletePath&&S.trackingDelegate.willDeletePath(d)}catch(te){D("FS.trackingDelegate['willDeletePath']('"+d+"') threw an exception: "+te.message)}I.node_ops.unlink(I,k),S.destroyNode(L);try{S.trackingDelegate.onDeletePath&&S.trackingDelegate.onDeletePath(d)}catch(te){D("FS.trackingDelegate['onDeletePath']('"+d+"') threw an exception: "+te.message)}},readlink:function(d){var E=S.lookupPath(d),I=E.node;if(!I)throw new S.ErrnoError(44);if(!I.node_ops.readlink)throw new S.ErrnoError(28);return Nn.resolve(S.getPath(I.parent),I.node_ops.readlink(I))},stat:function(d,E){var I=S.lookupPath(d,{follow:!E}),k=I.node;if(!k)throw new S.ErrnoError(44);if(!k.node_ops.getattr)throw new S.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(d){return S.stat(d,!0)},chmod:function(d,E,I){var k;if(typeof d=="string"){var L=S.lookupPath(d,{follow:!I});k=L.node}else k=d;if(!k.node_ops.setattr)throw new S.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(d,E){S.chmod(d,E,!0)},fchmod:function(d,E){var I=S.getStream(d);if(!I)throw new S.ErrnoError(8);S.chmod(I.node,E)},chown:function(d,E,I,k){var L;if(typeof d=="string"){var Z=S.lookupPath(d,{follow:!k});L=Z.node}else L=d;if(!L.node_ops.setattr)throw new S.ErrnoError(63);L.node_ops.setattr(L,{timestamp:Date.now()})},lchown:function(d,E,I){S.chown(d,E,I,!0)},fchown:function(d,E,I){var k=S.getStream(d);if(!k)throw new S.ErrnoError(8);S.chown(k.node,E,I)},truncate:function(d,E){if(E<0)throw new S.ErrnoError(28);var I;if(typeof d=="string"){var k=S.lookupPath(d,{follow:!0});I=k.node}else I=d;if(!I.node_ops.setattr)throw new S.ErrnoError(63);if(S.isDir(I.mode))throw new S.ErrnoError(31);if(!S.isFile(I.mode))throw new S.ErrnoError(28);var L=S.nodePermissions(I,"w");if(L)throw new S.ErrnoError(L);I.node_ops.setattr(I,{size:E,timestamp:Date.now()})},ftruncate:function(d,E){var I=S.getStream(d);if(!I)throw new S.ErrnoError(8);if((I.flags&2097155)===0)throw new S.ErrnoError(28);S.truncate(I.node,E)},utime:function(d,E,I){var k=S.lookupPath(d,{follow:!0}),L=k.node;L.node_ops.setattr(L,{timestamp:Math.max(E,I)})},open:function(d,E,I,k,L){if(d==="")throw new S.ErrnoError(44);E=typeof E=="string"?S.modeStringToFlags(E):E,I=typeof I>"u"?438:I,E&64?I=I&4095|32768:I=0;var Z;if(typeof d=="object")Z=d;else{d=bt.normalize(d);try{var te=S.lookupPath(d,{follow:!(E&131072)});Z=te.node}catch{}}var we=!1;if(E&64)if(Z){if(E&128)throw new S.ErrnoError(20)}else Z=S.mknod(d,I,0),we=!0;if(!Z)throw new S.ErrnoError(44);if(S.isChrdev(Z.mode)&&(E&=-513),E&65536&&!S.isDir(Z.mode))throw new S.ErrnoError(54);if(!we){var me=S.mayOpen(Z,E);if(me)throw new S.ErrnoError(me)}E&512&&S.truncate(Z,0),E&=-131713;var Je=S.createStream({node:Z,path:S.getPath(Z),flags:E,seekable:!0,position:0,stream_ops:Z.stream_ops,ungotten:[],error:!1},k,L);Je.stream_ops.open&&Je.stream_ops.open(Je),t.logReadFiles&&!(E&1)&&(S.readFiles||(S.readFiles={}),d in S.readFiles||(S.readFiles[d]=1,D("FS.trackingDelegate error on read file: "+d)));try{if(S.trackingDelegate.onOpenFile){var nt=0;(E&2097155)!==1&&(nt|=S.tracking.openFlags.READ),(E&2097155)!==0&&(nt|=S.tracking.openFlags.WRITE),S.trackingDelegate.onOpenFile(d,nt)}}catch(wt){D("FS.trackingDelegate['onOpenFile']('"+d+"', flags) threw an exception: "+wt.message)}return Je},close:function(d){if(S.isClosed(d))throw new S.ErrnoError(8);d.getdents&&(d.getdents=null);try{d.stream_ops.close&&d.stream_ops.close(d)}catch(E){throw E}finally{S.closeStream(d.fd)}d.fd=null},isClosed:function(d){return d.fd===null},llseek:function(d,E,I){if(S.isClosed(d))throw new S.ErrnoError(8);if(!d.seekable||!d.stream_ops.llseek)throw new S.ErrnoError(70);if(I!=0&&I!=1&&I!=2)throw new S.ErrnoError(28);return d.position=d.stream_ops.llseek(d,E,I),d.ungotten=[],d.position},read:function(d,E,I,k,L){if(k<0||L<0)throw new S.ErrnoError(28);if(S.isClosed(d))throw new S.ErrnoError(8);if((d.flags&2097155)===1)throw new S.ErrnoError(8);if(S.isDir(d.node.mode))throw new S.ErrnoError(31);if(!d.stream_ops.read)throw new S.ErrnoError(28);var Z=typeof L<"u";if(!Z)L=d.position;else if(!d.seekable)throw new S.ErrnoError(70);var te=d.stream_ops.read(d,E,I,k,L);return Z||(d.position+=te),te},write:function(d,E,I,k,L,Z){if(k<0||L<0)throw new S.ErrnoError(28);if(S.isClosed(d))throw new S.ErrnoError(8);if((d.flags&2097155)===0)throw new S.ErrnoError(8);if(S.isDir(d.node.mode))throw new S.ErrnoError(31);if(!d.stream_ops.write)throw new S.ErrnoError(28);d.seekable&&d.flags&1024&&S.llseek(d,0,2);var te=typeof L<"u";if(!te)L=d.position;else if(!d.seekable)throw new S.ErrnoError(70);var we=d.stream_ops.write(d,E,I,k,L,Z);te||(d.position+=we);try{d.path&&S.trackingDelegate.onWriteToFile&&S.trackingDelegate.onWriteToFile(d.path)}catch(me){D("FS.trackingDelegate['onWriteToFile']('"+d.path+"') threw an exception: "+me.message)}return we},allocate:function(d,E,I){if(S.isClosed(d))throw new S.ErrnoError(8);if(E<0||I<=0)throw new S.ErrnoError(28);if((d.flags&2097155)===0)throw new S.ErrnoError(8);if(!S.isFile(d.node.mode)&&!S.isDir(d.node.mode))throw new S.ErrnoError(43);if(!d.stream_ops.allocate)throw new S.ErrnoError(138);d.stream_ops.allocate(d,E,I)},mmap:function(d,E,I,k,L,Z){if((L&2)!==0&&(Z&2)===0&&(d.flags&2097155)!==2)throw new S.ErrnoError(2);if((d.flags&2097155)===1)throw new S.ErrnoError(2);if(!d.stream_ops.mmap)throw new S.ErrnoError(43);return d.stream_ops.mmap(d,E,I,k,L,Z)},msync:function(d,E,I,k,L){return!d||!d.stream_ops.msync?0:d.stream_ops.msync(d,E,I,k,L)},munmap:function(d){return 0},ioctl:function(d,E,I){if(!d.stream_ops.ioctl)throw new S.ErrnoError(59);return d.stream_ops.ioctl(d,E,I)},readFile:function(d,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary")throw new Error('Invalid encoding type "'+E.encoding+'"');var I,k=S.open(d,E.flags),L=S.stat(d),Z=L.size,te=new Uint8Array(Z);return S.read(k,te,0,Z,0),E.encoding==="utf8"?I=ke(te,0):E.encoding==="binary"&&(I=te),S.close(k),I},writeFile:function(d,E,I){I=I||{},I.flags=I.flags||577;var k=S.open(d,I.flags,I.mode);if(typeof E=="string"){var L=new Uint8Array(le(E)+1),Z=Ne(E,L,0,L.length);S.write(k,L,0,Z,void 0,I.canOwn)}else if(ArrayBuffer.isView(E))S.write(k,E,0,E.byteLength,void 0,I.canOwn);else throw new Error("Unsupported data type");S.close(k)},cwd:function(){return S.currentPath},chdir:function(d){var E=S.lookupPath(d,{follow:!0});if(E.node===null)throw new S.ErrnoError(44);if(!S.isDir(E.node.mode))throw new S.ErrnoError(54);var I=S.nodePermissions(E.node,"x");if(I)throw new S.ErrnoError(I);S.currentPath=E.path},createDefaultDirectories:function(){S.mkdir("/tmp"),S.mkdir("/home"),S.mkdir("/home/web_user")},createDefaultDevices:function(){S.mkdir("/dev"),S.registerDevice(S.makedev(1,3),{read:function(){return 0},write:function(E,I,k,L,Z){return L}}),S.mkdev("/dev/null",S.makedev(1,3)),ns.register(S.makedev(5,0),ns.default_tty_ops),ns.register(S.makedev(6,0),ns.default_tty1_ops),S.mkdev("/dev/tty",S.makedev(5,0)),S.mkdev("/dev/tty1",S.makedev(6,0));var d=Ll();S.createDevice("/dev","random",d),S.createDevice("/dev","urandom",d),S.mkdir("/dev/shm"),S.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){S.mkdir("/proc");var d=S.mkdir("/proc/self");S.mkdir("/proc/self/fd"),S.mount({mount:function(){var E=S.createNode(d,"fd",16895,73);return E.node_ops={lookup:function(I,k){var L=+k,Z=S.getStream(L);if(!Z)throw new S.ErrnoError(8);var te={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return Z.path}}};return te.parent=te,te}},E}},{},"/proc/self/fd")},createStandardStreams:function(){t.stdin?S.createDevice("/dev","stdin",t.stdin):S.symlink("/dev/tty","/dev/stdin"),t.stdout?S.createDevice("/dev","stdout",null,t.stdout):S.symlink("/dev/tty","/dev/stdout"),t.stderr?S.createDevice("/dev","stderr",null,t.stderr):S.symlink("/dev/tty1","/dev/stderr");var d=S.open("/dev/stdin",0),E=S.open("/dev/stdout",1),I=S.open("/dev/stderr",1)},ensureErrnoError:function(){S.ErrnoError||(S.ErrnoError=function(E,I){this.node=I,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message="FS error"},S.ErrnoError.prototype=new Error,S.ErrnoError.prototype.constructor=S.ErrnoError,[44].forEach(function(d){S.genericErrors[d]=new S.ErrnoError(d),S.genericErrors[d].stack=""}))},staticInit:function(){S.ensureErrnoError(),S.nameTable=new Array(4096),S.mount(gt,{},"/"),S.createDefaultDirectories(),S.createDefaultDevices(),S.createSpecialDirectories(),S.filesystems={MEMFS:gt,NODEFS:At}},init:function(d,E,I){S.init.initialized=!0,S.ensureErrnoError(),t.stdin=d||t.stdin,t.stdout=E||t.stdout,t.stderr=I||t.stderr,S.createStandardStreams()},quit:function(){S.init.initialized=!1;var d=t._fflush;d&&d(0);for(var E=0;Ethis.length-1||lt<0)){var it=lt%this.chunkSize,Et=lt/this.chunkSize|0;return this.getter(Et)[it]}},Z.prototype.setDataGetter=function(lt){this.getter=lt},Z.prototype.cacheLength=function(){var lt=new XMLHttpRequest;if(lt.open("HEAD",I,!1),lt.send(null),!(lt.status>=200&<.status<300||lt.status===304))throw new Error("Couldn't load "+I+". Status: "+lt.status);var it=Number(lt.getResponseHeader("Content-length")),Et,be=(Et=lt.getResponseHeader("Accept-Ranges"))&&Et==="bytes",Mn=(Et=lt.getResponseHeader("Content-Encoding"))&&Et==="gzip",Ri=1024*1024;be||(Ri=it);var SA=function(os,Ea){if(os>Ea)throw new Error("invalid range ("+os+", "+Ea+") or no bytes requested!");if(Ea>it-1)throw new Error("only "+it+" bytes available! programmer error!");var Kr=new XMLHttpRequest;if(Kr.open("GET",I,!1),it!==Ri&&Kr.setRequestHeader("Range","bytes="+os+"-"+Ea),typeof Uint8Array<"u"&&(Kr.responseType="arraybuffer"),Kr.overrideMimeType&&Kr.overrideMimeType("text/plain; charset=x-user-defined"),Kr.send(null),!(Kr.status>=200&&Kr.status<300||Kr.status===304))throw new Error("Couldn't load "+I+". Status: "+Kr.status);return Kr.response!==void 0?new Uint8Array(Kr.response||[]):yA(Kr.responseText||"",!0)},Or=this;Or.setDataGetter(function(os){var Ea=os*Ri,Kr=(os+1)*Ri-1;if(Kr=Math.min(Kr,it-1),typeof Or.chunks[os]>"u"&&(Or.chunks[os]=SA(Ea,Kr)),typeof Or.chunks[os]>"u")throw new Error("doXHR failed!");return Or.chunks[os]}),(Mn||!it)&&(Ri=it=1,it=this.getter(0).length,Ri=it,v("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=it,this._chunkSize=Ri,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var te=new Z;Object.defineProperties(te,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var we={isDevice:!1,contents:te}}else var we={isDevice:!1,url:I};var me=S.createFile(d,E,we,k,L);we.contents?me.contents=we.contents:we.url&&(me.contents=null,me.url=we.url),Object.defineProperties(me,{usedBytes:{get:function(){return this.contents.length}}});var Je={},nt=Object.keys(me.stream_ops);return nt.forEach(function(wt){var lt=me.stream_ops[wt];Je[wt]=function(){return S.forceLoadFile(me),lt.apply(null,arguments)}}),Je.read=function(lt,it,Et,be,Mn){S.forceLoadFile(me);var Ri=lt.node.contents;if(Mn>=Ri.length)return 0;var SA=Math.min(Ri.length-Mn,be);if(Ri.slice)for(var Or=0;Or>2]=k.dev,de[I+4>>2]=0,de[I+8>>2]=k.ino,de[I+12>>2]=k.mode,de[I+16>>2]=k.nlink,de[I+20>>2]=k.uid,de[I+24>>2]=k.gid,de[I+28>>2]=k.rdev,de[I+32>>2]=0,se=[k.size>>>0,(vr=k.size,+Math.abs(vr)>=1?vr>0?(Math.min(+Math.floor(vr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((vr-+(~~vr>>>0))/4294967296)>>>0:0)],de[I+40>>2]=se[0],de[I+44>>2]=se[1],de[I+48>>2]=4096,de[I+52>>2]=k.blocks,de[I+56>>2]=k.atime.getTime()/1e3|0,de[I+60>>2]=0,de[I+64>>2]=k.mtime.getTime()/1e3|0,de[I+68>>2]=0,de[I+72>>2]=k.ctime.getTime()/1e3|0,de[I+76>>2]=0,se=[k.ino>>>0,(vr=k.ino,+Math.abs(vr)>=1?vr>0?(Math.min(+Math.floor(vr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((vr-+(~~vr>>>0))/4294967296)>>>0:0)],de[I+80>>2]=se[0],de[I+84>>2]=se[1],0},doMsync:function(d,E,I,k,L){var Z=Y.slice(d,d+I);S.msync(E,Z,L,I,k)},doMkdir:function(d,E){return d=bt.normalize(d),d[d.length-1]==="/"&&(d=d.substr(0,d.length-1)),S.mkdir(d,E,0),0},doMknod:function(d,E,I){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return S.mknod(d,E,I),0},doReadlink:function(d,E,I){if(I<=0)return-28;var k=S.readlink(d),L=Math.min(I,le(k)),Z=ne[E+L];return oe(k,E,I+1),ne[E+L]=Z,L},doAccess:function(d,E){if(E&-8)return-28;var I,k=S.lookupPath(d,{follow:!0});if(I=k.node,!I)return-44;var L="";return E&4&&(L+="r"),E&2&&(L+="w"),E&1&&(L+="x"),L&&S.nodePermissions(I,L)?-2:0},doDup:function(d,E,I){var k=S.getStream(I);return k&&S.close(k),S.open(d,E,0,I,I).fd},doReadv:function(d,E,I,k){for(var L=0,Z=0;Z>2],we=de[E+(Z*8+4)>>2],me=S.read(d,ne,te,we,k);if(me<0)return-1;if(L+=me,me>2],we=de[E+(Z*8+4)>>2],me=S.write(d,ne,te,we,k);if(me<0)return-1;L+=me}return L},varargs:void 0,get:function(){Lt.varargs+=4;var d=de[Lt.varargs-4>>2];return d},getStr:function(d){var E=Fe(d);return E},getStreamFromFD:function(d){var E=S.getStream(d);if(!E)throw new S.ErrnoError(8);return E},get64:function(d,E){return d}};function hg(d,E){try{return d=Lt.getStr(d),S.chmod(d,E),0}catch(I){return(typeof S>"u"||!(I instanceof S.ErrnoError))&&wr(I),-I.errno}}function Ml(d){return de[Ft()>>2]=d,d}function Qp(d,E,I){Lt.varargs=I;try{var k=Lt.getStreamFromFD(d);switch(E){case 0:{var L=Lt.get();if(L<0)return-28;var Z;return Z=S.open(k.path,k.flags,0,L),Z.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var L=Lt.get();return k.flags|=L,0}case 12:{var L=Lt.get(),te=0;return he[L+te>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Ml(28),-1;default:return-28}}catch(we){return(typeof S>"u"||!(we instanceof S.ErrnoError))&&wr(we),-we.errno}}function Sp(d,E){try{var I=Lt.getStreamFromFD(d);return Lt.doStat(S.stat,I.path,E)}catch(k){return(typeof S>"u"||!(k instanceof S.ErrnoError))&&wr(k),-k.errno}}function vp(d,E,I){Lt.varargs=I;try{var k=Lt.getStreamFromFD(d);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var L=Lt.get();return de[L>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var L=Lt.get();return S.ioctl(k,E,L)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:wr("bad ioctl syscall "+E)}}catch(Z){return(typeof S>"u"||!(Z instanceof S.ErrnoError))&&wr(Z),-Z.errno}}function xp(d,E,I){Lt.varargs=I;try{var k=Lt.getStr(d),L=I?Lt.get():0,Z=S.open(k,E,L);return Z.fd}catch(te){return(typeof S>"u"||!(te instanceof S.ErrnoError))&&wr(te),-te.errno}}function Pp(d,E){try{return d=Lt.getStr(d),E=Lt.getStr(E),S.rename(d,E),0}catch(I){return(typeof S>"u"||!(I instanceof S.ErrnoError))&&wr(I),-I.errno}}function G(d){try{return d=Lt.getStr(d),S.rmdir(d),0}catch(E){return(typeof S>"u"||!(E instanceof S.ErrnoError))&&wr(E),-E.errno}}function yt(d,E){try{return d=Lt.getStr(d),Lt.doStat(S.stat,d,E)}catch(I){return(typeof S>"u"||!(I instanceof S.ErrnoError))&&wr(I),-I.errno}}function IA(d){try{return d=Lt.getStr(d),S.unlink(d),0}catch(E){return(typeof S>"u"||!(E instanceof S.ErrnoError))&&wr(E),-E.errno}}function zi(d,E,I){Y.copyWithin(d,E,E+I)}function Ol(d){try{return A.grow(d-qe.byteLength+65535>>>16),Mr(A.buffer),1}catch{}}function Xe(d){var E=Y.length;d=d>>>0;var I=2147483648;if(d>I)return!1;for(var k=1;k<=4;k*=2){var L=E*(1+.2/k);L=Math.min(L,d+100663296);var Z=Math.min(I,ae(Math.max(d,L),65536)),te=Ol(Z);if(te)return!0}return!1}function pa(d){try{var E=Lt.getStreamFromFD(d);return S.close(E),0}catch(I){return(typeof S>"u"||!(I instanceof S.ErrnoError))&&wr(I),I.errno}}function pg(d,E){try{var I=Lt.getStreamFromFD(d),k=I.tty?2:S.isDir(I.mode)?3:S.isLink(I.mode)?7:4;return ne[E>>0]=k,0}catch(L){return(typeof S>"u"||!(L instanceof S.ErrnoError))&&wr(L),L.errno}}function ME(d,E,I,k){try{var L=Lt.getStreamFromFD(d),Z=Lt.doReadv(L,E,I);return de[k>>2]=Z,0}catch(te){return(typeof S>"u"||!(te instanceof S.ErrnoError))&&wr(te),te.errno}}function Dp(d,E,I,k,L){try{var Z=Lt.getStreamFromFD(d),te=4294967296,we=I*te+(E>>>0),me=9007199254740992;return we<=-me||we>=me?-61:(S.llseek(Z,we,k),se=[Z.position>>>0,(vr=Z.position,+Math.abs(vr)>=1?vr>0?(Math.min(+Math.floor(vr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((vr-+(~~vr>>>0))/4294967296)>>>0:0)],de[L>>2]=se[0],de[L+4>>2]=se[1],Z.getdents&&we===0&&k===0&&(Z.getdents=null),0)}catch(Je){return(typeof S>"u"||!(Je instanceof S.ErrnoError))&&wr(Je),Je.errno}}function OE(d,E,I,k){try{var L=Lt.getStreamFromFD(d),Z=Lt.doWritev(L,E,I);return de[k>>2]=Z,0}catch(te){return(typeof S>"u"||!(te instanceof S.ErrnoError))&&wr(te),te.errno}}function ar(d){$(d)}function Tn(d){var E=Date.now()/1e3|0;return d&&(de[d>>2]=E),E}function Kl(){if(Kl.called)return;Kl.called=!0;var d=new Date().getFullYear(),E=new Date(d,0,1),I=new Date(d,6,1),k=E.getTimezoneOffset(),L=I.getTimezoneOffset(),Z=Math.max(k,L);de[iS()>>2]=Z*60,de[rS()>>2]=Number(k!=L);function te(wt){var lt=wt.toTimeString().match(/\(([A-Za-z ]+)\)$/);return lt?lt[1]:"GMT"}var we=te(E),me=te(I),Je=Be(we),nt=Be(me);L>2]=Je,de[wg()+4>>2]=nt):(de[wg()>>2]=nt,de[wg()+4>>2]=Je)}function kp(d){Kl();var E=Date.UTC(de[d+20>>2]+1900,de[d+16>>2],de[d+12>>2],de[d+8>>2],de[d+4>>2],de[d>>2],0),I=new Date(E);de[d+24>>2]=I.getUTCDay();var k=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),L=(I.getTime()-k)/(1e3*60*60*24)|0;return de[d+28>>2]=L,I.getTime()/1e3|0}var Us=function(d,E,I,k){d||(d=this),this.parent=d,this.mount=d.mount,this.mounted=null,this.id=S.nextInode++,this.name=E,this.mode=I,this.node_ops={},this.stream_ops={},this.rdev=k},da=365,cn=146;if(Object.defineProperties(Us.prototype,{read:{get:function(){return(this.mode&da)===da},set:function(d){d?this.mode|=da:this.mode&=~da}},write:{get:function(){return(this.mode&cn)===cn},set:function(d){d?this.mode|=cn:this.mode&=~cn}},isFolder:{get:function(){return S.isDir(this.mode)}},isDevice:{get:function(){return S.isChrdev(this.mode)}}}),S.FSNode=Us,S.staticInit(),g){var Le=rV,dg=J("path");At.staticInit()}if(g){var Ul=function(d){return function(){try{return d.apply(this,arguments)}catch(E){throw E.code?new S.ErrnoError(Bo[E.code]):E}}},Hs=Object.assign({},S);for(var Hl in ln)S[Hl]=Ul(ln[Hl])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function yA(d,E,I){var k=I>0?I:le(d)+1,L=new Array(k),Z=Ne(d,L,0,L.length);return E&&(L.length=Z),L}var Cg=typeof atob=="function"?atob:function(d){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",I="",k,L,Z,te,we,me,Je,nt=0;d=d.replace(/[^A-Za-z0-9\+\/\=]/g,"");do te=E.indexOf(d.charAt(nt++)),we=E.indexOf(d.charAt(nt++)),me=E.indexOf(d.charAt(nt++)),Je=E.indexOf(d.charAt(nt++)),k=te<<2|we>>4,L=(we&15)<<4|me>>2,Z=(me&3)<<6|Je,I=I+String.fromCharCode(k),me!==64&&(I=I+String.fromCharCode(L)),Je!==64&&(I=I+String.fromCharCode(Z));while(nt0||(pr(),is>0))return;function E(){Oe||(Oe=!0,t.calledRun=!0,!Ae&&(Ii(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=QA,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return QA(),e}}();typeof IB=="object"&&typeof FR=="object"?FR.exports=RR:typeof define=="function"&&define.amd?define([],function(){return RR}):typeof IB=="object"&&(IB.createModule=RR)});var vV=w((jst,SV)=>{function dke(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t{var Cke=Array.isArray;xV.exports=Cke});var NV=w((Jst,FV)=>{var PV=Rc(),mke=vV(),Eke=vs(),Ike=gC(),yke=1/0,DV=PV?PV.prototype:void 0,kV=DV?DV.toString:void 0;function RV(r){if(typeof r=="string")return r;if(Eke(r))return mke(r,RV)+"";if(Ike(r))return kV?kV.call(r):"";var e=r+"";return e=="0"&&1/r==-yke?"-0":e}FV.exports=RV});var Vf=w((Wst,TV)=>{var wke=NV();function Bke(r){return r==null?"":wke(r)}TV.exports=Bke});var HR=w((zst,LV)=>{function bke(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i{var Qke=HR();function Ske(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:Qke(r,e,t)}MV.exports=Ske});var GR=w((Xst,KV)=>{var vke="\\ud800-\\udfff",xke="\\u0300-\\u036f",Pke="\\ufe20-\\ufe2f",Dke="\\u20d0-\\u20ff",kke=xke+Pke+Dke,Rke="\\ufe0e\\ufe0f",Fke="\\u200d",Nke=RegExp("["+Fke+vke+kke+Rke+"]");function Tke(r){return Nke.test(r)}KV.exports=Tke});var HV=w((Zst,UV)=>{function Lke(r){return r.split("")}UV.exports=Lke});var VV=w((_st,zV)=>{var GV="\\ud800-\\udfff",Mke="\\u0300-\\u036f",Oke="\\ufe20-\\ufe2f",Kke="\\u20d0-\\u20ff",Uke=Mke+Oke+Kke,Hke="\\ufe0e\\ufe0f",Gke="["+GV+"]",YR="["+Uke+"]",jR="\\ud83c[\\udffb-\\udfff]",Yke="(?:"+YR+"|"+jR+")",YV="[^"+GV+"]",jV="(?:\\ud83c[\\udde6-\\uddff]){2}",qV="[\\ud800-\\udbff][\\udc00-\\udfff]",jke="\\u200d",JV=Yke+"?",WV="["+Hke+"]?",qke="(?:"+jke+"(?:"+[YV,jV,qV].join("|")+")"+WV+JV+")*",Jke=WV+JV+qke,Wke="(?:"+[YV+YR+"?",YR,jV,qV,Gke].join("|")+")",zke=RegExp(jR+"(?="+jR+")|"+Wke+Jke,"g");function Vke(r){return r.match(zke)||[]}zV.exports=Vke});var ZV=w(($st,XV)=>{var Xke=HV(),Zke=GR(),_ke=VV();function $ke(r){return Zke(r)?_ke(r):Xke(r)}XV.exports=$ke});var $V=w((eot,_V)=>{var eRe=OV(),tRe=GR(),rRe=ZV(),iRe=Vf();function nRe(r){return function(e){e=iRe(e);var t=tRe(e)?rRe(e):void 0,i=t?t[0]:e.charAt(0),n=t?eRe(t,1).join(""):e.slice(1);return i[r]()+n}}_V.exports=nRe});var t9=w((tot,e9)=>{var sRe=$V(),oRe=sRe("toUpperCase");e9.exports=oRe});var PB=w((rot,r9)=>{var aRe=Vf(),ARe=t9();function lRe(r){return ARe(aRe(r).toLowerCase())}r9.exports=lRe});var i9=w((iot,DB)=>{function cRe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,f=12,h=13,p=14,C=15,y=16,B=17,v=0,D=1,T=2,H=3,j=4;function $(A,Ae){return 55296<=A.charCodeAt(Ae)&&A.charCodeAt(Ae)<=56319&&56320<=A.charCodeAt(Ae+1)&&A.charCodeAt(Ae+1)<=57343}function V(A,Ae){Ae===void 0&&(Ae=0);var ge=A.charCodeAt(Ae);if(55296<=ge&&ge<=56319&&Ae=1){var re=A.charCodeAt(Ae-1),M=ge;return 55296<=re&&re<=56319?(re-55296)*1024+(M-56320)+65536:M}return ge}function W(A,Ae,ge){var re=[A].concat(Ae).concat([ge]),M=re[re.length-2],F=ge,ue=re.lastIndexOf(p);if(ue>1&&re.slice(1,ue).every(function(Fe){return Fe==i})&&[i,h,B].indexOf(A)==-1)return T;var pe=re.lastIndexOf(n);if(pe>0&&re.slice(1,pe).every(function(Fe){return Fe==n})&&[f,n].indexOf(M)==-1)return re.filter(function(Fe){return Fe==n}).length%2==1?H:j;if(M==r&&F==e)return v;if(M==t||M==r||M==e)return F==p&&Ae.every(function(Fe){return Fe==i})?T:D;if(F==t||F==r||F==e)return D;if(M==o&&(F==o||F==a||F==c||F==u))return v;if((M==c||M==a)&&(F==a||F==l))return v;if((M==u||M==l)&&F==l)return v;if(F==i||F==C)return v;if(F==s)return v;if(M==f)return v;var ke=re.indexOf(i)!=-1?re.lastIndexOf(i)-1:re.length-2;return[h,B].indexOf(re[ke])!=-1&&re.slice(ke+1,-1).every(function(Fe){return Fe==i})&&F==p||M==C&&[y,B].indexOf(F)!=-1?v:Ae.indexOf(n)!=-1?T:M==n&&F==n?v:D}this.nextBreak=function(A,Ae){if(Ae===void 0&&(Ae=0),Ae<0)return 0;if(Ae>=A.length-1)return A.length;for(var ge=_(V(A,Ae)),re=[],M=Ae+1;M{var uRe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,kB;function gRe(){if(kB)return kB;if(typeof Intl.Segmenter<"u"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return kB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=i9(),e=new r;return kB=t=>e.splitGraphemes(t)}}n9.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(uRe)||[r,r,void 0],l=gRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]<"u"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var Xf=w((bot,y9)=>{"use strict";var I9=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);y9.exports=r=>r?Object.keys(r).map(e=>[I9.has(e)?I9.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var _f=w((Qot,D9)=>{"use strict";var w9=typeof process=="object"&&process?process:{stdout:null,stderr:null},QRe=J("events"),B9=J("stream"),b9=J("string_decoder").StringDecoder,Wa=Symbol("EOF"),za=Symbol("maybeEmitEnd"),rl=Symbol("emittedEnd"),MB=Symbol("emittingEnd"),NC=Symbol("emittedError"),OB=Symbol("closed"),Q9=Symbol("read"),KB=Symbol("flush"),S9=Symbol("flushChunk"),xn=Symbol("encoding"),Va=Symbol("decoder"),UB=Symbol("flowing"),TC=Symbol("paused"),Zf=Symbol("resume"),Ci=Symbol("bufferLength"),XR=Symbol("bufferPush"),ZR=Symbol("bufferShift"),Hi=Symbol("objectMode"),Gi=Symbol("destroyed"),_R=Symbol("emitData"),v9=Symbol("emitEnd"),$R=Symbol("emitEnd2"),Xa=Symbol("async"),LC=r=>Promise.resolve().then(r),x9=global._MP_NO_ITERATOR_SYMBOLS_!=="1",SRe=x9&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),vRe=x9&&Symbol.iterator||Symbol("iterator not implemented"),xRe=r=>r==="end"||r==="finish"||r==="prefinish",PRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,DRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),HB=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Zf](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},eF=class extends HB{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=n=>t.emit("error",n),e.on("error",this.proxyErrors)}};D9.exports=class P9 extends B9{constructor(e){super(),this[UB]=!1,this[TC]=!1,this.pipes=[],this.buffer=[],this[Hi]=e&&e.objectMode||!1,this[Hi]?this[xn]=null:this[xn]=e&&e.encoding||null,this[xn]==="buffer"&&(this[xn]=null),this[Xa]=e&&!!e.async||!1,this[Va]=this[xn]?new b9(this[xn]):null,this[Wa]=!1,this[rl]=!1,this[MB]=!1,this[OB]=!1,this[NC]=null,this.writable=!0,this.readable=!0,this[Ci]=0,this[Gi]=!1}get bufferLength(){return this[Ci]}get encoding(){return this[xn]}set encoding(e){if(this[Hi])throw new Error("cannot set encoding in objectMode");if(this[xn]&&e!==this[xn]&&(this[Va]&&this[Va].lastNeed||this[Ci]))throw new Error("cannot change encoding");this[xn]!==e&&(this[Va]=e?new b9(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Va].write(t)))),this[xn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Hi]}set objectMode(e){this[Hi]=this[Hi]||!!e}get async(){return this[Xa]}set async(e){this[Xa]=this[Xa]||!!e}write(e,t,i){if(this[Wa])throw new Error("write after end");if(this[Gi])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let n=this[Xa]?LC:s=>s();return!this[Hi]&&!Buffer.isBuffer(e)&&(DRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):PRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Hi]?(this.flowing&&this[Ci]!==0&&this[KB](!0),this.flowing?this.emit("data",e):this[XR](e),this[Ci]!==0&&this.emit("readable"),i&&n(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[xn]&&!this[Va].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[xn]&&(e=this[Va].write(e)),this.flowing&&this[Ci]!==0&&this[KB](!0),this.flowing?this.emit("data",e):this[XR](e),this[Ci]!==0&&this.emit("readable"),i&&n(i),this.flowing):(this[Ci]!==0&&this.emit("readable"),i&&n(i),this.flowing)}read(e){if(this[Gi])return null;if(this[Ci]===0||e===0||e>this[Ci])return this[za](),null;this[Hi]&&(e=null),this.buffer.length>1&&!this[Hi]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[Ci])]);let t=this[Q9](e||null,this.buffer[0]);return this[za](),t}[Q9](e,t){return e===t.length||e===null?this[ZR]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[Ci]-=e),this.emit("data",t),!this.buffer.length&&!this[Wa]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[Wa]=!0,this.writable=!1,(this.flowing||!this[TC])&&this[za](),this}[Zf](){this[Gi]||(this[TC]=!1,this[UB]=!0,this.emit("resume"),this.buffer.length?this[KB]():this[Wa]?this[za]():this.emit("drain"))}resume(){return this[Zf]()}pause(){this[UB]=!1,this[TC]=!0}get destroyed(){return this[Gi]}get flowing(){return this[UB]}get paused(){return this[TC]}[XR](e){this[Hi]?this[Ci]+=1:this[Ci]+=e.length,this.buffer.push(e)}[ZR](){return this.buffer.length&&(this[Hi]?this[Ci]-=1:this[Ci]-=this.buffer[0].length),this.buffer.shift()}[KB](e){do;while(this[S9](this[ZR]()));!e&&!this.buffer.length&&!this[Wa]&&this.emit("drain")}[S9](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[Gi])return;let i=this[rl];return t=t||{},e===w9.stdout||e===w9.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new eF(this,e,t):new HB(this,e,t)),this[Xa]?LC(()=>this[Zf]()):this[Zf]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[Zf]():e==="readable"&&this[Ci]!==0?super.emit("readable"):xRe(e)&&this[rl]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[NC]&&(this[Xa]?LC(()=>t.call(this,this[NC])):t.call(this,this[NC])),i}get emittedEnd(){return this[rl]}[za](){!this[MB]&&!this[rl]&&!this[Gi]&&this.buffer.length===0&&this[Wa]&&(this[MB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OB]&&this.emit("close"),this[MB]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==Gi&&this[Gi])return;if(e==="data")return t?this[Xa]?LC(()=>this[_R](t)):this[_R](t):!1;if(e==="end")return this[v9]();if(e==="close"){if(this[OB]=!0,!this[rl]&&!this[Gi])return;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[NC]=t;let s=super.emit("error",t);return this[za](),s}else if(e==="resume"){let s=super.emit("resume");return this[za](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let n=super.emit(e,t,...i);return this[za](),n}[_R](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[za](),t}[v9](){this[rl]||(this[rl]=!0,this.readable=!1,this[Xa]?LC(()=>this[$R]()):this[$R]())}[$R](){if(this[Va]){let t=this[Va].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Hi]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[Hi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this[xn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(Gi,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[SRe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[Wa])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[Wa]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(Gi,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[vRe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[Gi]?(e?this.emit("error",e):this.emit(Gi),this):(this[Gi]=!0,this.buffer.length=0,this[Ci]=0,typeof this.close=="function"&&!this[OB]&&this.close(),e?this.emit("error",e):this.emit(Gi),this)}static isStream(e){return!!e&&(e instanceof P9||e instanceof B9||e instanceof QRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var R9=w((Sot,k9)=>{var kRe=J("zlib").constants||{ZLIB_VERNUM:4736};k9.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},kRe))});var dF=w(Xn=>{"use strict";var sF=J("assert"),il=J("buffer").Buffer,T9=J("zlib"),Uc=Xn.constants=R9(),RRe=_f(),F9=il.concat,Hc=Symbol("_superWrite"),eh=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},FRe=Symbol("opts"),MC=Symbol("flushFlag"),N9=Symbol("finishFlushFlag"),pF=Symbol("fullFlushFlag"),cr=Symbol("handle"),GB=Symbol("onError"),$f=Symbol("sawError"),tF=Symbol("level"),rF=Symbol("strategy"),iF=Symbol("ended"),vot=Symbol("_defaultFullFlush"),YB=class extends RRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[$f]=!1,this[iF]=!1,this[FRe]=e,this[MC]=e.flush,this[N9]=e.finishFlush;try{this[cr]=new T9[t](e)}catch(i){throw new eh(i)}this[GB]=i=>{this[$f]||(this[$f]=!0,this.close(),this.emit("error",i))},this[cr].on("error",i=>this[GB](new eh(i))),this.once("end",()=>this.close)}close(){this[cr]&&(this[cr].close(),this[cr]=null,this.emit("close"))}reset(){if(!this[$f])return sF(this[cr],"zlib binding closed"),this[cr].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[pF]),this.write(Object.assign(il.alloc(0),{[MC]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[N9]),this[iF]=!0,super.end(null,null,i)}get ended(){return this[iF]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=il.from(e,t)),this[$f])return;sF(this[cr],"zlib binding closed");let n=this[cr]._handle,s=n.close;n.close=()=>{};let o=this[cr].close;this[cr].close=()=>{},il.concat=c=>c;let a;try{let c=typeof e[MC]=="number"?e[MC]:this[MC];a=this[cr]._processChunk(e,c),il.concat=F9}catch(c){il.concat=F9,this[GB](new eh(c))}finally{this[cr]&&(this[cr]._handle=n,n.close=s,this[cr].close=o,this[cr].removeAllListeners("error"))}this[cr]&&this[cr].on("error",c=>this[GB](new eh(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[Hc](il.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[cr].params(e,t)}finally{this[cr].flush=i}this[cr]&&(this[tF]=e,this[rF]=t)}}}},oF=class extends Za{constructor(e){super(e,"Deflate")}},aF=class extends Za{constructor(e){super(e,"Inflate")}},nF=Symbol("_portable"),AF=class extends Za{constructor(e){super(e,"Gzip"),this[nF]=e&&!!e.portable}[Hc](e){return this[nF]?(this[nF]=!1,e[9]=255,super[Hc](e)):super[Hc](e)}},lF=class extends Za{constructor(e){super(e,"Gunzip")}},cF=class extends Za{constructor(e){super(e,"DeflateRaw")}},uF=class extends Za{constructor(e){super(e,"InflateRaw")}},gF=class extends Za{constructor(e){super(e,"Unzip")}},jB=class extends YB{constructor(e,t){e=e||{},e.flush=e.flush||Uc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||Uc.BROTLI_OPERATION_FINISH,super(e,t),this[pF]=Uc.BROTLI_OPERATION_FLUSH}},fF=class extends jB{constructor(e){super(e,"BrotliCompress")}},hF=class extends jB{constructor(e){super(e,"BrotliDecompress")}};Xn.Deflate=oF;Xn.Inflate=aF;Xn.Gzip=AF;Xn.Gunzip=lF;Xn.DeflateRaw=cF;Xn.InflateRaw=uF;Xn.Unzip=gF;typeof T9.BrotliCompress=="function"?(Xn.BrotliCompress=fF,Xn.BrotliDecompress=hF):Xn.BrotliCompress=Xn.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var th=w((Dot,L9)=>{var NRe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;L9.exports=NRe!=="win32"?r=>r:r=>r&&r.replace(/\\/g,"/")});var qB=w((Rot,M9)=>{"use strict";var TRe=_f(),CF=th(),mF=Symbol("slurp");M9.exports=class extends TRe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=CF(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=CF(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[mF](t),i&&this[mF](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[mF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?CF(e[i]):e[i])}}});var EF=w(JB=>{"use strict";JB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);JB.code=new Map(Array.from(JB.name).map(r=>[r[1],r[0]]))});var H9=w((Not,U9)=>{"use strict";var LRe=(r,e)=>{if(Number.isSafeInteger(r))r<0?ORe(r,e):MRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},MRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},ORe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=O9(n):n===0?e[i-1]=0:(t=!0,e[i-1]=K9(n))}},KRe=r=>{let e=r[0],t=e===128?HRe(r.slice(1,r.length)):e===255?URe(r):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},URe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=O9(s):s===0?o=s:(i=!0,o=K9(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},HRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},O9=r=>(255^r)&255,K9=r=>(255^r)+1&255;U9.exports={encode:LRe,parse:KRe}});var ih=w((Tot,Y9)=>{"use strict";var IF=EF(),rh=J("path").posix,G9=H9(),yF=Symbol("slurp"),Zn=Symbol("type"),bF=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=Gc(e,t,100),this.mode=nl(e,t+100,8),this.uid=nl(e,t+108,8),this.gid=nl(e,t+116,8),this.size=nl(e,t+124,12),this.mtime=wF(e,t+136,12),this.cksum=nl(e,t+148,12),this[yF](i),this[yF](n,!0),this[Zn]=Gc(e,t+156,1),this[Zn]===""&&(this[Zn]="0"),this[Zn]==="0"&&this.path.substr(-1)==="/"&&(this[Zn]="5"),this[Zn]==="5"&&(this.size=0),this.linkpath=Gc(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=Gc(e,t+265,32),this.gname=Gc(e,t+297,32),this.devmaj=nl(e,t+329,8),this.devmin=nl(e,t+337,8),e[t+475]!==0){let o=Gc(e,t+345,155);this.path=o+"/"+this.path}else{let o=Gc(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=wF(e,t+476,12),this.ctime=wF(e,t+488,12)}let s=8*32;for(let o=t;o=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=GRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=Yc(e,t,100,s)||this.needPax,this.needPax=sl(e,t+100,8,this.mode)||this.needPax,this.needPax=sl(e,t+108,8,this.uid)||this.needPax,this.needPax=sl(e,t+116,8,this.gid)||this.needPax,this.needPax=sl(e,t+124,12,this.size)||this.needPax,this.needPax=BF(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Zn].charCodeAt(0),this.needPax=Yc(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=Yc(e,t+265,32,this.uname)||this.needPax,this.needPax=Yc(e,t+297,32,this.gname)||this.needPax,this.needPax=sl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=sl(e,t+337,8,this.devmin)||this.needPax,this.needPax=Yc(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=Yc(e,t+345,155,o)||this.needPax:(this.needPax=Yc(e,t+345,130,o)||this.needPax,this.needPax=BF(e,t+476,12,this.atime)||this.needPax,this.needPax=BF(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l{let i=r,n="",s,o=rh.parse(r).root||".";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=rh.dirname(i),i=rh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=rh.join(rh.basename(n),i),n=rh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),"",!0])}return s},Gc=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),wF=(r,e,t)=>YRe(nl(r,e,t)),YRe=r=>r===null?null:new Date(r*1e3),nl=(r,e,t)=>r[e]&128?G9.parse(r.slice(e,e+t)):qRe(r,e,t),jRe=r=>isNaN(r)?null:r,qRe=(r,e,t)=>jRe(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),JRe={12:8589934591,8:2097151},sl=(r,e,t,i)=>i===null?!1:i>JRe[t]||i<0?(G9.encode(i,r.slice(e,e+t)),!0):(WRe(r,e,t,i),!1),WRe=(r,e,t,i)=>r.write(zRe(i,t),e,t,"ascii"),zRe=(r,e)=>VRe(Math.floor(r).toString(8),e),VRe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",BF=(r,e,t,i)=>i===null?!1:sl(r,e,t,i.getTime()/1e3),XRe=new Array(156).join("\0"),Yc=(r,e,t,i)=>i===null?!1:(r.write(i+XRe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);Y9.exports=bF});var WB=w((Lot,j9)=>{"use strict";var ZRe=ih(),_Re=J("path"),OC=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new ZRe({path:("PaxHeader/"+_Re.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s=Math.pow(10,s)&&(s+=1),s+n+i}};OC.parse=(r,e,t)=>new OC($Re(eFe(r),e),t);var $Re=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,eFe=r=>r.replace(/\n$/,"").split(` +`).reduce(tFe,Object.create(null)),tFe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};j9.exports=OC});var nh=w((Mot,q9)=>{q9.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var zB=w((Oot,J9)=>{"use strict";J9.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=w((Uot,W9)=>{"use strict";var VB=["|","<",">","?",":"],QF=VB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),rFe=new Map(VB.map((r,e)=>[r,QF[e]])),iFe=new Map(QF.map((r,e)=>[r,VB[e]]));W9.exports={encode:r=>VB.reduce((e,t)=>e.split(t).join(rFe.get(t)),r),decode:r=>QF.reduce((e,t)=>e.split(t).join(iFe.get(t)),r)}});var vF=w((Hot,V9)=>{var{isAbsolute:nFe,parse:z9}=J("path").win32;V9.exports=r=>{let e="",t=z9(r);for(;nFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=z9(r)}return[e,r]}});var Z9=w((Got,X9)=>{"use strict";X9.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var MF=w((qot,uX)=>{"use strict";var nX=_f(),sX=WB(),oX=ih(),Zo=J("fs"),_9=J("path"),Xo=th(),sFe=nh(),aX=(r,e)=>e?(r=Xo(r).replace(/^\.(\/|$)/,""),sFe(e)+"/"+r):Xo(r),oFe=16*1024*1024,$9=Symbol("process"),eX=Symbol("file"),tX=Symbol("directory"),PF=Symbol("symlink"),rX=Symbol("hardlink"),KC=Symbol("header"),XB=Symbol("read"),DF=Symbol("lstat"),ZB=Symbol("onlstat"),kF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),NF=Symbol("onopenfile"),ol=Symbol("close"),_B=Symbol("mode"),TF=Symbol("awaitDrain"),xF=Symbol("ondrain"),_o=Symbol("prefix"),iX=Symbol("hadError"),AX=zB(),aFe=SF(),lX=vF(),cX=Z9(),$B=AX(class extends nX{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Xo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||oFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Xo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Xo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=lX(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=aFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Xo(t.absolute||_9.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[ZB](this.statCache.get(this.absolute)):this[DF]()}emit(e,...t){return e==="error"&&(this[iX]=!0),super.emit(e,...t)}[DF](){Zo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[ZB](t)})}[ZB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=lFe(e),this.emit("stat",e),this[$9]()}[$9](){switch(this.type){case"File":return this[eX]();case"Directory":return this[tX]();case"SymbolicLink":return this[PF]();default:return this.end()}}[_B](e){return cX(e,this.type==="Directory",this.portable)}[_o](e){return aX(e,this.prefix)}[KC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new oX({path:this[_o](this.path),linkpath:this.type==="Link"?this[_o](this.linkpath):this.linkpath,mode:this[_B](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new sX({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[_o](this.path),linkpath:this.type==="Link"?this[_o](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[tX](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[KC](),this.end()}[PF](){Zo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[RF](t)})}[RF](e){this.linkpath=Xo(e),this[KC](),this.end()}[rX](e){this.type="Link",this.linkpath=Xo(_9.relative(this.cwd,e)),this.stat.size=0,this[KC](),this.end()}[eX](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[rX](t)}this.linkCache.set(e,this.absolute)}if(this[KC](),this.stat.size===0)return this.end();this[FF]()}[FF](){Zo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[NF](t)})}[NF](e){if(this.fd=e,this[iX])return this[ol]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[XB]()}[XB](){let{fd:e,buf:t,offset:i,length:n,pos:s}=this;Zo.read(e,t,i,n,s,(o,a)=>{if(o)return this[ol](()=>this.emit("error",o));this[kF](a)})}[ol](e){Zo.close(this.fd,e)}[kF](e){if(e<=0&&this.remain>0){let n=new Error("encountered unexpected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[ol](()=>this.emit("error",n))}if(e>this.remain){let n=new Error("did not encounter expected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[ol](()=>this.emit("error",n))}if(e===this.remain)for(let n=e;nthis[xF]())}[TF](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[XB]()}}),LF=class extends $B{[DF](){this[ZB](Zo.lstatSync(this.absolute))}[PF](){this[RF](Zo.readlinkSync(this.absolute))}[FF](){this[NF](Zo.openSync(this.absolute,"r"))}[XB](){let e=!0;try{let{fd:t,buf:i,offset:n,length:s,pos:o}=this,a=Zo.readSync(t,i,n,s,o);this[kF](a),e=!1}finally{if(e)try{this[ol](()=>{})}catch{}}}[TF](e){e()}[ol](e){Zo.closeSync(this.fd),e()}},AFe=AX(class extends nX{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=Xo(e.path),this.mode=this[_B](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=Xo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=lX(this.path);n&&(this.path=s,i=n)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new oX({path:this[_o](this.path),linkpath:this.type==="Link"?this[_o](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new sX({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[_o](this.path),linkpath:this.type==="Link"?this[_o](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[_o](e){return aX(e,this.prefix)}[_B](e){return cX(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});$B.Sync=LF;$B.Tar=AFe;var lFe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";uX.exports=$B});var A0=w((Wot,mX)=>{"use strict";var o0=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},cFe=_f(),uFe=dF(),gFe=qB(),JF=MF(),fFe=JF.Sync,hFe=JF.Tar,pFe=WI(),gX=Buffer.alloc(1024),r0=Symbol("onStat"),e0=Symbol("ended"),$o=Symbol("queue"),sh=Symbol("current"),jc=Symbol("process"),t0=Symbol("processing"),fX=Symbol("processJob"),ea=Symbol("jobs"),OF=Symbol("jobDone"),i0=Symbol("addFSEntry"),hX=Symbol("addTarEntry"),GF=Symbol("stat"),YF=Symbol("readdir"),n0=Symbol("onreaddir"),s0=Symbol("pipe"),pX=Symbol("entry"),KF=Symbol("entryOpt"),jF=Symbol("writeEntryClass"),CX=Symbol("write"),UF=Symbol("ondrain"),a0=J("fs"),dX=J("path"),dFe=zB(),HF=th(),WF=dFe(class extends cFe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=HF(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[jF]=JF,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new uFe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[UF]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[UF]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[$o]=new pFe,this[ea]=0,this.jobs=+e.jobs||4,this[t0]=!1,this[e0]=!1}[CX](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[e0]=!0,this[jc](),this}write(e){if(this[e0])throw new Error("write after end");return e instanceof gFe?this[hX](e):this[i0](e),this.flowing}[hX](e){let t=HF(dX.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new o0(e.path,t,!1);i.entry=new hFe(e,this[KF](i)),i.entry.on("end",n=>this[OF](i)),this[ea]+=1,this[$o].push(i)}this[jc]()}[i0](e){let t=HF(dX.resolve(this.cwd,e));this[$o].push(new o0(e,t)),this[jc]()}[GF](e){e.pending=!0,this[ea]+=1;let t=this.follow?"stat":"lstat";a0[t](e.absolute,(i,n)=>{e.pending=!1,this[ea]-=1,i?this.emit("error",i):this[r0](e,n)})}[r0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[jc]()}[YF](e){e.pending=!0,this[ea]+=1,a0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[ea]-=1,t)return this.emit("error",t);this[n0](e,i)})}[n0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[jc]()}[jc](){if(!this[t0]){this[t0]=!0;for(let e=this[$o].head;e!==null&&this[ea]this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[pX](e){this[ea]+=1;try{return new this[jF](e.path,this[KF](e)).on("end",()=>this[OF](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[UF](){this[sh]&&this[sh].entry&&this[sh].entry.resume()}[s0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[i0](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),qF=class extends WF{constructor(e){super(e),this[jF]=fFe}pause(){}resume(){}[GF](e){let t=this.follow?"statSync":"lstatSync";this[r0](e,a0[t](e.absolute))}[YF](e,t){this[n0](e,a0.readdirSync(e.absolute))}[s0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[i0](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[CX](n)})}};WF.Sync=qF;mX.exports=WF});var fh=w(HC=>{"use strict";var CFe=_f(),mFe=J("events").EventEmitter,Pn=J("fs"),XF=Pn.writev;if(!XF){let r=process.binding("fs"),e=r.FSReqWrap||r.FSReqCallback;XF=(t,i,n,s)=>{let o=(l,c)=>s(l,c,i),a=new e;a.oncomplete=o,r.writeBuffers(t,i,n,a)}}var uh=Symbol("_autoClose"),lo=Symbol("_close"),UC=Symbol("_ended"),rr=Symbol("_fd"),EX=Symbol("_finished"),Al=Symbol("_flags"),zF=Symbol("_flush"),ZF=Symbol("_handleChunk"),_F=Symbol("_makeBuf"),f0=Symbol("_mode"),l0=Symbol("_needDrain"),lh=Symbol("_onerror"),gh=Symbol("_onopen"),VF=Symbol("_onread"),ah=Symbol("_onwrite"),ll=Symbol("_open"),_a=Symbol("_path"),qc=Symbol("_pos"),ta=Symbol("_queue"),Ah=Symbol("_read"),IX=Symbol("_readSize"),al=Symbol("_reading"),c0=Symbol("_remain"),yX=Symbol("_size"),u0=Symbol("_write"),oh=Symbol("_writing"),g0=Symbol("_defaultFlag"),ch=Symbol("_errored"),h0=class extends CFe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[ch]=!1,this[rr]=typeof t.fd=="number"?t.fd:null,this[_a]=e,this[IX]=t.readSize||16*1024*1024,this[al]=!1,this[yX]=typeof t.size=="number"?t.size:1/0,this[c0]=this[yX],this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[rr]=="number"?this[Ah]():this[ll]()}get fd(){return this[rr]}get path(){return this[_a]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[ll](){Pn.open(this[_a],"r",(e,t)=>this[gh](e,t))}[gh](e,t){e?this[lh](e):(this[rr]=t,this.emit("open",t),this[Ah]())}[_F](){return Buffer.allocUnsafe(Math.min(this[IX],this[c0]))}[Ah](){if(!this[al]){this[al]=!0;let e=this[_F]();if(e.length===0)return process.nextTick(()=>this[VF](null,0,e));Pn.read(this[rr],e,0,e.length,null,(t,i,n)=>this[VF](t,i,n))}}[VF](e,t,i){this[al]=!1,e?this[lh](e):this[ZF](t,i)&&this[Ah]()}[lo](){if(this[uh]&&typeof this[rr]=="number"){let e=this[rr];this[rr]=null,Pn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[lh](e){this[al]=!0,this[lo](),this.emit("error",e)}[ZF](e,t){let i=!1;return this[c0]-=e,e>0&&(i=super.write(ethis[gh](e,t))}[gh](e,t){this[g0]&&this[Al]==="r+"&&e&&e.code==="ENOENT"?(this[Al]="w",this[ll]()):e?this[lh](e):(this[rr]=t,this.emit("open",t),this[zF]())}end(e,t){return e&&this.write(e,t),this[UC]=!0,!this[oh]&&!this[ta].length&&typeof this[rr]=="number"&&this[ah](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[UC]?(this.emit("error",new Error("write() after end()")),!1):this[rr]===null||this[oh]||this[ta].length?(this[ta].push(e),this[l0]=!0,!1):(this[oh]=!0,this[u0](e),!0)}[u0](e){Pn.write(this[rr],e,0,e.length,this[qc],(t,i)=>this[ah](t,i))}[ah](e,t){e?this[lh](e):(this[qc]!==null&&(this[qc]+=t),this[ta].length?this[zF]():(this[oh]=!1,this[UC]&&!this[EX]?(this[EX]=!0,this[lo](),this.emit("finish")):this[l0]&&(this[l0]=!1,this.emit("drain"))))}[zF](){if(this[ta].length===0)this[UC]&&this[ah](null,0);else if(this[ta].length===1)this[u0](this[ta].pop());else{let e=this[ta];this[ta]=[],XF(this[rr],e,this[qc],(t,i)=>this[ah](t,i))}}[lo](){if(this[uh]&&typeof this[rr]=="number"){let e=this[rr];this[rr]=null,Pn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},eN=class extends p0{[ll](){let e;if(this[g0]&&this[Al]==="r+")try{e=Pn.openSync(this[_a],this[Al],this[f0])}catch(t){if(t.code==="ENOENT")return this[Al]="w",this[ll]();throw t}else e=Pn.openSync(this[_a],this[Al],this[f0]);this[gh](null,e)}[lo](){if(this[uh]&&typeof this[rr]=="number"){let e=this[rr];this[rr]=null,Pn.closeSync(e),this.emit("close")}}[u0](e){let t=!0;try{this[ah](null,Pn.writeSync(this[rr],e,0,e.length,this[qc])),t=!1}finally{if(t)try{this[lo]()}catch{}}}};HC.ReadStream=h0;HC.ReadStreamSync=$F;HC.WriteStream=p0;HC.WriteStreamSync=eN});var w0=w((Xot,xX)=>{"use strict";var EFe=zB(),IFe=ih(),yFe=J("events"),wFe=WI(),BFe=1024*1024,bFe=qB(),wX=WB(),QFe=dF(),tN=Buffer.from([31,139]),xs=Symbol("state"),Jc=Symbol("writeEntry"),$a=Symbol("readEntry"),rN=Symbol("nextEntry"),BX=Symbol("processEntry"),Ps=Symbol("extendedHeader"),GC=Symbol("globalExtendedHeader"),cl=Symbol("meta"),bX=Symbol("emitMeta"),Er=Symbol("buffer"),eA=Symbol("queue"),Wc=Symbol("ended"),QX=Symbol("emittedEnd"),zc=Symbol("emit"),Dn=Symbol("unzip"),d0=Symbol("consumeChunk"),C0=Symbol("consumeChunkSub"),iN=Symbol("consumeBody"),SX=Symbol("consumeMeta"),vX=Symbol("consumeHeader"),m0=Symbol("consuming"),nN=Symbol("bufferConcat"),sN=Symbol("maybeEnd"),YC=Symbol("writing"),ul=Symbol("aborted"),E0=Symbol("onDone"),Vc=Symbol("sawValidEntry"),I0=Symbol("sawNullBlock"),y0=Symbol("sawEOF"),SFe=r=>!0;xX.exports=EFe(class extends yFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Vc]=null,this.on(E0,t=>{(this[xs]==="begin"||this[Vc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(E0,e.ondone):this.on(E0,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||BFe,this.filter=typeof e.filter=="function"?e.filter:SFe,this.writable=!0,this.readable=!1,this[eA]=new wFe,this[Er]=null,this[$a]=null,this[Jc]=null,this[xs]="begin",this[cl]="",this[Ps]=null,this[GC]=null,this[Wc]=!1,this[Dn]=null,this[ul]=!1,this[I0]=!1,this[y0]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[vX](e,t){this[Vc]===null&&(this[Vc]=!1);let i;try{i=new IFe(e,t,this[Ps],this[GC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[I0]?(this[y0]=!0,this[xs]==="begin"&&(this[xs]="header"),this[zc]("eof")):(this[I0]=!0,this[zc]("nullBlock"));else if(this[I0]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[Jc]=new bFe(i,this[Ps],this[GC]);if(!this[Vc])if(s.remain){let o=()=>{s.invalid||(this[Vc]=!0)};s.on("end",o)}else this[Vc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[zc]("ignoredEntry",s),this[xs]="ignore",s.resume()):s.size>0&&(this[cl]="",s.on("data",o=>this[cl]+=o),this[xs]="meta"):(this[Ps]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[zc]("ignoredEntry",s),this[xs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[xs]="body":(this[xs]="header",s.end()),this[$a]?this[eA].push(s):(this[eA].push(s),this[rN]())))}}}[BX](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[$a]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[rN]()),t=!1)):(this[$a]=null,t=!1),t}[rN](){do;while(this[BX](this[eA].shift()));if(!this[eA].length){let e=this[$a];!e||e.flowing||e.size===e.remain?this[YC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[iN](e,t){let i=this[Jc],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[xs]="header",this[Jc]=null,i.end()),s.length}[SX](e,t){let i=this[Jc],n=this[iN](e,t);return this[Jc]||this[bX](i),n}[zc](e,t,i){!this[eA].length&&!this[$a]?this.emit(e,t,i):this[eA].push([e,t,i])}[bX](e){switch(this[zc]("meta",this[cl]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Ps]=wX.parse(this[cl],this[Ps],!1);break;case"GlobalExtendedHeader":this[GC]=wX.parse(this[cl],this[GC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Ps]=this[Ps]||Object.create(null),this[Ps].path=this[cl].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Ps]=this[Ps]||Object.create(null),this[Ps].linkpath=this[cl].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[ul]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[ul])return;if(this[Dn]===null&&e){if(this[Er]&&(e=Buffer.concat([this[Er],e]),this[Er]=null),e.lengththis[d0](s)),this[Dn].on("error",s=>this.abort(s)),this[Dn].on("end",s=>{this[Wc]=!0,this[d0]()}),this[YC]=!0;let n=this[Dn][i?"end":"write"](e);return this[YC]=!1,n}}this[YC]=!0,this[Dn]?this[Dn].write(e):this[d0](e),this[YC]=!1;let t=this[eA].length?!1:this[$a]?this[$a].flowing:!0;return!t&&!this[eA].length&&this[$a].once("drain",i=>this.emit("drain")),t}[nN](e){e&&!this[ul]&&(this[Er]=this[Er]?Buffer.concat([this[Er],e]):e)}[sN](){if(this[Wc]&&!this[QX]&&!this[ul]&&!this[m0]){this[QX]=!0;let e=this[Jc];if(e&&e.blockRemain){let t=this[Er]?this[Er].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Er]&&e.write(this[Er]),e.end()}this[zc](E0)}}[d0](e){if(this[m0])this[nN](e);else if(!e&&!this[Er])this[sN]();else{if(this[m0]=!0,this[Er]){this[nN](e);let t=this[Er];this[Er]=null,this[C0](t)}else this[C0](e);for(;this[Er]&&this[Er].length>=512&&!this[ul]&&!this[y0];){let t=this[Er];this[Er]=null,this[C0](t)}this[m0]=!1}(!this[Er]||this[Wc])&&this[sN]()}[C0](e){let t=0,i=e.length;for(;t+512<=i&&!this[ul]&&!this[y0];)switch(this[xs]){case"begin":case"header":this[vX](e,t),t+=512;break;case"ignore":case"body":t+=this[iN](e,t);break;case"meta":t+=this[SX](e,t);break;default:throw new Error("invalid state: "+this[xs])}t{"use strict";var vFe=Xf(),DX=w0(),hh=J("fs"),xFe=fh(),PX=J("path"),oN=nh();RX.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=vFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&DFe(i,e),i.noResume||PFe(i),i.file&&i.sync?kFe(i):i.file?RFe(i,t):kX(i)};var PFe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},DFe=(r,e)=>{let t=new Map(e.map(s=>[oN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||PX.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(PX.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(oN(s)):s=>n(oN(s))},kFe=r=>{let e=kX(r),t=r.file,i=!0,n;try{let s=hh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size{let t=new DX(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),hh.stat(n,(l,c)=>{if(l)a(l);else{let u=new xFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},kX=r=>new DX(r)});var OX=w((_ot,MX)=>{"use strict";var FFe=Xf(),b0=A0(),FX=fh(),NX=B0(),TX=J("path");MX.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=FFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?NFe(i,e):i.file?TFe(i,e,t):i.sync?LFe(i,e):MFe(i,e)};var NFe=(r,e)=>{let t=new b0.Sync(r),i=new FX.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),LX(t,e)},TFe=(r,e,t)=>{let i=new b0(r),n=new FX.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return aN(i,e),t?s.then(t,t):s},LX=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?NX({file:TX.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},aN=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return NX({file:TX.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>aN(r,e));r.add(t)}r.end()},LFe=(r,e)=>{let t=new b0.Sync(r);return LX(t,e),t},MFe=(r,e)=>{let t=new b0(r);return aN(t,e),t}});var AN=w(($ot,qX)=>{"use strict";var OFe=Xf(),KX=A0(),_n=J("fs"),UX=fh(),HX=B0(),GX=J("path"),YX=ih();qX.exports=(r,e,t)=>{let i=OFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?KFe(i,e):HFe(i,e,t)};var KFe=(r,e)=>{let t=new KX.Sync(r),i=!0,n,s;try{try{n=_n.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=_n.openSync(r.file,"w+");else throw l}let o=_n.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,UFe(r,t,s,n,e)}finally{if(i)try{_n.closeSync(n)}catch{}}},UFe=(r,e,t,i,n)=>{let s=new UX.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),GFe(e,n)},HFe=(r,e,t)=>{e=Array.from(e);let i=new KX(r),n=(o,a,l)=>{let c=(p,C)=>{p?_n.close(o,y=>l(p)):l(null,C)},u=0;if(a===0)return c(null,0);let g=0,f=Buffer.alloc(512),h=(p,C)=>{if(p)return c(p);if(g+=C,g<512&&C)return _n.read(o,f,g,f.length-g,u+g,h);if(u===0&&f[0]===31&&f[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new YX(f);if(!y.cksumValid)return c(null,u);let B=512*Math.ceil(y.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,_n.read(o,f,0,512,u,h)};_n.read(o,f,0,512,u,h)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",_n.open(r.file,l,c);if(u)return a(u);_n.fstat(g,(f,h)=>{if(f)return _n.close(g,()=>a(f));n(g,h.size,(p,C)=>{if(p)return a(p);let y=new UX.WriteStream(r.file,{fd:g,start:C});i.pipe(y),y.on("error",a),y.on("close",o),jX(i,e)})})};_n.open(r.file,l,c)});return t?s.then(t,t):s},GFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?HX({file:GX.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},jX=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return HX({file:GX.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>jX(r,e));r.add(t)}r.end()}});var WX=w((eat,JX)=>{"use strict";var YFe=Xf(),jFe=AN();JX.exports=(r,e,t)=>{let i=YFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),qFe(i),jFe(i,e,t)};var qFe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var XX=w((tat,VX)=>{var{promisify:zX}=J("util"),gl=J("fs"),JFe=r=>{if(!r)r={mode:511,fs:gl};else if(typeof r=="object")r={mode:511,fs:gl,...r};else if(typeof r=="number")r={mode:r,fs:gl};else if(typeof r=="string")r={mode:parseInt(r,8),fs:gl};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||gl.mkdir,r.mkdirAsync=zX(r.mkdir),r.stat=r.stat||r.fs.stat||gl.stat,r.statAsync=zX(r.stat),r.statSync=r.statSync||r.fs.statSync||gl.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||gl.mkdirSync,r};VX.exports=JFe});var _X=w((rat,ZX)=>{var WFe=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,{resolve:zFe,parse:VFe}=J("path"),XFe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=zFe(r),WFe==="win32"){let e=/[*|"<>?:]/,{root:t}=VFe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};ZX.exports=XFe});var i7=w((iat,r7)=>{var{dirname:$X}=J("path"),e7=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?e7(r,$X(e),e):void 0),t7=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?t7(r,$X(e),e):void 0}};r7.exports={findMade:e7,findMadeSync:t7}});var uN=w((nat,s7)=>{var{dirname:n7}=J("path"),lN=(r,e,t)=>{e.recursive=!1;let i=n7(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return lN(i,e).then(s=>lN(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},cN=(r,e,t)=>{let i=n7(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return cN(r,e,cN(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};s7.exports={mkdirpManual:lN,mkdirpManualSync:cN}});var A7=w((sat,a7)=>{var{dirname:o7}=J("path"),{findMade:ZFe,findMadeSync:_Fe}=i7(),{mkdirpManual:$Fe,mkdirpManualSync:eNe}=uN(),tNe=(r,e)=>(e.recursive=!0,o7(r)===r?e.mkdirAsync(r,e):ZFe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return $Fe(r,e);throw n}))),rNe=(r,e)=>{if(e.recursive=!0,o7(r)===r)return e.mkdirSync(r,e);let i=_Fe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return eNe(r,e);throw n}};a7.exports={mkdirpNative:tNe,mkdirpNativeSync:rNe}});var g7=w((oat,u7)=>{var l7=J("fs"),iNe=process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version,gN=iNe.replace(/^v/,"").split("."),c7=+gN[0]>10||+gN[0]==10&&+gN[1]>=12,nNe=c7?r=>r.mkdir===l7.mkdir:()=>!1,sNe=c7?r=>r.mkdirSync===l7.mkdirSync:()=>!1;u7.exports={useNative:nNe,useNativeSync:sNe}});var m7=w((aat,C7)=>{var ph=XX(),dh=_X(),{mkdirpNative:f7,mkdirpNativeSync:h7}=A7(),{mkdirpManual:p7,mkdirpManualSync:d7}=uN(),{useNative:oNe,useNativeSync:aNe}=g7(),Ch=(r,e)=>(r=dh(r),e=ph(e),oNe(e)?f7(r,e):p7(r,e)),ANe=(r,e)=>(r=dh(r),e=ph(e),aNe(e)?h7(r,e):d7(r,e));Ch.sync=ANe;Ch.native=(r,e)=>f7(dh(r),ph(e));Ch.manual=(r,e)=>p7(dh(r),ph(e));Ch.nativeSync=(r,e)=>h7(dh(r),ph(e));Ch.manualSync=(r,e)=>d7(dh(r),ph(e));C7.exports=Ch});var Q7=w((Aat,b7)=>{"use strict";var Ds=J("fs"),Xc=J("path"),lNe=Ds.lchown?"lchown":"chown",cNe=Ds.lchownSync?"lchownSync":"chownSync",I7=Ds.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),E7=(r,e,t)=>{try{return Ds[cNe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},uNe=(r,e,t)=>{try{return Ds.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},gNe=I7?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):Ds.chown(r,e,t,i)}:(r,e,t,i)=>i,fN=I7?(r,e,t)=>{try{return E7(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;uNe(r,e,t)}}:(r,e,t)=>E7(r,e,t),fNe=process.version,y7=(r,e,t)=>Ds.readdir(r,e,t),hNe=(r,e)=>Ds.readdirSync(r,e);/^v4\./.test(fNe)&&(y7=(r,e,t)=>Ds.readdir(r,t));var Q0=(r,e,t,i)=>{Ds[lNe](r,e,t,gNe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},w7=(r,e,t,i,n)=>{if(typeof e=="string")return Ds.lstat(Xc.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,w7(r,o,t,i,n)});if(e.isDirectory())hN(Xc.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=Xc.resolve(r,e.name);Q0(o,t,i,n)});else{let s=Xc.resolve(r,e.name);Q0(s,t,i,n)}},hN=(r,e,t,i)=>{y7(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return Q0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return Q0(r,e,t,i)}};s.forEach(c=>w7(r,c,e,t,l))})},pNe=(r,e,t,i)=>{if(typeof e=="string")try{let n=Ds.lstatSync(Xc.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&B7(Xc.resolve(r,e.name),t,i),fN(Xc.resolve(r,e.name),t,i)},B7=(r,e,t)=>{let i;try{i=hNe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return fN(r,e,t);throw n}return i&&i.length&&i.forEach(n=>pNe(r,n,e,t)),fN(r,e,t)};b7.exports=hN;hN.sync=B7});var P7=w((lat,pN)=>{"use strict";var S7=m7(),ks=J("fs"),S0=J("path"),v7=Q7(),co=th(),v0=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},x0=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},P0=(r,e)=>r.get(co(e)),jC=(r,e,t)=>r.set(co(e),t),dNe=(r,e)=>{ks.stat(r,(t,i)=>{(t||!i.isDirectory())&&(t=new x0(r,t&&t.code||"ENOTDIR")),e(t)})};pN.exports=(r,e,t)=>{r=co(r);let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,f=co(e.cwd),h=(y,B)=>{y?t(y):(jC(g,r,!0),B&&l?v7(B,o,a,v=>h(v)):s?ks.chmod(r,n,t):t())};if(g&&P0(g,r)===!0)return h();if(r===f)return dNe(r,h);if(c)return S7(r,{mode:n}).then(y=>h(null,y),h);let C=co(S0.relative(f,r)).split("/");D0(f,C,n,g,u,f,null,h)};var D0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=co(S0.resolve(r+"/"+l));if(P0(i,c))return D0(c,e,t,i,n,s,o,a);ks.mkdir(c,t,x7(c,e,t,i,n,s,o,a))},x7=(r,e,t,i,n,s,o,a)=>l=>{l?ks.lstat(r,(c,u)=>{if(c)c.path=c.path&&co(c.path),a(c);else if(u.isDirectory())D0(r,e,t,i,n,s,o,a);else if(n)ks.unlink(r,g=>{if(g)return a(g);ks.mkdir(r,t,x7(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new v0(r,r+"/"+e.join("/")));a(l)}}):(o=o||r,D0(r,e,t,i,n,s,o,a))},CNe=r=>{let e=!1,t="ENOTDIR";try{e=ks.statSync(r).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new x0(r,t)}};pN.exports.sync=(r,e)=>{r=co(r);let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=co(e.cwd),f=y=>{jC(u,r,!0),y&&a&&v7.sync(y,s,o),n&&ks.chmodSync(r,i)};if(u&&P0(u,r)===!0)return f();if(r===g)return CNe(g),f();if(l)return f(S7.sync(r,i));let p=co(S0.relative(g,r)).split("/"),C=null;for(let y=p.shift(),B=g;y&&(B+="/"+y);y=p.shift())if(B=co(S0.resolve(B)),!P0(u,B))try{ks.mkdirSync(B,i),C=C||B,jC(u,B,!0)}catch{let D=ks.lstatSync(B);if(D.isDirectory()){jC(u,B,!0);continue}else if(c){ks.unlinkSync(B),ks.mkdirSync(B,i),C=C||B,jC(u,B,!0);continue}else if(D.isSymbolicLink())return new v0(B,B+"/"+p.join("/"))}return f(C)}});var CN=w((cat,D7)=>{var dN=Object.create(null),{hasOwnProperty:mNe}=Object.prototype;D7.exports=r=>(mNe.call(dN,r)||(dN[r]=r.normalize("NFKD")),dN[r])});var N7=w((uat,F7)=>{var k7=J("assert"),ENe=CN(),INe=nh(),{join:R7}=J("path"),yNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,wNe=yNe==="win32";F7.exports=()=>{let r=new Map,e=new Map,t=c=>c.split("/").slice(0,-1).reduce((g,f)=>(g.length&&(f=R7(g[g.length-1],f)),g.push(f||"/"),g),[]),i=new Set,n=c=>{let u=e.get(c);if(!u)throw new Error("function does not have any path reservations");return{paths:u.paths.map(g=>r.get(g)),dirs:[...u.dirs].map(g=>r.get(g))}},s=c=>{let{paths:u,dirs:g}=n(c);return u.every(f=>f[0]===c)&&g.every(f=>f[0]instanceof Set&&f[0].has(c))},o=c=>i.has(c)||!s(c)?!1:(i.add(c),c(()=>a(c)),!0),a=c=>{if(!i.has(c))return!1;let{paths:u,dirs:g}=e.get(c),f=new Set;return u.forEach(h=>{let p=r.get(h);k7.equal(p[0],c),p.length===1?r.delete(h):(p.shift(),typeof p[0]=="function"?f.add(p[0]):p[0].forEach(C=>f.add(C)))}),g.forEach(h=>{let p=r.get(h);k7(p[0]instanceof Set),p[0].size===1&&p.length===1?r.delete(h):p[0].size===1?(p.shift(),f.add(p[0])):p[0].delete(c)}),i.delete(c),f.forEach(h=>o(h)),!0};return{check:s,reserve:(c,u)=>{c=wNe?["win32 parallelization disabled"]:c.map(f=>ENe(INe(R7(f))).toLowerCase());let g=new Set(c.map(f=>t(f)).reduce((f,h)=>f.concat(h)));return e.set(u,{dirs:g,paths:c}),c.forEach(f=>{let h=r.get(f);h?h.push(u):r.set(f,[u])}),g.forEach(f=>{let h=r.get(f);h?h[h.length-1]instanceof Set?h[h.length-1].add(u):h.push(new Set([u])):r.set(f,[new Set([u])])}),o(u)}}}});var M7=w((gat,L7)=>{var BNe=process.env.__FAKE_PLATFORM__||process.platform,bNe=BNe==="win32",QNe=global.__FAKE_TESTING_FS__||J("fs"),{O_CREAT:SNe,O_TRUNC:vNe,O_WRONLY:xNe,UV_FS_O_FILEMAP:T7=0}=QNe.constants,PNe=bNe&&!!T7,DNe=512*1024,kNe=T7|vNe|SNe|xNe;L7.exports=PNe?r=>r"w"});var SN=w((fat,Z7)=>{"use strict";var RNe=J("assert"),FNe=w0(),jt=J("fs"),NNe=fh(),tA=J("path"),z7=P7(),O7=SF(),TNe=N7(),LNe=vF(),$n=th(),MNe=nh(),ONe=CN(),K7=Symbol("onEntry"),IN=Symbol("checkFs"),U7=Symbol("checkFs2"),F0=Symbol("pruneCache"),yN=Symbol("isReusable"),Rs=Symbol("makeFs"),wN=Symbol("file"),BN=Symbol("directory"),N0=Symbol("link"),H7=Symbol("symlink"),G7=Symbol("hardlink"),Y7=Symbol("unsupported"),j7=Symbol("checkPath"),fl=Symbol("mkdir"),Yi=Symbol("onError"),k0=Symbol("pending"),q7=Symbol("pend"),mh=Symbol("unpend"),mN=Symbol("ended"),EN=Symbol("maybeClose"),bN=Symbol("skip"),qC=Symbol("doChown"),JC=Symbol("uid"),WC=Symbol("gid"),zC=Symbol("checkedCwd"),V7=J("crypto"),X7=M7(),KNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,VC=KNe==="win32",UNe=(r,e)=>{if(!VC)return jt.unlink(r,e);let t=r+".DELETE."+V7.randomBytes(16).toString("hex");jt.rename(r,t,i=>{if(i)return e(i);jt.unlink(t,e)})},HNe=r=>{if(!VC)return jt.unlinkSync(r);let e=r+".DELETE."+V7.randomBytes(16).toString("hex");jt.renameSync(r,e),jt.unlinkSync(e)},J7=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,W7=r=>ONe(MNe($n(r))).toLowerCase(),GNe=(r,e)=>{e=W7(e);for(let t of r.keys()){let i=W7(t);(i===e||i.indexOf(e+"/")===0)&&r.delete(t)}},YNe=r=>{for(let e of r.keys())r.delete(e)},XC=class extends FNe{constructor(e){if(e||(e={}),e.ondone=t=>{this[mN]=!0,this[EN]()},super(e),this[zC]=!1,this.reservations=TNe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[k0]=0,this[mN]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||VC,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$n(tA.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[K7](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[EN](){this[mN]&&this[k0]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[j7](e){if(this.strip){let t=$n(e.path).split("/");if(t.length=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=$n(e.path),i=t.split("/");if(i.includes("..")||VC&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[n,s]=LNe(t);n&&(e.path=s,this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t}))}if(tA.isAbsolute(e.path)?e.absolute=$n(tA.resolve(e.path)):e.absolute=$n(tA.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$n(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=tA.win32.parse(e.absolute);e.absolute=t+O7.encode(e.absolute.substr(t.length));let{root:i}=tA.win32.parse(e.path);e.path=i+O7.encode(e.path.substr(i.length))}return!0}[K7](e){if(!this[j7](e))return e.resume();switch(RNe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[IN](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[Y7](e)}}[Yi](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[mh](),t.resume())}[fl](e,t,i){z7($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[qC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[JC](e){return J7(this.uid,e.uid,this.processUid)}[WC](e){return J7(this.gid,e.gid,this.processGid)}[wN](e,t){let i=e.mode&4095||this.fmode,n=new NNe.WriteStream(e.absolute,{flags:X7(e.size),mode:i,autoClose:!1});n.on("error",l=>{n.fd&&jt.close(n.fd,()=>{}),n.write=()=>!0,this[Yi](l,e),t()});let s=1,o=l=>{if(l){n.fd&&jt.close(n.fd,()=>{}),this[Yi](l,e),t();return}--s===0&&jt.close(n.fd,c=>{c?this[Yi](c,e):this[mh](),t()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,f=e.mtime;jt.futimes(u,g,f,h=>h?jt.utimes(c,g,f,p=>o(p&&h)):o())}if(this[qC](e)){s++;let g=this[JC](e),f=this[WC](e);jt.fchown(u,g,f,h=>h?jt.chown(c,g,f,p=>o(p&&h)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[Yi](l,e),t()}),e.pipe(a)),a.pipe(n)}[BN](e,t){let i=e.mode&4095||this.dmode;this[fl](e.absolute,i,n=>{if(n){this[Yi](n,e),t();return}let s=1,o=a=>{--s===0&&(t(),this[mh](),e.resume())};e.mtime&&!this.noMtime&&(s++,jt.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[qC](e)&&(s++,jt.chown(e.absolute,this[JC](e),this[WC](e),o)),o()})}[Y7](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[H7](e,t){this[N0](e,e.linkpath,"symlink",t)}[G7](e,t){let i=$n(tA.resolve(this.cwd,e.linkpath));this[N0](e,i,"link",t)}[q7](){this[k0]++}[mh](){this[k0]--,this[EN]()}[bN](e){this[mh](),e.resume()}[yN](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!VC}[IN](e){this[q7]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[U7](e,i))}[F0](e){e.type==="SymbolicLink"?YNe(this.dirCache):e.type!=="Directory"&&GNe(this.dirCache,e.absolute)}[U7](e,t){this[F0](e);let i=a=>{this[F0](e),t(a)},n=()=>{this[fl](this.cwd,this.dmode,a=>{if(a){this[Yi](a,e),i();return}this[zC]=!0,s()})},s=()=>{if(e.absolute!==this.cwd){let a=$n(tA.dirname(e.absolute));if(a!==this.cwd)return this[fl](a,this.dmode,l=>{if(l){this[Yi](l,e),i();return}o()})}o()},o=()=>{jt.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[bN](e),i();return}if(a||this[yN](e,l))return this[Rs](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,u=g=>this[Rs](g,e,i);return c?jt.chmod(e.absolute,e.mode,u):u()}if(e.absolute!==this.cwd)return jt.rmdir(e.absolute,c=>this[Rs](c,e,i))}if(e.absolute===this.cwd)return this[Rs](null,e,i);UNe(e.absolute,c=>this[Rs](c,e,i))})};this[zC]?s():n()}[Rs](e,t,i){if(e){this[Yi](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[wN](t,i);case"Link":return this[G7](t,i);case"SymbolicLink":return this[H7](t,i);case"Directory":case"GNUDumpDir":return this[BN](t,i)}}[N0](e,t,i,n){jt[i](t,e.absolute,s=>{s?this[Yi](s,e):(this[mh](),e.resume()),n()})}},R0=r=>{try{return[null,r()]}catch(e){return[e,null]}},QN=class extends XC{[Rs](e,t){return super[Rs](e,t,()=>{})}[IN](e){if(this[F0](e),!this[zC]){let s=this[fl](this.cwd,this.dmode);if(s)return this[Yi](s,e);this[zC]=!0}if(e.absolute!==this.cwd){let s=$n(tA.dirname(e.absolute));if(s!==this.cwd){let o=this[fl](s,this.dmode);if(o)return this[Yi](o,e)}}let[t,i]=R0(()=>jt.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[bN](e);if(t||this[yN](e,i))return this[Rs](null,e);if(i.isDirectory()){if(e.type==="Directory"){let o=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=o?R0(()=>{jt.chmodSync(e.absolute,e.mode)}):[];return this[Rs](a,e)}let[s]=R0(()=>jt.rmdirSync(e.absolute));this[Rs](s,e)}let[n]=e.absolute===this.cwd?[]:R0(()=>HNe(e.absolute));this[Rs](n,e)}[wN](e,t){let i=e.mode&4095||this.fmode,n=a=>{let l;try{jt.closeSync(s)}catch(c){l=c}(a||l)&&this[Yi](a||l,e),t()},s;try{s=jt.openSync(e.absolute,X7(e.size),i)}catch(a){return n(a)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",a=>this[Yi](a,e)),e.pipe(o)),o.on("data",a=>{try{jt.writeSync(s,a,0,a.length)}catch(l){n(l)}}),o.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,u=e.mtime;try{jt.futimesSync(s,c,u)}catch(g){try{jt.utimesSync(e.absolute,c,u)}catch{l=g}}}if(this[qC](e)){let c=this[JC](e),u=this[WC](e);try{jt.fchownSync(s,c,u)}catch(g){try{jt.chownSync(e.absolute,c,u)}catch{l=l||g}}}n(l)})}[BN](e,t){let i=e.mode&4095||this.dmode,n=this[fl](e.absolute,i);if(n){this[Yi](n,e),t();return}if(e.mtime&&!this.noMtime)try{jt.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[qC](e))try{jt.chownSync(e.absolute,this[JC](e),this[WC](e))}catch{}t(),e.resume()}[fl](e,t){try{return z7.sync($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[N0](e,t,i,n){try{jt[i+"Sync"](t,e.absolute),n(),e.resume()}catch(s){return this[Yi](s,e)}}};XC.Sync=QN;Z7.exports=XC});var rZ=w((hat,tZ)=>{"use strict";var jNe=Xf(),T0=SN(),$7=J("fs"),eZ=fh(),_7=J("path"),vN=nh();tZ.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=jNe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&qNe(i,e),i.file&&i.sync?JNe(i):i.file?WNe(i,t):i.sync?zNe(i):VNe(i)};var qNe=(r,e)=>{let t=new Map(e.map(s=>[vN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||_7.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(_7.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(vN(s)):s=>n(vN(s))},JNe=r=>{let e=new T0.Sync(r),t=r.file,i=$7.statSync(t),n=r.maxReadSize||16*1024*1024;new eZ.ReadStreamSync(t,{readSize:n,size:i.size}).pipe(e)},WNe=(r,e)=>{let t=new T0(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),$7.stat(n,(l,c)=>{if(l)a(l);else{let u=new eZ.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},zNe=r=>new T0.Sync(r),VNe=r=>new T0(r)});var iZ=w(ci=>{"use strict";ci.c=ci.create=OX();ci.r=ci.replace=AN();ci.t=ci.list=B0();ci.u=ci.update=WX();ci.x=ci.extract=rZ();ci.Pack=A0();ci.Unpack=SN();ci.Parse=w0();ci.ReadEntry=qB();ci.WriteEntry=MF();ci.Header=ih();ci.Pax=WB();ci.types=EF()});var aZ=w((Cat,oZ)=>{var xN;oZ.exports.getContent=()=>(typeof xN>"u"&&(xN=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),xN)});var fZ=w((PN,gZ)=>{(function(r,e){typeof PN=="object"?gZ.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(PN,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",f=0,h,p,C=a.slice(0);if(C.push([s,o])&&a.length>0&&(a.forEach(function(B,v){v>0&&(g+=(B[1]?" ":"\u2502")+" "),!p&&B[0]===s&&(p=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),p&&(g+=" (circular ref.)"),u(g)),!p&&typeof s=="object"){var y=e(s,c);y.forEach(function(B){h=++f===y.length,t(B,s[B],h,C,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` +`}),a},i})});var K0=w((Uat,BZ)=>{var fTe=vs(),hTe=gC(),pTe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,dTe=/^\w*$/;function CTe(r,e){if(fTe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||hTe(r)?!0:dTe.test(r)||!pTe.test(r)||e!=null&&r in Object(e)}BZ.exports=CTe});var U0=w((Hat,bZ)=>{var mTe=Fc(),ETe=vn(),ITe="[object AsyncFunction]",yTe="[object Function]",wTe="[object GeneratorFunction]",BTe="[object Proxy]";function bTe(r){if(!ETe(r))return!1;var e=mTe(r);return e==yTe||e==wTe||e==ITe||e==BTe}bZ.exports=bTe});var SZ=w((Gat,QZ)=>{var QTe=ys(),STe=QTe["__core-js_shared__"];QZ.exports=STe});var PZ=w((Yat,xZ)=>{var MN=SZ(),vZ=function(){var r=/[^.]+$/.exec(MN&&MN.keys&&MN.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function vTe(r){return!!vZ&&vZ in r}xZ.exports=vTe});var ON=w((jat,DZ)=>{var xTe=Function.prototype,PTe=xTe.toString;function DTe(r){if(r!=null){try{return PTe.call(r)}catch{}try{return r+""}catch{}}return""}DZ.exports=DTe});var RZ=w((qat,kZ)=>{var kTe=U0(),RTe=PZ(),FTe=vn(),NTe=ON(),TTe=/[\\^$.*+?()[\]{}|]/g,LTe=/^\[object .+?Constructor\]$/,MTe=Function.prototype,OTe=Object.prototype,KTe=MTe.toString,UTe=OTe.hasOwnProperty,HTe=RegExp("^"+KTe.call(UTe).replace(TTe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function GTe(r){if(!FTe(r)||RTe(r))return!1;var e=kTe(r)?HTe:LTe;return e.test(NTe(r))}kZ.exports=GTe});var NZ=w((Jat,FZ)=>{function YTe(r,e){return r==null?void 0:r[e]}FZ.exports=YTe});var pl=w((Wat,TZ)=>{var jTe=RZ(),qTe=NZ();function JTe(r,e){var t=qTe(r,e);return jTe(t)?t:void 0}TZ.exports=JTe});var _C=w((zat,LZ)=>{var WTe=pl(),zTe=WTe(Object,"create");LZ.exports=zTe});var KZ=w((Vat,OZ)=>{var MZ=_C();function VTe(){this.__data__=MZ?MZ(null):{},this.size=0}OZ.exports=VTe});var HZ=w((Xat,UZ)=>{function XTe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}UZ.exports=XTe});var YZ=w((Zat,GZ)=>{var ZTe=_C(),_Te="__lodash_hash_undefined__",$Te=Object.prototype,eLe=$Te.hasOwnProperty;function tLe(r){var e=this.__data__;if(ZTe){var t=e[r];return t===_Te?void 0:t}return eLe.call(e,r)?e[r]:void 0}GZ.exports=tLe});var qZ=w((_at,jZ)=>{var rLe=_C(),iLe=Object.prototype,nLe=iLe.hasOwnProperty;function sLe(r){var e=this.__data__;return rLe?e[r]!==void 0:nLe.call(e,r)}jZ.exports=sLe});var WZ=w(($at,JZ)=>{var oLe=_C(),aLe="__lodash_hash_undefined__";function ALe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=oLe&&e===void 0?aLe:e,this}JZ.exports=ALe});var VZ=w((eAt,zZ)=>{var lLe=KZ(),cLe=HZ(),uLe=YZ(),gLe=qZ(),fLe=WZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{function hLe(){this.__data__=[],this.size=0}XZ.exports=hLe});var Ih=w((rAt,_Z)=>{function pLe(r,e){return r===e||r!==r&&e!==e}_Z.exports=pLe});var $C=w((iAt,$Z)=>{var dLe=Ih();function CLe(r,e){for(var t=r.length;t--;)if(dLe(r[t][0],e))return t;return-1}$Z.exports=CLe});var t_=w((nAt,e_)=>{var mLe=$C(),ELe=Array.prototype,ILe=ELe.splice;function yLe(r){var e=this.__data__,t=mLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():ILe.call(e,t,1),--this.size,!0}e_.exports=yLe});var i_=w((sAt,r_)=>{var wLe=$C();function BLe(r){var e=this.__data__,t=wLe(e,r);return t<0?void 0:e[t][1]}r_.exports=BLe});var s_=w((oAt,n_)=>{var bLe=$C();function QLe(r){return bLe(this.__data__,r)>-1}n_.exports=QLe});var a_=w((aAt,o_)=>{var SLe=$C();function vLe(r,e){var t=this.__data__,i=SLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}o_.exports=vLe});var em=w((AAt,A_)=>{var xLe=ZZ(),PLe=t_(),DLe=i_(),kLe=s_(),RLe=a_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var FLe=pl(),NLe=ys(),TLe=FLe(NLe,"Map");l_.exports=TLe});var g_=w((cAt,u_)=>{var c_=VZ(),LLe=em(),MLe=H0();function OLe(){this.size=0,this.__data__={hash:new c_,map:new(MLe||LLe),string:new c_}}u_.exports=OLe});var h_=w((uAt,f_)=>{function KLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}f_.exports=KLe});var tm=w((gAt,p_)=>{var ULe=h_();function HLe(r,e){var t=r.__data__;return ULe(e)?t[typeof e=="string"?"string":"hash"]:t.map}p_.exports=HLe});var C_=w((fAt,d_)=>{var GLe=tm();function YLe(r){var e=GLe(this,r).delete(r);return this.size-=e?1:0,e}d_.exports=YLe});var E_=w((hAt,m_)=>{var jLe=tm();function qLe(r){return jLe(this,r).get(r)}m_.exports=qLe});var y_=w((pAt,I_)=>{var JLe=tm();function WLe(r){return JLe(this,r).has(r)}I_.exports=WLe});var B_=w((dAt,w_)=>{var zLe=tm();function VLe(r,e){var t=zLe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}w_.exports=VLe});var G0=w((CAt,b_)=>{var XLe=g_(),ZLe=C_(),_Le=E_(),$Le=y_(),eMe=B_();function wh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var Q_=G0(),tMe="Expected a function";function KN(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(tMe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(KN.Cache||Q_),t}KN.Cache=Q_;S_.exports=KN});var P_=w((EAt,x_)=>{var rMe=v_(),iMe=500;function nMe(r){var e=rMe(r,function(i){return t.size===iMe&&t.clear(),i}),t=e.cache;return e}x_.exports=nMe});var k_=w((IAt,D_)=>{var sMe=P_(),oMe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,aMe=/\\(\\)?/g,AMe=sMe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(oMe,function(t,i,n,s){e.push(n?s.replace(aMe,"$1"):i||t)}),e});D_.exports=AMe});var Bh=w((yAt,R_)=>{var lMe=vs(),cMe=K0(),uMe=k_(),gMe=Vf();function fMe(r,e){return lMe(r)?r:cMe(r,e)?[r]:uMe(gMe(r))}R_.exports=fMe});var Zc=w((wAt,F_)=>{var hMe=gC(),pMe=1/0;function dMe(r){if(typeof r=="string"||hMe(r))return r;var e=r+"";return e=="0"&&1/r==-pMe?"-0":e}F_.exports=dMe});var rm=w((BAt,N_)=>{var CMe=Bh(),mMe=Zc();function EMe(r,e){e=CMe(e,r);for(var t=0,i=e.length;r!=null&&t{var IMe=pl(),yMe=function(){try{var r=IMe(Object,"defineProperty");return r({},"",{}),r}catch{}}();T_.exports=yMe});var bh=w((QAt,M_)=>{var L_=UN();function wMe(r,e,t){e=="__proto__"&&L_?L_(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}M_.exports=wMe});var Y0=w((SAt,O_)=>{var BMe=bh(),bMe=Ih(),QMe=Object.prototype,SMe=QMe.hasOwnProperty;function vMe(r,e,t){var i=r[e];(!(SMe.call(r,e)&&bMe(i,t))||t===void 0&&!(e in r))&&BMe(r,e,t)}O_.exports=vMe});var im=w((vAt,K_)=>{var xMe=9007199254740991,PMe=/^(?:0|[1-9]\d*)$/;function DMe(r,e){var t=typeof r;return e=e==null?xMe:e,!!e&&(t=="number"||t!="symbol"&&PMe.test(r))&&r>-1&&r%1==0&&r{var kMe=Y0(),RMe=Bh(),FMe=im(),U_=vn(),NMe=Zc();function TMe(r,e,t,i){if(!U_(r))return r;e=RMe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n{var LMe=rm(),MMe=HN(),OMe=Bh();function KMe(r,e,t){for(var i=-1,n=e.length,s={};++i{function UMe(r,e){return r!=null&&e in Object(r)}j_.exports=UMe});var W_=w((kAt,J_)=>{var HMe=Fc(),GMe=Wo(),YMe="[object Arguments]";function jMe(r){return GMe(r)&&HMe(r)==YMe}J_.exports=jMe});var nm=w((RAt,X_)=>{var z_=W_(),qMe=Wo(),V_=Object.prototype,JMe=V_.hasOwnProperty,WMe=V_.propertyIsEnumerable,zMe=z_(function(){return arguments}())?z_:function(r){return qMe(r)&&JMe.call(r,"callee")&&!WMe.call(r,"callee")};X_.exports=zMe});var j0=w((FAt,Z_)=>{var VMe=9007199254740991;function XMe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=VMe}Z_.exports=XMe});var GN=w((NAt,__)=>{var ZMe=Bh(),_Me=nm(),$Me=vs(),eOe=im(),tOe=j0(),rOe=Zc();function iOe(r,e,t){e=ZMe(e,r);for(var i=-1,n=e.length,s=!1;++i{var nOe=q_(),sOe=GN();function oOe(r,e){return r!=null&&sOe(r,e,nOe)}$_.exports=oOe});var t$=w((LAt,e$)=>{var aOe=Y_(),AOe=YN();function lOe(r,e){return aOe(r,e,function(t,i){return AOe(r,i)})}e$.exports=lOe});var q0=w((MAt,r$)=>{function cOe(r,e){for(var t=-1,i=e.length,n=r.length;++t{var i$=Rc(),uOe=nm(),gOe=vs(),n$=i$?i$.isConcatSpreadable:void 0;function fOe(r){return gOe(r)||uOe(r)||!!(n$&&r&&r[n$])}s$.exports=fOe});var l$=w((KAt,A$)=>{var hOe=q0(),pOe=o$();function a$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=pOe),n||(n=[]);++s0&&t(a)?e>1?a$(a,e-1,t,i,n):hOe(n,a):i||(n[n.length]=a)}return n}A$.exports=a$});var u$=w((UAt,c$)=>{var dOe=l$();function COe(r){var e=r==null?0:r.length;return e?dOe(r,1):[]}c$.exports=COe});var f$=w((HAt,g$)=>{function mOe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}g$.exports=mOe});var jN=w((GAt,p$)=>{var EOe=f$(),h$=Math.max;function IOe(r,e,t){return e=h$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=h$(i.length-e,0),o=Array(s);++n{function yOe(r){return function(){return r}}d$.exports=yOe});var J0=w((jAt,m$)=>{function wOe(r){return r}m$.exports=wOe});var y$=w((qAt,I$)=>{var BOe=C$(),E$=UN(),bOe=J0(),QOe=E$?function(r,e){return E$(r,"toString",{configurable:!0,enumerable:!1,value:BOe(e),writable:!0})}:bOe;I$.exports=QOe});var B$=w((JAt,w$)=>{var SOe=800,vOe=16,xOe=Date.now;function POe(r){var e=0,t=0;return function(){var i=xOe(),n=vOe-(i-t);if(t=i,n>0){if(++e>=SOe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}w$.exports=POe});var qN=w((WAt,b$)=>{var DOe=y$(),kOe=B$(),ROe=kOe(DOe);b$.exports=ROe});var S$=w((zAt,Q$)=>{var FOe=u$(),NOe=jN(),TOe=qN();function LOe(r){return TOe(NOe(r,void 0,FOe),r+"")}Q$.exports=LOe});var x$=w((VAt,v$)=>{var MOe=t$(),OOe=S$(),KOe=OOe(function(r,e){return r==null?{}:MOe(r,e)});v$.exports=KOe});var K$=w((mct,O$)=>{"use strict";var _N;try{_N=Map}catch{}var $N;try{$N=Set}catch{}function L$(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(M$);if(_N&&r instanceof _N)return new Map(Array.from(r.entries()));if($N&&r instanceof $N)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:L$(r[n],e,t)}return i}return r}function M$(r){return L$(r,[],[])}O$.exports=M$});var om=w(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.default=e1e;var zOe=Object.prototype.toString,VOe=Error.prototype.toString,XOe=RegExp.prototype.toString,ZOe=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",_Oe=/^Symbol\((.*)\)(.*)$/;function $Oe(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function U$(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return $Oe(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return ZOe.call(r).replace(_Oe,"Symbol($1)");let i=zOe.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+VOe.call(r)+"]":i==="RegExp"?XOe.call(r):null}function e1e(r,e){let t=U$(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=U$(this[i],e);return s!==null?s:n},2)}});var iA=w(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.default=Ei.array=Ei.object=Ei.boolean=Ei.date=Ei.number=Ei.string=Ei.mixed=void 0;var H$=t1e(om());function t1e(r){return r&&r.__esModule?r:{default:r}}var G$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,H$.default)(t,!0)}\``+(n?` (cast from the value \`${(0,H$.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};Ei.mixed=G$;var Y$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};Ei.string=Y$;var j$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};Ei.number=j$;var q$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ei.date=q$;var J$={isValue:"${path} field must be ${value}"};Ei.boolean=J$;var W$={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ei.object=W$;var z$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Ei.array=z$;var r1e=Object.assign(Object.create(null),{mixed:G$,string:Y$,number:j$,date:q$,object:W$,array:z$,boolean:J$});Ei.default=r1e});var X$=w((yct,V$)=>{var i1e=Object.prototype,n1e=i1e.hasOwnProperty;function s1e(r,e){return r!=null&&n1e.call(r,e)}V$.exports=s1e});var am=w((wct,Z$)=>{var o1e=X$(),a1e=GN();function A1e(r,e){return r!=null&&a1e(r,e,o1e)}Z$.exports=A1e});var xh=w(eb=>{"use strict";Object.defineProperty(eb,"__esModule",{value:!0});eb.default=void 0;var l1e=r=>r&&r.__isYupSchema__;eb.default=l1e});var $$=w(tb=>{"use strict";Object.defineProperty(tb,"__esModule",{value:!0});tb.default=void 0;var c1e=_$(am()),u1e=_$(xh());function _$(r){return r&&r.__esModule?r:{default:r}}var tT=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,c1e.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,u1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},g1e=tT;tb.default=g1e});var iT=w(rT=>{"use strict";Object.defineProperty(rT,"__esModule",{value:!0});rT.default=f1e;function f1e(r){return r==null?[]:[].concat(r)}});var _c=w(rb=>{"use strict";Object.defineProperty(rb,"__esModule",{value:!0});rb.default=void 0;var h1e=eee(om()),p1e=eee(iT());function eee(r){return r&&r.__esModule?r:{default:r}}function nT(){return nT=Object.assign||function(r){for(var e=1;e(0,h1e.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super(),this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,p1e.default)(e).forEach(s=>{Ph.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Ph)}};rb.default=Ph});var ib=w(oT=>{"use strict";Object.defineProperty(oT,"__esModule",{value:!0});oT.default=E1e;var sT=C1e(_c());function C1e(r){return r&&r.__esModule?r:{default:r}}var m1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function E1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=m1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new sT.default(o,s,l)):c(null,s);for(let f=0;f{function I1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}tee.exports=I1e});var aT=w((Pct,iee)=>{var y1e=ree(),w1e=y1e();iee.exports=w1e});var see=w((Dct,nee)=>{function B1e(r,e){for(var t=-1,i=Array(r);++t{function b1e(){return!1}oee.exports=b1e});var lm=w((Am,Dh)=>{var Q1e=ys(),S1e=aee(),cee=typeof Am=="object"&&Am&&!Am.nodeType&&Am,Aee=cee&&typeof Dh=="object"&&Dh&&!Dh.nodeType&&Dh,v1e=Aee&&Aee.exports===cee,lee=v1e?Q1e.Buffer:void 0,x1e=lee?lee.isBuffer:void 0,P1e=x1e||S1e;Dh.exports=P1e});var gee=w((Rct,uee)=>{var D1e=Fc(),k1e=j0(),R1e=Wo(),F1e="[object Arguments]",N1e="[object Array]",T1e="[object Boolean]",L1e="[object Date]",M1e="[object Error]",O1e="[object Function]",K1e="[object Map]",U1e="[object Number]",H1e="[object Object]",G1e="[object RegExp]",Y1e="[object Set]",j1e="[object String]",q1e="[object WeakMap]",J1e="[object ArrayBuffer]",W1e="[object DataView]",z1e="[object Float32Array]",V1e="[object Float64Array]",X1e="[object Int8Array]",Z1e="[object Int16Array]",_1e="[object Int32Array]",$1e="[object Uint8Array]",eKe="[object Uint8ClampedArray]",tKe="[object Uint16Array]",rKe="[object Uint32Array]",Ir={};Ir[z1e]=Ir[V1e]=Ir[X1e]=Ir[Z1e]=Ir[_1e]=Ir[$1e]=Ir[eKe]=Ir[tKe]=Ir[rKe]=!0;Ir[F1e]=Ir[N1e]=Ir[J1e]=Ir[T1e]=Ir[W1e]=Ir[L1e]=Ir[M1e]=Ir[O1e]=Ir[K1e]=Ir[U1e]=Ir[H1e]=Ir[G1e]=Ir[Y1e]=Ir[j1e]=Ir[q1e]=!1;function iKe(r){return R1e(r)&&k1e(r.length)&&!!Ir[D1e(r)]}uee.exports=iKe});var nb=w((Fct,fee)=>{function nKe(r){return function(e){return r(e)}}fee.exports=nKe});var sb=w((cm,kh)=>{var sKe=WD(),hee=typeof cm=="object"&&cm&&!cm.nodeType&&cm,um=hee&&typeof kh=="object"&&kh&&!kh.nodeType&&kh,oKe=um&&um.exports===hee,AT=oKe&&sKe.process,aKe=function(){try{var r=um&&um.require&&um.require("util").types;return r||AT&&AT.binding&&AT.binding("util")}catch{}}();kh.exports=aKe});var ob=w((Nct,Cee)=>{var AKe=gee(),lKe=nb(),pee=sb(),dee=pee&&pee.isTypedArray,cKe=dee?lKe(dee):AKe;Cee.exports=cKe});var lT=w((Tct,mee)=>{var uKe=see(),gKe=nm(),fKe=vs(),hKe=lm(),pKe=im(),dKe=ob(),CKe=Object.prototype,mKe=CKe.hasOwnProperty;function EKe(r,e){var t=fKe(r),i=!t&&gKe(r),n=!t&&!i&&hKe(r),s=!t&&!i&&!n&&dKe(r),o=t||i||n||s,a=o?uKe(r.length,String):[],l=a.length;for(var c in r)(e||mKe.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||pKe(c,l)))&&a.push(c);return a}mee.exports=EKe});var ab=w((Lct,Eee)=>{var IKe=Object.prototype;function yKe(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||IKe;return r===t}Eee.exports=yKe});var cT=w((Mct,Iee)=>{function wKe(r,e){return function(t){return r(e(t))}}Iee.exports=wKe});var wee=w((Oct,yee)=>{var BKe=cT(),bKe=BKe(Object.keys,Object);yee.exports=bKe});var bee=w((Kct,Bee)=>{var QKe=ab(),SKe=wee(),vKe=Object.prototype,xKe=vKe.hasOwnProperty;function PKe(r){if(!QKe(r))return SKe(r);var e=[];for(var t in Object(r))xKe.call(r,t)&&t!="constructor"&&e.push(t);return e}Bee.exports=PKe});var gm=w((Uct,Qee)=>{var DKe=U0(),kKe=j0();function RKe(r){return r!=null&&kKe(r.length)&&!DKe(r)}Qee.exports=RKe});var Rh=w((Hct,See)=>{var FKe=lT(),NKe=bee(),TKe=gm();function LKe(r){return TKe(r)?FKe(r):NKe(r)}See.exports=LKe});var uT=w((Gct,vee)=>{var MKe=aT(),OKe=Rh();function KKe(r,e){return r&&MKe(r,e,OKe)}vee.exports=KKe});var Pee=w((Yct,xee)=>{var UKe=em();function HKe(){this.__data__=new UKe,this.size=0}xee.exports=HKe});var kee=w((jct,Dee)=>{function GKe(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}Dee.exports=GKe});var Fee=w((qct,Ree)=>{function YKe(r){return this.__data__.get(r)}Ree.exports=YKe});var Tee=w((Jct,Nee)=>{function jKe(r){return this.__data__.has(r)}Nee.exports=jKe});var Mee=w((Wct,Lee)=>{var qKe=em(),JKe=H0(),WKe=G0(),zKe=200;function VKe(r,e){var t=this.__data__;if(t instanceof qKe){var i=t.__data__;if(!JKe||i.length{var XKe=em(),ZKe=Pee(),_Ke=kee(),$Ke=Fee(),eUe=Tee(),tUe=Mee();function Fh(r){var e=this.__data__=new XKe(r);this.size=e.size}Fh.prototype.clear=ZKe;Fh.prototype.delete=_Ke;Fh.prototype.get=$Ke;Fh.prototype.has=eUe;Fh.prototype.set=tUe;Oee.exports=Fh});var Uee=w((Vct,Kee)=>{var rUe="__lodash_hash_undefined__";function iUe(r){return this.__data__.set(r,rUe),this}Kee.exports=iUe});var Gee=w((Xct,Hee)=>{function nUe(r){return this.__data__.has(r)}Hee.exports=nUe});var jee=w((Zct,Yee)=>{var sUe=G0(),oUe=Uee(),aUe=Gee();function Ab(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new sUe;++e{function AUe(r,e){for(var t=-1,i=r==null?0:r.length;++t{function lUe(r,e){return r.has(e)}Wee.exports=lUe});var gT=w((eut,Vee)=>{var cUe=jee(),uUe=Jee(),gUe=zee(),fUe=1,hUe=2;function pUe(r,e,t,i,n,s){var o=t&fUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,f=!0,h=t&hUe?new cUe:void 0;for(s.set(r,e),s.set(e,r);++g{var dUe=ys(),CUe=dUe.Uint8Array;Xee.exports=CUe});var _ee=w((rut,Zee)=>{function mUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}Zee.exports=mUe});var ete=w((iut,$ee)=>{function EUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}$ee.exports=EUe});var ste=w((nut,nte)=>{var tte=Rc(),rte=fT(),IUe=Ih(),yUe=gT(),wUe=_ee(),BUe=ete(),bUe=1,QUe=2,SUe="[object Boolean]",vUe="[object Date]",xUe="[object Error]",PUe="[object Map]",DUe="[object Number]",kUe="[object RegExp]",RUe="[object Set]",FUe="[object String]",NUe="[object Symbol]",TUe="[object ArrayBuffer]",LUe="[object DataView]",ite=tte?tte.prototype:void 0,hT=ite?ite.valueOf:void 0;function MUe(r,e,t,i,n,s,o){switch(t){case LUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case TUe:return!(r.byteLength!=e.byteLength||!s(new rte(r),new rte(e)));case SUe:case vUe:case DUe:return IUe(+r,+e);case xUe:return r.name==e.name&&r.message==e.message;case kUe:case FUe:return r==e+"";case PUe:var a=wUe;case RUe:var l=i&bUe;if(a||(a=BUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=QUe,o.set(r,e);var u=yUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case NUe:if(hT)return hT.call(r)==hT.call(e)}return!1}nte.exports=MUe});var pT=w((sut,ote)=>{var OUe=q0(),KUe=vs();function UUe(r,e,t){var i=e(r);return KUe(r)?i:OUe(i,t(r))}ote.exports=UUe});var Ate=w((out,ate)=>{function HUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t{function GUe(){return[]}lte.exports=GUe});var lb=w((Aut,ute)=>{var YUe=Ate(),jUe=dT(),qUe=Object.prototype,JUe=qUe.propertyIsEnumerable,cte=Object.getOwnPropertySymbols,WUe=cte?function(r){return r==null?[]:(r=Object(r),YUe(cte(r),function(e){return JUe.call(r,e)}))}:jUe;ute.exports=WUe});var CT=w((lut,gte)=>{var zUe=pT(),VUe=lb(),XUe=Rh();function ZUe(r){return zUe(r,XUe,VUe)}gte.exports=ZUe});var pte=w((cut,hte)=>{var fte=CT(),_Ue=1,$Ue=Object.prototype,e2e=$Ue.hasOwnProperty;function t2e(r,e,t,i,n,s){var o=t&_Ue,a=fte(r),l=a.length,c=fte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var f=a[g];if(!(o?f in e:e2e.call(e,f)))return!1}var h=s.get(r),p=s.get(e);if(h&&p)return h==e&&p==r;var C=!0;s.set(r,e),s.set(e,r);for(var y=o;++g{var r2e=pl(),i2e=ys(),n2e=r2e(i2e,"DataView");dte.exports=n2e});var Ete=w((gut,mte)=>{var s2e=pl(),o2e=ys(),a2e=s2e(o2e,"Promise");mte.exports=a2e});var yte=w((fut,Ite)=>{var A2e=pl(),l2e=ys(),c2e=A2e(l2e,"Set");Ite.exports=c2e});var Bte=w((hut,wte)=>{var u2e=pl(),g2e=ys(),f2e=u2e(g2e,"WeakMap");wte.exports=f2e});var hm=w((put,Dte)=>{var mT=Cte(),ET=H0(),IT=Ete(),yT=yte(),wT=Bte(),Pte=Fc(),Nh=ON(),bte="[object Map]",h2e="[object Object]",Qte="[object Promise]",Ste="[object Set]",vte="[object WeakMap]",xte="[object DataView]",p2e=Nh(mT),d2e=Nh(ET),C2e=Nh(IT),m2e=Nh(yT),E2e=Nh(wT),$c=Pte;(mT&&$c(new mT(new ArrayBuffer(1)))!=xte||ET&&$c(new ET)!=bte||IT&&$c(IT.resolve())!=Qte||yT&&$c(new yT)!=Ste||wT&&$c(new wT)!=vte)&&($c=function(r){var e=Pte(r),t=e==h2e?r.constructor:void 0,i=t?Nh(t):"";if(i)switch(i){case p2e:return xte;case d2e:return bte;case C2e:return Qte;case m2e:return Ste;case E2e:return vte}return e});Dte.exports=$c});var Ote=w((dut,Mte)=>{var BT=fm(),I2e=gT(),y2e=ste(),w2e=pte(),kte=hm(),Rte=vs(),Fte=lm(),B2e=ob(),b2e=1,Nte="[object Arguments]",Tte="[object Array]",cb="[object Object]",Q2e=Object.prototype,Lte=Q2e.hasOwnProperty;function S2e(r,e,t,i,n,s){var o=Rte(r),a=Rte(e),l=o?Tte:kte(r),c=a?Tte:kte(e);l=l==Nte?cb:l,c=c==Nte?cb:c;var u=l==cb,g=c==cb,f=l==c;if(f&&Fte(r)){if(!Fte(e))return!1;o=!0,u=!1}if(f&&!u)return s||(s=new BT),o||B2e(r)?I2e(r,e,t,i,n,s):y2e(r,e,l,t,i,n,s);if(!(t&b2e)){var h=u&&Lte.call(r,"__wrapped__"),p=g&&Lte.call(e,"__wrapped__");if(h||p){var C=h?r.value():r,y=p?e.value():e;return s||(s=new BT),n(C,y,t,i,s)}}return f?(s||(s=new BT),w2e(r,e,t,i,n,s)):!1}Mte.exports=S2e});var bT=w((Cut,Hte)=>{var v2e=Ote(),Kte=Wo();function Ute(r,e,t,i,n){return r===e?!0:r==null||e==null||!Kte(r)&&!Kte(e)?r!==r&&e!==e:v2e(r,e,t,i,Ute,n)}Hte.exports=Ute});var Yte=w((mut,Gte)=>{var x2e=fm(),P2e=bT(),D2e=1,k2e=2;function R2e(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n{var F2e=vn();function N2e(r){return r===r&&!F2e(r)}jte.exports=N2e});var Jte=w((Iut,qte)=>{var T2e=QT(),L2e=Rh();function M2e(r){for(var e=L2e(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,T2e(n)]}return e}qte.exports=M2e});var ST=w((yut,Wte)=>{function O2e(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Wte.exports=O2e});var Vte=w((wut,zte)=>{var K2e=Yte(),U2e=Jte(),H2e=ST();function G2e(r){var e=U2e(r);return e.length==1&&e[0][2]?H2e(e[0][0],e[0][1]):function(t){return t===r||K2e(t,r,e)}}zte.exports=G2e});var ub=w((But,Xte)=>{var Y2e=rm();function j2e(r,e,t){var i=r==null?void 0:Y2e(r,e);return i===void 0?t:i}Xte.exports=j2e});var _te=w((but,Zte)=>{var q2e=bT(),J2e=ub(),W2e=YN(),z2e=K0(),V2e=QT(),X2e=ST(),Z2e=Zc(),_2e=1,$2e=2;function eHe(r,e){return z2e(r)&&V2e(e)?X2e(Z2e(r),e):function(t){var i=J2e(t,r);return i===void 0&&i===e?W2e(t,r):q2e(e,i,_2e|$2e)}}Zte.exports=eHe});var ere=w((Qut,$te)=>{function tHe(r){return function(e){return e==null?void 0:e[r]}}$te.exports=tHe});var rre=w((Sut,tre)=>{var rHe=rm();function iHe(r){return function(e){return rHe(e,r)}}tre.exports=iHe});var nre=w((vut,ire)=>{var nHe=ere(),sHe=rre(),oHe=K0(),aHe=Zc();function AHe(r){return oHe(r)?nHe(aHe(r)):sHe(r)}ire.exports=AHe});var vT=w((xut,sre)=>{var lHe=Vte(),cHe=_te(),uHe=J0(),gHe=vs(),fHe=nre();function hHe(r){return typeof r=="function"?r:r==null?uHe:typeof r=="object"?gHe(r)?cHe(r[0],r[1]):lHe(r):fHe(r)}sre.exports=hHe});var xT=w((Put,ore)=>{var pHe=bh(),dHe=uT(),CHe=vT();function mHe(r,e){var t={};return e=CHe(e,3),dHe(r,function(i,n,s){pHe(t,n,e(i,n,s))}),t}ore.exports=mHe});var pm=w((Dut,ure)=>{"use strict";function eu(r){this._maxSize=r,this.clear()}eu.prototype.clear=function(){this._size=0,this._values=Object.create(null)};eu.prototype.get=function(r){return this._values[r]};eu.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var EHe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,cre=/^\d+$/,IHe=/^\d/,yHe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,wHe=/^\s*(['"]?)(.*?)(\1)\s*$/,kT=512,are=new eu(kT),Are=new eu(kT),lre=new eu(kT);ure.exports={Cache:eu,split:DT,normalizePath:PT,setter:function(r){var e=PT(r);return Are.get(r)||Are.set(r,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(Cm,"__esModule",{value:!0});Cm.create=xHe;Cm.default=void 0;var vHe=pm(),gb={context:"$",value:"."};function xHe(r,e){return new dm(r,e)}var dm=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===gb.context,this.isValue=this.key[0]===gb.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?gb.context:this.isValue?gb.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,vHe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Cm.default=dm;dm.prototype.__isYupRef=!0});var gre=w(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});NT.default=RHe;var PHe=FT(xT()),fb=FT(_c()),DHe=FT(tu());function FT(r){return r&&r.__esModule?r:{default:r}}function hb(){return hb=Object.assign||function(r){for(var e=1;e=0)&&(t[n]=r[n]);return t}function RHe(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=kHe(t,["value","path","label","options","originalValue","sync"]),{name:g,test:f,params:h,message:p}=r,{parent:C,context:y}=a;function B(j){return DHe.default.isRef(j)?j.getValue(n,C,y):j}function v(j={}){let $=(0,PHe.default)(hb({value:n,originalValue:l,label:o,path:j.path||s},h,j.params),B),V=new fb.default(fb.default.formatError(j.message||p,$),n,$.path,j.type||g);return V.params=$,V}let D=hb({path:s,parent:C,type:g,createError:v,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(f.call(D,n,D)).then(j=>{fb.default.isError(j)?i(j):j?i(null,j):i(v())})}catch(j){i(j)}return}let T;try{var H;if(T=f.call(D,n,D),typeof((H=T)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${D.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(j){i(j);return}fb.default.isError(T)?i(T):T?i(null,T):i(v())}return e.OPTIONS=r,e}});var TT=w(mm=>{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.getIn=fre;mm.default=void 0;var FHe=pm(),NHe=r=>r.substr(0,r.length-1).substr(1);function fre(r,e,t,i=t){let n,s,o;return e?((0,FHe.forEach)(e,(a,l,c)=>{let u=l?NHe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var THe=(r,e,t,i)=>fre(r,e,t,i).schema,LHe=THe;mm.default=LHe});var pre=w(pb=>{"use strict";Object.defineProperty(pb,"__esModule",{value:!0});pb.default=void 0;var hre=MHe(tu());function MHe(r){return r&&r.__esModule?r:{default:r}}var Em=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){hre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){hre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Em;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};pb.default=Em});var sA=w(Cb=>{"use strict";Object.defineProperty(Cb,"__esModule",{value:!0});Cb.default=void 0;var dre=nA(K$()),Th=iA(),OHe=nA($$()),Cre=nA(ib()),db=nA(gre()),mre=nA(om()),KHe=nA(tu()),UHe=TT(),HHe=nA(iT()),Ere=nA(_c()),Ire=nA(pre());function nA(r){return r&&r.__esModule?r:{default:r}}function Fs(){return Fs=Object.assign||function(r){for(var e=1;e{this.typeError(Th.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Fs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Fs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,dre.default)(Fs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Fs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Fs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,mre.default)(e),o=(0,mre.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". attempted value: ${s} -`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Fs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,pre.default)({args:g,value:u,path:s,sync:n,tests:f,endEarly:c},h=>{if(h)return void i(h,u);(0,pre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Fs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Fs({},t,{value:e})),n;return i._validate(e,Fs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Cre.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Cre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,hre.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Th.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Th.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Th.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,db.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,KHe.default)(e).map(s=>new MHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new LHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,db.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Th.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,db.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Th.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,db.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};Cb.default=co;co.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])co.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,OHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Fs({},i,{parent:n,path:e}))};for(let r of["equals","is"])co.prototype[r]=co.prototype.oneOf;for(let r of["not","nope"])co.prototype[r]=co.prototype.notOneOf;co.prototype.optional=co.prototype.notRequired});var Ire=w(Im=>{"use strict";Object.defineProperty(Im,"__esModule",{value:!0});Im.create=Ere;Im.default=void 0;var UHe=HHe(oA());function HHe(r){return r&&r.__esModule?r:{default:r}}var NT=UHe.default,GHe=NT;Im.default=GHe;function Ere(){return new NT}Ere.prototype=NT.prototype});var Lh=w(mb=>{"use strict";Object.defineProperty(mb,"__esModule",{value:!0});mb.default=void 0;var YHe=r=>r==null;mb.default=YHe});var Qre=w(wm=>{"use strict";Object.defineProperty(wm,"__esModule",{value:!0});wm.create=bre;wm.default=void 0;var jHe=Bre(oA()),yre=nA(),wre=Bre(Lh());function Bre(r){return r&&r.__esModule?r:{default:r}}function bre(){return new ym}var ym=class extends jHe.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=yre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,wre.default)(t)||t===!0}})}isFalse(e=yre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,wre.default)(t)||t===!1}})}};wm.default=ym;bre.prototype=ym.prototype});var xre=w(bm=>{"use strict";Object.defineProperty(bm,"__esModule",{value:!0});bm.create=vre;bm.default=void 0;var ia=nA(),aA=Sre(Lh()),qHe=Sre(oA());function Sre(r){return r&&r.__esModule?r:{default:r}}var JHe=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,WHe=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,zHe=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,VHe=r=>(0,aA.default)(r)||r===r.trim(),XHe={}.toString();function vre(){return new Bm}var Bm=class extends qHe.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===XHe?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ia.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ia.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ia.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,aA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ia.string.matches,params:{regex:e},test:o=>(0,aA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ia.string.email){return this.matches(JHe,{name:"email",message:e,excludeEmptyString:!0})}url(e=ia.string.url){return this.matches(WHe,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ia.string.uuid){return this.matches(zHe,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ia.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:VHe})}lowercase(e=ia.string.lowercase){return this.transform(t=>(0,aA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toLowerCase()})}uppercase(e=ia.string.uppercase){return this.transform(t=>(0,aA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toUpperCase()})}};bm.default=Bm;vre.prototype=Bm.prototype});var kre=w(Sm=>{"use strict";Object.defineProperty(Sm,"__esModule",{value:!0});Sm.create=Dre;Sm.default=void 0;var ru=nA(),iu=Pre(Lh()),ZHe=Pre(oA());function Pre(r){return r&&r.__esModule?r:{default:r}}var _He=r=>r!=+r;function Dre(){return new Qm}var Qm=class extends ZHe.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!_He(e)}min(e,t=ru.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,iu.default)(i)||i>=this.resolve(e)}})}max(e,t=ru.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,iu.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=ru.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,iu.default)(i)||ithis.resolve(e)}})}positive(e=ru.number.positive){return this.moreThan(0,e)}negative(e=ru.number.negative){return this.lessThan(0,e)}integer(e=ru.number.integer){return this.test({name:"integer",message:e,test:t=>(0,iu.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,iu.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,iu.default)(n)?n:Math[e](n))}};Sm.default=Qm;Dre.prototype=Qm.prototype});var Rre=w(TT=>{"use strict";Object.defineProperty(TT,"__esModule",{value:!0});TT.default=eGe;var $He=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function eGe(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=$He.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Tre=w(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.create=MT;vm.default=void 0;var tGe=Eb(Rre()),Fre=nA(),Nre=Eb(Lh()),rGe=Eb(tu()),iGe=Eb(oA());function Eb(r){return r&&r.__esModule?r:{default:r}}var LT=new Date(""),nGe=r=>Object.prototype.toString.call(r)==="[object Date]";function MT(){return new Mh}var Mh=class extends iGe.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,tGe.default)(e),isNaN(e)?LT:new Date(e))})})}_typeCheck(e){return nGe(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(rGe.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=Fre.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Nre.default)(n)||n>=this.resolve(i)}})}max(e,t=Fre.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Nre.default)(n)||n<=this.resolve(i)}})}};vm.default=Mh;Mh.INVALID_DATE=LT;MT.prototype=Mh.prototype;MT.INVALID_DATE=LT});var Mre=w((Hut,Lre)=>{function sGe(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n{function oGe(r){return function(e){return r==null?void 0:r[e]}}Ore.exports=oGe});var Hre=w((Yut,Ure)=>{var aGe=Kre(),AGe={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},lGe=aGe(AGe);Ure.exports=lGe});var Yre=w((jut,Gre)=>{var cGe=Hre(),uGe=Vf(),gGe=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,fGe="\\u0300-\\u036f",hGe="\\ufe20-\\ufe2f",pGe="\\u20d0-\\u20ff",dGe=fGe+hGe+pGe,CGe="["+dGe+"]",mGe=RegExp(CGe,"g");function EGe(r){return r=uGe(r),r&&r.replace(gGe,cGe).replace(mGe,"")}Gre.exports=EGe});var qre=w((qut,jre)=>{var IGe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function yGe(r){return r.match(IGe)||[]}jre.exports=yGe});var Wre=w((Jut,Jre)=>{var wGe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function BGe(r){return wGe.test(r)}Jre.exports=BGe});var gie=w((Wut,uie)=>{var _re="\\ud800-\\udfff",bGe="\\u0300-\\u036f",QGe="\\ufe20-\\ufe2f",SGe="\\u20d0-\\u20ff",vGe=bGe+QGe+SGe,$re="\\u2700-\\u27bf",eie="a-z\\xdf-\\xf6\\xf8-\\xff",xGe="\\xac\\xb1\\xd7\\xf7",PGe="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",DGe="\\u2000-\\u206f",kGe=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",tie="A-Z\\xc0-\\xd6\\xd8-\\xde",RGe="\\ufe0e\\ufe0f",rie=xGe+PGe+DGe+kGe,iie="['\u2019]",zre="["+rie+"]",FGe="["+vGe+"]",nie="\\d+",NGe="["+$re+"]",sie="["+eie+"]",oie="[^"+_re+rie+nie+$re+eie+tie+"]",TGe="\\ud83c[\\udffb-\\udfff]",LGe="(?:"+FGe+"|"+TGe+")",MGe="[^"+_re+"]",aie="(?:\\ud83c[\\udde6-\\uddff]){2}",Aie="[\\ud800-\\udbff][\\udc00-\\udfff]",Oh="["+tie+"]",OGe="\\u200d",Vre="(?:"+sie+"|"+oie+")",KGe="(?:"+Oh+"|"+oie+")",Xre="(?:"+iie+"(?:d|ll|m|re|s|t|ve))?",Zre="(?:"+iie+"(?:D|LL|M|RE|S|T|VE))?",lie=LGe+"?",cie="["+RGe+"]?",UGe="(?:"+OGe+"(?:"+[MGe,aie,Aie].join("|")+")"+cie+lie+")*",HGe="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",GGe="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",YGe=cie+lie+UGe,jGe="(?:"+[NGe,aie,Aie].join("|")+")"+YGe,qGe=RegExp([Oh+"?"+sie+"+"+Xre+"(?="+[zre,Oh,"$"].join("|")+")",KGe+"+"+Zre+"(?="+[zre,Oh+Vre,"$"].join("|")+")",Oh+"?"+Vre+"+"+Xre,Oh+"+"+Zre,GGe,HGe,nie,jGe].join("|"),"g");function JGe(r){return r.match(qGe)||[]}uie.exports=JGe});var hie=w((zut,fie)=>{var WGe=qre(),zGe=Wre(),VGe=Vf(),XGe=gie();function ZGe(r,e,t){return r=VGe(r),e=t?void 0:e,e===void 0?zGe(r)?XGe(r):WGe(r):r.match(e)||[]}fie.exports=ZGe});var OT=w((Vut,pie)=>{var _Ge=Mre(),$Ge=Yre(),eYe=hie(),tYe="['\u2019]",rYe=RegExp(tYe,"g");function iYe(r){return function(e){return _Ge(eYe($Ge(e).replace(rYe,"")),r,"")}}pie.exports=iYe});var Cie=w((Xut,die)=>{var nYe=OT(),sYe=nYe(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});die.exports=sYe});var Eie=w((Zut,mie)=>{var oYe=PB(),aYe=OT(),AYe=aYe(function(r,e,t){return e=e.toLowerCase(),r+(t?oYe(e):e)});mie.exports=AYe});var yie=w((_ut,Iie)=>{var lYe=bh(),cYe=lT(),uYe=QT();function gYe(r,e){var t={};return e=uYe(e,3),cYe(r,function(i,n,s){lYe(t,e(i,n,s),i)}),t}Iie.exports=gYe});var Bie=w(($ut,KT)=>{KT.exports=function(r){return wie(fYe(r),r)};KT.exports.array=wie;function wie(r,e){var t=r.length,i=new Array(t),n={},s=t,o=hYe(e),a=pYe(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var f;try{f=", node was:"+JSON.stringify(c)}catch{f=""}throw new Error("Cyclic dependency"+f)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var h=o.get(c)||new Set;if(h=Array.from(h),u=h.length){g.add(c);do{var p=h[--u];l(p,a.get(p),g)}while(u);g.delete(c)}i[--t]=c}}}function fYe(r){for(var e=new Set,t=0,i=r.length;t{"use strict";Object.defineProperty(UT,"__esModule",{value:!0});UT.default=yYe;var dYe=Ib(am()),CYe=Ib(Bie()),mYe=pm(),EYe=Ib(tu()),IYe=Ib(xh());function Ib(r){return r&&r.__esModule?r:{default:r}}function yYe(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,mYe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,dYe.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),EYe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,IYe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return CYe.default.array(i,t).reverse()}});var Sie=w(HT=>{"use strict";Object.defineProperty(HT,"__esModule",{value:!0});HT.default=wYe;function Qie(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function wYe(r){return(e,t)=>Qie(r,e)-Qie(r,t)}});var Fie=w(Pm=>{"use strict";Object.defineProperty(Pm,"__esModule",{value:!0});Pm.create=Rie;Pm.default=void 0;var vie=na(am()),xie=na(Cie()),BYe=na(Eie()),bYe=na(yie()),QYe=na(ST()),SYe=pm(),Pie=nA(),vYe=na(bie()),kie=na(Sie()),xYe=na(ib()),PYe=na(_c()),GT=na(oA());function na(r){return r&&r.__esModule?r:{default:r}}function Kh(){return Kh=Object.assign||function(r){for(var e=1;eObject.prototype.toString.call(r)==="[object Object]";function DYe(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var kYe=(0,kie.default)([]),xm=class extends GT.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=kYe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Die(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Kh({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let f=s[g],h=(0,vie.default)(n,g);if(f){let p,C=n[g];c.path=(t.path?`${t.path}.`:"")+g,f=f.resolve({value:C,context:t.context,parent:l});let y="spec"in f?f.spec:void 0,B=y==null?void 0:y.strict;if(y!=null&&y.strip){u=u||g in n;continue}p=!t.__validating||!B?f.cast(n[g],c):n[g],p!==void 0&&(l[g]=p)}else h&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!PYe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Die(g)){i(n[0]||null,g);return}a=a||g;let f=this._nodes.map(h=>(p,C)=>{let y=h.indexOf(".")===-1?(t.path?`${t.path}.`:"")+h:`${t.path||""}["${h}"]`,B=this.fields[h];if(B&&"validate"in B){B.validate(g[h],Kh({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[h]}),C);return}C(null)});(0,xYe.default)({sync:s,tests:f,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Kh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof GT.default&&s instanceof GT.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,kie.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,vYe.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,SYe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,vie.default)(s,e)&&(o=Kh({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Pie.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=DYe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Pie.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,bYe.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(BYe.default)}snakeCase(){return this.transformKeys(xie.default)}constantCase(){return this.transformKeys(e=>(0,xie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,QYe.default)(this.fields,t=>t.describe()),e}};Pm.default=xm;function Rie(r){return new xm(r)}Rie.prototype=xm.prototype});var Tie=w(km=>{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.create=Nie;km.default=void 0;var YT=Uh(Lh()),RYe=Uh(xh()),FYe=Uh(om()),jT=nA(),NYe=Uh(ib()),TYe=Uh(_c()),LYe=Uh(oA());function Uh(r){return r&&r.__esModule?r:{default:r}}function yb(){return yb=Object.assign||function(r){for(var e=1;e{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,yb({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,f=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(h,p)=>{if(h){if(!TYe.default.isError(h)||u)return void i(h,p);o.push(h)}if(!g||!c||!this._typeCheck(p)){i(o[0]||null,p);return}f=f||p;let C=new Array(p.length);for(let y=0;yc.validate(B,D,H)}(0,NYe.default)({sync:a,path:l,value:p,errors:o,endEarly:u,tests:C},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,RYe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,FYe.default)(e));return t.innerType=e,t}length(e,t=jT.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,YT.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||jT.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,YT.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||jT.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,YT.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};km.default=Dm;Nie.prototype=Dm.prototype});var Lie=w(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.create=KYe;Rm.default=void 0;var MYe=OYe(xh());function OYe(r){return r&&r.__esModule?r:{default:r}}function KYe(r){return new wb(r)}var wb=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,MYe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},UYe=wb;Rm.default=UYe});var Mie=w(qT=>{"use strict";Object.defineProperty(qT,"__esModule",{value:!0});qT.default=YYe;var HYe=GYe(nA());function GYe(r){return r&&r.__esModule?r:{default:r}}function YYe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{HYe.default[e][t]=r[e][t]})})}});var WT=w(yr=>{"use strict";Object.defineProperty(yr,"__esModule",{value:!0});yr.addMethod=XYe;Object.defineProperty(yr,"MixedSchema",{enumerable:!0,get:function(){return Oie.default}});Object.defineProperty(yr,"mixed",{enumerable:!0,get:function(){return Oie.create}});Object.defineProperty(yr,"BooleanSchema",{enumerable:!0,get:function(){return JT.default}});Object.defineProperty(yr,"bool",{enumerable:!0,get:function(){return JT.create}});Object.defineProperty(yr,"boolean",{enumerable:!0,get:function(){return JT.create}});Object.defineProperty(yr,"StringSchema",{enumerable:!0,get:function(){return Kie.default}});Object.defineProperty(yr,"string",{enumerable:!0,get:function(){return Kie.create}});Object.defineProperty(yr,"NumberSchema",{enumerable:!0,get:function(){return Uie.default}});Object.defineProperty(yr,"number",{enumerable:!0,get:function(){return Uie.create}});Object.defineProperty(yr,"DateSchema",{enumerable:!0,get:function(){return Hie.default}});Object.defineProperty(yr,"date",{enumerable:!0,get:function(){return Hie.create}});Object.defineProperty(yr,"ObjectSchema",{enumerable:!0,get:function(){return Gie.default}});Object.defineProperty(yr,"object",{enumerable:!0,get:function(){return Gie.create}});Object.defineProperty(yr,"ArraySchema",{enumerable:!0,get:function(){return Yie.default}});Object.defineProperty(yr,"array",{enumerable:!0,get:function(){return Yie.create}});Object.defineProperty(yr,"ref",{enumerable:!0,get:function(){return jYe.create}});Object.defineProperty(yr,"lazy",{enumerable:!0,get:function(){return qYe.create}});Object.defineProperty(yr,"ValidationError",{enumerable:!0,get:function(){return JYe.default}});Object.defineProperty(yr,"reach",{enumerable:!0,get:function(){return WYe.default}});Object.defineProperty(yr,"isSchema",{enumerable:!0,get:function(){return jie.default}});Object.defineProperty(yr,"setLocale",{enumerable:!0,get:function(){return zYe.default}});Object.defineProperty(yr,"BaseSchema",{enumerable:!0,get:function(){return VYe.default}});var Oie=nu(Ire()),JT=nu(Qre()),Kie=nu(xre()),Uie=nu(kre()),Hie=nu(Tre()),Gie=nu(Fie()),Yie=nu(Tie()),jYe=tu(),qYe=Lie(),JYe=Fm(_c()),WYe=Fm(FT()),jie=Fm(xh()),zYe=Fm(Mie()),VYe=Fm(oA());function Fm(r){return r&&r.__esModule?r:{default:r}}function qie(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return qie=function(){return r},r}function nu(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=qie();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function XYe(r,e,t){if(!r||!(0,jie.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var Xie=w((Egt,Tm)=>{"use strict";var $Ye=process.env.TERM_PROGRAM==="Hyper",eje=process.platform==="win32",Wie=process.platform==="linux",zT={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},zie=Object.assign({},zT,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),Vie=Object.assign({},zT,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:Wie?"\u25B8":"\u276F",pointerSmall:Wie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Tm.exports=eje&&!$Ye?zie:Vie;Reflect.defineProperty(Tm.exports,"common",{enumerable:!1,value:zT});Reflect.defineProperty(Tm.exports,"windows",{enumerable:!1,value:zie});Reflect.defineProperty(Tm.exports,"other",{enumerable:!1,value:Vie})});var uo=w((Igt,VT)=>{"use strict";var tje=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),rje=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,Zie=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`\x1B[${s.codes[0]}m`,a=s.close=`\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` -`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=rje,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!tje(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=Xie(),r.define=n,r};VT.exports=Zie();VT.exports.create=Zie});var ji=w(Tt=>{"use strict";var ije=Object.prototype.toString,Ns=uo(),_ie=!1,XT=[],$ie={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Tt.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Tt.hasColor=r=>!!r&&Ns.hasColor(r);var bb=Tt.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Tt.nativeType=r=>ije.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Tt.isAsyncFn=r=>Tt.nativeType(r)==="asyncfunction";Tt.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Tt.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Tt.scrollDown=(r=[])=>[...r.slice(1),r[0]];Tt.scrollUp=(r=[])=>[r.pop(),...r];Tt.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Tt.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Tt.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Tt.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` -`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Tt.unmute=r=>{let e=r.stack.find(i=>Ns.keys.color.includes(i));return e?Ns[e]:r.stack.find(i=>i.slice(2)==="bg")?Ns[e.slice(2)]:i=>i};Tt.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Tt.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Ns.keys.color.includes(i));if(e){let i=Ns["bg"+Tt.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Ns[t.slice(2).toLowerCase()]||r:Ns.none};Tt.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Ns.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Ns[$ie[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=$ie[i];return n&&Ns["bg"+Tt.pascal(n)]||r}return Ns.none};Tt.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Tt.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Tt.isObject(a)&&s{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Tt.mixin=(r,e)=>{if(!bb(r))return e;if(!bb(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&bb(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);bb(n.value)?r[t]=Tt.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Tt.merge=(...r)=>{let e={};for(let t of r)Tt.mixin(e,t);return e};Tt.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Tt.define(r,i,n.bind(e)):Tt.define(r,i,n)}};Tt.onExit=r=>{let e=(t,i)=>{_ie||(_ie=!0,XT.forEach(n=>n()),t===!0&&process.exit(128+i))};XT.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),XT.push(r)};Tt.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Tt.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var ene=w(Gh=>{"use strict";Gh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};Gh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};Gh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};Gh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};Gh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var ine=w((Bgt,rne)=>{"use strict";var tne=J("readline"),nje=ene(),sje=/^(?:\x1b)([a-zA-Z0-9])$/,oje=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,aje={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function Aje(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function lje(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var Qb=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` -`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=sje.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=oje.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=aje[s],i.shift=Aje(s)||i.shift,i.ctrl=lje(s)||i.ctrl}return i};Qb.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=tne.createInterface({terminal:!0,input:t});tne.emitKeypressEvents(t,i);let n=(a,l)=>e(a,Qb(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};Qb.action=(r,e,t)=>{let i={...nje,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};rne.exports=Qb});var sne=w((bgt,nne)=>{"use strict";nne.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),cje(r,t,i)}};function cje(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var ane=w((Qgt,one)=>{"use strict";var{define:uje,width:gje}=ji(),ZT=class{constructor(e){let t=e.options;uje(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=gje(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};one.exports=ZT});var lne=w((Sgt,Ane)=>{"use strict";var _T=ji(),Di=uo(),$T={default:Di.noop,noop:Di.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||_T.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||_T.complement(this.primary)},primary:Di.cyan,success:Di.green,danger:Di.magenta,strong:Di.bold,warning:Di.yellow,muted:Di.dim,disabled:Di.gray,dark:Di.dim.gray,underline:Di.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};$T.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(Di.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(Di.visible=r.styles.visible);let e=_T.merge({},$T,r.styles);delete e.merge;for(let t of Object.keys(Di))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>Di[t]});for(let t of Object.keys(Di.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>Di[t]});return e};Ane.exports=$T});var une=w((vgt,cne)=>{"use strict";var eL=process.platform==="win32",AA=uo(),fje=ji(),tL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:AA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:AA.symbols.question,submitted:AA.symbols.check,cancelled:AA.symbols.cross},separator:{pending:AA.symbols.pointerSmall,submitted:AA.symbols.middot,cancelled:AA.symbols.middot},radio:{off:eL?"( )":"\u25EF",on:eL?"(*)":"\u25C9",disabled:eL?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};tL.merge=r=>{let e=fje.merge({},AA.symbols,tL,r.symbols);return delete e.merge,e};cne.exports=tL});var fne=w((xgt,gne)=>{"use strict";var hje=lne(),pje=une(),dje=ji();gne.exports=r=>{r.options=dje.merge({},r.options.theme,r.options),r.symbols=pje.merge(r.options),r.styles=hje.merge(r.options)}});var mne=w((dne,Cne)=>{"use strict";var hne=process.env.TERM_PROGRAM==="Apple_Terminal",Cje=uo(),rL=ji(),go=Cne.exports=dne,Dr="\x1B[",pne="\x07",iL=!1,dl=go.code={bell:pne,beep:pne,beginning:`${Dr}G`,down:`${Dr}J`,esc:Dr,getPosition:`${Dr}6n`,hide:`${Dr}?25l`,line:`${Dr}2K`,lineEnd:`${Dr}K`,lineStart:`${Dr}1K`,restorePosition:Dr+(hne?"8":"u"),savePosition:Dr+(hne?"7":"s"),screen:`${Dr}2J`,show:`${Dr}?25h`,up:`${Dr}1J`},su=go.cursor={get hidden(){return iL},hide(){return iL=!0,dl.hide},show(){return iL=!1,dl.show},forward:(r=1)=>`${Dr}${r}C`,backward:(r=1)=>`${Dr}${r}D`,nextLine:(r=1)=>`${Dr}E`.repeat(r),prevLine:(r=1)=>`${Dr}F`.repeat(r),up:(r=1)=>r?`${Dr}${r}A`:"",down:(r=1)=>r?`${Dr}${r}B`:"",right:(r=1)=>r?`${Dr}${r}C`:"",left:(r=1)=>r?`${Dr}${r}D`:"",to(r,e){return e?`${Dr}${e+1};${r+1}H`:`${Dr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?su.left(-r):r>0?su.right(r):"",t+=e<0?su.up(-e):e>0?su.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=rL.isPrimitive(i)?String(i):"",n=rL.isPrimitive(n)?String(n):"",a=rL.isPrimitive(a)?String(a):"",o){let l=go.cursor.up(o)+go.cursor.to(s.length),c=n.length-t;return c>0&&(l+=go.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),go.cursor.move(l)}}},nL=go.erase={screen:dl.screen,up:dl.up,down:dl.down,line:dl.line,lineEnd:dl.lineEnd,lineStart:dl.lineStart,lines(r){let e="";for(let t=0;t{if(!e)return nL.line+su.to(0);let t=s=>[...Cje.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(nL.line+su.prevLine()).repeat(n-1)+nL.line+su.to(0)}});var Yh=w((Pgt,Ine)=>{"use strict";var mje=J("events"),Ene=uo(),sL=ine(),Eje=sne(),Ije=ane(),yje=fne(),kn=ji(),ou=mne(),Lm=class extends mje{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,yje(this),Eje(this),this.state=new Ije(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=Bje(this.options.margin),this.setMaxListeners(0),wje(this)}async keypress(e,t={}){this.keypressed=!0;let i=sL.action(e,sL(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(ou.code.beep)}cursorHide(){this.stdout.write(ou.cursor.hide()),kn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(ou.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(ou.cursor.down(e)+ou.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=ou.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=Ene.unstyle(i);let n=Ene.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` +`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Fs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,Cre.default)({args:g,value:u,path:s,sync:n,tests:f,endEarly:c},h=>{if(h)return void i(h,u);(0,Cre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Fs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Fs({},t,{value:e})),n;return i._validate(e,Fs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Ere.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Ere.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,dre.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Th.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Th.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Th.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,db.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,HHe.default)(e).map(s=>new KHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new OHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,db.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Th.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,db.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Th.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,db.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};Cb.default=uo;uo.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])uo.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,UHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Fs({},i,{parent:n,path:e}))};for(let r of["equals","is"])uo.prototype[r]=uo.prototype.oneOf;for(let r of["not","nope"])uo.prototype[r]=uo.prototype.notOneOf;uo.prototype.optional=uo.prototype.notRequired});var wre=w(Im=>{"use strict";Object.defineProperty(Im,"__esModule",{value:!0});Im.create=yre;Im.default=void 0;var GHe=YHe(sA());function YHe(r){return r&&r.__esModule?r:{default:r}}var LT=GHe.default,jHe=LT;Im.default=jHe;function yre(){return new LT}yre.prototype=LT.prototype});var Lh=w(mb=>{"use strict";Object.defineProperty(mb,"__esModule",{value:!0});mb.default=void 0;var qHe=r=>r==null;mb.default=qHe});var vre=w(wm=>{"use strict";Object.defineProperty(wm,"__esModule",{value:!0});wm.create=Sre;wm.default=void 0;var JHe=Qre(sA()),Bre=iA(),bre=Qre(Lh());function Qre(r){return r&&r.__esModule?r:{default:r}}function Sre(){return new ym}var ym=class extends JHe.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=Bre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,bre.default)(t)||t===!0}})}isFalse(e=Bre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,bre.default)(t)||t===!1}})}};wm.default=ym;Sre.prototype=ym.prototype});var Dre=w(bm=>{"use strict";Object.defineProperty(bm,"__esModule",{value:!0});bm.create=Pre;bm.default=void 0;var ia=iA(),oA=xre(Lh()),WHe=xre(sA());function xre(r){return r&&r.__esModule?r:{default:r}}var zHe=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,VHe=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,XHe=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,ZHe=r=>(0,oA.default)(r)||r===r.trim(),_He={}.toString();function Pre(){return new Bm}var Bm=class extends WHe.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===_He?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ia.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,oA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ia.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,oA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ia.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,oA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ia.string.matches,params:{regex:e},test:o=>(0,oA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ia.string.email){return this.matches(zHe,{name:"email",message:e,excludeEmptyString:!0})}url(e=ia.string.url){return this.matches(VHe,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ia.string.uuid){return this.matches(XHe,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ia.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:ZHe})}lowercase(e=ia.string.lowercase){return this.transform(t=>(0,oA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,oA.default)(t)||t===t.toLowerCase()})}uppercase(e=ia.string.uppercase){return this.transform(t=>(0,oA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,oA.default)(t)||t===t.toUpperCase()})}};bm.default=Bm;Pre.prototype=Bm.prototype});var Fre=w(Sm=>{"use strict";Object.defineProperty(Sm,"__esModule",{value:!0});Sm.create=Rre;Sm.default=void 0;var ru=iA(),iu=kre(Lh()),$He=kre(sA());function kre(r){return r&&r.__esModule?r:{default:r}}var eGe=r=>r!=+r;function Rre(){return new Qm}var Qm=class extends $He.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!eGe(e)}min(e,t=ru.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,iu.default)(i)||i>=this.resolve(e)}})}max(e,t=ru.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,iu.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=ru.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,iu.default)(i)||ithis.resolve(e)}})}positive(e=ru.number.positive){return this.moreThan(0,e)}negative(e=ru.number.negative){return this.lessThan(0,e)}integer(e=ru.number.integer){return this.test({name:"integer",message:e,test:t=>(0,iu.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,iu.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,iu.default)(n)?n:Math[e](n))}};Sm.default=Qm;Rre.prototype=Qm.prototype});var Nre=w(MT=>{"use strict";Object.defineProperty(MT,"__esModule",{value:!0});MT.default=rGe;var tGe=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function rGe(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=tGe.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Mre=w(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.create=KT;vm.default=void 0;var iGe=Eb(Nre()),Tre=iA(),Lre=Eb(Lh()),nGe=Eb(tu()),sGe=Eb(sA());function Eb(r){return r&&r.__esModule?r:{default:r}}var OT=new Date(""),oGe=r=>Object.prototype.toString.call(r)==="[object Date]";function KT(){return new Mh}var Mh=class extends sGe.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,iGe.default)(e),isNaN(e)?OT:new Date(e))})})}_typeCheck(e){return oGe(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(nGe.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=Tre.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Lre.default)(n)||n>=this.resolve(i)}})}max(e,t=Tre.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Lre.default)(n)||n<=this.resolve(i)}})}};vm.default=Mh;Mh.INVALID_DATE=OT;KT.prototype=Mh.prototype;KT.INVALID_DATE=OT});var Kre=w((Yut,Ore)=>{function aGe(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n{function AGe(r){return function(e){return r==null?void 0:r[e]}}Ure.exports=AGe});var Yre=w((qut,Gre)=>{var lGe=Hre(),cGe={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},uGe=lGe(cGe);Gre.exports=uGe});var qre=w((Jut,jre)=>{var gGe=Yre(),fGe=Vf(),hGe=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,pGe="\\u0300-\\u036f",dGe="\\ufe20-\\ufe2f",CGe="\\u20d0-\\u20ff",mGe=pGe+dGe+CGe,EGe="["+mGe+"]",IGe=RegExp(EGe,"g");function yGe(r){return r=fGe(r),r&&r.replace(hGe,gGe).replace(IGe,"")}jre.exports=yGe});var Wre=w((Wut,Jre)=>{var wGe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function BGe(r){return r.match(wGe)||[]}Jre.exports=BGe});var Vre=w((zut,zre)=>{var bGe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function QGe(r){return bGe.test(r)}zre.exports=QGe});var hie=w((Vut,fie)=>{var eie="\\ud800-\\udfff",SGe="\\u0300-\\u036f",vGe="\\ufe20-\\ufe2f",xGe="\\u20d0-\\u20ff",PGe=SGe+vGe+xGe,tie="\\u2700-\\u27bf",rie="a-z\\xdf-\\xf6\\xf8-\\xff",DGe="\\xac\\xb1\\xd7\\xf7",kGe="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",RGe="\\u2000-\\u206f",FGe=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",iie="A-Z\\xc0-\\xd6\\xd8-\\xde",NGe="\\ufe0e\\ufe0f",nie=DGe+kGe+RGe+FGe,sie="['\u2019]",Xre="["+nie+"]",TGe="["+PGe+"]",oie="\\d+",LGe="["+tie+"]",aie="["+rie+"]",Aie="[^"+eie+nie+oie+tie+rie+iie+"]",MGe="\\ud83c[\\udffb-\\udfff]",OGe="(?:"+TGe+"|"+MGe+")",KGe="[^"+eie+"]",lie="(?:\\ud83c[\\udde6-\\uddff]){2}",cie="[\\ud800-\\udbff][\\udc00-\\udfff]",Oh="["+iie+"]",UGe="\\u200d",Zre="(?:"+aie+"|"+Aie+")",HGe="(?:"+Oh+"|"+Aie+")",_re="(?:"+sie+"(?:d|ll|m|re|s|t|ve))?",$re="(?:"+sie+"(?:D|LL|M|RE|S|T|VE))?",uie=OGe+"?",gie="["+NGe+"]?",GGe="(?:"+UGe+"(?:"+[KGe,lie,cie].join("|")+")"+gie+uie+")*",YGe="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",jGe="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",qGe=gie+uie+GGe,JGe="(?:"+[LGe,lie,cie].join("|")+")"+qGe,WGe=RegExp([Oh+"?"+aie+"+"+_re+"(?="+[Xre,Oh,"$"].join("|")+")",HGe+"+"+$re+"(?="+[Xre,Oh+Zre,"$"].join("|")+")",Oh+"?"+Zre+"+"+_re,Oh+"+"+$re,jGe,YGe,oie,JGe].join("|"),"g");function zGe(r){return r.match(WGe)||[]}fie.exports=zGe});var die=w((Xut,pie)=>{var VGe=Wre(),XGe=Vre(),ZGe=Vf(),_Ge=hie();function $Ge(r,e,t){return r=ZGe(r),e=t?void 0:e,e===void 0?XGe(r)?_Ge(r):VGe(r):r.match(e)||[]}pie.exports=$Ge});var UT=w((Zut,Cie)=>{var eYe=Kre(),tYe=qre(),rYe=die(),iYe="['\u2019]",nYe=RegExp(iYe,"g");function sYe(r){return function(e){return eYe(rYe(tYe(e).replace(nYe,"")),r,"")}}Cie.exports=sYe});var Eie=w((_ut,mie)=>{var oYe=UT(),aYe=oYe(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});mie.exports=aYe});var yie=w(($ut,Iie)=>{var AYe=PB(),lYe=UT(),cYe=lYe(function(r,e,t){return e=e.toLowerCase(),r+(t?AYe(e):e)});Iie.exports=cYe});var Bie=w((egt,wie)=>{var uYe=bh(),gYe=uT(),fYe=vT();function hYe(r,e){var t={};return e=fYe(e,3),gYe(r,function(i,n,s){uYe(t,e(i,n,s),i)}),t}wie.exports=hYe});var Qie=w((tgt,HT)=>{HT.exports=function(r){return bie(pYe(r),r)};HT.exports.array=bie;function bie(r,e){var t=r.length,i=new Array(t),n={},s=t,o=dYe(e),a=CYe(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var f;try{f=", node was:"+JSON.stringify(c)}catch{f=""}throw new Error("Cyclic dependency"+f)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var h=o.get(c)||new Set;if(h=Array.from(h),u=h.length){g.add(c);do{var p=h[--u];l(p,a.get(p),g)}while(u);g.delete(c)}i[--t]=c}}}function pYe(r){for(var e=new Set,t=0,i=r.length;t{"use strict";Object.defineProperty(GT,"__esModule",{value:!0});GT.default=BYe;var mYe=Ib(am()),EYe=Ib(Qie()),IYe=pm(),yYe=Ib(tu()),wYe=Ib(xh());function Ib(r){return r&&r.__esModule?r:{default:r}}function BYe(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,IYe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,mYe.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),yYe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,wYe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return EYe.default.array(i,t).reverse()}});var xie=w(YT=>{"use strict";Object.defineProperty(YT,"__esModule",{value:!0});YT.default=bYe;function vie(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function bYe(r){return(e,t)=>vie(r,e)-vie(r,t)}});var Tie=w(Pm=>{"use strict";Object.defineProperty(Pm,"__esModule",{value:!0});Pm.create=Nie;Pm.default=void 0;var Pie=na(am()),Die=na(Eie()),QYe=na(yie()),SYe=na(Bie()),vYe=na(xT()),xYe=pm(),kie=iA(),PYe=na(Sie()),Fie=na(xie()),DYe=na(ib()),kYe=na(_c()),jT=na(sA());function na(r){return r&&r.__esModule?r:{default:r}}function Kh(){return Kh=Object.assign||function(r){for(var e=1;eObject.prototype.toString.call(r)==="[object Object]";function RYe(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var FYe=(0,Fie.default)([]),xm=class extends jT.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=FYe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Rie(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Kh({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let f=s[g],h=(0,Pie.default)(n,g);if(f){let p,C=n[g];c.path=(t.path?`${t.path}.`:"")+g,f=f.resolve({value:C,context:t.context,parent:l});let y="spec"in f?f.spec:void 0,B=y==null?void 0:y.strict;if(y!=null&&y.strip){u=u||g in n;continue}p=!t.__validating||!B?f.cast(n[g],c):n[g],p!==void 0&&(l[g]=p)}else h&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!kYe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Rie(g)){i(n[0]||null,g);return}a=a||g;let f=this._nodes.map(h=>(p,C)=>{let y=h.indexOf(".")===-1?(t.path?`${t.path}.`:"")+h:`${t.path||""}["${h}"]`,B=this.fields[h];if(B&&"validate"in B){B.validate(g[h],Kh({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[h]}),C);return}C(null)});(0,DYe.default)({sync:s,tests:f,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Kh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof jT.default&&s instanceof jT.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Fie.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,PYe.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,xYe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Pie.default)(s,e)&&(o=Kh({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=kie.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=RYe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=kie.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,SYe.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(QYe.default)}snakeCase(){return this.transformKeys(Die.default)}constantCase(){return this.transformKeys(e=>(0,Die.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,vYe.default)(this.fields,t=>t.describe()),e}};Pm.default=xm;function Nie(r){return new xm(r)}Nie.prototype=xm.prototype});var Mie=w(km=>{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.create=Lie;km.default=void 0;var qT=Uh(Lh()),NYe=Uh(xh()),TYe=Uh(om()),JT=iA(),LYe=Uh(ib()),MYe=Uh(_c()),OYe=Uh(sA());function Uh(r){return r&&r.__esModule?r:{default:r}}function yb(){return yb=Object.assign||function(r){for(var e=1;e{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,yb({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,f=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(h,p)=>{if(h){if(!MYe.default.isError(h)||u)return void i(h,p);o.push(h)}if(!g||!c||!this._typeCheck(p)){i(o[0]||null,p);return}f=f||p;let C=new Array(p.length);for(let y=0;yc.validate(B,D,H)}(0,LYe.default)({sync:a,path:l,value:p,errors:o,endEarly:u,tests:C},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,NYe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,TYe.default)(e));return t.innerType=e,t}length(e,t=JT.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,qT.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||JT.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,qT.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||JT.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,qT.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};km.default=Dm;Lie.prototype=Dm.prototype});var Oie=w(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.create=HYe;Rm.default=void 0;var KYe=UYe(xh());function UYe(r){return r&&r.__esModule?r:{default:r}}function HYe(r){return new wb(r)}var wb=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,KYe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},GYe=wb;Rm.default=GYe});var Kie=w(WT=>{"use strict";Object.defineProperty(WT,"__esModule",{value:!0});WT.default=qYe;var YYe=jYe(iA());function jYe(r){return r&&r.__esModule?r:{default:r}}function qYe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{YYe.default[e][t]=r[e][t]})})}});var VT=w(yr=>{"use strict";Object.defineProperty(yr,"__esModule",{value:!0});yr.addMethod=_Ye;Object.defineProperty(yr,"MixedSchema",{enumerable:!0,get:function(){return Uie.default}});Object.defineProperty(yr,"mixed",{enumerable:!0,get:function(){return Uie.create}});Object.defineProperty(yr,"BooleanSchema",{enumerable:!0,get:function(){return zT.default}});Object.defineProperty(yr,"bool",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(yr,"boolean",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(yr,"StringSchema",{enumerable:!0,get:function(){return Hie.default}});Object.defineProperty(yr,"string",{enumerable:!0,get:function(){return Hie.create}});Object.defineProperty(yr,"NumberSchema",{enumerable:!0,get:function(){return Gie.default}});Object.defineProperty(yr,"number",{enumerable:!0,get:function(){return Gie.create}});Object.defineProperty(yr,"DateSchema",{enumerable:!0,get:function(){return Yie.default}});Object.defineProperty(yr,"date",{enumerable:!0,get:function(){return Yie.create}});Object.defineProperty(yr,"ObjectSchema",{enumerable:!0,get:function(){return jie.default}});Object.defineProperty(yr,"object",{enumerable:!0,get:function(){return jie.create}});Object.defineProperty(yr,"ArraySchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(yr,"array",{enumerable:!0,get:function(){return qie.create}});Object.defineProperty(yr,"ref",{enumerable:!0,get:function(){return JYe.create}});Object.defineProperty(yr,"lazy",{enumerable:!0,get:function(){return WYe.create}});Object.defineProperty(yr,"ValidationError",{enumerable:!0,get:function(){return zYe.default}});Object.defineProperty(yr,"reach",{enumerable:!0,get:function(){return VYe.default}});Object.defineProperty(yr,"isSchema",{enumerable:!0,get:function(){return Jie.default}});Object.defineProperty(yr,"setLocale",{enumerable:!0,get:function(){return XYe.default}});Object.defineProperty(yr,"BaseSchema",{enumerable:!0,get:function(){return ZYe.default}});var Uie=nu(wre()),zT=nu(vre()),Hie=nu(Dre()),Gie=nu(Fre()),Yie=nu(Mre()),jie=nu(Tie()),qie=nu(Mie()),JYe=tu(),WYe=Oie(),zYe=Fm(_c()),VYe=Fm(TT()),Jie=Fm(xh()),XYe=Fm(Kie()),ZYe=Fm(sA());function Fm(r){return r&&r.__esModule?r:{default:r}}function Wie(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return Wie=function(){return r},r}function nu(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=Wie();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function _Ye(r,e,t){if(!r||!(0,Jie.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var _ie=w((ygt,Tm)=>{"use strict";var tje=process.env.TERM_PROGRAM==="Hyper",rje=process.platform==="win32",Vie=process.platform==="linux",XT={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},Xie=Object.assign({},XT,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),Zie=Object.assign({},XT,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:Vie?"\u25B8":"\u276F",pointerSmall:Vie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Tm.exports=rje&&!tje?Xie:Zie;Reflect.defineProperty(Tm.exports,"common",{enumerable:!1,value:XT});Reflect.defineProperty(Tm.exports,"windows",{enumerable:!1,value:Xie});Reflect.defineProperty(Tm.exports,"other",{enumerable:!1,value:Zie})});var go=w((wgt,ZT)=>{"use strict";var ije=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nje=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,$ie=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`\x1B[${s.codes[0]}m`,a=s.close=`\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` +`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=nje,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!ije(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=_ie(),r.define=n,r};ZT.exports=$ie();ZT.exports.create=$ie});var ji=w(Tt=>{"use strict";var sje=Object.prototype.toString,Ns=go(),ene=!1,_T=[],tne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Tt.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Tt.hasColor=r=>!!r&&Ns.hasColor(r);var bb=Tt.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Tt.nativeType=r=>sje.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Tt.isAsyncFn=r=>Tt.nativeType(r)==="asyncfunction";Tt.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Tt.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Tt.scrollDown=(r=[])=>[...r.slice(1),r[0]];Tt.scrollUp=(r=[])=>[r.pop(),...r];Tt.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Tt.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Tt.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Tt.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` +`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Tt.unmute=r=>{let e=r.stack.find(i=>Ns.keys.color.includes(i));return e?Ns[e]:r.stack.find(i=>i.slice(2)==="bg")?Ns[e.slice(2)]:i=>i};Tt.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Tt.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Ns.keys.color.includes(i));if(e){let i=Ns["bg"+Tt.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Ns[t.slice(2).toLowerCase()]||r:Ns.none};Tt.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Ns.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Ns[tne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=tne[i];return n&&Ns["bg"+Tt.pascal(n)]||r}return Ns.none};Tt.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Tt.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Tt.isObject(a)&&s{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Tt.mixin=(r,e)=>{if(!bb(r))return e;if(!bb(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&bb(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);bb(n.value)?r[t]=Tt.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Tt.merge=(...r)=>{let e={};for(let t of r)Tt.mixin(e,t);return e};Tt.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Tt.define(r,i,n.bind(e)):Tt.define(r,i,n)}};Tt.onExit=r=>{let e=(t,i)=>{ene||(ene=!0,_T.forEach(n=>n()),t===!0&&process.exit(128+i))};_T.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_T.push(r)};Tt.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Tt.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var rne=w(Gh=>{"use strict";Gh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};Gh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};Gh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};Gh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};Gh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var sne=w((Qgt,nne)=>{"use strict";var ine=J("readline"),oje=rne(),aje=/^(?:\x1b)([a-zA-Z0-9])$/,Aje=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,lje={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function cje(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function uje(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var Qb=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` +`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=aje.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=Aje.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=lje[s],i.shift=cje(s)||i.shift,i.ctrl=uje(s)||i.ctrl}return i};Qb.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ine.createInterface({terminal:!0,input:t});ine.emitKeypressEvents(t,i);let n=(a,l)=>e(a,Qb(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};Qb.action=(r,e,t)=>{let i={...oje,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};nne.exports=Qb});var ane=w((Sgt,one)=>{"use strict";one.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),gje(r,t,i)}};function gje(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var lne=w((vgt,Ane)=>{"use strict";var{define:fje,width:hje}=ji(),$T=class{constructor(e){let t=e.options;fje(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=hje(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};Ane.exports=$T});var une=w((xgt,cne)=>{"use strict";var eL=ji(),Di=go(),tL={default:Di.noop,noop:Di.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary:Di.cyan,success:Di.green,danger:Di.magenta,strong:Di.bold,warning:Di.yellow,muted:Di.dim,disabled:Di.gray,dark:Di.dim.gray,underline:Di.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};tL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(Di.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(Di.visible=r.styles.visible);let e=eL.merge({},tL,r.styles);delete e.merge;for(let t of Object.keys(Di))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>Di[t]});for(let t of Object.keys(Di.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>Di[t]});return e};cne.exports=tL});var fne=w((Pgt,gne)=>{"use strict";var rL=process.platform==="win32",aA=go(),pje=ji(),iL={...aA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:aA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:aA.symbols.question,submitted:aA.symbols.check,cancelled:aA.symbols.cross},separator:{pending:aA.symbols.pointerSmall,submitted:aA.symbols.middot,cancelled:aA.symbols.middot},radio:{off:rL?"( )":"\u25EF",on:rL?"(*)":"\u25C9",disabled:rL?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};iL.merge=r=>{let e=pje.merge({},aA.symbols,iL,r.symbols);return delete e.merge,e};gne.exports=iL});var pne=w((Dgt,hne)=>{"use strict";var dje=une(),Cje=fne(),mje=ji();hne.exports=r=>{r.options=mje.merge({},r.options.theme,r.options),r.symbols=Cje.merge(r.options),r.styles=dje.merge(r.options)}});var Ine=w((mne,Ene)=>{"use strict";var dne=process.env.TERM_PROGRAM==="Apple_Terminal",Eje=go(),nL=ji(),fo=Ene.exports=mne,Dr="\x1B[",Cne="\x07",sL=!1,dl=fo.code={bell:Cne,beep:Cne,beginning:`${Dr}G`,down:`${Dr}J`,esc:Dr,getPosition:`${Dr}6n`,hide:`${Dr}?25l`,line:`${Dr}2K`,lineEnd:`${Dr}K`,lineStart:`${Dr}1K`,restorePosition:Dr+(dne?"8":"u"),savePosition:Dr+(dne?"7":"s"),screen:`${Dr}2J`,show:`${Dr}?25h`,up:`${Dr}1J`},su=fo.cursor={get hidden(){return sL},hide(){return sL=!0,dl.hide},show(){return sL=!1,dl.show},forward:(r=1)=>`${Dr}${r}C`,backward:(r=1)=>`${Dr}${r}D`,nextLine:(r=1)=>`${Dr}E`.repeat(r),prevLine:(r=1)=>`${Dr}F`.repeat(r),up:(r=1)=>r?`${Dr}${r}A`:"",down:(r=1)=>r?`${Dr}${r}B`:"",right:(r=1)=>r?`${Dr}${r}C`:"",left:(r=1)=>r?`${Dr}${r}D`:"",to(r,e){return e?`${Dr}${e+1};${r+1}H`:`${Dr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?su.left(-r):r>0?su.right(r):"",t+=e<0?su.up(-e):e>0?su.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=nL.isPrimitive(i)?String(i):"",n=nL.isPrimitive(n)?String(n):"",a=nL.isPrimitive(a)?String(a):"",o){let l=fo.cursor.up(o)+fo.cursor.to(s.length),c=n.length-t;return c>0&&(l+=fo.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),fo.cursor.move(l)}}},oL=fo.erase={screen:dl.screen,up:dl.up,down:dl.down,line:dl.line,lineEnd:dl.lineEnd,lineStart:dl.lineStart,lines(r){let e="";for(let t=0;t{if(!e)return oL.line+su.to(0);let t=s=>[...Eje.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(oL.line+su.prevLine()).repeat(n-1)+oL.line+su.to(0)}});var Yh=w((kgt,wne)=>{"use strict";var Ije=J("events"),yne=go(),aL=sne(),yje=ane(),wje=lne(),Bje=pne(),kn=ji(),ou=Ine(),Lm=class extends Ije{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,Bje(this),yje(this),this.state=new wje(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=Qje(this.options.margin),this.setMaxListeners(0),bje(this)}async keypress(e,t={}){this.keypressed=!0;let i=aL.action(e,aL(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(ou.code.beep)}cursorHide(){this.stdout.write(ou.cursor.hide()),kn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(ou.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(ou.cursor.down(e)+ou.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=ou.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=yne.unstyle(i);let n=yne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` `),c=l[0],u=l[l.length-1],f=(i+(t?" "+t:"")).length,h=fe.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,kn.isObject(e)&&(e=e[i.status]||e.pending),kn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return kn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return kn.isObject(s)&&(s=s[i.status]||s.pending),kn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&kn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=kn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&kn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return kn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return kn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return kn.resolve(this,e,...t)}get base(){return Lm.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||kn.height(this.stdout,25)}get width(){return this.options.columns||kn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function wje(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function Bje(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?` -`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}Ine.exports=Lm});var Bne=w((Dgt,wne)=>{"use strict";var bje=ji(),yne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return yne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};wne.exports=(r,e={})=>{let t=bje.merge({},yne,e.roles);return t[r]||t.default}});var Mm=w((kgt,Sne)=>{"use strict";var Qje=uo(),Sje=Yh(),vje=Bne(),Sb=ji(),{reorder:oL,scrollUp:xje,scrollDown:Pje,isObject:bne,swap:Dje}=Sb,aL=class extends Sje{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");bne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=vje(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,Sb.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,Qje.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedt.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return Qne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=oL(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=oL(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=oL(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=xje(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=Pje(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){Dje(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e=="function"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(bne(e))return t?e[t]:e;let n=typeof e=="function"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=Sb.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return Qne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Qne(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(Sb.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}Sne.exports=aL});var Cl=w((Rgt,vne)=>{"use strict";var kje=Mm(),AL=ji(),lL=class extends kje{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!AL.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!AL.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(AL.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` +`.repeat(t))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=aL.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:t,result:i}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,kn.isObject(e)&&(e=e[i.status]||e.pending),kn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return kn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return kn.isObject(s)&&(s=s[i.status]||s.pending),kn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&kn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=kn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&kn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return kn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return kn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return kn.resolve(this,e,...t)}get base(){return Lm.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||kn.height(this.stdout,25)}get width(){return this.options.columns||kn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function bje(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function Qje(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?` +`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}wne.exports=Lm});var Qne=w((Rgt,bne)=>{"use strict";var Sje=ji(),Bne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return Bne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};bne.exports=(r,e={})=>{let t=Sje.merge({},Bne,e.roles);return t[r]||t.default}});var Mm=w((Fgt,xne)=>{"use strict";var vje=go(),xje=Yh(),Pje=Qne(),Sb=ji(),{reorder:AL,scrollUp:Dje,scrollDown:kje,isObject:Sne,swap:Rje}=Sb,lL=class extends xje{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Sne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=Pje(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,Sb.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,vje.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedt.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return vne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=AL(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=AL(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=AL(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=Dje(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=kje(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){Rje(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e=="function"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(Sne(e))return t?e[t]:e;let n=typeof e=="function"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=Sb.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return vne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function vne(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(Sb.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}xne.exports=lL});var Cl=w((Ngt,Pne)=>{"use strict";var Fje=Mm(),cL=ji(),uL=class extends Fje{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!cL.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!cL.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(cL.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` `),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(` `)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:t}=this.state,i="",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,""].join(" "),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=" "+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(t),this.write([n,i,u,g].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};vne.exports=lL});var Pne=w((Fgt,xne)=>{"use strict";var Rje=Cl(),Fje=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},cL=class extends Rje{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=Fje(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};xne.exports=cL});var gL=w((Ngt,Dne)=>{"use strict";var uL=ji();Dne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=uL.inverse(r.styles.primary),c=C=>l(r.styles.black(C)),u=t,g=" ",f=c(g);if(r.blink&&r.blink.off===!0&&(c=C=>C,f=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=uL.isPrimitive(i)?`${i}`:"",t=uL.isPrimitive(t)?`${t}`:"";let h=i&&i.startsWith(t)&&i!==t,p=h?c(i[t.length]):f;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),p=""),s===!1&&(p=""),h){let C=r.styles.unstyle(u+p);return u+p+a(i.slice(C.length))}return u+p}});var vb=w((Tgt,kne)=>{"use strict";var Nje=uo(),Tje=Cl(),Lje=gL(),fL=class extends Tje{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:f,danger:h}=n,p=l,C=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),v=e.message;this.align==="right"&&(v=v.padStart(this.longest+1," ")),this.align==="left"&&(v=v.padEnd(this.longest+1," "));let D=this.values[a]=c||o,T=c?"success":"dark";await y.call(e,D,this.state)!==!0&&(T="danger");let H=n[T],j=H(await this.indicator(e,t))+(e.pad||""),$=this.indent(e),V=()=>[$,j,v+B,c,p].filter(Boolean).join(" ");if(i.submitted)return v=Nje.unstyle(v),c=g(c),p="",V();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=Lje(this,{input:c,initial:o,pos:s,showCursor:C,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,D,e,t)),C&&(v=f(v)),e.error?c+=(c?" ":"")+h(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),V()}async submit(){return this.value=this.values,super.base.submit.call(this)}};kne.exports=fL});var hL=w((Lgt,Fne)=>{"use strict";var Mje=vb(),Oje=()=>{throw new Error("expected prompt to have a custom authenticate method")},Rne=(r=Oje)=>{class e extends Mje{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Rne(i)}}return e};Fne.exports=Rne()});var Lne=w((Mgt,Tne)=>{"use strict";var Kje=hL();function Uje(r,e){return r.username===this.options.username&&r.password===this.options.password}var Nne=(r=Uje)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends Kje.create(r){constructor(n){super({...n,choices:e})}static create(n){return Nne(n)}}return t};Tne.exports=Nne()});var xb=w((Ogt,Mne)=>{"use strict";var Hje=Yh(),{isPrimitive:Gje,hasColor:Yje}=ji(),pL=class extends Hje{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return Gje(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return Yje(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),f=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,f].filter(Boolean).join(` -`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Mne.exports=pL});var Kne=w((Kgt,One)=>{"use strict";var jje=xb(),dL=class extends jje{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};One.exports=dL});var Hne=w((Ugt,Une)=>{"use strict";var qje=Cl(),Jje=vb(),jh=Jje.prototype,CL=class extends qje{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():jh.dispatch.call(this,e,t)}append(e,t){return jh.append.call(this,e,t)}delete(e,t){return jh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?jh.next.call(this):super.next()}prev(){return this.focused.editable?jh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?jh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Une.exports=CL});var au=w((Hgt,Gne)=>{"use strict";var Wje=Yh(),zje=gL(),{isPrimitive:Vje}=ji(),mL=class extends Wje{constructor(e){super(e),this.initial=Vje(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` -`,t):super.keypress(e,t)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,t){if(!e||t.ctrl||t.code)return this.alert();this.append(e)}append(e){let{cursor:t,input:i}=this.state;this.input=`${i}`.slice(0,t)+e+`${i}`.slice(t),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:t}=this.state;if(e<=0)return this.alert();this.input=`${t}`.slice(0,e-1)+`${t}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:t}=this.state;if(t[e]===void 0)return this.alert();this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let t=this.input.slice(0,e),i=this.input.slice(e),n=t.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let t=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||t):zje(this,{input:e,initial:t,pos:this.cursor})}async render(){let e=this.state.size,t=await this.prefix(),i=await this.separator(),n=await this.message(),s=[t,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` -`)),this.restore()}};Gne.exports=mL});var jne=w((Ggt,Yne)=>{"use strict";var Xje=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),Pb=r=>Xje(r).filter(Boolean);Yne.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:Pb([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:Pb([...s,t]),present:o};case"save":return{past:Pb([...i,t]),present:""};case"remove":return o=Pb(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var IL=w((Ygt,Jne)=>{"use strict";var Zje=au(),qne=jne(),EL=class extends Zje{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=qne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=qne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Jne.exports=EL});var zne=w((jgt,Wne)=>{"use strict";var _je=au(),yL=class extends _je{format(){return""}};Wne.exports=yL});var Xne=w((qgt,Vne)=>{"use strict";var $je=au(),wL=class extends $je{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Vne.exports=wL});var _ne=w((Jgt,Zne)=>{"use strict";var eqe=Cl(),BL=class extends eqe{constructor(e){super({...e,multiple:!0})}};Zne.exports=BL});var QL=w((Wgt,$ne)=>{"use strict";var tqe=au(),bL=class extends tqe{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};$ne.exports=bL});var tse=w((zgt,ese)=>{ese.exports=QL()});var ise=w((Vgt,rse)=>{"use strict";var rqe=au(),SL=class extends rqe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};rse.exports=SL});var ose=w((Xgt,sse)=>{"use strict";var iqe=uo(),nqe=Mm(),nse=ji(),vL=class extends nqe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` +`)),this.write(this.margin[2]),this.restore()}};Pne.exports=uL});var kne=w((Tgt,Dne)=>{"use strict";var Nje=Cl(),Tje=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends Nje{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=Tje(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Dne.exports=gL});var hL=w((Lgt,Rne)=>{"use strict";var fL=ji();Rne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=C=>l(r.styles.black(C)),u=t,g=" ",f=c(g);if(r.blink&&r.blink.off===!0&&(c=C=>C,f=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let h=i&&i.startsWith(t)&&i!==t,p=h?c(i[t.length]):f;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),p=""),s===!1&&(p=""),h){let C=r.styles.unstyle(u+p);return u+p+a(i.slice(C.length))}return u+p}});var vb=w((Mgt,Fne)=>{"use strict";var Lje=go(),Mje=Cl(),Oje=hL(),pL=class extends Mje{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:f,danger:h}=n,p=l,C=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),v=e.message;this.align==="right"&&(v=v.padStart(this.longest+1," ")),this.align==="left"&&(v=v.padEnd(this.longest+1," "));let D=this.values[a]=c||o,T=c?"success":"dark";await y.call(e,D,this.state)!==!0&&(T="danger");let H=n[T],j=H(await this.indicator(e,t))+(e.pad||""),$=this.indent(e),V=()=>[$,j,v+B,c,p].filter(Boolean).join(" ");if(i.submitted)return v=Lje.unstyle(v),c=g(c),p="",V();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=Oje(this,{input:c,initial:o,pos:s,showCursor:C,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,D,e,t)),C&&(v=f(v)),e.error?c+=(c?" ":"")+h(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),V()}async submit(){return this.value=this.values,super.base.submit.call(this)}};Fne.exports=pL});var dL=w((Ogt,Tne)=>{"use strict";var Kje=vb(),Uje=()=>{throw new Error("expected prompt to have a custom authenticate method")},Nne=(r=Uje)=>{class e extends Kje{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Nne(i)}}return e};Tne.exports=Nne()});var One=w((Kgt,Mne)=>{"use strict";var Hje=dL();function Gje(r,e){return r.username===this.options.username&&r.password===this.options.password}var Lne=(r=Gje)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends Hje.create(r){constructor(n){super({...n,choices:e})}static create(n){return Lne(n)}}return t};Mne.exports=Lne()});var xb=w((Ugt,Kne)=>{"use strict";var Yje=Yh(),{isPrimitive:jje,hasColor:qje}=ji(),CL=class extends Yje{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return jje(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return qje(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),f=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,f].filter(Boolean).join(` +`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Kne.exports=CL});var Hne=w((Hgt,Une)=>{"use strict";var Jje=xb(),mL=class extends Jje{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Une.exports=mL});var Yne=w((Ggt,Gne)=>{"use strict";var Wje=Cl(),zje=vb(),jh=zje.prototype,EL=class extends Wje{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():jh.dispatch.call(this,e,t)}append(e,t){return jh.append.call(this,e,t)}delete(e,t){return jh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?jh.next.call(this):super.next()}prev(){return this.focused.editable?jh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?jh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Gne.exports=EL});var au=w((Ygt,jne)=>{"use strict";var Vje=Yh(),Xje=hL(),{isPrimitive:Zje}=ji(),IL=class extends Vje{constructor(e){super(e),this.initial=Zje(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` +`,t):super.keypress(e,t)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,t){if(!e||t.ctrl||t.code)return this.alert();this.append(e)}append(e){let{cursor:t,input:i}=this.state;this.input=`${i}`.slice(0,t)+e+`${i}`.slice(t),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:t}=this.state;if(e<=0)return this.alert();this.input=`${t}`.slice(0,e-1)+`${t}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:t}=this.state;if(t[e]===void 0)return this.alert();this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let t=this.input.slice(0,e),i=this.input.slice(e),n=t.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let t=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||t):Xje(this,{input:e,initial:t,pos:this.cursor})}async render(){let e=this.state.size,t=await this.prefix(),i=await this.separator(),n=await this.message(),s=[t,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` +`)),this.restore()}};jne.exports=IL});var Jne=w((jgt,qne)=>{"use strict";var _je=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),Pb=r=>_je(r).filter(Boolean);qne.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:Pb([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:Pb([...s,t]),present:o};case"save":return{past:Pb([...i,t]),present:""};case"remove":return o=Pb(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var wL=w((qgt,zne)=>{"use strict";var $je=au(),Wne=Jne(),yL=class extends $je{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Wne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Wne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};zne.exports=yL});var Xne=w((Jgt,Vne)=>{"use strict";var eqe=au(),BL=class extends eqe{format(){return""}};Vne.exports=BL});var _ne=w((Wgt,Zne)=>{"use strict";var tqe=au(),bL=class extends tqe{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Zne.exports=bL});var ese=w((zgt,$ne)=>{"use strict";var rqe=Cl(),QL=class extends rqe{constructor(e){super({...e,multiple:!0})}};$ne.exports=QL});var vL=w((Vgt,tse)=>{"use strict";var iqe=au(),SL=class extends iqe{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};tse.exports=SL});var ise=w((Xgt,rse)=>{rse.exports=vL()});var sse=w((Zgt,nse)=>{"use strict";var nqe=au(),xL=class extends nqe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};nse.exports=xL});var Ase=w((_gt,ase)=>{"use strict";var sqe=go(),oqe=Mm(),ose=ji(),PL=class extends oqe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` `;let t=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+t})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let t of this.choices){e=Math.max(e,t.message.length),t.scaleIndex=t.initial||2,t.scale=[];for(let i=0;i=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(i=>` ${i.name} - ${i.message}`)].map(i=>this.styles.muted(i)).join(` -`)}renderScaleHeading(e){let t=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(t=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-t.join("").length,n=Math.round(i/(t.length-1)),o=t.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,t,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,t,i);let n=e.scaleIndex===t.index;return t.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,t){let i=e.scale.map(s=>this.scaleIndicator(e,s,t)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await e.hint;s&&!nse.hasColor(s)&&(s=this.styles.muted(s));let o=p=>this.margin[3]+p.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,t),u=await this.renderScale(e,t),g=this.margin[1]+this.margin[3];this.scaleLength=iqe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let h=nse.wordWrap(c,{width:this.widths[0],newline:a}).split(` +`)}renderScaleHeading(e){let t=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(t=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-t.join("").length,n=Math.round(i/(t.length-1)),o=t.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,t,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,t,i);let n=e.scaleIndex===t.index;return t.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,t){let i=e.scale.map(s=>this.scaleIndicator(e,s,t)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await e.hint;s&&!ose.hasColor(s)&&(s=this.styles.muted(s));let o=p=>this.margin[3]+p.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,t),u=await this.renderScale(e,t),g=this.margin[1]+this.margin[3];this.scaleLength=sqe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let h=ose.wordWrap(c,{width:this.widths[0],newline:a}).split(` `).map(p=>o(p)+this.margin[1]);return i&&(u=this.styles.info(u),h=h.map(p=>this.styles.info(p))),h[0]+=u,this.linebreak&&h.push(""),[l+n,h.join(` `)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(n,s)=>await this.renderChoice(n,s)),t=await Promise.all(e),i=await this.renderScaleHeading();return this.margin[0]+[i,...t.map(n=>n.join(" "))].join(` `)}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o="";this.options.promptLine!==!1&&(o=[i,s,n,""].join(" "),this.state.prompt=o);let a=await this.header(),l=await this.format(),c=await this.renderScaleKey(),u=await this.error()||await this.hint(),g=await this.renderChoices(),f=await this.footer(),h=this.emptyError;l&&(o+=l),u&&!o.includes(u)&&(o+=" "+u),e&&!l&&!g.trim()&&this.multiple&&h!=null&&(o+=this.styles.danger(h)),this.clear(t),this.write([a,o,c,g,f].filter(Boolean).join(` -`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};sse.exports=vL});var lse=w((Zgt,Ase)=>{"use strict";var ase=uo(),sqe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",PL=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=sqe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},oqe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],f=()=>s[u+1],h=p=>{p.line=c,o.push(p)};for(h({type:"bos",value:""});uT.name===B.key);B.field=n.find(T=>T.name===B.key),D||(D=new PL(B),a.push(D)),D.lines.push(B.line-1);continue}let C=o[o.length-1];C.type==="text"&&C.line===c?C.value+=p:h({type:"text",value:p})}return h({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};Ase.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i={...e.values,...e.initial},{tabstops:n,items:s,keys:o}=await oqe(e,i),a=xL("result",r,e),l=xL("format",r,e),c=xL("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},f=!1)=>{let h=0;g.required=t,g.items=s,g.keys=o,g.output="";let p=async(v,D,T,H)=>{let j=await c(v,D,T,H);return j===!1?"Invalid field "+T.name:j};for(let v of n){let D=v.value,T=v.key;if(v.type!=="template"){D&&(g.output+=D);continue}if(v.type==="template"){let H=s.find(_=>_.name===T);e.required===!0&&g.required.add(H.name);let j=[H.input,g.values[H.value],H.value,D].find(u),V=(H.field||{}).message||v.inner;if(f){let _=await p(g.values[T],g,H,h);if(_&&typeof _=="string"||_===!1){g.invalid.set(T,_);continue}g.invalid.delete(T);let A=await a(g.values[T],g,H,h);g.output+=ase.unstyle(A);continue}H.placeholder=!1;let W=D;D=await l(D,g,H,h),j!==D?(g.values[T]=j,D=r.styles.typing(j),g.missing.delete(V)):(g.values[T]=void 0,j=`<${V}>`,D=r.styles.primary(j),H.placeholder=!0,g.required.has(T)&&g.missing.add(V)),g.missing.has(V)&&g.validating&&(D=r.styles.warning(j)),g.invalid.has(T)&&g.validating&&(D=r.styles.danger(j)),h===g.index&&(W!==D?D=r.styles.underline(D):D=r.styles.heading(ase.unstyle(D))),h++}D&&(g.output+=D)}let C=g.output.split(` +`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};ase.exports=PL});var use=w(($gt,cse)=>{"use strict";var lse=go(),aqe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",kL=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=aqe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Aqe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],f=()=>s[u+1],h=p=>{p.line=c,o.push(p)};for(h({type:"bos",value:""});uT.name===B.key);B.field=n.find(T=>T.name===B.key),D||(D=new kL(B),a.push(D)),D.lines.push(B.line-1);continue}let C=o[o.length-1];C.type==="text"&&C.line===c?C.value+=p:h({type:"text",value:p})}return h({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};cse.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i={...e.values,...e.initial},{tabstops:n,items:s,keys:o}=await Aqe(e,i),a=DL("result",r,e),l=DL("format",r,e),c=DL("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},f=!1)=>{let h=0;g.required=t,g.items=s,g.keys=o,g.output="";let p=async(v,D,T,H)=>{let j=await c(v,D,T,H);return j===!1?"Invalid field "+T.name:j};for(let v of n){let D=v.value,T=v.key;if(v.type!=="template"){D&&(g.output+=D);continue}if(v.type==="template"){let H=s.find(_=>_.name===T);e.required===!0&&g.required.add(H.name);let j=[H.input,g.values[H.value],H.value,D].find(u),V=(H.field||{}).message||v.inner;if(f){let _=await p(g.values[T],g,H,h);if(_&&typeof _=="string"||_===!1){g.invalid.set(T,_);continue}g.invalid.delete(T);let A=await a(g.values[T],g,H,h);g.output+=lse.unstyle(A);continue}H.placeholder=!1;let W=D;D=await l(D,g,H,h),j!==D?(g.values[T]=j,D=r.styles.typing(j),g.missing.delete(V)):(g.values[T]=void 0,j=`<${V}>`,D=r.styles.primary(j),H.placeholder=!0,g.required.has(T)&&g.missing.add(V)),g.missing.has(V)&&g.validating&&(D=r.styles.warning(j)),g.invalid.has(T)&&g.validating&&(D=r.styles.danger(j)),h===g.index&&(W!==D?D=r.styles.underline(D):D=r.styles.heading(lse.unstyle(D))),h++}D&&(g.output+=D)}let C=g.output.split(` `).map(v=>" "+v),y=s.length,B=0;for(let v of s)g.invalid.has(v.name)&&v.lines.forEach(D=>{C[D][0]===" "&&(C[D]=g.styles.danger(g.symbols.bullet)+C[D].slice(1))}),r.isValue(g.values[v.name])&&B++;return g.completed=(B/y*100).toFixed(0),g.output=C.join(` -`),g.output}};function xL(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var use=w((_gt,cse)=>{"use strict";var aqe=uo(),Aqe=lse(),lqe=Yh(),DL=class extends lqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Aqe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` +`),g.output}};function DL(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var fse=w((eft,gse)=>{"use strict";var lqe=go(),cqe=use(),uqe=Yh(),RL=class extends uqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await cqe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` `].find(v=>v!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",f=await this.hint()||"",h=i?"":await this.interpolate(this.state),p=this.state.key=t[e]||"",C=await this.format(p),y=await this.footer();C&&(c+=" "+C),f&&!C&&this.state.completed===0&&(c+=" "+f),this.clear(n);let B=[u,c,h,y,g.trim()];this.write(B.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:t,keys:i,index:n}=this.state,s=t.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:t,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c} -`;return this.state.error=a,super.submit()}if(t.size)return this.state.error="Required: "+[...t.keys()].join(", "),super.submit();let o=aqe.unstyle(i).split(` +`;return this.state.error=a,super.submit()}if(t.size)return this.state.error="Required: "+[...t.keys()].join(", "),super.submit();let o=lqe.unstyle(i).split(` `).map(a=>a.slice(1)).join(` -`);return this.value={values:n,result:o},super.submit()}};cse.exports=DL});var fse=w(($gt,gse)=>{"use strict";var cqe="(Use + to sort)",uqe=Cl(),kL=class extends uqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,cqe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};gse.exports=kL});var pse=w((eft,hse)=>{"use strict";var gqe=Mm(),RL=class extends gqe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` - `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=fqe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=D=>(D?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,f=await this.resolve(e.message,this.state,e,t),h=this.indent(e),p=h+e.scale.map((D,T)=>c(T===e.scaleIdx)).join(a),C=D=>D===e.scaleIdx?g(D):D,y=h+e.scale.map((D,T)=>C(T)).join(l),B=()=>[u,f].filter(Boolean).join(" "),v=()=>[B(),p,y," "].filter(Boolean).join(` +`);return this.value={values:n,result:o},super.submit()}};gse.exports=RL});var pse=w((tft,hse)=>{"use strict";var gqe="(Use + to sort)",fqe=Cl(),FL=class extends fqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,gqe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};hse.exports=FL});var Cse=w((rft,dse)=>{"use strict";var hqe=Mm(),NL=class extends hqe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` + `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=pqe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=D=>(D?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,f=await this.resolve(e.message,this.state,e,t),h=this.indent(e),p=h+e.scale.map((D,T)=>c(T===e.scaleIdx)).join(a),C=D=>D===e.scaleIdx?g(D):D,y=h+e.scale.map((D,T)=>C(T)).join(l),B=()=>[u,f].filter(Boolean).join(" "),v=()=>[B(),p,y," "].filter(Boolean).join(` `);return i&&(p=this.styles.cyan(p),y=this.styles.cyan(y)),v()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),t=await Promise.all(e);return t.length||t.push(this.styles.danger("No matching choices")),t.join(` `)}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(t),this.write([o,a,u,g].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function fqe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i{dse.exports=IL()});var Ese=w((rft,mse)=>{"use strict";var hqe=xb(),FL=class extends hqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};mse.exports=FL});var yse=w((ift,Ise)=>{"use strict";var pqe=Cl(),NL=class extends pqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Ise.exports=NL});var Bse=w(TL=>{"use strict";var wse=ji(),ui=(r,e)=>{wse.defineExport(TL,r,e),wse.defineExport(TL,r.toLowerCase(),e)};ui("AutoComplete",()=>Pne());ui("BasicAuth",()=>Lne());ui("Confirm",()=>Kne());ui("Editable",()=>Hne());ui("Form",()=>vb());ui("Input",()=>IL());ui("Invisible",()=>zne());ui("List",()=>Xne());ui("MultiSelect",()=>_ne());ui("Numeral",()=>tse());ui("Password",()=>ise());ui("Scale",()=>ose());ui("Select",()=>Cl());ui("Snippet",()=>use());ui("Sort",()=>fse());ui("Survey",()=>pse());ui("Text",()=>Cse());ui("Toggle",()=>Ese());ui("Quiz",()=>yse())});var Qse=w((sft,bse)=>{bse.exports={ArrayPrompt:Mm(),AuthPrompt:hL(),BooleanPrompt:xb(),NumberPrompt:QL(),StringPrompt:au()}});var Km=w((oft,vse)=>{"use strict";var Sse=J("assert"),ML=J("events"),ml=ji(),fo=class extends ML{constructor(e,t){super(),this.options=ml.merge({},e),this.answers={...t}}register(e,t){if(ml.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Sse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(ml.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=ml.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=ml;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Sse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Yh()}static get prompts(){return Bse()}static get types(){return Qse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return ml.mixinEmitter(e,new ML),e}};ml.mixinEmitter(fo,new ML);var LL=fo.prompts;for(let r of Object.keys(LL)){let e=r.toLowerCase(),t=i=>new LL[r](i).run();fo.prompt[e]=t,fo[e]=t,fo[r]||Reflect.defineProperty(fo,r,{get:()=>LL[r]})}var Om=r=>{ml.defineExport(fo,r,()=>fo.types[r])};Om("ArrayPrompt");Om("AuthPrompt");Om("BooleanPrompt");Om("NumberPrompt");Om("StringPrompt");vse.exports=fo});var Mse=w((Wft,Lse)=>{function Iqe(r,e){for(var t=-1,i=r==null?0:r.length;++t{var yqe=Y0(),wqe=bh();function Bqe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s{var bqe=Jh(),Qqe=Rh();function Sqe(r,e){return r&&bqe(e,Qqe(e),r)}Kse.exports=Sqe});var Gse=w((Xft,Hse)=>{function vqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Hse.exports=vqe});var jse=w((Zft,Yse)=>{var xqe=vn(),Pqe=ab(),Dqe=Gse(),kqe=Object.prototype,Rqe=kqe.hasOwnProperty;function Fqe(r){if(!xqe(r))return Dqe(r);var e=Pqe(r),t=[];for(var i in r)i=="constructor"&&(e||!Rqe.call(r,i))||t.push(i);return t}Yse.exports=Fqe});var Wh=w((_ft,qse)=>{var Nqe=aT(),Tqe=jse(),Lqe=gm();function Mqe(r){return Lqe(r)?Nqe(r,!0):Tqe(r)}qse.exports=Mqe});var Wse=w(($ft,Jse)=>{var Oqe=Jh(),Kqe=Wh();function Uqe(r,e){return r&&Oqe(e,Kqe(e),r)}Jse.exports=Uqe});var YL=w((Ym,zh)=>{var Hqe=ys(),Zse=typeof Ym=="object"&&Ym&&!Ym.nodeType&&Ym,zse=Zse&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,Gqe=zse&&zse.exports===Zse,Vse=Gqe?Hqe.Buffer:void 0,Xse=Vse?Vse.allocUnsafe:void 0;function Yqe(r,e){if(e)return r.slice();var t=r.length,i=Xse?Xse(t):new r.constructor(t);return r.copy(i),i}zh.exports=Yqe});var jL=w((eht,_se)=>{function jqe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t{var qqe=Jh(),Jqe=lb();function Wqe(r,e){return qqe(r,Jqe(r),e)}$se.exports=Wqe});var kb=w((rht,toe)=>{var zqe=AT(),Vqe=zqe(Object.getPrototypeOf,Object);toe.exports=Vqe});var qL=w((iht,roe)=>{var Xqe=q0(),Zqe=kb(),_qe=lb(),$qe=hT(),eJe=Object.getOwnPropertySymbols,tJe=eJe?function(r){for(var e=[];r;)Xqe(e,_qe(r)),r=Zqe(r);return e}:$qe;roe.exports=tJe});var noe=w((nht,ioe)=>{var rJe=Jh(),iJe=qL();function nJe(r,e){return rJe(r,iJe(r),e)}ioe.exports=nJe});var ooe=w((sht,soe)=>{var sJe=fT(),oJe=qL(),aJe=Wh();function AJe(r){return sJe(r,aJe,oJe)}soe.exports=AJe});var Aoe=w((oht,aoe)=>{var lJe=Object.prototype,cJe=lJe.hasOwnProperty;function uJe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&cJe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}aoe.exports=uJe});var Rb=w((aht,coe)=>{var loe=uT();function gJe(r){var e=new r.constructor(r.byteLength);return new loe(e).set(new loe(r)),e}coe.exports=gJe});var goe=w((Aht,uoe)=>{var fJe=Rb();function hJe(r,e){var t=e?fJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}uoe.exports=hJe});var hoe=w((lht,foe)=>{var pJe=/\w*$/;function dJe(r){var e=new r.constructor(r.source,pJe.exec(r));return e.lastIndex=r.lastIndex,e}foe.exports=dJe});var Eoe=w((cht,moe)=>{var poe=Rc(),doe=poe?poe.prototype:void 0,Coe=doe?doe.valueOf:void 0;function CJe(r){return Coe?Object(Coe.call(r)):{}}moe.exports=CJe});var JL=w((uht,Ioe)=>{var mJe=Rb();function EJe(r,e){var t=e?mJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}Ioe.exports=EJe});var woe=w((ght,yoe)=>{var IJe=Rb(),yJe=goe(),wJe=hoe(),BJe=Eoe(),bJe=JL(),QJe="[object Boolean]",SJe="[object Date]",vJe="[object Map]",xJe="[object Number]",PJe="[object RegExp]",DJe="[object Set]",kJe="[object String]",RJe="[object Symbol]",FJe="[object ArrayBuffer]",NJe="[object DataView]",TJe="[object Float32Array]",LJe="[object Float64Array]",MJe="[object Int8Array]",OJe="[object Int16Array]",KJe="[object Int32Array]",UJe="[object Uint8Array]",HJe="[object Uint8ClampedArray]",GJe="[object Uint16Array]",YJe="[object Uint32Array]";function jJe(r,e,t){var i=r.constructor;switch(e){case FJe:return IJe(r);case QJe:case SJe:return new i(+r);case NJe:return yJe(r,t);case TJe:case LJe:case MJe:case OJe:case KJe:case UJe:case HJe:case GJe:case YJe:return bJe(r,t);case vJe:return new i;case xJe:case kJe:return new i(r);case PJe:return wJe(r);case DJe:return new i;case RJe:return BJe(r)}}yoe.exports=jJe});var Qoe=w((fht,boe)=>{var qJe=vn(),Boe=Object.create,JJe=function(){function r(){}return function(e){if(!qJe(e))return{};if(Boe)return Boe(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();boe.exports=JJe});var WL=w((hht,Soe)=>{var WJe=Qoe(),zJe=kb(),VJe=ab();function XJe(r){return typeof r.constructor=="function"&&!VJe(r)?WJe(zJe(r)):{}}Soe.exports=XJe});var xoe=w((pht,voe)=>{var ZJe=hm(),_Je=Jo(),$Je="[object Map]";function eWe(r){return _Je(r)&&ZJe(r)==$Je}voe.exports=eWe});var Roe=w((dht,koe)=>{var tWe=xoe(),rWe=nb(),Poe=sb(),Doe=Poe&&Poe.isMap,iWe=Doe?rWe(Doe):tWe;koe.exports=iWe});var Noe=w((Cht,Foe)=>{var nWe=hm(),sWe=Jo(),oWe="[object Set]";function aWe(r){return sWe(r)&&nWe(r)==oWe}Foe.exports=aWe});var Ooe=w((mht,Moe)=>{var AWe=Noe(),lWe=nb(),Toe=sb(),Loe=Toe&&Toe.isSet,cWe=Loe?lWe(Loe):AWe;Moe.exports=cWe});var Yoe=w((Eht,Goe)=>{var uWe=fm(),gWe=Mse(),fWe=Y0(),hWe=Use(),pWe=Wse(),dWe=YL(),CWe=jL(),mWe=eoe(),EWe=noe(),IWe=pT(),yWe=ooe(),wWe=hm(),BWe=Aoe(),bWe=woe(),QWe=WL(),SWe=vs(),vWe=lm(),xWe=Roe(),PWe=vn(),DWe=Ooe(),kWe=Rh(),RWe=Wh(),FWe=1,NWe=2,TWe=4,Koe="[object Arguments]",LWe="[object Array]",MWe="[object Boolean]",OWe="[object Date]",KWe="[object Error]",Uoe="[object Function]",UWe="[object GeneratorFunction]",HWe="[object Map]",GWe="[object Number]",Hoe="[object Object]",YWe="[object RegExp]",jWe="[object Set]",qWe="[object String]",JWe="[object Symbol]",WWe="[object WeakMap]",zWe="[object ArrayBuffer]",VWe="[object DataView]",XWe="[object Float32Array]",ZWe="[object Float64Array]",_We="[object Int8Array]",$We="[object Int16Array]",e3e="[object Int32Array]",t3e="[object Uint8Array]",r3e="[object Uint8ClampedArray]",i3e="[object Uint16Array]",n3e="[object Uint32Array]",ur={};ur[Koe]=ur[LWe]=ur[zWe]=ur[VWe]=ur[MWe]=ur[OWe]=ur[XWe]=ur[ZWe]=ur[_We]=ur[$We]=ur[e3e]=ur[HWe]=ur[GWe]=ur[Hoe]=ur[YWe]=ur[jWe]=ur[qWe]=ur[JWe]=ur[t3e]=ur[r3e]=ur[i3e]=ur[n3e]=!0;ur[KWe]=ur[Uoe]=ur[WWe]=!1;function Fb(r,e,t,i,n,s){var o,a=e&FWe,l=e&NWe,c=e&TWe;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!PWe(r))return r;var u=SWe(r);if(u){if(o=BWe(r),!a)return CWe(r,o)}else{var g=wWe(r),f=g==Uoe||g==UWe;if(vWe(r))return dWe(r,a);if(g==Hoe||g==Koe||f&&!n){if(o=l||f?{}:QWe(r),!a)return l?EWe(r,pWe(o,r)):mWe(r,hWe(o,r))}else{if(!ur[g])return n?r:{};o=bWe(r,g,a)}}s||(s=new uWe);var h=s.get(r);if(h)return h;s.set(r,o),DWe(r)?r.forEach(function(y){o.add(Fb(y,e,t,y,r,s))}):xWe(r)&&r.forEach(function(y,B){o.set(B,Fb(y,e,t,B,r,s))});var p=c?l?yWe:IWe:l?RWe:kWe,C=u?void 0:p(r);return gWe(C||r,function(y,B){C&&(B=y,y=r[B]),fWe(o,B,Fb(y,e,t,B,r,s))}),o}Goe.exports=Fb});var zL=w((Iht,joe)=>{var s3e=Yoe(),o3e=1,a3e=4;function A3e(r){return s3e(r,o3e|a3e)}joe.exports=A3e});var Joe=w((yht,qoe)=>{var l3e=KN();function c3e(r,e,t){return r==null?r:l3e(r,e,t)}qoe.exports=c3e});var Zoe=w((vht,Xoe)=>{function u3e(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}Xoe.exports=u3e});var $oe=w((xht,_oe)=>{var g3e=rm(),f3e=HR();function h3e(r,e){return e.length<2?r:g3e(r,f3e(e,0,-1))}_oe.exports=h3e});var tae=w((Pht,eae)=>{var p3e=Bh(),d3e=Zoe(),C3e=$oe(),m3e=Zc();function E3e(r,e){return e=p3e(e,r),r=C3e(r,e),r==null||delete r[m3e(d3e(e))]}eae.exports=E3e});var iae=w((Dht,rae)=>{var I3e=tae();function y3e(r,e){return r==null?!0:I3e(r,e)}rae.exports=y3e});var Aae=w((npt,b3e)=>{b3e.exports={name:"@yarnpkg/cli",version:"3.6.1",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^",chalk:"^3.0.0","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var nM=w((Pmt,wae)=>{"use strict";wae.exports=function(e,t){t===!0&&(t=0);var i="";if(typeof e=="string")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\:|\+/).filter(Boolean);return typeof t=="number"?n[t]:n}});var bae=w((Dmt,Bae)=>{"use strict";var Y3e=nM();function j3e(r){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=Y3e(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||"",e.password=t.password||"",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=r,e.query={},e.parse_failed=!0}return e}Bae.exports=j3e});var vae=w((kmt,Sae)=>{"use strict";var q3e=bae();function J3e(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var W3e=J3e(q3e),z3e="text/plain",V3e="us-ascii",Qae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),X3e=(r,{stripHash:e})=>{let t=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[f,h=""]=g.split("=").map(p=>p.trim());return f==="charset"&&(h=h.toLowerCase(),h===V3e)?"":`${f}${h?`=${h}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length>0||l&&l!==z3e)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`};function Z3e(r,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return X3e(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname){let o=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,a=0,l="";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],f=u.index,h=n.pathname.slice(a,f);l+=h.replace(/\/{2,}/g,"/"),l+=g,a=f+g.length}let c=n.pathname.slice(a,n.pathname.length);l+=c.replace(/\/{2,}/g,"/"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),a=o[o.length-1];Qae(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])Qae(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r}var sM=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!="string"||!r.trim())&&i("Invalid url."),r.length>sM.MAX_INPUT_LENGTH&&i("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),r=Z3e(r,e));let n=W3e.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=["ssh"],n.protocol="ssh",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i("URL parsing failed.")}return n};sM.MAX_INPUT_LENGTH=2048;Sae.exports=sM});var Dae=w((Rmt,Pae)=>{"use strict";var _3e=nM();function xae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=_3e(r);if(r=r.substring(r.indexOf("://")+3),xae(e))return!0;var t=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!r.match(t)&&r.indexOf("@"){"use strict";var $3e=vae(),kae=Dae();function e4e(r){var e=$3e(r);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),kae(e.protocols)||e.protocols.length===0&&kae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Rae.exports=e4e});var Tae=w((Nmt,Nae)=>{"use strict";var t4e=Fae();function oM(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(r)&&(r="https://github.com/"+r);var t=t4e(r),i=t.resource.split("."),n=null;switch(t.toString=function(y){return oM.stringify(this,y)},t.source=i.length>2?i.slice(1-i.length).join("."):t.source=t.resource,t.git_suffix=/\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),t.owner=decodeURIComponent(t.user),t.source){case"git.cloudforge.com":t.owner=t.user,t.organization=i[0],t.source="cloudforge.com";break;case"visualstudio.com":if(t.resource==="vs-ssh.visualstudio.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+"/"+n[3]);break}else{n=t.name.split("/"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name);break}case"dev.azure.com":case"azure.com":if(t.resource==="ssh.dev.azure.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split("/"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\/+/g,"")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,""));break}default:n=t.name.split("/");var s=n.length-1;if(n.length>=2){var o=n.indexOf("-",2),a=n.indexOf("blob",2),l=n.indexOf("tree",2),c=n.indexOf("commit",2),u=n.indexOf("src",2),g=n.indexOf("raw",2),f=n.indexOf("edit",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:f>0?f-1:s,t.owner=n.slice(0,s).join("/"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref="",t.filepathtype="",t.filepath="";var h=n.length>s&&n[s+1]==="-"?s+1:s;n.length>h+2&&["raw","src","blob","tree","edit"].indexOf(n[h+1])>=0&&(t.filepathtype=n[h+1],t.ref=n[h+2],n.length>h+3&&(t.filepath=n.slice(h+3).join("/"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+="/"),t.full_name+=t.name)),t.owner.startsWith("scm/")&&(t.source="bitbucket-server",t.owner=t.owner.replace("scm/",""),t.organization=t.owner,t.full_name=t.owner+"/"+t.name);var p=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,C=p.exec(t.pathname);return C!=null&&(t.source="bitbucket-server",C[1]==="users"?t.owner="~"+C[2]:t.owner=C[2],t.organization=t.owner,t.name=C[3],n=C[4].split("/"),n.length>1&&(["raw","browse"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join("/"))):n[1]==="commits"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+"/"+t.name,t.query.at?t.ref=t.query.at:t.ref=""),t}oM.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?r4e(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+i4e(r)+n;default:return r.href}};function r4e(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}function i4e(r){switch(r.source){case"bitbucket-server":return"scm/"+r.full_name;default:return""+r.full_name}}Nae.exports=oM});var xM=w((byt,tAe)=>{var b4e=bh(),Q4e=Ih();function S4e(r,e,t){(t!==void 0&&!Q4e(r[e],t)||t===void 0&&!(e in r))&&b4e(r,e,t)}tAe.exports=S4e});var iAe=w((Qyt,rAe)=>{var v4e=gm(),x4e=Jo();function P4e(r){return x4e(r)&&v4e(r)}rAe.exports=P4e});var oAe=w((Syt,sAe)=>{var D4e=Fc(),k4e=kb(),R4e=Jo(),F4e="[object Object]",N4e=Function.prototype,T4e=Object.prototype,nAe=N4e.toString,L4e=T4e.hasOwnProperty,M4e=nAe.call(Object);function O4e(r){if(!R4e(r)||D4e(r)!=F4e)return!1;var e=k4e(r);if(e===null)return!0;var t=L4e.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&nAe.call(t)==M4e}sAe.exports=O4e});var PM=w((vyt,aAe)=>{function K4e(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}aAe.exports=K4e});var lAe=w((xyt,AAe)=>{var U4e=Jh(),H4e=Wh();function G4e(r){return U4e(r,H4e(r))}AAe.exports=G4e});var pAe=w((Pyt,hAe)=>{var cAe=xM(),Y4e=YL(),j4e=JL(),q4e=jL(),J4e=WL(),uAe=nm(),gAe=vs(),W4e=iAe(),z4e=lm(),V4e=U0(),X4e=vn(),Z4e=oAe(),_4e=ob(),fAe=PM(),$4e=lAe();function e8e(r,e,t,i,n,s,o){var a=fAe(r,t),l=fAe(e,t),c=o.get(l);if(c){cAe(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var f=gAe(l),h=!f&&z4e(l),p=!f&&!h&&_4e(l);u=l,f||h||p?gAe(a)?u=a:W4e(a)?u=q4e(a):h?(g=!1,u=Y4e(l,!0)):p?(g=!1,u=j4e(l,!0)):u=[]:Z4e(l)||uAe(l)?(u=a,uAe(a)?u=$4e(a):(!X4e(a)||V4e(a))&&(u=J4e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),cAe(r,t,u)}hAe.exports=e8e});var mAe=w((Dyt,CAe)=>{var t8e=fm(),r8e=xM(),i8e=sT(),n8e=pAe(),s8e=vn(),o8e=Wh(),a8e=PM();function dAe(r,e,t,i,n){r!==e&&i8e(e,function(s,o){if(n||(n=new t8e),s8e(s))n8e(r,e,o,t,dAe,i,n);else{var a=i?i(a8e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),r8e(r,o,a)}},o8e)}CAe.exports=dAe});var IAe=w((kyt,EAe)=>{var A8e=J0(),l8e=GN(),c8e=YN();function u8e(r,e){return c8e(l8e(r,e,A8e),r+"")}EAe.exports=u8e});var wAe=w((Ryt,yAe)=>{var g8e=Ih(),f8e=gm(),h8e=im(),p8e=vn();function d8e(r,e,t){if(!p8e(t))return!1;var i=typeof e;return(i=="number"?f8e(t)&&h8e(e,t.length):i=="string"&&e in t)?g8e(t[e],r):!1}yAe.exports=d8e});var bAe=w((Fyt,BAe)=>{var C8e=IAe(),m8e=wAe();function E8e(r){return C8e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&m8e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var I8e=mAe(),y8e=bAe(),w8e=y8e(function(r,e,t){I8e(r,e,t)});QAe.exports=w8e});var UAe=w((Fwt,KAe)=>{var KM;KAe.exports=()=>(typeof KM>"u"&&(KM=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),KM)});var ale=w((iBt,ole)=>{var zM=Symbol("arg flag"),Rn=class extends Error{constructor(e,t){super(e),this.name="ArgError",this.code=t,Object.setPrototypeOf(this,Rn.prototype)}};function uE(r,{argv:e=process.argv.slice(2),permissive:t=!1,stopAtPositional:i=!1}={}){if(!r)throw new Rn("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},s={},o={};for(let a of Object.keys(r)){if(!a)throw new Rn("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new Rn(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new Rn(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof r[a]=="string"){s[a]=r[a];continue}let l=r[a],c=!1;if(Array.isArray(l)&&l.length===1&&typeof l[0]=="function"){let[u]=l;l=(g,f,h=[])=>(h.push(u(g,f,h[h.length-1])),h),c=u===Boolean||u[zM]===!0}else if(typeof l=="function")c=l===Boolean||l[zM]===!0;else throw new Rn(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new Rn(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");o[a]=[l,c]}for(let a=0,l=e.length;a0){n._=n._.concat(e.slice(a));break}if(c==="--"){n._=n._.concat(e.slice(a+1));break}if(c.length>1&&c[0]==="-"){let u=c[1]==="-"||c.length===2?[c]:c.slice(1).split("").map(g=>`-${g}`);for(let g=0;g1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(y===Number||typeof BigInt<"u"&&y===BigInt))){let v=h===C?"":` (alias for ${C})`;throw new Rn(`option requires argument: ${h}${v}`,"ARG_MISSING_REQUIRED_LONGARG")}n[C]=y(e[a+1],C,n[C]),++a}else n[C]=y(p,C,n[C])}}else n._.push(c)}return n}uE.flag=r=>(r[zM]=!0,r);uE.COUNT=uE.flag((r,e,t)=>(t||0)+1);uE.ArgError=Rn;ole.exports=uE});var mle=w((NBt,Cle)=>{var _M;Cle.exports=()=>(typeof _M>"u"&&(_M=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),_M)});var Qle=w((nO,sO)=>{(function(r){nO&&typeof nO=="object"&&typeof sO<"u"?sO.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window<"u"?window.isWindows=r():typeof global<"u"?global.isWindows=r():typeof self<"u"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Ple=w((F0t,xle)=>{"use strict";oO.ifExists=Ize;var np=J("util"),Ts=J("path"),Sle=Qle(),Cze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,mze={createPwshFile:!0,createCmdFile:Sle(),fs:J("fs")},Eze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function vle(r){let e={...mze,...r},t=e.fs;return e.fs_={chmod:t.chmod?np.promisify(t.chmod):async()=>{},mkdir:np.promisify(t.mkdir),readFile:np.promisify(t.readFile),stat:np.promisify(t.stat),unlink:np.promisify(t.unlink),writeFile:np.promisify(t.writeFile)},e}async function oO(r,e,t){let i=vle(t);await i.fs_.stat(r),await wze(r,e,i)}function Ize(r,e,t){return oO(r,e,t).catch(()=>{})}function yze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function wze(r,e,t){let i=await vze(r,t);return await Bze(e,t),bze(r,e,i,t)}function Bze(r,e){return e.fs_.mkdir(Ts.dirname(r),{recursive:!0})}function bze(r,e,t,i){let n=vle(i),s=[{generator:Dze,extension:""}];return n.createCmdFile&&s.push({generator:Pze,extension:".cmd"}),n.createPwshFile&&s.push({generator:kze,extension:".ps1"}),Promise.all(s.map(o=>xze(r,e+o.extension,t,o.generator,n)))}function Qze(r,e){return yze(r,e)}function Sze(r,e){return Rze(r,e)}async function vze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(Cze);if(!n){let s=Ts.extname(r).toLowerCase();return{program:Eze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function xze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await Qze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),Sze(e,n)}function Pze(r,e,t){let n=Ts.relative(Ts.dirname(e),r).split("/").join("\\"),s=Ts.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=aO(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r +`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function pqe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i{mse.exports=wL()});var yse=w((nft,Ise)=>{"use strict";var dqe=xb(),TL=class extends dqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};Ise.exports=TL});var Bse=w((sft,wse)=>{"use strict";var Cqe=Cl(),LL=class extends Cqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};wse.exports=LL});var Qse=w(ML=>{"use strict";var bse=ji(),ui=(r,e)=>{bse.defineExport(ML,r,e),bse.defineExport(ML,r.toLowerCase(),e)};ui("AutoComplete",()=>kne());ui("BasicAuth",()=>One());ui("Confirm",()=>Hne());ui("Editable",()=>Yne());ui("Form",()=>vb());ui("Input",()=>wL());ui("Invisible",()=>Xne());ui("List",()=>_ne());ui("MultiSelect",()=>ese());ui("Numeral",()=>ise());ui("Password",()=>sse());ui("Scale",()=>Ase());ui("Select",()=>Cl());ui("Snippet",()=>fse());ui("Sort",()=>pse());ui("Survey",()=>Cse());ui("Text",()=>Ese());ui("Toggle",()=>yse());ui("Quiz",()=>Bse())});var vse=w((aft,Sse)=>{Sse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:xb(),NumberPrompt:vL(),StringPrompt:au()}});var Km=w((Aft,Pse)=>{"use strict";var xse=J("assert"),KL=J("events"),ml=ji(),ho=class extends KL{constructor(e,t){super(),this.options=ml.merge({},e),this.answers={...t}}register(e,t){if(ml.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}xse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(ml.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=ml.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=ml;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];xse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Yh()}static get prompts(){return Qse()}static get types(){return vse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return ml.mixinEmitter(e,new KL),e}};ml.mixinEmitter(ho,new KL);var OL=ho.prompts;for(let r of Object.keys(OL)){let e=r.toLowerCase(),t=i=>new OL[r](i).run();ho.prompt[e]=t,ho[e]=t,ho[r]||Reflect.defineProperty(ho,r,{get:()=>OL[r]})}var Om=r=>{ml.defineExport(ho,r,()=>ho.types[r])};Om("ArrayPrompt");Om("AuthPrompt");Om("BooleanPrompt");Om("NumberPrompt");Om("StringPrompt");Pse.exports=ho});var Kse=w((Vft,Ose)=>{function wqe(r,e){for(var t=-1,i=r==null?0:r.length;++t{var Bqe=Y0(),bqe=bh();function Qqe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s{var Sqe=Jh(),vqe=Rh();function xqe(r,e){return r&&Sqe(e,vqe(e),r)}Hse.exports=xqe});var jse=w((_ft,Yse)=>{function Pqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Yse.exports=Pqe});var Jse=w(($ft,qse)=>{var Dqe=vn(),kqe=ab(),Rqe=jse(),Fqe=Object.prototype,Nqe=Fqe.hasOwnProperty;function Tqe(r){if(!Dqe(r))return Rqe(r);var e=kqe(r),t=[];for(var i in r)i=="constructor"&&(e||!Nqe.call(r,i))||t.push(i);return t}qse.exports=Tqe});var Wh=w((eht,Wse)=>{var Lqe=lT(),Mqe=Jse(),Oqe=gm();function Kqe(r){return Oqe(r)?Lqe(r,!0):Mqe(r)}Wse.exports=Kqe});var Vse=w((tht,zse)=>{var Uqe=Jh(),Hqe=Wh();function Gqe(r,e){return r&&Uqe(e,Hqe(e),r)}zse.exports=Gqe});var qL=w((Ym,zh)=>{var Yqe=ys(),$se=typeof Ym=="object"&&Ym&&!Ym.nodeType&&Ym,Xse=$se&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,jqe=Xse&&Xse.exports===$se,Zse=jqe?Yqe.Buffer:void 0,_se=Zse?Zse.allocUnsafe:void 0;function qqe(r,e){if(e)return r.slice();var t=r.length,i=_se?_se(t):new r.constructor(t);return r.copy(i),i}zh.exports=qqe});var JL=w((rht,eoe)=>{function Jqe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t{var Wqe=Jh(),zqe=lb();function Vqe(r,e){return Wqe(r,zqe(r),e)}toe.exports=Vqe});var kb=w((nht,ioe)=>{var Xqe=cT(),Zqe=Xqe(Object.getPrototypeOf,Object);ioe.exports=Zqe});var WL=w((sht,noe)=>{var _qe=q0(),$qe=kb(),eJe=lb(),tJe=dT(),rJe=Object.getOwnPropertySymbols,iJe=rJe?function(r){for(var e=[];r;)_qe(e,eJe(r)),r=$qe(r);return e}:tJe;noe.exports=iJe});var ooe=w((oht,soe)=>{var nJe=Jh(),sJe=WL();function oJe(r,e){return nJe(r,sJe(r),e)}soe.exports=oJe});var Aoe=w((aht,aoe)=>{var aJe=pT(),AJe=WL(),lJe=Wh();function cJe(r){return aJe(r,lJe,AJe)}aoe.exports=cJe});var coe=w((Aht,loe)=>{var uJe=Object.prototype,gJe=uJe.hasOwnProperty;function fJe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&gJe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}loe.exports=fJe});var Rb=w((lht,goe)=>{var uoe=fT();function hJe(r){var e=new r.constructor(r.byteLength);return new uoe(e).set(new uoe(r)),e}goe.exports=hJe});var hoe=w((cht,foe)=>{var pJe=Rb();function dJe(r,e){var t=e?pJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}foe.exports=dJe});var doe=w((uht,poe)=>{var CJe=/\w*$/;function mJe(r){var e=new r.constructor(r.source,CJe.exec(r));return e.lastIndex=r.lastIndex,e}poe.exports=mJe});var yoe=w((ght,Ioe)=>{var Coe=Rc(),moe=Coe?Coe.prototype:void 0,Eoe=moe?moe.valueOf:void 0;function EJe(r){return Eoe?Object(Eoe.call(r)):{}}Ioe.exports=EJe});var zL=w((fht,woe)=>{var IJe=Rb();function yJe(r,e){var t=e?IJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}woe.exports=yJe});var boe=w((hht,Boe)=>{var wJe=Rb(),BJe=hoe(),bJe=doe(),QJe=yoe(),SJe=zL(),vJe="[object Boolean]",xJe="[object Date]",PJe="[object Map]",DJe="[object Number]",kJe="[object RegExp]",RJe="[object Set]",FJe="[object String]",NJe="[object Symbol]",TJe="[object ArrayBuffer]",LJe="[object DataView]",MJe="[object Float32Array]",OJe="[object Float64Array]",KJe="[object Int8Array]",UJe="[object Int16Array]",HJe="[object Int32Array]",GJe="[object Uint8Array]",YJe="[object Uint8ClampedArray]",jJe="[object Uint16Array]",qJe="[object Uint32Array]";function JJe(r,e,t){var i=r.constructor;switch(e){case TJe:return wJe(r);case vJe:case xJe:return new i(+r);case LJe:return BJe(r,t);case MJe:case OJe:case KJe:case UJe:case HJe:case GJe:case YJe:case jJe:case qJe:return SJe(r,t);case PJe:return new i;case DJe:case FJe:return new i(r);case kJe:return bJe(r);case RJe:return new i;case NJe:return QJe(r)}}Boe.exports=JJe});var voe=w((pht,Soe)=>{var WJe=vn(),Qoe=Object.create,zJe=function(){function r(){}return function(e){if(!WJe(e))return{};if(Qoe)return Qoe(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();Soe.exports=zJe});var VL=w((dht,xoe)=>{var VJe=voe(),XJe=kb(),ZJe=ab();function _Je(r){return typeof r.constructor=="function"&&!ZJe(r)?VJe(XJe(r)):{}}xoe.exports=_Je});var Doe=w((Cht,Poe)=>{var $Je=hm(),eWe=Wo(),tWe="[object Map]";function rWe(r){return eWe(r)&&$Je(r)==tWe}Poe.exports=rWe});var Noe=w((mht,Foe)=>{var iWe=Doe(),nWe=nb(),koe=sb(),Roe=koe&&koe.isMap,sWe=Roe?nWe(Roe):iWe;Foe.exports=sWe});var Loe=w((Eht,Toe)=>{var oWe=hm(),aWe=Wo(),AWe="[object Set]";function lWe(r){return aWe(r)&&oWe(r)==AWe}Toe.exports=lWe});var Uoe=w((Iht,Koe)=>{var cWe=Loe(),uWe=nb(),Moe=sb(),Ooe=Moe&&Moe.isSet,gWe=Ooe?uWe(Ooe):cWe;Koe.exports=gWe});var qoe=w((yht,joe)=>{var fWe=fm(),hWe=Kse(),pWe=Y0(),dWe=Gse(),CWe=Vse(),mWe=qL(),EWe=JL(),IWe=roe(),yWe=ooe(),wWe=CT(),BWe=Aoe(),bWe=hm(),QWe=coe(),SWe=boe(),vWe=VL(),xWe=vs(),PWe=lm(),DWe=Noe(),kWe=vn(),RWe=Uoe(),FWe=Rh(),NWe=Wh(),TWe=1,LWe=2,MWe=4,Hoe="[object Arguments]",OWe="[object Array]",KWe="[object Boolean]",UWe="[object Date]",HWe="[object Error]",Goe="[object Function]",GWe="[object GeneratorFunction]",YWe="[object Map]",jWe="[object Number]",Yoe="[object Object]",qWe="[object RegExp]",JWe="[object Set]",WWe="[object String]",zWe="[object Symbol]",VWe="[object WeakMap]",XWe="[object ArrayBuffer]",ZWe="[object DataView]",_We="[object Float32Array]",$We="[object Float64Array]",e3e="[object Int8Array]",t3e="[object Int16Array]",r3e="[object Int32Array]",i3e="[object Uint8Array]",n3e="[object Uint8ClampedArray]",s3e="[object Uint16Array]",o3e="[object Uint32Array]",ur={};ur[Hoe]=ur[OWe]=ur[XWe]=ur[ZWe]=ur[KWe]=ur[UWe]=ur[_We]=ur[$We]=ur[e3e]=ur[t3e]=ur[r3e]=ur[YWe]=ur[jWe]=ur[Yoe]=ur[qWe]=ur[JWe]=ur[WWe]=ur[zWe]=ur[i3e]=ur[n3e]=ur[s3e]=ur[o3e]=!0;ur[HWe]=ur[Goe]=ur[VWe]=!1;function Fb(r,e,t,i,n,s){var o,a=e&TWe,l=e&LWe,c=e&MWe;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!kWe(r))return r;var u=xWe(r);if(u){if(o=QWe(r),!a)return EWe(r,o)}else{var g=bWe(r),f=g==Goe||g==GWe;if(PWe(r))return mWe(r,a);if(g==Yoe||g==Hoe||f&&!n){if(o=l||f?{}:vWe(r),!a)return l?yWe(r,CWe(o,r)):IWe(r,dWe(o,r))}else{if(!ur[g])return n?r:{};o=SWe(r,g,a)}}s||(s=new fWe);var h=s.get(r);if(h)return h;s.set(r,o),RWe(r)?r.forEach(function(y){o.add(Fb(y,e,t,y,r,s))}):DWe(r)&&r.forEach(function(y,B){o.set(B,Fb(y,e,t,B,r,s))});var p=c?l?BWe:wWe:l?NWe:FWe,C=u?void 0:p(r);return hWe(C||r,function(y,B){C&&(B=y,y=r[B]),pWe(o,B,Fb(y,e,t,B,r,s))}),o}joe.exports=Fb});var XL=w((wht,Joe)=>{var a3e=qoe(),A3e=1,l3e=4;function c3e(r){return a3e(r,A3e|l3e)}Joe.exports=c3e});var zoe=w((Bht,Woe)=>{var u3e=HN();function g3e(r,e,t){return r==null?r:u3e(r,e,t)}Woe.exports=g3e});var $oe=w((Pht,_oe)=>{function f3e(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}_oe.exports=f3e});var tae=w((Dht,eae)=>{var h3e=rm(),p3e=HR();function d3e(r,e){return e.length<2?r:h3e(r,p3e(e,0,-1))}eae.exports=d3e});var iae=w((kht,rae)=>{var C3e=Bh(),m3e=$oe(),E3e=tae(),I3e=Zc();function y3e(r,e){return e=C3e(e,r),r=E3e(r,e),r==null||delete r[I3e(m3e(e))]}rae.exports=y3e});var sae=w((Rht,nae)=>{var w3e=iae();function B3e(r,e){return r==null?!0:w3e(r,e)}nae.exports=B3e});var cae=w((opt,S3e)=>{S3e.exports={name:"@yarnpkg/cli",version:"3.6.2",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^",chalk:"^3.0.0","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var oM=w((kmt,bae)=>{"use strict";bae.exports=function(e,t){t===!0&&(t=0);var i="";if(typeof e=="string")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\:|\+/).filter(Boolean);return typeof t=="number"?n[t]:n}});var Sae=w((Rmt,Qae)=>{"use strict";var q3e=oM();function J3e(r){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=q3e(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||"",e.password=t.password||"",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=r,e.query={},e.parse_failed=!0}return e}Qae.exports=J3e});var Pae=w((Fmt,xae)=>{"use strict";var W3e=Sae();function z3e(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var V3e=z3e(W3e),X3e="text/plain",Z3e="us-ascii",vae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),_3e=(r,{stripHash:e})=>{let t=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[f,h=""]=g.split("=").map(p=>p.trim());return f==="charset"&&(h=h.toLowerCase(),h===Z3e)?"":`${f}${h?`=${h}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length>0||l&&l!==X3e)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`};function $3e(r,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return _3e(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname){let o=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,a=0,l="";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],f=u.index,h=n.pathname.slice(a,f);l+=h.replace(/\/{2,}/g,"/"),l+=g,a=f+g.length}let c=n.pathname.slice(a,n.pathname.length);l+=c.replace(/\/{2,}/g,"/"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),a=o[o.length-1];vae(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])vae(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r}var aM=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!="string"||!r.trim())&&i("Invalid url."),r.length>aM.MAX_INPUT_LENGTH&&i("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),r=$3e(r,e));let n=V3e.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=["ssh"],n.protocol="ssh",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i("URL parsing failed.")}return n};aM.MAX_INPUT_LENGTH=2048;xae.exports=aM});var Rae=w((Nmt,kae)=>{"use strict";var e4e=oM();function Dae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=e4e(r);if(r=r.substring(r.indexOf("://")+3),Dae(e))return!0;var t=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!r.match(t)&&r.indexOf("@"){"use strict";var t4e=Pae(),Fae=Rae();function r4e(r){var e=t4e(r);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Fae(e.protocols)||e.protocols.length===0&&Fae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Nae.exports=r4e});var Mae=w((Lmt,Lae)=>{"use strict";var i4e=Tae();function AM(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(r)&&(r="https://github.com/"+r);var t=i4e(r),i=t.resource.split("."),n=null;switch(t.toString=function(y){return AM.stringify(this,y)},t.source=i.length>2?i.slice(1-i.length).join("."):t.source=t.resource,t.git_suffix=/\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),t.owner=decodeURIComponent(t.user),t.source){case"git.cloudforge.com":t.owner=t.user,t.organization=i[0],t.source="cloudforge.com";break;case"visualstudio.com":if(t.resource==="vs-ssh.visualstudio.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+"/"+n[3]);break}else{n=t.name.split("/"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name);break}case"dev.azure.com":case"azure.com":if(t.resource==="ssh.dev.azure.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split("/"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\/+/g,"")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,""));break}default:n=t.name.split("/");var s=n.length-1;if(n.length>=2){var o=n.indexOf("-",2),a=n.indexOf("blob",2),l=n.indexOf("tree",2),c=n.indexOf("commit",2),u=n.indexOf("src",2),g=n.indexOf("raw",2),f=n.indexOf("edit",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:f>0?f-1:s,t.owner=n.slice(0,s).join("/"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref="",t.filepathtype="",t.filepath="";var h=n.length>s&&n[s+1]==="-"?s+1:s;n.length>h+2&&["raw","src","blob","tree","edit"].indexOf(n[h+1])>=0&&(t.filepathtype=n[h+1],t.ref=n[h+2],n.length>h+3&&(t.filepath=n.slice(h+3).join("/"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+="/"),t.full_name+=t.name)),t.owner.startsWith("scm/")&&(t.source="bitbucket-server",t.owner=t.owner.replace("scm/",""),t.organization=t.owner,t.full_name=t.owner+"/"+t.name);var p=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,C=p.exec(t.pathname);return C!=null&&(t.source="bitbucket-server",C[1]==="users"?t.owner="~"+C[2]:t.owner=C[2],t.organization=t.owner,t.name=C[3],n=C[4].split("/"),n.length>1&&(["raw","browse"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join("/"))):n[1]==="commits"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+"/"+t.name,t.query.at?t.ref=t.query.at:t.ref=""),t}AM.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?n4e(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+s4e(r)+n;default:return r.href}};function n4e(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}function s4e(r){switch(r.source){case"bitbucket-server":return"scm/"+r.full_name;default:return""+r.full_name}}Lae.exports=AM});var DM=w((Syt,iAe)=>{var S4e=bh(),v4e=Ih();function x4e(r,e,t){(t!==void 0&&!v4e(r[e],t)||t===void 0&&!(e in r))&&S4e(r,e,t)}iAe.exports=x4e});var sAe=w((vyt,nAe)=>{var P4e=gm(),D4e=Wo();function k4e(r){return D4e(r)&&P4e(r)}nAe.exports=k4e});var AAe=w((xyt,aAe)=>{var R4e=Fc(),F4e=kb(),N4e=Wo(),T4e="[object Object]",L4e=Function.prototype,M4e=Object.prototype,oAe=L4e.toString,O4e=M4e.hasOwnProperty,K4e=oAe.call(Object);function U4e(r){if(!N4e(r)||R4e(r)!=T4e)return!1;var e=F4e(r);if(e===null)return!0;var t=O4e.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&oAe.call(t)==K4e}aAe.exports=U4e});var kM=w((Pyt,lAe)=>{function H4e(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}lAe.exports=H4e});var uAe=w((Dyt,cAe)=>{var G4e=Jh(),Y4e=Wh();function j4e(r){return G4e(r,Y4e(r))}cAe.exports=j4e});var CAe=w((kyt,dAe)=>{var gAe=DM(),q4e=qL(),J4e=zL(),W4e=JL(),z4e=VL(),fAe=nm(),hAe=vs(),V4e=sAe(),X4e=lm(),Z4e=U0(),_4e=vn(),$4e=AAe(),e8e=ob(),pAe=kM(),t8e=uAe();function r8e(r,e,t,i,n,s,o){var a=pAe(r,t),l=pAe(e,t),c=o.get(l);if(c){gAe(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var f=hAe(l),h=!f&&X4e(l),p=!f&&!h&&e8e(l);u=l,f||h||p?hAe(a)?u=a:V4e(a)?u=W4e(a):h?(g=!1,u=q4e(l,!0)):p?(g=!1,u=J4e(l,!0)):u=[]:$4e(l)||fAe(l)?(u=a,fAe(a)?u=t8e(a):(!_4e(a)||Z4e(a))&&(u=z4e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),gAe(r,t,u)}dAe.exports=r8e});var IAe=w((Ryt,EAe)=>{var i8e=fm(),n8e=DM(),s8e=aT(),o8e=CAe(),a8e=vn(),A8e=Wh(),l8e=kM();function mAe(r,e,t,i,n){r!==e&&s8e(e,function(s,o){if(n||(n=new i8e),a8e(s))o8e(r,e,o,t,mAe,i,n);else{var a=i?i(l8e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),n8e(r,o,a)}},A8e)}EAe.exports=mAe});var wAe=w((Fyt,yAe)=>{var c8e=J0(),u8e=jN(),g8e=qN();function f8e(r,e){return g8e(u8e(r,e,c8e),r+"")}yAe.exports=f8e});var bAe=w((Nyt,BAe)=>{var h8e=Ih(),p8e=gm(),d8e=im(),C8e=vn();function m8e(r,e,t){if(!C8e(t))return!1;var i=typeof e;return(i=="number"?p8e(t)&&d8e(e,t.length):i=="string"&&e in t)?h8e(t[e],r):!1}BAe.exports=m8e});var SAe=w((Tyt,QAe)=>{var E8e=wAe(),I8e=bAe();function y8e(r){return E8e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&I8e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var w8e=IAe(),B8e=SAe(),b8e=B8e(function(r,e,t){w8e(r,e,t)});vAe.exports=b8e});var GAe=w((Twt,HAe)=>{var HM;HAe.exports=()=>(typeof HM>"u"&&(HM=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),HM)});var lle=w((sBt,Ale)=>{var XM=Symbol("arg flag"),Rn=class extends Error{constructor(e,t){super(e),this.name="ArgError",this.code=t,Object.setPrototypeOf(this,Rn.prototype)}};function uE(r,{argv:e=process.argv.slice(2),permissive:t=!1,stopAtPositional:i=!1}={}){if(!r)throw new Rn("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},s={},o={};for(let a of Object.keys(r)){if(!a)throw new Rn("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new Rn(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new Rn(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof r[a]=="string"){s[a]=r[a];continue}let l=r[a],c=!1;if(Array.isArray(l)&&l.length===1&&typeof l[0]=="function"){let[u]=l;l=(g,f,h=[])=>(h.push(u(g,f,h[h.length-1])),h),c=u===Boolean||u[XM]===!0}else if(typeof l=="function")c=l===Boolean||l[XM]===!0;else throw new Rn(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new Rn(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");o[a]=[l,c]}for(let a=0,l=e.length;a0){n._=n._.concat(e.slice(a));break}if(c==="--"){n._=n._.concat(e.slice(a+1));break}if(c.length>1&&c[0]==="-"){let u=c[1]==="-"||c.length===2?[c]:c.slice(1).split("").map(g=>`-${g}`);for(let g=0;g1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(y===Number||typeof BigInt<"u"&&y===BigInt))){let v=h===C?"":` (alias for ${C})`;throw new Rn(`option requires argument: ${h}${v}`,"ARG_MISSING_REQUIRED_LONGARG")}n[C]=y(e[a+1],C,n[C]),++a}else n[C]=y(p,C,n[C])}}else n._.push(c)}return n}uE.flag=r=>(r[XM]=!0,r);uE.COUNT=uE.flag((r,e,t)=>(t||0)+1);uE.ArgError=Rn;Ale.exports=uE});var Ile=w((LBt,Ele)=>{var eO;Ele.exports=()=>(typeof eO>"u"&&(eO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),eO)});var vle=w((oO,aO)=>{(function(r){oO&&typeof oO=="object"&&typeof aO<"u"?aO.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window<"u"?window.isWindows=r():typeof global<"u"?global.isWindows=r():typeof self<"u"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var kle=w((T0t,Dle)=>{"use strict";AO.ifExists=wze;var np=J("util"),Ts=J("path"),xle=vle(),Eze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,Ize={createPwshFile:!0,createCmdFile:xle(),fs:J("fs")},yze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function Ple(r){let e={...Ize,...r},t=e.fs;return e.fs_={chmod:t.chmod?np.promisify(t.chmod):async()=>{},mkdir:np.promisify(t.mkdir),readFile:np.promisify(t.readFile),stat:np.promisify(t.stat),unlink:np.promisify(t.unlink),writeFile:np.promisify(t.writeFile)},e}async function AO(r,e,t){let i=Ple(t);await i.fs_.stat(r),await bze(r,e,i)}function wze(r,e,t){return AO(r,e,t).catch(()=>{})}function Bze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function bze(r,e,t){let i=await Pze(r,t);return await Qze(e,t),Sze(r,e,i,t)}function Qze(r,e){return e.fs_.mkdir(Ts.dirname(r),{recursive:!0})}function Sze(r,e,t,i){let n=Ple(i),s=[{generator:Rze,extension:""}];return n.createCmdFile&&s.push({generator:kze,extension:".cmd"}),n.createPwshFile&&s.push({generator:Fze,extension:".ps1"}),Promise.all(s.map(o=>Dze(r,e+o.extension,t,o.generator,n)))}function vze(r,e){return Bze(r,e)}function xze(r,e){return Nze(r,e)}async function Pze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(Eze);if(!n){let s=Ts.extname(r).toLowerCase();return{program:yze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function Dze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await vze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),xze(e,n)}function kze(r,e,t){let n=Ts.relative(Ts.dirname(e),r).split("/").join("\\"),s=Ts.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=lO(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r `:"";return o?g+=`@IF EXIST ${o} (\r ${o} ${l} ${n} ${u}%*\r ) ELSE (\r @@ -242,7 +242,7 @@ attempted value: ${s} ${a} ${l} ${n} ${u}%*\r )\r `:g+=`@${a} ${l} ${n} ${u}%*\r -`,g}function Dze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=aO(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh +`,g}function Rze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=lO(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") case \`uname\` in @@ -257,7 +257,7 @@ else fi `:u+=`${g}${n} ${a} ${i} ${c}"$@" exit $? -`,u}function kze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=aO(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let f=t.progArgs?`${t.progArgs.join(" ")} `:"",h=`#!/usr/bin/env pwsh +`,u}function Fze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=lO(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let f=t.progArgs?`${t.progArgs.join(" ")} `:"",h=`#!/usr/bin/env pwsh $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent $exe="" @@ -299,32 +299,32 @@ if ($MyInvocation.ExpectingInput) { } ${t.nodePath?`$env:NODE_PATH=$env_node_path `:""}exit $LASTEXITCODE -`,h}function Rze(r,e){return e.fs_.chmod(r,493)}function aO(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ts.delimiter):Array.from(r),t={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}xle.exports=oO});var EO=w((Zbt,Vle)=>{Vle.exports=J("stream")});var $le=w((_bt,_le)=>{"use strict";function Xle(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function _ze(r){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return pQ.alloc(0);for(var i=pQ.allocUnsafe(t>>>0),n=this.head,s=0;n;)s5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return to.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=pQ.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:n5e,value:function(t,i){return IO(this,_ze({},i,{depth:0,customInspect:!1}))}}]),r}()});var wO=w(($bt,tce)=>{"use strict";function o5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(yO,this,r)):process.nextTick(yO,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(dQ,t):(t._writableState.errorEmitted=!0,process.nextTick(ece,t,s)):process.nextTick(ece,t,s):e?(process.nextTick(dQ,t),e(s)):process.nextTick(dQ,t)}),this)}function ece(r,e){yO(r,e),dQ(r)}function dQ(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function a5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function yO(r,e){r.emit("error",e)}function A5e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}tce.exports={destroy:o5e,undestroy:a5e,errorOrDestroy:A5e}});var Sl=w((eQt,nce)=>{"use strict";var ice={};function Ms(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,ice[r]=n}function rce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function l5e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function c5e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function u5e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ms("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Ms("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&l5e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(c5e(r," argument"))n=`The ${r} ${i} ${rce(e,"type")}`;else{let s=u5e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${rce(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ms("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ms("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Ms("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ms("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Ms("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ms("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ms("ERR_STREAM_WRITE_AFTER_END","write after end");Ms("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ms("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Ms("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");nce.exports.codes=ice});var BO=w((tQt,sce)=>{"use strict";var g5e=Sl().codes.ERR_INVALID_OPT_VALUE;function f5e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function h5e(r,e,t,i){var n=f5e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new g5e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}sce.exports={getHighWaterMark:h5e}});var oce=w((rQt,bO)=>{typeof Object.create=="function"?bO.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:bO.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var vl=w((iQt,SO)=>{try{if(QO=J("util"),typeof QO.inherits!="function")throw"";SO.exports=QO.inherits}catch{SO.exports=oce()}var QO});var Ace=w((nQt,ace)=>{ace.exports=J("util").deprecate});var PO=w((sQt,hce)=>{"use strict";hce.exports=Lr;function cce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){H5e(e,r)}}var ap;Lr.WritableState=dE;var p5e={deprecate:Ace()},uce=EO(),mQ=J("buffer").Buffer,d5e=global.Uint8Array||function(){};function C5e(r){return mQ.from(r)}function m5e(r){return mQ.isBuffer(r)||r instanceof d5e}var xO=wO(),E5e=BO(),I5e=E5e.getHighWaterMark,xl=Sl().codes,y5e=xl.ERR_INVALID_ARG_TYPE,w5e=xl.ERR_METHOD_NOT_IMPLEMENTED,B5e=xl.ERR_MULTIPLE_CALLBACK,b5e=xl.ERR_STREAM_CANNOT_PIPE,Q5e=xl.ERR_STREAM_DESTROYED,S5e=xl.ERR_STREAM_NULL_VALUES,v5e=xl.ERR_STREAM_WRITE_AFTER_END,x5e=xl.ERR_UNKNOWN_ENCODING,Ap=xO.errorOrDestroy;vl()(Lr,uce);function P5e(){}function dE(r,e,t){ap=ap||qu(),r=r||{},typeof t!="boolean"&&(t=e instanceof ap),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=I5e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){L5e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new cce(this)}dE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(dE.prototype,"buffer",{get:p5e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var CQ;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(CQ=Function.prototype[Symbol.hasInstance],Object.defineProperty(Lr,Symbol.hasInstance,{value:function(e){return CQ.call(this,e)?!0:this!==Lr?!1:e&&e._writableState instanceof dE}})):CQ=function(e){return e instanceof this};function Lr(r){ap=ap||qu();var e=this instanceof ap;if(!e&&!CQ.call(Lr,this))return new Lr(r);this._writableState=new dE(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),uce.call(this)}Lr.prototype.pipe=function(){Ap(this,new b5e)};function D5e(r,e){var t=new v5e;Ap(r,t),process.nextTick(e,t)}function k5e(r,e,t,i){var n;return t===null?n=new S5e:typeof t!="string"&&!e.objectMode&&(n=new y5e("chunk",["string","Buffer"],t)),n?(Ap(r,n),process.nextTick(i,n),!1):!0}Lr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&m5e(r);return s&&!mQ.isBuffer(r)&&(r=C5e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=P5e),i.ending?D5e(this,t):(s||k5e(this,i,r,t))&&(i.pendingcb++,n=F5e(this,i,s,r,e,t)),n};Lr.prototype.cork=function(){this._writableState.corked++};Lr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&gce(this,r))};Lr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new x5e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Lr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function R5e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=mQ.from(e,t)),e}Object.defineProperty(Lr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function F5e(r,e,t,i,n,s){if(!t){var o=R5e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var G5e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};dce.exports=Aa;var pce=RO(),kO=PO();vl()(Aa,pce);for(DO=G5e(kO.prototype),EQ=0;EQ{var yQ=J("buffer"),hA=yQ.Buffer;function Cce(r,e){for(var t in r)e[t]=r[t]}hA.from&&hA.alloc&&hA.allocUnsafe&&hA.allocUnsafeSlow?mce.exports=yQ:(Cce(yQ,FO),FO.Buffer=lp);function lp(r,e,t){return hA(r,e,t)}Cce(hA,lp);lp.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return hA(r,e,t)};lp.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=hA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};lp.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return hA(r)};lp.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return yQ.SlowBuffer(r)}});var LO=w(yce=>{"use strict";var TO=Ece().Buffer,Ice=TO.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function q5e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function J5e(r){var e=q5e(r);if(typeof e!="string"&&(TO.isEncoding===Ice||!Ice(r)))throw new Error("Unknown encoding: "+r);return e||r}yce.StringDecoder=CE;function CE(r){this.encoding=J5e(r);var e;switch(this.encoding){case"utf16le":this.text=_5e,this.end=$5e,e=4;break;case"utf8":this.fillLast=V5e,e=4;break;case"base64":this.text=e6e,this.end=t6e,e=3;break;default:this.write=r6e,this.end=i6e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=TO.allocUnsafe(e)}CE.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function W5e(r,e,t){var i=e.length-1;if(i=0?(n>0&&(r.lastNeed=n-1),n):--i=0?(n>0&&(r.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function z5e(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function V5e(r){var e=this.lastTotal-this.lastNeed,t=z5e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function X5e(r,e){var t=W5e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function Z5e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function _5e(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function $5e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function e6e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function t6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function r6e(r){return r.toString(this.encoding)}function i6e(r){return r&&r.length?this.write(r):""}});var wQ=w((AQt,bce)=>{"use strict";var wce=Sl().codes.ERR_STREAM_PREMATURE_CLOSE;function n6e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n{"use strict";var BQ;function Pl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var a6e=wQ(),Dl=Symbol("lastResolve"),Ju=Symbol("lastReject"),mE=Symbol("error"),bQ=Symbol("ended"),Wu=Symbol("lastPromise"),MO=Symbol("handlePromise"),zu=Symbol("stream");function kl(r,e){return{value:r,done:e}}function A6e(r){var e=r[Dl];if(e!==null){var t=r[zu].read();t!==null&&(r[Wu]=null,r[Dl]=null,r[Ju]=null,e(kl(t,!1)))}}function l6e(r){process.nextTick(A6e,r)}function c6e(r,e){return function(t,i){r.then(function(){if(e[bQ]){t(kl(void 0,!0));return}e[MO](t,i)},i)}}var u6e=Object.getPrototypeOf(function(){}),g6e=Object.setPrototypeOf((BQ={get stream(){return this[zu]},next:function(){var e=this,t=this[mE];if(t!==null)return Promise.reject(t);if(this[bQ])return Promise.resolve(kl(void 0,!0));if(this[zu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[mE]?a(e[mE]):o(kl(void 0,!0))})});var i=this[Wu],n;if(i)n=new Promise(c6e(i,this));else{var s=this[zu].read();if(s!==null)return Promise.resolve(kl(s,!1));n=new Promise(this[MO])}return this[Wu]=n,n}},Pl(BQ,Symbol.asyncIterator,function(){return this}),Pl(BQ,"return",function(){var e=this;return new Promise(function(t,i){e[zu].destroy(null,function(n){if(n){i(n);return}t(kl(void 0,!0))})})}),BQ),u6e),f6e=function(e){var t,i=Object.create(g6e,(t={},Pl(t,zu,{value:e,writable:!0}),Pl(t,Dl,{value:null,writable:!0}),Pl(t,Ju,{value:null,writable:!0}),Pl(t,mE,{value:null,writable:!0}),Pl(t,bQ,{value:e._readableState.endEmitted,writable:!0}),Pl(t,MO,{value:function(s,o){var a=i[zu].read();a?(i[Wu]=null,i[Dl]=null,i[Ju]=null,s(kl(a,!1))):(i[Dl]=s,i[Ju]=o)},writable:!0}),t));return i[Wu]=null,a6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[Ju];s!==null&&(i[Wu]=null,i[Dl]=null,i[Ju]=null,s(n)),i[mE]=n;return}var o=i[Dl];o!==null&&(i[Wu]=null,i[Dl]=null,i[Ju]=null,o(kl(void 0,!0))),i[bQ]=!0}),e.on("readable",l6e.bind(null,i)),i};Qce.exports=f6e});var Dce=w((cQt,Pce)=>{"use strict";function vce(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function h6e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){vce(s,i,n,o,a,"next",l)}function a(l){vce(s,i,n,o,a,"throw",l)}o(void 0)})}}function xce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function p6e(r){for(var e=1;e{"use strict";Uce.exports=Ut;var cp;Ut.ReadableState=Nce;var uQt=J("events").EventEmitter,Fce=function(e,t){return e.listeners(t).length},IE=EO(),QQ=J("buffer").Buffer,E6e=global.Uint8Array||function(){};function I6e(r){return QQ.from(r)}function y6e(r){return QQ.isBuffer(r)||r instanceof E6e}var OO=J("util"),Dt;OO&&OO.debuglog?Dt=OO.debuglog("stream"):Dt=function(){};var w6e=$le(),qO=wO(),B6e=BO(),b6e=B6e.getHighWaterMark,SQ=Sl().codes,Q6e=SQ.ERR_INVALID_ARG_TYPE,S6e=SQ.ERR_STREAM_PUSH_AFTER_EOF,v6e=SQ.ERR_METHOD_NOT_IMPLEMENTED,x6e=SQ.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,up,KO,UO;vl()(Ut,IE);var EE=qO.errorOrDestroy,HO=["error","close","destroy","pause","resume"];function P6e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Nce(r,e,t){cp=cp||qu(),r=r||{},typeof t!="boolean"&&(t=e instanceof cp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=b6e(this,r,"readableHighWaterMark",t),this.buffer=new w6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(up||(up=LO().StringDecoder),this.decoder=new up(r.encoding),this.encoding=r.encoding)}function Ut(r){if(cp=cp||qu(),!(this instanceof Ut))return new Ut(r);var e=this instanceof cp;this._readableState=new Nce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),IE.call(this)}Object.defineProperty(Ut.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ut.prototype.destroy=qO.destroy;Ut.prototype._undestroy=qO.undestroy;Ut.prototype._destroy=function(r,e){e(r)};Ut.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=QQ.from(r,e),e=""),i=!0),Tce(this,r,e,!1,i)};Ut.prototype.unshift=function(r){return Tce(this,r,null,!0,!1)};function Tce(r,e,t,i,n){Dt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,R6e(r,s);else{var o;if(n||(o=D6e(s,e)),o)EE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==QQ.prototype&&(e=I6e(e)),i)s.endEmitted?EE(r,new x6e):GO(r,s,e,!0);else if(s.ended)EE(r,new S6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?GO(r,s,e,!1):jO(r,s)):GO(r,s,e,!1)}else i||(s.reading=!1,jO(r,s))}return!s.ended&&(s.length=kce?r=kce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function Rce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=k6e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ut.prototype.read=function(r){Dt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Dt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?YO(this):vQ(this),null;if(r=Rce(r,e),r===0&&e.ended)return e.length===0&&YO(this),null;var i=e.needReadable;Dt("need readable",i),(e.length===0||e.length-r0?n=Oce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&YO(this)),n!==null&&this.emit("data",n),n};function R6e(r,e){if(Dt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?vQ(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Lce(r)))}}function vQ(r){var e=r._readableState;Dt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Dt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Lce,r))}function Lce(r){var e=r._readableState;Dt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,JO(r)}function jO(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(F6e,r,e))}function F6e(r,e){for(;!e.reading&&!e.ended&&(e.length1&&Kce(i.pipes,r)!==-1)&&!c&&(Dt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function f(y){Dt("onerror",y),C(),r.removeListener("error",f),Fce(r,"error")===0&&EE(r,y)}P6e(r,"error",f);function h(){r.removeListener("finish",p),C()}r.once("close",h);function p(){Dt("onfinish"),r.removeListener("close",h),C()}r.once("finish",p);function C(){Dt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(Dt("pipe resume"),t.resume()),r};function N6e(r){return function(){var t=r._readableState;Dt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Fce(r,"data")&&(t.flowing=!0,JO(r))}}Ut.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Dt("on readable",i.length,i.reading),i.length?vQ(this):i.reading||process.nextTick(T6e,this)),t};Ut.prototype.addListener=Ut.prototype.on;Ut.prototype.removeListener=function(r,e){var t=IE.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(Mce,this),t};Ut.prototype.removeAllListeners=function(r){var e=IE.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(Mce,this),e};function Mce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function T6e(r){Dt("readable nexttick read 0"),r.read(0)}Ut.prototype.resume=function(){var r=this._readableState;return r.flowing||(Dt("resume"),r.flowing=!r.readableListening,L6e(this,r)),r.paused=!1,this};function L6e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(M6e,r,e))}function M6e(r,e){Dt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),JO(r),e.flowing&&!e.reading&&r.read(0)}Ut.prototype.pause=function(){return Dt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Dt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function JO(r){var e=r._readableState;for(Dt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ut.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(Dt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(Dt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function YO(r){var e=r._readableState;Dt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(O6e,e,r))}function O6e(r,e){if(Dt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ut.from=function(r,e){return UO===void 0&&(UO=Dce()),UO(Ut,r,e)});function Kce(r,e){for(var t=0,i=r.length;t{"use strict";Gce.exports=pA;var xQ=Sl().codes,K6e=xQ.ERR_METHOD_NOT_IMPLEMENTED,U6e=xQ.ERR_MULTIPLE_CALLBACK,H6e=xQ.ERR_TRANSFORM_ALREADY_TRANSFORMING,G6e=xQ.ERR_TRANSFORM_WITH_LENGTH_0,PQ=qu();vl()(pA,PQ);function Y6e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new U6e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";jce.exports=yE;var Yce=WO();vl()(yE,Yce);function yE(r){if(!(this instanceof yE))return new yE(r);Yce.call(this,r)}yE.prototype._transform=function(r,e,t){t(null,r)}});var Xce=w((pQt,Vce)=>{"use strict";var zO;function q6e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var zce=Sl().codes,J6e=zce.ERR_MISSING_ARGS,W6e=zce.ERR_STREAM_DESTROYED;function Jce(r){if(r)throw r}function z6e(r){return r.setHeader&&typeof r.abort=="function"}function V6e(r,e,t,i){i=q6e(i);var n=!1;r.on("close",function(){n=!0}),zO===void 0&&(zO=wQ()),zO(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,z6e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new W6e("pipe"))}}}function Wce(r){r()}function X6e(r,e){return r.pipe(e)}function Z6e(r){return!r.length||typeof r[r.length-1]!="function"?Jce:r.pop()}function _6e(){for(var r=arguments.length,e=new Array(r),t=0;t0;return V6e(o,l,c,function(u){n||(n=u),u&&s.forEach(Wce),!l&&(s.forEach(Wce),i(n))})});return e.reduce(X6e)}Vce.exports=_6e});var gp=w((Os,BE)=>{var wE=J("stream");process.env.READABLE_STREAM==="disable"&&wE?(BE.exports=wE.Readable,Object.assign(BE.exports,wE),BE.exports.Stream=wE):(Os=BE.exports=RO(),Os.Stream=wE||Os,Os.Readable=Os,Os.Writable=PO(),Os.Duplex=qu(),Os.Transform=WO(),Os.PassThrough=qce(),Os.finished=wQ(),Os.pipeline=Xce())});var $ce=w((dQt,_ce)=>{"use strict";var{Buffer:Eo}=J("buffer"),Zce=Symbol.for("BufferList");function fr(r){if(!(this instanceof fr))return new fr(r);fr._init.call(this,r)}fr._init=function(e){Object.defineProperty(this,Zce,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};fr.prototype._new=function(e){return new fr(e)};fr.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;ithis.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};fr.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};fr.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Eo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Eo.concat(this._bufs,this.length);for(let g=0;gf)this._bufs[g].copy(e,c,u),c+=f;else{this._bufs[g].copy(e,c,u,u+l),c+=f;break}l-=f,u&&(u=0)}return e.length>c?e.slice(0,c):e};fr.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};fr.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};fr.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};fr.prototype.duplicate=function(){let e=this._new();for(let t=0;tthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};fr.prototype._match=function(r,e){if(this.length-r{"use strict";var VO=gp().Duplex,$6e=vl(),bE=$ce();function Wi(r){if(!(this instanceof Wi))return new Wi(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}bE._init.call(this,r),VO.call(this)}$6e(Wi,VO);Object.assign(Wi.prototype,bE.prototype);Wi.prototype._new=function(e){return new Wi(e)};Wi.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Wi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Wi.prototype.end=function(e){VO.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Wi.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Wi.prototype._isBufferList=function(e){return e instanceof Wi||e instanceof bE||Wi.isBufferList(e)};Wi.isBufferList=bE.isBufferList;DQ.exports=Wi;DQ.exports.BufferListStream=Wi;DQ.exports.BufferList=bE});var _O=w(hp=>{var eVe=Buffer.alloc,tVe="0000000000000000000",rVe="7777777777777777777",tue="0".charCodeAt(0),rue=Buffer.from("ustar\0","binary"),iVe=Buffer.from("00","binary"),nVe=Buffer.from("ustar ","binary"),sVe=Buffer.from(" \0","binary"),oVe=parseInt("7777",8),QE=257,ZO=263,aVe=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},AVe=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},lVe=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},iue=function(r,e,t,i){for(;te?rVe.slice(0,e)+" ":tVe.slice(0,e-r.length)+r+" "};function cVe(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i=Math.pow(10,t)&&t++,e+t+r};hp.decodeLongPath=function(r,e){return fp(r,0,r.length,e)};hp.encodePax=function(r){var e="";r.name&&(e+=XO(" path="+r.name+` -`)),r.linkname&&(e+=XO(" linkpath="+r.linkname+` -`));var t=r.pax;if(t)for(var i in t)e+=XO(" "+i+"="+t[i]+` -`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Rl(r.mode&oVe,6),100),e.write(Rl(r.uid,6),108),e.write(Rl(r.gid,6),116),e.write(Rl(r.size,11),124),e.write(Rl(r.mtime.getTime()/1e3|0,11),136),e[156]=tue+lVe(r.type),r.linkname&&e.write(r.linkname,157),rue.copy(e,QE),iVe.copy(e,ZO),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Rl(r.devmajor||0,6),329),e.write(Rl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Rl(nue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-tue,n=fp(r,0,100,e),s=Fl(r,100,8),o=Fl(r,108,8),a=Fl(r,116,8),l=Fl(r,124,12),c=Fl(r,136,12),u=AVe(i),g=r[157]===0?null:fp(r,157,100,e),f=fp(r,265,32),h=fp(r,297,32),p=Fl(r,329,8),C=Fl(r,337,8),y=nue(r);if(y===8*32)return null;if(y!==Fl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(rue.compare(r,QE,QE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(nVe.compare(r,QE,QE+6)===0&&sVe.compare(r,ZO,ZO+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:f,gname:h,devmajor:p,devminor:C}}});var uue=w((EQt,cue)=>{var oue=J("util"),uVe=eue(),SE=_O(),aue=gp().Writable,Aue=gp().PassThrough,lue=function(){},sue=function(r){return r&=511,r&&512-r},gVe=function(r,e){var t=new kQ(r,e);return t.end(),t},fVe=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},kQ=function(r,e){this._parent=r,this.offset=e,Aue.call(this,{autoDestroy:!1})};oue.inherits(kQ,Aue);kQ.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);aue.call(this,r),r=r||{},this._offset=0,this._buffer=uVe(),this._missing=0,this._partial=!1,this._onparse=lue,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(f){if(e._locked=!1,f)return e.destroy(f);e._stream||i()},s=function(){e._stream=null;var f=sue(e._header.size);f?e._parse(f,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(sue(e._header.size)),e._parse(512,g),i()},a=function(){var f=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,f)),t.consume(f),s()},l=function(){var f=e._header.size;e._pax=SE.decodePax(t.slice(0,f)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(f),s()},c=function(){var f=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},u=function(){var f=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},g=function(){var f=e._offset,h;try{h=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(p){e.emit("error",p)}if(t.consume(512),!h){e._parse(512,g),i();return}if(h.type==="gnu-long-path"){e._parse(h.size,c),i();return}if(h.type==="gnu-long-link-path"){e._parse(h.size,u),i();return}if(h.type==="pax-global-header"){e._parse(h.size,a),i();return}if(h.type==="pax-header"){e._parse(h.size,l),i();return}if(e._gnuLongPath&&(h.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(h.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=h=fVe(h,e._pax),e._pax=null),e._locked=!0,!h.size||h.type==="directory"){e._parse(512,g),e.emit("entry",h,gVe(e,f),n);return}e._stream=new kQ(e,f),e.emit("entry",h,e._stream,n),e._parse(h.size,s),i()};this._onheader=g,this._parse(512,g)};oue.inherits(dA,aue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=lue,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.lengths&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};dA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};cue.exports=dA});var fue=w((IQt,gue)=>{gue.exports=J("fs").constants||J("constants")});var mue=w((yQt,Cue)=>{var pp=fue(),hue=Pk(),FQ=vl(),hVe=Buffer.alloc,pue=gp().Readable,dp=gp().Writable,pVe=J("string_decoder").StringDecoder,RQ=_O(),dVe=parseInt("755",8),CVe=parseInt("644",8),due=hVe(1024),e1=function(){},$O=function(r,e){e&=511,e&&r.push(due.slice(0,512-e))};function mVe(r){switch(r&pp.S_IFMT){case pp.S_IFBLK:return"block-device";case pp.S_IFCHR:return"character-device";case pp.S_IFDIR:return"directory";case pp.S_IFIFO:return"fifo";case pp.S_IFLNK:return"symlink"}return"file"}var NQ=function(r){dp.call(this),this.written=0,this._to=r,this._destroyed=!1};FQ(NQ,dp);NQ.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};NQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var TQ=function(){dp.call(this),this.linkname="",this._decoder=new pVe("utf-8"),this._destroyed=!1};FQ(TQ,dp);TQ.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};TQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var vE=function(){dp.call(this),this._destroyed=!1};FQ(vE,dp);vE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};vE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var la=function(r){if(!(this instanceof la))return new la(r);pue.call(this,r),this._drain=e1,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};FQ(la,pue);la.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=e1);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=mVe(r.mode)),r.mode||(r.mode=r.type==="directory"?dVe:CVe),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return $O(i,r.size),n?process.nextTick(t):this._drain=t,new vE}if(r.type==="symlink"&&!r.linkname){var s=new TQ;return hue(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new vE;var o=new NQ(this);return this._stream=o,hue(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));$O(i,r.size),i._finalizing&&i.finalize(),t()}),o}};la.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(due),this.push(null))};la.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};la.prototype._encode=function(r){if(!r.pax){var e=RQ.encode(r);if(e){this.push(e);return}}this._encodePax(r)};la.prototype._encodePax=function(r){var e=RQ.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(RQ.encode(t)),this.push(e),$O(this,e.length),t.size=r.size,t.type=r.type,this.push(RQ.encode(t))};la.prototype._read=function(r){var e=this._drain;this._drain=e1,e()};Cue.exports=la});var Eue=w(t1=>{t1.extract=uue();t1.pack=mue()});var kue=w((YQt,Due)=>{"use strict";var Xu=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=xue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return a1(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):FVe(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new Xu(this.__specs,this.__opts,xue(this.__providers).concat(e)),Pue)}};try{let r=J("util");Xu.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch{}function kVe(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function a1(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))kVe(e);else{i||(i={});let n;for(let s of r.__providers){if(n=vue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=vue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function vue(r,e){let t;return e.__isFiggyPudding?t=a1(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var Pue={has(r,e){return e in r.__specs&&a1(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in Xu.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Due.exports=RVe;function RVe(r,e){function t(...i){return new Proxy(new Xu(r,e,i),Pue)}return t}function xue(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function FVe(r){return Object.keys(r).map(e=>[e,r[e]])}});var Nue=w((jQt,ga)=>{"use strict";var PE=J("crypto"),NVe=kue(),TVe=J("stream").Transform,Rue=["sha256","sha384","sha512"],LVe=/^[a-z0-9+/]+(?:=?=?)$/i,MVe=/^([^-]+)-([^?]+)([?\S*]*)$/,OVe=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,KVe=/^[\x21-\x7E]+$/,An=NVe({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>WVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Nl=class{get isHash(){return!0}constructor(e,t){t=An(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?OVe:MVe);if(!n||i&&!Rue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=An(e),e.strict&&!(Rue.some(i=>i===this.algorithm)&&this.digest.match(LVe)&&(this.options||[]).every(i=>i.match(KVe))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},Zu=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=An(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Nl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=An(t);let i=typeof e=="string"?e:xE(e,t);return ua(`${this.toString(t)} ${i}`,t)}hexDigest(){return ua(this,{single:!0}).hexDigest()}match(e,t){t=An(t);let i=ua(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=An(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ga.exports.parse=ua;function ua(r,e){if(e=An(e),typeof r=="string")return A1(r,e);if(r.algorithm&&r.digest){let t=new Zu;return t[r.algorithm]=[r],A1(xE(t,e),e)}else return A1(xE(r,e),e)}function A1(r,e){return e.single?new Nl(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Nl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new Zu)}ga.exports.stringify=xE;function xE(r,e){return e=An(e),r.algorithm&&r.digest?Nl.prototype.toString.call(r,e):typeof r=="string"?xE(ua(r,e),e):Zu.prototype.toString.call(r,e)}ga.exports.fromHex=UVe;function UVe(r,e,t){t=An(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return ua(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ga.exports.fromData=HVe;function HVe(r,e){e=An(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=PE.createHash(s).update(r).digest("base64"),a=new Nl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new Zu)}ga.exports.fromStream=GVe;function GVe(r,e){e=An(e);let t=e.Promise||Promise,i=l1(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ga.exports.checkData=YVe;function YVe(r,e,t){if(t=An(t),e=ua(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=PE.createHash(i).update(r).digest("base64"),s=ua({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. +`,h}function Nze(r,e){return e.fs_.chmod(r,493)}function lO(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ts.delimiter):Array.from(r),t={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}Dle.exports=AO});var yO=w(($bt,Zle)=>{Zle.exports=J("stream")});var tce=w((eQt,ece)=>{"use strict";function _le(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function e5e(r){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return pQ.alloc(0);for(var i=pQ.allocUnsafe(t>>>0),n=this.head,s=0;n;)a5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return to.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=pQ.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:o5e,value:function(t,i){return wO(this,e5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var bO=w((tQt,ice)=>{"use strict";function A5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BO,this,r)):process.nextTick(BO,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(dQ,t):(t._writableState.errorEmitted=!0,process.nextTick(rce,t,s)):process.nextTick(rce,t,s):e?(process.nextTick(dQ,t),e(s)):process.nextTick(dQ,t)}),this)}function rce(r,e){BO(r,e),dQ(r)}function dQ(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function l5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BO(r,e){r.emit("error",e)}function c5e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}ice.exports={destroy:A5e,undestroy:l5e,errorOrDestroy:c5e}});var Sl=w((rQt,oce)=>{"use strict";var sce={};function Ms(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,sce[r]=n}function nce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function u5e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function g5e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function f5e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ms("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Ms("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&u5e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(g5e(r," argument"))n=`The ${r} ${i} ${nce(e,"type")}`;else{let s=f5e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${nce(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ms("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ms("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Ms("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ms("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Ms("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ms("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ms("ERR_STREAM_WRITE_AFTER_END","write after end");Ms("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ms("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Ms("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");oce.exports.codes=sce});var QO=w((iQt,ace)=>{"use strict";var h5e=Sl().codes.ERR_INVALID_OPT_VALUE;function p5e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function d5e(r,e,t,i){var n=p5e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new h5e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}ace.exports={getHighWaterMark:d5e}});var Ace=w((nQt,SO)=>{typeof Object.create=="function"?SO.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:SO.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var vl=w((sQt,xO)=>{try{if(vO=J("util"),typeof vO.inherits!="function")throw"";xO.exports=vO.inherits}catch{xO.exports=Ace()}var vO});var cce=w((oQt,lce)=>{lce.exports=J("util").deprecate});var kO=w((aQt,dce)=>{"use strict";dce.exports=Lr;function gce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){Y5e(e,r)}}var ap;Lr.WritableState=dE;var C5e={deprecate:cce()},fce=yO(),mQ=J("buffer").Buffer,m5e=global.Uint8Array||function(){};function E5e(r){return mQ.from(r)}function I5e(r){return mQ.isBuffer(r)||r instanceof m5e}var DO=bO(),y5e=QO(),w5e=y5e.getHighWaterMark,xl=Sl().codes,B5e=xl.ERR_INVALID_ARG_TYPE,b5e=xl.ERR_METHOD_NOT_IMPLEMENTED,Q5e=xl.ERR_MULTIPLE_CALLBACK,S5e=xl.ERR_STREAM_CANNOT_PIPE,v5e=xl.ERR_STREAM_DESTROYED,x5e=xl.ERR_STREAM_NULL_VALUES,P5e=xl.ERR_STREAM_WRITE_AFTER_END,D5e=xl.ERR_UNKNOWN_ENCODING,Ap=DO.errorOrDestroy;vl()(Lr,fce);function k5e(){}function dE(r,e,t){ap=ap||qu(),r=r||{},typeof t!="boolean"&&(t=e instanceof ap),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=w5e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){O5e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new gce(this)}dE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(dE.prototype,"buffer",{get:C5e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var CQ;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(CQ=Function.prototype[Symbol.hasInstance],Object.defineProperty(Lr,Symbol.hasInstance,{value:function(e){return CQ.call(this,e)?!0:this!==Lr?!1:e&&e._writableState instanceof dE}})):CQ=function(e){return e instanceof this};function Lr(r){ap=ap||qu();var e=this instanceof ap;if(!e&&!CQ.call(Lr,this))return new Lr(r);this._writableState=new dE(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),fce.call(this)}Lr.prototype.pipe=function(){Ap(this,new S5e)};function R5e(r,e){var t=new P5e;Ap(r,t),process.nextTick(e,t)}function F5e(r,e,t,i){var n;return t===null?n=new x5e:typeof t!="string"&&!e.objectMode&&(n=new B5e("chunk",["string","Buffer"],t)),n?(Ap(r,n),process.nextTick(i,n),!1):!0}Lr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&I5e(r);return s&&!mQ.isBuffer(r)&&(r=E5e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=k5e),i.ending?R5e(this,t):(s||F5e(this,i,r,t))&&(i.pendingcb++,n=T5e(this,i,s,r,e,t)),n};Lr.prototype.cork=function(){this._writableState.corked++};Lr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&hce(this,r))};Lr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new D5e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Lr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function N5e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=mQ.from(e,t)),e}Object.defineProperty(Lr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function T5e(r,e,t,i,n,s){if(!t){var o=N5e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var j5e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};mce.exports=Aa;var Cce=NO(),FO=kO();vl()(Aa,Cce);for(RO=j5e(FO.prototype),EQ=0;EQ{var yQ=J("buffer"),fA=yQ.Buffer;function Ece(r,e){for(var t in r)e[t]=r[t]}fA.from&&fA.alloc&&fA.allocUnsafe&&fA.allocUnsafeSlow?Ice.exports=yQ:(Ece(yQ,TO),TO.Buffer=lp);function lp(r,e,t){return fA(r,e,t)}Ece(fA,lp);lp.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return fA(r,e,t)};lp.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=fA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};lp.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return fA(r)};lp.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return yQ.SlowBuffer(r)}});var OO=w(Bce=>{"use strict";var MO=yce().Buffer,wce=MO.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function W5e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function z5e(r){var e=W5e(r);if(typeof e!="string"&&(MO.isEncoding===wce||!wce(r)))throw new Error("Unknown encoding: "+r);return e||r}Bce.StringDecoder=CE;function CE(r){this.encoding=z5e(r);var e;switch(this.encoding){case"utf16le":this.text=e6e,this.end=t6e,e=4;break;case"utf8":this.fillLast=Z5e,e=4;break;case"base64":this.text=r6e,this.end=i6e,e=3;break;default:this.write=n6e,this.end=s6e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=MO.allocUnsafe(e)}CE.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function V5e(r,e,t){var i=e.length-1;if(i=0?(n>0&&(r.lastNeed=n-1),n):--i=0?(n>0&&(r.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function X5e(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function Z5e(r){var e=this.lastTotal-this.lastNeed,t=X5e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function _5e(r,e){var t=V5e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function $5e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function e6e(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function t6e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function r6e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function i6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function n6e(r){return r.toString(this.encoding)}function s6e(r){return r&&r.length?this.write(r):""}});var wQ=w((cQt,Sce)=>{"use strict";var bce=Sl().codes.ERR_STREAM_PREMATURE_CLOSE;function o6e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n{"use strict";var BQ;function Pl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var l6e=wQ(),Dl=Symbol("lastResolve"),Ju=Symbol("lastReject"),mE=Symbol("error"),bQ=Symbol("ended"),Wu=Symbol("lastPromise"),KO=Symbol("handlePromise"),zu=Symbol("stream");function kl(r,e){return{value:r,done:e}}function c6e(r){var e=r[Dl];if(e!==null){var t=r[zu].read();t!==null&&(r[Wu]=null,r[Dl]=null,r[Ju]=null,e(kl(t,!1)))}}function u6e(r){process.nextTick(c6e,r)}function g6e(r,e){return function(t,i){r.then(function(){if(e[bQ]){t(kl(void 0,!0));return}e[KO](t,i)},i)}}var f6e=Object.getPrototypeOf(function(){}),h6e=Object.setPrototypeOf((BQ={get stream(){return this[zu]},next:function(){var e=this,t=this[mE];if(t!==null)return Promise.reject(t);if(this[bQ])return Promise.resolve(kl(void 0,!0));if(this[zu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[mE]?a(e[mE]):o(kl(void 0,!0))})});var i=this[Wu],n;if(i)n=new Promise(g6e(i,this));else{var s=this[zu].read();if(s!==null)return Promise.resolve(kl(s,!1));n=new Promise(this[KO])}return this[Wu]=n,n}},Pl(BQ,Symbol.asyncIterator,function(){return this}),Pl(BQ,"return",function(){var e=this;return new Promise(function(t,i){e[zu].destroy(null,function(n){if(n){i(n);return}t(kl(void 0,!0))})})}),BQ),f6e),p6e=function(e){var t,i=Object.create(h6e,(t={},Pl(t,zu,{value:e,writable:!0}),Pl(t,Dl,{value:null,writable:!0}),Pl(t,Ju,{value:null,writable:!0}),Pl(t,mE,{value:null,writable:!0}),Pl(t,bQ,{value:e._readableState.endEmitted,writable:!0}),Pl(t,KO,{value:function(s,o){var a=i[zu].read();a?(i[Wu]=null,i[Dl]=null,i[Ju]=null,s(kl(a,!1))):(i[Dl]=s,i[Ju]=o)},writable:!0}),t));return i[Wu]=null,l6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[Ju];s!==null&&(i[Wu]=null,i[Dl]=null,i[Ju]=null,s(n)),i[mE]=n;return}var o=i[Dl];o!==null&&(i[Wu]=null,i[Dl]=null,i[Ju]=null,o(kl(void 0,!0))),i[bQ]=!0}),e.on("readable",u6e.bind(null,i)),i};vce.exports=p6e});var Rce=w((gQt,kce)=>{"use strict";function Pce(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function d6e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Pce(s,i,n,o,a,"next",l)}function a(l){Pce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Dce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function C6e(r){for(var e=1;e{"use strict";Gce.exports=Ut;var cp;Ut.ReadableState=Lce;var fQt=J("events").EventEmitter,Tce=function(e,t){return e.listeners(t).length},IE=yO(),QQ=J("buffer").Buffer,y6e=global.Uint8Array||function(){};function w6e(r){return QQ.from(r)}function B6e(r){return QQ.isBuffer(r)||r instanceof y6e}var UO=J("util"),Dt;UO&&UO.debuglog?Dt=UO.debuglog("stream"):Dt=function(){};var b6e=tce(),WO=bO(),Q6e=QO(),S6e=Q6e.getHighWaterMark,SQ=Sl().codes,v6e=SQ.ERR_INVALID_ARG_TYPE,x6e=SQ.ERR_STREAM_PUSH_AFTER_EOF,P6e=SQ.ERR_METHOD_NOT_IMPLEMENTED,D6e=SQ.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,up,HO,GO;vl()(Ut,IE);var EE=WO.errorOrDestroy,YO=["error","close","destroy","pause","resume"];function k6e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Lce(r,e,t){cp=cp||qu(),r=r||{},typeof t!="boolean"&&(t=e instanceof cp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=S6e(this,r,"readableHighWaterMark",t),this.buffer=new b6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(up||(up=OO().StringDecoder),this.decoder=new up(r.encoding),this.encoding=r.encoding)}function Ut(r){if(cp=cp||qu(),!(this instanceof Ut))return new Ut(r);var e=this instanceof cp;this._readableState=new Lce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),IE.call(this)}Object.defineProperty(Ut.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ut.prototype.destroy=WO.destroy;Ut.prototype._undestroy=WO.undestroy;Ut.prototype._destroy=function(r,e){e(r)};Ut.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=QQ.from(r,e),e=""),i=!0),Mce(this,r,e,!1,i)};Ut.prototype.unshift=function(r){return Mce(this,r,null,!0,!1)};function Mce(r,e,t,i,n){Dt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,N6e(r,s);else{var o;if(n||(o=R6e(s,e)),o)EE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==QQ.prototype&&(e=w6e(e)),i)s.endEmitted?EE(r,new D6e):jO(r,s,e,!0);else if(s.ended)EE(r,new x6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?jO(r,s,e,!1):JO(r,s)):jO(r,s,e,!1)}else i||(s.reading=!1,JO(r,s))}return!s.ended&&(s.length=Fce?r=Fce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function Nce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=F6e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ut.prototype.read=function(r){Dt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Dt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?qO(this):vQ(this),null;if(r=Nce(r,e),r===0&&e.ended)return e.length===0&&qO(this),null;var i=e.needReadable;Dt("need readable",i),(e.length===0||e.length-r0?n=Uce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&qO(this)),n!==null&&this.emit("data",n),n};function N6e(r,e){if(Dt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?vQ(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Oce(r)))}}function vQ(r){var e=r._readableState;Dt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Dt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Oce,r))}function Oce(r){var e=r._readableState;Dt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zO(r)}function JO(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(T6e,r,e))}function T6e(r,e){for(;!e.reading&&!e.ended&&(e.length1&&Hce(i.pipes,r)!==-1)&&!c&&(Dt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function f(y){Dt("onerror",y),C(),r.removeListener("error",f),Tce(r,"error")===0&&EE(r,y)}k6e(r,"error",f);function h(){r.removeListener("finish",p),C()}r.once("close",h);function p(){Dt("onfinish"),r.removeListener("close",h),C()}r.once("finish",p);function C(){Dt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(Dt("pipe resume"),t.resume()),r};function L6e(r){return function(){var t=r._readableState;Dt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Tce(r,"data")&&(t.flowing=!0,zO(r))}}Ut.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Dt("on readable",i.length,i.reading),i.length?vQ(this):i.reading||process.nextTick(M6e,this)),t};Ut.prototype.addListener=Ut.prototype.on;Ut.prototype.removeListener=function(r,e){var t=IE.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(Kce,this),t};Ut.prototype.removeAllListeners=function(r){var e=IE.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(Kce,this),e};function Kce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function M6e(r){Dt("readable nexttick read 0"),r.read(0)}Ut.prototype.resume=function(){var r=this._readableState;return r.flowing||(Dt("resume"),r.flowing=!r.readableListening,O6e(this,r)),r.paused=!1,this};function O6e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(K6e,r,e))}function K6e(r,e){Dt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),zO(r),e.flowing&&!e.reading&&r.read(0)}Ut.prototype.pause=function(){return Dt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Dt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zO(r){var e=r._readableState;for(Dt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ut.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(Dt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(Dt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function qO(r){var e=r._readableState;Dt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(U6e,e,r))}function U6e(r,e){if(Dt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ut.from=function(r,e){return GO===void 0&&(GO=Rce()),GO(Ut,r,e)});function Hce(r,e){for(var t=0,i=r.length;t{"use strict";jce.exports=hA;var xQ=Sl().codes,H6e=xQ.ERR_METHOD_NOT_IMPLEMENTED,G6e=xQ.ERR_MULTIPLE_CALLBACK,Y6e=xQ.ERR_TRANSFORM_ALREADY_TRANSFORMING,j6e=xQ.ERR_TRANSFORM_WITH_LENGTH_0,PQ=qu();vl()(hA,PQ);function q6e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new G6e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";Jce.exports=yE;var qce=VO();vl()(yE,qce);function yE(r){if(!(this instanceof yE))return new yE(r);qce.call(this,r)}yE.prototype._transform=function(r,e,t){t(null,r)}});var _ce=w((CQt,Zce)=>{"use strict";var XO;function W6e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var Xce=Sl().codes,z6e=Xce.ERR_MISSING_ARGS,V6e=Xce.ERR_STREAM_DESTROYED;function zce(r){if(r)throw r}function X6e(r){return r.setHeader&&typeof r.abort=="function"}function Z6e(r,e,t,i){i=W6e(i);var n=!1;r.on("close",function(){n=!0}),XO===void 0&&(XO=wQ()),XO(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,X6e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new V6e("pipe"))}}}function Vce(r){r()}function _6e(r,e){return r.pipe(e)}function $6e(r){return!r.length||typeof r[r.length-1]!="function"?zce:r.pop()}function eVe(){for(var r=arguments.length,e=new Array(r),t=0;t0;return Z6e(o,l,c,function(u){n||(n=u),u&&s.forEach(Vce),!l&&(s.forEach(Vce),i(n))})});return e.reduce(_6e)}Zce.exports=eVe});var gp=w((Os,BE)=>{var wE=J("stream");process.env.READABLE_STREAM==="disable"&&wE?(BE.exports=wE.Readable,Object.assign(BE.exports,wE),BE.exports.Stream=wE):(Os=BE.exports=NO(),Os.Stream=wE||Os,Os.Readable=Os,Os.Writable=kO(),Os.Duplex=qu(),Os.Transform=VO(),Os.PassThrough=Wce(),Os.finished=wQ(),Os.pipeline=_ce())});var tue=w((mQt,eue)=>{"use strict";var{Buffer:Io}=J("buffer"),$ce=Symbol.for("BufferList");function fr(r){if(!(this instanceof fr))return new fr(r);fr._init.call(this,r)}fr._init=function(e){Object.defineProperty(this,$ce,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};fr.prototype._new=function(e){return new fr(e)};fr.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;ithis.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};fr.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};fr.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Io.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Io.concat(this._bufs,this.length);for(let g=0;gf)this._bufs[g].copy(e,c,u),c+=f;else{this._bufs[g].copy(e,c,u,u+l),c+=f;break}l-=f,u&&(u=0)}return e.length>c?e.slice(0,c):e};fr.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};fr.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};fr.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};fr.prototype.duplicate=function(){let e=this._new();for(let t=0;tthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};fr.prototype._match=function(r,e){if(this.length-r{"use strict";var ZO=gp().Duplex,tVe=vl(),bE=tue();function Wi(r){if(!(this instanceof Wi))return new Wi(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}bE._init.call(this,r),ZO.call(this)}tVe(Wi,ZO);Object.assign(Wi.prototype,bE.prototype);Wi.prototype._new=function(e){return new Wi(e)};Wi.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Wi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Wi.prototype.end=function(e){ZO.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Wi.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Wi.prototype._isBufferList=function(e){return e instanceof Wi||e instanceof bE||Wi.isBufferList(e)};Wi.isBufferList=bE.isBufferList;DQ.exports=Wi;DQ.exports.BufferListStream=Wi;DQ.exports.BufferList=bE});var e1=w(hp=>{var rVe=Buffer.alloc,iVe="0000000000000000000",nVe="7777777777777777777",iue="0".charCodeAt(0),nue=Buffer.from("ustar\0","binary"),sVe=Buffer.from("00","binary"),oVe=Buffer.from("ustar ","binary"),aVe=Buffer.from(" \0","binary"),AVe=parseInt("7777",8),QE=257,$O=263,lVe=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},cVe=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},uVe=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},sue=function(r,e,t,i){for(;te?nVe.slice(0,e)+" ":iVe.slice(0,e-r.length)+r+" "};function gVe(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i=Math.pow(10,t)&&t++,e+t+r};hp.decodeLongPath=function(r,e){return fp(r,0,r.length,e)};hp.encodePax=function(r){var e="";r.name&&(e+=_O(" path="+r.name+` +`)),r.linkname&&(e+=_O(" linkpath="+r.linkname+` +`));var t=r.pax;if(t)for(var i in t)e+=_O(" "+i+"="+t[i]+` +`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Rl(r.mode&AVe,6),100),e.write(Rl(r.uid,6),108),e.write(Rl(r.gid,6),116),e.write(Rl(r.size,11),124),e.write(Rl(r.mtime.getTime()/1e3|0,11),136),e[156]=iue+uVe(r.type),r.linkname&&e.write(r.linkname,157),nue.copy(e,QE),sVe.copy(e,$O),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Rl(r.devmajor||0,6),329),e.write(Rl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Rl(oue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-iue,n=fp(r,0,100,e),s=Fl(r,100,8),o=Fl(r,108,8),a=Fl(r,116,8),l=Fl(r,124,12),c=Fl(r,136,12),u=cVe(i),g=r[157]===0?null:fp(r,157,100,e),f=fp(r,265,32),h=fp(r,297,32),p=Fl(r,329,8),C=Fl(r,337,8),y=oue(r);if(y===8*32)return null;if(y!==Fl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(nue.compare(r,QE,QE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(oVe.compare(r,QE,QE+6)===0&&aVe.compare(r,$O,$O+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:f,gname:h,devmajor:p,devminor:C}}});var fue=w((yQt,gue)=>{var Aue=J("util"),fVe=rue(),SE=e1(),lue=gp().Writable,cue=gp().PassThrough,uue=function(){},aue=function(r){return r&=511,r&&512-r},hVe=function(r,e){var t=new kQ(r,e);return t.end(),t},pVe=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},kQ=function(r,e){this._parent=r,this.offset=e,cue.call(this,{autoDestroy:!1})};Aue.inherits(kQ,cue);kQ.prototype.destroy=function(r){this._parent.destroy(r)};var pA=function(r){if(!(this instanceof pA))return new pA(r);lue.call(this,r),r=r||{},this._offset=0,this._buffer=fVe(),this._missing=0,this._partial=!1,this._onparse=uue,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(f){if(e._locked=!1,f)return e.destroy(f);e._stream||i()},s=function(){e._stream=null;var f=aue(e._header.size);f?e._parse(f,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(aue(e._header.size)),e._parse(512,g),i()},a=function(){var f=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,f)),t.consume(f),s()},l=function(){var f=e._header.size;e._pax=SE.decodePax(t.slice(0,f)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(f),s()},c=function(){var f=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},u=function(){var f=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},g=function(){var f=e._offset,h;try{h=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(p){e.emit("error",p)}if(t.consume(512),!h){e._parse(512,g),i();return}if(h.type==="gnu-long-path"){e._parse(h.size,c),i();return}if(h.type==="gnu-long-link-path"){e._parse(h.size,u),i();return}if(h.type==="pax-global-header"){e._parse(h.size,a),i();return}if(h.type==="pax-header"){e._parse(h.size,l),i();return}if(e._gnuLongPath&&(h.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(h.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=h=pVe(h,e._pax),e._pax=null),e._locked=!0,!h.size||h.type==="directory"){e._parse(512,g),e.emit("entry",h,hVe(e,f),n);return}e._stream=new kQ(e,f),e.emit("entry",h,e._stream,n),e._parse(h.size,s),i()};this._onheader=g,this._parse(512,g)};Aue.inherits(pA,lue);pA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};pA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};pA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=uue,this._overflow?this._write(this._overflow,void 0,r):r()}};pA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.lengths&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};pA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};gue.exports=pA});var pue=w((wQt,hue)=>{hue.exports=J("fs").constants||J("constants")});var Iue=w((BQt,Eue)=>{var pp=pue(),due=Pk(),FQ=vl(),dVe=Buffer.alloc,Cue=gp().Readable,dp=gp().Writable,CVe=J("string_decoder").StringDecoder,RQ=e1(),mVe=parseInt("755",8),EVe=parseInt("644",8),mue=dVe(1024),r1=function(){},t1=function(r,e){e&=511,e&&r.push(mue.slice(0,512-e))};function IVe(r){switch(r&pp.S_IFMT){case pp.S_IFBLK:return"block-device";case pp.S_IFCHR:return"character-device";case pp.S_IFDIR:return"directory";case pp.S_IFIFO:return"fifo";case pp.S_IFLNK:return"symlink"}return"file"}var NQ=function(r){dp.call(this),this.written=0,this._to=r,this._destroyed=!1};FQ(NQ,dp);NQ.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};NQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var TQ=function(){dp.call(this),this.linkname="",this._decoder=new CVe("utf-8"),this._destroyed=!1};FQ(TQ,dp);TQ.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};TQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var vE=function(){dp.call(this),this._destroyed=!1};FQ(vE,dp);vE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};vE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var la=function(r){if(!(this instanceof la))return new la(r);Cue.call(this,r),this._drain=r1,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};FQ(la,Cue);la.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=r1);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=IVe(r.mode)),r.mode||(r.mode=r.type==="directory"?mVe:EVe),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return t1(i,r.size),n?process.nextTick(t):this._drain=t,new vE}if(r.type==="symlink"&&!r.linkname){var s=new TQ;return due(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new vE;var o=new NQ(this);return this._stream=o,due(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));t1(i,r.size),i._finalizing&&i.finalize(),t()}),o}};la.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(mue),this.push(null))};la.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};la.prototype._encode=function(r){if(!r.pax){var e=RQ.encode(r);if(e){this.push(e);return}}this._encodePax(r)};la.prototype._encodePax=function(r){var e=RQ.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(RQ.encode(t)),this.push(e),t1(this,e.length),t.size=r.size,t.type=r.type,this.push(RQ.encode(t))};la.prototype._read=function(r){var e=this._drain;this._drain=r1,e()};Eue.exports=la});var yue=w(i1=>{i1.extract=fue();i1.pack=Iue()});var Fue=w((qQt,Rue)=>{"use strict";var Xu=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=Due(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return l1(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):TVe(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new Xu(this.__specs,this.__opts,Due(this.__providers).concat(e)),kue)}};try{let r=J("util");Xu.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch{}function FVe(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function l1(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))FVe(e);else{i||(i={});let n;for(let s of r.__providers){if(n=Pue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Pue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function Pue(r,e){let t;return e.__isFiggyPudding?t=l1(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var kue={has(r,e){return e in r.__specs&&l1(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in Xu.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Rue.exports=NVe;function NVe(r,e){function t(...i){return new Proxy(new Xu(r,e,i),kue)}return t}function Due(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function TVe(r){return Object.keys(r).map(e=>[e,r[e]])}});var Lue=w((JQt,ga)=>{"use strict";var PE=J("crypto"),LVe=Fue(),MVe=J("stream").Transform,Nue=["sha256","sha384","sha512"],OVe=/^[a-z0-9+/]+(?:=?=?)$/i,KVe=/^([^-]+)-([^?]+)([?\S*]*)$/,UVe=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,HVe=/^[\x21-\x7E]+$/,An=LVe({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>VVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Nl=class{get isHash(){return!0}constructor(e,t){t=An(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?UVe:KVe);if(!n||i&&!Nue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=An(e),e.strict&&!(Nue.some(i=>i===this.algorithm)&&this.digest.match(OVe)&&(this.options||[]).every(i=>i.match(HVe))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},Zu=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=An(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Nl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=An(t);let i=typeof e=="string"?e:xE(e,t);return ua(`${this.toString(t)} ${i}`,t)}hexDigest(){return ua(this,{single:!0}).hexDigest()}match(e,t){t=An(t);let i=ua(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=An(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ga.exports.parse=ua;function ua(r,e){if(e=An(e),typeof r=="string")return c1(r,e);if(r.algorithm&&r.digest){let t=new Zu;return t[r.algorithm]=[r],c1(xE(t,e),e)}else return c1(xE(r,e),e)}function c1(r,e){return e.single?new Nl(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Nl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new Zu)}ga.exports.stringify=xE;function xE(r,e){return e=An(e),r.algorithm&&r.digest?Nl.prototype.toString.call(r,e):typeof r=="string"?xE(ua(r,e),e):Zu.prototype.toString.call(r,e)}ga.exports.fromHex=GVe;function GVe(r,e,t){t=An(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return ua(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ga.exports.fromData=YVe;function YVe(r,e){e=An(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=PE.createHash(s).update(r).digest("base64"),a=new Nl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new Zu)}ga.exports.fromStream=jVe;function jVe(r,e){e=An(e);let t=e.Promise||Promise,i=u1(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ga.exports.checkData=qVe;function qVe(r,e,t){if(t=An(t),e=ua(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=PE.createHash(i).update(r).digest("base64"),s=ua({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. Wanted: ${t.size} - Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ga.exports.checkStream=jVe;function jVe(r,e,t){t=An(t);let i=t.Promise||Promise,n=l1(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ga.exports.integrityStream=l1;function l1(r){r=An(r);let e=r.integrity&&ua(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(PE.createHash),a=0,l=new TVe({transform(c,u,g){a+=c.length,o.forEach(f=>f.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=ua(o.map((f,h)=>`${s[h]}-${f.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let f=new Error(`stream size mismatch when checking ${e}. + Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ga.exports.checkStream=JVe;function JVe(r,e,t){t=An(t);let i=t.Promise||Promise,n=u1(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ga.exports.integrityStream=u1;function u1(r){r=An(r);let e=r.integrity&&ua(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(PE.createHash),a=0,l=new MVe({transform(c,u,g){a+=c.length,o.forEach(f=>f.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=ua(o.map((f,h)=>`${s[h]}-${f.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let f=new Error(`stream size mismatch when checking ${e}. Wanted: ${r.size} - Found: ${a}`);f.code="EBADSIZE",f.found=a,f.expected=r.size,f.sri=e,l.emit("error",f)}else if(r.integrity&&!g){let f=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);f.code="EINTEGRITY",f.found=u,f.expected=n,f.algorithm=i,f.sri=e,l.emit("error",f)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ga.exports.create=qVe;function qVe(r){r=An(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(PE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Nl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new Zu)}}}var JVe=new Set(PE.getHashes()),Fue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>JVe.has(r));function WVe(r,e){return Fue.indexOf(r.toLowerCase())>=Fue.indexOf(e.toLowerCase())?r:e}});var sm={};ut(sm,{BuildType:()=>M0,Cache:()=>Rt,Configuration:()=>ye,DEFAULT_LOCK_FILENAME:()=>ok,DEFAULT_RC_FILENAME:()=>sk,FormatType:()=>xi,InstallMode:()=>ts,LightReport:()=>ra,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>Ct,MultiFetcher:()=>Df,PackageExtensionStatus:()=>Xx,PackageExtensionType:()=>Vx,Project:()=>je,ProjectLookup:()=>ck,Report:()=>vi,ReportError:()=>at,SettingsType:()=>ak,StreamReport:()=>Ge,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>ti,VirtualFetcher:()=>Ff,Workspace:()=>Qh,WorkspaceFetcher:()=>Tf,WorkspaceResolver:()=>jr,YarnVersion:()=>Tr,execUtils:()=>Cr,folderUtils:()=>Tw,formatUtils:()=>ee,hashUtils:()=>li,httpUtils:()=>Xt,miscUtils:()=>Ie,nodeUtils:()=>ws,parseMessageName:()=>LI,scriptUtils:()=>Wt,semverUtils:()=>vt,stringifyMessageName:()=>NA,structUtils:()=>P,tgzUtils:()=>mi,treeUtils:()=>es});var Cr={};ut(Cr,{EndStrategy:()=>hk,ExecError:()=>Yw,PipeError:()=>dC,execvp:()=>tk,pipevp:()=>Wo});var Wp={};ut(Wp,{AliasFS:()=>Qo,CustomDir:()=>Hp,CwdFS:()=>qt,DEFAULT_COMPRESSION_LEVEL:()=>Xl,FakeFS:()=>ya,Filename:()=>xt,JailFS:()=>So,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>jp,NodeFS:()=>$t,PortablePath:()=>Me,PosixFS:()=>vg,ProxiedFS:()=>pi,VirtualFS:()=>Br,ZipFS:()=>Wr,ZipOpenFS:()=>Kn,constants:()=>xr,extendFs:()=>AI,normalizeLineEndings:()=>Vl,npath:()=>K,opendir:()=>tI,patchFs:()=>bS,ppath:()=>x,statUtils:()=>Mp,toFilename:()=>Ur,xfs:()=>O});var xr={};ut(xr,{SAFE_TIME:()=>iK,S_IFDIR:()=>Jl,S_IFLNK:()=>zl,S_IFMT:()=>qs,S_IFREG:()=>Wl});var qs=61440,Jl=16384,Wl=32768,zl=40960,iK=456789e3;var Mp={};ut(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Tp,DirEntry:()=>cS,StatEntry:()=>Ia,areStatsEqual:()=>gS,clearStats:()=>WE,convertToBigIntStats:()=>zE,makeDefaultStats:()=>Lp,makeEmptyStats:()=>Tge});var uS=Pe(J("util"));var Tp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Ia=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Tp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Tp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Lp(){return new Ia}function Tge(){return WE(Lp())}function WE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function zE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function gS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var XE=Pe(J("fs"));var Op=Pe(J("path"));var Me={root:"/",dot:".",parent:".."},xt={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},K=Object.create(Op.default),x=Object.create(Op.default.posix);K.cwd=()=>process.cwd();x.cwd=()=>fS(process.cwd());x.resolve=(...r)=>r.length>0&&x.isAbsolute(r[0])?Op.default.posix.resolve(...r):Op.default.posix.resolve(x.cwd(),...r);var nK=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=sK;K.toPortablePath=fS;K.contains=(r,e)=>nK(K,r,e);x.contains=(r,e)=>nK(x,r,e);var Lge=/^([a-zA-Z]:.*)$/,Mge=/^\/\/(\.\/)?(.*)$/,Oge=/^\/([a-zA-Z]:.*)$/,Kge=/^\/unc\/(\.dot\/)?(.*)$/;function sK(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Oge))r=e[1];else if(t=r.match(Kge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function fS(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Lge))?r=`/${e[1]}`:(t=r.match(Mge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function VE(r,e){return r===K?sK(e):fS(e)}function Ur(r){if(K.parse(r).dir!==""||x.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var ZE=new Date(456789e3*1e3),CS=(t=>(t.Allow="allow",t.ReadOnly="readOnly",t))(CS||{});async function oK(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:ZE,mtime:ZE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await pS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let f of a)await f();await Promise.all(l.map(f=>f()))}async function pS(r,e,t,i,n,s,o,a){var h,p;let l=a.didParentExist?await Uge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:ZE,mtime:ZE}:c,f;switch(!0){case c.isDirectory():f=await Hge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():f=await Yge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():f=await jge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(f||((h=l==null?void 0:l.mtime)==null?void 0:h.getTime())!==g.getTime()||((p=l==null?void 0:l.atime)==null?void 0:p.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),f=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),f=!0),f}async function Uge(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function Hge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(h){if(h.code!=="EEXIST")throw h}}),u=!0);let g=await o.readdirPromise(a),f=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let h of g.sort())await pS(r,e,t,i,i.pathUtils.join(n,h),o,o.pathUtils.join(a,h),f)&&(u=!0);else(await Promise.all(g.map(async p=>{await pS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),f)}))).some(p=>p)&&(u=!0);return u}var hS=new WeakMap;function dS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n==="readOnly"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function Gge(r,e,t,i,n){let s=hS.get(r);return typeof s>"u"?async()=>{try{await r.copyFilePromise(t,e,XE.default.constants.COPYFILE_FICLONE_FORCE),hS.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")hS.set(r,!1),await dS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,XE.default.constants.COPYFILE_FICLONE_FORCE):dS(r,e,t,i,n)}async function Yge(r,e,t,i,n,s,o,a,l,c){var f;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(f=c.linkStrategy)!=null?f:null,g=i===o?u!==null?Gge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,XE.default.constants.COPYFILE_FICLONE):u!==null?dS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function jge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(VE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function As(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function $E(r){return As("EBUSY",r)}function Kp(r,e){return As("ENOSYS",`${r}, ${e}`)}function xA(r){return As("EINVAL",`invalid argument, ${r}`)}function Hr(r){return As("EBADF",`bad file descriptor, ${r}`)}function Js(r){return As("ENOENT",`no such file or directory, ${r}`)}function bo(r){return As("ENOTDIR",`not a directory, ${r}`)}function Up(r){return As("EISDIR",`illegal operation on a directory, ${r}`)}function eI(r){return As("EEXIST",`file already exists, ${r}`)}function un(r){return As("EROFS",`read-only filesystem, ${r}`)}function aK(r){return As("ENOTEMPTY",`directory not empty, ${r}`)}function AK(r){return As("EOPNOTSUPP",`operation not supported, ${r}`)}function lK(){return As("ERR_DIR_CLOSED","Directory handle was closed")}var _E=class extends Error{constructor(t,i){super(t);this.name="Libzip Error",this.code=i}};var Hp=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw lK()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<"u"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function tI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>"u"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new Hp(e,n,i)}var cK=J("os");var ya=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;ssetTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await oK(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(VE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch{}let o=i?Vl(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch{}let o=i?Vl(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} + Found: ${a}`);f.code="EBADSIZE",f.found=a,f.expected=r.size,f.sri=e,l.emit("error",f)}else if(r.integrity&&!g){let f=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);f.code="EINTEGRITY",f.found=u,f.expected=n,f.algorithm=i,f.sri=e,l.emit("error",f)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ga.exports.create=WVe;function WVe(r){r=An(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(PE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Nl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new Zu)}}}var zVe=new Set(PE.getHashes()),Tue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>zVe.has(r));function VVe(r,e){return Tue.indexOf(r.toLowerCase())>=Tue.indexOf(e.toLowerCase())?r:e}});var sm={};ut(sm,{BuildType:()=>M0,Cache:()=>Rt,Configuration:()=>ye,DEFAULT_LOCK_FILENAME:()=>ok,DEFAULT_RC_FILENAME:()=>sk,FormatType:()=>xi,InstallMode:()=>ts,LightReport:()=>ra,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>Ct,MultiFetcher:()=>Df,PackageExtensionStatus:()=>Xx,PackageExtensionType:()=>Vx,Project:()=>je,ProjectLookup:()=>ck,Report:()=>vi,ReportError:()=>at,SettingsType:()=>ak,StreamReport:()=>Ge,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>ti,VirtualFetcher:()=>Ff,Workspace:()=>Qh,WorkspaceFetcher:()=>Tf,WorkspaceResolver:()=>Yr,YarnVersion:()=>Tr,execUtils:()=>Cr,folderUtils:()=>Tw,formatUtils:()=>ee,hashUtils:()=>li,httpUtils:()=>Xt,miscUtils:()=>Ie,nodeUtils:()=>ws,parseMessageName:()=>LI,scriptUtils:()=>Wt,semverUtils:()=>vt,stringifyMessageName:()=>FA,structUtils:()=>P,tgzUtils:()=>mi,treeUtils:()=>es});var Cr={};ut(Cr,{EndStrategy:()=>hk,ExecError:()=>Yw,PipeError:()=>dC,execvp:()=>tk,pipevp:()=>oo});var Wp={};ut(Wp,{AliasFS:()=>So,CustomDir:()=>Hp,CwdFS:()=>qt,DEFAULT_COMPRESSION_LEVEL:()=>Xl,FakeFS:()=>ya,Filename:()=>xt,JailFS:()=>vo,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>jp,NodeFS:()=>$t,PortablePath:()=>Me,PosixFS:()=>vg,ProxiedFS:()=>pi,VirtualFS:()=>Br,ZipFS:()=>Wr,ZipOpenFS:()=>Kn,constants:()=>xr,extendFs:()=>AI,normalizeLineEndings:()=>Vl,npath:()=>K,opendir:()=>tI,patchFs:()=>bS,ppath:()=>x,statUtils:()=>Mp,toFilename:()=>Jr,xfs:()=>O});var xr={};ut(xr,{SAFE_TIME:()=>sK,S_IFDIR:()=>Jl,S_IFLNK:()=>zl,S_IFMT:()=>qs,S_IFREG:()=>Wl});var qs=61440,Jl=16384,Wl=32768,zl=40960,sK=456789e3;var Mp={};ut(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Tp,DirEntry:()=>cS,StatEntry:()=>Ia,areStatsEqual:()=>gS,clearStats:()=>WE,convertToBigIntStats:()=>zE,makeDefaultStats:()=>Lp,makeEmptyStats:()=>Mge});var uS=Pe(J("util"));var Tp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Ia=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Tp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Tp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Lp(){return new Ia}function Mge(){return WE(Lp())}function WE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function zE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function gS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var XE=Pe(J("fs"));var Op=Pe(J("path"));var Me={root:"/",dot:".",parent:".."},xt={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},K=Object.create(Op.default),x=Object.create(Op.default.posix);K.cwd=()=>process.cwd();x.cwd=()=>fS(process.cwd());x.resolve=(...r)=>r.length>0&&x.isAbsolute(r[0])?Op.default.posix.resolve(...r):Op.default.posix.resolve(x.cwd(),...r);var oK=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=aK;K.toPortablePath=fS;K.contains=(r,e)=>oK(K,r,e);x.contains=(r,e)=>oK(x,r,e);var Oge=/^([a-zA-Z]:.*)$/,Kge=/^\/\/(\.\/)?(.*)$/,Uge=/^\/([a-zA-Z]:.*)$/,Hge=/^\/unc\/(\.dot\/)?(.*)$/;function aK(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Uge))r=e[1];else if(t=r.match(Hge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function fS(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Oge))?r=`/${e[1]}`:(t=r.match(Kge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function VE(r,e){return r===K?aK(e):fS(e)}function Jr(r){if(K.parse(r).dir!==""||x.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var ZE=new Date(456789e3*1e3),CS=(t=>(t.Allow="allow",t.ReadOnly="readOnly",t))(CS||{});async function AK(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:ZE,mtime:ZE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await pS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let f of a)await f();await Promise.all(l.map(f=>f()))}async function pS(r,e,t,i,n,s,o,a){var h,p;let l=a.didParentExist?await Gge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:ZE,mtime:ZE}:c,f;switch(!0){case c.isDirectory():f=await Yge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():f=await qge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():f=await Jge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(f||((h=l==null?void 0:l.mtime)==null?void 0:h.getTime())!==g.getTime()||((p=l==null?void 0:l.atime)==null?void 0:p.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),f=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),f=!0),f}async function Gge(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function Yge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(h){if(h.code!=="EEXIST")throw h}}),u=!0);let g=await o.readdirPromise(a),f=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let h of g.sort())await pS(r,e,t,i,i.pathUtils.join(n,h),o,o.pathUtils.join(a,h),f)&&(u=!0);else(await Promise.all(g.map(async p=>{await pS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),f)}))).some(p=>p)&&(u=!0);return u}var hS=new WeakMap;function dS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n==="readOnly"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function jge(r,e,t,i,n){let s=hS.get(r);return typeof s>"u"?async()=>{try{await r.copyFilePromise(t,e,XE.default.constants.COPYFILE_FICLONE_FORCE),hS.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")hS.set(r,!1),await dS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,XE.default.constants.COPYFILE_FICLONE_FORCE):dS(r,e,t,i,n)}async function qge(r,e,t,i,n,s,o,a,l,c){var f;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(f=c.linkStrategy)!=null?f:null,g=i===o?u!==null?jge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,XE.default.constants.COPYFILE_FICLONE):u!==null?dS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function Jge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(VE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function As(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function $E(r){return As("EBUSY",r)}function Kp(r,e){return As("ENOSYS",`${r}, ${e}`)}function vA(r){return As("EINVAL",`invalid argument, ${r}`)}function Ur(r){return As("EBADF",`bad file descriptor, ${r}`)}function Js(r){return As("ENOENT",`no such file or directory, ${r}`)}function Qo(r){return As("ENOTDIR",`not a directory, ${r}`)}function Up(r){return As("EISDIR",`illegal operation on a directory, ${r}`)}function eI(r){return As("EEXIST",`file already exists, ${r}`)}function un(r){return As("EROFS",`read-only filesystem, ${r}`)}function lK(r){return As("ENOTEMPTY",`directory not empty, ${r}`)}function cK(r){return As("EOPNOTSUPP",`operation not supported, ${r}`)}function uK(){return As("ERR_DIR_CLOSED","Directory handle was closed")}var _E=class extends Error{constructor(t,i){super(t);this.name="Libzip Error",this.code=i}};var Hp=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw uK()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<"u"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function tI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>"u"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new Hp(e,n,i)}var gK=J("os");var ya=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;ssetTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await AK(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(VE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch{}let o=i?Vl(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch{}let o=i?Vl(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} `)}writeJsonSync(e,t){return this.writeFileSync(e,`${JSON.stringify(t,null,2)} -`)}async preserveTimePromise(e,t){let i=await this.lstatPromise(e),n=await t();typeof n<"u"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,t){let i=this.lstatSync(e),n=t();typeof n<"u"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},PA=class extends ya{constructor(){super(x)}};function qge(r){let e=r.match(/\r?\n/g);if(e===null)return cK.EOL;let t=e.filter(n=>n===`\r +`)}async preserveTimePromise(e,t){let i=await this.lstatPromise(e),n=await t();typeof n<"u"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,t){let i=this.lstatSync(e),n=t();typeof n<"u"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},xA=class extends ya{constructor(){super(x)}};function Wge(r){let e=r.match(/\r?\n/g);if(e===null)return gK.EOL;let t=e.filter(n=>n===`\r `).length,i=e.length-t;return t>i?`\r `:` -`}function Vl(r,e){return e.replace(/\r?\n/g,qge(r))}var Qg=J("fs"),IS=J("stream"),hK=J("util"),yS=Pe(J("zlib"));var uK=Pe(J("fs"));var $t=class extends PA{constructor(t=uK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Me.root}resolve(t){return x.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>"u")throw Kp("unavailable Node binding",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>"u")throw Kp("unavailable Node binding",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t=="string"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t=="string"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var fK=J("events");function gK(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var bg=class extends fK.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new bg(t,i,n);return s.start(),s}start(){gK(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){gK(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Bg:new Ia;return WE(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;gS(n,s)||(this.lastStats=n,this.emit("change",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener("change",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener("change",t);let i=this.changeListeners.get(t);typeof i<"u"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var rI=new WeakMap;function iI(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=rI.get(r);typeof l>"u"&&rI.set(r,l=new Map);let c=l.get(e);return typeof c>"u"&&(c=bg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function Gp(r,e,t){let i=rI.get(r);if(typeof i>"u")return;let n=i.get(e);typeof n>"u"||(typeof t>"u"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function Yp(r){let e=rI.get(r);if(!(typeof e>"u"))for(let t of e.keys())Gp(r,t)}var Xl="mixed";function Jge(r){if(typeof r=="string"&&String(+r)===r)return+r;if(typeof r=="number"&&Number.isFinite(r))return r<0?Date.now()/1e3:r;if(hK.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function ES(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var Wr=class extends PA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<"u"?n.level:Xl,t!=null||(t=ES()),typeof t=="string"){let{baseFs:a=new $t}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t=="string")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code==="ENOENT"&&n.create)this.stats=Lp();else throw a}else this.stats=Lp();let s=this.libzip.malloc(4);try{let a=0;if(typeof t=="string"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t=="string")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,"i32")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(Me.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;at)throw new Error("Overread");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw $E("archive closed, close");Yp(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===Tp?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,ES(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<"u"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return x.resolve(Me.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw Js(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw bo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,"r");return tI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>"u")throw Hr("read");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i=="string"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>"u"?Hr("read"):new Error("Unimplemented")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>"u")throw Hr("read");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error("Unimplemented");let n=this.openSync(t,"r"),s=Object.assign(new IS.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw un(`open '${t}'`);if(t===null)throw new Error("Unimplemented");let n=[],s=this.openSync(t,"w"),o=Object.assign(new IS.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{bytesWritten:0,path:t,close(){o.destroy()}});return o.on("data",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw Js(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw $E(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=x.resolve(Me.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=Qg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw Js(`access '${t}'`);if(this.readOnly&&i&Qg.constants.W_OK)throw un(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw Js(`stat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>"u")throw Hr("fstatSync");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw Js(`stat '${s}'`);if(s[s.length-1]==="/"&&!this.listings.has(o))throw bo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw Js(`lstat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<"u"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,f=Math.ceil(u/g),h=(this.libzip.struct.statMtime(o)>>>0)*1e3,p=h,C=h,y=h,B=new Date(p),v=new Date(C),D=new Date(y),T=new Date(h),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,j=H===16384?493:420,$=H|this.getUnixMode(s,j)&511,V=this.libzip.struct.statCrc(o),W=Object.assign(new Ia,{uid:l,gid:c,size:u,blksize:g,blocks:f,atime:B,birthtime:v,ctime:D,mtime:T,atimeMs:p,birthtimeMs:C,ctimeMs:y,mtimeMs:h,mode:$,crc:V});return n.bigint===!0?zE(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,f=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,C=new Date(g),y=new Date(f),B=new Date(h),v=new Date(p),D=16877,T=0,H=Object.assign(new Ia,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:C,birthtime:y,ctime:B,mtime:v,atimeMs:g,birthtimeMs:f,ctimeMs:h,mtimeMs:p,mode:D,crc:T});return n.bigint===!0?zE(H):H}throw new Error("Unreachable")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(x.dirname(t)).add(x.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(x.dirname(t)).add(x.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(x.dirname(t));i==null||i.delete(x.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>"u")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw $E(`archive closed, ${t}`);let o=x.resolve(Me.root,i);if(o==="/")return Me.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,x.resolve(x.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,x.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw Js(t)}if(!c)throw bo(t);if(o=x.resolve(l,x.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1),0);if(g===-1)break;if(this.isSymbolicLink(g)){let f=this.getFileSource(g).toString();o=x.resolve(x.dirname(o),f)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,1,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,1);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=x.relative(Me.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<"u")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(ga)throw new Error("Overread");let f=this.libzip.HEAPU8.subarray(c,c+a),h=Buffer.from(f);if(l===0)return this.fileSources.set(t,h),h;if(i.asyncDecompress)return new Promise((p,C)=>{yS.default.inflateRaw(h,(y,B)=>{y?C(y):(this.fileSources.set(t,B),p(B))})});{let p=yS.default.inflateRawSync(h);return this.fileSources.set(t,p),p}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,"fchmod"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,"fchmodSync"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw un(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>"u")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,"fchown"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,"fchownSync"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error("Unimplemented")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error("Unimplemented")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw un(`copyfile '${t} -> '${i}'`);if((n&Qg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Kp("unsupported clone operation",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>"u")throw xA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(Qg.constants.COPYFILE_EXCL|Qg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<"u")throw eI(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>"u")throw Hr(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t=="number"&&(t=this.fdToPath(t,"read")),this.readOnly)throw un(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Up(`open '${t}'`);let s=null,o=null;typeof i=="string"?s=i:typeof i=="object"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw un(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Up(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>"u")throw xA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw un(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw un(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,n,0,Jge(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw un(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw eI(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw un(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw bo(`rmdir '${t}'`);if(s.size>0)throw aK(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>"u")throw xA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,x.relative(Me.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw AK(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw un(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Up(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw eI(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t=="number"&&(t=this.fdToPath(t,"read"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw Js(`open '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`open '${t}'`);if(this.listings.has(n))throw Up("read");let s=this.entries.get(n);if(s===void 0)throw new Error("Unreachable");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw Js(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw bo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl("lstat",x.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw Js(`readlink '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(i))throw bo(`open '${t}'`);if(this.listings.has(i))throw xA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(n))throw xA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw xA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw xA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,"ftruncate"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,"ftruncateSync"),i)}watch(t,i,n){let s;switch(typeof i){case"function":case"string":case"undefined":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=x.resolve(Me.root,t);return iI(this,s,i,n)}unwatchFile(t,i){let n=x.resolve(Me.root,t);return Gp(this,n,i)}};var pi=class extends ya{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return t==="utf8"?this.baseFs.readFilePromise(this.fsMapToBase(e),t):this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return t==="utf8"?this.baseFs.readFileSync(this.fsMapToBase(e),t):this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var Qo=class extends pi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var qt=class extends pi{constructor(t,{baseFs:i=new $t}={}){super(x);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?x.normalize(t):this.baseFs.resolve(x.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var pK=Me.root,So=class extends pi{constructor(t,{baseFs:i=new $t}={}){super(x);this.target=this.pathUtils.resolve(Me.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Me.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(pK,t));if(i.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(pK,this.pathUtils.relative(this.target,t))}};var Sg=class extends pi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var Ze=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),wS=class extends ya{constructor(){super(x)}getExtractHint(){throw Ze()}getRealPath(){throw Ze()}resolve(){throw Ze()}async openPromise(){throw Ze()}openSync(){throw Ze()}async opendirPromise(){throw Ze()}opendirSync(){throw Ze()}async readPromise(){throw Ze()}readSync(){throw Ze()}async writePromise(){throw Ze()}writeSync(){throw Ze()}async closePromise(){throw Ze()}closeSync(){throw Ze()}createWriteStream(){throw Ze()}createReadStream(){throw Ze()}async realpathPromise(){throw Ze()}realpathSync(){throw Ze()}async readdirPromise(){throw Ze()}readdirSync(){throw Ze()}async existsPromise(e){throw Ze()}existsSync(e){throw Ze()}async accessPromise(){throw Ze()}accessSync(){throw Ze()}async statPromise(){throw Ze()}statSync(){throw Ze()}async fstatPromise(e){throw Ze()}fstatSync(e){throw Ze()}async lstatPromise(e){throw Ze()}lstatSync(e){throw Ze()}async fchmodPromise(){throw Ze()}fchmodSync(){throw Ze()}async chmodPromise(){throw Ze()}chmodSync(){throw Ze()}async fchownPromise(){throw Ze()}fchownSync(){throw Ze()}async chownPromise(){throw Ze()}chownSync(){throw Ze()}async mkdirPromise(){throw Ze()}mkdirSync(){throw Ze()}async rmdirPromise(){throw Ze()}rmdirSync(){throw Ze()}async linkPromise(){throw Ze()}linkSync(){throw Ze()}async symlinkPromise(){throw Ze()}symlinkSync(){throw Ze()}async renamePromise(){throw Ze()}renameSync(){throw Ze()}async copyFilePromise(){throw Ze()}copyFileSync(){throw Ze()}async appendFilePromise(){throw Ze()}appendFileSync(){throw Ze()}async writeFilePromise(){throw Ze()}writeFileSync(){throw Ze()}async unlinkPromise(){throw Ze()}unlinkSync(){throw Ze()}async utimesPromise(){throw Ze()}utimesSync(){throw Ze()}async readFilePromise(){throw Ze()}readFileSync(){throw Ze()}async readlinkPromise(){throw Ze()}readlinkSync(){throw Ze()}async truncatePromise(){throw Ze()}truncateSync(){throw Ze()}async ftruncatePromise(e,t){throw Ze()}ftruncateSync(e,t){throw Ze()}watch(){throw Ze()}watchFile(){throw Ze()}unwatchFile(){throw Ze()}},jp=wS;jp.instance=new wS;var vg=class extends pi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var Wge=/^[0-9]+$/,BS=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,zge=/^([^/]+-)?[a-f0-9]+$/,Br=class extends pi{constructor({baseFs:t=new $t}={}){super(x);this.baseFs=t}static makeVirtualPath(t,i,n){if(x.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!x.basename(i).match(zge))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=x.relative(x.dirname(t),n).split("/"),a=0;for(;a{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==x.sep);){if(r[t-1]===x.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==x.sep?null:r.slice(0,i)},Kn=class extends PA{constructor({libzip:t,baseFs:i=new $t,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!="function"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new Kn(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>"u"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|Vi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&gn)!==Vi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Hr("read");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&gn)!==Vi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Hr("readSync");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&gn)!==Vi)return typeof i=="string"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Hr("write");let[l,c]=a;return typeof i=="string"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&gn)!==Vi)return typeof i=="string"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Hr("writeSync");let[l,c]=a;return typeof i=="string"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&gn)!==Vi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Hr("close");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&gn)!==Vi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Hr("closeSync");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Me.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Me.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&gn)!==Vi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Hr("fstat");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&gn)!==Vi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Hr("fstatSync");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&gn)!==Vi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Hr("fchmod");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&gn)!==Vi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Hr("fchmodSync");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&gn)!==Vi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Hr("fchown");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&gn)!==Vi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Hr("fchownSync");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&qp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&qp.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&qp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&qp.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>{switch(i){case"utf8":return await this.baseFs.readFilePromise(t,i);default:return await this.baseFs.readFilePromise(t,i)}},async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>{switch(i){case"utf8":return this.baseFs.readFileSync(t,i);default:return this.baseFs.readFileSync(t,i)}},(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&gn)!==Vi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Hr("ftruncate");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&gn)!==Vi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Hr("ftruncateSync");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>iI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>Gp(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath==="/"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath==="/"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i="";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=dK(n,".zip");else for(let o of this.fileExtensions)if(s=dK(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(Me.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new Wr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new Wr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new Wr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new Wr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var Pg=J("util");var sI=J("url"),CK=J("util");var nI=class extends pi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof sI.URL)return(0,sI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return i}throw new Error(`Unsupported path type: ${(0,CK.inspect)(t)}`)}};var mK=J("readline"),Fi=Symbol("kBaseFs"),wa=Symbol("kFd"),DA=Symbol("kClosePromise"),oI=Symbol("kCloseResolve"),aI=Symbol("kCloseReject"),xg=Symbol("kRefs"),Ws=Symbol("kRef"),zs=Symbol("kUnref"),Vge,Xge,Zge,_ge,Jp=class{constructor(e,t){this[Vge]=1;this[Xge]=void 0;this[Zge]=void 0;this[_ge]=void 0;this[Fi]=t,this[wa]=e}get fd(){return this[wa]}async appendFile(e,t){var i;try{this[Ws](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Fi].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[zs]()}}async chown(e,t){try{return this[Ws](this.chown),await this[Fi].fchownPromise(this.fd,e,t)}finally{this[zs]()}}async chmod(e){try{return this[Ws](this.chmod),await this[Fi].fchmodPromise(this.fd,e)}finally{this[zs]()}}createReadStream(e){return this[Fi].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Fi].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Ws](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Fi].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[zs]()}}async readFile(e){var t;try{this[Ws](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Fi].readFilePromise(this.fd,i)}finally{this[zs]()}}readLines(e){return(0,mK.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Ws](this.stat),await this[Fi].fstatPromise(this.fd,e)}finally{this[zs]()}}async truncate(e){try{return this[Ws](this.truncate),await this[Fi].ftruncatePromise(this.fd,e)}finally{this[zs]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Ws](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Fi].writeFilePromise(this.fd,e,n)}finally{this[zs]()}}async write(...e){try{if(this[Ws](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[zs]()}}async writev(e,t){try{this[Ws](this.writev);let i=0;if(typeof t<"u")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e){let s=await this.write(n);i+=s.bytesWritten}return{buffers:e,bytesWritten:i}}finally{this[zs]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[wa]===-1)return Promise.resolve();if(this[DA])return this[DA];if(this[xg]--,this[xg]===0){let e=this[wa];this[wa]=-1,this[DA]=this[Fi].closePromise(e).finally(()=>{this[DA]=void 0})}else this[DA]=new Promise((e,t)=>{this[oI]=e,this[aI]=t}).finally(()=>{this[DA]=void 0,this[aI]=void 0,this[oI]=void 0});return this[DA]}[(Fi,wa,Vge=xg,Xge=DA,Zge=oI,_ge=aI,Ws)](e){if(this[wa]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[xg]++}[zs](){if(this[xg]--,this[xg]===0){let e=this[wa];this[wa]=-1,this[Fi].closePromise(e).then(this[oI],this[aI])}}};var $ge=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),EK=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function bS(r,e){e=new nI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Pg.promisify.custom])<"u"&&(s[Pg.promisify.custom]=o[Pg.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of EK){let n=i.replace(/Promise$/,"");if(typeof r[n]>"u")continue;let s=e[i];if(typeof s>"u")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of $ge){let n=i;if(typeof r[n]>"u")continue;let s=e[i];typeof s>"u"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=process.emitWarning;process.emitWarning=()=>{};let n;try{n=r.promises}finally{process.emitWarning=i}if(typeof n<"u"){for(let s of EK){let o=s.replace(/Promise$/,"");if(typeof n[o]>"u")continue;let a=e[s];typeof a>"u"||s!=="open"&&t(n,o,(l,...c)=>l instanceof Jp?l[o].apply(l,c):a.call(e,l,...c))}t(n,"open",async(...s)=>{let o=await e.openPromise(...s);return new Jp(o,e)})}}r.read[Pg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Pg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function AI(r,e){let t=Object.create(r);return bS(t,e),t}var wK=Pe(J("os"));function IK(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var Vs=new Set,QS=null;function yK(){if(QS)return QS;let r=K.toPortablePath(wK.default.tmpdir()),e=O.realpathSync(r);return process.once("exit",()=>{O.rmtempSync()}),QS={tmpdir:r,realTmpdir:e}}var O=Object.assign(new $t,{detachTemp(r){Vs.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=yK();for(;;){let i=IK("xfs-");try{this.mkdirSync(x.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=x.join(t,i);if(Vs.add(n),typeof r>"u")return n;try{return r(n)}finally{if(Vs.has(n)){Vs.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=yK();for(;;){let i=IK("xfs-");try{await this.mkdirPromise(x.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=x.join(t,i);if(Vs.add(n),typeof r>"u")return n;try{return await r(n)}finally{if(Vs.has(n)){Vs.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(Vs.values()).map(async r=>{try{await O.removePromise(r,{maxRetries:0}),Vs.delete(r)}catch{}}))},rmtempSync(){for(let r of Vs)try{O.removeSync(r),Vs.delete(r)}catch{}}});var fk=Pe(TS());var td={};ut(td,{parseResolution:()=>hI,parseShell:()=>uI,parseSyml:()=>yi,stringifyArgument:()=>KS,stringifyArgumentSegment:()=>US,stringifyArithmeticExpression:()=>fI,stringifyCommand:()=>OS,stringifyCommandChain:()=>Fg,stringifyCommandChainThen:()=>MS,stringifyCommandLine:()=>gI,stringifyCommandLineThen:()=>LS,stringifyEnvSegment:()=>cI,stringifyRedirectArgument:()=>zp,stringifyResolution:()=>pI,stringifyShell:()=>Rg,stringifyShellLine:()=>Rg,stringifySyml:()=>ba,stringifyValueArgument:()=>_l});var gU=Pe(uU());function uI(r,e={isGlobPattern:()=>!1}){try{return(0,gU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Rg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${gI(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function gI(r){return`${Fg(r.chain)}${r.then?` ${LS(r.then)}`:""}`}function LS(r){return`${r.type} ${gI(r.line)}`}function Fg(r){return`${OS(r)}${r.then?` ${MS(r.then)}`:""}`}function MS(r){return`${r.type} ${Fg(r.chain)}`}function OS(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>cI(e)).join(" ")} `:""}${r.args.map(e=>KS(e)).join(" ")}`;case"subshell":return`(${Rg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>zp(e)).join(" ")}`:""}`;case"group":return`{ ${Rg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>zp(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>cI(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function cI(r){return`${r.name}=${r.args[0]?_l(r.args[0]):""}`}function KS(r){switch(r.type){case"redirection":return zp(r);case"argument":return _l(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function zp(r){return`${r.subtype} ${r.args.map(e=>_l(e)).join(" ")}`}function _l(r){return r.segments.map(e=>US(e)).join("")}function US(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?'""':i.match(/[(){}<>$|&; \t"']/)?`$'${i.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0")}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${Rg(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue>"u"?typeof r.alternativeValue>"u"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>_l(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>_l(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${fI(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function fI(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(fI(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var pU=Pe(hU());function hI(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,pU.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function pI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var vI=Pe(sH()),cH=Pe(aH()),Ade=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,AH=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],SI=class{constructor(e){this.data=e}};function lH(r){return r.match(Ade)?r:JSON.stringify(r)}function uH(r){return typeof r>"u"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>uH(r[e])):!1}function $S(r,e,t){if(r===null)return`null +`}function Vl(r,e){return e.replace(/\r?\n/g,Wge(r))}var Qg=J("fs"),IS=J("stream"),dK=J("util"),yS=Pe(J("zlib"));var fK=Pe(J("fs"));var $t=class extends xA{constructor(t=fK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Me.root}resolve(t){return x.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>"u")throw Kp("unavailable Node binding",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>"u")throw Kp("unavailable Node binding",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t=="string"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t=="string"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var pK=J("events");function hK(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var bg=class extends pK.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new bg(t,i,n);return s.start(),s}start(){hK(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){hK(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Bg:new Ia;return WE(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;gS(n,s)||(this.lastStats=n,this.emit("change",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener("change",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener("change",t);let i=this.changeListeners.get(t);typeof i<"u"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var rI=new WeakMap;function iI(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=rI.get(r);typeof l>"u"&&rI.set(r,l=new Map);let c=l.get(e);return typeof c>"u"&&(c=bg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function Gp(r,e,t){let i=rI.get(r);if(typeof i>"u")return;let n=i.get(e);typeof n>"u"||(typeof t>"u"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function Yp(r){let e=rI.get(r);if(!(typeof e>"u"))for(let t of e.keys())Gp(r,t)}var Xl="mixed";function zge(r){if(typeof r=="string"&&String(+r)===r)return+r;if(typeof r=="number"&&Number.isFinite(r))return r<0?Date.now()/1e3:r;if(dK.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function ES(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var Wr=class extends xA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<"u"?n.level:Xl,t!=null||(t=ES()),typeof t=="string"){let{baseFs:a=new $t}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t=="string")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code==="ENOENT"&&n.create)this.stats=Lp();else throw a}else this.stats=Lp();let s=this.libzip.malloc(4);try{let a=0;if(typeof t=="string"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t=="string")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,"i32")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(Me.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;at)throw new Error("Overread");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw $E("archive closed, close");Yp(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===Tp?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,ES(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<"u"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return x.resolve(Me.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw Js(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,"r");return tI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>"u")throw Ur("read");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i=="string"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>"u"?Ur("read"):new Error("Unimplemented")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>"u")throw Ur("read");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error("Unimplemented");let n=this.openSync(t,"r"),s=Object.assign(new IS.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw un(`open '${t}'`);if(t===null)throw new Error("Unimplemented");let n=[],s=this.openSync(t,"w"),o=Object.assign(new IS.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{bytesWritten:0,path:t,close(){o.destroy()}});return o.on("data",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw Js(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw $E(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=x.resolve(Me.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=Qg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw Js(`access '${t}'`);if(this.readOnly&&i&Qg.constants.W_OK)throw un(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw Js(`stat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>"u")throw Ur("fstatSync");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw Js(`stat '${s}'`);if(s[s.length-1]==="/"&&!this.listings.has(o))throw Qo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw Js(`lstat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<"u"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,f=Math.ceil(u/g),h=(this.libzip.struct.statMtime(o)>>>0)*1e3,p=h,C=h,y=h,B=new Date(p),v=new Date(C),D=new Date(y),T=new Date(h),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,j=H===16384?493:420,$=H|this.getUnixMode(s,j)&511,V=this.libzip.struct.statCrc(o),W=Object.assign(new Ia,{uid:l,gid:c,size:u,blksize:g,blocks:f,atime:B,birthtime:v,ctime:D,mtime:T,atimeMs:p,birthtimeMs:C,ctimeMs:y,mtimeMs:h,mode:$,crc:V});return n.bigint===!0?zE(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,f=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,C=new Date(g),y=new Date(f),B=new Date(h),v=new Date(p),D=16877,T=0,H=Object.assign(new Ia,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:C,birthtime:y,ctime:B,mtime:v,atimeMs:g,birthtimeMs:f,ctimeMs:h,mtimeMs:p,mode:D,crc:T});return n.bigint===!0?zE(H):H}throw new Error("Unreachable")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(x.dirname(t)).add(x.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(x.dirname(t)).add(x.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(x.dirname(t));i==null||i.delete(x.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>"u")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw $E(`archive closed, ${t}`);let o=x.resolve(Me.root,i);if(o==="/")return Me.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,x.resolve(x.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,x.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw Js(t)}if(!c)throw Qo(t);if(o=x.resolve(l,x.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1),0);if(g===-1)break;if(this.isSymbolicLink(g)){let f=this.getFileSource(g).toString();o=x.resolve(x.dirname(o),f)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,1,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,1);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=x.relative(Me.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<"u")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(ga)throw new Error("Overread");let f=this.libzip.HEAPU8.subarray(c,c+a),h=Buffer.from(f);if(l===0)return this.fileSources.set(t,h),h;if(i.asyncDecompress)return new Promise((p,C)=>{yS.default.inflateRaw(h,(y,B)=>{y?C(y):(this.fileSources.set(t,B),p(B))})});{let p=yS.default.inflateRawSync(h);return this.fileSources.set(t,p),p}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,"fchmod"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,"fchmodSync"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw un(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>"u")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,"fchown"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,"fchownSync"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error("Unimplemented")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error("Unimplemented")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw un(`copyfile '${t} -> '${i}'`);if((n&Qg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Kp("unsupported clone operation",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>"u")throw vA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(Qg.constants.COPYFILE_EXCL|Qg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<"u")throw eI(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>"u")throw Ur(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t=="number"&&(t=this.fdToPath(t,"read")),this.readOnly)throw un(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Up(`open '${t}'`);let s=null,o=null;typeof i=="string"?s=i:typeof i=="object"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw un(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Up(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>"u")throw vA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw un(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw un(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,n,0,zge(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw un(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw eI(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw un(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw Qo(`rmdir '${t}'`);if(s.size>0)throw lK(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>"u")throw vA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,x.relative(Me.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw cK(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw un(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Up(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw eI(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t=="number"&&(t=this.fdToPath(t,"read"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw Js(`open '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`open '${t}'`);if(this.listings.has(n))throw Up("read");let s=this.entries.get(n);if(s===void 0)throw new Error("Unreachable");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw Js(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl("lstat",x.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw Js(`readlink '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(i))throw Qo(`open '${t}'`);if(this.listings.has(i))throw vA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(n))throw vA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw vA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw vA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,"ftruncate"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,"ftruncateSync"),i)}watch(t,i,n){let s;switch(typeof i){case"function":case"string":case"undefined":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=x.resolve(Me.root,t);return iI(this,s,i,n)}unwatchFile(t,i){let n=x.resolve(Me.root,t);return Gp(this,n,i)}};var pi=class extends ya{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return t==="utf8"?this.baseFs.readFilePromise(this.fsMapToBase(e),t):this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return t==="utf8"?this.baseFs.readFileSync(this.fsMapToBase(e),t):this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var So=class extends pi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var qt=class extends pi{constructor(t,{baseFs:i=new $t}={}){super(x);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?x.normalize(t):this.baseFs.resolve(x.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var CK=Me.root,vo=class extends pi{constructor(t,{baseFs:i=new $t}={}){super(x);this.target=this.pathUtils.resolve(Me.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Me.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(CK,t));if(i.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(CK,this.pathUtils.relative(this.target,t))}};var Sg=class extends pi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var Ze=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),wS=class extends ya{constructor(){super(x)}getExtractHint(){throw Ze()}getRealPath(){throw Ze()}resolve(){throw Ze()}async openPromise(){throw Ze()}openSync(){throw Ze()}async opendirPromise(){throw Ze()}opendirSync(){throw Ze()}async readPromise(){throw Ze()}readSync(){throw Ze()}async writePromise(){throw Ze()}writeSync(){throw Ze()}async closePromise(){throw Ze()}closeSync(){throw Ze()}createWriteStream(){throw Ze()}createReadStream(){throw Ze()}async realpathPromise(){throw Ze()}realpathSync(){throw Ze()}async readdirPromise(){throw Ze()}readdirSync(){throw Ze()}async existsPromise(e){throw Ze()}existsSync(e){throw Ze()}async accessPromise(){throw Ze()}accessSync(){throw Ze()}async statPromise(){throw Ze()}statSync(){throw Ze()}async fstatPromise(e){throw Ze()}fstatSync(e){throw Ze()}async lstatPromise(e){throw Ze()}lstatSync(e){throw Ze()}async fchmodPromise(){throw Ze()}fchmodSync(){throw Ze()}async chmodPromise(){throw Ze()}chmodSync(){throw Ze()}async fchownPromise(){throw Ze()}fchownSync(){throw Ze()}async chownPromise(){throw Ze()}chownSync(){throw Ze()}async mkdirPromise(){throw Ze()}mkdirSync(){throw Ze()}async rmdirPromise(){throw Ze()}rmdirSync(){throw Ze()}async linkPromise(){throw Ze()}linkSync(){throw Ze()}async symlinkPromise(){throw Ze()}symlinkSync(){throw Ze()}async renamePromise(){throw Ze()}renameSync(){throw Ze()}async copyFilePromise(){throw Ze()}copyFileSync(){throw Ze()}async appendFilePromise(){throw Ze()}appendFileSync(){throw Ze()}async writeFilePromise(){throw Ze()}writeFileSync(){throw Ze()}async unlinkPromise(){throw Ze()}unlinkSync(){throw Ze()}async utimesPromise(){throw Ze()}utimesSync(){throw Ze()}async readFilePromise(){throw Ze()}readFileSync(){throw Ze()}async readlinkPromise(){throw Ze()}readlinkSync(){throw Ze()}async truncatePromise(){throw Ze()}truncateSync(){throw Ze()}async ftruncatePromise(e,t){throw Ze()}ftruncateSync(e,t){throw Ze()}watch(){throw Ze()}watchFile(){throw Ze()}unwatchFile(){throw Ze()}},jp=wS;jp.instance=new wS;var vg=class extends pi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var Vge=/^[0-9]+$/,BS=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,Xge=/^([^/]+-)?[a-f0-9]+$/,Br=class extends pi{constructor({baseFs:t=new $t}={}){super(x);this.baseFs=t}static makeVirtualPath(t,i,n){if(x.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!x.basename(i).match(Xge))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=x.relative(x.dirname(t),n).split("/"),a=0;for(;a{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==x.sep);){if(r[t-1]===x.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==x.sep?null:r.slice(0,i)},Kn=class extends xA{constructor({libzip:t,baseFs:i=new $t,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!="function"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new Kn(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>"u"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|Vi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&gn)!==Vi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Ur("read");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&gn)!==Vi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Ur("readSync");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&gn)!==Vi)return typeof i=="string"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Ur("write");let[l,c]=a;return typeof i=="string"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&gn)!==Vi)return typeof i=="string"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Ur("writeSync");let[l,c]=a;return typeof i=="string"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&gn)!==Vi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Ur("close");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&gn)!==Vi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Ur("closeSync");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Me.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Me.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&gn)!==Vi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Ur("fstat");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&gn)!==Vi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Ur("fstatSync");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&gn)!==Vi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Ur("fchmod");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&gn)!==Vi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Ur("fchmodSync");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&gn)!==Vi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Ur("fchown");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&gn)!==Vi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Ur("fchownSync");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&qp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&qp.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&qp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&qp.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>{switch(i){case"utf8":return await this.baseFs.readFilePromise(t,i);default:return await this.baseFs.readFilePromise(t,i)}},async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>{switch(i){case"utf8":return this.baseFs.readFileSync(t,i);default:return this.baseFs.readFileSync(t,i)}},(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&gn)!==Vi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Ur("ftruncate");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&gn)!==Vi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Ur("ftruncateSync");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>iI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>Gp(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath==="/"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath==="/"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i="";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=mK(n,".zip");else for(let o of this.fileExtensions)if(s=mK(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(Me.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new Wr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new Wr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new Wr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new Wr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var Pg=J("util");var sI=J("url"),EK=J("util");var nI=class extends pi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof sI.URL)return(0,sI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return i}throw new Error(`Unsupported path type: ${(0,EK.inspect)(t)}`)}};var IK=J("readline"),Fi=Symbol("kBaseFs"),wa=Symbol("kFd"),PA=Symbol("kClosePromise"),oI=Symbol("kCloseResolve"),aI=Symbol("kCloseReject"),xg=Symbol("kRefs"),Ws=Symbol("kRef"),zs=Symbol("kUnref"),Zge,_ge,$ge,efe,Jp=class{constructor(e,t){this[Zge]=1;this[_ge]=void 0;this[$ge]=void 0;this[efe]=void 0;this[Fi]=t,this[wa]=e}get fd(){return this[wa]}async appendFile(e,t){var i;try{this[Ws](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Fi].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[zs]()}}async chown(e,t){try{return this[Ws](this.chown),await this[Fi].fchownPromise(this.fd,e,t)}finally{this[zs]()}}async chmod(e){try{return this[Ws](this.chmod),await this[Fi].fchmodPromise(this.fd,e)}finally{this[zs]()}}createReadStream(e){return this[Fi].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Fi].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Ws](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Fi].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[zs]()}}async readFile(e){var t;try{this[Ws](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Fi].readFilePromise(this.fd,i)}finally{this[zs]()}}readLines(e){return(0,IK.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Ws](this.stat),await this[Fi].fstatPromise(this.fd,e)}finally{this[zs]()}}async truncate(e){try{return this[Ws](this.truncate),await this[Fi].ftruncatePromise(this.fd,e)}finally{this[zs]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Ws](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Fi].writeFilePromise(this.fd,e,n)}finally{this[zs]()}}async write(...e){try{if(this[Ws](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[zs]()}}async writev(e,t){try{this[Ws](this.writev);let i=0;if(typeof t<"u")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e){let s=await this.write(n);i+=s.bytesWritten}return{buffers:e,bytesWritten:i}}finally{this[zs]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[wa]===-1)return Promise.resolve();if(this[PA])return this[PA];if(this[xg]--,this[xg]===0){let e=this[wa];this[wa]=-1,this[PA]=this[Fi].closePromise(e).finally(()=>{this[PA]=void 0})}else this[PA]=new Promise((e,t)=>{this[oI]=e,this[aI]=t}).finally(()=>{this[PA]=void 0,this[aI]=void 0,this[oI]=void 0});return this[PA]}[(Fi,wa,Zge=xg,_ge=PA,$ge=oI,efe=aI,Ws)](e){if(this[wa]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[xg]++}[zs](){if(this[xg]--,this[xg]===0){let e=this[wa];this[wa]=-1,this[Fi].closePromise(e).then(this[oI],this[aI])}}};var tfe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),yK=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function bS(r,e){e=new nI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Pg.promisify.custom])<"u"&&(s[Pg.promisify.custom]=o[Pg.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of yK){let n=i.replace(/Promise$/,"");if(typeof r[n]>"u")continue;let s=e[i];if(typeof s>"u")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of tfe){let n=i;if(typeof r[n]>"u")continue;let s=e[i];typeof s>"u"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=process.emitWarning;process.emitWarning=()=>{};let n;try{n=r.promises}finally{process.emitWarning=i}if(typeof n<"u"){for(let s of yK){let o=s.replace(/Promise$/,"");if(typeof n[o]>"u")continue;let a=e[s];typeof a>"u"||s!=="open"&&t(n,o,(l,...c)=>l instanceof Jp?l[o].apply(l,c):a.call(e,l,...c))}t(n,"open",async(...s)=>{let o=await e.openPromise(...s);return new Jp(o,e)})}}r.read[Pg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Pg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function AI(r,e){let t=Object.create(r);return bS(t,e),t}var bK=Pe(J("os"));function wK(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var Vs=new Set,QS=null;function BK(){if(QS)return QS;let r=K.toPortablePath(bK.default.tmpdir()),e=O.realpathSync(r);return process.once("exit",()=>{O.rmtempSync()}),QS={tmpdir:r,realTmpdir:e}}var O=Object.assign(new $t,{detachTemp(r){Vs.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=BK();for(;;){let i=wK("xfs-");try{this.mkdirSync(x.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=x.join(t,i);if(Vs.add(n),typeof r>"u")return n;try{return r(n)}finally{if(Vs.has(n)){Vs.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=BK();for(;;){let i=wK("xfs-");try{await this.mkdirPromise(x.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=x.join(t,i);if(Vs.add(n),typeof r>"u")return n;try{return await r(n)}finally{if(Vs.has(n)){Vs.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(Vs.values()).map(async r=>{try{await O.removePromise(r,{maxRetries:0}),Vs.delete(r)}catch{}}))},rmtempSync(){for(let r of Vs)try{O.removeSync(r),Vs.delete(r)}catch{}}});var fk=Pe(TS());var td={};ut(td,{parseResolution:()=>hI,parseShell:()=>uI,parseSyml:()=>yi,stringifyArgument:()=>KS,stringifyArgumentSegment:()=>US,stringifyArithmeticExpression:()=>fI,stringifyCommand:()=>OS,stringifyCommandChain:()=>Fg,stringifyCommandChainThen:()=>MS,stringifyCommandLine:()=>gI,stringifyCommandLineThen:()=>LS,stringifyEnvSegment:()=>cI,stringifyRedirectArgument:()=>zp,stringifyResolution:()=>pI,stringifyShell:()=>Rg,stringifyShellLine:()=>Rg,stringifySyml:()=>ba,stringifyValueArgument:()=>_l});var hU=Pe(fU());function uI(r,e={isGlobPattern:()=>!1}){try{return(0,hU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Rg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${gI(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function gI(r){return`${Fg(r.chain)}${r.then?` ${LS(r.then)}`:""}`}function LS(r){return`${r.type} ${gI(r.line)}`}function Fg(r){return`${OS(r)}${r.then?` ${MS(r.then)}`:""}`}function MS(r){return`${r.type} ${Fg(r.chain)}`}function OS(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>cI(e)).join(" ")} `:""}${r.args.map(e=>KS(e)).join(" ")}`;case"subshell":return`(${Rg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>zp(e)).join(" ")}`:""}`;case"group":return`{ ${Rg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>zp(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>cI(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function cI(r){return`${r.name}=${r.args[0]?_l(r.args[0]):""}`}function KS(r){switch(r.type){case"redirection":return zp(r);case"argument":return _l(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function zp(r){return`${r.subtype} ${r.args.map(e=>_l(e)).join(" ")}`}function _l(r){return r.segments.map(e=>US(e)).join("")}function US(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?'""':i.match(/[(){}<>$|&; \t"']/)?`$'${i.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0")}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${Rg(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue>"u"?typeof r.alternativeValue>"u"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>_l(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>_l(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${fI(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function fI(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(fI(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var CU=Pe(dU());function hI(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,CU.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function pI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var vI=Pe(aH()),gH=Pe(lH()),cde=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,cH=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],SI=class{constructor(e){this.data=e}};function uH(r){return r.match(cde)?r:JSON.stringify(r)}function fH(r){return typeof r>"u"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>fH(r[e])):!1}function $S(r,e,t){if(r===null)return`null `;if(typeof r=="number"||typeof r=="boolean")return`${r.toString()} -`;if(typeof r=="string")return`${lH(r)} +`;if(typeof r=="string")return`${uH(r)} `;if(Array.isArray(r)){if(r.length===0)return`[] `;let i=" ".repeat(e);return` -${r.map(s=>`${i}- ${$S(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let i,n;r instanceof SI?(i=r.data,n=!1):(i=r,n=!0);let s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=AH.indexOf(l),g=AH.indexOf(c);return u===-1&&g===-1?lc?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!uH(i[l])).map((l,c)=>{let u=i[l],g=lH(l),f=$S(u,e+1,!0),h=c>0||t?s:"",p=g.length>1024?`? ${g} +${r.map(s=>`${i}- ${$S(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let i,n;r instanceof SI?(i=r.data,n=!1):(i=r,n=!0);let s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=cH.indexOf(l),g=cH.indexOf(c);return u===-1&&g===-1?lc?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!fH(i[l])).map((l,c)=>{let u=i[l],g=uH(l),f=$S(u,e+1,!0),h=c>0||t?s:"",p=g.length>1024?`? ${g} ${h}:`:`${g}:`,C=f.startsWith(` `)?f:` ${f}`;return`${h}${p}${C}`}).join(e===0?` `:"")||` `;return t?` ${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function ba(r){try{let e=$S(r,0,!1);return e!==` -`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}ba.PreserveOrdering=SI;function lde(r){return r.endsWith(` +`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}ba.PreserveOrdering=SI;function ude(r){return r.endsWith(` `)||(r+=` -`),(0,cH.parse)(r)}var cde=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function ude(r){if(cde.test(r))return lde(r);let e=(0,vI.safeLoad)(r,{schema:vI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function yi(r){return ude(r)}var dz=Pe(fH()),Kw=Pe(Ac());var ud={};ut(ud,{Builtins:()=>hv,Cli:()=>Gn,Command:()=>ve,Option:()=>z,UsageError:()=>Qe,formatMarkdownish:()=>Ti});var tv="",wi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,xI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,CH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var Qe=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} +`),(0,gH.parse)(r)}var gde=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function fde(r){if(gde.test(r))return ude(r);let e=(0,vI.safeLoad)(r,{schema:vI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function yi(r){return fde(r)}var mz=Pe(pH()),Kw=Pe(Ac());var ud={};ut(ud,{Builtins:()=>hv,Cli:()=>Gn,Command:()=>ve,Option:()=>z,UsageError:()=>Qe,formatMarkdownish:()=>Ti});var tv="",wi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,xI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,EH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var Qe=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} ${this.candidates.map(({usage:n})=>`$ ${n}`).join(` `)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: @@ -340,23 +340,23 @@ ${sv(e)}`}},PI=class extends Error{constructor(e,t){super(),this.input=e,this.us ${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` `)} -${sv(e)}`}},sv=r=>`While running ${r.filter(e=>e!==wi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var rd=Symbol("clipanion/isOption");function Xi(r){return{...r,[rd]:!0}}function Po(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function DI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function id(r,e){return e.length===1?new Qe(`${r}: ${DI(e[0],!0)}`):new Qe(`${r}: +${sv(e)}`}},sv=r=>`While running ${r.filter(e=>e!==wi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var rd=Symbol("clipanion/isOption");function Xi(r){return{...r,[rd]:!0}}function Do(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function DI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function id(r,e){return e.length===1?new Qe(`${r}: ${DI(e[0],!0)}`):new Qe(`${r}: ${e.map(t=>` -- ${DI(t)}`).join("")}`)}function nd(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw id(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var ve=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(ls(),hn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw id("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};ve.isOption=rd;ve.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},vH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function zde(r){let e=r.split(` +- ${DI(t)}`).join("")}`)}function nd(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw id(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var ve=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(ls(),hn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw id("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};ve.isOption=rd;ve.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},PH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function Xde(r){let e=r.split(` `),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` `)}function Ti(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` -`),r=zde(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 +`),r=Xde(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 `),r=r.replace(/\n(\n)?\n*/g,"$1"),t&&(r=r.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` `);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,"g")).map((o,a)=>" ".repeat(s)+(a===0?"- ":" ")+o).join(` `)}).join(` `)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r} -`:""}var fv=Pe(J("tty"),1);function pn(r){nv&&console.log(r)}var xH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function PH(){return{nodes:[_i(),_i(),_i()]}}function Vde(r){let e=PH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:f})=>g.to===f)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function Zde(r,{prefix:e=""}={}){if(nv){pn(`${e}Nodes are:`);for(let t=0;tl!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=tCe(a)}if(i.length>0){pn(" Results:");for(let s of i)pn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else pn(" No results");return i}function _de(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,wi)){for(let{to:t}of r.statics[wi])if(t===1)return!0}return!1}function $de(r,e,t){let i=t&&e.length>0?[""]:[],n=DH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let h=g;g=[];for(let p of h){let C=r.nodes[p],y=Object.keys(C.statics);for(let B of Object.keys(C.statics)){let v=y[0];for(let{to:D,reducer:T}of C.statics[v])T==="pushPath"&&(u||l.push(v),g.push(D))}}u=!1}let f=JSON.stringify(l);o.has(f)||(s.push(l),o.add(f))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=_de(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==wi||!f.startsWith("-")&&h.some(({reducer:p})=>p==="pushPath"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===2)continue;let p=sCe(f,c);if(p!==null)for(let C of p)a([...i,C],l)}}return[...s].sort()}function eCe(r,e){let t=DH(r,[...e,wi]);return rCe(e,t.map(({state:i})=>i))}function tCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function rCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(f=>f.some(h=>g.options.find(p=>p.name===h))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:f})=>!f).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=iCe(c);if(u.length>1)throw new PI(r,u.map(g=>g.candidateUsage));return u[0]}function iCe(r){let e=[],t=[];for(let i of r)i.selectedIndex===-1?t.push(i):e.push(i);return t.length>0&&e.push({...xH,path:kH(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function kH(r,e,...t){return e===void 0?Array.from(r):kH(r.filter((i,n)=>i===e[n]),...t)}function _i(){return{dynamics:[],shortcuts:[],statics:{}}}function RH(r){return r===1||r===2}function cv(r,e=0){return{to:RH(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function nCe(r,e=0){let t=_i();for(let[i,n]of r.dynamics)t.dynamics.push([i,cv(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(cv(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>cv(s,e));return t}function Bi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function Gg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Qa(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function RI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function sCe(r,e){let t=Array.isArray(r)?NI[r[0]]:NI[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var NI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&CH.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(iv);return!r.ignoreOptions&&!!n&&xI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&rv.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&xI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!xI.test(e)};NI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var uv={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(iv);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Hn})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(rv);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===wi?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Hn=Symbol(),gv=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Hn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Hn?this.arity.extra.push(e):this.arity.extra!==Hn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Hn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let h=0;h`:`[${f}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Hn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=PH(),t=0,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=Xs(e,_i()),Qa(e,0,tv,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let f=Xs(e,_i());Gg(e,l,f),this.registerOptions(e,f),l=f}for(let f=0;f0||!this.arity.proxy){let f=Xs(e,_i());Bi(e,l,"isHelp",f,["useHelp",this.cliIndex]),Qa(e,f,wi,1,["setSelectedIndex",-1]),this.registerOptions(e,l)}this.arity.leading.length>0&&Qa(e,l,wi,2,["setError","Not enough positional arguments"]);let c=l;for(let f=0;f0||f+1!==this.arity.leading.length)&&Qa(e,h,wi,2,["setError","Not enough positional arguments"]),Bi(e,c,"isNotOptionLike",h,"pushPositional"),c=h}let u=c;if(this.arity.extra===Hn||this.arity.extra.length>0){let f=Xs(e,_i());if(Gg(e,c,f),this.arity.extra===Hn){let h=Xs(e,_i());this.arity.proxy||this.registerOptions(e,h),Bi(e,c,s,h,"pushExtraNoLimits"),Bi(e,h,s,h,"pushExtraNoLimits"),Gg(e,h,f)}else for(let h=0;h0&&Qa(e,u,wi,2,["setError","Not enough positional arguments"]);let g=u;for(let f=0;fo.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Bi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Bi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=Xs(e,_i());for(let o of i.names)Bi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&eeCe(i,n),suggest:(n,s)=>$de(i,n,s)}}};var qg=class extends ve{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new qg(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: +`:""}var fv=Pe(J("tty"),1);function pn(r){nv&&console.log(r)}var DH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function kH(){return{nodes:[_i(),_i(),_i()]}}function Zde(r){let e=kH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:f})=>g.to===f)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function $de(r,{prefix:e=""}={}){if(nv){pn(`${e}Nodes are:`);for(let t=0;tl!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=iCe(a)}if(i.length>0){pn(" Results:");for(let s of i)pn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else pn(" No results");return i}function eCe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,wi)){for(let{to:t}of r.statics[wi])if(t===1)return!0}return!1}function tCe(r,e,t){let i=t&&e.length>0?[""]:[],n=RH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let h=g;g=[];for(let p of h){let C=r.nodes[p],y=Object.keys(C.statics);for(let B of Object.keys(C.statics)){let v=y[0];for(let{to:D,reducer:T}of C.statics[v])T==="pushPath"&&(u||l.push(v),g.push(D))}}u=!1}let f=JSON.stringify(l);o.has(f)||(s.push(l),o.add(f))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=eCe(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==wi||!f.startsWith("-")&&h.some(({reducer:p})=>p==="pushPath"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===2)continue;let p=aCe(f,c);if(p!==null)for(let C of p)a([...i,C],l)}}return[...s].sort()}function rCe(r,e){let t=RH(r,[...e,wi]);return nCe(e,t.map(({state:i})=>i))}function iCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function nCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(f=>f.some(h=>g.options.find(p=>p.name===h))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:f})=>!f).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=sCe(c);if(u.length>1)throw new PI(r,u.map(g=>g.candidateUsage));return u[0]}function sCe(r){let e=[],t=[];for(let i of r)i.selectedIndex===-1?t.push(i):e.push(i);return t.length>0&&e.push({...DH,path:FH(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function FH(r,e,...t){return e===void 0?Array.from(r):FH(r.filter((i,n)=>i===e[n]),...t)}function _i(){return{dynamics:[],shortcuts:[],statics:{}}}function NH(r){return r===1||r===2}function cv(r,e=0){return{to:NH(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function oCe(r,e=0){let t=_i();for(let[i,n]of r.dynamics)t.dynamics.push([i,cv(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(cv(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>cv(s,e));return t}function Bi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function Gg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Qa(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function RI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function aCe(r,e){let t=Array.isArray(r)?NI[r[0]]:NI[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var NI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&EH.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(iv);return!r.ignoreOptions&&!!n&&xI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&rv.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&xI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!xI.test(e)};NI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var uv={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(iv);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Hn})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(rv);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===wi?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Hn=Symbol(),gv=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Hn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Hn?this.arity.extra.push(e):this.arity.extra!==Hn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Hn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let h=0;h`:`[${f}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Hn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=kH(),t=0,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=Xs(e,_i()),Qa(e,0,tv,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let f=Xs(e,_i());Gg(e,l,f),this.registerOptions(e,f),l=f}for(let f=0;f0||!this.arity.proxy){let f=Xs(e,_i());Bi(e,l,"isHelp",f,["useHelp",this.cliIndex]),Qa(e,f,wi,1,["setSelectedIndex",-1]),this.registerOptions(e,l)}this.arity.leading.length>0&&Qa(e,l,wi,2,["setError","Not enough positional arguments"]);let c=l;for(let f=0;f0||f+1!==this.arity.leading.length)&&Qa(e,h,wi,2,["setError","Not enough positional arguments"]),Bi(e,c,"isNotOptionLike",h,"pushPositional"),c=h}let u=c;if(this.arity.extra===Hn||this.arity.extra.length>0){let f=Xs(e,_i());if(Gg(e,c,f),this.arity.extra===Hn){let h=Xs(e,_i());this.arity.proxy||this.registerOptions(e,h),Bi(e,c,s,h,"pushExtraNoLimits"),Bi(e,h,s,h,"pushExtraNoLimits"),Gg(e,h,f)}else for(let h=0;h0&&Qa(e,u,wi,2,["setError","Not enough positional arguments"]);let g=u;for(let f=0;fo.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Bi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Bi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=Xs(e,_i());for(let o of i.names)Bi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&erCe(i,n),suggest:(n,s)=>tCe(i,n,s)}}};var qg=class extends ve{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new qg(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: `),this.context.stdout.write(` `);let t=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${t++}. `.padStart(5)}));this.context.stdout.write(` `),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. -`)}}};var FH=Symbol("clipanion/errorCommand");function oCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var Gn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new jg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new Gn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[ve.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[FH]=a,l}}break}}async run(e,t){var i;let n,s={...Gn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?aCe(s):TH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ti(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ti(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ti(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([f,h])=>[Ti(f,{format:this.format(e),paragraphs:!1}),h.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(h=>h.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof ve?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ti(l,{format:this.format(t),paragraphs:!1}).replace(/^./,h=>h.toUpperCase()),a+=` +`)}}};var TH=Symbol("clipanion/errorCommand");function ACe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var Gn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new jg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new Gn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[ve.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[TH]=a,l}}break}}async run(e,t){var i;let n,s={...Gn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?lCe(s):MH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ti(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ti(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ti(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([f,h])=>[Ti(f,{format:this.format(e),paragraphs:!1}),h.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(h=>h.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof ve?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ti(l,{format:this.format(t),paragraphs:!1}).replace(/^./,h=>h.toUpperCase()),a+=` `),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")} `,a+=` `);let{usage:g,options:f}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g} @@ -382,99 +382,99 @@ ${e.map(t=>` `;for(let{commandClass:C,usage:y}of h){let B=C.usage.description||"undocumented";a+=` `,a+=` ${this.format(t).bold(y)} `,a+=` ${Ti(B,{format:this.format(t),paragraphs:!1})}`}}a+=` -`,a+=Ti("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[FH])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} +`,a+=Ti("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[TH])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} `;let l=e.clipanion;return typeof l<"u"?l.type==="usage"&&(o+=` `,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} -`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:Gn.defaultContext.colorDepth>1)?lv:vH}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};Gn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():oCe()};var NH;function aCe(r){let e=NH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return TH;let{AsyncLocalStorage:t}=J("async_hooks");e=NH=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function TH(r){return r()}var hv={};ut(hv,{DefinitionsCommand:()=>Ad,HelpCommand:()=>ld,VersionCommand:()=>cd});var Ad=class extends ve{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:Gn.defaultContext.colorDepth>1)?lv:PH}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};Gn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():ACe()};var LH;function lCe(r){let e=LH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return MH;let{AsyncLocalStorage:t}=J("async_hooks");e=LH=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function MH(r){return r()}var hv={};ut(hv,{DefinitionsCommand:()=>Ad,HelpCommand:()=>ld,VersionCommand:()=>cd});var Ad=class extends ve{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} `)}};Ad.paths=[["--clipanion=definitions"]];var ld=class extends ve{async execute(){this.context.stdout.write(this.cli.usage())}};ld.paths=[["-h"],["--help"]];var cd=class extends ve{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} -`)}};cd.paths=[["-v"],["--version"]];var z={};ut(z,{Array:()=>LH,Boolean:()=>MH,Counter:()=>OH,Proxy:()=>KH,Rest:()=>UH,String:()=>HH,applyValidator:()=>nd,cleanValidationError:()=>DI,formatError:()=>id,isOptionSymbol:()=>rd,makeCommandOption:()=>Xi,rerouteArguments:()=>Po});function LH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:f,value:h}of u.options)!a.has(f)||(g=g!=null?g:[],g.push(h));return g}})}function MH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u=f);return u}})}function OH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u!=null||(u=0),f?u+=1:u=0);return u}})}function KH(r={}){return Xi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function UH(r={}){return Xi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&oo)}})}function ACe(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,f=i;for(let{name:h,value:p}of u.options)!a.has(h)||(g=h,f=p);return typeof f=="string"?nd(g!=null?g:c,f,n.validator):f}})}function lCe(r={}){let{required:e=!0}=r;return Xi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o(se[se.UNNAMED=0]="UNNAMED",se[se.EXCEPTION=1]="EXCEPTION",se[se.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",se[se.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",se[se.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",se[se.BUILD_DISABLED=5]="BUILD_DISABLED",se[se.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",se[se.MUST_BUILD=7]="MUST_BUILD",se[se.MUST_REBUILD=8]="MUST_REBUILD",se[se.BUILD_FAILED=9]="BUILD_FAILED",se[se.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",se[se.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",se[se.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",se[se.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",se[se.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",se[se.REMOTE_INVALID=15]="REMOTE_INVALID",se[se.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",se[se.RESOLUTION_PACK=17]="RESOLUTION_PACK",se[se.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",se[se.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",se[se.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",se[se.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",se[se.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",se[se.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",se[se.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",se[se.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",se[se.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",se[se.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",se[se.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",se[se.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",se[se.FETCH_FAILED=30]="FETCH_FAILED",se[se.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",se[se.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",se[se.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",se[se.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",se[se.NETWORK_ERROR=35]="NETWORK_ERROR",se[se.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",se[se.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",se[se.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",se[se.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",se[se.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",se[se.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",se[se.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",se[se.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",se[se.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",se[se.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",se[se.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",se[se.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",se[se.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",se[se.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",se[se.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",se[se.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",se[se.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",se[se.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",se[se.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",se[se.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",se[se.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",se[se.INVALID_MANIFEST=57]="INVALID_MANIFEST",se[se.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",se[se.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",se[se.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",se[se.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",se[se.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",se[se.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",se[se.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",se[se.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",se[se.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",se[se.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",se[se.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",se[se.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",se[se.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",se[se.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",se[se.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",se[se.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",se[se.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",se[se.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",se[se.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",se[se.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",se[se.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",se))(Ct||{});function NA(r){return`YN${r.toString(10).padStart(4,"0")}`}function LI(r){let e=Number(r.slice(2));if(typeof Ct[e]>"u")throw new Error(`Unknown message name: "${r}"`);return e}var P={};ut(P,{areDescriptorsEqual:()=>b8,areIdentsEqual:()=>sC,areLocatorsEqual:()=>oC,areVirtualPackagesEquivalent:()=>NSe,bindDescriptor:()=>RSe,bindLocator:()=>FSe,convertDescriptorToLocator:()=>Sw,convertLocatorToDescriptor:()=>HD,convertPackageToLocator:()=>kSe,convertToIdent:()=>DSe,convertToManifestRange:()=>MSe,copyPackage:()=>rC,devirtualizeDescriptor:()=>iC,devirtualizeLocator:()=>nC,getIdentVendorPath:()=>qD,isPackageCompatible:()=>kw,isVirtualDescriptor:()=>WA,isVirtualLocator:()=>jo,makeDescriptor:()=>_t,makeIdent:()=>qo,makeLocator:()=>nn,makeRange:()=>xw,parseDescriptor:()=>zA,parseFileStyleRange:()=>TSe,parseIdent:()=>tn,parseLocator:()=>Dc,parseRange:()=>vf,prettyDependent:()=>nP,prettyDescriptor:()=>tr,prettyIdent:()=>Ai,prettyLocator:()=>mt,prettyLocatorNoColors:()=>jD,prettyRange:()=>Dw,prettyReference:()=>AC,prettyResolution:()=>iP,prettyWorkspace:()=>lC,renamePackage:()=>tC,slugifyIdent:()=>UD,slugifyLocator:()=>xf,sortDescriptors:()=>Pf,stringifyDescriptor:()=>Sn,stringifyIdent:()=>Mt,stringifyLocator:()=>Es,tryParseDescriptor:()=>aC,tryParseIdent:()=>Q8,tryParseLocator:()=>vw,virtualizeDescriptor:()=>GD,virtualizePackage:()=>YD});var Sf=Pe(J("querystring")),y8=Pe(Xr()),w8=Pe(dJ());var ee={};ut(ee,{LogLevel:()=>Xy,Style:()=>_x,Type:()=>Ue,addLogFilterSupport:()=>Xd,applyColor:()=>Qn,applyHyperlink:()=>If,applyStyle:()=>Vy,json:()=>Bc,jsonOrPretty:()=>g0e,mark:()=>rP,pretty:()=>$e,prettyField:()=>Ho,prettyList:()=>tP,supportsColor:()=>zy,supportsHyperlinks:()=>eP,tuple:()=>no});var Vd=Pe(wx()),zd=Pe(Ac());var f3=Pe(Bn()),h3=Pe(r3());var Ie={};ut(Ie,{AsyncActions:()=>Gx,BufferStream:()=>Hx,CachingStrategy:()=>u3,DefaultStream:()=>Yx,allSettledSafe:()=>io,assertNever:()=>qx,bufferStream:()=>Cf,buildIgnorePattern:()=>A0e,convertMapsToIndexableObjects:()=>Jy,dynamicRequire:()=>mf,escapeRegExp:()=>r0e,getArrayWithDefault:()=>hf,getFactoryWithDefault:()=>Ta,getMapWithDefault:()=>pf,getSetWithDefault:()=>wc,isIndexableObject:()=>Ux,isPathLike:()=>l0e,isTaggedYarnVersion:()=>t0e,mapAndFilter:()=>Uo,mapAndFind:()=>Jd,overrideType:()=>i0e,parseBoolean:()=>Wd,parseOptionalBoolean:()=>g3,prettifyAsyncErrors:()=>df,prettifySyncErrors:()=>Jx,releaseAfterUseAsync:()=>s0e,replaceEnvVariables:()=>Wx,sortMap:()=>bn,tryParseOptionalBoolean:()=>zx,validateEnum:()=>n0e});var n3=Pe(Bn()),s3=Pe(Jg()),o3=Pe(Xr()),jx=J("stream");function t0e(r){return!!(o3.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function r0e(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function i0e(r){}function qx(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function n0e(r,e){let t=Object.values(r);if(!t.includes(e))throw new Qe(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Uo(r,e){let t=[];for(let i of r){let n=e(i);n!==a3&&t.push(n)}return t}var a3=Symbol();Uo.skip=a3;function Jd(r,e){for(let t of r){let i=e(t);if(i!==A3)return i}}var A3=Symbol();Jd.skip=A3;function Ux(r){return typeof r=="object"&&r!==null}async function io(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function Jy(r){if(r instanceof Map&&(r=Object.fromEntries(r)),Ux(r))for(let e of Object.keys(r)){let t=r[e];Ux(t)&&(r[e]=Jy(t))}return r}function Ta(r,e,t){let i=r.get(e);return typeof i>"u"&&r.set(e,i=t()),i}function hf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=[]),t}function wc(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Set),t}function pf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Map),t}async function s0e(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function df(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function Jx(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Cf(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var Hx=class extends jx.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function o0e(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var Gx=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,s3.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>"u"&&this.deferred.set(e,i=o0e());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},Yx=class extends jx.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},qd=eval("require");function l3(r){return qd(K.fromPortablePath(r))}function c3(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=qd.cache[physicalPath];delete qd.cache[physicalPath];let result;try{result=l3(physicalPath);let freshCacheEntry=qd.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{qd.cache[physicalPath]=currentCacheEntry}return result}var i3=new Map;function a0e(r){let e=i3.get(r),t=O.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=c3(r);return i3.set(r,{mtime:t.mtimeMs,instance:i}),i}var u3=(i=>(i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node",i))(u3||{});function mf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return c3(r);case 1:return a0e(r);case 2:return l3(r);default:throw new Error("Unsupported caching strategy")}}function bn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function A0e(r){return r.length===0?null:r.map(e=>`(${n3.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Wx(r,{env:e}){let t=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new Qe(`Environment variable not found (${n})`)})}function Wd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function g3(r){return typeof r>"u"?r:Wd(r)}function zx(r){try{return g3(r)}catch{return null}}function l0e(r){return!!(K.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Ef=(t=>(t.HARD="HARD",t.SOFT="SOFT",t))(Ef||{}),Vx=(i=>(i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta",i))(Vx||{}),Xx=(i=>(i.Inactive="inactive",i.Redundant="redundant",i.Active="active",i))(Xx||{});var Ue={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},_x=(e=>(e[e.BOLD=2]="BOLD",e))(_x||{}),$x=zd.default.GITHUB_ACTIONS?{level:2}:Vd.default.supportsColor?{level:Vd.default.supportsColor.level}:{level:0},zy=$x.level!==0,eP=zy&&!zd.default.GITHUB_ACTIONS&&!zd.default.CIRCLE&&!zd.default.GITLAB,Zx=new Vd.default.Instance($x),c0e=new Map([[Ue.NO_HINT,null],[Ue.NULL,["#a853b5",129]],[Ue.SCOPE,["#d75f00",166]],[Ue.NAME,["#d7875f",173]],[Ue.RANGE,["#00afaf",37]],[Ue.REFERENCE,["#87afff",111]],[Ue.NUMBER,["#ffd700",220]],[Ue.PATH,["#d75fd7",170]],[Ue.URL,["#d75fd7",170]],[Ue.ADDED,["#5faf00",70]],[Ue.REMOVED,["#d70000",160]],[Ue.CODE,["#87afff",111]],[Ue.SIZE,["#ffd700",220]]]),ms=r=>r,Wy={[Ue.NUMBER]:ms({pretty:(r,e)=>Qn(r,`${e}`,Ue.NUMBER),json:r=>r}),[Ue.IDENT]:ms({pretty:(r,e)=>Ai(r,e),json:r=>Mt(r)}),[Ue.LOCATOR]:ms({pretty:(r,e)=>mt(r,e),json:r=>Es(r)}),[Ue.DESCRIPTOR]:ms({pretty:(r,e)=>tr(r,e),json:r=>Sn(r)}),[Ue.RESOLUTION]:ms({pretty:(r,{descriptor:e,locator:t})=>iP(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:Sn(r),locator:e!==null?Es(e):null})}),[Ue.DEPENDENT]:ms({pretty:(r,{locator:e,descriptor:t})=>nP(r,e,t),json:({locator:r,descriptor:e})=>({locator:Es(r),descriptor:Sn(e)})}),[Ue.PACKAGE_EXTENSION]:ms({pretty:(r,e)=>{switch(e.type){case"Dependency":return`${Ai(r,e.parentDescriptor)} \u27A4 ${Qn(r,"dependencies",Ue.CODE)} \u27A4 ${Ai(r,e.descriptor)}`;case"PeerDependency":return`${Ai(r,e.parentDescriptor)} \u27A4 ${Qn(r,"peerDependencies",Ue.CODE)} \u27A4 ${Ai(r,e.descriptor)}`;case"PeerDependencyMeta":return`${Ai(r,e.parentDescriptor)} \u27A4 ${Qn(r,"peerDependenciesMeta",Ue.CODE)} \u27A4 ${Ai(r,tn(e.selector))} \u27A4 ${Qn(r,e.key,Ue.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case"Dependency":return`${Mt(r.parentDescriptor)} > ${Mt(r.descriptor)}`;case"PeerDependency":return`${Mt(r.parentDescriptor)} >> ${Mt(r.descriptor)}`;case"PeerDependencyMeta":return`${Mt(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ue.SETTING]:ms({pretty:(r,e)=>(r.get(e),If(r,Qn(r,e,Ue.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ue.DURATION]:ms({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ue.SIZE]:ms({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return Qn(r,`${s} ${t[i-1]}`,Ue.NUMBER)},json:r=>r}),[Ue.PATH]:ms({pretty:(r,e)=>Qn(r,K.fromPortablePath(e),Ue.PATH),json:r=>K.fromPortablePath(r)}),[Ue.MARKDOWN]:ms({pretty:(r,{text:e,format:t,paragraphs:i})=>Ti(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function no(r,e){return[e,r]}function Vy(r,e,t){return r.get("enableColors")&&t&2&&(e=Vd.default.bold(e)),e}function Qn(r,e,t){if(!r.get("enableColors"))return e;let i=c0e.get(t);if(i===null)return e;let n=typeof i>"u"?t:$x.level>=3?i[0]:i[1],s=typeof n=="number"?Zx.ansi256(n):n.startsWith("#")?Zx.hex(n):Zx[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var u0e=!!process.env.KONSOLE_VERSION;function If(r,e,t){return r.get("enableHyperlinks")?u0e?`\x1B]8;;${t}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${t}\x07${e}\x1B]8;;\x07`:e}function $e(r,e,t){if(e===null)return Qn(r,"null",Ue.NULL);if(Object.prototype.hasOwnProperty.call(Wy,t))return Wy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Qn(r,e,t)}function tP(r,e,t,{separator:i=", "}={}){return[...e].map(n=>$e(r,n,t)).join(i)}function Bc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Wy,e))return Wy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function g0e(r,e,[t,i]){return r?Bc(t,i):$e(e,t,i)}function rP(r){return{Check:Qn(r,"\u2713","green"),Cross:Qn(r,"\u2718","red"),Question:Qn(r,"?","cyan")}}function Ho(r,{label:e,value:[t,i]}){return`${$e(r,e,Ue.CODE)}: ${$e(r,t,i)}`}var Xy=(n=>(n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard",n))(Xy||{});function Xd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let f=g.get("level");if(typeof f>"u")continue;let h=g.get("code");typeof h<"u"&&i.set(h,f);let p=g.get("text");typeof p<"u"&&n.set(p,f);let C=g.get("pattern");typeof C<"u"&&s.push([f3.default.matcher(C,{contains:!0}),f])}s.reverse();let o=(g,f,h)=>{if(g===null||g===0)return h;let p=n.size>0||s.length>0?(0,h3.default)(f):f;if(n.size>0){let C=n.get(p);if(typeof C<"u")return C!=null?C:h}if(s.length>0){for(let[C,y]of s)if(C(p))return y!=null?y:h}if(i.size>0){let C=i.get(NA(g));if(typeof C<"u")return C!=null?C:h}return h},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,f,h,p){switch(o(f,h,p)){case"info":a.call(g,f,h);break;case"warning":l.call(g,f!=null?f:0,h);break;case"error":c.call(g,f!=null?f:0,h);break}};r.reportInfo=function(...g){return u(this,...g,"info")},r.reportWarning=function(...g){return u(this,...g,"warning")},r.reportError=function(...g){return u(this,...g,"error")}}var li={};ut(li,{checksumFile:()=>bw,checksumPattern:()=>Qw,makeHash:()=>rn});var Bw=J("crypto"),KD=Pe(OD());function rn(...r){let e=(0,Bw.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function bw(r,{baseFs:e,algorithm:t}={baseFs:O,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,Bw.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function Qw(r,{cwd:e}){let i=(await(0,KD.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,KD.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await O.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await O.readlinkPromise(c))):u.isFile()&&l.push(await O.readFilePromise(c)),l.join("\0")})),o=(0,Bw.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var eC="virtual:",xSe=5,B8=/(os|cpu|libc)=([a-z0-9_-]+)/,PSe=(0,w8.makeParser)(B8);function qo(r,e){if(r!=null&&r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:rn(r,e),scope:r,name:e}}function _t(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:rn(r.identHash,e),range:e}}function nn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:rn(r.identHash,e),reference:e}}function DSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function Sw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function HD(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function kSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function tC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function rC(r){return tC(r,r)}function GD(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return _t(r,`virtual:${e}#${r.range}`)}function YD(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return tC(r,nn(r,`virtual:${e}#${r.reference}`))}function WA(r){return r.range.startsWith(eC)}function jo(r){return r.reference.startsWith(eC)}function iC(r){if(!WA(r))throw new Error("Not a virtual descriptor");return _t(r,r.range.replace(/^[^#]*#/,""))}function nC(r){if(!jo(r))throw new Error("Not a virtual descriptor");return nn(r,r.reference.replace(/^[^#]*#/,""))}function RSe(r,e){return r.range.includes("::")?r:_t(r,`${r.range}::${Sf.default.stringify(e)}`)}function FSe(r,e){return r.reference.includes("::")?r:nn(r,`${r.reference}::${Sf.default.stringify(e)}`)}function sC(r,e){return r.identHash===e.identHash}function b8(r,e){return r.descriptorHash===e.descriptorHash}function oC(r,e){return r.locatorHash===e.locatorHash}function NSe(r,e){if(!jo(r))throw new Error("Invalid package type");if(!jo(e))throw new Error("Invalid package type");if(!sC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!b8(t,i))return!1}return!0}function tn(r){let e=Q8(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function Q8(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return qo(typeof t<"u"?t:null,i)}function zA(r,e=!1){let t=aC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function aC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return _t(qo(o,n),a)}function Dc(r,e=!1){let t=vw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function vw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return nn(qo(o,n),a)}function vf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<"u"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<"u"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<"u"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Sf.default.parse(s):s,a=typeof t[4]<"u"?Sf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function TSe(r,{protocol:e}){let{selector:t,params:i}=vf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Dc(i.locator,!0),path:t}}function I8(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function LSe(r){return r===null?!1:Object.entries(r).length>0}function xw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${I8(e)}#`),n+=I8(t),LSe(i)&&(n+=`::${Sf.default.stringify(i)}`),n}function MSe(r){let{params:e,protocol:t,source:i,selector:n}=vf(r);for(let s in e)s.startsWith("__")&&delete e[s];return xw({protocol:t,source:i,params:e,selector:n})}function Mt(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function Sn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function Es(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function UD(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function xf(r){let{protocol:e,selector:t}=vf(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=y8.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${UD(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${UD(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Ur(a)}function Ai(r,e){return e.scope?`${$e(r,`@${e.scope}/`,Ue.SCOPE)}${$e(r,e.name,Ue.NAME)}`:`${$e(r,e.name,Ue.NAME)}`}function Pw(r){if(r.startsWith(eC)){let e=Pw(r.substring(r.indexOf("#")+1)),t=r.substring(eC.length,eC.length+xSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function Dw(r,e){return`${$e(r,Pw(e),Ue.RANGE)}`}function tr(r,e){return`${Ai(r,e)}${$e(r,"@",Ue.RANGE)}${Dw(r,e.range)}`}function AC(r,e){return`${$e(r,Pw(e),Ue.REFERENCE)}`}function mt(r,e){return`${Ai(r,e)}${$e(r,"@",Ue.REFERENCE)}${AC(r,e.reference)}`}function jD(r){return`${Mt(r)}@${Pw(r.reference)}`}function Pf(r){return bn(r,[e=>Mt(e),e=>e.range])}function lC(r,e){return Ai(r,e.locator)}function iP(r,e,t){let i=WA(e)?iC(e):e;return t===null?`${tr(r,i)} \u2192 ${rP(r).Cross}`:i.identHash===t.identHash?`${tr(r,i)} \u2192 ${AC(r,t.reference)}`:`${tr(r,i)} \u2192 ${mt(r,t)}`}function nP(r,e,t){return t===null?`${mt(r,e)}`:`${mt(r,e)} (via ${Dw(r,t.range)})`}function qD(r){return`node_modules/${Mt(r)}`}function kw(r,e){return r.conditions?PSe(r.conditions,t=>{let[,i,n]=t.match(B8),s=e[i];return s?s.includes(n):!0}):!0}var S8={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Mt(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Mt(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(_t(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=lC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var F8=Pe(Xr());var cC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(cC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(cC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(cC.protocol.length));return{...e,version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},jr=cC;jr.protocol="workspace:";var vt={};ut(vt,{SemVer:()=>P8.SemVer,clean:()=>KSe,satisfiesWithPrereleases:()=>kc,validRange:()=>so});var Rw=Pe(Xr()),P8=Pe(Xr()),v8=new Map;function kc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=v8.get(i);if(typeof n>"u")try{n=new Rw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{v8.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Rw.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var x8=new Map;function so(r){if(r.indexOf(":")!==-1)return null;let e=x8.get(r);if(typeof e<"u")return e;try{e=new Rw.default.Range(r)}catch{e=null}return x8.set(r,e),e}var OSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function KSe(r){let e=OSe.exec(r);return e?e[1]:null}var VA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new $t}={}){let i=x.join(e,"package.json");try{return await VA.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await VA.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new $t}={}){let i=new VA;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new VA;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(k8(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=D8(e)}async loadFile(e,{baseFs:t=new $t}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(k8(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=D8(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=tn(e.name)}catch{i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=sn(e.main):this.main=null,typeof e.module=="string"?this.module=sn(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=sn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(sn(s),typeof o=="string"?sn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")this.name!==null?this.bin.set(this.name.name,sn(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=tn(s);this.bin.set(a.name,sn(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=_t(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=_t(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(jr.protocol)&&!so(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=_t(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=zA(s),l=this.ensureDependencyMeta(a),c=Fw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Fw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Fw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=zA(s),l=this.ensurePeerDependencyMeta(a),c=Fw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:hI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=sn(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=sn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=sn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(sn(s),typeof o=="string"?sn(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,sn(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,sn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(sn(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=_t(a,o);this.dependencies.set(l.identHash,l);let c=_t(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(JD("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(JD("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(JD("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return VA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return VA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!F8.default.valid(e.range))throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Mt(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Mt(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Mt(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Mt(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Pf(i).map(o=>({[Mt(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Pf(n).map(o=>({[Mt(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Pf(this.devDependencies.values()).map(o=>({[Mt(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Pf(this.peerDependencies.values()).map(o=>({[Mt(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of bn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of bn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?Sn(_t(tn(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...bn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[pI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},ot=VA;ot.fileName="package.json",ot.allDependencies=["dependencies","devDependencies","peerDependencies"],ot.hardDependencies=["dependencies","devDependencies"];function D8(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function k8(r){return r.charCodeAt(0)===65279?r.slice(1):r}function sn(r){return r.replace(/\\/g,"/")}function Fw(r,{yamlCompatibilityMode:e}){return e?zx(r):typeof r>"u"||typeof r=="boolean"?r:null}function R8(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2===0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function JD(r,e){return e.length===1?R8(r,e[0]):`(${e.map(t=>R8(r,t)).join(" | ")})`}var cz=Pe(lz()),uz=J("stream"),gz=J("string_decoder");var Rve=15,at=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function Fve(r){return typeof r.reportCode<"u"}var vi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t{t=o}),n=(0,cz.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/Rve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){Fve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new uz.PassThrough,i=new gz.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var Df=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new at(11,`${mt(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var kf=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${tr(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${mt(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var fz=Pe(Xr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Nw=class{supportsDescriptor(e,t){return!!(so(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(fz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return tC(i,e)}forwardDescriptor(e,t){return _t(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return nn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return xf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=Br.makeVirtualPath(s,o,n),l=new Qo(a,{baseFs:t.packageFs,pathUtils:x});return{...t,packageFs:l}}};var Nf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Nf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Nf.protocol)}supportsDescriptor(e,t){return Nf.isVirtualDescriptor(e)}supportsLocator(e,t){return Nf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},fC=Nf;fC.protocol="virtual:";var Tf=class{supports(e){return!!e.reference.startsWith(jr.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new qt(i),prefixPath:Me.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(jr.protocol.length))}};var Tw={};ut(Tw,{getDefaultGlobalFolder:()=>XD,getHomeFolder:()=>hC,isFolderInside:()=>ZD});var VD=J("os");function XD(){if(process.platform==="win32"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,VD.homedir)(),"AppData","Local"));return x.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return x.resolve(r,"yarn/berry")}return x.resolve(hC(),".yarn/berry")}function hC(){return K.toPortablePath((0,VD.homedir)()||"/usr/local/share")}function ZD(r,e){let t=x.relative(e,r);return t&&!t.startsWith("..")&&!x.isAbsolute(t)}var ws={};ut(ws,{availableParallelism:()=>ek,builtinModules:()=>_D,getArchitecture:()=>pC,getArchitectureName:()=>Lve,getArchitectureSet:()=>$D,openUrl:()=>Nve});var pz=Pe(J("module")),Ow=Pe(J("os"));var hz=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Nve=typeof hz<"u"?async r=>{try{return await tk(hz,[r],{cwd:x.cwd()}),!0}catch{return!1}}:void 0;function _D(){return new Set(pz.default.builtinModules||Object.keys(process.binding("natives")))}function Tve(){var i,n,s,o;if(process.platform==="win32")return null;let e=(s=((n=(i=process.report)==null?void 0:i.getReport())!=null?n:{}).sharedObjects)!=null?s:[],t=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(o=Jd(e,a=>{let l=a.match(t);if(!l)return Jd.skip;if(l[1])return"glibc";if(l[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?o:null}var Lw,Mw;function pC(){return Lw=Lw!=null?Lw:{os:process.platform,cpu:process.arch,libc:Tve()}}function Lve(r=pC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function $D(){let r=pC();return Mw=Mw!=null?Mw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}function ek(){return"availableParallelism"in Ow.default?Ow.default.availableParallelism():Math.max(1,Ow.default.cpus().length)}var Mve=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),Gw="yarn_",sk=".yarnrc.yml",ok="yarn.lock",Ove="********",ak=(u=>(u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP",u))(ak||{}),xi=Ue,rk={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:XD()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:Xl},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:ok},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Hw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:zy,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:eP,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Kw.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Kw.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Kw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Xy),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};function Ak(r,e,t,i,n){if(i.isArray||i.type==="ANY"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>ik(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>ik(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return ik(r,e,t,i,n)}function ik(r,e,t,i,n){var a;switch(i.type){case"ANY":return t;case"SHAPE":return Kve(r,e,t,i,n);case"MAP":return Uve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type==="BOOLEAN"&&typeof t!="string")return Wd(t);if(typeof t!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof t}`);let l=Wx(t,{env:process.env});switch(i.type){case"ABSOLUTE_PATH":return x.resolve(n,K.toPortablePath(l));case"LOCATOR_LOOSE":return Dc(l,!1);case"NUMBER":return parseInt(l);case"LOCATOR":return Dc(l);case"BOOLEAN":return Wd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function Kve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new Qe(`Object configuration settings "${e}" must be an object`);let s=lk(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new Qe(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,Ak(r,l,a,i.properties[o],n))}return s}function Uve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new Qe(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,Ak(r,c,a,u,n))}return s}function lk(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,lk(r,s));return i}break;case"MAP":return e.isArray&&!t?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:r.projectCwd===null?x.isAbsolute(e.default)?x.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>x.resolve(r.projectCwd,i)):x.resolve(r.projectCwd,e.default);default:return e.default}}function Uw(r,e,t){if(e.type==="SECRET"&&typeof r=="string"&&t.hideSecrets)return Ove;if(e.type==="ABSOLUTE_PATH"&&typeof r=="string"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(Uw(n,e,t));return i}if(e.type==="MAP"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,Uw(s,e.valueDefinition,t));return i}if(e.type==="SHAPE"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,Uw(s,o,t))}return i}return r}function Hve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(Gw)&&(e=(0,dz.default)(e.slice(Gw.length)),r[e]=t);return r}function Hw(){let r=`${Gw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return sk}var ck=(i=>(i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE",i))(ck||{}),Ha=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new Ha(e);typeof t<"u"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(rk);let s=typeof i<"u"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=Hve();delete a.rcFilename;let l=await Ha.findRcFiles(e),c=await Ha.findHomeRcFile();if(c){let B=l.find(v=>v.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:v,ignorePath:D,lockfileFilename:T})=>({ignoreCwd:B,yarnPath:v,ignorePath:D,lockfileFilename:T}),g=({ignoreCwd:B,yarnPath:v,ignorePath:D,lockfileFilename:T,...H})=>H,f=new Ha(e);f.importSettings(u(rk)),f.useWithSource("",u(a),e,{strict:!1});for(let{path:B,cwd:v,data:D}of l)f.useWithSource(B,u(D),v,{strict:!1});if(s){let B=f.get("yarnPath"),v=f.get("ignorePath");if(B!==null&&!v)return f}let h=f.get("lockfileFilename"),p;switch(i){case 0:p=await Ha.findProjectCwd(e,h);break;case 1:p=await Ha.findProjectCwd(e,null);break;case 2:O.existsSync(x.join(e,"package.json"))?p=x.resolve(e):p=null;break}f.startingCwd=e,f.projectCwd=p,f.importSettings(g(rk));let C=new Map([["@@core",S8]]),y=B=>"default"in B?B.default:B;if(t!==null){for(let T of t.plugins.keys())C.set(T,y(t.modules.get(T)));let B=new Map;for(let T of _D())B.set(T,()=>mf(T));for(let[T,H]of t.modules)B.set(T,()=>H);let v=new Set,D=async(T,H)=>{let{factory:j,name:$}=mf(T);if(v.has($))return;let V=new Map(B),W=A=>{if(V.has(A))return V.get(A)();throw new Qe(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},_=await df(async()=>y(await j(W)),A=>`${A} (when initializing ${$}, defined in ${H})`);B.set($,()=>_),v.add($),C.set($,_)};if(a.plugins)for(let T of a.plugins.split(";")){let H=x.resolve(e,K.toPortablePath(T));await D(H,"")}for(let{path:T,cwd:H,data:j}of l)if(!!o&&!!Array.isArray(j.plugins))for(let $ of j.plugins){let V=typeof $!="string"?$.path:$,W=x.resolve(H,K.toPortablePath(V));await D(W,T)}}for(let[B,v]of C)f.activatePlugin(B,v);f.useWithSource("",g(a),e,{strict:n});for(let{path:B,cwd:v,data:D,strict:T}of l)f.useWithSource(B,g(D),v,{strict:T!=null?T:n});return f.get("enableGlobalCache")&&(f.values.set("cacheFolder",`${f.get("globalFolder")}/cache`),f.sources.set("cacheFolder","")),await f.refreshPackageExtensions(),f}static async findRcFiles(e){let t=Hw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=x.join(s,t);if(O.existsSync(o)){let a=await O.readFilePromise(o,"utf8"),l;try{l=yi(a)}catch{let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new Qe(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=x.dirname(s)}return i}static async findHomeRcFile(){let e=Hw(),t=hC(),i=x.join(t,e);if(O.existsSync(i)){let n=await O.readFilePromise(i,"utf8"),s=yi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,O.existsSync(x.join(s,"package.json"))&&(i=s),t!==null){if(O.existsSync(x.join(s,t))){i=s;break}}else if(i!==null)break;n=x.dirname(s)}return i}static async updateConfiguration(e,t){let i=Hw(),n=x.join(e,i),s=O.existsSync(n)?yi(await O.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await O.changeFilePromise(n,ba(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=hC();return await Ha.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<"u"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,lk(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${$e(this,e,Ue.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]>"u"||o==="plugins"||e===""&&Mve.has(o))continue;if(o==="rcFilename")throw new Qe(`The rcFilename settings can only be set via ${`${Gw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new Qe(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type==="MAP"||l.isArray&&l.concatenateValues))continue;let c;try{c=Ak(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${$e(this,e,Ue.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type==="MAP"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>"u")throw new Qe(`Couldn't find a configuration settings named "${e}"`);return Uw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=O.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${$e(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${$e(this,"STDERR","red")}`);s=new nk.PassThrough,s.pipe(l),s.pipe(a),o=new nk.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<"u"&&s.write(`${t} -`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new kf([new fC,new jr,new Nw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new Df([new Ff,new Tf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=pC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Uo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!so(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[f,h]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:f,value:h})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(zA(i,!0),Jy(n),{userProvided:!0})}normalizePackage(e){let t=rC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!kc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",Ta(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qx(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=tn(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,_t(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Mt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,_t(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(bn(t.dependencies,([,s])=>Sn(s))),t.peerDependencies=new Map(bn(t.peerDependencies,([,s])=>Sn(s))),t}getLimit(e){return Ta(this.limits,e,()=>(0,Cz.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},ye=Ha;ye.telemetry=null;var hk=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hk||{}),dC=class extends at{constructor({fileName:t,code:i,signal:n}){let s=ye.create(x.cwd()),o=$e(s,t,Ue.PATH);super(1,`Child ${o} reported an error`,a=>{Yve(i,n,{configuration:s,report:a})});this.code=pk(i,n)}},Yw=class extends dC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Nc(r){return r!==null&&typeof r.fd=="number"}var Tc=new Set;function uk(){}function gk(){for(let r of Tc)r.kill()}async function Wo(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Nc(s)&&(c[0]=s),Nc(o)&&(c[1]=o),Nc(a)&&(c[2]=a);let u=(0,fk.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Tc.add(u),Tc.size===1&&(process.on("SIGINT",uk),process.on("SIGTERM",gk)),!Nc(s)&&s!==null&&s.pipe(u.stdin),Nc(o)||u.stdout.pipe(o,{end:!1}),Nc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let f of new Set([o,a]))Nc(f)||f.end()};return new Promise((f,h)=>{u.on("error",p=>{Tc.delete(u),Tc.size===0&&(process.off("SIGINT",uk),process.off("SIGTERM",gk)),(l===2||l===1)&&g(),h(p)}),u.on("close",(p,C)=>{Tc.delete(u),Tc.size===0&&(process.off("SIGINT",uk),process.off("SIGTERM",gk)),(l===2||l===1&&p>0)&&g(),p===0||!n?f({code:pk(p,C)}):h(new dC({fileName:r,code:p,signal:C}))})})}async function tk(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<"u"&&(i={...i,PWD:c});let u=(0,fk.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,f)=>{u.on("error",h=>{let p=ye.create(t),C=$e(p,r,Ue.PATH);f(new at(1,`Process ${C} failed to spawn`,y=>{y.reportError(1,` ${Ho(p,{label:"Thrown Error",value:no(Ue.NO_HINT,h.message)})}`)}))}),u.on("close",(h,p)=>{let C=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);h===0||!s?g({code:pk(h,p),stdout:C,stderr:y}):f(new Yw({fileName:r,code:h,signal:p,stdout:C,stderr:y}))})})}var Gve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function pk(r,e){let t=Gve.get(e);return typeof t<"u"?128+t:r!=null?r:1}function Yve(r,e,{configuration:t,report:i}){i.reportError(1,` ${Ho(t,r!==null?{label:"Exit Code",value:no(Ue.NUMBER,r)}:{label:"Exit Signal",value:no(Ue.CODE,e)})}`)}var Xt={};ut(Xt,{Method:()=>_6,RequestError:()=>$6.RequestError,del:()=>rke,get:()=>eke,getNetworkSettings:()=>Z6,post:()=>kR,put:()=>tke,request:()=>vC});var z6=Pe(CB()),V6=J("https"),X6=J("http"),DR=Pe(Bn()),PR=Pe(j6()),mB=J("url");var $6=Pe(CB()),q6=new Map,J6=new Map,ZDe=new X6.Agent({keepAlive:!0}),_De=new V6.Agent({keepAlive:!0});function W6(r){let e=new mB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),{proxy:t}}async function xR(r){return Ta(J6,r,()=>O.readFilePromise(r).then(e=>(J6.set(r,e),e)))}function $De({statusCode:r,statusMessage:e},t){let i=$e(t,r,Ue.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return If(t,`${i}${e?` (${e})`:""}`,n)}async function EB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof z6.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${$e(e,"httpTimeout",Ue.SETTING)})`);let a=new at(35,o,l=>{s.response&&l.reportError(35,` ${Ho(e,{label:"Response Code",value:no(Ue.NO_HINT,$De(s.response,e))})}`),s.request&&(l.reportError(35,` ${Ho(e,{label:"Request Method",value:no(Ue.NO_HINT,s.request.options.method)})}`),l.reportError(35,` ${Ho(e,{label:"Request URL",value:no(Ue.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,` ${Ho(e,{label:"Request Redirects",value:no(Ue.NO_HINT,tP(e,s.request.redirects,Ue.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,` ${Ho(e,{label:"Request Retry Count",value:no(Ue.NO_HINT,`${$e(e,s.request.retryCount,Ue.NUMBER)} (can be increased via ${$e(e,"httpRetry",Ue.SETTING)})`)})}`)});throw a.originalError=s,a}}function Z6(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new mB.URL(r):r;for(let[o,a]of t)if(DR.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>"u"&&(i[l]=c)}for(let o of n)typeof i[o]>"u"&&(i[o]=e.configuration.get(o));return i}var _6=(n=>(n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE",n))(_6||{});async function vC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=async()=>await ike(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function eke(r,{configuration:e,jsonResponse:t,...i}){let n=Ta(q6,r,()=>EB(vC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(q6.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function tke(r,e,{customErrorMessage:t,...i}){return(await EB(vC(r,e,{...i,method:"PUT"}),i)).body}async function kR(r,e,{customErrorMessage:t,...i}){return(await EB(vC(r,e,{...i,method:"POST"}),i)).body}async function rke(r,{customErrorMessage:e,...t}){return(await EB(vC(r,null,{...t,method:"DELETE"}),t)).body}async function ike(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=typeof r=="string"?new mB.URL(r):r,l=Z6(a,{configuration:t});if(l.enableNetwork===!1)throw new Error(`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!DR.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?PR.default.httpOverHttp(W6(l.httpProxy)):ZDe,https:l.httpsProxy?PR.default.httpsOverHttp(W6(l.httpsProxy)):_De},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),f=t.get("httpRetry"),h=t.get("enableStrictSsl"),p=l.caFilePath,C=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>Pe(CB())),v=p?await xR(p):void 0,D=C?await xR(C):void 0,T=y?await xR(y):void 0,H=B.extend({timeout:{socket:g},retry:f,https:{rejectUnauthorized:h,certificateAuthority:v,certificate:D,key:T},...u});return t.getLimit("networkConcurrency")(()=>H(a))}var Wt={};ut(Wt,{PackageManager:()=>u9,detectPackageManager:()=>g9,executePackageAccessibleBinary:()=>C9,executePackageScript:()=>TB,executePackageShellcode:()=>JR,executeWorkspaceAccessibleBinary:()=>wRe,executeWorkspaceLifecycleScript:()=>p9,executeWorkspaceScript:()=>h9,getPackageAccessibleBinaries:()=>LB,getWorkspaceAccessibleBinaries:()=>d9,hasPackageScript:()=>ERe,hasWorkspaceScript:()=>WR,makeScriptEnv:()=>FC,maybeExecuteWorkspaceLifecycleScript:()=>yRe,prepareExternalProject:()=>mRe});var xC={};ut(xC,{getLibzipPromise:()=>an,getLibzipSync:()=>sV});var nV=Pe(tV());var Ja=["number","number"],rV=(F=>(F[F.ZIP_ER_OK=0]="ZIP_ER_OK",F[F.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",F[F.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",F[F.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",F[F.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",F[F.ZIP_ER_READ=5]="ZIP_ER_READ",F[F.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",F[F.ZIP_ER_CRC=7]="ZIP_ER_CRC",F[F.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",F[F.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",F[F.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",F[F.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",F[F.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",F[F.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",F[F.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",F[F.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",F[F.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",F[F.ZIP_ER_EOF=17]="ZIP_ER_EOF",F[F.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",F[F.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",F[F.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",F[F.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",F[F.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",F[F.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",F[F.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",F[F.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",F[F.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",F[F.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",F[F.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",F[F.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",F[F.ZIP_ER_TELL=30]="ZIP_ER_TELL",F[F.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",F))(rV||{}),iV=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:rV,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...Ja,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...Ja,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...Ja,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...Ja,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...Ja,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...Ja,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number",...Ja,"number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...Ja,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...Ja,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var NR=null;function sV(){return NR===null&&(NR=iV((0,nV.default)())),NR}async function an(){return sV()}var RC={};ut(RC,{ShellError:()=>zn,execute:()=>xB,globUtils:()=>BB});var EV=Pe(wx()),IV=J("os"),Vn=J("stream"),yV=J("util");var zn=class extends Error{constructor(e){super(e),this.name="ShellError"}};var BB={};ut(BB,{fastGlobOptions:()=>AV,isBraceExpansion:()=>TR,isGlobPattern:()=>nke,match:()=>ske,micromatchOptions:()=>wB});var oV=Pe(dw()),aV=Pe(J("fs")),yB=Pe(Bn()),wB={strictBrackets:!0},AV={onlyDirectories:!1,onlyFiles:!1};function nke(r){if(!yB.default.scan(r,wB).isGlob)return!1;try{yB.default.parse(r,wB)}catch{return!1}return!0}function ske(r,{cwd:e,baseFs:t}){return(0,oV.default)(r,{...AV,cwd:K.fromPortablePath(e),fs:AI(aV.default,new vg(t))})}function TR(r){return yB.default.scan(r,wB).isBrace}var cV=Pe(TS()),Vo=J("stream"),uV=J("string_decoder");var Oc=new Set;function LR(){}function MR(){for(let r of Oc)r.kill()}function gV(r,e,t,i){return n=>{let s=n[0]instanceof Vo.Transform?"pipe":n[0],o=n[1]instanceof Vo.Transform?"pipe":n[1],a=n[2]instanceof Vo.Transform?"pipe":n[2],l=(0,cV.default)(r,e,{...i,stdio:[s,o,a]});return Oc.add(l),Oc.size===1&&(process.on("SIGINT",LR),process.on("SIGTERM",MR)),n[0]instanceof Vo.Transform&&n[0].pipe(l.stdin),n[1]instanceof Vo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof Vo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Oc.delete(l),Oc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",MR)),u.code){case"ENOENT":n[2].write(`command not found: ${r} +`)}};cd.paths=[["-v"],["--version"]];var z={};ut(z,{Array:()=>OH,Boolean:()=>KH,Counter:()=>UH,Proxy:()=>HH,Rest:()=>GH,String:()=>YH,applyValidator:()=>nd,cleanValidationError:()=>DI,formatError:()=>id,isOptionSymbol:()=>rd,makeCommandOption:()=>Xi,rerouteArguments:()=>Do});function OH(r,e,t){let[i,n]=Do(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:f,value:h}of u.options)!a.has(f)||(g=g!=null?g:[],g.push(h));return g}})}function KH(r,e,t){let[i,n]=Do(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u=f);return u}})}function UH(r,e,t){let[i,n]=Do(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u!=null||(u=0),f?u+=1:u=0);return u}})}function HH(r={}){return Xi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function GH(r={}){return Xi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&oo)}})}function cCe(r,e,t){let[i,n]=Do(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,f=i;for(let{name:h,value:p}of u.options)!a.has(h)||(g=h,f=p);return typeof f=="string"?nd(g!=null?g:c,f,n.validator):f}})}function uCe(r={}){let{required:e=!0}=r;return Xi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o(se[se.UNNAMED=0]="UNNAMED",se[se.EXCEPTION=1]="EXCEPTION",se[se.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",se[se.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",se[se.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",se[se.BUILD_DISABLED=5]="BUILD_DISABLED",se[se.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",se[se.MUST_BUILD=7]="MUST_BUILD",se[se.MUST_REBUILD=8]="MUST_REBUILD",se[se.BUILD_FAILED=9]="BUILD_FAILED",se[se.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",se[se.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",se[se.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",se[se.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",se[se.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",se[se.REMOTE_INVALID=15]="REMOTE_INVALID",se[se.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",se[se.RESOLUTION_PACK=17]="RESOLUTION_PACK",se[se.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",se[se.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",se[se.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",se[se.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",se[se.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",se[se.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",se[se.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",se[se.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",se[se.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",se[se.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",se[se.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",se[se.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",se[se.FETCH_FAILED=30]="FETCH_FAILED",se[se.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",se[se.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",se[se.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",se[se.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",se[se.NETWORK_ERROR=35]="NETWORK_ERROR",se[se.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",se[se.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",se[se.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",se[se.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",se[se.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",se[se.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",se[se.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",se[se.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",se[se.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",se[se.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",se[se.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",se[se.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",se[se.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",se[se.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",se[se.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",se[se.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",se[se.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",se[se.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",se[se.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",se[se.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",se[se.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",se[se.INVALID_MANIFEST=57]="INVALID_MANIFEST",se[se.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",se[se.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",se[se.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",se[se.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",se[se.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",se[se.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",se[se.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",se[se.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",se[se.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",se[se.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",se[se.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",se[se.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",se[se.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",se[se.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",se[se.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",se[se.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",se[se.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",se[se.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",se[se.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",se[se.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",se[se.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",se))(Ct||{});function FA(r){return`YN${r.toString(10).padStart(4,"0")}`}function LI(r){let e=Number(r.slice(2));if(typeof Ct[e]>"u")throw new Error(`Unknown message name: "${r}"`);return e}var P={};ut(P,{areDescriptorsEqual:()=>S8,areIdentsEqual:()=>sC,areLocatorsEqual:()=>oC,areVirtualPackagesEquivalent:()=>LSe,bindDescriptor:()=>NSe,bindLocator:()=>TSe,convertDescriptorToLocator:()=>Sw,convertLocatorToDescriptor:()=>HD,convertPackageToLocator:()=>FSe,convertToIdent:()=>RSe,convertToManifestRange:()=>KSe,copyPackage:()=>rC,devirtualizeDescriptor:()=>iC,devirtualizeLocator:()=>nC,getIdentVendorPath:()=>qD,isPackageCompatible:()=>kw,isVirtualDescriptor:()=>JA,isVirtualLocator:()=>qo,makeDescriptor:()=>_t,makeIdent:()=>Jo,makeLocator:()=>nn,makeRange:()=>xw,parseDescriptor:()=>WA,parseFileStyleRange:()=>MSe,parseIdent:()=>tn,parseLocator:()=>Dc,parseRange:()=>vf,prettyDependent:()=>nP,prettyDescriptor:()=>tr,prettyIdent:()=>Ai,prettyLocator:()=>mt,prettyLocatorNoColors:()=>jD,prettyRange:()=>Dw,prettyReference:()=>AC,prettyResolution:()=>iP,prettyWorkspace:()=>lC,renamePackage:()=>tC,slugifyIdent:()=>UD,slugifyLocator:()=>xf,sortDescriptors:()=>Pf,stringifyDescriptor:()=>Sn,stringifyIdent:()=>Mt,stringifyLocator:()=>Es,tryParseDescriptor:()=>aC,tryParseIdent:()=>v8,tryParseLocator:()=>vw,virtualizeDescriptor:()=>GD,virtualizePackage:()=>YD});var Sf=Pe(J("querystring")),B8=Pe(Xr()),b8=Pe(mJ());var ee={};ut(ee,{LogLevel:()=>Xy,Style:()=>_x,Type:()=>Ue,addLogFilterSupport:()=>Xd,applyColor:()=>Qn,applyHyperlink:()=>If,applyStyle:()=>Vy,json:()=>Bc,jsonOrPretty:()=>h0e,mark:()=>rP,pretty:()=>$e,prettyField:()=>Go,prettyList:()=>tP,supportsColor:()=>zy,supportsHyperlinks:()=>eP,tuple:()=>no});var Vd=Pe(wx()),zd=Pe(Ac());var p3=Pe(Bn()),d3=Pe(n3());var Ie={};ut(Ie,{AsyncActions:()=>Gx,BufferStream:()=>Hx,CachingStrategy:()=>f3,DefaultStream:()=>Yx,allSettledSafe:()=>io,assertNever:()=>qx,bufferStream:()=>Cf,buildIgnorePattern:()=>c0e,convertMapsToIndexableObjects:()=>Jy,dynamicRequire:()=>mf,escapeRegExp:()=>n0e,getArrayWithDefault:()=>hf,getFactoryWithDefault:()=>Ta,getMapWithDefault:()=>pf,getSetWithDefault:()=>wc,isIndexableObject:()=>Ux,isPathLike:()=>u0e,isTaggedYarnVersion:()=>i0e,mapAndFilter:()=>Ho,mapAndFind:()=>Jd,overrideType:()=>s0e,parseBoolean:()=>Wd,parseOptionalBoolean:()=>h3,prettifyAsyncErrors:()=>df,prettifySyncErrors:()=>Jx,releaseAfterUseAsync:()=>a0e,replaceEnvVariables:()=>Wx,sortMap:()=>bn,tryParseOptionalBoolean:()=>zx,validateEnum:()=>o0e});var o3=Pe(Bn()),a3=Pe(Jg()),A3=Pe(Xr()),jx=J("stream");function i0e(r){return!!(A3.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function n0e(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function s0e(r){}function qx(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function o0e(r,e){let t=Object.values(r);if(!t.includes(e))throw new Qe(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Ho(r,e){let t=[];for(let i of r){let n=e(i);n!==l3&&t.push(n)}return t}var l3=Symbol();Ho.skip=l3;function Jd(r,e){for(let t of r){let i=e(t);if(i!==c3)return i}}var c3=Symbol();Jd.skip=c3;function Ux(r){return typeof r=="object"&&r!==null}async function io(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function Jy(r){if(r instanceof Map&&(r=Object.fromEntries(r)),Ux(r))for(let e of Object.keys(r)){let t=r[e];Ux(t)&&(r[e]=Jy(t))}return r}function Ta(r,e,t){let i=r.get(e);return typeof i>"u"&&r.set(e,i=t()),i}function hf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=[]),t}function wc(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Set),t}function pf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Map),t}async function a0e(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function df(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function Jx(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Cf(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var Hx=class extends jx.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function A0e(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var Gx=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,a3.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>"u"&&this.deferred.set(e,i=A0e());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},Yx=class extends jx.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},qd=eval("require");function u3(r){return qd(K.fromPortablePath(r))}function g3(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=qd.cache[physicalPath];delete qd.cache[physicalPath];let result;try{result=u3(physicalPath);let freshCacheEntry=qd.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{qd.cache[physicalPath]=currentCacheEntry}return result}var s3=new Map;function l0e(r){let e=s3.get(r),t=O.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=g3(r);return s3.set(r,{mtime:t.mtimeMs,instance:i}),i}var f3=(i=>(i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node",i))(f3||{});function mf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return g3(r);case 1:return l0e(r);case 2:return u3(r);default:throw new Error("Unsupported caching strategy")}}function bn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function c0e(r){return r.length===0?null:r.map(e=>`(${o3.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Wx(r,{env:e}){let t=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new Qe(`Environment variable not found (${n})`)})}function Wd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function h3(r){return typeof r>"u"?r:Wd(r)}function zx(r){try{return h3(r)}catch{return null}}function u0e(r){return!!(K.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Ef=(t=>(t.HARD="HARD",t.SOFT="SOFT",t))(Ef||{}),Vx=(i=>(i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta",i))(Vx||{}),Xx=(i=>(i.Inactive="inactive",i.Redundant="redundant",i.Active="active",i))(Xx||{});var Ue={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},_x=(e=>(e[e.BOLD=2]="BOLD",e))(_x||{}),$x=zd.default.GITHUB_ACTIONS?{level:2}:Vd.default.supportsColor?{level:Vd.default.supportsColor.level}:{level:0},zy=$x.level!==0,eP=zy&&!zd.default.GITHUB_ACTIONS&&!zd.default.CIRCLE&&!zd.default.GITLAB,Zx=new Vd.default.Instance($x),g0e=new Map([[Ue.NO_HINT,null],[Ue.NULL,["#a853b5",129]],[Ue.SCOPE,["#d75f00",166]],[Ue.NAME,["#d7875f",173]],[Ue.RANGE,["#00afaf",37]],[Ue.REFERENCE,["#87afff",111]],[Ue.NUMBER,["#ffd700",220]],[Ue.PATH,["#d75fd7",170]],[Ue.URL,["#d75fd7",170]],[Ue.ADDED,["#5faf00",70]],[Ue.REMOVED,["#d70000",160]],[Ue.CODE,["#87afff",111]],[Ue.SIZE,["#ffd700",220]]]),ms=r=>r,Wy={[Ue.NUMBER]:ms({pretty:(r,e)=>Qn(r,`${e}`,Ue.NUMBER),json:r=>r}),[Ue.IDENT]:ms({pretty:(r,e)=>Ai(r,e),json:r=>Mt(r)}),[Ue.LOCATOR]:ms({pretty:(r,e)=>mt(r,e),json:r=>Es(r)}),[Ue.DESCRIPTOR]:ms({pretty:(r,e)=>tr(r,e),json:r=>Sn(r)}),[Ue.RESOLUTION]:ms({pretty:(r,{descriptor:e,locator:t})=>iP(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:Sn(r),locator:e!==null?Es(e):null})}),[Ue.DEPENDENT]:ms({pretty:(r,{locator:e,descriptor:t})=>nP(r,e,t),json:({locator:r,descriptor:e})=>({locator:Es(r),descriptor:Sn(e)})}),[Ue.PACKAGE_EXTENSION]:ms({pretty:(r,e)=>{switch(e.type){case"Dependency":return`${Ai(r,e.parentDescriptor)} \u27A4 ${Qn(r,"dependencies",Ue.CODE)} \u27A4 ${Ai(r,e.descriptor)}`;case"PeerDependency":return`${Ai(r,e.parentDescriptor)} \u27A4 ${Qn(r,"peerDependencies",Ue.CODE)} \u27A4 ${Ai(r,e.descriptor)}`;case"PeerDependencyMeta":return`${Ai(r,e.parentDescriptor)} \u27A4 ${Qn(r,"peerDependenciesMeta",Ue.CODE)} \u27A4 ${Ai(r,tn(e.selector))} \u27A4 ${Qn(r,e.key,Ue.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case"Dependency":return`${Mt(r.parentDescriptor)} > ${Mt(r.descriptor)}`;case"PeerDependency":return`${Mt(r.parentDescriptor)} >> ${Mt(r.descriptor)}`;case"PeerDependencyMeta":return`${Mt(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ue.SETTING]:ms({pretty:(r,e)=>(r.get(e),If(r,Qn(r,e,Ue.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ue.DURATION]:ms({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ue.SIZE]:ms({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return Qn(r,`${s} ${t[i-1]}`,Ue.NUMBER)},json:r=>r}),[Ue.PATH]:ms({pretty:(r,e)=>Qn(r,K.fromPortablePath(e),Ue.PATH),json:r=>K.fromPortablePath(r)}),[Ue.MARKDOWN]:ms({pretty:(r,{text:e,format:t,paragraphs:i})=>Ti(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function no(r,e){return[e,r]}function Vy(r,e,t){return r.get("enableColors")&&t&2&&(e=Vd.default.bold(e)),e}function Qn(r,e,t){if(!r.get("enableColors"))return e;let i=g0e.get(t);if(i===null)return e;let n=typeof i>"u"?t:$x.level>=3?i[0]:i[1],s=typeof n=="number"?Zx.ansi256(n):n.startsWith("#")?Zx.hex(n):Zx[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var f0e=!!process.env.KONSOLE_VERSION;function If(r,e,t){return r.get("enableHyperlinks")?f0e?`\x1B]8;;${t}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${t}\x07${e}\x1B]8;;\x07`:e}function $e(r,e,t){if(e===null)return Qn(r,"null",Ue.NULL);if(Object.prototype.hasOwnProperty.call(Wy,t))return Wy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Qn(r,e,t)}function tP(r,e,t,{separator:i=", "}={}){return[...e].map(n=>$e(r,n,t)).join(i)}function Bc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Wy,e))return Wy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function h0e(r,e,[t,i]){return r?Bc(t,i):$e(e,t,i)}function rP(r){return{Check:Qn(r,"\u2713","green"),Cross:Qn(r,"\u2718","red"),Question:Qn(r,"?","cyan")}}function Go(r,{label:e,value:[t,i]}){return`${$e(r,e,Ue.CODE)}: ${$e(r,t,i)}`}var Xy=(n=>(n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard",n))(Xy||{});function Xd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let f=g.get("level");if(typeof f>"u")continue;let h=g.get("code");typeof h<"u"&&i.set(h,f);let p=g.get("text");typeof p<"u"&&n.set(p,f);let C=g.get("pattern");typeof C<"u"&&s.push([p3.default.matcher(C,{contains:!0}),f])}s.reverse();let o=(g,f,h)=>{if(g===null||g===0)return h;let p=n.size>0||s.length>0?(0,d3.default)(f):f;if(n.size>0){let C=n.get(p);if(typeof C<"u")return C!=null?C:h}if(s.length>0){for(let[C,y]of s)if(C(p))return y!=null?y:h}if(i.size>0){let C=i.get(FA(g));if(typeof C<"u")return C!=null?C:h}return h},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,f,h,p){switch(o(f,h,p)){case"info":a.call(g,f,h);break;case"warning":l.call(g,f!=null?f:0,h);break;case"error":c.call(g,f!=null?f:0,h);break}};r.reportInfo=function(...g){return u(this,...g,"info")},r.reportWarning=function(...g){return u(this,...g,"warning")},r.reportError=function(...g){return u(this,...g,"error")}}var li={};ut(li,{checksumFile:()=>bw,checksumPattern:()=>Qw,makeHash:()=>rn});var Bw=J("crypto"),KD=Pe(OD());function rn(...r){let e=(0,Bw.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function bw(r,{baseFs:e,algorithm:t}={baseFs:O,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,Bw.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function Qw(r,{cwd:e}){let i=(await(0,KD.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,KD.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await O.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await O.readlinkPromise(c))):u.isFile()&&l.push(await O.readFilePromise(c)),l.join("\0")})),o=(0,Bw.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var eC="virtual:",DSe=5,Q8=/(os|cpu|libc)=([a-z0-9_-]+)/,kSe=(0,b8.makeParser)(Q8);function Jo(r,e){if(r!=null&&r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:rn(r,e),scope:r,name:e}}function _t(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:rn(r.identHash,e),range:e}}function nn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:rn(r.identHash,e),reference:e}}function RSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function Sw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function HD(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function FSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function tC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function rC(r){return tC(r,r)}function GD(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return _t(r,`virtual:${e}#${r.range}`)}function YD(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return tC(r,nn(r,`virtual:${e}#${r.reference}`))}function JA(r){return r.range.startsWith(eC)}function qo(r){return r.reference.startsWith(eC)}function iC(r){if(!JA(r))throw new Error("Not a virtual descriptor");return _t(r,r.range.replace(/^[^#]*#/,""))}function nC(r){if(!qo(r))throw new Error("Not a virtual descriptor");return nn(r,r.reference.replace(/^[^#]*#/,""))}function NSe(r,e){return r.range.includes("::")?r:_t(r,`${r.range}::${Sf.default.stringify(e)}`)}function TSe(r,e){return r.reference.includes("::")?r:nn(r,`${r.reference}::${Sf.default.stringify(e)}`)}function sC(r,e){return r.identHash===e.identHash}function S8(r,e){return r.descriptorHash===e.descriptorHash}function oC(r,e){return r.locatorHash===e.locatorHash}function LSe(r,e){if(!qo(r))throw new Error("Invalid package type");if(!qo(e))throw new Error("Invalid package type");if(!sC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!S8(t,i))return!1}return!0}function tn(r){let e=v8(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function v8(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return Jo(typeof t<"u"?t:null,i)}function WA(r,e=!1){let t=aC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function aC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return _t(Jo(o,n),a)}function Dc(r,e=!1){let t=vw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function vw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return nn(Jo(o,n),a)}function vf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<"u"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<"u"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<"u"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Sf.default.parse(s):s,a=typeof t[4]<"u"?Sf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function MSe(r,{protocol:e}){let{selector:t,params:i}=vf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Dc(i.locator,!0),path:t}}function w8(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function OSe(r){return r===null?!1:Object.entries(r).length>0}function xw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${w8(e)}#`),n+=w8(t),OSe(i)&&(n+=`::${Sf.default.stringify(i)}`),n}function KSe(r){let{params:e,protocol:t,source:i,selector:n}=vf(r);for(let s in e)s.startsWith("__")&&delete e[s];return xw({protocol:t,source:i,params:e,selector:n})}function Mt(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function Sn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function Es(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function UD(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function xf(r){let{protocol:e,selector:t}=vf(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=B8.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${UD(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${UD(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Jr(a)}function Ai(r,e){return e.scope?`${$e(r,`@${e.scope}/`,Ue.SCOPE)}${$e(r,e.name,Ue.NAME)}`:`${$e(r,e.name,Ue.NAME)}`}function Pw(r){if(r.startsWith(eC)){let e=Pw(r.substring(r.indexOf("#")+1)),t=r.substring(eC.length,eC.length+DSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function Dw(r,e){return`${$e(r,Pw(e),Ue.RANGE)}`}function tr(r,e){return`${Ai(r,e)}${$e(r,"@",Ue.RANGE)}${Dw(r,e.range)}`}function AC(r,e){return`${$e(r,Pw(e),Ue.REFERENCE)}`}function mt(r,e){return`${Ai(r,e)}${$e(r,"@",Ue.REFERENCE)}${AC(r,e.reference)}`}function jD(r){return`${Mt(r)}@${Pw(r.reference)}`}function Pf(r){return bn(r,[e=>Mt(e),e=>e.range])}function lC(r,e){return Ai(r,e.locator)}function iP(r,e,t){let i=JA(e)?iC(e):e;return t===null?`${tr(r,i)} \u2192 ${rP(r).Cross}`:i.identHash===t.identHash?`${tr(r,i)} \u2192 ${AC(r,t.reference)}`:`${tr(r,i)} \u2192 ${mt(r,t)}`}function nP(r,e,t){return t===null?`${mt(r,e)}`:`${mt(r,e)} (via ${Dw(r,t.range)})`}function qD(r){return`node_modules/${Mt(r)}`}function kw(r,e){return r.conditions?kSe(r.conditions,t=>{let[,i,n]=t.match(Q8),s=e[i];return s?s.includes(n):!0}):!0}var x8={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Mt(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Mt(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(_t(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=lC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var T8=Pe(Xr());var cC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(cC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(cC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(cC.protocol.length));return{...e,version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},Yr=cC;Yr.protocol="workspace:";var vt={};ut(vt,{SemVer:()=>k8.SemVer,clean:()=>HSe,satisfiesWithPrereleases:()=>kc,validRange:()=>so});var Rw=Pe(Xr()),k8=Pe(Xr()),P8=new Map;function kc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=P8.get(i);if(typeof n>"u")try{n=new Rw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{P8.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Rw.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var D8=new Map;function so(r){if(r.indexOf(":")!==-1)return null;let e=D8.get(r);if(typeof e<"u")return e;try{e=new Rw.default.Range(r)}catch{e=null}return D8.set(r,e),e}var USe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function HSe(r){let e=USe.exec(r);return e?e[1]:null}var zA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new $t}={}){let i=x.join(e,"package.json");try{return await zA.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await zA.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new $t}={}){let i=new zA;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new zA;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(F8(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=R8(e)}async loadFile(e,{baseFs:t=new $t}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(F8(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=R8(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=tn(e.name)}catch{i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=sn(e.main):this.main=null,typeof e.module=="string"?this.module=sn(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=sn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(sn(s),typeof o=="string"?sn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")this.name!==null?this.bin.set(this.name.name,sn(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=tn(s);this.bin.set(a.name,sn(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=_t(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=_t(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Yr.protocol)&&!so(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=_t(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=WA(s),l=this.ensureDependencyMeta(a),c=Fw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Fw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Fw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=WA(s),l=this.ensurePeerDependencyMeta(a),c=Fw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:hI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=sn(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=sn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=sn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(sn(s),typeof o=="string"?sn(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,sn(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,sn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(sn(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=_t(a,o);this.dependencies.set(l.identHash,l);let c=_t(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(JD("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(JD("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(JD("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return zA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return zA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!T8.default.valid(e.range))throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Mt(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Mt(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Mt(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Mt(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Pf(i).map(o=>({[Mt(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Pf(n).map(o=>({[Mt(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Pf(this.devDependencies.values()).map(o=>({[Mt(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Pf(this.peerDependencies.values()).map(o=>({[Mt(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of bn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of bn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?Sn(_t(tn(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...bn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[pI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},ot=zA;ot.fileName="package.json",ot.allDependencies=["dependencies","devDependencies","peerDependencies"],ot.hardDependencies=["dependencies","devDependencies"];function R8(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function F8(r){return r.charCodeAt(0)===65279?r.slice(1):r}function sn(r){return r.replace(/\\/g,"/")}function Fw(r,{yamlCompatibilityMode:e}){return e?zx(r):typeof r>"u"||typeof r=="boolean"?r:null}function N8(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2===0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function JD(r,e){return e.length===1?N8(r,e[0]):`(${e.map(t=>N8(r,t)).join(" | ")})`}var gz=Pe(uz()),fz=J("stream"),hz=J("string_decoder");var Nve=15,at=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function Tve(r){return typeof r.reportCode<"u"}var vi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t{t=o}),n=(0,gz.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/Nve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){Tve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new fz.PassThrough,i=new hz.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var Df=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new at(11,`${mt(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var kf=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${tr(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${mt(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var pz=Pe(Xr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Nw=class{supportsDescriptor(e,t){return!!(so(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(pz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return tC(i,e)}forwardDescriptor(e,t){return _t(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return nn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return xf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=Br.makeVirtualPath(s,o,n),l=new So(a,{baseFs:t.packageFs,pathUtils:x});return{...t,packageFs:l}}};var Nf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Nf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Nf.protocol)}supportsDescriptor(e,t){return Nf.isVirtualDescriptor(e)}supportsLocator(e,t){return Nf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},fC=Nf;fC.protocol="virtual:";var Tf=class{supports(e){return!!e.reference.startsWith(Yr.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new qt(i),prefixPath:Me.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(Yr.protocol.length))}};var Tw={};ut(Tw,{getDefaultGlobalFolder:()=>XD,getHomeFolder:()=>hC,isFolderInside:()=>ZD});var VD=J("os");function XD(){if(process.platform==="win32"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,VD.homedir)(),"AppData","Local"));return x.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return x.resolve(r,"yarn/berry")}return x.resolve(hC(),".yarn/berry")}function hC(){return K.toPortablePath((0,VD.homedir)()||"/usr/local/share")}function ZD(r,e){let t=x.relative(e,r);return t&&!t.startsWith("..")&&!x.isAbsolute(t)}var ws={};ut(ws,{availableParallelism:()=>ek,builtinModules:()=>_D,getArchitecture:()=>pC,getArchitectureName:()=>Ove,getArchitectureSet:()=>$D,openUrl:()=>Lve});var Cz=Pe(J("module")),Ow=Pe(J("os"));var dz=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Lve=typeof dz<"u"?async r=>{try{return await tk(dz,[r],{cwd:x.cwd()}),!0}catch{return!1}}:void 0;function _D(){return new Set(Cz.default.builtinModules||Object.keys(process.binding("natives")))}function Mve(){var i,n,s,o;if(process.platform==="win32")return null;let e=(s=((n=(i=process.report)==null?void 0:i.getReport())!=null?n:{}).sharedObjects)!=null?s:[],t=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(o=Jd(e,a=>{let l=a.match(t);if(!l)return Jd.skip;if(l[1])return"glibc";if(l[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?o:null}var Lw,Mw;function pC(){return Lw=Lw!=null?Lw:{os:process.platform,cpu:process.arch,libc:Mve()}}function Ove(r=pC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function $D(){let r=pC();return Mw=Mw!=null?Mw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}function ek(){return"availableParallelism"in Ow.default?Ow.default.availableParallelism():Math.max(1,Ow.default.cpus().length)}var Kve=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),Gw="yarn_",sk=".yarnrc.yml",ok="yarn.lock",Uve="********",ak=(u=>(u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP",u))(ak||{}),xi=Ue,rk={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:XD()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:Xl},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:ok},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Hw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:zy,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:eP,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Kw.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Kw.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Kw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Xy),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};function Ak(r,e,t,i,n){if(i.isArray||i.type==="ANY"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>ik(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>ik(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return ik(r,e,t,i,n)}function ik(r,e,t,i,n){var a;switch(i.type){case"ANY":return t;case"SHAPE":return Hve(r,e,t,i,n);case"MAP":return Gve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type==="BOOLEAN"&&typeof t!="string")return Wd(t);if(typeof t!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof t}`);let l=Wx(t,{env:process.env});switch(i.type){case"ABSOLUTE_PATH":return x.resolve(n,K.toPortablePath(l));case"LOCATOR_LOOSE":return Dc(l,!1);case"NUMBER":return parseInt(l);case"LOCATOR":return Dc(l);case"BOOLEAN":return Wd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function Hve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new Qe(`Object configuration settings "${e}" must be an object`);let s=lk(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new Qe(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,Ak(r,l,a,i.properties[o],n))}return s}function Gve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new Qe(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,Ak(r,c,a,u,n))}return s}function lk(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,lk(r,s));return i}break;case"MAP":return e.isArray&&!t?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:r.projectCwd===null?x.isAbsolute(e.default)?x.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>x.resolve(r.projectCwd,i)):x.resolve(r.projectCwd,e.default);default:return e.default}}function Uw(r,e,t){if(e.type==="SECRET"&&typeof r=="string"&&t.hideSecrets)return Uve;if(e.type==="ABSOLUTE_PATH"&&typeof r=="string"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(Uw(n,e,t));return i}if(e.type==="MAP"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,Uw(s,e.valueDefinition,t));return i}if(e.type==="SHAPE"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,Uw(s,o,t))}return i}return r}function Yve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(Gw)&&(e=(0,mz.default)(e.slice(Gw.length)),r[e]=t);return r}function Hw(){let r=`${Gw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return sk}var ck=(i=>(i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE",i))(ck||{}),Ha=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new Ha(e);typeof t<"u"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(rk);let s=typeof i<"u"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=Yve();delete a.rcFilename;let l=await Ha.findRcFiles(e),c=await Ha.findHomeRcFile();if(c){let B=l.find(v=>v.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:v,ignorePath:D,lockfileFilename:T})=>({ignoreCwd:B,yarnPath:v,ignorePath:D,lockfileFilename:T}),g=({ignoreCwd:B,yarnPath:v,ignorePath:D,lockfileFilename:T,...H})=>H,f=new Ha(e);f.importSettings(u(rk)),f.useWithSource("",u(a),e,{strict:!1});for(let{path:B,cwd:v,data:D}of l)f.useWithSource(B,u(D),v,{strict:!1});if(s){let B=f.get("yarnPath"),v=f.get("ignorePath");if(B!==null&&!v)return f}let h=f.get("lockfileFilename"),p;switch(i){case 0:p=await Ha.findProjectCwd(e,h);break;case 1:p=await Ha.findProjectCwd(e,null);break;case 2:O.existsSync(x.join(e,"package.json"))?p=x.resolve(e):p=null;break}f.startingCwd=e,f.projectCwd=p,f.importSettings(g(rk));let C=new Map([["@@core",x8]]),y=B=>"default"in B?B.default:B;if(t!==null){for(let T of t.plugins.keys())C.set(T,y(t.modules.get(T)));let B=new Map;for(let T of _D())B.set(T,()=>mf(T));for(let[T,H]of t.modules)B.set(T,()=>H);let v=new Set,D=async(T,H)=>{let{factory:j,name:$}=mf(T);if(v.has($))return;let V=new Map(B),W=A=>{if(V.has(A))return V.get(A)();throw new Qe(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},_=await df(async()=>y(await j(W)),A=>`${A} (when initializing ${$}, defined in ${H})`);B.set($,()=>_),v.add($),C.set($,_)};if(a.plugins)for(let T of a.plugins.split(";")){let H=x.resolve(e,K.toPortablePath(T));await D(H,"")}for(let{path:T,cwd:H,data:j}of l)if(!!o&&!!Array.isArray(j.plugins))for(let $ of j.plugins){let V=typeof $!="string"?$.path:$,W=x.resolve(H,K.toPortablePath(V));await D(W,T)}}for(let[B,v]of C)f.activatePlugin(B,v);f.useWithSource("",g(a),e,{strict:n});for(let{path:B,cwd:v,data:D,strict:T}of l)f.useWithSource(B,g(D),v,{strict:T!=null?T:n});return f.get("enableGlobalCache")&&(f.values.set("cacheFolder",`${f.get("globalFolder")}/cache`),f.sources.set("cacheFolder","")),await f.refreshPackageExtensions(),f}static async findRcFiles(e){let t=Hw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=x.join(s,t);if(O.existsSync(o)){let a=await O.readFilePromise(o,"utf8"),l;try{l=yi(a)}catch{let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new Qe(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=x.dirname(s)}return i}static async findHomeRcFile(){let e=Hw(),t=hC(),i=x.join(t,e);if(O.existsSync(i)){let n=await O.readFilePromise(i,"utf8"),s=yi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,O.existsSync(x.join(s,"package.json"))&&(i=s),t!==null){if(O.existsSync(x.join(s,t))){i=s;break}}else if(i!==null)break;n=x.dirname(s)}return i}static async updateConfiguration(e,t){let i=Hw(),n=x.join(e,i),s=O.existsSync(n)?yi(await O.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await O.changeFilePromise(n,ba(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=hC();return await Ha.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<"u"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,lk(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${$e(this,e,Ue.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]>"u"||o==="plugins"||e===""&&Kve.has(o))continue;if(o==="rcFilename")throw new Qe(`The rcFilename settings can only be set via ${`${Gw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new Qe(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type==="MAP"||l.isArray&&l.concatenateValues))continue;let c;try{c=Ak(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${$e(this,e,Ue.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type==="MAP"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>"u")throw new Qe(`Couldn't find a configuration settings named "${e}"`);return Uw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=O.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${$e(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${$e(this,"STDERR","red")}`);s=new nk.PassThrough,s.pipe(l),s.pipe(a),o=new nk.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<"u"&&s.write(`${t} +`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new kf([new fC,new Yr,new Nw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new Df([new Ff,new Tf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=pC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Ho(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Ho.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!so(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[f,h]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:f,value:h})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(WA(i,!0),Jy(n),{userProvided:!0})}normalizePackage(e){let t=rC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!kc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",Ta(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qx(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=tn(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,_t(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=Jo("types",o),l=Mt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,_t(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(bn(t.dependencies,([,s])=>Sn(s))),t.peerDependencies=new Map(bn(t.peerDependencies,([,s])=>Sn(s))),t}getLimit(e){return Ta(this.limits,e,()=>(0,Ez.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},ye=Ha;ye.telemetry=null;var hk=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hk||{}),dC=class extends at{constructor({fileName:t,code:i,signal:n}){let s=ye.create(x.cwd()),o=$e(s,t,Ue.PATH);super(1,`Child ${o} reported an error`,a=>{qve(i,n,{configuration:s,report:a})});this.code=pk(i,n)}},Yw=class extends dC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Nc(r){return r!==null&&typeof r.fd=="number"}var Tc=new Set;function uk(){}function gk(){for(let r of Tc)r.kill()}async function oo(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Nc(s)&&(c[0]=s),Nc(o)&&(c[1]=o),Nc(a)&&(c[2]=a);let u=(0,fk.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Tc.add(u),Tc.size===1&&(process.on("SIGINT",uk),process.on("SIGTERM",gk)),!Nc(s)&&s!==null&&s.pipe(u.stdin),Nc(o)||u.stdout.pipe(o,{end:!1}),Nc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let f of new Set([o,a]))Nc(f)||f.end()};return new Promise((f,h)=>{u.on("error",p=>{Tc.delete(u),Tc.size===0&&(process.off("SIGINT",uk),process.off("SIGTERM",gk)),(l===2||l===1)&&g(),h(p)}),u.on("close",(p,C)=>{Tc.delete(u),Tc.size===0&&(process.off("SIGINT",uk),process.off("SIGTERM",gk)),(l===2||l===1&&p>0)&&g(),p===0||!n?f({code:pk(p,C)}):h(new dC({fileName:r,code:p,signal:C}))})})}async function tk(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<"u"&&(i={...i,PWD:c});let u=(0,fk.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,f)=>{u.on("error",h=>{let p=ye.create(t),C=$e(p,r,Ue.PATH);f(new at(1,`Process ${C} failed to spawn`,y=>{y.reportError(1,` ${Go(p,{label:"Thrown Error",value:no(Ue.NO_HINT,h.message)})}`)}))}),u.on("close",(h,p)=>{let C=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);h===0||!s?g({code:pk(h,p),stdout:C,stderr:y}):f(new Yw({fileName:r,code:h,signal:p,stdout:C,stderr:y}))})})}var jve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function pk(r,e){let t=jve.get(e);return typeof t<"u"?128+t:r!=null?r:1}function qve(r,e,{configuration:t,report:i}){i.reportError(1,` ${Go(t,r!==null?{label:"Exit Code",value:no(Ue.NUMBER,r)}:{label:"Exit Signal",value:no(Ue.CODE,e)})}`)}var Xt={};ut(Xt,{Method:()=>eV,RequestError:()=>tV.RequestError,del:()=>nke,get:()=>rke,getNetworkSettings:()=>$6,post:()=>kR,put:()=>ike,request:()=>vC});var X6=Pe(CB()),Z6=J("https"),_6=J("http"),DR=Pe(Bn()),PR=Pe(J6()),mB=J("url");var tV=Pe(CB()),W6=new Map,z6=new Map,$De=new _6.Agent({keepAlive:!0}),eke=new Z6.Agent({keepAlive:!0});function V6(r){let e=new mB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),{proxy:t}}async function xR(r){return Ta(z6,r,()=>O.readFilePromise(r).then(e=>(z6.set(r,e),e)))}function tke({statusCode:r,statusMessage:e},t){let i=$e(t,r,Ue.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return If(t,`${i}${e?` (${e})`:""}`,n)}async function EB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof X6.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${$e(e,"httpTimeout",Ue.SETTING)})`);let a=new at(35,o,l=>{s.response&&l.reportError(35,` ${Go(e,{label:"Response Code",value:no(Ue.NO_HINT,tke(s.response,e))})}`),s.request&&(l.reportError(35,` ${Go(e,{label:"Request Method",value:no(Ue.NO_HINT,s.request.options.method)})}`),l.reportError(35,` ${Go(e,{label:"Request URL",value:no(Ue.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,` ${Go(e,{label:"Request Redirects",value:no(Ue.NO_HINT,tP(e,s.request.redirects,Ue.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,` ${Go(e,{label:"Request Retry Count",value:no(Ue.NO_HINT,`${$e(e,s.request.retryCount,Ue.NUMBER)} (can be increased via ${$e(e,"httpRetry",Ue.SETTING)})`)})}`)});throw a.originalError=s,a}}function $6(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new mB.URL(r):r;for(let[o,a]of t)if(DR.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>"u"&&(i[l]=c)}for(let o of n)typeof i[o]>"u"&&(i[o]=e.configuration.get(o));return i}var eV=(n=>(n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE",n))(eV||{});async function vC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=async()=>await ske(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function rke(r,{configuration:e,jsonResponse:t,...i}){let n=Ta(W6,r,()=>EB(vC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(W6.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function ike(r,e,{customErrorMessage:t,...i}){return(await EB(vC(r,e,{...i,method:"PUT"}),i)).body}async function kR(r,e,{customErrorMessage:t,...i}){return(await EB(vC(r,e,{...i,method:"POST"}),i)).body}async function nke(r,{customErrorMessage:e,...t}){return(await EB(vC(r,null,{...t,method:"DELETE"}),t)).body}async function ske(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=typeof r=="string"?new mB.URL(r):r,l=$6(a,{configuration:t});if(l.enableNetwork===!1)throw new Error(`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!DR.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?PR.default.httpOverHttp(V6(l.httpProxy)):$De,https:l.httpsProxy?PR.default.httpsOverHttp(V6(l.httpsProxy)):eke},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),f=t.get("httpRetry"),h=t.get("enableStrictSsl"),p=l.caFilePath,C=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>Pe(CB())),v=p?await xR(p):void 0,D=C?await xR(C):void 0,T=y?await xR(y):void 0,H=B.extend({timeout:{socket:g},retry:f,https:{rejectUnauthorized:h,certificateAuthority:v,certificate:D,key:T},...u});return t.getLimit("networkConcurrency")(()=>H(a))}var Wt={};ut(Wt,{PackageManager:()=>f9,detectPackageManager:()=>h9,executePackageAccessibleBinary:()=>E9,executePackageScript:()=>TB,executePackageShellcode:()=>JR,executeWorkspaceAccessibleBinary:()=>bRe,executeWorkspaceLifecycleScript:()=>C9,executeWorkspaceScript:()=>d9,getPackageAccessibleBinaries:()=>LB,getWorkspaceAccessibleBinaries:()=>m9,hasPackageScript:()=>yRe,hasWorkspaceScript:()=>WR,isNodeScript:()=>zR,makeScriptEnv:()=>FC,maybeExecuteWorkspaceLifecycleScript:()=>BRe,prepareExternalProject:()=>IRe});var xC={};ut(xC,{getLibzipPromise:()=>an,getLibzipSync:()=>aV});var oV=Pe(iV());var Ja=["number","number"],nV=(F=>(F[F.ZIP_ER_OK=0]="ZIP_ER_OK",F[F.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",F[F.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",F[F.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",F[F.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",F[F.ZIP_ER_READ=5]="ZIP_ER_READ",F[F.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",F[F.ZIP_ER_CRC=7]="ZIP_ER_CRC",F[F.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",F[F.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",F[F.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",F[F.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",F[F.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",F[F.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",F[F.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",F[F.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",F[F.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",F[F.ZIP_ER_EOF=17]="ZIP_ER_EOF",F[F.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",F[F.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",F[F.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",F[F.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",F[F.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",F[F.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",F[F.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",F[F.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",F[F.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",F[F.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",F[F.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",F[F.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",F[F.ZIP_ER_TELL=30]="ZIP_ER_TELL",F[F.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",F))(nV||{}),sV=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:nV,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...Ja,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...Ja,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...Ja,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...Ja,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...Ja,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...Ja,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number",...Ja,"number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...Ja,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...Ja,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var NR=null;function aV(){return NR===null&&(NR=sV((0,oV.default)())),NR}async function an(){return aV()}var RC={};ut(RC,{ShellError:()=>zn,execute:()=>xB,globUtils:()=>BB});var yV=Pe(wx()),wV=J("os"),Vn=J("stream"),BV=J("util");var zn=class extends Error{constructor(e){super(e),this.name="ShellError"}};var BB={};ut(BB,{fastGlobOptions:()=>cV,isBraceExpansion:()=>TR,isGlobPattern:()=>oke,match:()=>ake,micromatchOptions:()=>wB});var AV=Pe(dw()),lV=Pe(J("fs")),yB=Pe(Bn()),wB={strictBrackets:!0},cV={onlyDirectories:!1,onlyFiles:!1};function oke(r){if(!yB.default.scan(r,wB).isGlob)return!1;try{yB.default.parse(r,wB)}catch{return!1}return!0}function ake(r,{cwd:e,baseFs:t}){return(0,AV.default)(r,{...cV,cwd:K.fromPortablePath(e),fs:AI(lV.default,new vg(t))})}function TR(r){return yB.default.scan(r,wB).isBrace}var gV=Pe(TS()),Vo=J("stream"),fV=J("string_decoder");var Oc=new Set;function LR(){}function MR(){for(let r of Oc)r.kill()}function hV(r,e,t,i){return n=>{let s=n[0]instanceof Vo.Transform?"pipe":n[0],o=n[1]instanceof Vo.Transform?"pipe":n[1],a=n[2]instanceof Vo.Transform?"pipe":n[2],l=(0,gV.default)(r,e,{...i,stdio:[s,o,a]});return Oc.add(l),Oc.size===1&&(process.on("SIGINT",LR),process.on("SIGTERM",MR)),n[0]instanceof Vo.Transform&&n[0].pipe(l.stdin),n[1]instanceof Vo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof Vo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Oc.delete(l),Oc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",MR)),u.code){case"ENOENT":n[2].write(`command not found: ${r} `),c(127);break;case"EACCES":n[2].write(`permission denied: ${r} `),c(128);break;default:n[2].write(`uncaught error: ${u.message} -`),c(1);break}}),l.on("close",u=>{Oc.delete(l),Oc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",MR)),c(u!==null?u:129)})})}}}function fV(r){return e=>{let t=e[0]==="pipe"?new Vo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var Ss=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},OR=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},zf=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new zf(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new zf(this,e),n=new OR;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function bB(r,e){return zf.start(r,e)}function lV(r,e=null){let t=new Vo.PassThrough,i=new uV.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",r(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&r(e!==null?`${e} ${s}`:s)}),t}function hV(r,{prefix:e}){return{stdout:lV(t=>r.stdout.write(`${t} -`),r.stdout.isTTY?e:null),stderr:lV(t=>r.stderr.write(`${t} -`),r.stderr.isTTY?e:null)}}var oke=(0,yV.promisify)(setTimeout);function pV(r,e,t){let i=new Vn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Vn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new zn(`Bad file descriptor: "${r}"`)}return i}function SB(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var ake=new Map([["cd",async([r=(0,IV.homedir)(),...e],t,i)=>{let n=x.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new zn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new zn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)} +`),c(1);break}}),l.on("close",u=>{Oc.delete(l),Oc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",MR)),c(u!==null?u:129)})})}}}function pV(r){return e=>{let t=e[0]==="pipe"?new Vo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var Ss=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},OR=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},zf=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new zf(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new zf(this,e),n=new OR;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function bB(r,e){return zf.start(r,e)}function uV(r,e=null){let t=new Vo.PassThrough,i=new fV.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",r(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&r(e!==null?`${e} ${s}`:s)}),t}function dV(r,{prefix:e}){return{stdout:uV(t=>r.stdout.write(`${t} +`),r.stdout.isTTY?e:null),stderr:uV(t=>r.stderr.write(`${t} +`),r.stderr.isTTY?e:null)}}var Ake=(0,BV.promisify)(setTimeout);function CV(r,e,t){let i=new Vn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Vn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new zn(`Bad file descriptor: "${r}"`)}return i}function SB(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var lke=new Map([["cd",async([r=(0,wV.homedir)(),...e],t,i)=>{let n=x.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new zn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new zn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)} `),0)],[":",async(r,e,t)=>0],["true",async(r,e,t)=>0],["false",async(r,e,t)=>1],["exit",async([r,...e],t,i)=>i.exitCode=parseInt(r!=null?r:i.variables["?"],10)],["echo",async(r,e,t)=>(t.stdout.write(`${r.join(" ")} -`),0)],["sleep",async([r],e,t)=>{if(typeof r>"u")throw new zn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new zn(`sleep: invalid time interval '${r}'`);return await oke(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await bB(i,{stdin:new Ss(t.stdin),stdout:new Ss(t.stdout),stderr:new Ss(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:f,fd:h}=JSON.parse(g),p=v=>{switch(h){case null:case 0:o.push(v);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},C=v=>{switch(h){case null:case 1:a.push(v);break;case 2:l.push(v);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},y=Number(r[c++]),B=c+y;for(let v=c;ve.baseFs.createReadStream(x.resolve(t.cwd,K.toPortablePath(r[v]))));break;case"<<<":p(()=>{let D=new Vn.PassThrough;return process.nextTick(()=>{D.write(`${r[v]} -`),D.end()}),D});break;case"<&":p(()=>pV(Number(r[v]),1,t));break;case">":case">>":{let D=x.resolve(t.cwd,K.toPortablePath(r[v]));C(D==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(T,H,j){setImmediate(j)}}):e.baseFs.createWriteStream(D,f===">>"?{flags:"a"}:void 0))}break;case">&":C(pV(Number(r[v]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${f}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let f=h=>{if(h===o.length)g.end();else{let p=o[h]();p.pipe(g,{end:!1}),p.on("end",()=>{f(h+1)})}};f(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let f of a)g.pipe(f)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let f of l)g.pipe(f)}let u=await bB(DC(r.slice(c+1),e,t),{stdin:new Ss(i),stdout:new Ss(n),stderr:new Ss(s)}).run();return await Promise.all(a.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),await Promise.all(l.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),u}]]);async function Ake(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await vB(r,e,SB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function dV(r,e,t){let i=r.map(async s=>{let o=await Kc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function QB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function wV(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=QB(s);for(let a=0;a=0&&s"u"&&(r.defaultValue?o=(await Kc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=QB(o);for(let u=0;ur+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function PC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await wV({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?PC({type:"variable",name:i.join(" ")},e,t):PC({type:"number",value:n},e,t)}else return lke[r.type](await PC(r.left,e,t),await PC(r.right,e,t))}async function Kc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,f)=>{let h=JSON.stringify({type:u,fd:g}),p=i.get(h);typeof p>"u"&&i.set(h,p=[]),p.push(f)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let f=await Kc(u.args,e,t);for(let h of f)c(u.subtype,u.fd,h)}break;case"argument":for(let f of u.segments)switch(f.type){case"text":o(f.text);break;case"glob":o(f.pattern),g=!0;break;case"shell":{let h=await Ake(f.shell,e,t);if(f.quoted)o(h);else{let p=QB(h);for(let C=0;C"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let h=await e.glob.match(f,{cwd:t.cwd,baseFs:e.baseFs});if(h.length===0){let p=TR(f)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${f}"${p}`)}for(let p of h.sort())l(p)}}if(i.size>0){let u=[];for(let[g,f]of i.entries())u.splice(u.length,0,g,String(f.length),...f);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return gV(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return fV(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:f,stderr:h}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=f,t.stderr=h}})}function cke(r,e,t){return i=>{let n=new Vn.PassThrough,s=vB(r,e,SB(t,{stdin:n}));return{stdin:n,promise:s}}}function uke(r,e,t){return i=>{let n=new Vn.PassThrough,s=vB(r,e,t);return{stdin:n,promise:s}}}function CV(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,DC([...e,"__ysh_run_procedure",n],t,i)}}async function mV(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case"command":{let l=await Kc(i.args,e,t),c=await dV(i.envs,e,t);a=i.envs.length?DC(l,e,SB(o,{environment:c})):DC(l,e,o)}break;case"subshell":{let l=await Kc(i.args,e,t),c=cke(i.subshell,e,o);a=CV(c,l,e,o)}break;case"group":{let l=await Kc(i.args,e,t),c=uke(i.group,e,o);a=CV(c,l,e,o)}break;case"envs":{let l=await dV(i.envs,e,t);o.environment={...o.environment,...l},a=DC(["true"],e,o)}break}if(typeof a>"u")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=bB(a,{stdin:new Ss(o.stdin),stdout:new Ss(o.stdout),stderr:new Ss(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,1);break;case"|&":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function gke(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return EV.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=hV(t,{prefix:l});return t.backgroundJobs.push(mV(r,e,SB(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} +`),0)],["sleep",async([r],e,t)=>{if(typeof r>"u")throw new zn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new zn(`sleep: invalid time interval '${r}'`);return await Ake(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await bB(i,{stdin:new Ss(t.stdin),stdout:new Ss(t.stdout),stderr:new Ss(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:f,fd:h}=JSON.parse(g),p=v=>{switch(h){case null:case 0:o.push(v);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},C=v=>{switch(h){case null:case 1:a.push(v);break;case 2:l.push(v);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},y=Number(r[c++]),B=c+y;for(let v=c;ve.baseFs.createReadStream(x.resolve(t.cwd,K.toPortablePath(r[v]))));break;case"<<<":p(()=>{let D=new Vn.PassThrough;return process.nextTick(()=>{D.write(`${r[v]} +`),D.end()}),D});break;case"<&":p(()=>CV(Number(r[v]),1,t));break;case">":case">>":{let D=x.resolve(t.cwd,K.toPortablePath(r[v]));C(D==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(T,H,j){setImmediate(j)}}):e.baseFs.createWriteStream(D,f===">>"?{flags:"a"}:void 0))}break;case">&":C(CV(Number(r[v]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${f}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let f=h=>{if(h===o.length)g.end();else{let p=o[h]();p.pipe(g,{end:!1}),p.on("end",()=>{f(h+1)})}};f(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let f of a)g.pipe(f)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let f of l)g.pipe(f)}let u=await bB(DC(r.slice(c+1),e,t),{stdin:new Ss(i),stdout:new Ss(n),stderr:new Ss(s)}).run();return await Promise.all(a.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),await Promise.all(l.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),u}]]);async function cke(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await vB(r,e,SB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function mV(r,e,t){let i=r.map(async s=>{let o=await Kc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function QB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function bV(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=QB(s);for(let a=0;a=0&&s"u"&&(r.defaultValue?o=(await Kc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=QB(o);for(let u=0;ur+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function PC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await bV({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?PC({type:"variable",name:i.join(" ")},e,t):PC({type:"number",value:n},e,t)}else return uke[r.type](await PC(r.left,e,t),await PC(r.right,e,t))}async function Kc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,f)=>{let h=JSON.stringify({type:u,fd:g}),p=i.get(h);typeof p>"u"&&i.set(h,p=[]),p.push(f)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let f=await Kc(u.args,e,t);for(let h of f)c(u.subtype,u.fd,h)}break;case"argument":for(let f of u.segments)switch(f.type){case"text":o(f.text);break;case"glob":o(f.pattern),g=!0;break;case"shell":{let h=await cke(f.shell,e,t);if(f.quoted)o(h);else{let p=QB(h);for(let C=0;C"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let h=await e.glob.match(f,{cwd:t.cwd,baseFs:e.baseFs});if(h.length===0){let p=TR(f)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${f}"${p}`)}for(let p of h.sort())l(p)}}if(i.size>0){let u=[];for(let[g,f]of i.entries())u.splice(u.length,0,g,String(f.length),...f);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return hV(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return pV(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:f,stderr:h}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=f,t.stderr=h}})}function gke(r,e,t){return i=>{let n=new Vn.PassThrough,s=vB(r,e,SB(t,{stdin:n}));return{stdin:n,promise:s}}}function fke(r,e,t){return i=>{let n=new Vn.PassThrough,s=vB(r,e,t);return{stdin:n,promise:s}}}function EV(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,DC([...e,"__ysh_run_procedure",n],t,i)}}async function IV(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case"command":{let l=await Kc(i.args,e,t),c=await mV(i.envs,e,t);a=i.envs.length?DC(l,e,SB(o,{environment:c})):DC(l,e,o)}break;case"subshell":{let l=await Kc(i.args,e,t),c=gke(i.subshell,e,o);a=EV(c,l,e,o)}break;case"group":{let l=await Kc(i.args,e,t),c=fke(i.group,e,o);a=EV(c,l,e,o)}break;case"envs":{let l=await mV(i.envs,e,t);o.environment={...o.environment,...l},a=DC(["true"],e,o)}break}if(typeof a>"u")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=bB(a,{stdin:new Ss(o.stdin),stdout:new Ss(o.stdout),stderr:new Ss(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,1);break;case"|&":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function hke(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return yV.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=dV(t,{prefix:l});return t.backgroundJobs.push(IV(r,e,SB(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} `)).finally(()=>{t.stdout.isTTY&&t.stdout.write(`Job ${l}, '${o(Fg(r))}' has ended -`)})),0}return await mV(r,e,t)}async function fke(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await gke(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof zn))throw l;return t.stderr.write(`${l.message} -`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function vB(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await fke(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function BV(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>kC(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>kC(e));case"arithmetic":return KR(r.arithmetic);case"shell":return UR(r.shell);default:return!1}}function kC(r){switch(r.type){case"redirection":return r.args.some(e=>kC(e));case"argument":return r.segments.some(e=>BV(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function KR(r){switch(r.type){case"variable":return BV(r);case"number":return!1;default:return KR(r.left)||KR(r.right)}}function UR(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=UR(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>kC(s)))||t.args.some(n=>kC(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function xB(r,e=[],{baseFs:t=new $t,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=BB}={}){let g={};for(let[p,C]of Object.entries(s))typeof C<"u"&&(g[p]=C);let f=new Map(ake);for(let[p,C]of Object.entries(i))f.set(p,C);o===null&&(o=new Vn.PassThrough,o.end());let h=uI(r,u);if(!UR(h)&&h.length>0&&e.length>0){let{command:p}=h[h.length-1];for(;p.then;)p=p.then.line;let C=p.chain;for(;C.then;)C=C.then.chain;C.type==="command"&&(C.args=C.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await vB(h,{args:e,baseFs:t,builtins:f,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var l9=Pe(PB()),c9=Pe(Jg()),tl=J("stream");var a9=Pe(i9()),FB=Pe(Ac());var n9=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],s9=80,uRe=new Set([13,19]),gRe=5,RB=FB.default.GITHUB_ACTIONS?{start:r=>`::group::${r} +`)})),0}return await IV(r,e,t)}async function pke(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await hke(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof zn))throw l;return t.stderr.write(`${l.message} +`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function vB(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await pke(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function QV(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>kC(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>kC(e));case"arithmetic":return KR(r.arithmetic);case"shell":return UR(r.shell);default:return!1}}function kC(r){switch(r.type){case"redirection":return r.args.some(e=>kC(e));case"argument":return r.segments.some(e=>QV(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function KR(r){switch(r.type){case"variable":return QV(r);case"number":return!1;default:return KR(r.left)||KR(r.right)}}function UR(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=UR(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>kC(s)))||t.args.some(n=>kC(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function xB(r,e=[],{baseFs:t=new $t,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=BB}={}){let g={};for(let[p,C]of Object.entries(s))typeof C<"u"&&(g[p]=C);let f=new Map(lke);for(let[p,C]of Object.entries(i))f.set(p,C);o===null&&(o=new Vn.PassThrough,o.end());let h=uI(r,u);if(!UR(h)&&h.length>0&&e.length>0){let{command:p}=h[h.length-1];for(;p.then;)p=p.then.line;let C=p.chain;for(;C.then;)C=C.then.chain;C.type==="command"&&(C.args=C.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await vB(h,{args:e,baseFs:t,builtins:f,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var u9=Pe(PB()),g9=Pe(Jg()),tl=J("stream");var l9=Pe(s9()),FB=Pe(Ac());var o9=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],a9=80,fRe=new Set([13,19]),hRe=5,RB=FB.default.GITHUB_ACTIONS?{start:r=>`::group::${r} `,end:r=>`::endgroup:: `}:FB.default.TRAVIS?{start:r=>`travis_fold:start:${r} `,end:r=>`travis_fold:end:${r} `}:FB.default.GITLAB?{start:r=>`section_start:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${r} -`,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,o9=new Date,fRe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,hRe=r=>r,NB=hRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),pRe=fRe&&Object.keys(NB).find(r=>{let e=NB[r];return!(e.date&&(e.date[0]!==o9.getDate()||e.date[1]!==o9.getMonth()+1))})||"default";function A9(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=NA(r===null?0:r);return!t&&r===null?$e(e,n,"grey"):n}function qR(r,{configuration:e,json:t}){let i=A9(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=Ct[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return If(e,i,s)}var Ge=class extends vi{constructor({configuration:t,stdout:i,json:n=!1,includePrefix:s=!0,includeFooter:o=!0,includeLogs:a=!n,includeInfos:l=a,includeWarnings:c=a,forgettableBufferSize:u=gRe,forgettableNames:g=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Xd(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=u,this.forgettableNames=new Set([...g,...uRe]),this.includePrefix=s,this.includeFooter=o,this.includeInfos=l,this.includeWarnings=c,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let f=t.get("progressBarStyle")||pRe;if(!Object.prototype.hasOwnProperty.call(NB,f))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=NB[f];let h=12,p=Math.max(0,Math.min(i.columns-h,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*p/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!="string"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<"u"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i=="function"?i:n,reportHeader:()=>{this.reportInfo(null,`\u250C ${t}`),this.indent+=1,RB!==null&&!this.json&&this.includeInfos&&this.stdout.write(RB.start(t))},reportFooter:a=>{if(this.indent-=1,RB!==null&&!this.json&&this.includeInfos){this.stdout.write(RB.end(t));for(let[l,c]of this.errors)this.reportErrorImpl(l,c)}this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${$e(this.configuration,a,Ue.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof i=="function"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"",o=`${this.formatPrefix(s,"blueBright")}${i}`;if(this.json)this.reportJson({type:"info",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(o,{truncate:!0});else this.writeLineWithForgettableReset(o)}reportWarning(t,i){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"warning",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"yellowBright")}${i}`)}reportError(t,i){this.errors.push([t,i]),this.reportErrorImpl(t,i)}reportErrorImpl(t,i){this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"error",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"redBright")}${i}`,{truncate:!1})}reportProgress(t){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(t.hasProgress&&t.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let i=!1,n=Promise.resolve().then(async()=>{let o={progress:t.hasProgress?0:void 0,title:t.hasTitle?"":void 0};this.progress.set(t,{definition:o,lastScaledSize:t.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:a,title:l}of t)i||o.progress===a&&o.title===l||(o.progress=a,o.title=l,this.refreshProgress());s()}),s=()=>{i||(i=!0,this.progress.delete(t),this.refreshProgress({delta:1}))};return{...n,stop:s}}reportJson(t){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(t)}`)}async finalize(){if(!this.includeFooter)return;let t="";this.errors.length>0?t="Failed with errors":this.warningCount>0?t="Done with warnings":t="Done";let i=$e(this.configuration,Date.now()-this.startTime,Ue.DURATION),n=this.configuration.get("enableTimers")?`${t} in ${i}`:t;this.errors.length>0?this.reportError(0,n):this.warningCount>0?this.reportWarning(0,n):this.reportInfo(0,n)}writeLine(t,{truncate:i}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(t,{truncate:i})} +`,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,A9=new Date,pRe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,dRe=r=>r,NB=dRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),CRe=pRe&&Object.keys(NB).find(r=>{let e=NB[r];return!(e.date&&(e.date[0]!==A9.getDate()||e.date[1]!==A9.getMonth()+1))})||"default";function c9(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=FA(r===null?0:r);return!t&&r===null?$e(e,n,"grey"):n}function qR(r,{configuration:e,json:t}){let i=c9(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=Ct[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return If(e,i,s)}var Ge=class extends vi{constructor({configuration:t,stdout:i,json:n=!1,includePrefix:s=!0,includeFooter:o=!0,includeLogs:a=!n,includeInfos:l=a,includeWarnings:c=a,forgettableBufferSize:u=hRe,forgettableNames:g=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Xd(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=u,this.forgettableNames=new Set([...g,...fRe]),this.includePrefix=s,this.includeFooter=o,this.includeInfos=l,this.includeWarnings=c,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let f=t.get("progressBarStyle")||CRe;if(!Object.prototype.hasOwnProperty.call(NB,f))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=NB[f];let h=12,p=Math.max(0,Math.min(i.columns-h,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*p/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!="string"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<"u"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i=="function"?i:n,reportHeader:()=>{this.reportInfo(null,`\u250C ${t}`),this.indent+=1,RB!==null&&!this.json&&this.includeInfos&&this.stdout.write(RB.start(t))},reportFooter:a=>{if(this.indent-=1,RB!==null&&!this.json&&this.includeInfos){this.stdout.write(RB.end(t));for(let[l,c]of this.errors)this.reportErrorImpl(l,c)}this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${$e(this.configuration,a,Ue.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof i=="function"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"",o=`${this.formatPrefix(s,"blueBright")}${i}`;if(this.json)this.reportJson({type:"info",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(o,{truncate:!0});else this.writeLineWithForgettableReset(o)}reportWarning(t,i){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"warning",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"yellowBright")}${i}`)}reportError(t,i){this.errors.push([t,i]),this.reportErrorImpl(t,i)}reportErrorImpl(t,i){this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"error",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"redBright")}${i}`,{truncate:!1})}reportProgress(t){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(t.hasProgress&&t.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let i=!1,n=Promise.resolve().then(async()=>{let o={progress:t.hasProgress?0:void 0,title:t.hasTitle?"":void 0};this.progress.set(t,{definition:o,lastScaledSize:t.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:a,title:l}of t)i||o.progress===a&&o.title===l||(o.progress=a,o.title=l,this.refreshProgress());s()}),s=()=>{i||(i=!0,this.progress.delete(t),this.refreshProgress({delta:1}))};return{...n,stop:s}}reportJson(t){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(t)}`)}async finalize(){if(!this.includeFooter)return;let t="";this.errors.length>0?t="Failed with errors":this.warningCount>0?t="Done with warnings":t="Done";let i=$e(this.configuration,Date.now()-this.startTime,Ue.DURATION),n=this.configuration.get("enableTimers")?`${t} in ${i}`:t;this.errors.length>0?this.reportError(0,n):this.warningCount>0?this.reportWarning(0,n):this.reportInfo(0,n)}writeLine(t,{truncate:i}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(t,{truncate:i})} `),this.writeProgress()}writeLineWithForgettableReset(t,{truncate:i}={}){this.forgettableLines=[],this.writeLine(t,{truncate:i})}writeLines(t,{truncate:i}={}){this.clearProgress({delta:t.length});for(let n of t)this.stdout.write(`${this.truncate(n,{truncate:i})} -`);this.writeProgress()}reportCacheChanges({cacheHitCount:t,cacheMissCount:i}){let n=this.cacheHitCount-t,s=this.cacheMissCount-i;if(n===0&&s===0)return;let o="";this.cacheHitCount>1?o+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?o+=" - one package was already cached":o+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?o+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(o+=`, one had to be fetched (${mt(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?o+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(o+=` - one package had to be fetched (${mt(this.configuration,this.lastCacheMiss)})`),this.reportInfo(13,o)}commit(){let t=this.uncommitted;this.uncommitted=new Set;for(let i of t)i.committed=!0,i.action()}clearProgress({delta:t=0,clear:i=!1}){this.progressStyle!==null&&this.progress.size+t>0&&(this.stdout.write(`\x1B[${this.progress.size+t}A`),(t>0||i)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let t=Date.now();t-this.progressTime>s9&&(this.progressFrame=(this.progressFrame+1)%n9.length,this.progressTime=t);let i=n9[this.progressFrame];for(let n of this.progress.values()){let s="";if(typeof n.lastScaledSize<"u"){let c=this.progressStyle.chars[0].repeat(n.lastScaledSize),u=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-n.lastScaledSize);s=` ${c}${u}`}let o=this.formatName(null),a=o?`${o}: `:"",l=n.definition.title?` ${n.definition.title}`:"";this.stdout.write(`${$e(this.configuration,"\u27A4","blueBright")} ${a}${i}${s}${l} -`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},s9)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,a9.default)(t,0,this.stdout.columns-1)),t}formatName(t){return A9(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${$e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Tr="3.6.1";var u9=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(u9||{});async function Wa(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await O.writeFilePromise(x.format({dir:r,name:e,ext:".cmd"}),n)}await O.writeFilePromise(x.join(r,e),`#!/bin/sh +`);this.writeProgress()}reportCacheChanges({cacheHitCount:t,cacheMissCount:i}){let n=this.cacheHitCount-t,s=this.cacheMissCount-i;if(n===0&&s===0)return;let o="";this.cacheHitCount>1?o+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?o+=" - one package was already cached":o+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?o+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(o+=`, one had to be fetched (${mt(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?o+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(o+=` - one package had to be fetched (${mt(this.configuration,this.lastCacheMiss)})`),this.reportInfo(13,o)}commit(){let t=this.uncommitted;this.uncommitted=new Set;for(let i of t)i.committed=!0,i.action()}clearProgress({delta:t=0,clear:i=!1}){this.progressStyle!==null&&this.progress.size+t>0&&(this.stdout.write(`\x1B[${this.progress.size+t}A`),(t>0||i)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let t=Date.now();t-this.progressTime>a9&&(this.progressFrame=(this.progressFrame+1)%o9.length,this.progressTime=t);let i=o9[this.progressFrame];for(let n of this.progress.values()){let s="";if(typeof n.lastScaledSize<"u"){let c=this.progressStyle.chars[0].repeat(n.lastScaledSize),u=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-n.lastScaledSize);s=` ${c}${u}`}let o=this.formatName(null),a=o?`${o}: `:"",l=n.definition.title?` ${n.definition.title}`:"";this.stdout.write(`${$e(this.configuration,"\u27A4","blueBright")} ${a}${i}${s}${l} +`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},a9)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,l9.default)(t,0,this.stdout.columns-1)),t}formatName(t){return c9(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${$e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Tr="3.6.2";var f9=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(f9||{});async function el(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await O.writeFilePromise(x.format({dir:r,name:e,ext:".cmd"}),n)}await O.writeFilePromise(x.join(r,e),`#!/bin/sh exec "${t}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" -`,{mode:493})}async function g9(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=vw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await O.readFilePromise(x.join(r,xt.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:O.existsSync(x.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:O.existsSync(x.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function FC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,f]of Object.entries(process.env))typeof f<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=f);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([Wa(t,"node",process.execPath),...Tr!==null?[Wa(t,"run",process.execPath,[a,"run"]),Wa(t,"yarn",process.execPath,[a]),Wa(t,"yarnpkg",process.execPath,[a]),Wa(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),f=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Mt(e),s.npm_package_version=f;let h;if(g)h=g.cwd;else{let p=r.storedPackages.get(e.locatorHash);if(!p)throw new Error(`Package for ${mt(r.configuration,e)} not found in the project`);let C=r.configuration.getLinkers(),y={project:r,report:new Ge({stdout:new tl.PassThrough,configuration:r.configuration})},B=C.find(v=>v.supportsPackage(p,y));if(!B)throw new Error(`The package ${mt(r.configuration,p)} isn't supported by any of the available linkers`);h=await B.findPackageLocation(p,y)}s.npm_package_json=K.fromPortablePath(x.join(h,xt.manifest))}let l=Tr!==null?`yarn/${Tr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,f,h)=>await Wa(t,Ur(g),f,h)),s}var dRe=2,CRe=(0,c9.default)(dRe);async function mRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await CRe(async()=>{await O.mktempPromise(async o=>{let a=x.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&jo(s)?nC(s):s,f=g?Es(g):"an external project";c.write(`Packing ${f} from sources -`);let h=await g9(r),p;h!==null?(c.write(`Using ${h.packageManager} for bootstrap. Reason: ${h.reason} +`,{mode:493})}async function h9(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=vw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await O.readFilePromise(x.join(r,xt.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:O.existsSync(x.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:O.existsSync(x.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function FC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,f]of Object.entries(process.env))typeof f<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=f);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([el(t,"node",process.execPath),...Tr!==null?[el(t,"run",process.execPath,[a,"run"]),el(t,"yarn",process.execPath,[a]),el(t,"yarnpkg",process.execPath,[a]),el(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),f=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Mt(e),s.npm_package_version=f;let h;if(g)h=g.cwd;else{let p=r.storedPackages.get(e.locatorHash);if(!p)throw new Error(`Package for ${mt(r.configuration,e)} not found in the project`);let C=r.configuration.getLinkers(),y={project:r,report:new Ge({stdout:new tl.PassThrough,configuration:r.configuration})},B=C.find(v=>v.supportsPackage(p,y));if(!B)throw new Error(`The package ${mt(r.configuration,p)} isn't supported by any of the available linkers`);h=await B.findPackageLocation(p,y)}s.npm_package_json=K.fromPortablePath(x.join(h,xt.manifest))}let l=Tr!==null?`yarn/${Tr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,f,h)=>await el(t,Jr(g),f,h)),s}var mRe=2,ERe=(0,g9.default)(mRe);async function IRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await ERe(async()=>{await O.mktempPromise(async o=>{let a=x.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&qo(s)?nC(s):s,f=g?Es(g):"an external project";c.write(`Packing ${f} from sources +`);let h=await h9(r),p;h!==null?(c.write(`Using ${h.packageManager} for bootstrap. Reason: ${h.reason} `),p=h.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn -`),p="Yarn");let C=p==="Yarn"&&!(h!=null&&h.packageManagerField);await O.mktempPromise(async y=>{let B=await FC({binFolder:y,ignoreCorepack:C}),D=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],j=x.join(r,xt.manifest),$=await O.readFilePromise(j),V=await Wo(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(V.code!==0)return V.code;await O.writeFilePromise(j,$),await O.appendFilePromise(x.join(r,".npmignore"),`/.yarn +`),p="Yarn");let C=p==="Yarn"&&!(h!=null&&h.packageManagerField);await O.mktempPromise(async y=>{let B=await FC({binFolder:y,ignoreCorepack:C}),D=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],j=x.join(r,xt.manifest),$=await O.readFilePromise(j),V=await oo(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(V.code!==0)return V.code;await O.writeFilePromise(j,$),await O.appendFilePromise(x.join(r,".npmignore"),`/.yarn `),c.write(` -`),delete B.NODE_ENV;let W=await Wo("yarn",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(W.code!==0)return W.code;c.write(` -`);let _=await Wo("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let j=x.join(r,xt.lockfile);await O.existsPromise(j)||await O.writeFilePromise(j,"");let $=await Wo("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return $.code!==0?$.code:0}],["npm",async()=>{if(n!==null){let Ae=new tl.PassThrough,ge=Cf(Ae);Ae.pipe(c,{end:!1});let re=await Wo("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:Ae,stderr:u,end:0});if(Ae.end(),re.code!==0)return c.end(),u.end(),re.code;let M=(await ge).toString().trim();if(!kc(M,">=7.x")){let F=qo(null,"npm"),ue=_t(F,M),pe=_t(F,">=7.x");throw new Error(`Workspaces aren't supported by ${tr(t,ue)}; please upgrade to ${tr(t,pe)} (npm has been detected as the primary package manager for ${$e(t,r,Ue.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let j=await Wo("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(j.code!==0)return j.code;let $=new tl.PassThrough,V=Cf($);$.pipe(c);let W=await Wo("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:$,stderr:u});if(W.code!==0)return W.code;let _=(await V).toString().trim().replace(/^.*\n/s,""),A=x.resolve(r,K.toPortablePath(_));return await O.renamePromise(A,e),0}]]).get(p);if(typeof D>"u")throw new Error("Assertion failed: Unsupported workflow");let T=await D();if(!(T===0||typeof T>"u"))throw O.detachTemp(o),new at(58,`Packing the package failed (exit code ${T}, logs can be found here: ${$e(t,a,Ue.PATH)})`)})})})}async function ERe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${mt(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new Ge({stdout:new tl.PassThrough,configuration:o})},c=a.find(h=>h.supportsPackage(n,l));if(!c)throw new Error(`The package ${mt(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new qt(u,{baseFs:s});return(await ot.find(Me.dot,{baseFs:g})).scripts.has(e)},{libzip:await an()})}async function TB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await O.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await f9(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),f=c.scripts.get(e);if(typeof f>"u")return 1;let h=async()=>await xB(f,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(C=>C.wrapScriptExecution,h,n,r,e,{script:f,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await O.mktempPromise(async l=>{let{env:c,cwd:u}=await f9(r,{project:n,binFolder:l,cwd:i});return await xB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function IRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await FC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await Promise.all(Array.from(await d9(r),([s,[,o]])=>Wa(e,Ur(s),process.execPath,[o]))),typeof t>"u"&&(t=x.dirname(await O.realpathPromise(x.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function f9(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return IRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${mt(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new Ge({stdout:new tl.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${mt(e.configuration,o)} isn't supported by any of the available linkers`);let f=await FC({project:e,locator:r,binFolder:t,lifecycleScript:n});await Promise.all(Array.from(await LB(r,{project:e}),([y,[,B]])=>Wa(t,Ur(y),process.execPath,[B])));let h=await g.findPackageLocation(o,u),p=new qt(h,{baseFs:a}),C=await ot.find(Me.dot,{baseFs:p});return typeof i>"u"&&(i=h),{manifest:C,binFolder:t,env:f,cwd:i}},{libzip:await an()})}async function h9(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await TB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function p9(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await O.mktempPromise(async o=>{let a=x.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}") -`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:mt(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await h9(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw O.detachTemp(o),new at(36,`${(0,l9.default)(e)} script failed (exit code ${$e(n,g,Ue.NUMBER)}, logs can be found here: ${$e(n,a,Ue.PATH)}); run ${$e(n,`yarn ${e}`,Ue.CODE)} to investigate`)})}async function yRe(r,e,t){WR(r,e)&&await p9(r,e,t)}async function LB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${mt(t,r)} not found in the project`);let s=new tl.Writable,o=t.getLinkers(),a={project:e,report:new Ge({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${tr(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let f=o.find(p=>p.supportsPackage(g,a));if(!f)return Uo.skip;let h=null;try{h=await f.findPackageLocation(g,a)}catch(p){if(p.code==="LOCATOR_NOT_INSTALLED")return Uo.skip;throw p}return{dependency:g,packageLocation:h}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:f}=u;for(let[h,p]of g.bin)i.set(h,[g,K.fromPortablePath(x.resolve(f,p))])}return i}async function d9(r){return await LB(r.anchoredLocator,{project:r.project})}async function C9(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await LB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${mt(n.configuration,r)}`);return await O.mktempPromise(async g=>{let[,f]=u,h=await FC({project:n,locator:r,binFolder:g});await Promise.all(Array.from(c,([C,[,y]])=>Wa(h.BERRY_BIN_FOLDER,Ur(C),process.execPath,[y])));let p;try{p=await Wo(process.execPath,[...l,f,...t],{cwd:i,env:h,stdin:s,stdout:o,stderr:a})}finally{await O.removePromise(h.BERRY_BIN_FOLDER)}return p.code})}async function wRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await C9(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var mi={};ut(mi,{convertToZip:()=>VNe,extractArchiveTo:()=>ZNe,makeArchiveFromDirectory:()=>zNe});var aZ=J("stream"),AZ=Pe(tZ());var rZ=Pe(Jg()),iZ=J("worker_threads");var hl=Symbol("kTaskInfo"),L0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,rZ.default)(ek());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new iZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[hl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[hl].resolve(t),e[hl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[hl])==null||i.reject(t),e[hl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[hl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[hl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[hl]={resolve:n,reject:s},t.postMessage(e)})})}};var lZ=Pe(sZ());async function zNe(r,{baseFs:e=new $t,prefixPath:t=Me.root,compressionLevel:i,inMemory:n=!1}={}){let s=await an(),o;if(n)o=new Wr(null,{libzip:s,level:i});else{let l=await O.mktempPromise(),c=x.join(l,"archive.zip");o=new Wr(c,{create:!0,libzip:s,level:i})}let a=x.resolve(Me.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var oZ;async function VNe(r,e){let t=await O.mktempPromise(),i=x.join(t,"archive.zip");return oZ||(oZ=new L0((0,lZ.getContent)())),await oZ.run({tmpFile:i,tgz:r,opts:e}),new Wr(i,{libzip:await an(),level:e.compressionLevel})}async function*XNe(r){let e=new AZ.default.Parse,t=new aZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ZNe(r,e,{stripComponents:t=0,prefixPath:i=Me.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of XNe(r)){if(n(a))continue;let l=x.normalize(K.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=x.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.writeFileSync(u,await Cf(a),{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,xr.SAFE_TIME,xr.SAFE_TIME);break}}return e}var es={};ut(es,{emitList:()=>_Ne,emitTree:()=>pZ,treeNodeToJson:()=>hZ,treeNodeToTreeify:()=>fZ});var gZ=Pe(uZ());function fZ(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<"u"&&g.push(Vy(e,l,2)),typeof c<"u"&&g.push($e(e,c[0],c[1])),g.length===0&&g.push(Vy(e,`${a}`,2));let f=g.join(": "),h=s[f]={};typeof u<"u"&&i(u,h)}};if(typeof r.children>"u")throw new Error("The root node must only contain children");return i(r.children,t),t}function hZ(r){let e=t=>{var s;if(typeof t.children>"u"){if(typeof t.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Bc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>"u"?n:{value:Bc(t.value[0],t.value[1]),children:n}};return e(r)}function _Ne(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));pZ({children:n},{configuration:e,stdout:t,json:i})}function pZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(hZ(l))} -`);return}let s=(0,gZ.asTree)(fZ(r,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 +`),delete B.NODE_ENV;let W=await oo("yarn",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(W.code!==0)return W.code;c.write(` +`);let _=await oo("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let j=x.join(r,xt.lockfile);await O.existsPromise(j)||await O.writeFilePromise(j,"");let $=await oo("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return $.code!==0?$.code:0}],["npm",async()=>{if(n!==null){let Ae=new tl.PassThrough,ge=Cf(Ae);Ae.pipe(c,{end:!1});let re=await oo("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:Ae,stderr:u,end:0});if(Ae.end(),re.code!==0)return c.end(),u.end(),re.code;let M=(await ge).toString().trim();if(!kc(M,">=7.x")){let F=Jo(null,"npm"),ue=_t(F,M),pe=_t(F,">=7.x");throw new Error(`Workspaces aren't supported by ${tr(t,ue)}; please upgrade to ${tr(t,pe)} (npm has been detected as the primary package manager for ${$e(t,r,Ue.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let j=await oo("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(j.code!==0)return j.code;let $=new tl.PassThrough,V=Cf($);$.pipe(c);let W=await oo("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:$,stderr:u});if(W.code!==0)return W.code;let _=(await V).toString().trim().replace(/^.*\n/s,""),A=x.resolve(r,K.toPortablePath(_));return await O.renamePromise(A,e),0}]]).get(p);if(typeof D>"u")throw new Error("Assertion failed: Unsupported workflow");let T=await D();if(!(T===0||typeof T>"u"))throw O.detachTemp(o),new at(58,`Packing the package failed (exit code ${T}, logs can be found here: ${$e(t,a,Ue.PATH)})`)})})})}async function yRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${mt(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new Ge({stdout:new tl.PassThrough,configuration:o})},c=a.find(h=>h.supportsPackage(n,l));if(!c)throw new Error(`The package ${mt(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new qt(u,{baseFs:s});return(await ot.find(Me.dot,{baseFs:g})).scripts.has(e)},{libzip:await an()})}async function TB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await O.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await p9(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),f=c.scripts.get(e);if(typeof f>"u")return 1;let h=async()=>await xB(f,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(C=>C.wrapScriptExecution,h,n,r,e,{script:f,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await O.mktempPromise(async l=>{let{env:c,cwd:u}=await p9(r,{project:n,binFolder:l,cwd:i});return await xB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function wRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await FC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await m9(r)),typeof t>"u"&&(t=x.dirname(await O.realpathPromise(x.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function p9(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return wRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${mt(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new Ge({stdout:new tl.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${mt(e.configuration,o)} isn't supported by any of the available linkers`);let f=await FC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await LB(r,{project:e}));let h=await g.findPackageLocation(o,u),p=new qt(h,{baseFs:a}),C=await ot.find(Me.dot,{baseFs:p});return typeof i>"u"&&(i=h),{manifest:C,binFolder:t,env:f,cwd:i}},{libzip:await an()})}async function d9(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await TB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function C9(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await O.mktempPromise(async o=>{let a=x.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}") +`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:mt(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await d9(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw O.detachTemp(o),new at(36,`${(0,u9.default)(e)} script failed (exit code ${$e(n,g,Ue.NUMBER)}, logs can be found here: ${$e(n,a,Ue.PATH)}); run ${$e(n,`yarn ${e}`,Ue.CODE)} to investigate`)})}async function BRe(r,e,t){WR(r,e)&&await C9(r,e,t)}function zR(r){let e=x.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=O.openSync(r,"r")}catch{return!0}try{O.readSync(i,t,0,t.length,0)}finally{O.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function LB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${mt(t,r)} not found in the project`);let s=new tl.Writable,o=t.getLinkers(),a={project:e,report:new Ge({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${tr(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Ho.skip;let f=o.find(p=>p.supportsPackage(g,a));if(!f)return Ho.skip;let h=null;try{h=await f.findPackageLocation(g,a)}catch(p){if(p.code==="LOCATOR_NOT_INSTALLED")return Ho.skip;throw p}return{dependency:g,packageLocation:h}}));for(let u of c){if(u===Ho.skip)continue;let{dependency:g,packageLocation:f}=u;for(let[h,p]of g.bin){let C=x.resolve(f,p);i.set(h,[g,K.fromPortablePath(C),zR(C)])}}return i}async function m9(r){return await LB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?el(r,Jr(t),process.execPath,[i]):el(r,Jr(t),i,[])))}async function E9(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await LB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${mt(n.configuration,r)}`);return await O.mktempPromise(async g=>{let[,f]=u,h=await FC({project:n,locator:r,binFolder:g});await VR(h.BERRY_BIN_FOLDER,c);let p=zR(K.toPortablePath(f))?oo(process.execPath,[...l,f,...t],{cwd:i,env:h,stdin:s,stdout:o,stderr:a}):oo(f,t,{cwd:i,env:h,stdin:s,stdout:o,stderr:a}),C;try{C=await p}finally{await O.removePromise(h.BERRY_BIN_FOLDER)}return C.code})}async function bRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await E9(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var mi={};ut(mi,{convertToZip:()=>ZNe,extractArchiveTo:()=>$Ne,makeArchiveFromDirectory:()=>XNe});var lZ=J("stream"),cZ=Pe(iZ());var nZ=Pe(Jg()),sZ=J("worker_threads");var hl=Symbol("kTaskInfo"),L0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,nZ.default)(ek());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new sZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[hl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[hl].resolve(t),e[hl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[hl])==null||i.reject(t),e[hl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[hl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[hl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[hl]={resolve:n,reject:s},t.postMessage(e)})})}};var uZ=Pe(aZ());async function XNe(r,{baseFs:e=new $t,prefixPath:t=Me.root,compressionLevel:i,inMemory:n=!1}={}){let s=await an(),o;if(n)o=new Wr(null,{libzip:s,level:i});else{let l=await O.mktempPromise(),c=x.join(l,"archive.zip");o=new Wr(c,{create:!0,libzip:s,level:i})}let a=x.resolve(Me.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var AZ;async function ZNe(r,e){let t=await O.mktempPromise(),i=x.join(t,"archive.zip");return AZ||(AZ=new L0((0,uZ.getContent)())),await AZ.run({tmpFile:i,tgz:r,opts:e}),new Wr(i,{libzip:await an(),level:e.compressionLevel})}async function*_Ne(r){let e=new cZ.default.Parse,t=new lZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function $Ne(r,e,{stripComponents:t=0,prefixPath:i=Me.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of _Ne(r)){if(n(a))continue;let l=x.normalize(K.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=x.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.writeFileSync(u,await Cf(a),{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,xr.SAFE_TIME,xr.SAFE_TIME);break}}return e}var es={};ut(es,{emitList:()=>eTe,emitTree:()=>CZ,treeNodeToJson:()=>dZ,treeNodeToTreeify:()=>pZ});var hZ=Pe(fZ());function pZ(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<"u"&&g.push(Vy(e,l,2)),typeof c<"u"&&g.push($e(e,c[0],c[1])),g.length===0&&g.push(Vy(e,`${a}`,2));let f=g.join(": "),h=s[f]={};typeof u<"u"&&i(u,h)}};if(typeof r.children>"u")throw new Error("The root node must only contain children");return i(r.children,t),t}function dZ(r){let e=t=>{var s;if(typeof t.children>"u"){if(typeof t.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Bc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>"u"?n:{value:Bc(t.value[0],t.value[1]),children:n}};return e(r)}function eTe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));CZ({children:n},{configuration:e,stdout:t,json:i})}function CZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(dZ(l))} +`);return}let s=(0,hZ.asTree)(pZ(r,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 $1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 -$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var dZ=J("crypto"),PN=Pe(J("fs"));var $Ne=8,Rt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,dZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==Xl?`c${o}`:"";this.cacheKey=[$Ne,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Rt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${xf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=eTe(t).slice(0,10);return`${xf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?x.resolve(this.cwd,this.getVersionFilename(e)):t===null||xN(t)!==this.cacheKey?null:x.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?x.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await O.existsPromise(this.cwd))throw new at(56,"Cache path does not exist.")}else{await O.mkdirPromise(this.cwd,{recursive:!0});let e=x.resolve(this.cwd,".gitignore");await O.changeFilePromise(e,`/.gitignore +$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var mZ=J("crypto"),kN=Pe(J("fs"));var tTe=8,Rt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,mZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==Xl?`c${o}`:"";this.cacheKey=[tTe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Rt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${xf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=rTe(t).slice(0,10);return`${xf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?x.resolve(this.cwd,this.getVersionFilename(e)):t===null||DN(t)!==this.cacheKey?null:x.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?x.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await O.existsPromise(this.cwd))throw new at(56,"Cache path does not exist.")}else{await O.mkdirPromise(this.cwd,{recursive:!0});let e=x.resolve(this.cwd,".gitignore");await O.changeFilePromise(e,`/.gitignore *.flock *.tmp -`)}(this.mirrorCwd||!this.immutable)&&await O.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new $t,c=()=>{let _=new Wr(null,{libzip:D}),A=x.join(Me.root,qD(e));return _.mkdirSync(A,{recursive:!0}),_.writeJsonSync(x.join(A,xt.manifest),{name:Mt(e),mocked:!0}),_},u=async(_,A=null)=>{var ge;if(A===null&&((ge=o.unstablePackages)==null?void 0:ge.has(e.locatorHash)))return{isValid:!0,hash:null};let Ae=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await bw(_)}`:t;if(A!==null){let re=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await bw(A)}`:t;if(Ae!==re)throw new at(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&Ae!==t){let re;switch(this.check?re="throw":xN(t)!==xN(Ae)?re="update":re=this.configuration.get("checksumBehavior"),re){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:Ae};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new at(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:Ae}},g=async _=>{if(!s)throw new Error(`Cache check required but no loader configured for ${mt(this.configuration,e)}`);let A=await s(),Ae=A.getRealPath();A.saveAndClose(),await O.chmodPromise(Ae,420);let ge=await u(_,Ae);if(!ge.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ge.hash},f=async()=>{if(a===null||!await O.existsPromise(a)){let _=await s(),A=_.getRealPath();return _.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},h=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${mt(this.configuration,e)}`);if(this.immutable)throw new at(56,`Cache entry required but missing for ${mt(this.configuration,e)}`);let{path:_,source:A}=await f(),Ae=(await u(_)).hash,ge=this.getLocatorPath(e,Ae,o);if(!ge)throw new Error("Assertion failed: Expected the cache path to be available");let re=[];A!=="mirror"&&a!==null&&re.push(async()=>{let F=`${a}${this.cacheId}`;await O.copyFilePromise(_,F,PN.default.constants.COPYFILE_FICLONE),await O.chmodPromise(F,420),await O.renamePromise(F,a)}),(!o.mirrorWriteOnly||a===null)&&re.push(async()=>{let F=`${ge}${this.cacheId}`;await O.copyFilePromise(_,F,PN.default.constants.COPYFILE_FICLONE),await O.chmodPromise(F,420),await O.renamePromise(F,ge)});let M=o.mirrorWriteOnly&&a!=null?a:ge;return await Promise.all(re.map(F=>F())),[!1,M,Ae]},p=async()=>{let A=(async()=>{var ue;let Ae=this.getLocatorPath(e,t,o),ge=Ae!==null?await l.existsPromise(Ae):!1,re=!!((ue=o.mockedPackages)!=null&&ue.has(e.locatorHash))&&(!this.check||!ge),M=re||ge,F=M?i:n;if(F&&F(),M){let pe=null,ke=Ae;if(!re)if(this.check)pe=await g(ke);else{let Fe=await u(ke);if(Fe.isValid)pe=Fe.hash;else return h()}return[re,ke,pe]}else return h()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let _;_=this.mutexes.get(e.locatorHash);)await _;let[C,y,B]=await p();this.markedFiles.add(y);let v,D=await an(),T=C?()=>c():()=>new Wr(y,{baseFs:l,libzip:D,readOnly:!0}),H=new Sg(()=>Jx(()=>v=T(),_=>`Failed to open the cache entry for ${mt(this.configuration,e)}: ${_}`),x),j=new Qo(y,{baseFs:H,pathUtils:x}),$=()=>{v==null||v.discardAndClose()},V=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[j,$,V]}};function xN(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function eTe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var M0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(M0||{});var ra=class extends vi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Xd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${$e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i} +`)}(this.mirrorCwd||!this.immutable)&&await O.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new $t,c=()=>{let _=new Wr(null,{libzip:D}),A=x.join(Me.root,qD(e));return _.mkdirSync(A,{recursive:!0}),_.writeJsonSync(x.join(A,xt.manifest),{name:Mt(e),mocked:!0}),_},u=async(_,A=null)=>{var ge;if(A===null&&((ge=o.unstablePackages)==null?void 0:ge.has(e.locatorHash)))return{isValid:!0,hash:null};let Ae=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await bw(_)}`:t;if(A!==null){let re=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await bw(A)}`:t;if(Ae!==re)throw new at(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&Ae!==t){let re;switch(this.check?re="throw":DN(t)!==DN(Ae)?re="update":re=this.configuration.get("checksumBehavior"),re){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:Ae};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new at(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:Ae}},g=async _=>{if(!s)throw new Error(`Cache check required but no loader configured for ${mt(this.configuration,e)}`);let A=await s(),Ae=A.getRealPath();A.saveAndClose(),await O.chmodPromise(Ae,420);let ge=await u(_,Ae);if(!ge.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ge.hash},f=async()=>{if(a===null||!await O.existsPromise(a)){let _=await s(),A=_.getRealPath();return _.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},h=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${mt(this.configuration,e)}`);if(this.immutable)throw new at(56,`Cache entry required but missing for ${mt(this.configuration,e)}`);let{path:_,source:A}=await f(),Ae=(await u(_)).hash,ge=this.getLocatorPath(e,Ae,o);if(!ge)throw new Error("Assertion failed: Expected the cache path to be available");let re=[];A!=="mirror"&&a!==null&&re.push(async()=>{let F=`${a}${this.cacheId}`;await O.copyFilePromise(_,F,kN.default.constants.COPYFILE_FICLONE),await O.chmodPromise(F,420),await O.renamePromise(F,a)}),(!o.mirrorWriteOnly||a===null)&&re.push(async()=>{let F=`${ge}${this.cacheId}`;await O.copyFilePromise(_,F,kN.default.constants.COPYFILE_FICLONE),await O.chmodPromise(F,420),await O.renamePromise(F,ge)});let M=o.mirrorWriteOnly&&a!=null?a:ge;return await Promise.all(re.map(F=>F())),[!1,M,Ae]},p=async()=>{let A=(async()=>{var ue;let Ae=this.getLocatorPath(e,t,o),ge=Ae!==null?await l.existsPromise(Ae):!1,re=!!((ue=o.mockedPackages)!=null&&ue.has(e.locatorHash))&&(!this.check||!ge),M=re||ge,F=M?i:n;if(F&&F(),M){let pe=null,ke=Ae;if(!re)if(this.check)pe=await g(ke);else{let Fe=await u(ke);if(Fe.isValid)pe=Fe.hash;else return h()}return[re,ke,pe]}else return h()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let _;_=this.mutexes.get(e.locatorHash);)await _;let[C,y,B]=await p();this.markedFiles.add(y);let v,D=await an(),T=C?()=>c():()=>new Wr(y,{baseFs:l,libzip:D,readOnly:!0}),H=new Sg(()=>Jx(()=>v=T(),_=>`Failed to open the cache entry for ${mt(this.configuration,e)}: ${_}`),x),j=new So(y,{baseFs:H,pathUtils:x}),$=()=>{v==null||v.discardAndClose()},V=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[j,$,V]}};function DN(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function rTe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var M0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(M0||{});var ra=class extends vi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Xd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${$e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i} `)}reportProgress(t){return{...Promise.resolve().then(async()=>{for await(let{}of t);}),stop:()=>{}}}reportJson(t){}async finalize(){this.errorCount>0&&(this.stdout.write(` `),this.stdout.write(`${$e(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. `),this.suggestInstall&&this.stdout.write(`${$e(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. -`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var X0=J("crypto");function iA(){}iA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(C){return n?(setTimeout(function(){n(void 0,C)},0),!0):C}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],f=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&f+1>=l)return o([{value:this.join(t),count:t.length}]);function h(){for(var C=-1*c;C<=c;C+=2){var y=void 0,B=g[C-1],v=g[C+1],D=(v?v.newPos:0)-C;B&&(g[C-1]=void 0);var T=B&&B.newPos+1=a&&D+1>=l)return o(tTe(s,y.components,t,e,s.useLongestToken));g[C]=y}c++}if(n)(function C(){setTimeout(function(){if(c>u)return n();h()||C()},0)})();else for(;c<=u;){var p=h();if(p)return p}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1h.length?C:h}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var f=e[o-1];return o>1&&typeof f.value=="string"&&(f.added||f.removed)&&r.equals("",f.value)&&(e[o-2].value+=f.value,e.pop()),e}function rTe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Lat=new iA;var CZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,mZ=/\S/,EZ=new iA;EZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!mZ.test(r)&&!mZ.test(e)};EZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;tr.length)&&(e=r.length);for(var t=0,i=new Array(e);t"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(RN(r,null,null,n),n," ")};ZC.equals=function(r,e){return iA.prototype.equals.call(ZC,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function RN(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s"u"&&(o.context=4);var a=iTe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(v){return" "+v})}for(var c=[],u=0,g=0,f=[],h=1,p=1,C=function(v){var D=a[v],T=D.lines||D.value.replace(/\n$/,"").split(` -`);if(D.lines=T,D.added||D.removed){var H;if(!u){var j=a[v-1];u=h,g=p,j&&(f=o.context>0?l(j.lines.slice(-o.context)):[],u-=f.length,g-=f.length)}(H=f).push.apply(H,DN(T.map(function(re){return(D.added?"+":"-")+re}))),D.added?p+=T.length:h+=T.length}else{if(u)if(T.length<=o.context*2&&v=a.length-2&&T.length<=o.context){var A=/\n$/.test(t),Ae=/\n$/.test(i),ge=T.length==0&&f.length>_.oldLines;!A&&ge&&t.length>0&&f.splice(_.oldLines,0,"\\ No newline at end of file"),(!A&&!ge||!Ae)&&f.push("\\ No newline at end of file")}c.push(_),u=0,g=0,f=[]}h+=T.length,p+=T.length}},y=0;y`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>xw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],W0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=x.join(e.cwd,e.configuration.get("lockfileFilename"));if(!O.existsSync(i))return;let n=await O.readFilePromise(i,"utf8"),s=yi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=aC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=so(l.range)?_t(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let f;for(let[p,C]of OOe){let y=g.match(p);if(y){f=C(u,...y);break}}if(!f){t.reportWarning(14,`${tr(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let h=c;try{let p=vf(c.range),C=aC(p.selector,!0);C&&(h=C)}catch{}o.set(c.descriptorHash,nn(h,f))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(HD(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(Sw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(Sw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");if(n=i.project.originalPackages.get(s),!n)throw new Error("Expected the resolution to have been successful - package not found");return[n]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var V0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new at(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new at(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new at(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var ti=class extends vi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var v$=Pe(OD());var Qh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await ot.tryFind(this.cwd))!=null?s:new ot,this.relativeCwd=x.relative(this.project.cwd,this.cwd)||Me.dot;let e=this.manifest.name?this.manifest.name:qo(null,`${this.computeCandidateName()}-${rn(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=nn(e,t),this.anchoredDescriptor=_t(this.locator,`${jr.protocol}${this.relativeCwd}`),this.anchoredLocator=nn(this.locator,`${jr.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o);if(i.length===0)return;let n=await(0,v$.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort(),await n.reduce(async(o,a)=>{let l=x.resolve(this.cwd,K.toPortablePath(a)),c=await O.existsPromise(x.join(l,"package.json"));await o,c&&this.workspacesCwds.add(l)},Promise.resolve())}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===jr.protocol&&x.normalize(n)===this.relativeCwd||i===jr.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=so(n);return s?i===jr.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${x.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&oC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=[];for(let t of this.workspacesCwds){let i=this.project.workspacesByCwd.get(t);i&&e.push(i,...i.getRecursiveWorkspaceChildren())}return e}async persistManifest(){let e={};this.manifest.exportTo(e);let t=x.join(this.cwd,ot.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} -`;await O.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var x$=6,KOe=1,UOe=/ *, */g,P$=/\/$/,HOe=32,GOe=(0,JN.promisify)(WN.default.gzip),YOe=(0,JN.promisify)(WN.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),jN={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},D$=r=>rn(`${KOe}`,r),je=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var p,C,y;if(!e.projectCwd)throw new Qe(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,O.existsSync(x.join(s,xt.manifest))){i=s;break}n=x.dirname(s)}let o=new je(e.projectCwd,{configuration:e});(p=ye.telemetry)==null||p.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(C=ye.telemetry)==null||C.reportWorkspaceCount(o.workspaces.length),(y=ye.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,v)=>B+v.manifest.dependencies.size+v.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=$e(e,o.cwd,Ue.PATH),u=$e(e,x.relative(o.cwd,i),Ue.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,f=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,h=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new Qe(`The nearest package directory (${$e(e,i,Ue.PATH)}) doesn't seem to be part of the project declared in ${$e(e,o.cwd,Ue.PATH)}. +`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var X0=J("crypto");function rA(){}rA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(C){return n?(setTimeout(function(){n(void 0,C)},0),!0):C}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],f=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&f+1>=l)return o([{value:this.join(t),count:t.length}]);function h(){for(var C=-1*c;C<=c;C+=2){var y=void 0,B=g[C-1],v=g[C+1],D=(v?v.newPos:0)-C;B&&(g[C-1]=void 0);var T=B&&B.newPos+1=a&&D+1>=l)return o(iTe(s,y.components,t,e,s.useLongestToken));g[C]=y}c++}if(n)(function C(){setTimeout(function(){if(c>u)return n();h()||C()},0)})();else for(;c<=u;){var p=h();if(p)return p}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1h.length?C:h}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var f=e[o-1];return o>1&&typeof f.value=="string"&&(f.added||f.removed)&&r.equals("",f.value)&&(e[o-2].value+=f.value,e.pop()),e}function nTe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Oat=new rA;var EZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,IZ=/\S/,yZ=new rA;yZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!IZ.test(r)&&!IZ.test(e)};yZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;tr.length)&&(e=r.length);for(var t=0,i=new Array(e);t"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(NN(r,null,null,n),n," ")};ZC.equals=function(r,e){return rA.prototype.equals.call(ZC,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function NN(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s"u"&&(o.context=4);var a=sTe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(v){return" "+v})}for(var c=[],u=0,g=0,f=[],h=1,p=1,C=function(v){var D=a[v],T=D.lines||D.value.replace(/\n$/,"").split(` +`);if(D.lines=T,D.added||D.removed){var H;if(!u){var j=a[v-1];u=h,g=p,j&&(f=o.context>0?l(j.lines.slice(-o.context)):[],u-=f.length,g-=f.length)}(H=f).push.apply(H,RN(T.map(function(re){return(D.added?"+":"-")+re}))),D.added?p+=T.length:h+=T.length}else{if(u)if(T.length<=o.context*2&&v=a.length-2&&T.length<=o.context){var A=/\n$/.test(t),Ae=/\n$/.test(i),ge=T.length==0&&f.length>_.oldLines;!A&&ge&&t.length>0&&f.splice(_.oldLines,0,"\\ No newline at end of file"),(!A&&!ge||!Ae)&&f.push("\\ No newline at end of file")}c.push(_),u=0,g=0,f=[]}h+=T.length,p+=T.length}},y=0;y`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>xw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],W0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=x.join(e.cwd,e.configuration.get("lockfileFilename"));if(!O.existsSync(i))return;let n=await O.readFilePromise(i,"utf8"),s=yi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=aC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=so(l.range)?_t(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let f;for(let[p,C]of UOe){let y=g.match(p);if(y){f=C(u,...y);break}}if(!f){t.reportWarning(14,`${tr(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let h=c;try{let p=vf(c.range),C=aC(p.selector,!0);C&&(h=C)}catch{}o.set(c.descriptorHash,nn(h,f))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(HD(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(Sw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(Sw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");if(n=i.project.originalPackages.get(s),!n)throw new Error("Expected the resolution to have been successful - package not found");return[n]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var V0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new at(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new at(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new at(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var ti=class extends vi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var P$=Pe(OD());var Qh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await ot.tryFind(this.cwd))!=null?s:new ot,this.relativeCwd=x.relative(this.project.cwd,this.cwd)||Me.dot;let e=this.manifest.name?this.manifest.name:Jo(null,`${this.computeCandidateName()}-${rn(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=nn(e,t),this.anchoredDescriptor=_t(this.locator,`${Yr.protocol}${this.relativeCwd}`),this.anchoredLocator=nn(this.locator,`${Yr.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o);if(i.length===0)return;let n=await(0,P$.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort(),await n.reduce(async(o,a)=>{let l=x.resolve(this.cwd,K.toPortablePath(a)),c=await O.existsPromise(x.join(l,"package.json"));await o,c&&this.workspacesCwds.add(l)},Promise.resolve())}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===Yr.protocol&&x.normalize(n)===this.relativeCwd||i===Yr.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=so(n);return s?i===Yr.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${x.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&oC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=[];for(let t of this.workspacesCwds){let i=this.project.workspacesByCwd.get(t);i&&e.push(i,...i.getRecursiveWorkspaceChildren())}return e}async persistManifest(){let e={};this.manifest.exportTo(e);let t=x.join(this.cwd,ot.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} +`;await O.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var D$=6,HOe=1,GOe=/ *, */g,k$=/\/$/,YOe=32,jOe=(0,zN.promisify)(VN.default.gzip),qOe=(0,zN.promisify)(VN.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),JN={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},R$=r=>rn(`${HOe}`,r),je=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var p,C,y;if(!e.projectCwd)throw new Qe(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,O.existsSync(x.join(s,xt.manifest))){i=s;break}n=x.dirname(s)}let o=new je(e.projectCwd,{configuration:e});(p=ye.telemetry)==null||p.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(C=ye.telemetry)==null||C.reportWorkspaceCount(o.workspaces.length),(y=ye.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,v)=>B+v.manifest.dependencies.size+v.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=$e(e,o.cwd,Ue.PATH),u=$e(e,x.relative(o.cwd,i),Ue.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,f=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,h=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new Qe(`The nearest package directory (${$e(e,i,Ue.PATH)}) doesn't seem to be part of the project declared in ${$e(e,o.cwd,Ue.PATH)}. ${[g,f,h].join(` -`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=x.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(O.existsSync(e)){let n=await O.readFilePromise(e,"utf8");this.lockFileChecksum=D$(n);let s=yi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=Dc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let f=g.version,h=g.languageName||t,p=c.linkType.toUpperCase(),C=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,v=g.dependenciesMeta,D=g.peerDependenciesMeta,T=g.bin;if(c.checksum!=null){let j=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,j)}let H={...u,version:f,languageName:h,linkType:p,conditions:C,dependencies:y,peerDependencies:B,dependenciesMeta:v,peerDependenciesMeta:D,bin:T};this.originalPackages.set(H.locatorHash,H);for(let j of l.split(UOe)){let $=zA(j);this.storedDescriptors.set($.descriptorHash,$),this.storedResolutions.set($.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,_0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new Qh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${Ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){x.isAbsolute(e)||(e=x.resolve(this.cwd,e)),e=x.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)x.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${Ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(WA(e)&&(e=iC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${tr(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(jo(e)&&(e=nC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${mt(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${lC(this.configuration,e)} (${$e(this.configuration,x.join(e.cwd,xt.manifest),Ue.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorHash);for(let o of s)this.deleteDescriptor(o)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)WA(i)&&e.dependencies.set(t,iC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Mt(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!k$.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new ti,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(P$,"")!==e.replace(P$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new W0(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new V0(t)]:[i,t],s=new kf([new z0(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,f=new Map,h=new Map,p=this.topLevelWorkspace.anchoredLocator,C=new Set,y=[],B=$D(),v=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(vi.progressViaTitle(),async W=>{let _=async M=>{let F=await df(async()=>await s.resolve(M,a),ke=>`${mt(this.configuration,M)}: ${ke}`);if(!oC(M,F))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${mt(this.configuration,M)} to ${mt(this.configuration,F)})`);g.set(F.locatorHash,F);let ue=this.configuration.normalizePackage(F);for(let[ke,Fe]of ue.dependencies){let Ne=await this.configuration.reduceHook(le=>le.reduceDependency,Fe,this,ue,Fe,{resolver:s,resolveOptions:a});if(!sC(Fe,Ne))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let oe=s.bindDescriptor(Ne,M,a);ue.dependencies.set(ke,oe)}let pe=io([...ue.dependencies.values()].map(ke=>re(ke)));return y.push(pe),pe.catch(()=>{}),c.set(ue.locatorHash,ue),ue},A=async M=>{let F=f.get(M.locatorHash);if(typeof F<"u")return F;let ue=Promise.resolve().then(()=>_(M));return f.set(M.locatorHash,ue),ue},Ae=async(M,F)=>{let ue=await re(F);return l.set(M.descriptorHash,M),u.set(M.descriptorHash,ue.locatorHash),ue},ge=async M=>{W.setTitle(tr(this.configuration,M));let F=this.resolutionAliases.get(M.descriptorHash);if(typeof F<"u")return Ae(M,this.storedDescriptors.get(F));let ue=s.getResolutionDependencies(M,a),pe=new Map(await io(ue.map(async Ne=>{let oe=s.bindDescriptor(Ne,p,a),le=await re(oe);return C.add(le.locatorHash),[Ne.descriptorHash,le]}))),Fe=(await df(async()=>await s.getCandidates(M,pe,a),Ne=>`${tr(this.configuration,M)}: ${Ne}`))[0];if(typeof Fe>"u")throw new Error(`${tr(this.configuration,M)}: No candidates found`);return l.set(M.descriptorHash,M),u.set(M.descriptorHash,Fe.locatorHash),A(Fe)},re=M=>{let F=h.get(M.descriptorHash);if(typeof F<"u")return F;l.set(M.descriptorHash,M);let ue=Promise.resolve().then(()=>ge(M));return h.set(M.descriptorHash,ue),ue};for(let M of this.workspaces){let F=M.anchoredDescriptor;y.push(re(F))}for(;y.length>0;){let M=[...y];y.length=0,await io(M)}});let D=new Set(this.resolutionAliases.values()),T=new Set(c.keys()),H=new Set,j=new Map;jOe({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:D,optionalBuilds:T,peerRequirements:j,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of C)T.delete(W);for(let W of D)l.delete(W),u.delete(W);let $=new Set,V=new Set;for(let W of c.values())W.conditions!=null&&(!T.has(W.locatorHash)||(kw(W,v)||(kw(W,B)&&e.report.reportWarningOnce(77,`${mt(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${$e(this.configuration,"supportedArchitectures",xi.SETTING)} setting`),V.add(W.locatorHash)),$.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=$,this.disabledLocators=V,this.originalPackages=g,this.optionalBuilds=T,this.peerRequirements=j,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(bn(this.storedResolutions.values(),[f=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");return Es(h)}])));n==="update-lockfile"&&(l=l.filter(f=>!this.storedChecksums.has(f)));let c=!1,u=vi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,_0.default)(HOe);if(await t.startCacheReport(async()=>{await io(l.map(f=>g(async()=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");if(jo(h))return;let p;try{p=await o.fetch(h,a)}catch(C){C.message=`${mt(this.configuration,h)}: ${C.message}`,t.reportExceptionOnce(C),c=C;return}p.checksum!=null?this.storedChecksums.set(h.locatorHash,p.checksum):this.storedChecksums.delete(h.locatorHash),p.releaseFs&&p.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var Ae,ge,re;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(M=>{let F=M.makeInstaller(c),ue=F.getCustomDataKey(),pe=this.installersCustomData.get(ue);return typeof pe<"u"&&F.attachCustomData(pe),[M,F]})),g=new Map,f=new Map,h=new Map,p=new Map(await io([...this.accessibleLocators].map(async M=>{let F=this.storedPackages.get(M);if(!F)throw new Error("Assertion failed: The locator should have been registered");return[M,await o.fetch(F,a)]}))),C=[];for(let M of this.accessibleLocators){let F=this.storedPackages.get(M);if(typeof F>"u")throw new Error("Assertion failed: The locator should have been registered");let ue=p.get(F.locatorHash);if(typeof ue>"u")throw new Error("Assertion failed: The fetch result should have been registered");let pe=[],ke=Ne=>{pe.push(Ne)},Fe=this.tryWorkspaceByLocator(F);if(Fe!==null){let Ne=[],{scripts:oe}=Fe.manifest;for(let Be of["preinstall","install","postinstall"])oe.has(Be)&&Ne.push([0,Be]);try{for(let[Be,fe]of u)if(Be.supportsPackage(F,c)&&(await fe.installPackage(F,ue,{holdFetchResult:ke})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{pe.length===0?(Ae=ue.releaseFs)==null||Ae.call(ue):C.push(io(pe).catch(()=>{}).then(()=>{var Be;(Be=ue.releaseFs)==null||Be.call(ue)}))}let le=x.join(ue.packageFs.getRealPath(),ue.prefixPath);f.set(F.locatorHash,le),!jo(F)&&Ne.length>0&&h.set(F.locatorHash,{directives:Ne,buildLocations:[le]})}else{let Ne=l.find(Be=>Be.supportsPackage(F,c));if(!Ne)throw new at(12,`${mt(this.configuration,F)} isn't supported by any available linker`);let oe=u.get(Ne);if(!oe)throw new Error("Assertion failed: The installer should have been registered");let le;try{le=await oe.installPackage(F,ue,{holdFetchResult:ke})}finally{pe.length===0?(ge=ue.releaseFs)==null||ge.call(ue):C.push(io(pe).then(()=>{}).then(()=>{var Be;(Be=ue.releaseFs)==null||Be.call(ue)}))}g.set(F.locatorHash,Ne),f.set(F.locatorHash,le.packageLocation),le.buildDirective&&le.buildDirective.length>0&&le.packageLocation&&h.set(F.locatorHash,{directives:le.buildDirective,buildLocations:[le.packageLocation]})}}let y=new Map;for(let M of this.accessibleLocators){let F=this.storedPackages.get(M);if(!F)throw new Error("Assertion failed: The locator should have been registered");let ue=this.tryWorkspaceByLocator(F)!==null,pe=async(ke,Fe)=>{let Ne=f.get(F.locatorHash);if(typeof Ne>"u")throw new Error(`Assertion failed: The package (${mt(this.configuration,F)}) should have been registered`);let oe=[];for(let le of F.dependencies.values()){let Be=this.storedResolutions.get(le.descriptorHash);if(typeof Be>"u")throw new Error(`Assertion failed: The resolution (${tr(this.configuration,le)}, from ${mt(this.configuration,F)})should have been registered`);let fe=this.storedPackages.get(Be);if(typeof fe>"u")throw new Error(`Assertion failed: The package (${Be}, resolved from ${tr(this.configuration,le)}) should have been registered`);let ae=this.tryWorkspaceByLocator(fe)===null?g.get(Be):null;if(typeof ae>"u")throw new Error(`Assertion failed: The package (${Be}, resolved from ${tr(this.configuration,le)}) should have been registered`);ae===ke||ae===null?f.get(fe.locatorHash)!==null&&oe.push([le,fe]):!ue&&Ne!==null&&hf(y,Be).push(Ne)}Ne!==null&&await Fe.attachInternalDependencies(F,oe)};if(ue)for(let[ke,Fe]of u)ke.supportsPackage(F,c)&&await pe(ke,Fe);else{let ke=g.get(F.locatorHash);if(!ke)throw new Error("Assertion failed: The linker should have been found");let Fe=u.get(ke);if(!Fe)throw new Error("Assertion failed: The installer should have been registered");await pe(ke,Fe)}}for(let[M,F]of y){let ue=this.storedPackages.get(M);if(!ue)throw new Error("Assertion failed: The package should have been registered");let pe=g.get(ue.locatorHash);if(!pe)throw new Error("Assertion failed: The linker should have been found");let ke=u.get(pe);if(!ke)throw new Error("Assertion failed: The installer should have been registered");await ke.attachExternalDependents(ue,F)}let B=new Map;for(let M of u.values()){let F=await M.finalizeInstall();for(let ue of(re=F==null?void 0:F.records)!=null?re:[])h.set(ue.locatorHash,{directives:ue.buildDirective,buildLocations:ue.buildLocations});typeof(F==null?void 0:F.customData)<"u"&&B.set(M.getCustomDataKey(),F.customData)}if(this.installersCustomData=B,await io(C),n==="skip-build")return;let v=new Set(this.storedPackages.keys()),D=new Set(h.keys());for(let M of D)v.delete(M);let T=(0,X0.createHash)("sha512");T.update(process.versions.node),await this.configuration.triggerHook(M=>M.globalHashGeneration,this,M=>{T.update("\0"),T.update(M)});let H=T.digest("hex"),j=new Map,$=M=>{let F=j.get(M.locatorHash);if(typeof F<"u")return F;let ue=this.storedPackages.get(M.locatorHash);if(typeof ue>"u")throw new Error("Assertion failed: The package should have been registered");let pe=(0,X0.createHash)("sha512");pe.update(M.locatorHash),j.set(M.locatorHash,"");for(let ke of ue.dependencies.values()){let Fe=this.storedResolutions.get(ke.descriptorHash);if(typeof Fe>"u")throw new Error(`Assertion failed: The resolution (${tr(this.configuration,ke)}) should have been registered`);let Ne=this.storedPackages.get(Fe);if(typeof Ne>"u")throw new Error("Assertion failed: The package should have been registered");pe.update($(Ne))}return F=pe.digest("hex"),j.set(M.locatorHash,F),F},V=(M,F)=>{let ue=(0,X0.createHash)("sha512");ue.update(H),ue.update($(M));for(let pe of F)ue.update(pe);return ue.digest("hex")},W=new Map,_=!1,A=M=>{let F=new Set([M.locatorHash]);for(let ue of F){let pe=this.storedPackages.get(ue);if(!pe)throw new Error("Assertion failed: The package should have been registered");for(let ke of pe.dependencies.values()){let Fe=this.storedResolutions.get(ke.descriptorHash);if(!Fe)throw new Error(`Assertion failed: The resolution (${tr(this.configuration,ke)}) should have been registered`);if(Fe!==M.locatorHash&&D.has(Fe))return!1;let Ne=this.storedPackages.get(Fe);if(!Ne)throw new Error("Assertion failed: The package should have been registered");let oe=this.tryWorkspaceByLocator(Ne);if(oe){if(oe.anchoredLocator.locatorHash!==M.locatorHash&&D.has(oe.anchoredLocator.locatorHash))return!1;F.add(oe.anchoredLocator.locatorHash)}F.add(Fe)}}return!0};for(;D.size>0;){let M=D.size,F=[];for(let ue of D){let pe=this.storedPackages.get(ue);if(!pe)throw new Error("Assertion failed: The package should have been registered");if(!A(pe))continue;let ke=h.get(pe.locatorHash);if(!ke)throw new Error("Assertion failed: The build directive should have been registered");let Fe=V(pe,ke.buildLocations);if(this.storedBuildState.get(pe.locatorHash)===Fe){W.set(pe.locatorHash,Fe),D.delete(ue);continue}_||(await this.persistInstallStateFile(),_=!0),this.storedBuildState.has(pe.locatorHash)?t.reportInfo(8,`${mt(this.configuration,pe)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${mt(this.configuration,pe)} must be built because it never has been before or the last one failed`);let Ne=ke.buildLocations.map(async oe=>{if(!x.isAbsolute(oe))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${oe})`);for(let[le,Be]of ke.directives){let fe=`# This file contains the result of Yarn building a package (${Es(pe)}) +`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=x.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(O.existsSync(e)){let n=await O.readFilePromise(e,"utf8");this.lockFileChecksum=R$(n);let s=yi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=Dc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let f=g.version,h=g.languageName||t,p=c.linkType.toUpperCase(),C=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,v=g.dependenciesMeta,D=g.peerDependenciesMeta,T=g.bin;if(c.checksum!=null){let j=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,j)}let H={...u,version:f,languageName:h,linkType:p,conditions:C,dependencies:y,peerDependencies:B,dependenciesMeta:v,peerDependenciesMeta:D,bin:T};this.originalPackages.set(H.locatorHash,H);for(let j of l.split(GOe)){let $=WA(j);this.storedDescriptors.set($.descriptorHash,$),this.storedResolutions.set($.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,_0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new Qh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${Ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){x.isAbsolute(e)||(e=x.resolve(this.cwd,e)),e=x.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)x.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${Ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(JA(e)&&(e=iC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${tr(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qo(e)&&(e=nC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${mt(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${lC(this.configuration,e)} (${$e(this.configuration,x.join(e.cwd,xt.manifest),Ue.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorHash);for(let o of s)this.deleteDescriptor(o)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)JA(i)&&e.dependencies.set(t,iC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Mt(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!F$.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new ti,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(k$,"")!==e.replace(k$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new W0(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new V0(t)]:[i,t],s=new kf([new z0(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,f=new Map,h=new Map,p=this.topLevelWorkspace.anchoredLocator,C=new Set,y=[],B=$D(),v=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(vi.progressViaTitle(),async W=>{let _=async M=>{let F=await df(async()=>await s.resolve(M,a),ke=>`${mt(this.configuration,M)}: ${ke}`);if(!oC(M,F))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${mt(this.configuration,M)} to ${mt(this.configuration,F)})`);g.set(F.locatorHash,F);let ue=this.configuration.normalizePackage(F);for(let[ke,Fe]of ue.dependencies){let Ne=await this.configuration.reduceHook(le=>le.reduceDependency,Fe,this,ue,Fe,{resolver:s,resolveOptions:a});if(!sC(Fe,Ne))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let oe=s.bindDescriptor(Ne,M,a);ue.dependencies.set(ke,oe)}let pe=io([...ue.dependencies.values()].map(ke=>re(ke)));return y.push(pe),pe.catch(()=>{}),c.set(ue.locatorHash,ue),ue},A=async M=>{let F=f.get(M.locatorHash);if(typeof F<"u")return F;let ue=Promise.resolve().then(()=>_(M));return f.set(M.locatorHash,ue),ue},Ae=async(M,F)=>{let ue=await re(F);return l.set(M.descriptorHash,M),u.set(M.descriptorHash,ue.locatorHash),ue},ge=async M=>{W.setTitle(tr(this.configuration,M));let F=this.resolutionAliases.get(M.descriptorHash);if(typeof F<"u")return Ae(M,this.storedDescriptors.get(F));let ue=s.getResolutionDependencies(M,a),pe=new Map(await io(ue.map(async Ne=>{let oe=s.bindDescriptor(Ne,p,a),le=await re(oe);return C.add(le.locatorHash),[Ne.descriptorHash,le]}))),Fe=(await df(async()=>await s.getCandidates(M,pe,a),Ne=>`${tr(this.configuration,M)}: ${Ne}`))[0];if(typeof Fe>"u")throw new Error(`${tr(this.configuration,M)}: No candidates found`);return l.set(M.descriptorHash,M),u.set(M.descriptorHash,Fe.locatorHash),A(Fe)},re=M=>{let F=h.get(M.descriptorHash);if(typeof F<"u")return F;l.set(M.descriptorHash,M);let ue=Promise.resolve().then(()=>ge(M));return h.set(M.descriptorHash,ue),ue};for(let M of this.workspaces){let F=M.anchoredDescriptor;y.push(re(F))}for(;y.length>0;){let M=[...y];y.length=0,await io(M)}});let D=new Set(this.resolutionAliases.values()),T=new Set(c.keys()),H=new Set,j=new Map;JOe({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:D,optionalBuilds:T,peerRequirements:j,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of C)T.delete(W);for(let W of D)l.delete(W),u.delete(W);let $=new Set,V=new Set;for(let W of c.values())W.conditions!=null&&(!T.has(W.locatorHash)||(kw(W,v)||(kw(W,B)&&e.report.reportWarningOnce(77,`${mt(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${$e(this.configuration,"supportedArchitectures",xi.SETTING)} setting`),V.add(W.locatorHash)),$.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=$,this.disabledLocators=V,this.originalPackages=g,this.optionalBuilds=T,this.peerRequirements=j,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(bn(this.storedResolutions.values(),[f=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");return Es(h)}])));n==="update-lockfile"&&(l=l.filter(f=>!this.storedChecksums.has(f)));let c=!1,u=vi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,_0.default)(YOe);if(await t.startCacheReport(async()=>{await io(l.map(f=>g(async()=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");if(qo(h))return;let p;try{p=await o.fetch(h,a)}catch(C){C.message=`${mt(this.configuration,h)}: ${C.message}`,t.reportExceptionOnce(C),c=C;return}p.checksum!=null?this.storedChecksums.set(h.locatorHash,p.checksum):this.storedChecksums.delete(h.locatorHash),p.releaseFs&&p.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var Ae,ge,re;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(M=>{let F=M.makeInstaller(c),ue=F.getCustomDataKey(),pe=this.installersCustomData.get(ue);return typeof pe<"u"&&F.attachCustomData(pe),[M,F]})),g=new Map,f=new Map,h=new Map,p=new Map(await io([...this.accessibleLocators].map(async M=>{let F=this.storedPackages.get(M);if(!F)throw new Error("Assertion failed: The locator should have been registered");return[M,await o.fetch(F,a)]}))),C=[];for(let M of this.accessibleLocators){let F=this.storedPackages.get(M);if(typeof F>"u")throw new Error("Assertion failed: The locator should have been registered");let ue=p.get(F.locatorHash);if(typeof ue>"u")throw new Error("Assertion failed: The fetch result should have been registered");let pe=[],ke=Ne=>{pe.push(Ne)},Fe=this.tryWorkspaceByLocator(F);if(Fe!==null){let Ne=[],{scripts:oe}=Fe.manifest;for(let Be of["preinstall","install","postinstall"])oe.has(Be)&&Ne.push([0,Be]);try{for(let[Be,fe]of u)if(Be.supportsPackage(F,c)&&(await fe.installPackage(F,ue,{holdFetchResult:ke})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{pe.length===0?(Ae=ue.releaseFs)==null||Ae.call(ue):C.push(io(pe).catch(()=>{}).then(()=>{var Be;(Be=ue.releaseFs)==null||Be.call(ue)}))}let le=x.join(ue.packageFs.getRealPath(),ue.prefixPath);f.set(F.locatorHash,le),!qo(F)&&Ne.length>0&&h.set(F.locatorHash,{directives:Ne,buildLocations:[le]})}else{let Ne=l.find(Be=>Be.supportsPackage(F,c));if(!Ne)throw new at(12,`${mt(this.configuration,F)} isn't supported by any available linker`);let oe=u.get(Ne);if(!oe)throw new Error("Assertion failed: The installer should have been registered");let le;try{le=await oe.installPackage(F,ue,{holdFetchResult:ke})}finally{pe.length===0?(ge=ue.releaseFs)==null||ge.call(ue):C.push(io(pe).then(()=>{}).then(()=>{var Be;(Be=ue.releaseFs)==null||Be.call(ue)}))}g.set(F.locatorHash,Ne),f.set(F.locatorHash,le.packageLocation),le.buildDirective&&le.buildDirective.length>0&&le.packageLocation&&h.set(F.locatorHash,{directives:le.buildDirective,buildLocations:[le.packageLocation]})}}let y=new Map;for(let M of this.accessibleLocators){let F=this.storedPackages.get(M);if(!F)throw new Error("Assertion failed: The locator should have been registered");let ue=this.tryWorkspaceByLocator(F)!==null,pe=async(ke,Fe)=>{let Ne=f.get(F.locatorHash);if(typeof Ne>"u")throw new Error(`Assertion failed: The package (${mt(this.configuration,F)}) should have been registered`);let oe=[];for(let le of F.dependencies.values()){let Be=this.storedResolutions.get(le.descriptorHash);if(typeof Be>"u")throw new Error(`Assertion failed: The resolution (${tr(this.configuration,le)}, from ${mt(this.configuration,F)})should have been registered`);let fe=this.storedPackages.get(Be);if(typeof fe>"u")throw new Error(`Assertion failed: The package (${Be}, resolved from ${tr(this.configuration,le)}) should have been registered`);let ae=this.tryWorkspaceByLocator(fe)===null?g.get(Be):null;if(typeof ae>"u")throw new Error(`Assertion failed: The package (${Be}, resolved from ${tr(this.configuration,le)}) should have been registered`);ae===ke||ae===null?f.get(fe.locatorHash)!==null&&oe.push([le,fe]):!ue&&Ne!==null&&hf(y,Be).push(Ne)}Ne!==null&&await Fe.attachInternalDependencies(F,oe)};if(ue)for(let[ke,Fe]of u)ke.supportsPackage(F,c)&&await pe(ke,Fe);else{let ke=g.get(F.locatorHash);if(!ke)throw new Error("Assertion failed: The linker should have been found");let Fe=u.get(ke);if(!Fe)throw new Error("Assertion failed: The installer should have been registered");await pe(ke,Fe)}}for(let[M,F]of y){let ue=this.storedPackages.get(M);if(!ue)throw new Error("Assertion failed: The package should have been registered");let pe=g.get(ue.locatorHash);if(!pe)throw new Error("Assertion failed: The linker should have been found");let ke=u.get(pe);if(!ke)throw new Error("Assertion failed: The installer should have been registered");await ke.attachExternalDependents(ue,F)}let B=new Map;for(let M of u.values()){let F=await M.finalizeInstall();for(let ue of(re=F==null?void 0:F.records)!=null?re:[])h.set(ue.locatorHash,{directives:ue.buildDirective,buildLocations:ue.buildLocations});typeof(F==null?void 0:F.customData)<"u"&&B.set(M.getCustomDataKey(),F.customData)}if(this.installersCustomData=B,await io(C),n==="skip-build")return;let v=new Set(this.storedPackages.keys()),D=new Set(h.keys());for(let M of D)v.delete(M);let T=(0,X0.createHash)("sha512");T.update(process.versions.node),await this.configuration.triggerHook(M=>M.globalHashGeneration,this,M=>{T.update("\0"),T.update(M)});let H=T.digest("hex"),j=new Map,$=M=>{let F=j.get(M.locatorHash);if(typeof F<"u")return F;let ue=this.storedPackages.get(M.locatorHash);if(typeof ue>"u")throw new Error("Assertion failed: The package should have been registered");let pe=(0,X0.createHash)("sha512");pe.update(M.locatorHash),j.set(M.locatorHash,"");for(let ke of ue.dependencies.values()){let Fe=this.storedResolutions.get(ke.descriptorHash);if(typeof Fe>"u")throw new Error(`Assertion failed: The resolution (${tr(this.configuration,ke)}) should have been registered`);let Ne=this.storedPackages.get(Fe);if(typeof Ne>"u")throw new Error("Assertion failed: The package should have been registered");pe.update($(Ne))}return F=pe.digest("hex"),j.set(M.locatorHash,F),F},V=(M,F)=>{let ue=(0,X0.createHash)("sha512");ue.update(H),ue.update($(M));for(let pe of F)ue.update(pe);return ue.digest("hex")},W=new Map,_=!1,A=M=>{let F=new Set([M.locatorHash]);for(let ue of F){let pe=this.storedPackages.get(ue);if(!pe)throw new Error("Assertion failed: The package should have been registered");for(let ke of pe.dependencies.values()){let Fe=this.storedResolutions.get(ke.descriptorHash);if(!Fe)throw new Error(`Assertion failed: The resolution (${tr(this.configuration,ke)}) should have been registered`);if(Fe!==M.locatorHash&&D.has(Fe))return!1;let Ne=this.storedPackages.get(Fe);if(!Ne)throw new Error("Assertion failed: The package should have been registered");let oe=this.tryWorkspaceByLocator(Ne);if(oe){if(oe.anchoredLocator.locatorHash!==M.locatorHash&&D.has(oe.anchoredLocator.locatorHash))return!1;F.add(oe.anchoredLocator.locatorHash)}F.add(Fe)}}return!0};for(;D.size>0;){let M=D.size,F=[];for(let ue of D){let pe=this.storedPackages.get(ue);if(!pe)throw new Error("Assertion failed: The package should have been registered");if(!A(pe))continue;let ke=h.get(pe.locatorHash);if(!ke)throw new Error("Assertion failed: The build directive should have been registered");let Fe=V(pe,ke.buildLocations);if(this.storedBuildState.get(pe.locatorHash)===Fe){W.set(pe.locatorHash,Fe),D.delete(ue);continue}_||(await this.persistInstallStateFile(),_=!0),this.storedBuildState.has(pe.locatorHash)?t.reportInfo(8,`${mt(this.configuration,pe)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${mt(this.configuration,pe)} must be built because it never has been before or the last one failed`);let Ne=ke.buildLocations.map(async oe=>{if(!x.isAbsolute(oe))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${oe})`);for(let[le,Be]of ke.directives){let fe=`# This file contains the result of Yarn building a package (${Es(pe)}) `;switch(le){case 0:fe+=`# Script name: ${Be} `;break;case 1:fe+=`# Script code: ${Be} -`;break}let ae=null;if(!await O.mktempPromise(async ne=>{let Y=x.join(ne,"build.log"),{stdout:he,stderr:ie}=this.configuration.getSubprocessStreams(Y,{header:fe,prefix:mt(this.configuration,pe),report:t}),de;try{switch(le){case 0:de=await TB(pe,Be,[],{cwd:oe,project:this,stdin:ae,stdout:he,stderr:ie});break;case 1:de=await JR(pe,Be,[],{cwd:oe,project:this,stdin:ae,stdout:he,stderr:ie});break}}catch(Pt){ie.write(Pt.stack),de=1}if(he.end(),ie.end(),de===0)return!0;O.detachTemp(ne);let _e=`${mt(this.configuration,pe)} couldn't be built successfully (exit code ${$e(this.configuration,de,Ue.NUMBER)}, logs can be found here: ${$e(this.configuration,Y,Ue.PATH)})`;return this.optionalBuilds.has(pe.locatorHash)?(t.reportInfo(9,_e),!0):(t.reportError(9,_e),!1)}))return!1}return!0});F.push(...Ne,Promise.allSettled(Ne).then(oe=>{D.delete(ue),oe.every(le=>le.status==="fulfilled"&&le.value===!0)&&W.set(pe.locatorHash,Fe)}))}if(await io(F),M===D.size){let ue=Array.from(D).map(pe=>{let ke=this.storedPackages.get(pe);if(!ke)throw new Error("Assertion failed: The package should have been registered");return mt(this.configuration,ke)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ue})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=ye.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=x.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await O.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new at(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let f=$e(this.configuration,g,Ue.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${f}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${f}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Vl(n,this.generateLockfile());if(c!==n){let u=IZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let f of g.lines)f.startsWith("+")?e.report.reportError(28,$e(this.configuration,f,Ue.ADDED)):f.startsWith("-")?e.report.reportError(28,$e(this.configuration,f,Ue.REMOVED)):e.report.reportInfo(null,$e(this.configuration,f,"grey"))}e.report.reportSeparator()}throw new at(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=ye.telemetry)==null||l.reportPackageExtension(Bc(g,Ue.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>Qw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${$e(this.configuration,"mode=update-lockfile",Ue.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>Qw(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:x$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let f of s){let h=this.storedDescriptors.get(f);if(!h)throw new Error("Assertion failed: The descriptor should have been registered");a.push(h)}let l=a.map(f=>Sn(f)).sort().join(", "),c=new ot;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<"u"){let f=g.indexOf("/");if(f===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let h=g.slice(0,f),p=g.slice(f+1);typeof t.__metadata.cacheKey>"u"&&(t.__metadata.cacheKey=h),h===t.__metadata.cacheKey?u=p:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:Es(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. +`;break}let ae=null;if(!await O.mktempPromise(async ne=>{let Y=x.join(ne,"build.log"),{stdout:he,stderr:ie}=this.configuration.getSubprocessStreams(Y,{header:fe,prefix:mt(this.configuration,pe),report:t}),de;try{switch(le){case 0:de=await TB(pe,Be,[],{cwd:oe,project:this,stdin:ae,stdout:he,stderr:ie});break;case 1:de=await JR(pe,Be,[],{cwd:oe,project:this,stdin:ae,stdout:he,stderr:ie});break}}catch(Pt){ie.write(Pt.stack),de=1}if(he.end(),ie.end(),de===0)return!0;O.detachTemp(ne);let _e=`${mt(this.configuration,pe)} couldn't be built successfully (exit code ${$e(this.configuration,de,Ue.NUMBER)}, logs can be found here: ${$e(this.configuration,Y,Ue.PATH)})`;return this.optionalBuilds.has(pe.locatorHash)?(t.reportInfo(9,_e),!0):(t.reportError(9,_e),!1)}))return!1}return!0});F.push(...Ne,Promise.allSettled(Ne).then(oe=>{D.delete(ue),oe.every(le=>le.status==="fulfilled"&&le.value===!0)&&W.set(pe.locatorHash,Fe)}))}if(await io(F),M===D.size){let ue=Array.from(D).map(pe=>{let ke=this.storedPackages.get(pe);if(!ke)throw new Error("Assertion failed: The package should have been registered");return mt(this.configuration,ke)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ue})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=ye.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=x.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await O.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new at(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let f=$e(this.configuration,g,Ue.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${f}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${f}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Vl(n,this.generateLockfile());if(c!==n){let u=wZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let f of g.lines)f.startsWith("+")?e.report.reportError(28,$e(this.configuration,f,Ue.ADDED)):f.startsWith("-")?e.report.reportError(28,$e(this.configuration,f,Ue.REMOVED)):e.report.reportInfo(null,$e(this.configuration,f,"grey"))}e.report.reportSeparator()}throw new at(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=ye.telemetry)==null||l.reportPackageExtension(Bc(g,Ue.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>Qw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${$e(this.configuration,"mode=update-lockfile",Ue.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>Qw(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:D$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let f of s){let h=this.storedDescriptors.get(f);if(!h)throw new Error("Assertion failed: The descriptor should have been registered");a.push(h)}let l=a.map(f=>Sn(f)).sort().join(", "),c=new ot;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<"u"){let f=g.indexOf("/");if(f===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let h=g.slice(0,f),p=g.slice(f+1);typeof t.__metadata.cacheKey>"u"&&(t.__metadata.cacheKey=h),h===t.__metadata.cacheKey?u=p:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:Es(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. `,`# Manual changes might be lost - proceed with caution! `].join("")} -`+ba(t)}async persistLockfile(){let e=x.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await O.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Vl(t,i);n!==t&&(await O.writeFilePromise(e,n),this.lockFileChecksum=D$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(jN))e.push(...o);let t=(0,Z0.default)(this,e),i=qN.default.serialize(t),n=rn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await O.mkdirPromise(x.dirname(s),{recursive:!0}),await O.writeFilePromise(s,await GOe(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await YOe(await O.readFilePromise(n));s=qN.default.deserialize(o),this.installStateChecksum=rn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,Z0.default)(s,jN.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,Z0.default)(s,jN.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new ti}),await this.persistInstallStateFile()}async persist(){let e=(0,_0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!ZD(e.cwd,this.cwd)||!await O.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await O.readdirPromise(e.cwd)){if(i.has(a))continue;let l=x.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${$e(this.configuration,x.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${$e(this.configuration,x.basename(l),"magenta")} appears to be unused - removing`),await O.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`),e.markedFiles.clear()}};function jOe({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var V;let c=new Map,u=[],g=new Map,f=new Map,h=new Map,p=new Map,C=new Map,y=new Map(r.workspaces.map(W=>{let _=W.anchoredLocator.locatorHash,A=i.get(_);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[_,rC(A)]})),B=()=>{let W=O.mktempSync(),_=x.join(W,"stacktrace.log"),A=String(u.length+1).length,Ae=u.map((ge,re)=>`${`${re+1}.`.padStart(A," ")} ${Es(ge)} -`).join("");throw O.writeFileSync(_,Ae),O.detachTemp(W),new at(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(_)}`)},v=W=>{let _=t.get(W.descriptorHash);if(typeof _>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(_);if(!A)throw new Error("Assertion failed: The package could not be found");return A},D=(W,_,A,{top:Ae,optional:ge})=>{u.length>1e3&&B(),u.push(_);let re=T(W,_,A,{top:Ae,optional:ge});return u.pop(),re},T=(W,_,A,{top:Ae,optional:ge})=>{if(n.has(_.locatorHash))return;n.add(_.locatorHash),ge||s.delete(_.locatorHash);let re=i.get(_.locatorHash);if(!re)throw new Error(`Assertion failed: The package (${mt(r.configuration,_)}) should have been registered`);let M=[],F=[],ue=[],pe=[],ke=[];for(let Ne of Array.from(re.dependencies.values())){if(re.peerDependencies.has(Ne.identHash)&&re.locatorHash!==Ae)continue;if(WA(Ne))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Ne.descriptorHash);let oe=ge;if(!oe){let Y=re.dependenciesMeta.get(Mt(Ne));if(typeof Y<"u"){let he=Y.get(null);typeof he<"u"&&he.optional&&(oe=!0)}}let le=t.get(Ne.descriptorHash);if(!le)throw new Error(`Assertion failed: The resolution (${tr(r.configuration,Ne)}) should have been registered`);let Be=y.get(le)||i.get(le);if(!Be)throw new Error(`Assertion failed: The package (${le}, resolved from ${tr(r.configuration,Ne)}) should have been registered`);if(Be.peerDependencies.size===0){D(Ne,Be,new Map,{top:Ae,optional:oe});continue}let fe,ae,qe=new Set,ne;F.push(()=>{fe=GD(Ne,_.locatorHash),ae=YD(Be,_.locatorHash),re.dependencies.delete(Ne.identHash),re.dependencies.set(fe.identHash,fe),t.set(fe.descriptorHash,ae.locatorHash),e.set(fe.descriptorHash,fe),i.set(ae.locatorHash,ae),M.push([Be,fe,ae])}),ue.push(()=>{var Y;ne=new Map;for(let he of ae.peerDependencies.values()){let ie=re.dependencies.get(he.identHash);if(!ie&&sC(_,he)&&(W.identHash===_.identHash?ie=W:(ie=_t(_,W.range),e.set(ie.descriptorHash,ie),t.set(ie.descriptorHash,_.locatorHash),a.delete(ie.descriptorHash))),(!ie||ie.range==="missing:")&&ae.dependencies.has(he.identHash)){ae.peerDependencies.delete(he.identHash);continue}ie||(ie=_t(he,"missing:")),ae.dependencies.set(ie.identHash,ie),WA(ie)&&wc(h,ie.descriptorHash).add(ae.locatorHash),g.set(ie.identHash,ie),ie.range==="missing:"&&qe.add(ie.identHash),ne.set(he.identHash,(Y=A.get(he.identHash))!=null?Y:ae.locatorHash)}ae.dependencies=new Map(bn(ae.dependencies,([he,ie])=>Mt(ie)))}),pe.push(()=>{if(!i.has(ae.locatorHash))return;let Y=c.get(Be.locatorHash);typeof Y=="number"&&Y>=2&&B();let he=c.get(Be.locatorHash),ie=typeof he<"u"?he+1:1;c.set(Be.locatorHash,ie),D(fe,ae,ne,{top:Ae,optional:oe}),c.set(Be.locatorHash,ie-1)}),ke.push(()=>{let Y=re.dependencies.get(Ne.identHash);if(typeof Y>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let he=t.get(Y.descriptorHash);if(typeof he>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(wc(C,he).add(_.locatorHash),!!i.has(ae.locatorHash)){for(let ie of ae.peerDependencies.values()){let de=ne.get(ie.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(p,de),Mt(ie)).push(ae.locatorHash)}for(let ie of qe)ae.dependencies.delete(ie)}})}for(let Ne of[...F,...ue])Ne();let Fe;do{Fe=!0;for(let[Ne,oe,le]of M){let Be=pf(f,Ne.locatorHash),fe=rn(...[...le.dependencies.values()].map(Y=>{let he=Y.range!=="missing:"?t.get(Y.descriptorHash):"missing:";if(typeof he>"u")throw new Error(`Assertion failed: Expected the resolution for ${tr(r.configuration,Y)} to have been registered`);return he===Ae?`${he} (top)`:he}),oe.identHash),ae=Be.get(fe);if(typeof ae>"u"){Be.set(fe,oe);continue}if(ae===oe)continue;i.delete(le.locatorHash),e.delete(oe.descriptorHash),t.delete(oe.descriptorHash),n.delete(le.locatorHash);let qe=h.get(oe.descriptorHash)||[],ne=[re.locatorHash,...qe];h.delete(oe.descriptorHash);for(let Y of ne){let he=i.get(Y);typeof he>"u"||(he.dependencies.get(oe.identHash).descriptorHash!==ae.descriptorHash&&(Fe=!1),he.dependencies.set(oe.identHash,ae))}}}while(!Fe);for(let Ne of[...pe,...ke])Ne()};for(let W of r.workspaces){let _=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),D(W.anchoredDescriptor,_,new Map,{top:_.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let j=[];for(let[W,_]of C){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let Ae=p.get(W);if(!(typeof Ae>"u"))for(let ge of _){let re=i.get(ge);if(!(typeof re>"u"))for(let[M,F]of Ae){let ue=tn(M);if(re.peerDependencies.has(ue.identHash))continue;let pe=`p${rn(ge,M,W).slice(0,5)}`;o.set(pe,{subject:ge,requested:ue,rootRequester:W,allRequesters:F});let ke=A.dependencies.get(ue.identHash);if(typeof ke<"u"){let Fe=v(ke),Ne=(V=Fe.version)!=null?V:"0.0.0",oe=new Set;for(let Be of F){let fe=i.get(Be);if(typeof fe>"u")throw new Error("Assertion failed: Expected the link to be registered");let ae=fe.peerDependencies.get(ue.identHash);if(typeof ae>"u")throw new Error("Assertion failed: Expected the ident to be registered");oe.add(ae.range)}[...oe].every(Be=>{if(Be.startsWith(jr.protocol)){if(!r.tryWorkspaceByLocator(Fe))return!1;Be=Be.slice(jr.protocol.length),(Be==="^"||Be==="~")&&(Be="*")}return kc(Ne,Be)})||j.push({type:1,subject:re,requested:ue,requester:A,version:Ne,hash:pe,requirementCount:F.length})}else{let Fe=A.peerDependenciesMeta.get(M);Fe!=null&&Fe.optional||j.push({type:0,subject:re,requested:ue,requester:A,hash:pe})}}}}let $=[W=>jD(W.subject),W=>Mt(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${$e(r.configuration,"yarn explain peer-requirements ",Ue.CODE)} for details, where ${$e(r.configuration,"",Ue.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of bn(j,$))switch(W.type){case 0:l.reportWarning(2,`${mt(r.configuration,W.subject)} doesn't provide ${Ai(r.configuration,W.requested)} (${$e(r.configuration,W.hash,Ue.CODE)}), requested by ${Ai(r.configuration,W.requester)}`);break;case 1:{let _=W.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(60,`${mt(r.configuration,W.subject)} provides ${Ai(r.configuration,W.requested)} (${$e(r.configuration,W.hash,Ue.CODE)}) with version ${AC(r.configuration,W.version)}, which doesn't satisfy what ${Ai(r.configuration,W.requester)} ${_}`)}break}})}var Sh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!O.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,t){wc(this.values,e).add(t)}reportEnumerator(e,t){wc(this.enumerators,e).add(rn(t))}reportHit(e,t="*"){let i=pf(this.hits,e),n=Ta(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return x.join(e,"telemetry.json")}sendReport(e){var u,g,f;let t=this.getRegistryPath(),i;try{i=O.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{O.mkdirSync(x.dirname(t),{recursive:!0}),O.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=h=>kR(l,h,{configuration:this.configuration}).catch(()=>{});for(let[h,p]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(p).length===0)continue;let C=p;C.userId=h,C.reportType="primary";for(let v of Object.keys((f=C.enumerators)!=null?f:{}))C.enumerators[v]=C.enumerators[v].length;c(C);let y=new Map,B=20;for(let[v,D]of Object.entries(C.values))D.length>0&&y.set(v,D.slice(0,B));for(;y.size>0;){let v={};v.userId=h,v.reportType="secondary",v.metrics={};for(let[D,T]of y)v.metrics[D]=T.shift(),T.length===0&&y.delete(D);c(v)}}}applyChanges(){var o,a,l,c,u,g,f,h,p;let e=this.getRegistryPath(),t;try{t=O.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let C of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},B=y[C]=(u=y[C])!=null?u:{};for(let[v,D]of this.hits.get(C))B[v]=((g=B[v])!=null?g:0)+D}for(let C of["values","enumerators"])for(let y of this[C].keys()){let B=s[C]=(f=s[C])!=null?f:{};B[y]=[...new Set([...(h=B[y])!=null?h:[],...(p=this[C].get(y))!=null?p:[]])]}O.mkdirSync(x.dirname(e),{recursive:!0}),O.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var zN=J("child_process"),R$=Pe(Ac());var VN=J("fs");var vh=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function qOe(r){let e=K.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,zN.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,zN.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function $0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new Gn({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var C,y,B,v,D;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!Ie.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!vt.satisfiesWithPrereleases(s,o))throw new Qe(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await ye.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),f=K.toPortablePath(K.resolve(process.argv[1])),h=T=>O.readFilePromise(T).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===f||Buffer.compare(...await Promise.all([h(c),h(f)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!O.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{qOe(c)}catch(T){process.exitCode=T.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!R$.isCI&&process.stdout.isTTY&&(ye.telemetry=new Sh(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(C=ye.telemetry)==null||C.reportVersion(r);for(let[$,V]of l.plugins.entries()){vh.has((B=(y=$.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?B:"")&&((v=ye.telemetry)==null||v.reportPluginName($));for(let W of V.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(D=ye.telemetry)==null||D.reportCommandName(H.path.join(" "));let j=H.cwd;if(typeof j<"u"&&!g){let $=(0,VN.realpathSync)(process.cwd()),V=(0,VN.realpathSync)(j);if($!==V){process.chdir(j),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>O.rmtempPromise())}function F$(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var Nm={};ut(Nm,{BaseCommand:()=>De,WorkspaceRequiredError:()=>ct,getDynamicLibs:()=>Jie,getPluginConfiguration:()=>Bb,main:()=>$0,openWorkspace:()=>Hh,pluginCommands:()=>vh});var De=class extends ve{constructor(){super(...arguments);this.cwd=z.String("--cwd",{hidden:!0})}};var ct=class extends Qe{constructor(e,t){let i=x.relative(e,t),n=x.join(e,ot.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var ZYe=Pe(Xr());ls();var _Ye=Pe(WT()),Jie=()=>new Map([["@yarnpkg/cli",Nm],["@yarnpkg/core",sm],["@yarnpkg/fslib",Wp],["@yarnpkg/libzip",xC],["@yarnpkg/parsers",td],["@yarnpkg/shell",RC],["clipanion",ud],["semver",ZYe],["typanion",hn],["yup",_Ye]]);async function Hh(r,e){let{project:t,workspace:i}=await je.find(r,e);if(!i)throw new ct(t.cwd,e);return i}var v9e=Pe(Xr());ls();var x9e=Pe(WT());var pM={};ut(pM,{dedupeUtils:()=>Nb,default:()=>c4e,suggestUtils:()=>qh});var qae=Pe(Ac());var Nse=Pe(Km());ls();var qh={};ut(qh,{Modifier:()=>KL,Strategy:()=>Db,Target:()=>Um,WorkspaceModifier:()=>xse,applyModifier:()=>Dse,extractDescriptorFromPath:()=>UL,extractRangeModifier:()=>Pse,fetchDescriptorFrom:()=>HL,findProjectDescriptors:()=>Fse,getModifier:()=>Hm,getSuggestedDescriptors:()=>Gm,makeWorkspaceDescriptor:()=>Rse,toWorkspaceModifier:()=>kse});var OL=Pe(Xr()),dqe="workspace:",Um=(i=>(i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies",i))(Um||{}),KL=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="",i))(KL||{}),xse=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="*",i))(xse||{}),Db=(s=>(s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache",s))(Db||{});function Hm(r,e){return r.exact?"":r.caret?"^":r.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var Cqe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Pse(r,{project:e}){let t=r.match(Cqe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Dse(r,e){let{protocol:t,source:i,params:n,selector:s}=P.parseRange(r.range);return OL.default.valid(s)&&(s=`${e}${r.range}`),P.makeDescriptor(r,P.makeRange({protocol:t,source:i,params:n,selector:s}))}function kse(r){switch(r){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Rse(r,e){return P.makeDescriptor(r.anchoredDescriptor,`${dqe}${kse(e)}`)}async function Fse(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t==="peerDependencies"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t==="devDependencies"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function UL(r,{cwd:e,workspace:t}){return await mqe(async i=>{x.isAbsolute(r)||(r=x.relative(t.cwd,x.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await HL(P.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new ti,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=P.convertDescriptorToLocator(u),f=await l.fetch(g,c),h=await ot.find(f.prefixPath,{baseFs:f.packageFs});if(!h.name)throw new Error("Target path doesn't have a name");return P.makeDescriptor(h.name,r)})}async function Gm(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${P.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t<"u"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async f=>{try{await f()}catch(h){u.push(h)}};for(let f of o){if(c.length>=a)break;switch(f){case"keep":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${P.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case"reuse":await g(async()=>{for(let{descriptor:h,locators:p}of(await Fse(r,{project:e,target:n})).values()){if(p.length===1&&p[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes("keep"))continue;let C=`(originally used by ${P.prettyLocator(e.configuration,p[0])}`;C+=p.length>1?` and ${p.length-1} other${p.length>2?"s":""})`:")",c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:C})}});break;case"cache":await g(async()=>{for(let h of e.storedDescriptors.values())h.identHash===r.identHash&&c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let h=e.tryWorkspaceByIdent(r);if(h===null)return;let p=Rse(h,s);c.push({descriptor:p,name:`Attach ${P.prettyDescriptor(e.configuration,p)}`,reason:`(local workspace at ${ee.pretty(e.configuration,h.relativeCwd,ee.Type.PATH)})`})});break;case"latest":await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${P.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n==="peerDependencies")c.push({descriptor:P.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:ee.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let h=await HL(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});h&&(h=Dse(h,s),c.push({descriptor:h,name:`Use ${P.prettyDescriptor(e.configuration,h)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function HL(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=P.makeDescriptor(r,e),a=new ti,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},f=c.bindDescriptor(o,n.anchoredLocator,g),h=await c.getCandidates(f,new Map,g);if(h.length===0)return null;let p=h[0],{protocol:C,source:y,params:B,selector:v}=P.parseRange(P.convertToManifestRange(p.reference));if(C===t.configuration.get("defaultProtocol")&&(C=null),OL.default.valid(v)&&s!==!1){let D=typeof s=="string"?s:o.range;v=Pse(D,{project:t})+v}return P.makeDescriptor(p,P.makeRange({protocol:C,source:y,params:B,selector:v}))}async function mqe(r){return await O.mktempPromise(async e=>{let t=ye.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Rt(e,{configuration:t,check:!1,immutable:!1}))})}var Au=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=z.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=z.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=z.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=z.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=z.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=z.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.silent=z.Boolean("--silent",{hidden:!0});this.packages=z.Rest()}async execute(){var y;let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=Hm(this,i),l=[...o?["reuse"]:[],"project",...this.cached?["cache"]:[],"latest"],c=o?1/0:1,u=await Promise.all(this.packages.map(async B=>{let v=B.match(/^\.{0,2}\//)?await UL(B,{cwd:this.context.cwd,workspace:n}):P.tryParseDescriptor(B),D=B.match(/^(https?:|git@github)/);if(D)throw new Qe(`It seems you are trying to add a package using a ${ee.pretty(t,`${D[0]}...`,xi.RANGE)} url; we now require package names to be explicitly specified. -Try running the command again with the package name prefixed: ${ee.pretty(t,"yarn add",xi.CODE)} ${ee.pretty(t,P.makeDescriptor(P.makeIdent(null,"my-package"),`${D[0]}...`),xi.DESCRIPTOR)}`);if(!v)throw new Qe(`The ${ee.pretty(t,B,xi.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let T=Eqe(n,v,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(T.map(async j=>{let $=await Gm(v,{project:i,workspace:n,cache:s,target:j,modifier:a,strategies:l,maxResults:c});return{request:v,suggestedDescriptors:$,target:j}}))})).then(B=>B.flat()),g=await ra.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let{request:v,suggestedDescriptors:{suggestions:D,rejections:T}}of u)if(D.filter(j=>j.descriptor!==null).length===0){let[j]=T;if(typeof j>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range`):B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),B.reportSeparator(),B.reportExceptionOnce(j)}});if(g.hasErrors())return g.exitCode();let f=!1,h=[],p=[];for(let{suggestedDescriptors:{suggestions:B},target:v}of u){let D,T=B.filter(V=>V.descriptor!==null),H=T[0].descriptor,j=T.every(V=>P.areDescriptorsEqual(V.descriptor,H));T.length===1||j?D=H:(f=!0,{answer:D}=await(0,Nse.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:B.map(({descriptor:V,name:W,reason:_})=>V?{name:W,hint:_,descriptor:V}:{name:W,hint:_,disabled:!0}),onCancel:()=>process.exit(130),result(V){return this.find(V,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let $=n.manifest[v].get(D.identHash);(typeof $>"u"||$.descriptorHash!==D.descriptorHash)&&(n.manifest[v].set(D.identHash,D),this.optional&&(v==="dependencies"?n.manifest.ensureDependencyMeta({...D,range:"unknown"}).optional=!0:v==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...D,range:"unknown"}).optional=!0)),typeof $>"u"?h.push([n,v,D,l]):p.push([n,v,$,D]))}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyAddition,h),await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,p),f&&this.context.stdout.write(` -`),(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};Au.paths=[["add"]],Au.usage=ve.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function Eqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"].has(e.identHash);if((t||i)&&o)throw new Qe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new Qe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new Qe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new Qe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new Qe(`Package "${P.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push("peerDependencies"),(t||n)&&c.push("devDependencies"),s&&c.push("dependencies"),c.length>0?c:a?["devDependencies"]:l?["peerDependencies"]:["dependencies"]}var lu=class extends De{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=z.String({required:!1})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await je.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Wt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new Qe(`Couldn't find a binary named "${this.name}" for package "${P.prettyLocator(t,n)}"`);let[,l]=a;return this.context.stdout.write(`${l} +`+ba(t)}async persistLockfile(){let e=x.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await O.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Vl(t,i);n!==t&&(await O.writeFilePromise(e,n),this.lockFileChecksum=R$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JN))e.push(...o);let t=(0,Z0.default)(this,e),i=WN.default.serialize(t),n=rn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await O.mkdirPromise(x.dirname(s),{recursive:!0}),await O.writeFilePromise(s,await jOe(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await qOe(await O.readFilePromise(n));s=WN.default.deserialize(o),this.installStateChecksum=rn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,Z0.default)(s,JN.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,Z0.default)(s,JN.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new ti}),await this.persistInstallStateFile()}async persist(){let e=(0,_0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!ZD(e.cwd,this.cwd)||!await O.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await O.readdirPromise(e.cwd)){if(i.has(a))continue;let l=x.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${$e(this.configuration,x.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${$e(this.configuration,x.basename(l),"magenta")} appears to be unused - removing`),await O.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`),e.markedFiles.clear()}};function JOe({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var V;let c=new Map,u=[],g=new Map,f=new Map,h=new Map,p=new Map,C=new Map,y=new Map(r.workspaces.map(W=>{let _=W.anchoredLocator.locatorHash,A=i.get(_);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[_,rC(A)]})),B=()=>{let W=O.mktempSync(),_=x.join(W,"stacktrace.log"),A=String(u.length+1).length,Ae=u.map((ge,re)=>`${`${re+1}.`.padStart(A," ")} ${Es(ge)} +`).join("");throw O.writeFileSync(_,Ae),O.detachTemp(W),new at(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(_)}`)},v=W=>{let _=t.get(W.descriptorHash);if(typeof _>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(_);if(!A)throw new Error("Assertion failed: The package could not be found");return A},D=(W,_,A,{top:Ae,optional:ge})=>{u.length>1e3&&B(),u.push(_);let re=T(W,_,A,{top:Ae,optional:ge});return u.pop(),re},T=(W,_,A,{top:Ae,optional:ge})=>{if(n.has(_.locatorHash))return;n.add(_.locatorHash),ge||s.delete(_.locatorHash);let re=i.get(_.locatorHash);if(!re)throw new Error(`Assertion failed: The package (${mt(r.configuration,_)}) should have been registered`);let M=[],F=[],ue=[],pe=[],ke=[];for(let Ne of Array.from(re.dependencies.values())){if(re.peerDependencies.has(Ne.identHash)&&re.locatorHash!==Ae)continue;if(JA(Ne))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Ne.descriptorHash);let oe=ge;if(!oe){let Y=re.dependenciesMeta.get(Mt(Ne));if(typeof Y<"u"){let he=Y.get(null);typeof he<"u"&&he.optional&&(oe=!0)}}let le=t.get(Ne.descriptorHash);if(!le)throw new Error(`Assertion failed: The resolution (${tr(r.configuration,Ne)}) should have been registered`);let Be=y.get(le)||i.get(le);if(!Be)throw new Error(`Assertion failed: The package (${le}, resolved from ${tr(r.configuration,Ne)}) should have been registered`);if(Be.peerDependencies.size===0){D(Ne,Be,new Map,{top:Ae,optional:oe});continue}let fe,ae,qe=new Set,ne;F.push(()=>{fe=GD(Ne,_.locatorHash),ae=YD(Be,_.locatorHash),re.dependencies.delete(Ne.identHash),re.dependencies.set(fe.identHash,fe),t.set(fe.descriptorHash,ae.locatorHash),e.set(fe.descriptorHash,fe),i.set(ae.locatorHash,ae),M.push([Be,fe,ae])}),ue.push(()=>{var Y;ne=new Map;for(let he of ae.peerDependencies.values()){let ie=re.dependencies.get(he.identHash);if(!ie&&sC(_,he)&&(W.identHash===_.identHash?ie=W:(ie=_t(_,W.range),e.set(ie.descriptorHash,ie),t.set(ie.descriptorHash,_.locatorHash),a.delete(ie.descriptorHash))),(!ie||ie.range==="missing:")&&ae.dependencies.has(he.identHash)){ae.peerDependencies.delete(he.identHash);continue}ie||(ie=_t(he,"missing:")),ae.dependencies.set(ie.identHash,ie),JA(ie)&&wc(h,ie.descriptorHash).add(ae.locatorHash),g.set(ie.identHash,ie),ie.range==="missing:"&&qe.add(ie.identHash),ne.set(he.identHash,(Y=A.get(he.identHash))!=null?Y:ae.locatorHash)}ae.dependencies=new Map(bn(ae.dependencies,([he,ie])=>Mt(ie)))}),pe.push(()=>{if(!i.has(ae.locatorHash))return;let Y=c.get(Be.locatorHash);typeof Y=="number"&&Y>=2&&B();let he=c.get(Be.locatorHash),ie=typeof he<"u"?he+1:1;c.set(Be.locatorHash,ie),D(fe,ae,ne,{top:Ae,optional:oe}),c.set(Be.locatorHash,ie-1)}),ke.push(()=>{let Y=re.dependencies.get(Ne.identHash);if(typeof Y>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let he=t.get(Y.descriptorHash);if(typeof he>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(wc(C,he).add(_.locatorHash),!!i.has(ae.locatorHash)){for(let ie of ae.peerDependencies.values()){let de=ne.get(ie.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(p,de),Mt(ie)).push(ae.locatorHash)}for(let ie of qe)ae.dependencies.delete(ie)}})}for(let Ne of[...F,...ue])Ne();let Fe;do{Fe=!0;for(let[Ne,oe,le]of M){let Be=pf(f,Ne.locatorHash),fe=rn(...[...le.dependencies.values()].map(Y=>{let he=Y.range!=="missing:"?t.get(Y.descriptorHash):"missing:";if(typeof he>"u")throw new Error(`Assertion failed: Expected the resolution for ${tr(r.configuration,Y)} to have been registered`);return he===Ae?`${he} (top)`:he}),oe.identHash),ae=Be.get(fe);if(typeof ae>"u"){Be.set(fe,oe);continue}if(ae===oe)continue;i.delete(le.locatorHash),e.delete(oe.descriptorHash),t.delete(oe.descriptorHash),n.delete(le.locatorHash);let qe=h.get(oe.descriptorHash)||[],ne=[re.locatorHash,...qe];h.delete(oe.descriptorHash);for(let Y of ne){let he=i.get(Y);typeof he>"u"||(he.dependencies.get(oe.identHash).descriptorHash!==ae.descriptorHash&&(Fe=!1),he.dependencies.set(oe.identHash,ae))}}}while(!Fe);for(let Ne of[...pe,...ke])Ne()};for(let W of r.workspaces){let _=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),D(W.anchoredDescriptor,_,new Map,{top:_.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let j=[];for(let[W,_]of C){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let Ae=p.get(W);if(!(typeof Ae>"u"))for(let ge of _){let re=i.get(ge);if(!(typeof re>"u"))for(let[M,F]of Ae){let ue=tn(M);if(re.peerDependencies.has(ue.identHash))continue;let pe=`p${rn(ge,M,W).slice(0,5)}`;o.set(pe,{subject:ge,requested:ue,rootRequester:W,allRequesters:F});let ke=A.dependencies.get(ue.identHash);if(typeof ke<"u"){let Fe=v(ke),Ne=(V=Fe.version)!=null?V:"0.0.0",oe=new Set;for(let Be of F){let fe=i.get(Be);if(typeof fe>"u")throw new Error("Assertion failed: Expected the link to be registered");let ae=fe.peerDependencies.get(ue.identHash);if(typeof ae>"u")throw new Error("Assertion failed: Expected the ident to be registered");oe.add(ae.range)}[...oe].every(Be=>{if(Be.startsWith(Yr.protocol)){if(!r.tryWorkspaceByLocator(Fe))return!1;Be=Be.slice(Yr.protocol.length),(Be==="^"||Be==="~")&&(Be="*")}return kc(Ne,Be)})||j.push({type:1,subject:re,requested:ue,requester:A,version:Ne,hash:pe,requirementCount:F.length})}else{let Fe=A.peerDependenciesMeta.get(M);Fe!=null&&Fe.optional||j.push({type:0,subject:re,requested:ue,requester:A,hash:pe})}}}}let $=[W=>jD(W.subject),W=>Mt(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${$e(r.configuration,"yarn explain peer-requirements ",Ue.CODE)} for details, where ${$e(r.configuration,"",Ue.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of bn(j,$))switch(W.type){case 0:l.reportWarning(2,`${mt(r.configuration,W.subject)} doesn't provide ${Ai(r.configuration,W.requested)} (${$e(r.configuration,W.hash,Ue.CODE)}), requested by ${Ai(r.configuration,W.requester)}`);break;case 1:{let _=W.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(60,`${mt(r.configuration,W.subject)} provides ${Ai(r.configuration,W.requested)} (${$e(r.configuration,W.hash,Ue.CODE)}) with version ${AC(r.configuration,W.version)}, which doesn't satisfy what ${Ai(r.configuration,W.requester)} ${_}`)}break}})}var Sh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!O.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,t){wc(this.values,e).add(t)}reportEnumerator(e,t){wc(this.enumerators,e).add(rn(t))}reportHit(e,t="*"){let i=pf(this.hits,e),n=Ta(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return x.join(e,"telemetry.json")}sendReport(e){var u,g,f;let t=this.getRegistryPath(),i;try{i=O.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{O.mkdirSync(x.dirname(t),{recursive:!0}),O.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=h=>kR(l,h,{configuration:this.configuration}).catch(()=>{});for(let[h,p]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(p).length===0)continue;let C=p;C.userId=h,C.reportType="primary";for(let v of Object.keys((f=C.enumerators)!=null?f:{}))C.enumerators[v]=C.enumerators[v].length;c(C);let y=new Map,B=20;for(let[v,D]of Object.entries(C.values))D.length>0&&y.set(v,D.slice(0,B));for(;y.size>0;){let v={};v.userId=h,v.reportType="secondary",v.metrics={};for(let[D,T]of y)v.metrics[D]=T.shift(),T.length===0&&y.delete(D);c(v)}}}applyChanges(){var o,a,l,c,u,g,f,h,p;let e=this.getRegistryPath(),t;try{t=O.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let C of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},B=y[C]=(u=y[C])!=null?u:{};for(let[v,D]of this.hits.get(C))B[v]=((g=B[v])!=null?g:0)+D}for(let C of["values","enumerators"])for(let y of this[C].keys()){let B=s[C]=(f=s[C])!=null?f:{};B[y]=[...new Set([...(h=B[y])!=null?h:[],...(p=this[C].get(y))!=null?p:[]])]}O.mkdirSync(x.dirname(e),{recursive:!0}),O.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var XN=J("child_process"),N$=Pe(Ac());var ZN=J("fs");var vh=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function WOe(r){let e=K.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,XN.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,XN.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function $0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new Gn({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var C,y,B,v,D;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!Ie.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!vt.satisfiesWithPrereleases(s,o))throw new Qe(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await ye.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),f=K.toPortablePath(K.resolve(process.argv[1])),h=T=>O.readFilePromise(T).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===f||Buffer.compare(...await Promise.all([h(c),h(f)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!O.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{WOe(c)}catch(T){process.exitCode=T.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!N$.isCI&&process.stdout.isTTY&&(ye.telemetry=new Sh(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(C=ye.telemetry)==null||C.reportVersion(r);for(let[$,V]of l.plugins.entries()){vh.has((B=(y=$.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?B:"")&&((v=ye.telemetry)==null||v.reportPluginName($));for(let W of V.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(D=ye.telemetry)==null||D.reportCommandName(H.path.join(" "));let j=H.cwd;if(typeof j<"u"&&!g){let $=(0,ZN.realpathSync)(process.cwd()),V=(0,ZN.realpathSync)(j);if($!==V){process.chdir(j),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>O.rmtempPromise())}function T$(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var Nm={};ut(Nm,{BaseCommand:()=>De,WorkspaceRequiredError:()=>ct,getDynamicLibs:()=>zie,getPluginConfiguration:()=>Bb,main:()=>$0,openWorkspace:()=>Hh,pluginCommands:()=>vh});var De=class extends ve{constructor(){super(...arguments);this.cwd=z.String("--cwd",{hidden:!0})}};var ct=class extends Qe{constructor(e,t){let i=x.relative(e,t),n=x.join(e,ot.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var $Ye=Pe(Xr());ls();var eje=Pe(VT()),zie=()=>new Map([["@yarnpkg/cli",Nm],["@yarnpkg/core",sm],["@yarnpkg/fslib",Wp],["@yarnpkg/libzip",xC],["@yarnpkg/parsers",td],["@yarnpkg/shell",RC],["clipanion",ud],["semver",$Ye],["typanion",hn],["yup",eje]]);async function Hh(r,e){let{project:t,workspace:i}=await je.find(r,e);if(!i)throw new ct(t.cwd,e);return i}var P9e=Pe(Xr());ls();var D9e=Pe(VT());var CM={};ut(CM,{dedupeUtils:()=>Nb,default:()=>g4e,suggestUtils:()=>qh});var Wae=Pe(Ac());var Lse=Pe(Km());ls();var qh={};ut(qh,{Modifier:()=>HL,Strategy:()=>Db,Target:()=>Um,WorkspaceModifier:()=>Dse,applyModifier:()=>Rse,extractDescriptorFromPath:()=>GL,extractRangeModifier:()=>kse,fetchDescriptorFrom:()=>YL,findProjectDescriptors:()=>Tse,getModifier:()=>Hm,getSuggestedDescriptors:()=>Gm,makeWorkspaceDescriptor:()=>Nse,toWorkspaceModifier:()=>Fse});var UL=Pe(Xr()),mqe="workspace:",Um=(i=>(i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies",i))(Um||{}),HL=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="",i))(HL||{}),Dse=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="*",i))(Dse||{}),Db=(s=>(s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache",s))(Db||{});function Hm(r,e){return r.exact?"":r.caret?"^":r.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var Eqe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function kse(r,{project:e}){let t=r.match(Eqe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Rse(r,e){let{protocol:t,source:i,params:n,selector:s}=P.parseRange(r.range);return UL.default.valid(s)&&(s=`${e}${r.range}`),P.makeDescriptor(r,P.makeRange({protocol:t,source:i,params:n,selector:s}))}function Fse(r){switch(r){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Nse(r,e){return P.makeDescriptor(r.anchoredDescriptor,`${mqe}${Fse(e)}`)}async function Tse(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t==="peerDependencies"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t==="devDependencies"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function GL(r,{cwd:e,workspace:t}){return await Iqe(async i=>{x.isAbsolute(r)||(r=x.relative(t.cwd,x.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await YL(P.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new ti,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=P.convertDescriptorToLocator(u),f=await l.fetch(g,c),h=await ot.find(f.prefixPath,{baseFs:f.packageFs});if(!h.name)throw new Error("Target path doesn't have a name");return P.makeDescriptor(h.name,r)})}async function Gm(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${P.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t<"u"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async f=>{try{await f()}catch(h){u.push(h)}};for(let f of o){if(c.length>=a)break;switch(f){case"keep":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${P.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case"reuse":await g(async()=>{for(let{descriptor:h,locators:p}of(await Tse(r,{project:e,target:n})).values()){if(p.length===1&&p[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes("keep"))continue;let C=`(originally used by ${P.prettyLocator(e.configuration,p[0])}`;C+=p.length>1?` and ${p.length-1} other${p.length>2?"s":""})`:")",c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:C})}});break;case"cache":await g(async()=>{for(let h of e.storedDescriptors.values())h.identHash===r.identHash&&c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let h=e.tryWorkspaceByIdent(r);if(h===null)return;let p=Nse(h,s);c.push({descriptor:p,name:`Attach ${P.prettyDescriptor(e.configuration,p)}`,reason:`(local workspace at ${ee.pretty(e.configuration,h.relativeCwd,ee.Type.PATH)})`})});break;case"latest":await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${P.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n==="peerDependencies")c.push({descriptor:P.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:ee.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let h=await YL(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});h&&(h=Rse(h,s),c.push({descriptor:h,name:`Use ${P.prettyDescriptor(e.configuration,h)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function YL(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=P.makeDescriptor(r,e),a=new ti,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},f=c.bindDescriptor(o,n.anchoredLocator,g),h=await c.getCandidates(f,new Map,g);if(h.length===0)return null;let p=h[0],{protocol:C,source:y,params:B,selector:v}=P.parseRange(P.convertToManifestRange(p.reference));if(C===t.configuration.get("defaultProtocol")&&(C=null),UL.default.valid(v)&&s!==!1){let D=typeof s=="string"?s:o.range;v=kse(D,{project:t})+v}return P.makeDescriptor(p,P.makeRange({protocol:C,source:y,params:B,selector:v}))}async function Iqe(r){return await O.mktempPromise(async e=>{let t=ye.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Rt(e,{configuration:t,check:!1,immutable:!1}))})}var Au=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=z.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=z.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=z.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=z.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=z.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=z.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.silent=z.Boolean("--silent",{hidden:!0});this.packages=z.Rest()}async execute(){var y;let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=Hm(this,i),l=[...o?["reuse"]:[],"project",...this.cached?["cache"]:[],"latest"],c=o?1/0:1,u=await Promise.all(this.packages.map(async B=>{let v=B.match(/^\.{0,2}\//)?await GL(B,{cwd:this.context.cwd,workspace:n}):P.tryParseDescriptor(B),D=B.match(/^(https?:|git@github)/);if(D)throw new Qe(`It seems you are trying to add a package using a ${ee.pretty(t,`${D[0]}...`,xi.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${ee.pretty(t,"yarn add",xi.CODE)} ${ee.pretty(t,P.makeDescriptor(P.makeIdent(null,"my-package"),`${D[0]}...`),xi.DESCRIPTOR)}`);if(!v)throw new Qe(`The ${ee.pretty(t,B,xi.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let T=yqe(n,v,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(T.map(async j=>{let $=await Gm(v,{project:i,workspace:n,cache:s,target:j,modifier:a,strategies:l,maxResults:c});return{request:v,suggestedDescriptors:$,target:j}}))})).then(B=>B.flat()),g=await ra.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let{request:v,suggestedDescriptors:{suggestions:D,rejections:T}}of u)if(D.filter(j=>j.descriptor!==null).length===0){let[j]=T;if(typeof j>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range`):B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),B.reportSeparator(),B.reportExceptionOnce(j)}});if(g.hasErrors())return g.exitCode();let f=!1,h=[],p=[];for(let{suggestedDescriptors:{suggestions:B},target:v}of u){let D,T=B.filter(V=>V.descriptor!==null),H=T[0].descriptor,j=T.every(V=>P.areDescriptorsEqual(V.descriptor,H));T.length===1||j?D=H:(f=!0,{answer:D}=await(0,Lse.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:B.map(({descriptor:V,name:W,reason:_})=>V?{name:W,hint:_,descriptor:V}:{name:W,hint:_,disabled:!0}),onCancel:()=>process.exit(130),result(V){return this.find(V,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let $=n.manifest[v].get(D.identHash);(typeof $>"u"||$.descriptorHash!==D.descriptorHash)&&(n.manifest[v].set(D.identHash,D),this.optional&&(v==="dependencies"?n.manifest.ensureDependencyMeta({...D,range:"unknown"}).optional=!0:v==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...D,range:"unknown"}).optional=!0)),typeof $>"u"?h.push([n,v,D,l]):p.push([n,v,$,D]))}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyAddition,h),await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,p),f&&this.context.stdout.write(` +`),(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};Au.paths=[["add"]],Au.usage=ve.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function yqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"].has(e.identHash);if((t||i)&&o)throw new Qe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new Qe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new Qe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new Qe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new Qe(`Package "${P.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push("peerDependencies"),(t||n)&&c.push("devDependencies"),s&&c.push("dependencies"),c.length>0?c:a?["devDependencies"]:l?["peerDependencies"]:["dependencies"]}var lu=class extends De{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=z.String({required:!1})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await je.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Wt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new Qe(`Couldn't find a binary named "${this.name}" for package "${P.prettyLocator(t,n)}"`);let[,l]=a;return this.context.stdout.write(`${l} `),0}return(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Wt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,f]]of a)o.reportJson({name:u,source:P.stringifyIdent(g),path:f});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c," ")} ${P.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};lu.paths=[["bin"]],lu.usage=ve.Usage({description:"get the path to a binary script",details:` When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var cu=class extends De{constructor(){super(...arguments);this.mirror=z.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=z.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=await Rt.find(t);return(await Ge.start({configuration:t,stdout:this.context.stdout},async()=>{let s=(this.all||this.mirror)&&i.mirrorCwd!==null,o=!this.mirror;s&&(await O.removePromise(i.mirrorCwd),await t.triggerHook(a=>a.cleanGlobalArtifacts,t)),o&&await O.removePromise(i.cwd)})).exitCode()}};cu.paths=[["cache","clean"],["cache","clear"]],cu.usage=ve.Usage({description:"remove the shared cache files",details:` This command will remove all the files from the cache. - `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Tse=Pe(ub()),GL=J("util"),uu=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=z.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new Qe(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=Ie.convertMapsToIndexableObjects(o),l=n?(0,Tse.default)(a,n):a,c=await Ge.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async u=>{u.reportJson(l)});if(!this.json){if(typeof l=="string")return this.context.stdout.write(`${l} -`),c.exitCode();GL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,GL.inspect)(l,{depth:1/0,colors:t.get("enableColors"),compact:!1})} + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Mse=Pe(ub()),jL=J("util"),uu=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=z.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new Qe(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=Ie.convertMapsToIndexableObjects(o),l=n?(0,Mse.default)(a,n):a,c=await Ge.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async u=>{u.reportJson(l)});if(!this.json){if(typeof l=="string")return this.context.stdout.write(`${l} +`),c.exitCode();jL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,jL.inspect)(l,{depth:1/0,colors:t.get("enableColors"),compact:!1})} `)}return c.exitCode()}};uu.paths=[["config","get"]],uu.usage=ve.Usage({description:"read a configuration settings",details:` This command will print a configuration setting. Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. - `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var Woe=Pe(zL()),zoe=Pe(ub()),Voe=Pe(Joe()),VL=J("util"),gu=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String();this.value=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new Qe("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new Qe(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new Qe("This setting only affects the file it's in, and thus cannot be set from the CLI");let a=this.json?JSON.parse(this.value):this.value;await(this.home?p=>ye.updateHomeConfiguration(p):p=>ye.updateConfiguration(i(),p))(p=>{if(s){let C=(0,Woe.default)(p);return(0,Voe.default)(C,this.name,a),C}else return{...p,[n]:a}});let u=(await ye.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),g=Ie.convertMapsToIndexableObjects(u),f=s?(0,zoe.default)(g,s):g;return(await Ge.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async p=>{VL.inspect.styles.name="cyan",p.reportInfo(0,`Successfully set ${this.name} to ${(0,VL.inspect)(f,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};gu.paths=[["config","set"]],gu.usage=ve.Usage({description:"change a configuration settings",details:` + `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var Voe=Pe(XL()),Xoe=Pe(ub()),Zoe=Pe(zoe()),ZL=J("util"),gu=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String();this.value=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new Qe("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new Qe(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new Qe("This setting only affects the file it's in, and thus cannot be set from the CLI");let a=this.json?JSON.parse(this.value):this.value;await(this.home?p=>ye.updateHomeConfiguration(p):p=>ye.updateConfiguration(i(),p))(p=>{if(s){let C=(0,Voe.default)(p);return(0,Zoe.default)(C,this.name,a),C}else return{...p,[n]:a}});let u=(await ye.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),g=Ie.convertMapsToIndexableObjects(u),f=s?(0,Xoe.default)(g,s):g;return(await Ge.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async p=>{ZL.inspect.styles.name="cyan",p.reportInfo(0,`Successfully set ${this.name} to ${(0,ZL.inspect)(f,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};gu.paths=[["config","set"]],gu.usage=ve.Usage({description:"change a configuration settings",details:` This command will set a configuration setting. When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. - `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var nae=Pe(zL()),sae=Pe(am()),oae=Pe(iae()),fu=class extends De{constructor(){super(...arguments);this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new Qe("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new Qe(`Couldn't find a configuration settings named "${n}"`);let a=this.home?c=>ye.updateHomeConfiguration(c):c=>ye.updateConfiguration(i(),c);return(await Ge.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async c=>{let u=!1;await a(g=>{if(!(0,sae.default)(g,this.name))return c.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),u=!0,g;let f=s?(0,nae.default)(g):{...g};return(0,oae.default)(f,this.name),f}),u||c.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};fu.paths=[["config","unset"]],fu.usage=ve.Usage({description:"unset a configuration setting",details:` + `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var oae=Pe(XL()),aae=Pe(am()),Aae=Pe(sae()),fu=class extends De{constructor(){super(...arguments);this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new Qe("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new Qe(`Couldn't find a configuration settings named "${n}"`);let a=this.home?c=>ye.updateHomeConfiguration(c):c=>ye.updateConfiguration(i(),c);return(await Ge.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async c=>{let u=!1;await a(g=>{if(!(0,aae.default)(g,this.name))return c.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),u=!0,g;let f=s?(0,oae.default)(g):{...g};return(0,Aae.default)(f,this.name),f}),u||c.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};fu.paths=[["config","unset"]],fu.usage=ve.Usage({description:"unset a configuration setting",details:` This command will unset a configuration setting. - `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var XL=J("util"),hu=class extends De{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=z.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins,{strict:!1});return(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{if(t.invalid.size>0&&!this.json){for(let[s,o]of t.invalid)n.reportError(34,`Invalid configuration key "${s}" in ${o}`);n.reportSeparator()}if(this.json){let s=Ie.sortMap(t.settings.keys(),o=>o);for(let o of s){let a=t.settings.get(o),l=t.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),c=t.sources.get(o);this.verbose?n.reportJson({key:o,effective:l,source:c}):n.reportJson({key:o,effective:l,source:c,...a})}}else{let s=Ie.sortMap(t.settings.keys(),l=>l),o=s.reduce((l,c)=>Math.max(l,c.length),0),a={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let l=s.map(u=>{let g=t.settings.get(u);if(!g)throw new Error(`Assertion failed: This settings ("${u}") should have been registered`);let f=this.why?t.sources.get(u)||"":g.description;return[u,f]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o," ")} ${g.padEnd(c," ")} ${(0,XL.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,XL.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};hu.paths=[["config"]],hu.usage=ve.Usage({description:"display the current configuration",details:` + `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var _L=J("util"),hu=class extends De{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=z.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins,{strict:!1});return(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{if(t.invalid.size>0&&!this.json){for(let[s,o]of t.invalid)n.reportError(34,`Invalid configuration key "${s}" in ${o}`);n.reportSeparator()}if(this.json){let s=Ie.sortMap(t.settings.keys(),o=>o);for(let o of s){let a=t.settings.get(o),l=t.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),c=t.sources.get(o);this.verbose?n.reportJson({key:o,effective:l,source:c}):n.reportJson({key:o,effective:l,source:c,...a})}}else{let s=Ie.sortMap(t.settings.keys(),l=>l),o=s.reduce((l,c)=>Math.max(l,c.length),0),a={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let l=s.map(u=>{let g=t.settings.get(u);if(!g)throw new Error(`Assertion failed: This settings ("${u}") should have been registered`);let f=this.why?t.sources.get(u)||"":g.description;return[u,f]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o," ")} ${g.padEnd(c," ")} ${(0,_L.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,_L.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};hu.paths=[["config"]],hu.usage=ve.Usage({description:"display the current configuration",details:` This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]});ls();var Nb={};ut(Nb,{Strategy:()=>jm,acceptedStrategies:()=>w3e,dedupe:()=>ZL});var aae=Pe(Bn()),jm=(e=>(e.HIGHEST="highest",e))(jm||{}),w3e=new Set(Object.values(jm)),B3e={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);Ie.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!aae.default.isMatch(P.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),f=await t.getSatisfying(a,g,n),h=f==null?void 0:f[0];if(typeof h>"u")return null;let p=h.locatorHash,C=r.originalPackages.get(p);if(typeof C>"u")throw new Error(`Assertion failed: The package (${p}) should have been registered`);return p===l?null:{descriptor:a,currentPackage:c,updatedPackage:C}})}};async function ZL(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new ti,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=B3e[e],f=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),h=vi.progressViaCounter(f.length);await n.reportProgress(h);let p=0;await Promise.all(f.map(B=>B.then(v=>{if(v===null)return;p++;let{descriptor:D,currentPackage:T,updatedPackage:H}=v;n.reportInfo(0,`${P.prettyDescriptor(s,D)} can be deduped from ${P.prettyLocator(s,T)} to ${P.prettyLocator(s,H)}`),n.reportJson({descriptor:P.stringifyDescriptor(D),currentResolution:P.stringifyLocator(T),updatedResolution:P.stringifyLocator(H)}),r.storedResolutions.set(D.descriptorHash,H.locatorHash)}).finally(()=>h.tick())));let C;switch(p){case 0:C="No packages";break;case 1:C="One package";break;default:C=`${p} packages`}let y=ee.pretty(s,e,ee.Type.CODE);return n.reportInfo(0,`${C} can be deduped using the ${y} strategy`),p})}var pu=class extends De{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Zi(jm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=await Rt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await Ge.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await ZL(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await Ge.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};pu.paths=[["dedupe"]],pu.usage=ve.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Vh=class extends De{async execute(){let{plugins:e}=await ye.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=Gn.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=Aae()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} + `,examples:[["Print the active configuration settings","$0 config"]]});ls();var Nb={};ut(Nb,{Strategy:()=>jm,acceptedStrategies:()=>b3e,dedupe:()=>$L});var lae=Pe(Bn()),jm=(e=>(e.HIGHEST="highest",e))(jm||{}),b3e=new Set(Object.values(jm)),Q3e={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);Ie.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!lae.default.isMatch(P.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),f=await t.getSatisfying(a,g,n),h=f==null?void 0:f[0];if(typeof h>"u")return null;let p=h.locatorHash,C=r.originalPackages.get(p);if(typeof C>"u")throw new Error(`Assertion failed: The package (${p}) should have been registered`);return p===l?null:{descriptor:a,currentPackage:c,updatedPackage:C}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new ti,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=Q3e[e],f=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),h=vi.progressViaCounter(f.length);await n.reportProgress(h);let p=0;await Promise.all(f.map(B=>B.then(v=>{if(v===null)return;p++;let{descriptor:D,currentPackage:T,updatedPackage:H}=v;n.reportInfo(0,`${P.prettyDescriptor(s,D)} can be deduped from ${P.prettyLocator(s,T)} to ${P.prettyLocator(s,H)}`),n.reportJson({descriptor:P.stringifyDescriptor(D),currentResolution:P.stringifyLocator(T),updatedResolution:P.stringifyLocator(H)}),r.storedResolutions.set(D.descriptorHash,H.locatorHash)}).finally(()=>h.tick())));let C;switch(p){case 0:C="No packages";break;case 1:C="One package";break;default:C=`${p} packages`}let y=ee.pretty(s,e,ee.Type.CODE);return n.reportInfo(0,`${C} can be deduped using the ${y} strategy`),p})}var pu=class extends De{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Zi(jm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=await Rt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await Ge.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await Ge.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};pu.paths=[["dedupe"]],pu.usage=ve.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Vh=class extends De{async execute(){let{plugins:e}=await ye.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=Gn.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=cae()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} `)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends De{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var qm=class extends De{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!P.tryParseIdent(this.leadingArgument)){let t=x.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends De{async execute(){this.context.stdout.write(`${Tr||""} `)}};Zh.paths=[["-v"],["--version"]];var du=class extends De{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await je.find(t,this.context.cwd);return await i.restoreInstallState(),await Wt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};du.paths=[["exec"]],du.usage=ve.Usage({description:"execute a shell script",details:` This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});ls();var Cu=class extends De{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:od(sd(),[ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await Q3e(this.hash,i,{stdout:this.context.stdout}):(await Ge.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>P.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>P.stringifyIdent(l.requested)];for(let[l,c]of Ie.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let f=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,h=ee.pretty(t,l,ee.Type.CODE),p=P.prettyLocator(t,u),C=P.prettyIdent(t,c.requested),y=P.prettyIdent(t,g),B=c.allRequesters.length-1,v=`descendant${B===1?"":"s"}`,D=B>0?` and ${B} ${v}`:"",T=f!==null?"provides":"doesn't provide";s.reportInfo(null,`${h} \u2192 ${p} ${T} ${C} to ${y}${D}`)}})).exitCode()}};Cu.paths=[["explain","peer-requirements"]],Cu.usage=ve.Usage({description:"explain a set of peer requirements",details:` + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});ls();var Cu=class extends De{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:od(sd(),[ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await v3e(this.hash,i,{stdout:this.context.stdout}):(await Ge.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>P.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>P.stringifyIdent(l.requested)];for(let[l,c]of Ie.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let f=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,h=ee.pretty(t,l,ee.Type.CODE),p=P.prettyLocator(t,u),C=P.prettyIdent(t,c.requested),y=P.prettyIdent(t,g),B=c.allRequesters.length-1,v=`descendant${B===1?"":"s"}`,D=B>0?` and ${B} ${v}`:"",T=f!==null?"provides":"doesn't provide";s.reportInfo(null,`${h} \u2192 ${p} ${T} ${C} to ${y}${D}`)}})).exitCode()}};Cu.paths=[["explain","peer-requirements"]],Cu.usage=ve.Usage({description:"explain a set of peer requirements",details:` A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. @@ -482,9 +482,9 @@ Try running the command again with the package name prefixed: ${ee.pretty(t,"yar When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function Q3e(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await Ge.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,v;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let f=[...n.allRequesters.values()].map(D=>{let T=e.storedPackages.get(D);if(typeof T>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=P.devirtualizeLocator(T),j=e.storedPackages.get(H.locatorHash);if(typeof j>"u")throw new Error("Assertion failed: Expected the package to be registered");let $=j.peerDependencies.get(n.requested.identHash);if(typeof $>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:T,peerDependency:$}});if(g!==null){let D=f.every(({peerDependency:T})=>vt.satisfiesWithPrereleases(g.version,T.range));o.reportInfo(0,`${P.prettyLocator(i,a)} provides ${P.prettyLocator(i,g)} with version ${P.prettyReference(i,(v=g.version)!=null?v:"")}, which ${D?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${P.prettyLocator(i,a)} doesn't provide ${P.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let h=ee.mark(i),p=[];for(let{pkg:D,peerDependency:T}of Ie.sortMap(f,H=>P.stringifyLocator(H.pkg))){let j=(g!==null?vt.satisfiesWithPrereleases(g.version,T.range):!1)?h.Check:h.Cross;p.push({stringifiedLocator:P.stringifyLocator(D),prettyLocator:P.prettyLocator(i,D),prettyRange:P.prettyRange(i,T.range),mark:j})}let C=Math.max(...p.map(({stringifiedLocator:D})=>D.length)),y=Math.max(...p.map(({prettyRange:D})=>D.length));for(let{stringifiedLocator:D,prettyLocator:T,prettyRange:H,mark:j}of Ie.sortMap(p,({stringifiedLocator:$})=>$))o.reportInfo(null,`${T.padEnd(C+(T.length-D.length)," ")} \u2192 ${H.padEnd(y," ")} ${j}`);p.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${P.prettyLocator(e.configuration,l)}`))})).exitCode()}ls();var lae=Pe(Xr()),mu=class extends De{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await ye.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(x.contains(l,a))return 0}let i=()=>{if(typeof Tr>"u")throw new Qe("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Jm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Jm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(vt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(vt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(vt.validRange(this.version))n=`https://repo.yarnpkg.com/${await S3e(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new Qe(`Invalid version descriptor "${this.version}"`);return(await Ge.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${ee.pretty(t,n,xi.URL)}`),c=await O.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${ee.pretty(t,n,xi.PATH)}`),c=await Xt.get(n,{configuration:t})),await _L(t,null,c,{report:a})})).exitCode()}};mu.paths=[["set","version"]],mu.usage=ve.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function S3e(r,e){let i=(await Xt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>vt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new Qe(`No matching release found for range ${ee.pretty(r,e,ee.Type.RANGE)}.`);return i[0]}async function Jm(r,e){let t=await Xt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new Qe(`Tag ${ee.pretty(r,e,ee.Type.RANGE)} not found`);return t.latest[e]}async function _L(r,e,t,{report:i}){var h;e===null&&await O.mktempPromise(async p=>{let C=x.join(p,"yarn.cjs");await O.writeFilePromise(C,t);let{stdout:y}=await Cr.execvp(process.execPath,[K.fromPortablePath(C),"--version"],{cwd:p,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=y.trim(),!lae.default.valid(e))throw new Error(`Invalid semver version. ${ee.pretty(r,"yarn --version",ee.Type.CODE)} returned: + `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function v3e(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await Ge.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,v;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let f=[...n.allRequesters.values()].map(D=>{let T=e.storedPackages.get(D);if(typeof T>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=P.devirtualizeLocator(T),j=e.storedPackages.get(H.locatorHash);if(typeof j>"u")throw new Error("Assertion failed: Expected the package to be registered");let $=j.peerDependencies.get(n.requested.identHash);if(typeof $>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:T,peerDependency:$}});if(g!==null){let D=f.every(({peerDependency:T})=>vt.satisfiesWithPrereleases(g.version,T.range));o.reportInfo(0,`${P.prettyLocator(i,a)} provides ${P.prettyLocator(i,g)} with version ${P.prettyReference(i,(v=g.version)!=null?v:"")}, which ${D?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${P.prettyLocator(i,a)} doesn't provide ${P.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let h=ee.mark(i),p=[];for(let{pkg:D,peerDependency:T}of Ie.sortMap(f,H=>P.stringifyLocator(H.pkg))){let j=(g!==null?vt.satisfiesWithPrereleases(g.version,T.range):!1)?h.Check:h.Cross;p.push({stringifiedLocator:P.stringifyLocator(D),prettyLocator:P.prettyLocator(i,D),prettyRange:P.prettyRange(i,T.range),mark:j})}let C=Math.max(...p.map(({stringifiedLocator:D})=>D.length)),y=Math.max(...p.map(({prettyRange:D})=>D.length));for(let{stringifiedLocator:D,prettyLocator:T,prettyRange:H,mark:j}of Ie.sortMap(p,({stringifiedLocator:$})=>$))o.reportInfo(null,`${T.padEnd(C+(T.length-D.length)," ")} \u2192 ${H.padEnd(y," ")} ${j}`);p.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${P.prettyLocator(e.configuration,l)}`))})).exitCode()}ls();var uae=Pe(Xr()),mu=class extends De{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await ye.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(x.contains(l,a))return 0}let i=()=>{if(typeof Tr>"u")throw new Qe("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Jm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Jm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(vt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(vt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(vt.validRange(this.version))n=`https://repo.yarnpkg.com/${await x3e(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new Qe(`Invalid version descriptor "${this.version}"`);return(await Ge.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${ee.pretty(t,n,xi.URL)}`),c=await O.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${ee.pretty(t,n,xi.PATH)}`),c=await Xt.get(n,{configuration:t})),await eM(t,null,c,{report:a})})).exitCode()}};mu.paths=[["set","version"]],mu.usage=ve.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function x3e(r,e){let i=(await Xt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>vt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new Qe(`No matching release found for range ${ee.pretty(r,e,ee.Type.RANGE)}.`);return i[0]}async function Jm(r,e){let t=await Xt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new Qe(`Tag ${ee.pretty(r,e,ee.Type.RANGE)} not found`);return t.latest[e]}async function eM(r,e,t,{report:i}){var h;e===null&&await O.mktempPromise(async p=>{let C=x.join(p,"yarn.cjs");await O.writeFilePromise(C,t);let{stdout:y}=await Cr.execvp(process.execPath,[K.fromPortablePath(C),"--version"],{cwd:p,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=y.trim(),!uae.default.valid(e))throw new Error(`Invalid semver version. ${ee.pretty(r,"yarn --version",ee.Type.CODE)} returned: ${e}`)});let n=(h=r.projectCwd)!=null?h:r.startingCwd,s=x.resolve(n,".yarn/releases"),o=x.resolve(s,`yarn-${e}.cjs`),a=x.relative(r.startingCwd,o),l=x.relative(n,o);i.reportInfo(0,`Saving the new release in ${ee.pretty(r,a,"magenta")}`),await O.removePromise(x.dirname(o)),await O.mkdirPromise(x.dirname(o),{recursive:!0}),await O.writeFilePromise(o,t,{mode:493}),await ye.updateConfiguration(n,{yarnPath:l});let c=await ot.tryFind(n)||new ot;c.packageManager=`yarn@${e&&Ie.isTaggedYarnVersion(e)?e:await Jm(r,"stable")}`;let u={};c.exportTo(u);let g=x.join(n,ot.fileName),f=`${JSON.stringify(u,null,c.indent)} -`;await O.changeFilePromise(g,f,{automaticNewlines:!0})}function cae(r){return Ct[LI(r)]}var v3e=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function x3e(r){let t=`https://repo.yarnpkg.com/${Ie.isTaggedYarnVersion(Tr)?Tr:await Jm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Xt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(v3e),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=cae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var Eu=class extends De{constructor(){super(...arguments);this.code=z.String({required:!1,validator:od(sd(),[ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=cae(this.code),n=ee.pretty(t,i,ee.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await x3e(t)).get(this.code),l=typeof a<"u"?ee.jsonOrPretty(this.json,t,ee.tuple(ee.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. +`;await O.changeFilePromise(g,f,{automaticNewlines:!0})}function gae(r){return Ct[LI(r)]}var P3e=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function D3e(r){let t=`https://repo.yarnpkg.com/${Ie.isTaggedYarnVersion(Tr)?Tr:await Jm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Xt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(P3e),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=gae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var Eu=class extends De{constructor(){super(...arguments);this.code=z.String({required:!1,validator:od(sd(),[ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=gae(this.code),n=ee.pretty(t,i,ee.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await D3e(t)).get(this.code),l=typeof a<"u"?ee.jsonOrPretty(this.json,t,ee.tuple(ee.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. You can help us by editing this page on GitHub \u{1F642}: ${ee.jsonOrPretty(this.json,t,ee.tuple(ee.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} @@ -492,11 +492,11 @@ ${ee.jsonOrPretty(this.json,t,ee.tuple(ee.Type.URL,"https://github.com/yarnpkg/b `):this.context.stdout.write(`${s} ${l} -`)}else{let i={children:Ie.mapAndFilter(Object.entries(Ct),([n,s])=>Number.isNaN(Number(n))?Ie.mapAndFilter.skip:{label:NA(Number(n)),value:ee.tuple(ee.Type.CODE,s)})};es.emitTree(i,{configuration:t,stdout:this.context.stdout,json:this.json})}}};Eu.paths=[["explain"]],Eu.usage=ve.Usage({description:"explain an error code",details:` +`)}else{let i={children:Ie.mapAndFilter(Object.entries(Ct),([n,s])=>Number.isNaN(Number(n))?Ie.mapAndFilter.skip:{label:FA(Number(n)),value:ee.tuple(ee.Type.CODE,s)})};es.emitTree(i,{configuration:t,stdout:this.context.stdout,json:this.json})}}};Eu.paths=[["explain"]],Eu.usage=ve.Usage({description:"explain an error code",details:` When the code argument is specified, this command prints its name and its details. When used without arguments, this command lists all error codes and their names. - `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var uae=Pe(Bn()),Iu=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n&&!this.all)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(T,{recursive:H})=>{let j=T.anchoredLocator.locatorHash,$=new Map,V=[j];for(;V.length>0;){let W=V.shift();if($.has(W))continue;let _=i.storedPackages.get(W);if(typeof _>"u")throw new Error("Assertion failed: Expected the package to be registered");if($.set(W,_),P.isVirtualLocator(_)&&V.push(P.devirtualizeLocator(_).locatorHash),!(!H&&W!==j))for(let A of _.dependencies.values()){let Ae=i.storedResolutions.get(A.descriptorHash);if(typeof Ae>"u")throw new Error("Assertion failed: Expected the resolution to be registered");V.push(Ae)}}return $.values()},l=({recursive:T})=>{let H=new Map;for(let j of i.workspaces)for(let $ of a(j,{recursive:T}))H.set($.locatorHash,$);return H.values()},c=({all:T,recursive:H})=>T&&H?i.storedPackages.values():T?l({recursive:H}):a(n,{recursive:H}),u=({all:T,recursive:H})=>{let j=c({all:T,recursive:H}),$=this.patterns.map(_=>{let A=P.parseLocator(_),Ae=uae.default.makeRe(P.stringifyIdent(A)),ge=P.isVirtualLocator(A),re=ge?P.devirtualizeLocator(A):A;return M=>{let F=P.stringifyIdent(M);if(!Ae.test(F))return!1;if(A.reference==="unknown")return!0;let ue=P.isVirtualLocator(M),pe=ue?P.devirtualizeLocator(M):M;return!(ge&&ue&&A.reference!==M.reference||re.reference!==pe.reference)}}),V=Ie.sortMap([...j],_=>P.stringifyLocator(_));return{selection:V.filter(_=>$.length===0||$.some(A=>A(_))),sortedLookup:V}},{selection:g,sortedLookup:f}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new Qe("No package matched your request");let h=new Map;if(this.dependents)for(let T of f)for(let H of T.dependencies.values()){let j=i.storedResolutions.get(H.descriptorHash);if(typeof j>"u")throw new Error("Assertion failed: Expected the resolution to be registered");Ie.getArrayWithDefault(h,j).push(T)}let p=new Map;for(let T of f){if(!P.isVirtualLocator(T))continue;let H=P.devirtualizeLocator(T);Ie.getArrayWithDefault(p,H.locatorHash).push(T)}let C={},y={children:C},B=t.makeFetcher(),v={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new ti,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},D=[async(T,H,j)=>{var W,_;if(!H.has("manifest"))return;let $=await B.fetch(T,v),V;try{V=await ot.find($.prefixPath,{baseFs:$.packageFs})}finally{(W=$.releaseFs)==null||W.call($)}j("Manifest",{License:ee.tuple(ee.Type.NO_HINT,V.license),Homepage:ee.tuple(ee.Type.URL,(_=V.raw.homepage)!=null?_:null)})},async(T,H,j)=>{var Ae;if(!H.has("cache"))return;let $={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},V=(Ae=i.storedChecksums.get(T.locatorHash))!=null?Ae:null,W=s.getLocatorPath(T,V,$),_;if(W!==null)try{_=O.statSync(W)}catch{}let A=typeof _<"u"?[_.size,ee.Type.SIZE]:void 0;j("Cache",{Checksum:ee.tuple(ee.Type.NO_HINT,V),Path:ee.tuple(ee.Type.PATH,W),Size:A})}];for(let T of g){let H=P.isVirtualLocator(T);if(!this.virtuals&&H)continue;let j={},$={value:[T,ee.Type.LOCATOR],children:j};if(C[P.stringifyLocator(T)]=$,this.nameOnly){delete $.children;continue}let V=p.get(T.locatorHash);typeof V<"u"&&(j.Instances={label:"Instances",value:ee.tuple(ee.Type.NUMBER,V.length)}),j.Version={label:"Version",value:ee.tuple(ee.Type.NO_HINT,T.version)};let W=(A,Ae)=>{let ge={};if(j[A]=ge,Array.isArray(Ae))ge.children=Ae.map(re=>({value:re}));else{let re={};ge.children=re;for(let[M,F]of Object.entries(Ae))typeof F>"u"||(re[M]={label:M,value:F})}};if(!H){for(let A of D)await A(T,o,W);await t.triggerHook(A=>A.fetchPackageInfo,T,o,W)}T.bin.size>0&&!H&&W("Exported Binaries",[...T.bin.keys()].map(A=>ee.tuple(ee.Type.PATH,A)));let _=h.get(T.locatorHash);typeof _<"u"&&_.length>0&&W("Dependents",_.map(A=>ee.tuple(ee.Type.LOCATOR,A))),T.dependencies.size>0&&!H&&W("Dependencies",[...T.dependencies.values()].map(A=>{var re;let Ae=i.storedResolutions.get(A.descriptorHash),ge=typeof Ae<"u"&&(re=i.storedPackages.get(Ae))!=null?re:null;return ee.tuple(ee.Type.RESOLUTION,{descriptor:A,locator:ge})})),T.peerDependencies.size>0&&H&&W("Peer dependencies",[...T.peerDependencies.values()].map(A=>{var M,F;let Ae=T.dependencies.get(A.identHash),ge=typeof Ae<"u"&&(M=i.storedResolutions.get(Ae.descriptorHash))!=null?M:null,re=ge!==null&&(F=i.storedPackages.get(ge))!=null?F:null;return ee.tuple(ee.Type.RESOLUTION,{descriptor:A,locator:re})}))}es.emitTree(y,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};Iu.paths=[["info"]],Iu.usage=ve.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var Tb=Pe(Ac());ls();var yu=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=z.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=z.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=z.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=z.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.cacheFolder=z.String("--cache-folder",{hidden:!0});this.frozenLockfile=z.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=z.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=z.Boolean("--non-interactive",{hidden:!0});this.preferOffline=z.Boolean("--prefer-offline",{hidden:!0});this.production=z.Boolean("--production",{hidden:!0});this.registry=z.String("--registry",{hidden:!0});this.silent=z.Boolean("--silent",{hidden:!0});this.networkTimeout=z.String("--network-timeout",{hidden:!0})}async execute(){var f;let t=await ye.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(h,{error:p})=>{let C=await Ge.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async y=>{p?y.reportError(50,h):y.reportWarning(50,h)});return C.hasErrors()?C.exitCode():null};if(typeof this.ignoreEngines<"u"){let h=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!Tb.default.VERCEL});if(h!==null)return h}if(typeof this.registry<"u"){let h=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(h!==null)return h}if(typeof this.preferOffline<"u"){let h=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!Tb.default.VERCEL});if(h!==null)return h}if(typeof this.production<"u"){let h=await n("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(h!==null)return h}if(typeof this.nonInteractive<"u"){let h=await n("The --non-interactive option is deprecated",{error:!i});if(h!==null)return h}if(typeof this.frozenLockfile<"u"&&(await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let h=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!Tb.default.NETLIFY});if(h!==null)return h}let s=this.mode==="update-lockfile";if(s&&(this.immutable||this.immutableCache))throw new Qe(`${ee.pretty(t,"--immutable",ee.Type.CODE)} and ${ee.pretty(t,"--immutable-cache",ee.Type.CODE)} cannot be used with ${ee.pretty(t,"--mode=update-lockfile",ee.Type.CODE)}`);let o=((f=this.immutable)!=null?f:t.get("enableImmutableInstalls"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let h=await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async p=>{await R3e(t,o)&&(p.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),p.reportSeparator())});if(h.hasErrors())return h.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get("nodeLinker")>"u"){let h=t.projectCwd,p;try{p=await O.readFilePromise(x.join(h,xt.lockfile),"utf8")}catch{}if(p!=null&&p.includes("yarn lockfile v1")){let C=await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async y=>{y.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),y.reportSeparator(),t.use("",{nodeLinker:"node-modules"},h,{overwrite:!0}),await ye.updateConfiguration(h,{nodeLinker:"node-modules"})});if(C.hasErrors())return C.exitCode()}}if(t.projectCwd!==null){let h=await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async p=>{var C;(C=ye.telemetry)!=null&&C.isNew&&(p.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),p.reportInfo(65,`Run ${ee.pretty(t,"yarn config set --home enableTelemetry 0",ee.Type.CODE)} to disable`),p.reportSeparator())});if(h.hasErrors())return h.exitCode()}let{project:l,workspace:c}=await je.find(t,this.context.cwd),u=await Rt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new ct(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async h=>{await l.install({cache:u,report:h,immutable:o,mode:this.mode})})).exitCode()}};yu.paths=[["install"],ve.Default],yu.usage=ve.Usage({description:"install the project dependencies",details:` + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var fae=Pe(Bn()),Iu=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n&&!this.all)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(T,{recursive:H})=>{let j=T.anchoredLocator.locatorHash,$=new Map,V=[j];for(;V.length>0;){let W=V.shift();if($.has(W))continue;let _=i.storedPackages.get(W);if(typeof _>"u")throw new Error("Assertion failed: Expected the package to be registered");if($.set(W,_),P.isVirtualLocator(_)&&V.push(P.devirtualizeLocator(_).locatorHash),!(!H&&W!==j))for(let A of _.dependencies.values()){let Ae=i.storedResolutions.get(A.descriptorHash);if(typeof Ae>"u")throw new Error("Assertion failed: Expected the resolution to be registered");V.push(Ae)}}return $.values()},l=({recursive:T})=>{let H=new Map;for(let j of i.workspaces)for(let $ of a(j,{recursive:T}))H.set($.locatorHash,$);return H.values()},c=({all:T,recursive:H})=>T&&H?i.storedPackages.values():T?l({recursive:H}):a(n,{recursive:H}),u=({all:T,recursive:H})=>{let j=c({all:T,recursive:H}),$=this.patterns.map(_=>{let A=P.parseLocator(_),Ae=fae.default.makeRe(P.stringifyIdent(A)),ge=P.isVirtualLocator(A),re=ge?P.devirtualizeLocator(A):A;return M=>{let F=P.stringifyIdent(M);if(!Ae.test(F))return!1;if(A.reference==="unknown")return!0;let ue=P.isVirtualLocator(M),pe=ue?P.devirtualizeLocator(M):M;return!(ge&&ue&&A.reference!==M.reference||re.reference!==pe.reference)}}),V=Ie.sortMap([...j],_=>P.stringifyLocator(_));return{selection:V.filter(_=>$.length===0||$.some(A=>A(_))),sortedLookup:V}},{selection:g,sortedLookup:f}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new Qe("No package matched your request");let h=new Map;if(this.dependents)for(let T of f)for(let H of T.dependencies.values()){let j=i.storedResolutions.get(H.descriptorHash);if(typeof j>"u")throw new Error("Assertion failed: Expected the resolution to be registered");Ie.getArrayWithDefault(h,j).push(T)}let p=new Map;for(let T of f){if(!P.isVirtualLocator(T))continue;let H=P.devirtualizeLocator(T);Ie.getArrayWithDefault(p,H.locatorHash).push(T)}let C={},y={children:C},B=t.makeFetcher(),v={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new ti,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},D=[async(T,H,j)=>{var W,_;if(!H.has("manifest"))return;let $=await B.fetch(T,v),V;try{V=await ot.find($.prefixPath,{baseFs:$.packageFs})}finally{(W=$.releaseFs)==null||W.call($)}j("Manifest",{License:ee.tuple(ee.Type.NO_HINT,V.license),Homepage:ee.tuple(ee.Type.URL,(_=V.raw.homepage)!=null?_:null)})},async(T,H,j)=>{var Ae;if(!H.has("cache"))return;let $={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},V=(Ae=i.storedChecksums.get(T.locatorHash))!=null?Ae:null,W=s.getLocatorPath(T,V,$),_;if(W!==null)try{_=O.statSync(W)}catch{}let A=typeof _<"u"?[_.size,ee.Type.SIZE]:void 0;j("Cache",{Checksum:ee.tuple(ee.Type.NO_HINT,V),Path:ee.tuple(ee.Type.PATH,W),Size:A})}];for(let T of g){let H=P.isVirtualLocator(T);if(!this.virtuals&&H)continue;let j={},$={value:[T,ee.Type.LOCATOR],children:j};if(C[P.stringifyLocator(T)]=$,this.nameOnly){delete $.children;continue}let V=p.get(T.locatorHash);typeof V<"u"&&(j.Instances={label:"Instances",value:ee.tuple(ee.Type.NUMBER,V.length)}),j.Version={label:"Version",value:ee.tuple(ee.Type.NO_HINT,T.version)};let W=(A,Ae)=>{let ge={};if(j[A]=ge,Array.isArray(Ae))ge.children=Ae.map(re=>({value:re}));else{let re={};ge.children=re;for(let[M,F]of Object.entries(Ae))typeof F>"u"||(re[M]={label:M,value:F})}};if(!H){for(let A of D)await A(T,o,W);await t.triggerHook(A=>A.fetchPackageInfo,T,o,W)}T.bin.size>0&&!H&&W("Exported Binaries",[...T.bin.keys()].map(A=>ee.tuple(ee.Type.PATH,A)));let _=h.get(T.locatorHash);typeof _<"u"&&_.length>0&&W("Dependents",_.map(A=>ee.tuple(ee.Type.LOCATOR,A))),T.dependencies.size>0&&!H&&W("Dependencies",[...T.dependencies.values()].map(A=>{var re;let Ae=i.storedResolutions.get(A.descriptorHash),ge=typeof Ae<"u"&&(re=i.storedPackages.get(Ae))!=null?re:null;return ee.tuple(ee.Type.RESOLUTION,{descriptor:A,locator:ge})})),T.peerDependencies.size>0&&H&&W("Peer dependencies",[...T.peerDependencies.values()].map(A=>{var M,F;let Ae=T.dependencies.get(A.identHash),ge=typeof Ae<"u"&&(M=i.storedResolutions.get(Ae.descriptorHash))!=null?M:null,re=ge!==null&&(F=i.storedPackages.get(ge))!=null?F:null;return ee.tuple(ee.Type.RESOLUTION,{descriptor:A,locator:re})}))}es.emitTree(y,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};Iu.paths=[["info"]],Iu.usage=ve.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var Tb=Pe(Ac());ls();var yu=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=z.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=z.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=z.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=z.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.cacheFolder=z.String("--cache-folder",{hidden:!0});this.frozenLockfile=z.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=z.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=z.Boolean("--non-interactive",{hidden:!0});this.preferOffline=z.Boolean("--prefer-offline",{hidden:!0});this.production=z.Boolean("--production",{hidden:!0});this.registry=z.String("--registry",{hidden:!0});this.silent=z.Boolean("--silent",{hidden:!0});this.networkTimeout=z.String("--network-timeout",{hidden:!0})}async execute(){var f;let t=await ye.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(h,{error:p})=>{let C=await Ge.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async y=>{p?y.reportError(50,h):y.reportWarning(50,h)});return C.hasErrors()?C.exitCode():null};if(typeof this.ignoreEngines<"u"){let h=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!Tb.default.VERCEL});if(h!==null)return h}if(typeof this.registry<"u"){let h=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(h!==null)return h}if(typeof this.preferOffline<"u"){let h=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!Tb.default.VERCEL});if(h!==null)return h}if(typeof this.production<"u"){let h=await n("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(h!==null)return h}if(typeof this.nonInteractive<"u"){let h=await n("The --non-interactive option is deprecated",{error:!i});if(h!==null)return h}if(typeof this.frozenLockfile<"u"&&(await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let h=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!Tb.default.NETLIFY});if(h!==null)return h}let s=this.mode==="update-lockfile";if(s&&(this.immutable||this.immutableCache))throw new Qe(`${ee.pretty(t,"--immutable",ee.Type.CODE)} and ${ee.pretty(t,"--immutable-cache",ee.Type.CODE)} cannot be used with ${ee.pretty(t,"--mode=update-lockfile",ee.Type.CODE)}`);let o=((f=this.immutable)!=null?f:t.get("enableImmutableInstalls"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let h=await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async p=>{await N3e(t,o)&&(p.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),p.reportSeparator())});if(h.hasErrors())return h.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get("nodeLinker")>"u"){let h=t.projectCwd,p;try{p=await O.readFilePromise(x.join(h,xt.lockfile),"utf8")}catch{}if(p!=null&&p.includes("yarn lockfile v1")){let C=await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async y=>{y.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),y.reportSeparator(),t.use("",{nodeLinker:"node-modules"},h,{overwrite:!0}),await ye.updateConfiguration(h,{nodeLinker:"node-modules"})});if(C.hasErrors())return C.exitCode()}}if(t.projectCwd!==null){let h=await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async p=>{var C;(C=ye.telemetry)!=null&&C.isNew&&(p.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),p.reportInfo(65,`Run ${ee.pretty(t,"yarn config set --home enableTelemetry 0",ee.Type.CODE)} to disable`),p.reportSeparator())});if(h.hasErrors())return h.exitCode()}let{project:l,workspace:c}=await je.find(t,this.context.cwd),u=await Rt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new ct(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async h=>{await l.install({cache:u,report:h,immutable:o,mode:this.mode})})).exitCode()}};yu.paths=[["install"],ve.Default],yu.usage=ve.Usage({description:"install the project dependencies",details:` This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics: - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ). @@ -522,18 +522,18 @@ ${l} - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var P3e="|||||||",D3e=">>>>>>>",k3e="=======",gae="<<<<<<<";async function R3e(r,e){if(!r.projectCwd)return!1;let t=x.join(r.projectCwd,r.get("lockfileFilename"));if(!await O.existsPromise(t))return!1;let i=await O.readFilePromise(t,"utf8");if(!i.includes(gae))return!1;if(e)throw new at(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=F3e(i),o,a;try{o=yi(n),a=yi(s)}catch{throw new at(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await O.changeFilePromise(t,ba(l),{automaticNewlines:!0}),!0}function F3e(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(gae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===k3e){i=!1;break}else if(i||s.startsWith(P3e)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(D3e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` + `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var k3e="|||||||",R3e=">>>>>>>",F3e="=======",hae="<<<<<<<";async function N3e(r,e){if(!r.projectCwd)return!1;let t=x.join(r.projectCwd,r.get("lockfileFilename"));if(!await O.existsPromise(t))return!1;let i=await O.readFilePromise(t,"utf8");if(!i.includes(hae))return!1;if(e)throw new at(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=T3e(i),o,a;try{o=yi(n),a=yi(s)}catch{throw new at(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await O.changeFilePromise(t,ba(l),{automaticNewlines:!0}),!0}function T3e(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(hae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===F3e){i=!1;break}else if(i||s.startsWith(k3e)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(R3e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` `),e[1].join(` `)]}var wu=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target project to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target project to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destination=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=x.resolve(this.context.cwd,K.toPortablePath(this.destination)),a=await ye.find(o,this.context.plugins,{useRc:!1,strict:!1}),{project:l,workspace:c}=await je.find(a,o);if(i.cwd===l.cwd)throw new Qe("Invalid destination; Can't link the project to itself");if(!c)throw new ct(l.cwd,o);let u=i.topLevelWorkspace,g=[];if(this.all){for(let h of l.workspaces)h.manifest.name&&(!h.manifest.private||this.private)&&g.push(h);if(g.length===0)throw new Qe("No workspace found to be linked in the target project")}else{if(!c.manifest.name)throw new Qe("The target workspace doesn't have a name and thus cannot be linked");if(c.manifest.private&&!this.private)throw new Qe("The target workspace is marked private - use the --private flag to link it anyway");g.push(c)}for(let h of g){let p=P.stringifyIdent(h.locator),C=this.relative?x.relative(i.cwd,h.cwd):h.cwd;u.manifest.resolutions.push({pattern:{descriptor:{fullName:p}},reference:`portal:${C}`})}return(await Ge.start({configuration:t,stdout:this.context.stdout},async h=>{await i.install({cache:s,report:h})})).exitCode()}};wu.paths=[["link"]],wu.usage=ve.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register a remote workspace for use in the current project","$0 link ~/ts-loader"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var Bu=class extends De{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};Bu.paths=[["node"]],Bu.usage=ve.Usage({description:"run node with the hook already setup",details:` This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var mae=J("os");var fae=J("os");var N3e="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Qu(r){let e=await Xt.get(N3e,{configuration:r});return yi(e.toString())}var bu=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins);return(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await Qu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};bu.paths=[["plugin","list"]],bu.usage=ve.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var T3e=/^[0-9]+$/;function hae(r){return T3e.test(r)?`pull/${r}/head`:r}var L3e=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",hae(e)],["git","reset","--hard","FETCH_HEAD"]],M3e=({branch:r})=>[["git","fetch","origin","--depth=1",hae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],O3e=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",x.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],Su=class extends De{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=typeof this.installPath<"u"?x.resolve(this.context.cwd,K.toPortablePath(this.installPath)):x.resolve(K.toPortablePath((0,fae.tmpdir)()),"yarnpkg-sources",li.makeHash(this.repository).slice(0,6));return(await Ge.start({configuration:t,stdout:this.context.stdout},async o=>{await $L(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await Wm(O3e(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=x.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await O.readFilePromise(a);await _L(t,"sources",l,{report:o}),this.skipPlugins||await K3e(this,{project:i,report:o,target:n})})).exitCode()}};Su.paths=[["set","version","from","sources"]],Su.usage=ve.Usage({description:"build Yarn from master",details:` + `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Iae=J("os");var pae=J("os");var L3e="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Qu(r){let e=await Xt.get(L3e,{configuration:r});return yi(e.toString())}var bu=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins);return(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await Qu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};bu.paths=[["plugin","list"]],bu.usage=ve.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var M3e=/^[0-9]+$/;function dae(r){return M3e.test(r)?`pull/${r}/head`:r}var O3e=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",dae(e)],["git","reset","--hard","FETCH_HEAD"]],K3e=({branch:r})=>[["git","fetch","origin","--depth=1",dae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],U3e=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",x.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],Su=class extends De{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=typeof this.installPath<"u"?x.resolve(this.context.cwd,K.toPortablePath(this.installPath)):x.resolve(K.toPortablePath((0,pae.tmpdir)()),"yarnpkg-sources",li.makeHash(this.repository).slice(0,6));return(await Ge.start({configuration:t,stdout:this.context.stdout},async o=>{await tM(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await Wm(U3e(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=x.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await O.readFilePromise(a);await eM(t,"sources",l,{report:o}),this.skipPlugins||await H3e(this,{project:i,report:o,target:n})})).exitCode()}};Su.paths=[["set","version","from","sources"]],Su.usage=ve.Usage({description:"build Yarn from master",details:` This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. `,examples:[["Build Yarn from master","$0 set version from sources"]]});async function Wm(r,{configuration:e,context:t,target:i}){for(let[n,...s]of r){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await Cr.pipevp(n,s,{cwd:i,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,strict:!0});else{t.stdout.write(`${ee.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")} -`);try{await Cr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function $L(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&O.existsSync(x.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await Wm(M3e(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await O.removePromise(i),await O.mkdirPromise(i,{recursive:!0}),await Wm(L3e(r,i),{configuration:e,context:r.context,target:i}))}async function K3e(r,{project:e,report:t,target:i}){let n=await Qu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await eM(o,r,{project:e,report:t,target:i})}var pae=Pe(Xr()),dae=J("url"),Cae=J("vm");var vu=class extends De{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins);return(await Ge.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await je.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=x.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${ee.pretty(t,l,ee.Type.PATH)}`),o=x.relative(s.cwd,l),a=await O.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new dae.URL(this.name)}catch{throw new at(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=P.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!pae.default.valid(c.reference))throw new at(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=P.stringifyIdent(c),g=await Qu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new at(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Tr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Tr}/`))}n.reportInfo(0,`Downloading ${ee.pretty(t,l,"green")}`),a=await Xt.get(l,{configuration:t})}await tM(o,a,{project:s,report:n})})).exitCode()}};vu.paths=[["plugin","import"]],vu.usage=ve.Usage({category:"Plugin-related commands",description:"download a plugin",details:` +`);try{await Cr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tM(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&O.existsSync(x.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await Wm(K3e(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await O.removePromise(i),await O.mkdirPromise(i,{recursive:!0}),await Wm(O3e(r,i),{configuration:e,context:r.context,target:i}))}async function H3e(r,{project:e,report:t,target:i}){let n=await Qu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rM(o,r,{project:e,report:t,target:i})}var Cae=Pe(Xr()),mae=J("url"),Eae=J("vm");var vu=class extends De{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins);return(await Ge.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await je.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=x.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${ee.pretty(t,l,ee.Type.PATH)}`),o=x.relative(s.cwd,l),a=await O.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new mae.URL(this.name)}catch{throw new at(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=P.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!Cae.default.valid(c.reference))throw new at(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=P.stringifyIdent(c),g=await Qu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new at(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Tr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Tr}/`))}n.reportInfo(0,`Downloading ${ee.pretty(t,l,"green")}`),a=await Xt.get(l,{configuration:t})}await iM(o,a,{project:s,report:n})})).exitCode()}};vu.paths=[["plugin","import"]],vu.usage=ve.Usage({category:"Plugin-related commands",description:"download a plugin",details:` This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. Three types of plugin references are accepted: @@ -543,11 +543,11 @@ ${l} - Local plugins can be referenced by their path on the disk. Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function tM(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Cae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=x.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${ee.pretty(n,l,"magenta")}`),await O.mkdirPromise(x.dirname(c),{recursive:!0}),await O.writeFilePromise(c,e);let u={path:l,spec:r};await ye.updateConfiguration(t.cwd,g=>{let f=[],h=!1;for(let p of g.plugins||[]){let C=typeof p!="string"?p.path:p,y=x.resolve(t.cwd,K.toPortablePath(C)),{name:B}=Ie.dynamicRequire(y);B!==a?f.push(p):(f.push(u),h=!0)}return h||f.push(u),{...g,plugins:f}})}var U3e=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],xu=class extends De{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?x.resolve(this.context.cwd,K.toPortablePath(this.installPath)):x.resolve(K.toPortablePath((0,mae.tmpdir)()),"yarnpkg-sources",li.makeHash(this.repository).slice(0,6));return(await Ge.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await je.find(t,this.context.cwd),a=P.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=P.stringifyIdent(a),c=await Qu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new at(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await $L(this,{configuration:t,report:s,target:i}),await eM(u,this,{project:o,report:s,target:i})})).exitCode()}};xu.paths=[["plugin","import","from","sources"]],xu.usage=ve.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function iM(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Eae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=x.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${ee.pretty(n,l,"magenta")}`),await O.mkdirPromise(x.dirname(c),{recursive:!0}),await O.writeFilePromise(c,e);let u={path:l,spec:r};await ye.updateConfiguration(t.cwd,g=>{let f=[],h=!1;for(let p of g.plugins||[]){let C=typeof p!="string"?p.path:p,y=x.resolve(t.cwd,K.toPortablePath(C)),{name:B}=Ie.dynamicRequire(y);B!==a?f.push(p):(f.push(u),h=!0)}return h||f.push(u),{...g,plugins:f}})}var G3e=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],xu=class extends De{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?x.resolve(this.context.cwd,K.toPortablePath(this.installPath)):x.resolve(K.toPortablePath((0,Iae.tmpdir)()),"yarnpkg-sources",li.makeHash(this.repository).slice(0,6));return(await Ge.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await je.find(t,this.context.cwd),a=P.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=P.stringifyIdent(a),c=await Qu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new at(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await tM(this,{configuration:t,report:s,target:i}),await rM(u,this,{project:o,report:s,target:i})})).exitCode()}};xu.paths=[["plugin","import","from","sources"]],xu.usage=ve.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function eM(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await Wm(U3e({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=x.resolve(s,`packages/${o}/bundles/${r}.js`),c=await O.readFilePromise(l);await tM(r,c,{project:i,report:n})}var Pu=class extends De{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return(await Ge.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=P.parseIdent(o);if(!t.plugins.has(o))throw new Qe(`${P.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=x.resolve(i.cwd,l);O.existsSync(c)&&(s.reportInfo(0,`Removing ${ee.pretty(t,l,ee.Type.PATH)}...`),await O.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await ye.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(f=>f.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Pu.paths=[["plugin","remove"]],Pu.usage=ve.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function rM(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await Wm(G3e({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=x.resolve(s,`packages/${o}/bundles/${r}.js`),c=await O.readFilePromise(l);await iM(r,c,{project:i,report:n})}var Pu=class extends De{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return(await Ge.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=P.parseIdent(o);if(!t.plugins.has(o))throw new Qe(`${P.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=x.resolve(i.cwd,l);O.existsSync(c)&&(s.reportInfo(0,`Removing ${ee.pretty(t,l,ee.Type.PATH)}...`),await O.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await ye.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(f=>f.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Pu.paths=[["plugin","remove"]],Pu.usage=ve.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. @@ -559,7 +559,7 @@ ${l} Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var rM=Pe(Bn());ls();var Ru=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let p of this.patterns){let C=!1,y=P.parseIdent(p);for(let B of o){let v=[...B.manifest.peerDependenciesMeta.keys()];for(let D of(0,rM.default)(v,p))B.manifest.peerDependenciesMeta.delete(D),c=!0,C=!0;for(let D of a){let T=B.manifest.getForScope(D),H=[...T.values()].map(j=>P.stringifyIdent(j));for(let j of(0,rM.default)(H,P.stringifyIdent(y))){let{identHash:$}=P.parseIdent(j),V=T.get($);if(typeof V>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[D].delete($),u.push([B,D,V]),c=!0,C=!0}}}C||l.push(p)}let g=l.length>1?"Patterns":"Pattern",f=l.length>1?"don't":"doesn't",h=this.all?"any":"this";if(l.length>0)throw new Qe(`${g} ${ee.prettyList(t,l,xi.CODE)} ${f} match any packages referenced by ${h} workspace`);return c?(await t.triggerMultipleHooks(C=>C.afterWorkspaceDependencyRemoval,u),(await Ge.start({configuration:t,stdout:this.context.stdout},async C=>{await i.install({cache:s,report:C,mode:this.mode})})).exitCode()):0}};Ru.paths=[["remove"]],Ru.usage=ve.Usage({description:"remove dependencies from the project",details:` + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var nM=Pe(Bn());ls();var Ru=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let p of this.patterns){let C=!1,y=P.parseIdent(p);for(let B of o){let v=[...B.manifest.peerDependenciesMeta.keys()];for(let D of(0,nM.default)(v,p))B.manifest.peerDependenciesMeta.delete(D),c=!0,C=!0;for(let D of a){let T=B.manifest.getForScope(D),H=[...T.values()].map(j=>P.stringifyIdent(j));for(let j of(0,nM.default)(H,P.stringifyIdent(y))){let{identHash:$}=P.parseIdent(j),V=T.get($);if(typeof V>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[D].delete($),u.push([B,D,V]),c=!0,C=!0}}}C||l.push(p)}let g=l.length>1?"Patterns":"Pattern",f=l.length>1?"don't":"doesn't",h=this.all?"any":"this";if(l.length>0)throw new Qe(`${g} ${ee.prettyList(t,l,xi.CODE)} ${f} match any packages referenced by ${h} workspace`);return c?(await t.triggerMultipleHooks(C=>C.afterWorkspaceDependencyRemoval,u),(await Ge.start({configuration:t,stdout:this.context.stdout},async C=>{await i.install({cache:s,report:C,mode:this.mode})})).exitCode()):0}};Ru.paths=[["remove"]],Ru.usage=ve.Usage({description:"remove dependencies from the project",details:` This command will remove the packages matching the specified patterns from the current workspace. If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: @@ -569,7 +569,7 @@ ${l} - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var Eae=J("util"),_h=class extends De{async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await je.find(e,this.context.cwd);if(!i)throw new ct(t.cwd,this.context.cwd);return(await Ge.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=Ie.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,Eae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Fu=class extends De{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await je.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Wt.hasPackageScript(o,this.scriptName,{project:i}))return await Wt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Wt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),await Wt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Wt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new Qe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new Qe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new Qe("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let f of g)if(c.length>=f.length&&JSON.stringify(c.slice(0,f.length))===JSON.stringify(f))throw new Qe(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new Qe(`Couldn't find a script named "${this.scriptName}".`)}}};Fu.paths=[["run"]],Fu.usage=ve.Usage({description:"run a script defined in the package.json",details:` + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var yae=J("util"),_h=class extends De{async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await je.find(e,this.context.cwd);if(!i)throw new ct(t.cwd,this.context.cwd);return(await Ge.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=Ie.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,yae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Fu=class extends De{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await je.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Wt.hasPackageScript(o,this.scriptName,{project:i}))return await Wt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Wt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),await Wt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Wt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new Qe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new Qe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new Qe("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let f of g)if(c.length>=f.length&&JSON.stringify(c.slice(0,f.length))===JSON.stringify(f))throw new Qe(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new Qe(`Couldn't find a script named "${this.scriptName}".`)}}};Fu.paths=[["run"]],Fu.usage=ve.Usage({description:"run a script defined in the package.json",details:` This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. @@ -579,62 +579,62 @@ ${l} - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Nu=class extends De{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new ct(i.cwd,this.context.cwd);let o=P.parseDescriptor(this.descriptor,!0),a=P.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await Ge.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Nu.paths=[["set","resolution"]],Nu.usage=ve.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Iae=Pe(Bn()),Tu=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=x.resolve(this.context.cwd,K.toPortablePath(c));if(Ie.isPathLike(c)){let g=await ye.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:f,workspace:h}=await je.find(g,u);if(!h)throw new ct(f.cwd,u);if(this.all){for(let p of f.workspaces)p.manifest.name&&a.add(P.stringifyIdent(p.locator));if(a.size===0)throw new Qe("No workspace found to be unlinked in the target project")}else{if(!h.manifest.name)throw new Qe("The target workspace doesn't have a name and thus cannot be unlinked");a.add(P.stringifyIdent(h.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:f})=>f.descriptor.fullName)];for(let f of(0,Iae.default)(g,c))a.add(f)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await Ge.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Tu.paths=[["unlink"]],Tu.usage=ve.Usage({description:"disconnect the local project from another one",details:` + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Nu=class extends De{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new ct(i.cwd,this.context.cwd);let o=P.parseDescriptor(this.descriptor,!0),a=P.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await Ge.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Nu.paths=[["set","resolution"]],Nu.usage=ve.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var wae=Pe(Bn()),Tu=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=x.resolve(this.context.cwd,K.toPortablePath(c));if(Ie.isPathLike(c)){let g=await ye.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:f,workspace:h}=await je.find(g,u);if(!h)throw new ct(f.cwd,u);if(this.all){for(let p of f.workspaces)p.manifest.name&&a.add(P.stringifyIdent(p.locator));if(a.size===0)throw new Qe("No workspace found to be unlinked in the target project")}else{if(!h.manifest.name)throw new Qe("The target workspace doesn't have a name and thus cannot be unlinked");a.add(P.stringifyIdent(h.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:f})=>f.descriptor.fullName)];for(let f of(0,wae.default)(g,c))a.add(f)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await Ge.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Tu.paths=[["unlink"]],Tu.usage=ve.Usage({description:"disconnect the local project from another one",details:` This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var yae=Pe(Km()),iM=Pe(Bn());ls();var El=class extends De{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>P.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(P.parseDescriptor(g).range!=="unknown")throw new Qe("Ranges aren't allowed when using --recursive");for(let f of(0,iM.default)(a,g)){let h=P.parseIdent(f);l.add(h.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await Ge.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=Hm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let v=!1,D=P.parseDescriptor(B);for(let T of i.workspaces)for(let H of["dependencies","devDependencies"]){let $=[...T.manifest.getForScope(H).values()].map(V=>P.stringifyIdent(V));for(let V of(0,iM.default)($,P.stringifyIdent(D))){let W=P.parseIdent(V),_=T.manifest[H].get(W.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=P.makeDescriptor(W,D.range);c.push(Promise.resolve().then(async()=>[T,H,_,await Gm(A,{project:i,workspace:T,cache:s,target:H,modifier:a,strategies:l})])),v=!0}}v||u.push(B)}if(u.length>1)throw new Qe(`Patterns ${ee.prettyList(t,u,xi.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new Qe(`Pattern ${ee.prettyList(t,u,xi.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),f=await ra.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,v,{suggestions:D,rejections:T}]of g){let H=D.filter(j=>j.descriptor!==null);if(H.length===0){let[j]=T;if(typeof j>"u")throw new Error("Assertion failed: Expected an error to have been set");let $=this.cli.error(j);i.configuration.get("enableNetwork")?B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var Bae=Pe(Km()),sM=Pe(Bn());ls();var El=class extends De{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>P.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(P.parseDescriptor(g).range!=="unknown")throw new Qe("Ranges aren't allowed when using --recursive");for(let f of(0,sM.default)(a,g)){let h=P.parseIdent(f);l.add(h.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await Ge.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=Hm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let v=!1,D=P.parseDescriptor(B);for(let T of i.workspaces)for(let H of["dependencies","devDependencies"]){let $=[...T.manifest.getForScope(H).values()].map(V=>P.stringifyIdent(V));for(let V of(0,sM.default)($,P.stringifyIdent(D))){let W=P.parseIdent(V),_=T.manifest[H].get(W.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=P.makeDescriptor(W,D.range);c.push(Promise.resolve().then(async()=>[T,H,_,await Gm(A,{project:i,workspace:T,cache:s,target:H,modifier:a,strategies:l})])),v=!0}}v||u.push(B)}if(u.length>1)throw new Qe(`Patterns ${ee.prettyList(t,u,xi.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new Qe(`Pattern ${ee.prettyList(t,u,xi.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),f=await ra.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,v,{suggestions:D,rejections:T}]of g){let H=D.filter(j=>j.descriptor!==null);if(H.length===0){let[j]=T;if(typeof j>"u")throw new Error("Assertion failed: Expected an error to have been set");let $=this.cli.error(j);i.configuration.get("enableNetwork")?B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range ${$}`):B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range (note: network resolution has been disabled) -${$}`)}else H.length>1&&!o&&B.reportError(27,`${P.prettyDescriptor(t,v)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(f.hasErrors())return f.exitCode();let h=!1,p=[];for(let[B,v,,{suggestions:D}]of g){let T,H=D.filter(W=>W.descriptor!==null),j=H[0].descriptor,$=H.every(W=>P.areDescriptorsEqual(W.descriptor,j));H.length===1||$?T=j:(h=!0,{answer:T}=await(0,yae.prompt)({type:"select",name:"answer",message:`Which range to you want to use in ${P.prettyWorkspace(t,B)} \u276F ${v}?`,choices:D.map(({descriptor:W,name:_,reason:A})=>W?{name:_,hint:A,descriptor:W}:{name:_,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let V=B.manifest[v].get(T.identHash);if(typeof V>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(V.descriptorHash!==T.descriptorHash)B.manifest[v].set(T.identHash,T),p.push([B,v,V,T]);else{let W=t.makeResolver(),_={project:i,resolver:W},A=W.bindDescriptor(V,B.anchoredLocator,_);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,p),h&&this.context.stdout.write(` -`),(await Ge.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};El.paths=[["up"]],El.usage=ve.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),El.schema=[av("recursive",lc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Lu=class extends De{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let s=P.parseIdent(this.package).identHash,o=this.recursive?G3e(i,s,{configuration:t,peers:this.peers}):H3e(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Lu.paths=[["why"]],Lu.usage=ve.Usage({description:"display the reason why a package is needed",details:` +${$}`)}else H.length>1&&!o&&B.reportError(27,`${P.prettyDescriptor(t,v)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(f.hasErrors())return f.exitCode();let h=!1,p=[];for(let[B,v,,{suggestions:D}]of g){let T,H=D.filter(W=>W.descriptor!==null),j=H[0].descriptor,$=H.every(W=>P.areDescriptorsEqual(W.descriptor,j));H.length===1||$?T=j:(h=!0,{answer:T}=await(0,Bae.prompt)({type:"select",name:"answer",message:`Which range to you want to use in ${P.prettyWorkspace(t,B)} \u276F ${v}?`,choices:D.map(({descriptor:W,name:_,reason:A})=>W?{name:_,hint:A,descriptor:W}:{name:_,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let V=B.manifest[v].get(T.identHash);if(typeof V>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(V.descriptorHash!==T.descriptorHash)B.manifest[v].set(T.identHash,T),p.push([B,v,V,T]);else{let W=t.makeResolver(),_={project:i,resolver:W},A=W.bindDescriptor(V,B.anchoredLocator,_);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,p),h&&this.context.stdout.write(` +`),(await Ge.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};El.paths=[["up"]],El.usage=ve.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),El.schema=[av("recursive",lc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Lu=class extends De{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let s=P.parseIdent(this.package).identHash,o=this.recursive?j3e(i,s,{configuration:t,peers:this.peers}):Y3e(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Lu.paths=[["why"]],Lu.usage=ve.Usage({description:"display the reason why a package is needed",details:` This command prints the exact reasons why a package appears in the dependency tree. If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function H3e(r,e,{configuration:t,peers:i}){let n=Ie.sortMap(r.storedPackages.values(),a=>P.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let f=r.storedPackages.get(g);if(!f)throw new Error("Assertion failed: The package should have been registered");if(f.identHash!==e)continue;{let p=P.stringifyLocator(a);s[p]={value:[a,ee.Type.LOCATOR],children:l}}let h=P.stringifyLocator(f);l[h]={value:[{descriptor:u,locator:f},ee.Type.DEPENDENT]}}}return o}function G3e(r,e,{configuration:t,peers:i}){let n=Ie.sortMap(r.workspaces,f=>P.stringifyLocator(f.anchoredLocator)),s=new Set,o=new Set,a=f=>{if(s.has(f.locatorHash))return o.has(f.locatorHash);if(s.add(f.locatorHash),f.identHash===e)return o.add(f.locatorHash),!0;let h=!1;f.identHash===e&&(h=!0);for(let p of f.dependencies.values()){if(!i&&f.peerDependencies.has(p.identHash))continue;let C=r.storedResolutions.get(p.descriptorHash);if(!C)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(C);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(h=!0)}return h&&o.add(f.locatorHash),h};for(let f of n){let h=r.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");a(h)}let l=new Set,c={},u={children:c},g=(f,h,p)=>{if(!o.has(f.locatorHash))return;let C=p!==null?ee.tuple(ee.Type.DEPENDENT,{locator:f,descriptor:p}):ee.tuple(ee.Type.LOCATOR,f),y={},B={value:C,children:y},v=P.stringifyLocator(f);if(h[v]=B,!l.has(f.locatorHash)&&(l.add(f.locatorHash),!(p!==null&&r.tryWorkspaceByLocator(f))))for(let D of f.dependencies.values()){if(!i&&f.peerDependencies.has(D.identHash))continue;let T=r.storedResolutions.get(D.descriptorHash);if(!T)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(T);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,D)}};for(let f of n){let h=r.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");g(h,c,null)}return u}var hM={};ut(hM,{default:()=>A4e,gitUtils:()=>lA});var lA={};ut(lA,{TreeishProtocols:()=>Lb,clone:()=>fM,fetchBase:()=>Yae,fetchChangedFiles:()=>jae,fetchChangedWorkspaces:()=>o4e,fetchRoot:()=>Gae,isGitUrl:()=>ep,lsRemote:()=>Hae,normalizeLocator:()=>uM,normalizeRepoUrl:()=>Vm,resolveUrl:()=>gM,splitRepoUrl:()=>zm});var cM=Pe(Tae()),Kae=Pe(PB()),$h=Pe(J("querystring")),AM=Pe(Xr());var Mae=J("url");function aM(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function Lae(r){try{return new Mae.URL(r)}catch{return}}function n4e(r){let e=aM(r,"@","#"),t=aM(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),aM(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Oae(r){return Lae(r)||Lae(n4e(r))}function Uae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var s4e=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],Lb=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(Lb||{});function ep(r){return r?s4e.some(e=>!!r.match(e)):!1}function zm(r){r=Vm(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(Lb).find(l=>Object.prototype.hasOwnProperty.call(n,l)),o,a;typeof s<"u"?(o=s,a=n[s]):(o="head",a="HEAD");for(let l of Object.values(Lb))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),s,o;return n===-1?(s=null,o=i):(s=i.slice(0,n),o=i.slice(n+1)),{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function Vm(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Oae(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}function uM(r){return P.makeLocator(r,Vm(r.reference))}async function Hae(r,e){let t=Vm(r,{git:!0});if(!Xt.getNetworkSettings(`https://${(0,cM.default)(t).resource}`,{configuration:e}).enableNetwork)throw new Error(`Request to '${t}' has been blocked because of your configuration settings`);let n=await lM("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Uae()},{configuration:e,normalizedRepoUrl:t}),s=new Map,o=/^([a-f0-9]{40})\t([^\n]+)/gm,a;for(;(a=o.exec(n.stdout))!==null;)s.set(a[2],a[1]);return s}async function gM(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=zm(r),o=await Hae(t,e),a=(c,u)=>{switch(c){case"commit":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return $h.default.stringify({...s,commit:u})}case"head":{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g>"u")throw new Error(`Unknown head ("${u}")`);return $h.default.stringify({...s,commit:g})}case"tag":{let g=o.get(`refs/tags/${u}`);if(typeof g>"u")throw new Error(`Unknown tag ("${u}")`);return $h.default.stringify({...s,commit:g})}case"semver":{let g=vt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let f=new Map([...o.entries()].filter(([p])=>p.startsWith("refs/tags/")).map(([p,C])=>[AM.default.parse(p.slice(10)),C]).filter(p=>p[0]!==null)),h=AM.default.maxSatisfying([...f.keys()],g);if(h===null)throw new Error(`No matching range ("${u}")`);return $h.default.stringify({...s,commit:f.get(h)})}case null:{let g;if((g=l("commit",u))!==null||(g=l("tag",u))!==null||(g=l("head",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function fM(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=zm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=Vm(t,{git:!0});if(Xt.getNetworkSettings(`https://${(0,cM.default)(s).resource}`,{configuration:e}).enableNetwork===!1)throw new Error(`Request to '${s}' has been blocked because of your configuration settings`);let o=await O.mktempPromise(),a={cwd:o,env:Uae()};return await lM("cloning the repository",["clone","-c core.autocrlf=false",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await lM("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function Gae(r){let e=null,t,i=r;do t=i,await O.existsPromise(x.join(t,".git"))&&(e=t),i=x.dirname(t);while(e===null&&i!==t);return e}async function Yae(r,{baseRefs:e}){if(e.length===0)throw new Qe("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await Cr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new Qe(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await Cr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await Cr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function jae(r,{base:e,project:t}){let i=Ie.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await Cr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>x.resolve(r,K.toPortablePath(c))),{stdout:o}=await Cr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>x.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!x.relative(t.cwd,c).match(i)):l}async function o4e({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new Qe("This command can only be run from within a Yarn project");let t=[x.resolve(e.cwd,e.configuration.get("cacheFolder")),x.resolve(e.cwd,e.configuration.get("installStatePath")),x.resolve(e.cwd,e.configuration.get("lockfileFilename")),x.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await Gae(e.configuration.projectCwd);if(i==null)throw new Qe("This command can only be run on Git repositories");let n=await Yae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await jae(i,{base:n.hash,project:e});return new Set(Ie.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?Ie.mapAndFilter.skip:t.some(l=>o.startsWith(l))?Ie.mapAndFilter.skip:a}))}async function lM(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await Cr.execvp("git",e,{...t,strict:!0})}catch(s){if(!(s instanceof Cr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new at(1,`Failed ${r}`,l=>{l.reportError(1,` ${ee.prettyField(i,{label:"Repository URL",value:ee.tuple(ee.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let f=u==="error"?"Error":`${(0,Kae.default)(u)} Error`;l.reportError(1,` ${ee.prettyField(i,{label:f,value:ee.tuple(ee.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var Mb=class{supports(e,t){return ep(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=uM(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:P.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await fM(e.reference,t.project.configuration),n=zm(e.reference),s=x.join(i,"package.tgz");await Wt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await O.readFilePromise(s);return await Ie.releaseAfterUseAsync(async()=>await mi.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}))}};var Ob=class{supportsDescriptor(e,t){return ep(e.range)}supportsLocator(e,t){return ep(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await gM(e.range,i.project.configuration);return[P.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ie.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var a4e={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[Mb],resolvers:[Ob]};var A4e=a4e;var Mu=class extends De{constructor(){super(...arguments);this.since=z.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=z.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=z.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await lA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,f=new Set;for(let h of ot.hardDependencies)for(let[p,C]of c.getForScope(h)){let y=i.tryWorkspaceByDescriptor(C);y===null?i.workspacesByIdent.has(p)&&f.add(C):g.add(y)}u={workspaceDependencies:Array.from(g).map(h=>h.relativeCwd),mismatchedWorkspaceDependencies:Array.from(f).map(h=>P.stringifyDescriptor(h))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?P.stringifyIdent(c.name):null,...u})}})).exitCode()}};Mu.paths=[["workspaces","list"]],Mu.usage=ve.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var Ou=class extends De{constructor(){super(...arguments);this.workspaceName=z.String();this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[P.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new Qe(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function Y3e(r,e,{configuration:t,peers:i}){let n=Ie.sortMap(r.storedPackages.values(),a=>P.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let f=r.storedPackages.get(g);if(!f)throw new Error("Assertion failed: The package should have been registered");if(f.identHash!==e)continue;{let p=P.stringifyLocator(a);s[p]={value:[a,ee.Type.LOCATOR],children:l}}let h=P.stringifyLocator(f);l[h]={value:[{descriptor:u,locator:f},ee.Type.DEPENDENT]}}}return o}function j3e(r,e,{configuration:t,peers:i}){let n=Ie.sortMap(r.workspaces,f=>P.stringifyLocator(f.anchoredLocator)),s=new Set,o=new Set,a=f=>{if(s.has(f.locatorHash))return o.has(f.locatorHash);if(s.add(f.locatorHash),f.identHash===e)return o.add(f.locatorHash),!0;let h=!1;f.identHash===e&&(h=!0);for(let p of f.dependencies.values()){if(!i&&f.peerDependencies.has(p.identHash))continue;let C=r.storedResolutions.get(p.descriptorHash);if(!C)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(C);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(h=!0)}return h&&o.add(f.locatorHash),h};for(let f of n){let h=r.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");a(h)}let l=new Set,c={},u={children:c},g=(f,h,p)=>{if(!o.has(f.locatorHash))return;let C=p!==null?ee.tuple(ee.Type.DEPENDENT,{locator:f,descriptor:p}):ee.tuple(ee.Type.LOCATOR,f),y={},B={value:C,children:y},v=P.stringifyLocator(f);if(h[v]=B,!l.has(f.locatorHash)&&(l.add(f.locatorHash),!(p!==null&&r.tryWorkspaceByLocator(f))))for(let D of f.dependencies.values()){if(!i&&f.peerDependencies.has(D.identHash))continue;let T=r.storedResolutions.get(D.descriptorHash);if(!T)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(T);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,D)}};for(let f of n){let h=r.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");g(h,c,null)}return u}var dM={};ut(dM,{default:()=>c4e,gitUtils:()=>AA});var AA={};ut(AA,{TreeishProtocols:()=>Lb,clone:()=>pM,fetchBase:()=>qae,fetchChangedFiles:()=>Jae,fetchChangedWorkspaces:()=>A4e,fetchRoot:()=>jae,isGitUrl:()=>ep,lsRemote:()=>Yae,normalizeLocator:()=>fM,normalizeRepoUrl:()=>Vm,resolveUrl:()=>hM,splitRepoUrl:()=>zm});var gM=Pe(Mae()),Hae=Pe(PB()),$h=Pe(J("querystring")),cM=Pe(Xr());var Kae=J("url");function lM(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function Oae(r){try{return new Kae.URL(r)}catch{return}}function o4e(r){let e=lM(r,"@","#"),t=lM(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lM(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Uae(r){return Oae(r)||Oae(o4e(r))}function Gae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var a4e=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],Lb=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(Lb||{});function ep(r){return r?a4e.some(e=>!!r.match(e)):!1}function zm(r){r=Vm(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(Lb).find(l=>Object.prototype.hasOwnProperty.call(n,l)),o,a;typeof s<"u"?(o=s,a=n[s]):(o="head",a="HEAD");for(let l of Object.values(Lb))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),s,o;return n===-1?(s=null,o=i):(s=i.slice(0,n),o=i.slice(n+1)),{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function Vm(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Uae(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}function fM(r){return P.makeLocator(r,Vm(r.reference))}async function Yae(r,e){let t=Vm(r,{git:!0});if(!Xt.getNetworkSettings(`https://${(0,gM.default)(t).resource}`,{configuration:e}).enableNetwork)throw new Error(`Request to '${t}' has been blocked because of your configuration settings`);let n=await uM("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Gae()},{configuration:e,normalizedRepoUrl:t}),s=new Map,o=/^([a-f0-9]{40})\t([^\n]+)/gm,a;for(;(a=o.exec(n.stdout))!==null;)s.set(a[2],a[1]);return s}async function hM(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=zm(r),o=await Yae(t,e),a=(c,u)=>{switch(c){case"commit":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return $h.default.stringify({...s,commit:u})}case"head":{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g>"u")throw new Error(`Unknown head ("${u}")`);return $h.default.stringify({...s,commit:g})}case"tag":{let g=o.get(`refs/tags/${u}`);if(typeof g>"u")throw new Error(`Unknown tag ("${u}")`);return $h.default.stringify({...s,commit:g})}case"semver":{let g=vt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let f=new Map([...o.entries()].filter(([p])=>p.startsWith("refs/tags/")).map(([p,C])=>[cM.default.parse(p.slice(10)),C]).filter(p=>p[0]!==null)),h=cM.default.maxSatisfying([...f.keys()],g);if(h===null)throw new Error(`No matching range ("${u}")`);return $h.default.stringify({...s,commit:f.get(h)})}case null:{let g;if((g=l("commit",u))!==null||(g=l("tag",u))!==null||(g=l("head",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function pM(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=zm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=Vm(t,{git:!0});if(Xt.getNetworkSettings(`https://${(0,gM.default)(s).resource}`,{configuration:e}).enableNetwork===!1)throw new Error(`Request to '${s}' has been blocked because of your configuration settings`);let o=await O.mktempPromise(),a={cwd:o,env:Gae()};return await uM("cloning the repository",["clone","-c core.autocrlf=false",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await uM("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function jae(r){let e=null,t,i=r;do t=i,await O.existsPromise(x.join(t,".git"))&&(e=t),i=x.dirname(t);while(e===null&&i!==t);return e}async function qae(r,{baseRefs:e}){if(e.length===0)throw new Qe("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await Cr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new Qe(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await Cr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await Cr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function Jae(r,{base:e,project:t}){let i=Ie.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await Cr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>x.resolve(r,K.toPortablePath(c))),{stdout:o}=await Cr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>x.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!x.relative(t.cwd,c).match(i)):l}async function A4e({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new Qe("This command can only be run from within a Yarn project");let t=[x.resolve(e.cwd,e.configuration.get("cacheFolder")),x.resolve(e.cwd,e.configuration.get("installStatePath")),x.resolve(e.cwd,e.configuration.get("lockfileFilename")),x.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await jae(e.configuration.projectCwd);if(i==null)throw new Qe("This command can only be run on Git repositories");let n=await qae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await Jae(i,{base:n.hash,project:e});return new Set(Ie.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?Ie.mapAndFilter.skip:t.some(l=>o.startsWith(l))?Ie.mapAndFilter.skip:a}))}async function uM(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await Cr.execvp("git",e,{...t,strict:!0})}catch(s){if(!(s instanceof Cr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new at(1,`Failed ${r}`,l=>{l.reportError(1,` ${ee.prettyField(i,{label:"Repository URL",value:ee.tuple(ee.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let f=u==="error"?"Error":`${(0,Hae.default)(u)} Error`;l.reportError(1,` ${ee.prettyField(i,{label:f,value:ee.tuple(ee.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var Mb=class{supports(e,t){return ep(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=fM(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:P.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await pM(e.reference,t.project.configuration),n=zm(e.reference),s=x.join(i,"package.tgz");await Wt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await O.readFilePromise(s);return await Ie.releaseAfterUseAsync(async()=>await mi.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}))}};var Ob=class{supportsDescriptor(e,t){return ep(e.range)}supportsLocator(e,t){return ep(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await hM(e.range,i.project.configuration);return[P.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ie.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var l4e={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[Mb],resolvers:[Ob]};var c4e=l4e;var Mu=class extends De{constructor(){super(...arguments);this.since=z.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=z.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=z.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await AA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,f=new Set;for(let h of ot.hardDependencies)for(let[p,C]of c.getForScope(h)){let y=i.tryWorkspaceByDescriptor(C);y===null?i.workspacesByIdent.has(p)&&f.add(C):g.add(y)}u={workspaceDependencies:Array.from(g).map(h=>h.relativeCwd),mismatchedWorkspaceDependencies:Array.from(f).map(h=>P.stringifyDescriptor(h))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?P.stringifyIdent(c.name):null,...u})}})).exitCode()}};Mu.paths=[["workspaces","list"]],Mu.usage=ve.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var Ou=class extends De{constructor(){super(...arguments);this.workspaceName=z.String();this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[P.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new Qe(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - ${l.join(` - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};Ou.paths=[["workspace"]],Ou.usage=ve.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var l4e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:qae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"}},commands:[cu,uu,gu,fu,Nu,Su,mu,Mu,Vh,Xh,qm,Zh,Au,lu,hu,pu,du,Cu,Eu,Iu,yu,wu,Tu,Bu,xu,vu,Pu,bu,Du,ku,Ru,_h,Fu,El,Lu,Ou]},c4e=l4e;var IM={};ut(IM,{default:()=>g4e});var Te={optional:!0},dM=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Te,zenObservable:Te}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Te,zenObservable:Te}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Te}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Te,["postcss-jsx"]:Te,["postcss-less"]:Te,["postcss-markdown"]:Te,["postcss-scss"]:Te}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Te}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Te}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Te,"vue-template-compiler":Te}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Te,"utf-8-validate":Te}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Te,"vuetify-loader":Te}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Te}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Te}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Te}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Te}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Te,tinyliquid:Te,"liquid-node":Te,jade:Te,"then-jade":Te,dust:Te,"dustjs-helpers":Te,"dustjs-linkedin":Te,swig:Te,"swig-templates":Te,"razor-tmpl":Te,atpl:Te,liquor:Te,twig:Te,ejs:Te,eco:Te,jazz:Te,jqtpl:Te,hamljs:Te,hamlet:Te,whiskers:Te,"haml-coffee":Te,"hogan.js":Te,templayed:Te,handlebars:Te,underscore:Te,lodash:Te,pug:Te,"then-pug":Te,qejs:Te,walrus:Te,mustache:Te,just:Te,ect:Te,mote:Te,toffee:Te,dot:Te,"bracket-template":Te,ractive:Te,nunjucks:Te,htmling:Te,"babel-core":Te,plates:Te,"react-dom":Te,react:Te,"arc-templates":Te,vash:Te,slm:Te,marko:Te,teacup:Te,"coffee-script":Te,squirrelly:Te,twing:Te}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Te}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Te,vue:Te}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Te}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Te}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Te,"webpack-command":Te}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Te}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Te}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Te,jimp:Te}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Te,"eslint-import-resolver-typescript":Te,"eslint-import-resolver-webpack":Te,"@typescript-eslint/parser":Te}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Te}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Te}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.0"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Te}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Te}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Te}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@*",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Te}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Te}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Te}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Te}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}]];var CM;function Jae(){return typeof CM>"u"&&(CM=J("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),CM}var mM;function Wae(){return typeof mM>"u"&&(mM=J("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),mM}var EM;function zae(){return typeof EM>"u"&&(EM=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),EM}var Vae=new Map([[P.makeIdent(null,"fsevents").identHash,Jae],[P.makeIdent(null,"resolve").identHash,Wae],[P.makeIdent(null,"typescript").identHash,zae]]),u4e={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of dM)e(P.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=P.parseIdent(e.slice(t.length)),n=(s=Vae.get(i.identHash))==null?void 0:s();return typeof n<"u"?n:null},reduceDependency:async(r,e,t,i)=>typeof Vae.get(r.identHash)>"u"?r:P.makeDescriptor(r,P.makeRange({protocol:"patch:",source:P.stringifyDescriptor(r),selector:`~builtin`,params:null}))}},g4e=u4e;var yM={};ut(yM,{default:()=>h4e});var tp=class extends De{constructor(){super(...arguments);this.pkg=z.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let i=P.parseDescriptor(this.command),n;i.scope?n=P.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith("@")?n=P.makeIdent(i.name.substring(1),"create"):n=P.makeIdent(null,`create-${i.name}`);let s=P.stringifyIdent(n);return i.range!=="unknown"&&(s+=`@${i.range}`),this.cli.run(["dlx",...t,s,...this.args])}};tp.paths=[["create"]];var Ku=class extends De{constructor(){super(...arguments);this.packages=z.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){return ye.telemetry=null,await O.mktempPromise(async t=>{var C;let i=x.join(t,`dlx-${process.pid}`);await O.mkdirPromise(i),await O.writeFilePromise(x.join(i,"package.json"),`{} + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var u4e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:Wae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"}},commands:[cu,uu,gu,fu,Nu,Su,mu,Mu,Vh,Xh,qm,Zh,Au,lu,hu,pu,du,Cu,Eu,Iu,yu,wu,Tu,Bu,xu,vu,Pu,bu,Du,ku,Ru,_h,Fu,El,Lu,Ou]},g4e=u4e;var wM={};ut(wM,{default:()=>h4e});var Te={optional:!0},mM=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Te,zenObservable:Te}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Te,zenObservable:Te}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Te}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Te,["postcss-jsx"]:Te,["postcss-less"]:Te,["postcss-markdown"]:Te,["postcss-scss"]:Te}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Te}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Te}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Te,"vue-template-compiler":Te}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Te,"utf-8-validate":Te}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Te,"vuetify-loader":Te}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Te}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Te}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Te}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Te}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Te,tinyliquid:Te,"liquid-node":Te,jade:Te,"then-jade":Te,dust:Te,"dustjs-helpers":Te,"dustjs-linkedin":Te,swig:Te,"swig-templates":Te,"razor-tmpl":Te,atpl:Te,liquor:Te,twig:Te,ejs:Te,eco:Te,jazz:Te,jqtpl:Te,hamljs:Te,hamlet:Te,whiskers:Te,"haml-coffee":Te,"hogan.js":Te,templayed:Te,handlebars:Te,underscore:Te,lodash:Te,pug:Te,"then-pug":Te,qejs:Te,walrus:Te,mustache:Te,just:Te,ect:Te,mote:Te,toffee:Te,dot:Te,"bracket-template":Te,ractive:Te,nunjucks:Te,htmling:Te,"babel-core":Te,plates:Te,"react-dom":Te,react:Te,"arc-templates":Te,vash:Te,slm:Te,marko:Te,teacup:Te,"coffee-script":Te,squirrelly:Te,twing:Te}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Te}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Te,vue:Te}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Te}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Te}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Te,"webpack-command":Te}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Te}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Te}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Te,jimp:Te}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Te,"eslint-import-resolver-typescript":Te,"eslint-import-resolver-webpack":Te,"@typescript-eslint/parser":Te}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Te}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Te}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.0"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Te}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Te}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Te}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@*",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Te}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Te}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Te}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Te}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}]];var EM;function zae(){return typeof EM>"u"&&(EM=J("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),EM}var IM;function Vae(){return typeof IM>"u"&&(IM=J("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),IM}var yM;function Xae(){return typeof yM>"u"&&(yM=J("zlib").brotliDecompressSync(Buffer.from("m+glNQVystFl82jDWaeKVz5vCuRkI0+nDAO0BbahUf/v9oR0hj3ZG6FzbNK/g4IZ1m5A1VsBlcOWdAb/iNTCECLDJMFbG1WIHzt9BQLURMmode+yEyPqQalKrdiNeCPQe+OrHICpt+3NMLloYUFMHOY+P8ra98t42fVt+9PKKa968e2duc+/O2icAXx5pUSFtipelqMWzl+qUt4COLn13gEp7MbOmEWxGeaES9GEyNMvj5eDL6t2r4MGegcyGkb4GyhXQFr88lXt3z9fL33XWUJJrovX6FblViFZAGVOKIizC9nDK3/+NPv3z9dD20SxhQTb2Cgs6c6V5lxzdkAgzCqmjSQfmWNR0WbTqgIdqUjLfiUryfNEYIra+QmtxvE3iZcTFobKTph1CUBI1JRu+z019r3GQ9CboB6exJZk2Z4i2u79S9hCNQ2tWnfGYL4yuE5RqzQp9sPCLyga0EUBuYlh49J8FEBxG3ttn56fW7ekx9IQfrFWZ7Neycz9X5haXiFIBDjvLbVJnMcVwF2bdOKeOIcbTZGSQ463Cehf9etzGt3ADAEQbwCC9Eij8VslB2lDrl///6pGdwMSIFIiqWBZwSmFy8mXa8g359u5uhuQqTSRm6kNMRwOF0+qmqvCL03EF1L+AnwjfTu8LOSwJWuGtSEhIL8+rf73TLWMmaS3CKS1KZ9plX5YtmyzZIJmCmmmgORC2CmiPKZPif+4rAlT6n+h7AS60DljTipKcoUiDKjDgesSzcxIlEPIWWEUzl+ZbCj5u2LyE9osDvwv08zKaasOAxn8PzLz+lyTchEuyCQfJC5KXAM08pG1hCzIID47kEsCGyQ+3A3iFLvAYK8ogJTpHkjc/3uqdqcHZ7zftyzFCl1faWeU0ggHNALs4AEkxO697pbsDLjY2Yi4lwmawV1AkBm/UL1D6lc7zSzaYybMULZW1RyKUTwyBH67y7CZ7nTfc1oIAUIIFKjiFilc1agwWeT8tCJ/4bG9rTDul/jVE3qptC+BdNxlTGvZ3tjiCVKWBDRyOND4z/OP6PTPTUzpmH/MlC5IJKJn2Z0Q35i9Z2oXKf3ggSXrz8R/xjRjr+nObZWxBIQvwoGvEL68y2Yg5RrXyr4LKc1oQbZl/xxjrf/aDt2z9/8mInKJJCOj0IYOUTPRBELmk5ehpdBayBIF7yl+tiBQ24waYPVRMf0q//0ndY11eZ8MMWjzNLA1dd8K5cfsiqv/RiDfdyv3+4Y/XtUrw8h/WAPNtPRmnr9ERdeD/4FN7vH6j/2B51X04beiLF14lhU/z135ZzwesR6jx4F6/FPv0j4hiI8HbJX1bYuv/PdTvZdrnFtBQbhDM6/nMnDLANj4ITjBICZeemxTiFL3U4ivPyJjXrEPbeX8EEsbNhjkEaDfprOELvyCHzeKm1wCqknX9rZmDAGagokOdfT4zFY+utz4Iezan/LhGoVKb8vuBreHEUJ75YA2LlupUsXN59X9t1Pck9hC8w+K6cMc91+bx94mDzMkWgL/K4L717/0Lx2iUBYPSyTsAAITh28d/SB4lpd/4ABZZOYZAQqFXrSn56Rpfujt0Uysh0UcWSezLPYIov9KB40clE1kctF3x3vfCnQcoBD9xGn8SY7GSNuUKoiq3/loi2hy8dquqbR3gbgmdPjJpCveB2tm27Q5KAgsRcafbRzdpGvAPfGsVafImOsj1eiN01uAS0uBw8W1Dpannfozhg/EpoPe4r/VhseYQkzTJhpkQMK/xlcTFRF4NHb29SmSDLgZwgZTzdyzDw7jn9zAN14PM0AiwcdfTZAVl0u7b3/VSCB59vzxsx9lzpExNdqdd/njQ3fTxtC79AlL1O9y0Z4XdFI0iTLAnp+YB5i7PkdxGDR+BD4nPjGAK85uWiIQUknE5qTX2n2M8XDH853rHFMWgVJEhmzeFIlJDCg6CYqRPfjMiwjMEXcK0BzveWqhk0rWcJMJQqg3wKS/b4CKZYvEg9q/jCdn/iilYgJmYkRdygOiEcTWldcIubkHyhep+NNifpX9XHqaM5jzAqYHsy/kwhSKyLDgk0oL/u2P3rxEsotg1ItIxIUrlIyinA8pIOcgYxMQykcpwkHUxDaifyin7PzMNgGloOepVeEECmj3eDJy+KP7Ju4g53GEnV8B1eS1eT1Cyz4jeeC9nLJW6p6IIIBCi31tGMr5OqHgZea5U0RA6PYuQJN56G+wJRrdRhJONPOQK+/+zNVnVkckyvIhKZ/fQrfHhzb/Z5ed9MqN2ui76+hMYkB8kmjO6K1kFkzP6W8rB1iEQii4vguN9RFSg+FxLaIvm+t4Eg9E9TyyIMNj57nLZWNPSlAbjanyJ2CKcQ3xxz6IxhukLsYdILXcZs5gi1jOP8+WexcxSwvLzdTc2LMoPq748E9hY52XKBf8oZDc8mXOd/lDpkJMLHkapBgDUYx13G3WrzeHQ8+JH7ns0xc8Tc2TNeGUYr1x5uTGzXElfwX7hQKlyMUiDIHC9V6wp1x7qs3tQY1zL9l1qJ4UTrz6klQPBHXCYQ+ayEFKnjJi8RxzLEW9rNHtsdJl9Wx31TWQ2Dl8OHO9cwwXPwlkQPKeLKY2Jjn8vPkuBApMBEGBJ/V2yS8OaSfmt7jrQk3yy6WWM/50I8XIUVi7hSCs0xqzsynm1/bQyCcsSFCRlYucySQA7h0PXnblsBmRtXF0UZyESMU+ERj+vm630NeFvOVPSAONE8XmOJ2hlK6jc+YwJFpZzuSYzjmBcY0vabu2T6GJwS0qj54TcyNu1z9wrUm2tvTRFy5mu3W4l+Pc0O3fwwKE2VLhQZ7XBu5i4zqLjtEDc6Q3HzVRWB23TJV2fJHbVaIzrAkgvMZecKXo9S7QgKv6RXBKUbEQod24CtGlwgHoI8odSTucIN/ZQw1TFLZLa1sqd66zcE3XOqWh+yBYZKFXyhyg8jqVL3Ee0hPnTpUBZR8my3sEgLyesqRIP63UBCL28B8KPkMABUL2axCg6KkyS4KqXOvS0ya5xxM8RfZfOpamCBkRBsZOGYKvBQqhz7xUoqcUIgtyRE0aMnnoLNvrZsD5AFBR4ZDOccmKXM9wzpnqphcKo31BJVGUlSfGDvI5E0uQ+I6HRBHkoaFEeo6OX+Jnf1Xh17fmsOclvvj9TSkT7uFjfMHks85cBvT4fVuMWILwjHeWWdZzLzL8bnsJqETfYXl28tIaXBCbhy/CgOvbAnlEE1zJrc6BDkHY8wy5nkvRLc4rMuInv1/uIrK0iZZU1qh3FZ5+DzSW5ezZ4arTZF3eZ3bNbBDsfYNqEXzkgG3wKQGOeTr6Xq0M3OsfQKK2tkm5qIixWWhnNAs9rJWegm21B927tYAZK6fNPirDtmY17Y6XIlW3/6nYCtbwtAwfUHkDqV7Oycv924lqVeMiWpyqT29J2X9IV1gqUocLjajM8GeA0Z0Vkj8nlD1VbXHvf5ngygnsDlQfu9WBuTuaf4GfJ6TCOdsyiVBuXg2aE4r7aok9QBbIt8vUj/D4hBHSRetrVB5hXbY9Ocg4byrcfE32qCJTyc5H5eqD3CtQnNtjjeZfrcs6m5tP/uv49WbB71HUKYpQwdTuElXj4jml53/BJjSuWAhwhg8SX9ErmbCswzcrzPM+rfKfV7ynJGMdf5bG31H0ZIjUY0j3VrXIrhjo7RrwRH55cnoPSNKnvGixsSSc4/9e02axNDjZuCITZkEzwIS/mPTwVgK4rWhtPxtWNSZ/Urf9YxX/sPjwdFYGlCDkySZr3HOWOZh4hlyW2c0492jIEIZuFjntJyfx+F6FV0k7LfgW9wPWPflNCQskcLeTh2njB7ozR3xPk+xz2jdOju2jX26rBPPBhEGtAQ8bqPz62vMqAcTFDqpRkyenP2ypcKnDyWh/SFQ5PZLg8tGXGYjLm2jwttDHCyqCMiDGLE9AqDkeOFXhAgAnsbZERVY4wTQK7bZYV6DkNQIADly4pOU0A4kys+EEmI+27Hc3n731Pnzx+W1IaRNbTo8jrDwbuCIuAIATIqXwtFBHtitC7dIjAKAVGHloJuFlGk+Y+egDzdfuwdsOPDD14luUhwY30zT/T7ACADvf/bf/9NcfbkaP2mAWxxJyPjo+b1rI99bal7ghunQO9JKnoFfGgqQKFwBIxM6uLpxrMTmFdp5Yu0NFXiMAcGE4F47xp4p0d0QmnpMN+L2WqfehTIRts9uXyAAAhJ4TyH/PTf/5nzo//qTrxrBHaX72RAJRPU12lCwQmppfDx0E3zdz99Mc7+DQ94EgPOEjHJe7fclbAEC4FiiTEy4bw5m6emKGd04TrwgwtddkT/cJjDdbZQIAGZTgXHjMm2scRORjLQeVBUaGmEGp0hYAKMnOzQyP7NxYu6vGlB2TdwkAdMBKc+TdeyyInb/arodWQISjY7cvwRYAwMkdX4rCsJhJpr0aMQ2YcV4jAFBBhIvGeOEDFD80Dm7eDZt4WVxM8ioAcDNf14xbfJGtpK3lu0D/zaOvrqDYj5l3KckWAKgcG/gyw4iTnYm3D5VVYGeSGwGADHWVjHEcHbP4d2d3wuj4ZXBaExxPAlG87u8lMgAAiaQDamw3qX/2lKtwXTPjYrvJPJfY38J/TW+m+uj4zr0l3T+4oCf8S5hKd38veQsAiGQZT2O7Yz0YRVczvoLGhfZZ1rapyM0EAC74j4Qb4G/U/tN53LzLlsUOpzGoVOECABV2OppwUKyMac60b6xtU3IuAYDN0va3lFzTiD9cGA/25csinoNyFS4AUGalh+aM8MXKiJJpT6xtUXI2AYAET8JmGJ6RV2tNand/Ku55IlgBcKkz3ywZ/SQ03etznbDvZ+gnosfS2KopxkrGBQBazN4xheE+O5Vxj53KawQAInQahEIFmUOrq5kz4sm5xsLluCTg16pGMB6kd/PV+xVEU69GJeibAr8XBvYkmLAdHCSpRwMDUNKhG+GJN+yyABMvFpq4AQ/EpzaX8VToyJQArgYc+fXvjb6SfqD3QE2ve0o/y7tcL8j7yE0XEnwWX0vBheuBhmHdt1h/dXB+Qtc8Xwp2eScMfjGNA3C+xZOvUsyhf+2cLzHNFrvbu4jjZS/6VRk/UCKBGukH5Go7CqmFtQT9Jc66sOdoZL8XeYPhAioPtyxrX9Cyzhc5p3WAJIzGC69WSaJX9dlHmLyV76TDF7635D7NSUEB0oM1b67LK/8dut3IDK4pOEhorrXPjWGfCCNZjeRlxiXbttydLFc2EjMckzlY3WfeZ3Krq1FzTJwLh4R93NYaZ35vFiathlQ0iGtbQq8Y1RS88tQK72lSR9fswaMXlUUZ/+cgLwZGRLFj79WN+WW7jcAK7xHtsxNXvKKCu/sKSOFZlyHRRLp8rAF/dxvNVCZ9uAcb79Eda52POHY8YsXDlMB18KXPbYUXe9l925NMh3r5vefsGBnCigfnPjp4kHYjn4rpplkI4yaJ6mF1dKkMknP3A7RxsTlKU1GgT7Flk8O+/8ZjEtrLblJq0jebnwLLQtVhBRYZ2q60zaal7ImU+hDJ3Zg5KONT4kN8uUfd8jvgg+ayIHT8DVye0x9X/iByHvZldZZzPgnu1x9yukQ+/rQkdld9PnktBU0cDPA6UxhNUhokJWgHTZwELOHkR2Z/Sou89xEaB6WRzUms5CVh0igSAx9jAR1kHSM/5Jz4zRoGBwLfB9VHOsHT8YptLAX5nsfu3kxkHqukFNkak9ezhFVenTsr/4ncjfrVJdZ27XpRZJd4YzEHBq+40bPvvW6Jvf0+9j/aQrSiAuPq29kNY0K+j4mzGPR2HA3TDzcWgQZpvbdR9TJ7uLUu2qoZF/90cdDJ695TQ2WKJv36e0z08DEWs4973UJlJ792L4lt/WRvTRkgJIzDE+m3vGfyp7YnASCaLCZVOWBShzQ7gjbde9NimDwfLDC50WDnCGu6BLxpmIIiSZYRVgCPAtbfJKbzYB3Un9kywoaMKIWBRUIO6Hp0Xe7yf2Uj8EbR9fgjKIeBRYWqtxcTtKvHuiCDqaxdpKrdPsLHat7WtftH+Jj/rdRWQmteeqwj+N8a21DsZiqbWOLYTlH82Jrvwhs5lCNY6y8TKPLb9hhoSdgsACbmENcDEPTbIoPCwnm9M28+K9JRSbpkj+CdXikVCN7zGlGA3dazu1rCF9cmCw7wVctFy6/lChDa12WCoJR8Xm8CZEilTBGzxFWVP1VH0n5+ulxvIC3HXg3mA4Zr0Ded8vW2pODZEukxqY6y1SJTrz+SkOC+aIxLW6g7x5gjn5cbPb8mU4GNVcKT24Rg2TmkUML3bgjNZRYbe64Ju/A1WO6lp4WRSz++NTztCYXJXeuYNx9ViRM2FMPGgpaiyaOyuKQ3a30l7DRiTaZSnbZUmsufGVmj+5VHY3xDCSUlEXeCFSkF/ThDX72r2ajIXFGfi7a8Q/tWI9wVG85ktvSy16JQU9pXYK6r6JtCDiv2PYXHECVu81xjcaYsMCNyDvB8rmqmjvUFV0cbzul1iTKt/ryZgiRZSqu/2OO2NsCow19vSvmCQm8buWXBZ66e/tiFc6hyvHc31CmPYFlHKtrCb5vmhFGTo18EDTWNLy6POqtNh9osN9ZHsjk2nWdCNYEek0VkLgZ8H++7dIz4dmwoTRtQrAAXA+v4TCIzAJD+lYYmK7zpS6Z90p8cTQBgYs6p8hwzLBNYOCFtNujzjuPS3QZN08Z5RTYiQz1fV37TiNfHRptp1ynWOgBXzQwAUPpWiqTM8cm0ezD5+lOhCQB4bs2NKt9ioksFeu3PlPbFwG7ZU4mYFXWLzOQM85fOiH+XiKkAPFiNsBURjkye4bN+ZsSfO/vgNO2yYi0DSSUzAJA1sFLLxYVzNoV2VfpSoQkAXMU0VfmQ6ZQDzOA1tixLaf0TyRNEwP/wHrJ1N4dedYwqsHoZEsjLUVVpBgAsAlVhPaGuujPL85hSsV0CtTsGfa35OsjqqB49lh8ObEcrQkG9Kl3pJ8YEGlake266YXZgoTBrLMfD2nuSidgvzg0YNtM85A8fjkoUFWVLG22vH6TeL4QxQlNfTEZyGq8LrnlELG9aM89ealzGeMKpCKnMxS8iBJ234r/YKXo0zEenwqFUK+DO9tpHKiwRLWr9qJrRlzjv2KBAiBsu2/fcT1CDjjbj8EpOjwVOw4QWJCTuGIsEhcZ6zwWo5QSkt09QSk+JPp0qC3AQzI/2UuPa2/xpBjgm6tFcX5rPRs2rB+82c84EZBkxjFR1hsjyaKXsH9ZGsxGrwcEso/Nd1Zl+spMIoSTOsisb8+eKJskqDOPSAdJOwR7hn2bt0q6ph3BLc8fNL0HF3kntzQ0SBjONjhvodDppNGhhWqICdyCnWkfm1rlZgArFpBv82g7/kTbnKh+uMDy/n35lbpN5F5gXDTZdBMzuCcIc6cYqXXh1pBGxBYlVgxTe3rocGMVD5KViR8gXCBkCwYWQRNc4ggZpKp6D4+7Et0k8Soc1GfboJmU3zleE7EAPGdDx+3QrvpTbawKd23R/sqVBhMxBED5hKjtgf3qcqf9fjiDaA4c3jjUG9aVq4KnAWHnMAMAGnms04bMGvfjYXbbJziq0temwFP1eJgDAMuyZLqUDsz/8j7tLucMLvWgcYlkjlsg+Vh/3ab4EYU7qMbyhMJ6rYuqsw1fu1DPcKgcEgzkhggcB/yOdeuZkY/iuaOx6LG7bVrjhuWy0O9QvDdssHNn3oQ2p/B+LZP3cYL9/5bQeqetV+kFpErsXFuq9il25sBurwGPve+f7s7HXvb4Gh3OogEfh/7tzovfxR6nrDdyjQuLQL431bScnm40vCH97GiAUoLSV6U0M172lhm4/uzOVY2fY1pbUkMxyVKOzO+4PhtO7c5Z7qoKzlRgRcmQNRl6ntFasfUD3t86ogwuzmrkiG+4Kvi1lNPB1ceWKccMXGX75zHbO8n+5kM/HMVE31FuMSV1g5dpamnPUCewF5+cb0nTtsKa9HI7LCvdybgcWcGwTVZaVpQYf+IUobxw9v736EqClCKGxtqBYt9qNAHY1MwBgM8cZ4SmU0jOsZortHeawShMAmADnje5dAm43RwkA3GUhqg0mN9CJsUHTVeMxunz4AQpfbB0/2P54aXdrEeGTWOUAtBHBcSg18T+Pp95Ojh4hXf4m2owQl+QpB6ANCb7jhouf5Z0je6N/X9lOIrcfITiHRs3q5ep4RnR4vSkzAMAbHZ0zwlxVFANmptjeYoYVmgBAy+Gcy+537cdUmwQACl6jWY3/Qvc59rnztceHJ+aQXuVJHxo1q5cgcVkesY88MwAgcVjjpSYpVjJuaX7jsAtLU4F9GIetdGDDfNflMlFFf6F199PnWP4u/HleryWjoeEGakgtr1v7XAu2/v9koGk/pLa773kAF/7Hn1UBdFQKgO7lRorn1vAF6rQbHsYZnAWfd7SIkmfNkfGILUFfQKSqX/1qXbUpJAj9R0QtTHLzKkMOlbKfsw0J0ikge1REkh2dEbwDL7qsmtEyLk3/oR116aAD0eInNLhKut0mWffQcnF5YLn0Txk9lLpnJLo9oDKuE4Vf19ChA2nfrXQGtbtocq6/CoI1aLeB+5bLwgRdv2PVr+9H716de5wk3zmeL+pXc97pHzCxxzCS0qFY5H4Yxznylqa2oWDs7zzPkbUXj87uVnHuSd3yBhCFXM9r6bAg9KUFMjRC5dBVBdeTbXA2KjatBJg5UQxuvEjsRn858CttOze7mwIA/VrtYOJc3DujzjngUXH5On3lYXlxLUYy1aqlVHkQgWt9j+XDMB54tHYEA4JzvTq+jsE/w7Tmoz6wBCC+yqBzfRlwf4wbOAv9wtW2GDL55CzpP6O0yIYWSBPSASQWP9BD8z7nbVs1MQafpyvTa3Wop8Uui4FwTTanoYEpLjnyBGUruAe3uMaJQPUfe9pf6mVLT9pOgaMjMqZkoC2cpMXKBCHJkiMaS6JjMsw/bSUuR2EzGTSE3XunEw2Z4gU0sRQGFDTWn68earQOpOpxjnF71OM6KJWAEn7BCJ0yI6dG9N5X1uwOtQsZUnc/tMEMpyLglqIaBdkjcS4QF55cPtY7LgDOf6Rb9XLN7KStKbf8E7HYMMNO7ZAtVO1G9R6wyrZJbZL1DNuF0loB0Ql1wRckZLVh7J+QohSniOE+1QENoTNcYehsVI2wyZh1NBIBj+tZF49rhZToG22R8rZT/DpUYoR08rhcvxYzYBUpY2J+6asIj3nCyvXP90QN77krArY8KxzZ+rukU8h5+9mxdD+dLKpKUIwXYZIfHHehFltLg9K0hDptAoZRc+dFZxf3kAFSGmyKZpALYkF3u4gvy4KNo/7ujCY7tD/xvVuKej6RlB8e5JJ8oorOmGhxs0jfmEm/3m3orwhqXJt/Wrqa3KtpRVXDmSRLWeRiIoREqk0inuQ5YAoMmEihEU0xkOwzTB2f6EoX86ThbNG2aa9rOZpu3UwCSFLA8/d+npardq2TiJBXyoxodl3vI0f0jr818OZk/jDxeczMEJYlANJimbjGB+1Bz2mXV3p9sZjOrkCHzJ3Vc+Djq1Lq8Drtz0GNyKUbXXY88OyCrwj9Li+dGyrPeTWaN+d1d+Wfeh5TnrRey59F9LXPuqgt4QrFh083WusDmhmrLTPXuKdmabWfjwkf/DyHEeIvirR+yLDT/HOpPexhowvZ4n18mN9nLPNkcd7vKRHjN1E8eF52LqMV9PBxwzshmrA0sHh/MMS9SMgkzePxeDP4GZMz+k8Vwrbe3s2V8946llI9/nabIe6AnUpiBgD2kLugJin+XuNiFQ8OgzJNmXZ1qobZQkBVJgAg/ntTVW/V0buCU92udWr9ne9RYPUKuDZSrcVretfaqy/oDUWviftAow6DxnN0zZPidp7g66r7+HNPREp1uWmQGGmGAmBVx779zZzRKc3YhR8jDe+8E1DrA6K6YOWGnQ5DBCMhRmdABSWJJDy9vvnO4s71i93NPyWnVzoCgN6xXZubS1zmp37QJb1rnHpeBWV6BhpYpJsSxvakyYqd2vZcVNnNEXe8Bcg0ltCbaDywq34NmHfDemLiubRT14AYu+ZmM/4VwbsdjJE4dv3M4Px9FRj1UN/1Fe69uscn4fLXTt6wJWv8hPZhZ2OuBLrfT/h6nrwjlECUTqteuSa88wG0cbN7++QjZ+Hi8qz/w+qxSE1yu5ExIIuEcT2WYDwywzv/A5g8iGSvw2BHVElO2jMK+rio1qFN3lMVHxvqdQSTeQMK2ze67r21H4527icFzifj1y5Jb+2mKfprRaLvdo7/Htbp9IJ0s9WAvAaaeD5eaEEg3ctEP2JYh9SPtLXrE2M+rjbOAPBuXNk5t3pAc+dVcKpVjnS9pqx1pqGdqXyRPxaupv0PrXDz5zqgrdGqro3QL8066jtJVKPhpGdz/c0D8kjwY8/Dqr/0ul60TTZaglhylCtcNCPT+U3IOA931eUfvYvTkYf+2ozyuGKca8S4Ztjk3nx+Qmd2I2w2c6wxoNMxgsZ623WN9sBdAZO5ILc3xi8gFV/CAwr4nVvoI90q6IIYR9HcxrIsdgxjX0YJHgAbDOwfg5zIT+sxTYCtduxSALlISEWLwvo43nIa9cf3xrlhajroIlUx3cMaBqYjIYRh1+fIZrDOCBWFHowsxUA1TWtREFRzI57vN1icx8qSKO/Et/MnjI2NquDUQVQbQ/JS+vKq0+7q0e6kpDpYPQduzF31v/I8nXiqs4v1K7MgKhU+SIR5QsZdl2kjGpmCWscsYoGz9WOnswBxDlrVuF0/RUvCSISLGG93YaywJk4wRcb86qqL1SfSuFkGvGWNYQYD3lAbWHZeLZHcyseegPP7fH0Jwz/UTdkrCP7d8YhviPNCm7onbJu8zU5U+srNUnPlev2XD/2B8J6eVjHWNO7bfd7F8/SZhFf8xvVqA1O0TYkzT3ri7UlQu40SfNAJB/m7CYRMehrV9ZRAlmxRSsDrAG/JxZeZ1aZhF0RbBs99yDN2rPAyZuqZ5zFjs52jpcdIurkStgXVbd5IfUviUsyjwOnPAMARla8TtzYkYQd72NNFcsI46SC7yHN0IJTT0IC2E/LPRRtdewi9WBWG3txAaSegkFwj3kttVaVRICTBCTfADosJfRTLzoJOu25WLUwvOPdpGeUpDPfF3doSfsp2cW2EMi6dIsT2yo0XYa9soXVoKniyt2HU29voPbkfmXLivFvTQs5wgm6nYlEkzSEgAnOI/bcV8vhlNR6ecO9OO9T42hc2gLoVc8w2Bp4quazdRp6UPOwTLMaPo+8k/HPPr/hvlpuF/qm+Esbw507MJDzKRtzH6qq73O3+D++o50ShzO4mbwx87SFsxbwKwSnx0i4muqBiDA03JBeqX+WgC47/cll7HFAHhIG6oxNsrCxS+zJTg8jVvTQbK41Sp4kzUZf3nvrrOD7MpZ2JcCDlZbqyULpjBUjRpSS7pErLi0MyyCkWsExCFCQ2SDdAOwnEa0ESPHwdwk9brqA8uDHzkX9TBnQS/vXyNGiE/V+mXpUll0mLfeQwAwAnIg5zHWrphLebQpeoWPT6QLwL2cU5tudQbrZmAgDH9Rl5BOekbC6L9yqil1iedlM/AHA0lkZDeYndJ3zjxqakeLawZfU3AV4xJEiuzuYIXsd/X726Fr6rbkk1F1SFLiX1DJ5EzLLAjMTCc1jVOttZLKx8TxNTjhWZpINH4dvwWl4bTB/DqsM+gn4ewifRQAJouX8ypsfEW9Ltd28wZzaJS09H/J+4JC5IAE0k8i1bKo7en93hHoOWcrU9oseCY12fUr2e6jCImaIqjxkA6EBmm1o2WHG4fQoU2cHdI8cr3Lke4eMKTQCAsDC5ok0AxGV6Kfu7KvsBABagLkRNgJbq0wA4ZTwGVMW/XYApGKyZZu09N3hV5RhvD+18EclcIv/DThjtBY5JAfVlyPxyQmyI9lwzAMCBbIpa9nPjsLeHUmB3xyHaRynNv80VzTbWzMGFv4aLVmmV46nb0Vesi3gDn/jo0RbHILldEF3jKWO+cTCbQ6wtiO7b2+t2N/6lXnKJY0K1fxkPD24CdIKLRFaSAoJpz/Si+q107LxYgyvhVYe554pTVXqC0J40qM2xcyUsLSqPjHMlIVAL28izV/IpozA2jHM1SBAawfLyytWIp69iwlRwP+/uZD4F8+n4kD8P7Bo+x1K+lDWTFNblqsFYScwAwIpqCbluahlhB15VBbLsnLaLDk+XwOaZAIB5t+fIwf1t1lDu3vvRYRcdF9P1wP7Rsc9+pizxsunXNYl1OI6urS682nWsSbtx5IT9pvpVYjEAUKvjKW+j5Jmuu35Zg9WfatyHv9tV3cEqvVY7JUxLEeaVdHheMbMBuAW/VR/+bhfoYDUCLsJMGHAp72O6p51XaGPqNXBRt6RnCTZTk+TdHDddiXXH80KZUSqgvW0FVwB6lWRzp4BT1XpzMyADXUXaLhj+FTrGNXr2x+dkkhe0t79G+45D42X10iq4P+dfKXtjstcRek4n4XMsMNmjVA3aqQleVcwAQHfgblc9saurwxevCLw+ZdzvsTZs3Ta0LkETAFgni4igjcSGI/f9wNqOynlG7urmggBg0C53NRFAwWtmkcMo+z0yDgPliek4DHbox4nDwgUFnjgsyZc7yacuMjkQnq6I0mDcNMoVMQOF1y0Wx8E70dln4T3J96Xw9sSKrsQSHnU6xuduUbP/hCTEty+N9g4JCBJA+/2TUa1jXPNF86dJxuYT+vCp0f4hoUECaCiR824dAntv1XcXj/FpdTLtGCHwf/F0Shn5Y8WqANV5zABATTNcilnOBiuvcC+XTDvWz/KAma3SBAAQQFu0UQEzpXLTDuOm0iAA6AGwhSgLqFJ9BNBWxm4AU/wbAlDBYBrgKe8Ar8odL/UT+/SbIDK0gZM14AnbAzUy0Nnjgb3JzMIw+xqJUHXxfSAKTqZgt0QiB8dRUfLsvyS+4K+NPZyIleoY8Tv/Q8Gi3gV/5qn9g8jzp50bNP6xvTtq4kDzQtg06B0IJwwJQe1iVYDlF04EOKlI7W7MxO+z1Svl4Y0dXBU3nQjdeZsRei9KvZzk4UkV/Cqg3ZJ8dzHdkTAnirzxZkTw/hDM7dieiypJpvMRuWBC87TsmLHJJt8vV9t518q5HUjS4l0AbTpRyiKAYUKnWFyQ0z1W8TuGgvmK1FlWF38dGxFVEQQhyFuljoOv/XrBez2SuzpUcBwoWxZuXqLT6ocZnZifjTnCSgYgYh7QcgoFVfYNoMnV08/gapZVKOh23WrFXZyrKbRBEKh9+EQvgE1NLqjWYhIqKjBoElNh8MnFn2LVF4BAukO/CpJpcZaHqXRsUTqmMQpyyzYov+/R5eezFCqEk5cPOCp+3IDQxICnVNDdr8pH8snEj6tpiy4oBBfEDc4yQnQSJeGzeE/zNoQLDCfOt8C2UiHgVRWCOTajW5DkOKOTwGVsN+eq5qx0jK/f+FQokHN2kn+/YU8zBEAmZBJKYB3TTrPLkpxufiFvumfocIuk7A1bVzEGVlq8uHK0I7IcRMybyn7wyTpJLA6VC3NFhKI+fgSDr+ScBK6urvYo2bzxnDH2d4ftsu+p1nr5DzBuMgajcttnT1mtr152q28eFs0EbKXS9e0JU2EFg/hsZD5A8+wyUK8C1dkR+im0hkE2Ngt3KRSHTVs6Rb+jPPU+1SX78G/27IKeawV1pKS/OMsf3hm48NMyYkJwFa2y9q6z5fB11u+49v51AIDNFHzzhRTblFOLcUQpr/aOwzg1Fims9hRm9FVNbERx/pRpskNr/lZ5okOLTxT/CKmU2uEhJpwNI7WewtwpozjWCUTmmgS4E4hEzQRWG544kJ7oZDL0fQbzNeAx25BahaAr9pErznoIQ6TbSctlikpfIoeJwsi6K2GNFKMmE8XLZWJfU9VdA4YNuUPJ5luSDFeE8KZP3d2AiY2YBa0beCc0hO+iG3WhHBJN+ACoQfrLCfS2HAPSPi4L9GnEzw3+Lzc4sBiU0sHSH6zjDSEddK0O9MR9c/o0M4e6DTZgYBPNuestlKGJqOaEv4NWZUJYGz3kDurbjVI0cXghD84KICTycg8GBYI3Q3RxdUGwReUbRvHungwcpAO4zgeB4dnvgllPQaCL61LJASQlwRrBvt8XQKTgo0GADvMhzhzRHnCeDmS9qnt8YuoQvVUMJqlOYimWAE1KYolUmcKUXwlZNTqB3a3Wzn1IlyMMNdi9CVnTMAeGdKaPneKHvErb1PkHQOQaxtbSUGPpQjyQZ4hOz/4TsTfzYhFympDhJDEOf7aQi91bd6o7qiy1bmuH90ntaW/r9sWGq5otGC6xuJBFWkLweraG7aELxzQRnV5RwrwH20adK5uNop+7EEsIKeoEOH1l7jATBjrpyT78AFwgyWqw7otljxhSH7zRmj5YH3VqrU9gPnsAkYOAhYbuchrRtgBaWQzd9fAsRNERiluDNCIRLuwBRmJIn5Dkfz0/yRM8R6i4CBG9k+tqzO3+Iu8W4lrmCUAiLYoalfIh+fQWEwJJ/lCBDpTyXGDUWv7/YzGRK1IB0rT8ES+0Beel7eb6uNxetpCbt5HyrFguZP+0FCkjMolE2FJzuhHHsZGYtmN/n4Mx+nEE0QVNoNgfL7yuW7NIt0Jpc231+w9Mvbual03xOh4Zi1jvBUFwvda0u6n+LGFagmMw1ayHFhsFflWF2/HD7WE86MkT+MImASWk1SrJY1DEzJwXqEEYvB13aAwKkip2ryut593wWETJoHIaCXA3mifZ2kNyU9xr5ssNKVhuZvMFhU3bnbYoQGw77l5E3/+4eEHf7crp1a3iP1aVlY+CrzTLx6pdY6GrR+a4Owph7NPiOemfvb7E2gBm93jqSxZOvriHxUb4Bm2QuPfEOyqNx2PSTfF2NJZuiOoV/zK4vrDoPMsnoH3eXO+X0rPOZtonJFEovZVMo1cgVX29aZmW95xJMe+BuW5yPVQSNw9SIyBdyc4+f5/XWcazIu2D3eGJlSNsycj15vyITowXDNhi55Vi/8j90ZptTh5xFed6r6cd3JPdUx3y+YTUFIgN3JKbJVALCRTdT1o7IR/iXllCdAcBus4ZhLwQKSsBuAiC2RGqZjozaHIrkKPv9PzxasAWeDTlgURXWVgUj+6O/nU5cukfGrUV/38V/34P3+nE83+n14zzj63mYeB/Oqw//9sDJvV3ufWF588nDv764NSAv8qsX3n/g/dUR/3ZkIH1dwhlaJ5vuxCx/kRi1GoP1yaJadKzzEJ7VHCx3nlHf0kOXzA2mqWeJvar5LfjVIyB6DTe5EIOJLhjxtdesAGzIsYCEhSvuBuCU3cpNQrnvjZHRZ2KV17MssiJbFTzkFXxhjutcLSzec3JVbhxG1fnBu5Y5Tdy44bphs6u22SqCnuPNuY9vhpDA2d40SY/e/t0rFwqQsB3SYB5k95rZAELjQ49Ht43YvCxrrP3aHoStJthV42yHAGkh3UIGOWNFwEz69dPjCkdPFZDc2Uoc+hAC0/4dB5wJCqE9oLMFDEQz2YcU5NokJ4+RInouv+xz0bfPbAKBC0aEDXZC/Q0NK3Tm7gAwk1i1Iquemin24wB0y4KzhdgjtSIoFcUQoohXnj5Dsm3OqJlj7XkhIFnMiav0WlupbfvEE4at2N0k41vSX8DAaQx3WC6VUC2kCBPclS1Xy+CwMM6dmxD2jAMUBTRtyAiFSm6QfCdk6VUaueecFNM0mJPhHXHwzHxmGCyE/fn8ZMHP15J66A5hrr6u+wLqNYGmZR+T9qsO1s0no65W590wG6Txu7mkkYMjm3ao7yNKr/h9jOkDaZZWPzYEn6b8WOGMcP7EVmYgC9kqPCVqAIVLR9G/sIXGeiuMvNrLYjR7rlrddVhZtxfDcDEQ0FnWHdXw2UeQTB1O24vzim+S8MlV9xQb/DpJ091IGT2jMGrE0HHyTnGzRO0troi9qnZOD9eP9wxY3Z0X3paWv2ziJPFTbtZsk9jDWPMJUFFYuGtXB9XZ8t7esfAyQPuWUYDrrgD0GXhV0si8UI4C+r+l6HpFnGK0t2cCIz3R7KS43jwoP64mPSdO3WBU3gYhPWYePrzZPijQ9gfT5unP4LH9JSMWaY28prWJZ+7CxxnlzTNwpRMI23q6vTpVrCKX3y63Yg53u3RP067tqqvZnDAJiC5KsAkkafTHaQB0v7GdpP2EfAf0u8/Oup8HbP3C41AeO4IDiF42dshMN0VSMM54riIyvJxhb6Y2eir3SZCEHBu37eHkkYO2DLBg0piDAiTScfuGQvwfiMo1KRaS6mOwG+HGPcauwAXbyH0VqIFfBpRUFEVm1ylAXtPCQydbluwj7S+VFgdu0HBY+WcncKQbqc7YHimGDonoYE/hZhSsz0WOYNUC8vFq4meHYP8M4ghWdw1wXou39GaXyadzCKhF7gFiLjMzNqysAOKJYFsHeHzJGJ58sS44VtsSjHVKpLo1jEMhTVYKsZ7BzDi1WXDUj97ptwQKQnw9hEYWBXbbHR0xKif1Uk9jy0LFiImaIJDsjEJeMH3J6wDUXIahdsYBp5qzQmTwwbKD6QPCPOOYml4ddclAwYf2yM97RD53dYPX7qO7sqIGWDH+pAf3g/pRSP3G/eHSWodHj7iYuaRNUZ2vLfJSpHNzrblNOBPrIqFYjsFeJlPTHIkRqsH5ilI0pbYhZBaHZblxS3tRmLw6cYR2FdQ8WAtvgSUs5xoBkXcKeY1KG/OpBd6ItOyzYvabBCAspKDiGuJ8dtiVszif+o9GRYc1LRSB9XKLJF+fDXwbyyAv8v31flPyg+Y/Ye6Th35WmJPcR+4C+jfqx9ilsD6oeU9+0UPK9taPMj2yyqdxlOGkumjXIfgKFqP0cpKomrB83jQpE188bKZVrFjncZ+NB22AD5qseP54mWN24mMOlXKkB3TAEAnbk5elmWYoV9bOnuuuq+r5+tVt6/pZeuL6nqAHD67PCMbQJ5+/89XHSXGQ4ATkD2h10BO08Hxlyt2fQhjwXkQBChP5tPaynZ1Frkz+M4S5e6czSH7kdvhEIJ2CAJ8W1dZJBY+iUErMa4C7CYdTAGc63zYzMznNDG0BW3OvxzBd1LBBn7mEupr5b78GqMxWbPI+fjs20tocN/q7RdblCWbV1ligfBUj9MrTc53s3BKUMXwT8JV8XoXtxjv2bUqKBd6gFafZVEWIbQZojBA/f7YnxYW2bcXJu6bClRowONE2gGJG9uj2FYfMQfq0RwuhryT7wqIa96Vcgx+QWv2czTT+4n7BeJKoquSPT/0VcEoVm0EQQO+3FbavBg/VCnZZ4lYTH6Ww+YphKTrf8wH9Du5BlKN7LTfjlkHELcZJDc//Aj8kWbR3O+GRAgPz7GEBsd03on2WMMRUQVwu4sy7as9k4gk5wIdVeDeIXOqmRAAdjtAR1RVfPGMHH2br4j8b9xvGfpb/pAMj+O4o3nr1DK8r5zALbkwX5nNExnLlcodTqcn5HWH3hLaue7QxzW7PZCjN44MfOLuqUgnXIsT1GOpn8nv5GURUoRfDp8xwUO5P7G5UeXue+L4GPvwqZcLJG1JrUqgA7xVNwBwYAUvZhOn6DjpRCLPtdNUdnHnMIhX6KiaQ6O0YuOiqt1KHfVs+cUavBpidxDBGSLkVrrLUxUSbKVdy8GWs4z+XQq+4s5/AABFwXNSP2HDOydu1wVv4oePI/bW2Gz074I/+UR3mxSwRcBqJALsERxQeG8PDq3H7gDF/bLtAACqKgxu+EIfqhkGtz3W1Ho7reZQ6b48HsAB1dF0QkGnSVW2ZzCu28Y8AIC98GIk7lKwRjKzfbACnb1c2BXdsENY2QjUSsgOnW9U1zmV8Pn8eiBIpq+07nd9bn69FroTsD8M/tuHSKyBWEFoTDxS6gpf5T3xnhn/XJnKNLmKD2+i2gYQBlPo5Ob7kuHz+fXArTDjTMV3TtrdyVDH1P4G/yvDpzhfPOFWmTnm9x8+BfG5JSaj1fcT4seAf0x82wButZnzZO6CXcIbescZvs+f5rubq+WfaaXtFGlQrYLAKxRj5XUDAH58DeyG0rou+TTlufZU0rspBzXjFTq8Y9MorVjq8E5DgeskbqSuCSLaI2LCSneZ55DAldSuB1ueSfRv1/Bcdv4DAB0crJz6GQzskbhtGXYoxYvAPqm/VUF7SApwDEBq236cDyqvxHfFg/9V1nkTKs56W2rQG+24VOSAcIax8roAgHM5i9inI/9dbWzdclgVv/5Sp+/jX+o1ZGv0eXYeWU+HlI9GVviMNmdILRvONArIaWxRAABwBsArcoZ/DXHmM94m80coQ/NWND0g2b21DgCgGQKNlOZiXuslQoSmu8FXIa1tUp825T4uwlJZQ/575E/ikP5uTYKxiir/5/nPFzZ8utv8hwoCIeXQDFWxnSevpqm0bbqfvPjMv33YqXKo2W77dqSaHICeOXvf0ywSzPXW+pfPzly/1Pf2T/yz5xXXKOTEL5lZrWH7kUGPZZFJVxkok6uqImPlcwMAEaqaNFKGbeVGwt+RExPZUo6jmnhmp1rMpXjxCh11ETTWr9jEeYXqErWexGk3KpCHCACMKKzoBFFPwURTLdKc5/0pBY5r4a3+AQDFA7Ih7ccz+WeBPIXZpVdsVI5pOKJeSYs3yV47HtX03iNEm3MRL8om5Mh6ge/6jhBypuqTqSayZLDFM+hm3nFKHkAjPXGhSJ4r2/1NoprZ9UvRMOoMIwR8nbz7NTdfWixx0dRVA4NkcCkEgzk0vGoRV60WqeCBQSh4+CETPHAvr6Cmu6VfSrOntjWfP3AIBIO1UAxxYDPSwMURBi6KLHDWafXMSAIbEAQG6S2+NvMrW5P5mREChv6p2E41IwFcBgFgOSSEgefydroWFthD/sPZ75/mpae6aU7I3lI6AUi71WXVprqQh4Fgx1oiFEMp6WUgYgLB4nC3KQCAXALObvfYM1wGbthpx17zI5d8awKj0iqzTp0KXNu78gCA45ridtDCTVXnfKudduaFmOmouTU9pTeJENvnw9PDGrsEIUOsHUxtF9QgkzoVV8XSm/jsUGCnN63aXHgQbnj+mt2bDHyzjmvOoO+y0sXqhbl8v0tNY+q3Lj8Bki4DXLH1+OwLkJm4fuMig77KMqFUzTJ4wlX17e91AwAqFALw0kBEdDPHUPbWd1dXAVctJGAiFphAUNdJ4JK/lVrVhAgAtAzigibI1Gz4dbBPnFzt312vNcp13fgPALgMvJ3kx7HlvRHN48JB1sQ3rcuOcHie/pIorgutmOKpgukMt943e8rSn6BcYMy3Oj4XL7zN2ENiDBnJrncw5I0ac477qUZTOwAwZQwNCd/S3E8TcbuVQBeUrDQkmLrGPADAc/B5PBw6b1kd2pTIoNjhihzai8pGWYcCqQbU6lCqO6BYDhRxecuKV9ibk96RSX/c79Aa9FIxhvCOeGQxK27o95D/Mxn8dotOPwa9UwLGBhDK0eTk3upSGpGvQb+JPCt9xm+DfioOccvCPEfZSuz9+wA+SsY/Yyj9p0H/lNCxAdzyMOdR+hSLrkw9j8x2N5WIDPorGGJrVWKBdwfGyusGAPbe+cdSg7q5p6BZebvtarykaiEVur6iJnVUHSpOnURF6r4mRACgIRDcaoKo5i7Pg33iiaJ/ew1va+c/AKDIsJvqZ1ywr0VzCXhAX7yTZqrsodB7w0IrHCos8BW9D3a/0o7OFKWMHnKs7dAxIb8HS0ckmP6Sf8Y9RUMfhj2mOKxeguiSvGIf+TYAAJNPdXncNj2bgqq9P9l9kqJZIqpCurtmoPVIYcYGtM/S5+8KKMzOyxBrgEK64SwiQAkdRDUBALCtc10FKmW+SlBp9TjBmcmGK7MzALN2Zm6THQBgUsCIpSnF0o6rzswAO2ZNnDF2LDszEQEWwbHc4sDRD9+ob4U5BWrqnyQpE5T6tKSvKsxidYLEE0zgS5cVrL+T/Ym/uK3sMjxOxnO9eIINeey2rFhlOjdbZQgA3N4JEsM0aiMXYnaCXZeaoZvt5MRJhD2mPt9zCR//klBVzq9ACUBUe44EaoyN3k0QAQAAuF3uC1YjGki0lSv/286mif3b1f8AwAK0BxV/UqmsClJqMw1IKeM0IPUDTRMvabVuFYj0CQWGXhBeF/PpBFP7R82Z50HeneSVW0d6JW6VbhCIc/P3BWO8SKLKrVHHNbMYtSQ145pghWMk/jMiudjuObKDqFjCv2ct/y45WRweK8P/YZ5PV6dDYTjdaZm/TrrsdnecD9CvAFnEaC6Lqm3aRFLA7CC+sxCzmOH151xiD0KZpx9NbjyrFkEYuNbQnF/edzmepYldsuvJMFlmYXeSMXiLy7ApDeFtjp4CAJI2FR6N8DnyMjxW3M4xUzNu0xTVgPHSW/k646g8AGCQXrVDTFwJnJtnuFGtjDkD3EySbUbAPUoarC4w7XRFjWqw6cI5gQ/ujDTiPESv8rS4Rn8dHkcyjw+GfxCGfPeh+Nh7PCNpU3G9xB56RejB/NidIV/dHkvWWtfZVfc0YyUZAgBjDb4cCTtLPeGgm4mDog3nk6l1w6E+hcLgs3e3cEioi0nAB3EriBDmXOGV7vI2NVE6MMLaP94gWJIvu/EfAFgJpDvhT5DAqf203wzpB944pB9cDCulJ5YmJPA9E5UjrGl/Mn1ZXISwlXRJGCBsOgMlCkwl7e5gG0xXJWODCDPds6sdABhWgQHS8o1YmAGn227Ew0jkxsqkKqpD0TTlAQAsD6+qDmsgcVsLsyUznoJJ6GxvYDq6YUowjTqoqXHhniDuhMsrfEXfQ+YU8XsbbchLxxiCGuKRqqi4iAa3/Ccz2+80cQ1558RqDSCAoclJ0FO8ZXWN9CGDzwn+RsaQn45D3J4uR3GCt10r/cjYwO4PP0P+OVFbA7i9Xb5paYonrOPuG8k0n3g7Y8hntyWlKuGqzkMLvw0cAJi+//Gpsrq5IWgEbzep9csqFqIvF7EoNlSlmERZUI+DCPSM/7/SXXZlo2hGbi9sbaJ/2xnZUPPtavwHABYEe83wJ5Wipv09v5mmn/LGafqpi+lK6Zmh1gXMwvBIvyoweSW2KV6uqF+wyGQU8t19LvmFJ2+mvaNEduidfoLVu8h+tYF1g3aBiW8/7pp6zYtf+/DFhYaXn6xe/ypSBWBOzw15PH8wQ1q1MCtkGDgCEFgYtnkB2JUok15Mh/mG1DeOQjeeFu2IPsXc/hzd/Iujry4hKBWjJ4unSwj9R3hcmvYRZG52ZP4qKnfhzeo2+lB5ektmrjFcEUI/0i12T8lMGdiIyOrpkgTV6i+HpDV+H1bInlrYZhgGp2wgR+bCs6fZE3JVDhLfDPYMa8ZEIk9ql+H2cfKp6ggX9JovllzD1pfRu0ahcxuw+8dAnveAOaSG9jkRmH1/mE5uZo9Sw46n03YDf9Ew0saph9nLSBVGWjhstbIJOfsh2BkmEGdrdP2NGv/lcKWtcMLA6RBrB21pkm2kw0IgJPmmUyLDB5mVvEDikqod9KhGC2QBJoebpV6AdU4NGOuvfZpfptNri8Kf21FMz6dT7uh6gMHXUgCRZz6YJu+BP+xhYVGviZz4Pq399RXAtQP0ftC613YMwF9ppXrHN1uc2bTIaPyreYM6ha37GizYO6bi7a8uzwyIPizu/7nUh8N322QQ6nSm5ksByzYnyHGnWmZH86X1arAj8OPUcfp1Sqdl6kRczzybqdPk+vD56tKIu++014zXJ07hNHUzbuxugpk+Gw7Z8W6qayfpn4byI1yYP4dQj5YAw4dW/0bv/RJ+EK69GfvlY92+ruo2P2Hz+tUB1ti8tnfFYSJqX/ObcL0vofWemZn9toVJ8kfZ8ZH3OQWImG7Q2t7ezxCPHGunueGgF8PIX4lbjHmdh2fIGJRV2YaQRt7Ys0L2OuzJrr+mkg4JsRtxrfHORfJtdWwkSTc+je4G2hp9kSk9gnxz05MqKyL5MbYX9Hdm9uiNk2nYJ0QLpI/EzBdA+ANuerSeuwaiOoxHzgPkm4xZ3CIEAZ4KfEeaCQnq6sk2Hh4Qm2un1B3c/Fsnr1ynPBTqpzV+okKjA0sAoCcoqgRaJQZQ2DJgRL3MOkeiMe1B5t2NWNG5QGYpnbsywc7Q7P66xLWN+0w7D3cmzEx9XYn8KbaBTjdVyOJpbawbuL2kUQtksiEfKNbWaLQsTJxfCLrViTCV1qroWK1HnDrHKMK0kRb/rfRLFvvIa3XFHgCwiPhrOhqplGINKV4tVJTf/9pSKJYuYWL+YoZ6AaLCzOiisDcjRgmVnFkL566uGwVS5uSiXNUoQI1SXNVFud0QQM2AprCNrukYNEXPtqaPrPhVJNa2SHZVtLFq3hRBmxl9LGWOb4KDqck6HFmjKRP+CKQoVg2CVYXTq8qdXNUppFY1/FXB6F2U+t7mYsFoZcv0X3eMXhsRB5RTubiOtcSyD6ym1EsB/fM7s3/b6z8UYz3+V0xjtSd5VTgvFTETBirQ3mnGF1TrFcdThfl2QRdou9xUWaJBPnru3rSbIb6A3aRkQ0WY/0qUyouKJ8i3OlCATcP3++axdAbo+z/eN657Lf9/l/Muztg9g5tUg6LiTCZjgSJ0IzuzAEXa38aZC70P3PKupAE+xHgRLXTnpD41N6c0ZuEdaILglKvYjh5AX4PlHvO5Vqw9VuQA7oqtUysnqUcj4J300NnD2kItxPnd+Afw8h7Y1XPsV+19+O6aA8DquwQvHnL/3jBVP0D4l8ziANXK24kZBRV//e7l7eqkXLdlTCEREDJFU3E2fGKHbpyD819Ej8Txxf9ipS5dzZL0NHDVcVRf16KEfQVNbYMJADDd0KI2PrbTUi+jJCb6TywKlq7rjHWkYA3SAnaLgrVKkdgIBDJoQ+5Rr5Xa8lyHRHtZw4rTuUPwpmRuctseADAz8tovnWX61I8usLii6RSspScerJ8KHFakSoeA5xQURBnE6vDWBQIZMVOXds3OytMbIdw1JuJ43kEusSJS9FiG/Dga2fwQAIwLE+9I34bkjiJ3e4Anq1WuiJnG1e9RI5999V1eWeLuDPtWZqLA09bZmYFHrSBygIeOiCVhpS0tXR0MiJl6lLoJ371VPIdhVP8SDt0Agi86GQmoalYt1iv2juLtj9rxQXNu/hI23QBukbfZnG01FfUv8Rbruvxhpk7crfE2f7nsUlJ1LcPEXqmZSjEMKRxDhZIJAFADtbmHR2SwXkoKJSAMSfmzBPJKgzpoTiSBEMLaMrRYzNaWMqzAa+++022Fq2WCvEMhJYAAYBqyxj84AiJtrsEkEvcCn8TBnijFopVjBUwpWAclTmF3t2zMaPddodC/rc878+p/Z7/sSYIPcFiPoEoDmPBKarKrhQ6MkB+GQsUSBtUkdX/FQfKtAhwSwtk7kg+uZ7VPYo0qoAGxV8o5hmQ3fAAALlFQqYSF3oJO+h89k4oQGrbz84t/CVA+/XlxVKjbXZZysPtP+/mBnatF1t1J4iCNV0tbN2H8y54uDF7nUtxiHrNA4sCCWd9P8lqmPC47H67i3FcTV+mWsRZQhevG64lcTB9YEMEH3g78/L+o/e0WPS77WfpWLsHG71oe9vI111znmoexXV9wYxyOrjT7EpP9yXaLL4tT/r4OJ/ujWdV7iVYP1VE27lLuL2+drcjqbA0CrN9pRy3cDtnUNhMAYAraXp2+Xkhd+k8GBXvQdUbUULDXKQGBZWzCsmyIpJaoaRAFAFQNU1BENLEoah5CyV4utik2+1+eeoNkVfkAvCyK0SibtAEA9zqfrRZaNKiL6MpPEF3cbNFsGW5KilsHN62l2kXpLRdatHdaV/SiqgUu0bGh6V+vT1SqAi8uPWkX2ze6a+lRnhWLknAth9UbSXPBVxDeQ8NX1GMHkF+5ASIAOAi+Huk7Lvn1Ru6OAYkvWLkqFQLsbJrde5PCbGVbeT8hwrVvmT1sCukXYlImuJXC3ZtEiO3Spgi7Ug/e0abZ50TEvPDqu/KYvknhRltp8IqRJ+WbpRm+G3z337P36SOM8/6Hw1X+L4MqrFdre0XB6e+GwhuyvW0mAEAKuu7Q41zRmiyjpCkFgKO+bVSQns4zqkrinK8UujTkgZSY1kiiIauCCN8G6sJRCACAzIEi4oLfQVk9N+VOiRccV+7NVm0AYPue6ZpXWUjg4nl2Pp+q7BrRHB1swRNPSowTh22GUltjM/4M5N3yrtedyahceeNA4Ng/jHhTumtv4E3HCPeWyQ1X4Q0Aj06PhSafcQNEABA3vLvSdxH5xnG7O2JOW6HKpPRgxaQqwjdBzSRdfT/xgB4uO37jO6y1l1nosI5B9kqH3acgdgt2MyK2M6y0nWxyNcFz3t/j8KddLjrJzuBohur/EpbbAGIYOiF7e3mG/eH7s5suN7/+0TrckG3zedkavtsAbti24V1EQgMfbs94XdKn5TKhb9S23fRmvT65/Fmd3IDU+qwdpbAD+UomAICPSWqEejR6ik14NwaUOv0qdtzLz/oMjaRBD5QRSSx2aNHGqzcNZ2uLHkaE9GZ1QGcTJVS4UBsAqIHY4sQKkLnMEsGotqhOmxJgkvEK0o7bdAPG0bUXUgwNi63oz7URQ1MpwvpZYbzd8Kv5vENOnm1H3sur/tV+nE97sjEHkiREEpB0CZlkUEizLmqU05bqLCpR6J47RH7tWXkP7iXcn6DKJ8Y3re33CphnZZdSpFX8GSwaWvwmffLzL97LDbOul40Dmx7VfuTloJ3/ZhDMf34f20QRfohIGJY5opn+i3/1Q2wMJrOD/wPxllD4ksC2P/Lirh0GAGj88yuWT62YbKmWZztcatO2c6W1cLv0nzsPv6ZDWUZnrhtK5CuPw3DiAZSuWshPRzHF2/EBAEwlFBojXdEK3OqqSf57xml2eRk7kV/q/XGUjSwAQJAf0S4ql54eS3RmI9oryey50g7TVk+XFFfvEsTjJ9WD60bwJZ3Raa1hu87pLVV0cOuULl16FyeHDT8FA869Jl+TD65HSzclXwZ35VXvtgFMfiFg4Ji1GbwWQDSKf/rio/Yw4leSj32uj8mL1Gp6F+Et2LUJIFsH5Vx7djwRr1QBbxibsPMIkAILVVZFqLUqsD8KAQAQCqiIdKzaoi06rZdIRB8YwZfpGE17AEBfqnSTZaTAFrQPoto9YApsSsnEwSmQHoUYN/MjjQWCTaWAW8oXLMm/sic23FIFyxcKEHMVLjJx0pWIIHPsHkzcOWJhWSZdie52tCzLjuQvW0/gZ3UZ3Jhihj0k51cKn1/xdsG+3Dx9s7b8e2bV3ZE9TNa6I0XmeXr5yp8QH8UQL4O7SDdUl+ci4ENOuwiegtElDiUzf7pBkJ7drE4dFqEPa1qI+Bwh9RkTj5Oa9foIeYAHOHKqnvVslZ3XPsMiIerShHd6Eppw4dNJATQefk7Fgm/AHSNOScsXZyx9+3IJiFx9bhd6yvU3DEVMUoogRwHTdPYN5aWUT+QgOPCmDs84jlT+7PPEDwbSAsP9EJj1VHQvRMB+Lr+O5oImXHJ0v6q9vPv4td8fI5XNkTscRGOYXg77Ap7r1C1cB9AVBoDMHzXMrGmtIzb/J6oQ8ys3wo0GnS4Pk/p++/iEKtJkCfgUIHi7+ExwxwGuHif29TagqGnrXvuNWiYrt+BluKgFNO/3AJfSGxjTUJ0jGru2z5NTovxAezfNhQRvKqsGdChQ0OhJRc6hrOmS5lMHFCTH+6a4YiG97BlVaHbtAGCHI6oVNJHmnB9SZLeCYbvilOiySong3d0Ib0qShV+ivoHk2Ayd8ghhSGYLeKJ0WsckeO2ZRnIk8qozUuDm73xOzsIB2XY+j0wuLVc2FX50ByD5bwdShPOKeP1OMqRuCqI/NPEjaip0TBNx9msCIJUr7XmkhBRFc1R4wG+T18w4wtj7chgN51RKHMZW7VuqV2rRvnBgdJCrXM4B5jzKACJX8RH+KG0j7Sptzep5e1cNgdCSD9Pg4fN0/ObOdW8fXGvydlpWieK0PHQDldgG/fdpiwSfK0Wh+cYGP3qKw4WAZ2iNuV8cb25m4zEeztvn9V+Rtz6G4MduQbr8BbfF+LD6sgkkF3uzc5W1OjTAtmatkdukFtwNeOCLx0gsK8N9QVhi4pIwxcS5YIuJBxjGmDhTP6jk18RGEzxxYbAjn3hJvy24HbEVBiICPMSexkLXCNVMnBu6mbiQv3ziktDOoEjIDv1MXBMU9IGf05tbP1w0cTXw0cRF4KSJczojgw03TTz48NPEQwSOmrgYPDVxZXBVrj5YikN5OCurvczEc/DhrjpteMbCvCcR2M19j7JPwDluWT1Sm9HNLN6a76weOIpAGlOshT4Op2iGQaWArhfFWIenfdATO6S4ugjg2x9dg6WRguPWfYzChg9TcKE9QG1C4bAipgZyoNCEGgKHIABS3bvGTKrKFy0D9xpFl4JVy0fWbBJ9FCVX844XfkpnB33fF+EkDNpqZm33xNSepqTji5dj91ZiLc6V7J2hZS139Ija3bR26oRkZbp3qiou7lQvRwgApHqhTdnjSuACCKhbZDA7sLvZQDg3QfacNpDthA8LbSidUye27dV35REVU7jMMU+NkRmmfDmH4Taa+VLfXuOnmT5TGobwTC+Djvxqp4vUA/IkwtB0UMKkTTMKAKAAmpJnGD1P45UgidXhH9XDTMcxVp675aOV8nOhLigDtYdu3UINpEjqHQnpIILcjbk7CgEAEK7ekMhdX7hYoCovkQh0rwaladoDANA7L0stJaXcaB8WKzsEh24lmezWgtUlxGBXuEHj60YfHbTNnRnM+pW7lD3lyjDXKNp47FlcxOEm8Dr15q7+sY7wxJTdkrLbxIRmAHbbldenXFzO47cv/UXA44juaOdJANDcwjQKO+0GgBYEmirha0/HubNsKuM31DvbrQ9N2xyfQ5WND6WaGttMCABwBlrXWq6LcW+Hp+xnsmdgQJ2NHMDoFASuAUeMifGaGY00x0ON74P2vX9E/5P3Hn64hsrLEPCjoEOA2FHnZBNPeCh+EPd+vtelnwk6TQBB5Wdm/lHVIUBAQeX2h4lHPJpn+2T/0H1J9NQGE1T+ZXB7XvV2CWo/FeB2VBXhwYiSgB3F3VEAgH00K4l3oYdYEusto6S60X/NUDBR9IyHcf+bmFMGPFHwejUSb8clSlJtkygAoCZQGgmRrg90ih2JfQ1MR920BwD0bXWzt4wUmGvtg7BO4JgCO6dk4topkLKeGLc3MfR4ade3yaYTWKS4srNGWypVsBTxJ2rZtVRafVk8NNl4YL9PDP9i823Dr2xbh1f6AFkpPWRiYJeI2AXfRJPdNnTZ5hIA4K4o3A3f4O6gYhUHaRvh36qFvIc59sojx11HrNJ3KsYTbzkzpR0fNMfXryzy5YS0SsMHALC3FNOYlGXQA0C7qwbSYMDrnSwAAFwARClRIvsAsSOZ5A3ZtyiyXPlhsQzhGF83LvRGkS7l95AJ0LXSzWEbONOiAeWEYxcnH8lZPi+e3Acfm1pnNXdTXk3AMWhlvdp7cx9TIYyJMCLG8kWZakYBADLi3IXqLLJFALgDaTZ6pm1IE2WgJaQtlaQdKKfNtqsc11dpi6FXE40mK8VAa2oTOeMLuKHj3fAAALcDS6N+NAVk0W9q6v8NyGsp1uLMclSblkB7K646LfeWShVKQwfoZgW3dDUZvc8k6Eom5HWwll1KrByPHXqUSx++IUppH/Nqpmj8Kb+x/dAdzMZ/y6ffWwAG9rzItu6DJYYr+0RYZJJIDBgzxUB4PA0IMOOdJwEA4sZgwp12AwCuDBCM8LG0ly9xkwhl3I5lp0MmpiocFIA5OwkBAOwEsC2Bo7CgjJrG1a2nMXq1RN8VaBv0XSGECaavusZGPuziOC+CWwLDj5d9b3E0n64d1kqU7+vdbzXon4C3hQ5cfteWGFDwq9TC3u4Gi1AJs9jXhonlZhQAgGUK9jFNJ0joUAHgzSSFUygTcdR1KaZVLT9T0srgSOiqQ6TzWMxeuJIwwr23/nkUAgAgj62JZkyfW5vIYLh7jdoAAK8LEKQ5lTVWP9oDWq7fVEoOEWjnpFjXRQQSa6OldKD8E3TX/tW9e8FWqnDVeBT3lgTbwqJlU3CluVylZdPlxN9cCSS4IBhHdgUKwpWwURxAzCQ8lEFBbJzGkwBAIw1xs9NuAKA7GIrn+2a6xnBOKXLHWaCq1ioC6x0UN7ys7YQAwM1pQipK3LRglNc06okSfSPQtugbIYQNhlEX3IzJMEf6ezDwDnoPaJUd+Wn53VFiQNKrklt4JlOxQFfpigsn3lOSCykAgA6KvI96BLOXkro5oDNIkOL82RWUlQYHKCeRTli0t0gUAGA9KWdB4ER68MctxZ6fWKxXKR4AKAIdc8mw8FVbIH3mOnH7wLXqiS/7Ypu1dTfmtVTQu65ChBr1lu42nbR30lHPMxI58tI1pF4GpzuAS70toBZtWOAVPSKYK6AEADYqW7obAOr45VLW594jEfWMczee8g4SCoZBm7NxGmfofCP62R5+Gzx5dkH/lO9CEhPBIUAQQGV7fMS4o3jp/cs2Ru98Y0wCACpf39E8auTf1Ub96fAa6RwMI0gXPVErBQAQsqzehKoBE1s4CV5Am0OGDZpuUiWVog6RbN22aCnbrS3IRQLwEwlmbzwAMIdoBuQAGOcA23GBIbcGa9+g3zN/UarbR4xzMR+pcXJ1bav2RG7k8PNPX0XfhbGR4bbAdZuQuaso3D2juIsJAHAS1J4BW2khVRyk8MK/bA2E5NDsRWe2F5orX7mcWHMOoLQ1vnxdiYLfmGz5Gu/6Xi5K/kpiZTfQtTRvK+xOaqpTmmIMJS0zvf1Kgq8qWnMn+Di7WQAAlgveReCS61tZM5Kj9Zk3s129Q9kTYlWVgSAoJs+oUvW4RNykVb+NNs3l2FKtW9cSqiYyLdHxlaZ/tT7B4KN+KN8TzuX3EIlhwnf3yNNew5/i5+mbW8Ype48Rrudeq3pfGH8i3D7Wb0oYtxDuRnFUCgDgOQbqvXB8G4A1+3k5vVL9WRTxV5YODTJkYYiUg1x4vWuDh2kqMu2FrbqrTsExew6J5vasuyzUey+RCOE6rjAjdBriAQDRXUkVboz6MeYRhWOjRNP0HOsFQyXF5hWrujDc/zdWUQ1YajaXHyEYLJ94e/qxgTPWKhQYwqrWXR7Aquu8j/LWK4lhZ+MmzHdD7h8fjBZdVmKa7HyViq4DpD83PazJhqhwK+ervCkz386Q2w3Cw2LoqeMofyu+/pzZkntM06xToth4TTNjXxXG9lP3S5YihKrxd/lI6qR5Jwmcq9eLkmsgn72BDzKc3gr909SuOeAquxran04aYGuwPEGn4x04h6iEDMhUZEWkU/SxA0Rq64l4Un7SD1jxP2GpAioykKMr6iGZpJvumqFYNkiYYh+kGazbdDvyzVDaAIqbiSTKkl0CBdAEbWi8vBkEKCAxVJhz2d71vh0ddyHFPvQQyroxHzw8o0KR1XvpA5I2MO078ZtVTk9sIXg5HMKYpWO1K7hfbpe2BoJNUc7GnHQW7Gx1f7SM4k/ex6Lj7mdcgc/GIXDhQV5uZ3re5UQJZINNUMigA3/au6P7B1FglxsFnZJAVBQQNG6HvvCE+MTkdIAH2IuTdAa8XHnnDdrjzuVsSEvKaAQqdCE+IDx9ejw9fXoUT5/Cb0fUj8fT0yfN/TPgA//Oj2+JEVIAFLhzjZcMz/TpM083oKEi5+LfBSkQm0igpjyHiQdh4hHJo/A4ePo0tIxYibz3yQnx7PQURg650tOWGBvkRR/m4VeyJzNifSRVYdA/ktLaCSjcHJJKu7P0sWDr9CEpAA0IuvhTd9fRUJHTCjYNfIBzSz2HhLzcDh1f9DqSkIDoTMOMDOKhcFHDFln3rycgt4B0yJXV8dALH4hiVHT3ZJryUmBHOKQqI7PwJbehrJ2EAEA4V9xM2KgWLVxElcm+0/hwtjKDIvBpk+wBGviW6cNAC7YrhAPL6JX6sbF/eXYmEv0qQHfbCf5fVuHGkSo+pbuua2Dyw8tof9SqNa8UQfl3zU1Pb/Id97xr5Ud86spUAuQZ3kUZIfuiwrS69oDUeAUA8l/RS1/BQ59MqPfK/WqKLXQ5YydUODrYqljfv9Eimp/Qm6ITLbylKLfHGperi1oFsGddhcELC3ZuNwoAwD7GKkpEVDonFCpT/6nuGTB2BneJnrnU/xTI1crANZCLKskVMnTzLgCApXQ5TbR1mQ82EZfWJSr3f+CPpYZb4gEAS5io8MeaC2YnVuEkmlZgUWtjC0u+aFek5DG9d6qg9pp4JoYBgVOiWqou9NYNOVOiADsT0SF07IRADUAn+mF1YZKziPq181uXgFGWbq5rWz0NX7KbTABQn4Gabk/FMUYtKgJxV7b7FXDpysGKe4FC6fAo9XuJ1XcZMz7OrE7GJtOgIsNbzLRaZauNmZ5VEFLDLKzVmk8WW9rs+jV0Gl6a3asSvudoQkxsvqMLXBbnz6o4VO1YnvDDXTxhx93DKACAFdkynea6SnI8wBmO287ly+XPXHP1F7mkgQtyiSQXN4y6//ECAMYosMT18ommKFwLo2ziDqoY3AMAVmlZ/aToZj9+UI0r86yYyQf2xgEciVcHHCmVhaTkvffwGFvwRf/2gSizrlkU4Tpo5hNXAJAETUBFYXTb1nOpkEQjh7XKbhuovVKZAJABmJTqQVGMYDa6jDxwdW5+OTNxFjYY78Rhl9Om23ycIm9IIeWdzv4AQgwpm6nz70f0t1I3zW5uG6vwQta+A4gXWlvTdgumYSPbSgEAFmlWN4FzwIRus/tsXhZYaaPawEi6SjKSavECAEZ2XpQAu4nLsb7JPQBgNypVJ0Xxj+g7xkkALT42t5IIrZ5esAr/BfcBm39TKqnn/9BcPpHs5N/Ls/Ov9gN+1Hf/q7pX/3vux3l51tU12aqqM1qhPGWoLIYxhtQoNJb4DpLE/7LGKnMojo7Q93N1Iq1KwfgHlfPcyczveWok0ikeXrM+8n+iz69OIQcAgCGd31JaGd3Ewf+uYfWppgstAMAauhUu16WAQVtiETOvdR1LXykSU0tfSxKp0V0VvVFQxr9Qt2UK0mR+w9GrPM7bJ3xD8N9aTq+e6vNry4STQkvOkYUUAKCKSatiQzdD5AedMPb/VtGvDjXmnrm+jLcIZgarBZn3HB/UGNWDAMKIKO8CAFmq4ETRMZeWgM4mEii4FA8AMKBH/rAAlDYZgE3GAkCklAh06XsEXEJghlBo9SZd7Q1owZ2J7QxEKiGgYYgadwVsjF+j37oEjIrERdc2PYJ5vZtMAKAvgGbaU+4EQ2sUAXe3ikwq4BIrWkXW5k+0w9raSggAbFX59Q5XQk1wnIVu6H62ya+5n9lw8X0Z3/DMs+HL+HI+Ag/CqqHlZKriQc7PYyjkBgAUeQi7ypT40usk1WOGdaCi/f1FbXvC08+ohWMYBQDQIspT752cpJKAap67apx75sq/3lk9ZrA6q8d8bskZVCds0VQQMI27AADSYAvURNssAy0nUq11ie4B7v/HksYt8QCAI0wrdLF2yzCf6onF8ZrObDcKayLEnt6wXXLD2lNSw4Inu37Nzj1oufIW1v/ZjAe9KlCswAs9fKkCxVxEr0yUTpsQqBnofCKsds0Jt4g6zkn481thlC7u2FbvYlSl3WQCgNAN1O72VExj1D5FIN5Se7kCLh1arbhnipwCZ9RQCADwqptyagOS4mz0NNOMGj1tmS2ipyMhZMDOlPloJ/3nzYaz41TvYkNLdc2LNrFvv2DgC1cOmc6qAikAgNYO7H9s1T72UpKLA96MBnV8t0ZHlTernrnUFSvn8Uw5nRKL+WTFBF8rxkTqLfACAAuo5RfVBW2VeM6sxEF131LcBfEAwGpBZj+ZQKEsYKPmFiqZFnyxuBayHs5aSSk02ERXbCQJNOuVOfYnu0MC5xmB5l0ZBj8shZudKB0tTgCtv0RKh0uItsupUszo8+o2crfH7i5qlAkAZdQJhromKHcwrq4jQrFn5Ijn8Ej9AxhnEwt08FBGdCHanwv0k1ofQLQhhYfu+ZEnmb/Wm5hyCZXKkYaoflrQy9LwpPjWzY1aKQBADKg/NrcDVcqgOWBCt+egESk6MAJyWqRbvADAIFUXVYY+X9Snn1gcYTMeABhEMyAEwDgH2I4LDE01WP1edyJ+saL+W6zG8xlpPBQYnUyNwweK79m9+mPdCw8nzL+vIb62q+dldorQi5smAICRodthNZgDDvg5z2VP1OSBNHD8QZzNHKJY9iYH81B2NyldqiXR8BXBh1DV8uB07avpov60mPhc7emplttVTyegPbrxelCODS1seDfKjQmtvPpY6D6CA4SAbOa3OuBLUb20eHGjzid6TMgtYXfUJwL115BDyFfNXotMxdcvAji9yf2lrDxzQprQRP35lRGvAHnbpMuW9/QHZGSCLTkAQEgRFyQ/vgOvLfOtYYLamtuC2cfwOs0sAICKQOsKXZTRfnk2QkEkU+dlmve0lCmFWJfpox+lrPRYfSi4dXON2sRfFo0IHUF0bMDrsFohaJFW6kh3KHMAxWXIxSXEK66gBRxK/eLXJM0+80GO8ZwvVgs2NcBAD/J5edGO0TrdLw2L06glm0Rso2UIh9/pZtE3eUqILRGDZJseRgsxoTeRQXR0NPUiQk9Qo4FC7ii9l5xDchR02dl5nRwxhxhLK3XiMAHZhJvyyEGMWYP1a29/bCk1LdnDtRsqGBsVW4Z1cFRN7N3u9LxYhaxUdnKyP3fr1TuA6vsM981gHUGpm1EAAMkHcqDSBzgUYm0IKJa4B1BHGOZrvzrVuAWMtdtpaRcl7nxF/VnRVovIzER+lEzyNQ0L6OuMJkmDbNJZGKKtYyAlPZHNbKsk7SBB8suSmdBsbI3Hl8Mtp8uvkD2vDtZYsVjB+WVtGOjUSiiOcI2SM55wuzMAnx3yqJK10rh7FwCQjbz8yJsLilK+cvithxHEEs1b3qgYE90QDwBYXlm+YgCHP8MFdCKG3Z8ZS816BBtD8TNjWbxAIsDQ/MzYbFfrmxbjWfnG7BpCEeMgEJjFElYlXsRWUkD1rdrELYzk0wPjwkjbXnimZP9ZQDVSWi/OEiPdxrYnR+6ehjIBYEF4hoKaI/lsBwRXE5ph9VvjUYKVJI/xoTSbCQEAl8vdCFhsifMWWCQysx6wrNHZ64AloSB2CkSzXWZZURjlJM4uAcud5Hk9DAO0+PPcvdup+hGeCZJ1lr8UwdWaFQtUlwnVcVNYU6plRm1JAQAoQKfD9MFaSe4roiGgSOhTwwiZ1ZsbUM4gELZ4AYAgqon2UYay6F2J64mXBDW5BwBshLcrpVD1kwr6CUo1Z8DLJECN14juWYDfCUa7Oz19Fq0nAhcY6Zy0i90H3UxnIhsLZVcRuCaH9lmJYnMFVk4xug7WdXTbXfSPDWUCgFuwK4JqNrkrsUETYGpGoQxrpDPNwd+dBNOEAMDeVlEWpXHrl9wEqzKbBfBZMWWvWTRFGIxPBtZ0ABN+JCvcm99mF7z/jLdPpJPljxn13Utba+4OUBQNN8JWCgBAZEm96XAUSETeXMA6g0CmxQsANCGHRXsH1k8MR7oZDwAINAEZlHEK0I6DaP6uAzbwAssC4PHpDrvYXcaevcZ54y4nduKb7CZE4KyqS6SIbU2kiDFGq5ql7TqjHm6UCQA06haGWiYob7CNVt4ZCm5tJn5G1ja+H5SF+kuxseA/sS97ZCvrS+H+KT0QINKVsn0HYEyhN9g8tJ2e/wf1FYlypfwvYY1178eVnkfDhaCVAgAAGVYvJBQIhN7cgnEGG3GLFwAosFXR0KwfYfzEBbU3HgAQQfGP6HGquWnQmwBabALyexDZ62ydPxcWo/+74c/F9vNuRtTawP98MuyvAzJ5ci98tTvmehNaRb7BzsDCF7anywqIMh+0LpgAABsmWx0bdmM223NwwgID5IJdwqranfnJQaulPkAxoVH356bqxMfd3Lcn+/INDWz32X+yB8T/p/zzoTovv5v78yNmdrRjjTfRFaw1zLRNS410RVipVoTrFNmmakmqsPuHuthVo77FqHkRMMEHVXCqdkK3rZVcAS6d13SXvpTTcqX1xYYo1724vYxOE0u2jFC8y6ryTW6VcbnSLFE8lHN8oPy+KjB8LdHbb9sH85xfd7emVNLhH5xecc1aBUwqa6WEtQfpphkFAHAVNNwwfXY3/aYQxyGgNOLx3zBRcc3F5TiCqUQFVQXZRVM+KI2dHdkJAAQ0hzSjiQIVFdSw1dFEjxPuapJySvEAwDZQ/J9jK0sWvGlzG0xF411hmDybacX7DgjS9y2IpMAdlB554RYKlifiAi3HBDpAqzGbTtB6zKgztLt0WzeovUKZAFCF1imh9nJFp+xgB929DMUPSlnoqxqz3EwIAFiCDm7jpi/QRjKT8gplGJuCzk4t2CAKIl0gN+wmO/C8lmn/tDVp3FS5fwrQGUnewMvwtlL/Xve+KdHGDysw1vLrOf9ztWTdTNMBtQyFqdq/LKO2pQAAFDScMH1211OhEEcKUKr5STz0qdkXJqs3R8JeLcg7Ol1TFwAQ2IrooM9OFrUrcREOFR3bm4gHANa37wlYucwje7/Zfk4zVxo/WWktPgBnm0XzO4DV9ZgFVmlRenIgAgu2uAiCo7vIW7+sgJC6EqmycNvpgKkB7lkRNn1wZmfhdPzW5cKGi3PCfezYNmPuNxrNZAKA+jCmT06d435zNgfOCHwrmJQK3CemaWUX8e1ZaJoQABjT/RNI4Tam0LOgzpRzPAm6zjbBVhAmwK45P1CuJ3yyDYY3lV1CdJPFfITjv624u/0TQ8NDyL4UAECHgNWH4FkgD2lvzggXBnkE7dUFAHwAXERAP1FgW/EAwO62fURYAmowtln0PjsWKH43aAMfQBIIrwnsYReZabX0CcErE8njtVvzXwKTG9Nk76jwkV6xS6n9hBmLLlrc3uFYsVkmABQoSy16hwiyFc5fg9thCGX62OlZORT28/bPcd5e27AvpXLAo1kp3QUFJvFAgOhWyvY9gfHOs0fBtU2ZRNmuiWylfLcTuBdaa+6vFZiGjWwrBQAI0pX6ZidhJKoBZ6yASMqbE4AzGIRNXQAgoKuivfe4CPATCWZvPAAwB4aACvG/nHMgZkx6H78LlIEbwPyXUtzym8CsXQHvy029e1R4Rrb9kdqxvqoQ+BAyEgBynMCxFyMrrem5G3ZKVHkIgcHEWf41M4myBj9PvRL+0WxGdFegt+cHk0RABNjzJ+y2/+R0gzBVn9UmYCrfvMfnUxa+fw5W78bkX1hWAgQtQ/INVc+emoXFV4fH91wMVrIoNWIwljcQfuLTkBL6vcA0C0Fbi7WmIYQ/iUC/ztNTzNXzGlVId7w1xiXZkgyuRbv0ouKWuzuRvQscqmPF0fpuVNWVEcGIxJ7sQtcylxrsBgSNH9+xH74yCFUsBLHZewMANAgy5v6mOxYXi0GLNagK8ucXtco2CwAwJkFc0st21m/+8bX2T4POsMykA0JWZMTwhyJiH8o/81lsqroi8NSAEXtknWxUb8JBEEqyaehkT+Mp5thIAgcExIJHLjWnaYIOrlNvzbltgQ5rUhQZncST3tTvnY2jLTfvwm3cLcFWAOgAB3s4N81u7opt82kh3f+9HuIbgHZJokb7BnrTQvavu5XVgKV1a0oKu6nSBQB6AOqPEtEcgbrKirzE2XVuScDWHgDAA99ESqkclWhWpirbjxaCdfNA01U2rBqblV102GsZOD8Ec7LmfXN+93GYGFpgC1BwoRdrCjmgcGsUWfAqGwUH79RG28G7tdF48GbuvH1wylvLBAAXdIZXdcM3VTtowNNIVYYbjNlzl0IAwHv2LPBxvNxgyRWM3bPIpHJgjGbMq2yabxIs+3yVDS8HwSQEBFZ5smkedNMF9Ao5LBiKvD1MLMHPY20Xt+clYk8Av8FcAeCywXkQzi/3H9bkBd7zqk/6nDXnU60zBn2iM6gLAAjVH0dE8w0TBvIJ3JVYMl4nwOQeAHCoUlgpldQlO9pZZYUU87DmwycxOnxglOyTmNpnADpQPmUUfPhgiaT1388OhJa8NL0lDITtJ4rBPcMEZHBvmI0M7oQZyWCU3G3xxgCbZQKAeMItUx2ecuMPDp3FKDsE3H53gicJAYBNXvqs2OJ6ZQiQiExmDx/UZ4Eq2x8CqSAq2rYE3FHmmsrDoXfJku/Qr6ATz+8YHIXpxK0A0KEgbnOuzaE/5+5GWTEFFtLe3AA6g4WoqQsAFCAXGdBPNEe2GQ8AACz1EIxtgt5nxwblPgyAes9/3QmkKF5eHAiGvDT1LgyExk8Ug9vLBGRwzzEbGdx7zEgG99ndJm+MVrNMABBPOG2qw1PO+YNDZzLKzsKzZ8Pxi8p8nd6baKZrP9FR90zsCgAdn2KanAOIwqfwcTiokaS1cWsTwf2R0aMIfCZ0BYAOmnGL883938P+IWgWyEPKmzOChUEegXt1AQAfABcJwE8UR6YZDwA0GOoBsG5u8g1FiBmL3uc+GLSBL6D5F/3oc3UjjzchWe7h/eZHn+62GLUb7NsQzrWNOnSrW3G/T/635ovMNsBhzOAH88pf+mFO/Goy6vvgrZeX97mJI56xHfkud81vhZRVGq3PdQB6uC922au8sIbNMx6YLOaLtkVUPEkgBfHmVOU3j3lbWkdv2r27b5BFyGxuzzzW0gciwoAehK5DTqCN43NeCAEzK+KM+GtNxjRurK3kz9MSD1ExBJ/Q2wegsTzTwgxTGfVcKmgrFQCB85sIRLBSnM/ife9CCrdzPZe+wjleYJ+FoLpNl/jlkdAVAZeIJRczk+DzjthWKBAhekFSsQjR3RUX2RT9Z8ip9SDexpYTwUeURj/ZihG5Ryn9vnBYmag4IvxP2zbQVxSO+GxAedsZKFaSN1Q4A3qNkqBRN8noNLaW6vbIWA8JSYbDz+7Fs+i+z9X2f4CeYKiBePqe0gDLXCgeq4skRZa8RxGr0uPG7ZElZZIeIjTKYrrrcJOhX+ap29RXzgsbjdi2q+yvKGgEEhXPNrV1NlkEVgctQgf22TfxveMpWjdSQfyIdBR23s3tD/tyDlV1TIY9duHLASGQZs4HTHP+wQJ/WE4+JcUy/4gVgDmZ0CIvsQBxQDflvPrNu6ioDtnP3wF0TuRBfxIw6enhhGMqylYtu0aSQHPcIVDOyqFGifxkRosyRohSHMImILamhwanNi9k9c6ADiLAgUSE0gI2VPEVmEROh6HzRwJipMytHajvsv9dgJiaYz7b3MKiMULbEvceoQnhAZnNiEnlYx5nMrgIf0qy3s/UGduIOZ9nsSlAPnVzWkgAKuS4jvcKstwFjsctAxn1LtUnCxxvOLhORDHLt0xfxGmkn0FKgwepm03r9r187iH203kAS8y+GkxeceEcoTgVxojwxIpH9SRhiKN0AlM2hjdGGcgqoW+I0D9WrC77dYxUl79R32GwUeccdET4sR69DCV8IuaGMusV7JhOW7AR2mL5L6Nm3ZAWjkVjjGWr0Jb4JHdU1d/8JjqUNiW3guS7gox+ywTMrhk7AeIC1YeL28+DOvVNW2uYTpm2amHEwlmK81gAJCeii6wna5AndRjHjtVJZQxI4kx2UPbbXphzWnPo8E10CDkLFQWnRpDWJbC2QWFlkGSyf7kAYksNr5xJcgwrGd740S5BY6XcSrY+lPVmGKl9rM9nXfqYLmP5ITfc0IMRid5PMO/Yxrejcthw+MMppMWzAofkI/lJOAEbWJIKMeNCiqFL7letR6VBVNaNQh96yw0QSodW1beCkywmz968x2/oe6mHCunYOd/wmwLoY/wde9sdxX4nltjXxHrJ2F+TfSr4mg4v3YSKKxr1P92xBc3gs0bN6sKZ0Jw+h+U/lRDNO1sd4Ye5gYIjaMU7MzG01sMUjY41wPupNvB1Ou939csmpJl1k8578hJJkSHDEbb7thEtfu4ys7vvoxZs+nwEoahN+SSe2dajlqhDIizbnCcEo7XwQL9H9hR9LrUhOZoKgzhC4EaS67s8WCPww6e22c0OzAhv2SHqzwFnj7Ymf5hnACH3FBy+TqgMLA/KtcD7ACC6dR4SMRaBRx2PG1ABw6JvPbt5oQXqdlmfwlbAimgHNJ2z0U4b2EPTijliuwOTgw4PbXEGlLE4DG1z0b5CGMbNXdH146HUkwQgDH1S6hy7hXofy+MWkuEzEujAjNE+bEi8EcM0OAY85y2835jhJSC3Sc8j+35XI3pQ0beQ/MgFZkBSQPL/4WIrU7jNMsIKSEIHsEEDQNGOhynoP2dedTj/ouH6c4Tjf29BCvfcxWjuusyB3oSijXLPIUqXb2evGOWDLfC+/WtA0gMCdnXQUMnBYOxV1vXWgiIWmo5msNR9zEBWY4Z2NU6srlRMcb2vUvO44xJ5LktTVIZ9licRDDTpOCSWQQUaZLyhBEon+i4UzLkwPjGlt0jxYt9oAi8XrB92KiaKLrPKJQLhlgt6yz1UHI8kj6VC2R6ubfSb1FobVSRWXHZ+LowbTrjLJilShb01hbndFHZZYa9IceC1Wd4VwSPvymPbCIIUuJaPEMRaju5LliklXZ9GraBlpw5e28nexGe273J9OC7yME8grZKl9lMxp4LSGPBTyZogB1CUeTPhAmrMfeu1KR3Nxyy4q4h6lDk4oepb1h43IaUi6pL0YFGZZ8fdOV/ByEY8xp3NvjMba79r/4RMZ4w6GPFKKZ8Xx9FVYc1/4wZmxhcmeSRswvChd7F/NmKi4NMspUyazI4lkVf4CopwM/NnmJEDdROaFcP8A5RBy97i1PFBCCKau0ZhkvSmA3MmGvKwm0FBwyr+P1h7tn9KaGA02aADgOq6qSAN+F2gdZatsFxjRWRDr8N6EPV4xNQVBH/CcGCXFRkNGQkNZhfmD/+GqngzgntvbnNpJsutgH91ALhEoDcM6iZK/NhaElDxMGyi9YoMXGU4MdYg79F92BnWn7ogbEXCrNW3K0D/SP7Ry+3fuK+Tj7+pr7zZ4+DWnQz8/w5P2LVDKm7D59e+opdzzFeYV13H0xfYfpBp/pKGDbafrZRhM8sXCz4ffKCQ0vtFSt2qyEVhzD3y4ewx0CEPD6k8/mYI1fQdDqkcfWsEqmEO96n2xqI5Ir5cd6AS/sS0CBQjPs7X1gUD/SDQwqHBviya76TwXDD1S6GAcmUvKSlizXyqWLnyrdQ9/as8nX/+WXmqI5SCn8LU9fCuyaICxMYJm7Uja4XwgUISps6NRJlwI0+WbQHOGMIqFr/iVc4dUvnrQzFa9y3OYxgTzvhwjF5922cAQAxPHg7F2Na3lIxxvgOEHJDCFy8Aj+vA6TwnOvx9g/dPBBizbTIfp2COj7AwMV+z390KfTxtub92dbtwmHZSW1x7dGrUsW2Rx1y0LT35VfF5EWzPQlEgly7JsyGaNyX5V8W9ptwpT4Rq0L5Sfx/492IPb1l0+dw8+chBzzxZvxxtdIxiXSkQq4LLW7AbL8CAk3OwYK9eYAFHPNwC+6wIHq/7aMFNXATXbXWw4NZcBNelOFzRApZ103+OKE3c2V+B9C4EfCpR4DqvcHB6p0oVuImVsL1qaw3GeAOrPRn4j5WeABg2MbqYEMzPhVh+9wiqU3JtoFjqzmgicfdoXaHdk/cIkDZylGZ5iqMqUMeKKHeLQOTCGGHJgoEucCMXV4rK1xEB6M+PWSjmk+6CVetaPRtsDsvCHziLCMlqFTrkqGoYfjMORYEA77WrMSGMTfGNrJ5ZSzi2bOZbxG9qOUubn3/psW0zFtRKjKcL4TaNvJgQJZrzRoIOaMwKNfYfr6JlcM+uC/cXKNGV12cbVvK2uTCATva/Q/WVN0iqfIKFoFP4p4AhIT86zZC420ls6vj2XZ2Gq6oMYDuzpbomYArLrqi0smaRrjJ60N0EpZK3dnyWNe5OtPbVa0CCUS7jesWWi08N0s58OIZd4hVfOQbG+k2aKwZxoJX6wG3Yx4bZBRXE5JlzTn5D2VeaASlvvidNg/wW9cR5LOsNveEtoqylPbmIBAIXcNHnDKWitYCjb/brpklni/wOOw690ZXZZooZCMjwPBLPSvHaVHmK/NS8QPSxQ2UWf74d0Vrq1Hb74J3wLe3jCcPaqFs4w6R4+dfz5hjsV4/v7FWaHeSAsfxmwCDWaKvan8MFUKasz0JIWRF/LW8rT6LuZ0XgtdDVhqKrYVU5mF2zkw+yzTr5IDmtJ8/nvJ485cSe3O7MRuOWEfvZjDjOCjoLtR169Bpc/ZPpXP6Tcdf/5HwMYPLqxwImN48JEBiCFPD8M1tzdHJAmDJUAvqHMMUVW2SzvBE1U1Ji0ZhIboXjJNgJuY+3cVx192xXUeBJKokJtRhP2O8cgoNtae0f2bzruAdaKAFBqAktWzjGsbMAyrZchL+G42tZUYtFaSO+ubMfOmF8jjMix7bjg+EEyusS9fiZEW/lvrYkbvqWpTMZlQOh1axSTJNLc71eWMrH1FmNyV5x0yMgUFoMZVLcsqs5kVvMpLWQLuMQNplkrHVhqKN2seFcZEhMKfQDeySZ4D4YrYBJoXjVoNLRjrFGc9JWxvZQk+J3F+y/Ko8NyKNjIjhWc5pZ4In92OLvmWlnw5JOMGWgXvLOS/zGJZNDW62vuQQlxZoaJAtuttSOhSXWHN0C3F/RXXKnO2UXxhA1HEm0acxNVmy84uBcSN4ZeJYL+IYt7Nd3Gs9BO7f/N6FNLWFXslHMKTEjR+rL4OFR0Fa55cZuU3rDxHTJS4auZKOQPyXN+uUiEvSlJUmC1BK59uc/+CSITEsyEpaWbC/SW7LkLD4Zk4KJI2NaM5zuBJBWPRe6AES5udHWJmVPLZeMpOvJSPq2SwOKczAoE6YlFETMZI1b0zSSFJHOtIRoS0vGZnEpkmfVJJOFlpAdlI0UtMRIA1oip4CMOU2S8e3ldNqx0m1KNRUZU0nFprnI88lWpYqKdCqoOInisT6fUzLxJi1XtIkNyZYYz5aUTSGYb2meL8zum+7BrfWta6pCDdLJooEYwCcRUeACp6FQ3ll2+aqrc5Fh8+UoLr4GLpBfNvzuup1dYknxNUybnmTPnf9AE6SrKhK+Yq/UlvwlaGhuTOIS+RK1xDofGUter/Mk+R/+dD7Egx+ZwCNNrIaQ2IszU/PNac4DkqacKJEEJCgKXbElXnSHgJIQsMVF/yykL4nILR46BksewwuG7PnDm6X7I20KnBY8oqnPhSlYPAlANX2RxcDGHI4XJRphXp9vm3LAb3zLbqjxH3lefJad70n4Iel5S/ng1QWnwELBa+MRbnwAQmWA123P55QQ3LlcZ2Zoyvqu2yzjyxxl3U/Xz8k8P/kSqCgSDX6Tt5EX4JYA6aPxbGs8HMG0LvaKNEsd7DazE3Krl0mtKOX9Go4ojp+oFELXRi+ORdMvtz+HZk1Mr/A0U/phmpISVIgMyQ84yYlAj1KCwzxjKgJewN2wQd5Si9NopUu3rkff1vzNmDb/ZtNXGP3Nbs7zI8pP11b2Map2/9+8j09xPreTvn7s5x1f+0rqPuCR6wsasRRC34W8hmwTl2FVFa1KpTw7Ix4Zv6mty4YYY/9US/flTAIIXhX5vosAuF0UwiGdfoCKnYMbxpL8EmohEKD04ChriX55iQSohJoYJKHaaNWnuPJqVA5CMvx4/lCkPAoqxUKGyqpFTu8E4HpvN9GazQ9Kn1ye1zv8vfdax751aLxwzzqtYYJwrrKoReFXhFaXOJ7Aa2yVJZqpz5RyKFouD0crUTMWKFX6oddMqXXsF3wai0Asj9yyyoMrl+KHO9wqPqxRM48TgAqUUUAeZjJ+Lrdhk8k0cirlULQuHo7WC11v4zbqD2EaKrKTcAOsJmYyO86MyCQIVaa4Gk0lGy8gRQ83MuUtIbuKZWY0+DKxQ0MQqkNxQ4nddHLnYGrO0hOMDpFKXjMfagDkZTDIDCwQymeI4tOxYRi4JKtQWVUZit4J4IMLQDWKkdlxXIKBgBHJv5EbgtFMMqVajb5+73Q7KgeDvx1mJsBcGUxeMx8YAJhhoySJ4zYGfMW2JZOZajU04HJmP/xhsH6IXkw1lwi89BOUz2W8/TBBogBHrZcXGiPeWT6KmBTiB+N4yttI4EPRlifX6TRWnTX+Wa09k0w+1R5ofyZxNIolY4hXtM4nbTUluA+Kscb5yzp9KpkHlFdOCjK7yuRXmTwMUHF2knzyqVx5uRGCRDIyLeQOSqLcm2Rbzab5NVABVYNqqJMVMYAG19AnI6h+NRoORgY1G0oKkpV3jyQ73GKv1F93CCnVjVGGsDGT8HuUT3jvGfjrpdh+mk/JXZ101unValAt5Z/F8t3G6zdtNciEP8hj3cL+ZtlQJuRaa36rUEdN//8OTGSvZ0O9le1Yg24ipJObxgBDgyW7gqZ7fAc7gKp52stJtUMGJlaoHlYZ4c6Yvn7lIpyjjr2k1PICuyrkYWeEO+GNW/zp2LKXlErIoBqCOC2Tw+irOwTUjmGPGkpKtUG55GGSiQnKyi4/3Js3Q0u3d8W9bGmpdpxVZSxykhEZV5oBNoaDQPtp4HmC6cZ8/t98gg1zy/iTi04rDTNN+gtB1vl9zUN7BghDsFcTrlKwyQ8ND4NhtHA/Us7AGvppgGA43TQ3DpiXA/kkGU+ElrbVEOYlDeixsdey4I0nj9JHTPAH2+XVFvan35vvEtghPXPwvvmSTBngYPLKC+eLDfdFgMHC5Uk2q011islPVpwZymkQlcSZ2NlxsoFiR0w4GVc/o/LsyjpYrj1Y22PokmsLNqtPfuXlJ6uNaPDVSyJDJXEoN1n9yrMrz4wbNFbIpLjs7OpWv3JQGYNvYJUnsyPZlCezs5PZ1c+uIM5OZkesCFcS4QTloaIQyma6xvf8K8nJS+w5abmh8uqVn1Eh+aGk8iqXH0Kiwg67VvoT4Lq9lG+c7buMjMuNhkba6buUb6zNL+5EyZ8hvkXzzQrun7Gq5RBB8Z0f9kzix3mOi922+hECne9ZCkiEQONk4trUC+h185r8MNDn2ZzdQfs2UU6nbE6Pt5Fjdv36/QV/+vftqGutm9bTxRsvHyWINnA7TtkV0T8aRDe7brjNv+A1i/mEMqpF0geUo4Swz5MLuR42v8IPMWDQ+QmVFNWo/SoV/CG1guhBBBAtSAKCQZQHkbFnNLQSK0+rFgXSa8g6uipLZnVgg5jpTPEPaDJZWhFLh3Vs1z59774ExhYJ9p9zormTWLh39dlZPh7QhE6yu8LtYNfY9xMvMKBapuOXS+Q2jafu63x6UK7oc7zdGVSG4X5xYP3CcDubkxHJhqMmgEwIGbnK2OiojWmU+8sr2Jw8XLA3SoFlNjkCSQAJh5I6DY+IzDTq/OUT9E4QO4PvfESGFkhBEAOyz18opU2zar/cEtteSHxuuQAnmyJxKvoiy0vmZHckL6Iaulww2yQ9Ep4kSD6QUiCVIIeb3TuZ1T4pOijzmyiTPkqdldKTDY8agOChJ+cekyzmSsfgsBFYLEt98lcOTAYat2vw3dPDs1EedW5XP+E3B6BLO33VsieAxVD10C5knrIUuuARALDQcsR3BXAGzlH7RTk0b9j64dRdd4lPbEXYzai3++a6RhZC/Q7P2KUdQvYIb1eYVwfmu/Qjd/wAZwo0hLRezZo9GWToiPov2t/dJ20GM+1lkx062WGgh+05OCxIjfOCMxJLLgt7v38GALBYzWEpF4QuaVW4jvYwt+II4Pd4Luq7f+T8vXvxu0sWdMveH+wzdPnctk3VYzo2pBlj/aXEtlxLOGF7pHtMLRAk7Ayvju8aS1kKl+V2yKsqir8jz1v2DikyHdlNtx3vbFLUc8Q9LcFcncqaQ5NwO+DrCoF4SncvhQ/eonLNAMTU0Fd9WFixEg0A0B3sSeutc32ASPK6KC54FBc/laUIXbC2mbaf0kpQ5Dfk7076FkGnMMCpX0BTSOZ4DEO9Yxqv614y+AiGq8uYuW6zTdDjoM2wEZomasqRGvNVgfa1+PxKWIl1c7oDxxRav1p0y29TSDJO3VXhXn7bgomZqlggIGDiDO6Im8PjRvAp4zaWllzdskoi4DozRtDnXK69c+Kjv3RychT8fS8wTdI16HocLTCuKcHRyQWpZ7HtywvfWLcZm1uAvoEfzqlWpgENZelmRQwuBe1FazBOJoswdiFaYJfceMmT8ESzwVF5ty22/A0wXsRLeRzmfdckPONB4HmxmWdmO6W4c/BG+MRpl8CN7lHuZn1VC02Mfadf6ACLanSCiTsFoWwpMTm3D38pXixyUIyI2XFp1IHorJOTSCbUaxFKucCU6Fe6ynj2xZrZrFEirTZCYXznZahuZO+KLb3IacD82sGg9AHcBuobMNoRvj04BpZxzoAvl9i4M7kc/dgucAza9kHDS621+mjWo5PSmBQSiGhD532Rtpnj66WHItw54MlCJ4NZOsVqUk7zo6Qoozr4MDIcB+fYpRTOiykLIG0jXHBCBNpI9msWgjapuQJ8OEiZ4BOFaghH5bpi7p7q0Y4PrZMYvE5NKisP8HqhLOgUi/w9Dy4z0CLPfu6ab5saFxSICevy5yJeWJ7lmENvs2tkSB4xT63ND7BZ2bGbhmh9KjfPlpiBWTuhQA/MxW/bl8TFz60lv070gZG63WihKMAIlABC38XQOdXXs8Hyk3mmsKpTJqSRgQaOaEdl3mHnlwWzCWILR9TS9nG2jelzs328a1v6bLZP3W1en4ftm97WrW+X7RuiNe3bU37xKYYJPqW4/7F3d7PFviItApSdXrX3qUar+/oaIXzRx/h7cWL3MVxoxIVYhw3hrzDdTxL1vuH/7eZ7S6rxHpL05ZQUTt30/jroRbkgD87XSnSBBrdJDruEFi/G/xaU4hwC53VFKgZnJugsNbpkBxoAwIoUhE9Nkql64/yERqXgdrfVm2JCdObN7cJkq4M9pVNMrrp2Utswc5e6TFJFT4FQo0HE1AfVQphtYyCZhXDXtkA6FmJ3mwe5WMi9rRu0xUImWlNo4UreFXfBK39ddebVKg+rFOu3sD0/nc28/Rgcg5FLVD6FOt5SNPdzCt3gBqcaM6aH1k137pU8Qzc647P9/f+AaMT9Et9N/pz+56UfAA9E0I+hbfofo3mdu68turPOfJ+8yfZE819JdxZl10CZqmvtu90pdGfWDw/hMc19eH8Gt6v7h5GoW/rLVwPAulNT+5PlfcGitEykaiIAwe4mmMuAwu6EAABOAXRKD7EGEGDyT2WBe2o7VGnGvpaL7DEeWpAPhLE20Z1woWvU/jV3obHT1rePhtPeL2R+vncH3/Kh9+nxdcY5h3UdZOOL4zuQBl/REW3us6Aq2NVLRgjiRjZwKWTEFJ8YHA5lV32c1oyv9/nsj/N0/Mp1xXHS6+tUHWAojM4+AmW5qw0AqFv7Trc+M/j9xsrGvFiRHgj89KPAPIxuQEz18YLoT39OrmZFqA/GYWteubirc9d0HQ1zzvSKKswul3qUVV4mhFSvUmRKy0wrVyPCBbeRUoXtJNUpJAslYldenXKSlVdA1fSMvDxBxKoE4vLSCsiieoWVQEj5666zf3e+VK0b3LKEEO8oX32dQ3vzul/Hi15XWxX9BQyOmg2yGg1lw5jeiKW8NelAYynxVNwszaW13ETlz/CnAL7YEa67Vt9IADylI3AEkN3WYFwAZdsWTAaguzYPc2GwZbG7EoNFSe3BwGp+2ATQ9i8Plvsi4pEIFq/8dUAUv1oHsXUr/PP195FclC03WUXKy0aPlKfl1eYwYupPALKWLOOTgz/JpvsFdKSJ9uPA5NBfW8uA5Hzqt59JSlFLANY6+2MddDf056Me+lE2WvgcgqDvf1OS9FxhBsiNLjmlHhrQ6sSdelTvJW5xd0cA4J7gdvRex7hnj0d9gvgE/RWebNEdBEvNorszwHQN/F9W8n99j2WpNJP4vUfen28KWYGlW44z3eCU+Ije/xyd7DBxINUf3yf+6ro+2qeP40uVc8nfhXimWydVctVXiU7TIhEKuqs2nzigK3RVCDWGpZQ/qPPbu6qvyDvGehcf1lyCBBFAn+LICKE7UIbLBPokj8rtq8JgxQAx38kFN7PgLncEAFupemq811kWku/iyYtwgPet8n7H+OXNlWXV2hEcy9m6x1kw1zeDywEcHMPmOY632mO7OHW2QAMAcBIHN7hGMG4SHBBMLuiBbxnWz4Zhu7NrJrmnM+RjyoL6fEkttsW6jHbLPtU1BVFqybPsll72uT4IjspMPpoC044GePovsLG7vXotK7Jt0B8eDc8wTftTb7wRf8j2lEpyNsFXKUbJWUoDVnunbGDC5/gDS6AN8XnOl5ciH+bK860YcN0Dql3M83IGqtFhSs7M7EvOHgtrw3Kx6f+VNvsI67pVRDu2FxJjlc327X2euJR9259/XsobWfc+wrx+8O9kpqJlP3Gf787K/p1+XcjV2B/guswtfGysb3ZBVcW5zLwnXMND5dOhavFq5h+FAubVsuMb+Oedjkpzkyw1IqtUsrcN58YD8xNQNGx8Qyc9TZZ55yfTMiXwylLY5DhilABc6ppMllo96KSZNEmVLiU9v8kEQUm6eW9yE36GKl6IJ6uX9icP/IBoTza8rH8zyM/VOf3se5K6cLLxqvnLmz9p9Scg41nFtN0//8sZqDftfS8CdyebTuYXP+SlzyuAaevH63xyR4DTPzYGZYiTnG/pMFbfrpL2bl1Amb8Hy6Jkk0vFNrDW91jNDzuUalFISfW1ZYuK4WvT1e1z1u21PKwuqK1QV2Z40BI1EzWmTHMKieoisi2C0xmoYKHTc3YdsDw7wQAAttEyE4lsr0TtjAVaFmZ+6sNGS4Zw2faaijk4npdamBtG2NNSzIXRnfTAdjZ5WU6e83arkBzxLkTmfDglcbkzSk+b56r1XRcaGEt1jKbcxSTWoF0v/RrOr4RLd0WOo8uoqe6bv1B9dcRpEH2xi4mzbdXq3IXKnPSQEUFBp4Su2GI1b6FgHk58z57bGR2wfTjpVymPzWGxYME5EdeQmS4L74K0NtiNKhsHzLr9wyWAZNt6omQYBoeuB/Zu2MbcPR0UzzQDyt6OuqVJRGKu8/hLOcvq6SW75X7AzCo5r6PwY5cS165fPFZ2LH+c2qv76oG9vfrHFZ0AUmCEJZZ9Y5TXMwMmcN5DLZ71jssOG9qZ81DZQf13wbiqhE93qHF1UGc61ELZj/OkAX1+T4holzSu2jKloRbKcsbRwHps51B6o383h2J3UbvU5moZZN0V4xqCC7wnoRt7Ifs7jZJOSFjb6ITWhs1Ft2pd2Et0mTaPHfsu+zrYfgt5vWy7wV5YHbyOD89GT0/Pon5vJOoFUM1WXtc6Pqp/z/bKRFAP8zd0b8/UurqP+umlkXpUIxcvIxI6G6n3XL97Dkmp6d9Vso53ErwjFXS7cIU5rRw0zOGiedzHnNLH1C0DdNvphAUYuKdDCTu2Ini+hgEzSfZwXMCapyEWwqZ6+ByYEq+Gd+/D3z9/NwZ6KgGGuBbb2RMGWDpxEal+d++ff2gZWO9ph+W4HdMBsve0ovg8UQ6vBZrqE1dXNNNlKbCw3eOWVjjNxAqoBwcMzr4fa1rpQL9+AsARQLf52Aiha1ANlimaDdlDwnmo9tHuzjxxKFahIwDYg0DwuWF24AjaL1Of+a7YHm3tcKF+SJ6pcVTL2dGkH43YVByJK55iXZOer1GwVu8EAwDWw+FsfRi7e+0VNqxEX4MdvbjxhaIXftgswOP1F+QPwkdfQb/KRHDEd1X/980fsys8meHcV/jag0yV5tvTpPVOy87rhZvScRX30JRlZxQ8nVBwWi8Oz81a5Tq5UXcySFYmhdJRrFeLWtJwkBE5ET3JslWM3b16p8iOeSyKZVcKRK5YFCeOwLiTyyhVCYstl1Fqfqw9O/KF7PvHM5Nl6wgXi3bx6/N/n7p9dvGlP069fIB99P+qImW7z/pKuQurVGpGv/QGgAt7dE9Fda4Ofobng1I7u5IPRy/vjeHt8Dqj9u4ayveEt7Sx5EtmbgcAADx6Q+FprN6OEmwVJipkPsqCzfPtPMjh7t0OBgCg45Day6z5or2cTu+s4o7Qy0bzmmBScHwdJUjJ0R1gsIbaZSQwjBTEosBsS4xdK9nCJZhaabHpEsypdMF2N39m7NlUx+swdpjEelOu1i7v9V1zJmoJW1X6M+1ESe0dXOO6m44ic63sRggAjhk4VqWHZ4fxlFR/JjC9PvFHA4faQrfXVgSzkALb47Ab3Uyie/AAXWn/GDRwm229imWY6CcyH/T9kIGqw07vybPLOSztph4eLbcBBwBYVQanaWGuetznpIRXCEYhrE4bnCvR7pL0461mAEBWFoz2lT3pRYosiPt2Ov9cCL5WDL2r0FHxmAZkyX+kHRS51Z+iGKpPj0ydnIq3mZXT7V22GRr7kS5mZv19Xz9ePx7ex0XkOK/jIZgvpY6OlK9LBZ8NKvUJI5hwJHTQWdOADzfwqeUiZ5DblIfVvcmHtKxKPU9lsQRR6YEMzl1f/M9f1fVw/dfmPIyV7Gqlks70N4p/vLkdS/3/xWDLEGkiEJlFmR9zrzTagESuCC5IIOI1EqnML/BU6LYxkchMIUfP8MPc4T9Wg9fKG0g5nGa6J+g0GpjA9ORbbAOSdarksBhaPO5EchgvbEqMPMLmyb3nYEh1VcwwJpvhV/O2renBw1Nu/L/mAfUTPI8Arm8AtEJoClSDZYq+htdTe0EHzufU7N+jL48lUUzZJADIwpV89MF6GLq0XxfCXXoO/zE7Bcnvcwvd916rWe2+ZzPz5qBBmhtbI0s3bC8KAwAOUix2mPvgv31b7w4+F/Nivtl5/fzXq6/Km32AvbXXWaNZ1y3N3maJ5znIcqHgCe1seJ6e5zYOp7AdDADIZLzFLjhflcjM4paECeGMrZ3dDUwn9XmLAOOJY2PPHIVmp24neD5FZzcpCAqAPlUbg7qCvkXbgsZAX5wuoHkM+pjqgFoGqEuXwTnDjYYpf3g/8FM9hvi0tFFiepHviRTdmpG4KwAAcCF6ZEcoxDklKBJNUzFPBnFXoWuM1WgIAwBcQdvlr8Ltwu8yOkW6kMAFPAhO8TzxMIkIu7sRjdiOSbhypS4HNkx0GmSLWzbgKeYaEZmtmxuBPCdx2SbMedOFbSVme6x2lp4WzmY7rWOX62qAGSVLyATYmVCKnLmBdrq0rpQBpnN9k9r2ZPa56L9V96p6tGNJuzRdMy9NP81S6Qdn8jnnivZ+I81Oo+NKH2on2JnW/XuYf4EI6Ea/fDGQ/HOjR7UHcT6rwH+ct4l/JBP91G9/6S7U1TVMBkWQOHD0Y9JnKB0h7h/J7LlYOhOhIK7Wg3arYldSzGXsdiGO0mUnsHfaPycH3nRbP3XxiC6kRxv2A3t+Y6Bfj8gzS8/j6TzoqhpwAICrxof2Lwg+ICjEybRhtQ0NIMxmT8bAvOGtZgAArW/X9kwMbpKMuRtuuKcS+2ODcV8i6IzA6ERjVIO4uBd5ClaA7O904KpRJO7bh7mxa9oaY4Td1baYVeBupQtm88aYgDqyMe8FcpM62Bb24B7jyA3WIUkQuwls9GmFLTJsRfX0Fu7ZY2rn2CmCrhSClcykD82q1k4+7tIUhZcTAACmfD3EgjP5XHlFf9+oY6d0cqUcdziKgnbKe87xMFauVzEw6zvG9Llig9ClNbDhXXncYhuY41OlZwx2+hTrBOboyjA89SIQXnuf+s4y9RoUo53gFeV+lzjcaEVmjTK10y7GcorQe+d3jVhe/QTPI4DrDAAuC3IcYA0WF+0C60GqnlR9dQ4NmGzUELx/+wgApoZ2nXzcwGkYzmm/6oLm+mZ5fGIa/LOzefF60GsxO3GUtU/2zHo3Am5EDiq0zQ30/fqxgcOr3NFgszIpg8voxStOwrJ5yXACPDjt8fGfk0cPnpIrLXhu1jqDtjeytCh82LXOjo+9w6d6Oia3bTp8gQ5L9loLcuo2z2dndDUik+oMrrI6KT25wC9EUPS3Ks8FYd8d8IUf/7U+cVmx5eyW1tf6cpj74rkz+Ddaz6N5kP75n/9hc7HfbPiLf6l/UItdU5dely4VofHZaiNupw/hV2eyQm+neAVsTU02Yo7SX6zceX4TKDtBCGr6EDK6RQYYjLa4gGWCHkQxsEfOrWDHSA5GMcMy3LzNeh/6+OMTa2b9ZlYewjO7/NliN4/IrrYCAABHrIbf2cGCA8FcEzij3ptTzCsgGeG5tWapjOhn7w4GACQjeomCv2ZjV3Mz5wmLdKjhQmz3QxHu1ugZ6avr2H0ysXZnGg6u8OVU30KzNRWEQKv2A7ZBkVk2bNvishRsz2qGpfM6brjj8TpeUOug7OglVm5BVadSnEZYSNxoBLm0zQEBwMR4ivow05DKpv2hG8+0sJyCNSsWa2N3y/HeYVlKdyWYarZ/Qwwz6Ei9acPeCh/h6OP/cg/E13pOalp4zsu6jYuoc153xQEArDcRGDJ6qY8lXbdxOmwY0IEMKespyo5hdhYTaTIDAMTCg3z46yvz8bY47I8rUopyaFzy5li2jqITg5fav2uM3XotzVeuTZbyyW5rY2Ik9z1peHg6sp9ajKYiURFjR2y0jVkRF9diohSD++RG1NFi5ZZ08OpQ6BNmSst0s3QQRSzMsWU0eC4bPbftFmV2mOgFNLxVsaiD5dvX9BEA3ARlHTx2T6FCnrrj5TRMSE6OMdNgzLsoyuygDTEVLoro7tqpYRVKuTVK16Lo2vu0G+0hWnF1m4bRiaby9E+r8M4XqK4gNF+Iw/CFBHBFByALIQfUg2Wa3qbsoeBmsKKgnY1SAfXXjwDgQrjyHuduoQPrXiFmIcz3SL53vpTeNw/rxFQPcWV6n6+L7jloOs2NEJefu4RMDiwWgwEAl5e4aoatT2oVPxE=","base64")).toString()),yM}var Zae=new Map([[P.makeIdent(null,"fsevents").identHash,zae],[P.makeIdent(null,"resolve").identHash,Vae],[P.makeIdent(null,"typescript").identHash,Xae]]),f4e={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of mM)e(P.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=P.parseIdent(e.slice(t.length)),n=(s=Zae.get(i.identHash))==null?void 0:s();return typeof n<"u"?n:null},reduceDependency:async(r,e,t,i)=>typeof Zae.get(r.identHash)>"u"?r:P.makeDescriptor(r,P.makeRange({protocol:"patch:",source:P.stringifyDescriptor(r),selector:`~builtin`,params:null}))}},h4e=f4e;var BM={};ut(BM,{default:()=>d4e});var tp=class extends De{constructor(){super(...arguments);this.pkg=z.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let i=P.parseDescriptor(this.command),n;i.scope?n=P.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith("@")?n=P.makeIdent(i.name.substring(1),"create"):n=P.makeIdent(null,`create-${i.name}`);let s=P.stringifyIdent(n);return i.range!=="unknown"&&(s+=`@${i.range}`),this.cli.run(["dlx",...t,s,...this.args])}};tp.paths=[["create"]];var Ku=class extends De{constructor(){super(...arguments);this.packages=z.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){return ye.telemetry=null,await O.mktempPromise(async t=>{var C;let i=x.join(t,`dlx-${process.pid}`);await O.mkdirPromise(i),await O.writeFilePromise(x.join(i,"package.json"),`{} `),await O.writeFilePromise(x.join(i,"yarn.lock"),"");let n=x.join(i,".yarnrc.yml"),s=await ye.findProjectCwd(this.context.cwd,xt.lockfile),o=!(await ye.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),a=s!==null?x.join(s,".yarnrc.yml"):null;a!==null&&O.existsSync(a)?(await O.copyFilePromise(a,n),await ye.updateConfiguration(i,y=>{let B={...y,enableGlobalCache:o,enableTelemetry:!1};return Array.isArray(y.plugins)&&(B.plugins=y.plugins.map(v=>{let D=typeof v=="string"?v:v.path,T=K.isAbsolute(D)?D:K.resolve(K.fromPortablePath(s),D);return typeof v=="string"?T:{path:T,spec:v.spec}})),B})):await O.writeFilePromise(n,`enableGlobalCache: ${o} enableTelemetry: false `);let l=(C=this.packages)!=null?C:[this.command],c=P.parseDescriptor(this.command).name,u=await this.cli.run(["add","--",...l],{cwd:i,quiet:this.quiet});if(u!==0)return u;this.quiet||this.context.stdout.write(` -`);let g=await ye.find(i,this.context.plugins),{project:f,workspace:h}=await je.find(g,i);if(h===null)throw new ct(f.cwd,i);await f.restoreInstallState();let p=await Wt.getWorkspaceAccessibleBinaries(h);return p.has(c)===!1&&p.size===1&&typeof this.packages>"u"&&(c=Array.from(p)[0][0]),await Wt.executeWorkspaceAccessibleBinary(h,c,this.args,{packageAccessibleBinaries:p,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Ku.paths=[["dlx"]],Ku.usage=ve.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var f4e={commands:[tp,Ku]},h4e=f4e;var QM={};ut(QM,{default:()=>C4e,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,qr="file:";var Zm={};ut(Zm,{makeArchiveFromLocator:()=>Kb,makeBufferFromLocator:()=>bM,makeLocator:()=>BM,makeSpec:()=>Xae,parseSpec:()=>wM});function wM(r){let{params:e,selector:t}=P.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?P.parseLocator(e.locator):null,path:i}}function Xae({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:P.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return P.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function BM(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return P.makeLocator(r,Xae({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function Kb(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=P.parseFileStyleRange(r.reference,{protocol:e}),o=x.isAbsolute(s)?{packageFs:new qt(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=x.join(a.prefixPath,s);return await Ie.releaseAfterUseAsync(async()=>await mi.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:P.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function bM(r,{protocol:e,fetchOptions:t}){return(await Kb(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var Ub=class{supports(e,t){return!!e.reference.startsWith(qr)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:qr});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return Kb(e,{protocol:qr,fetchOptions:t})}};var p4e=2,Hb=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(qr)}supportsLocator(e,t){return!!e.reference.startsWith(qr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=P.makeDescriptor(e,`${qr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=wM(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await bM(P.makeLocator(e,P.makeRange({protocol:qr,source:n,selector:n,params:{locator:P.stringifyLocator(s)}})),{protocol:qr,fetchOptions:i.fetchOptions}),a=li.makeHash(`${p4e}`,o).slice(0,6);return[BM(e,{parentLocator:s,path:n,folderHash:a,protocol:qr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ie.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var Gb=class{supports(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(qr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:qr}),s=x.isAbsolute(n)?{packageFs:new qt(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.join(o.prefixPath,n),c=await a.readFilePromise(l);return await Ie.releaseAfterUseAsync(async()=>await mi.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var Yb=class{supportsDescriptor(e,t){return Xm.test(e.range)?!!(e.range.startsWith(qr)||rp.test(e.range)):!1}supportsLocator(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(qr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=P.makeDescriptor(e,`${qr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range;return n.startsWith(qr)&&(n=n.slice(qr.length)),[P.makeLocator(e,`${qr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ie.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var d4e={fetchers:[Gb,Ub],resolvers:[Yb,Hb]},C4e=d4e;var SM={};ut(SM,{default:()=>y4e});var Zae=Pe(J("querystring")),_ae=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function $ae(r){return r?_ae.some(e=>!!r.match(e)):!1}function eAe(r){let e;for(let a of _ae)if(e=r.match(a),e)break;if(!e)throw new Error(m4e(r));let[,t,i,n,s="master"]=e,{commit:o}=Zae.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function m4e(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var jb=class{supports(e,t){return!!$ae(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Xt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await O.mktempPromise(async n=>{let s=new qt(n);await mi.extractArchiveTo(i,s,{stripComponents:1});let o=lA.splitRepoUrl(e.reference),a=x.join(n,"package.tgz");await Wt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await O.readFilePromise(a);return await mi.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=eAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var I4e={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new jb;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},y4e=I4e;var vM={};ut(vM,{default:()=>B4e});var _m=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,$m=/^https?:/;var qb=class{supports(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Xt.get(e.reference,{configuration:t.project.configuration});return await mi.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var Jb=class{supportsDescriptor(e,t){return _m.test(e.range)?!!$m.test(e.range):!1}supportsLocator(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[P.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ie.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var w4e={fetchers:[qb],resolvers:[Jb]},B4e=w4e;var kM={};ut(kM,{default:()=>b8e});var vAe=Pe(SAe()),DM=J("util"),Uu=class extends De{constructor(){super(...arguments);this.private=z.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=z.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=z.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=z.Boolean("-2",!1,{hidden:!0});this.yes=z.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=z.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new Qe("Cannot use the --install flag from within a project subdirectory");O.existsSync(this.context.cwd)||await O.mkdirPromise(this.context.cwd,{recursive:!0});let n=x.join(this.context.cwd,t.get("lockfileFilename"));O.existsSync(n)||await O.writeFilePromise(n,"");let s=await this.cli.run(["set","version",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.yes&&o.push("-y"),await O.mktempPromise(async a=>{let{code:l}=await Cr.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Wt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await je.find(t,this.context.cwd)).project}catch{i=null}O.existsSync(this.context.cwd)||await O.mkdirPromise(this.context.cwd,{recursive:!0});let n=await ot.tryFind(this.context.cwd)||new ot,s=Object.fromEntries(t.get("initFields").entries());n.load(s),n.name=(c=n.name)!=null?c:P.makeIdent(t.get("initScope"),x.basename(this.context.cwd)),n.packageManager=Tr&&Ie.isTaggedYarnVersion(Tr)?`yarn@${Tr}`:null,typeof n.raw.private>"u"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await O.mkdirPromise(x.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let o={};n.exportTo(o),DM.inspect.styles.name="cyan",this.context.stdout.write(`${(0,DM.inspect)(o,{depth:1/0,colors:!0,compact:!1})} +`);let g=await ye.find(i,this.context.plugins),{project:f,workspace:h}=await je.find(g,i);if(h===null)throw new ct(f.cwd,i);await f.restoreInstallState();let p=await Wt.getWorkspaceAccessibleBinaries(h);return p.has(c)===!1&&p.size===1&&typeof this.packages>"u"&&(c=Array.from(p)[0][0]),await Wt.executeWorkspaceAccessibleBinary(h,c,this.args,{packageAccessibleBinaries:p,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Ku.paths=[["dlx"]],Ku.usage=ve.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var p4e={commands:[tp,Ku]},d4e=p4e;var vM={};ut(vM,{default:()=>E4e,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,jr="file:";var Zm={};ut(Zm,{makeArchiveFromLocator:()=>Kb,makeBufferFromLocator:()=>SM,makeLocator:()=>QM,makeSpec:()=>_ae,parseSpec:()=>bM});function bM(r){let{params:e,selector:t}=P.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?P.parseLocator(e.locator):null,path:i}}function _ae({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:P.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return P.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function QM(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return P.makeLocator(r,_ae({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function Kb(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=P.parseFileStyleRange(r.reference,{protocol:e}),o=x.isAbsolute(s)?{packageFs:new qt(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=x.join(a.prefixPath,s);return await Ie.releaseAfterUseAsync(async()=>await mi.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:P.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SM(r,{protocol:e,fetchOptions:t}){return(await Kb(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var Ub=class{supports(e,t){return!!e.reference.startsWith(jr)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:jr});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return Kb(e,{protocol:jr,fetchOptions:t})}};var C4e=2,Hb=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(jr)}supportsLocator(e,t){return!!e.reference.startsWith(jr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=P.makeDescriptor(e,`${jr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=bM(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SM(P.makeLocator(e,P.makeRange({protocol:jr,source:n,selector:n,params:{locator:P.stringifyLocator(s)}})),{protocol:jr,fetchOptions:i.fetchOptions}),a=li.makeHash(`${C4e}`,o).slice(0,6);return[QM(e,{parentLocator:s,path:n,folderHash:a,protocol:jr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ie.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var Gb=class{supports(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(jr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:jr}),s=x.isAbsolute(n)?{packageFs:new qt(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.join(o.prefixPath,n),c=await a.readFilePromise(l);return await Ie.releaseAfterUseAsync(async()=>await mi.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var Yb=class{supportsDescriptor(e,t){return Xm.test(e.range)?!!(e.range.startsWith(jr)||rp.test(e.range)):!1}supportsLocator(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(jr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=P.makeDescriptor(e,`${jr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range;return n.startsWith(jr)&&(n=n.slice(jr.length)),[P.makeLocator(e,`${jr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ie.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var m4e={fetchers:[Gb,Ub],resolvers:[Yb,Hb]},E4e=m4e;var xM={};ut(xM,{default:()=>B4e});var $ae=Pe(J("querystring")),eAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function tAe(r){return r?eAe.some(e=>!!r.match(e)):!1}function rAe(r){let e;for(let a of eAe)if(e=r.match(a),e)break;if(!e)throw new Error(I4e(r));let[,t,i,n,s="master"]=e,{commit:o}=$ae.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function I4e(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var jb=class{supports(e,t){return!!tAe(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Xt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await O.mktempPromise(async n=>{let s=new qt(n);await mi.extractArchiveTo(i,s,{stripComponents:1});let o=AA.splitRepoUrl(e.reference),a=x.join(n,"package.tgz");await Wt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await O.readFilePromise(a);return await mi.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=rAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var w4e={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new jb;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},B4e=w4e;var PM={};ut(PM,{default:()=>Q4e});var _m=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,$m=/^https?:/;var qb=class{supports(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Xt.get(e.reference,{configuration:t.project.configuration});return await mi.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var Jb=class{supportsDescriptor(e,t){return _m.test(e.range)?!!$m.test(e.range):!1}supportsLocator(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[P.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ie.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var b4e={fetchers:[qb],resolvers:[Jb]},Q4e=b4e;var FM={};ut(FM,{default:()=>S8e});var PAe=Pe(xAe()),RM=J("util"),Uu=class extends De{constructor(){super(...arguments);this.private=z.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=z.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=z.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=z.Boolean("-2",!1,{hidden:!0});this.yes=z.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=z.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new Qe("Cannot use the --install flag from within a project subdirectory");O.existsSync(this.context.cwd)||await O.mkdirPromise(this.context.cwd,{recursive:!0});let n=x.join(this.context.cwd,t.get("lockfileFilename"));O.existsSync(n)||await O.writeFilePromise(n,"");let s=await this.cli.run(["set","version",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.yes&&o.push("-y"),await O.mktempPromise(async a=>{let{code:l}=await Cr.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Wt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await je.find(t,this.context.cwd)).project}catch{i=null}O.existsSync(this.context.cwd)||await O.mkdirPromise(this.context.cwd,{recursive:!0});let n=await ot.tryFind(this.context.cwd)||new ot,s=Object.fromEntries(t.get("initFields").entries());n.load(s),n.name=(c=n.name)!=null?c:P.makeIdent(t.get("initScope"),x.basename(this.context.cwd)),n.packageManager=Tr&&Ie.isTaggedYarnVersion(Tr)?`yarn@${Tr}`:null,typeof n.raw.private>"u"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await O.mkdirPromise(x.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let o={};n.exportTo(o),RM.inspect.styles.name="cyan",this.context.stdout.write(`${(0,RM.inspect)(o,{depth:1/0,colors:!0,compact:!1})} `);let a=x.join(this.context.cwd,ot.fileName);await O.changeFilePromise(a,`${JSON.stringify(o,null,2)} `,{automaticNewlines:!0});let l=x.join(this.context.cwd,"README.md");if(O.existsSync(l)||await O.writeFilePromise(l,`# ${P.stringifyIdent(n.name)} `),!i||i.cwd===this.context.cwd){let u=x.join(this.context.cwd,xt.lockfile);O.existsSync(u)||await O.writeFilePromise(u,"");let f=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!.yarn/cache","#.pnp.*"].map(T=>`${T} `).join(""),h=x.join(this.context.cwd,".gitignore");O.existsSync(h)||await O.writeFilePromise(h,f);let C=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(T=>`${T} -`).join(""),y=x.join(this.context.cwd,".gitattributes");O.existsSync(y)||await O.writeFilePromise(y,C);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,vAe.default)(B,t.get("initEditorConfig"));let v=`root = true +`).join(""),y=x.join(this.context.cwd,".gitattributes");O.existsSync(y)||await O.writeFilePromise(y,C);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,PAe.default)(B,t.get("initEditorConfig"));let v=`root = true `;for(let[T,H]of Object.entries(B)){v+=` [${T}] `;for(let[j,$]of Object.entries(H)){let V=j.replace(/[A-Z]/g,W=>`_${W.toLowerCase()}`);v+=`${V} = ${$} -`}}let D=x.join(this.context.cwd,".editorconfig");O.existsSync(D)||await O.writeFilePromise(D,v),O.existsSync(x.join(this.context.cwd,".git"))||await Cr.execvp("git",["init"],{cwd:this.context.cwd})}}};Uu.paths=[["init"]],Uu.usage=ve.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var B8e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[Uu]},b8e=B8e;var RM={};ut(RM,{default:()=>S8e});var cA="portal:",uA="link:";var Wb=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:cA});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:cA}),s=x.isAbsolute(n)?{packageFs:new qt(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,s.localPath),localPath:Me.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new qt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot}}};var zb=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[P.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ie.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var Vb=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:uA});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:uA}),s=x.isAbsolute(n)?{packageFs:new qt(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,s.localPath),localPath:Me.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new qt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,discardFromLookup:!0,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,discardFromLookup:!0}}};var Xb=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(uA.length);return[P.makeLocator(e,`${uA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var Q8e={fetchers:[Vb,Wb],resolvers:[Xb,zb]},S8e=Q8e;var hO={};ut(hO,{default:()=>Yze});var NM=(r,e)=>`${r}@${e}`,xAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return NM(r,i)};var kAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=F8e(r,s),l=!1,c=0;do l=TM(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=eE(a);if(TM(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +`}}let D=x.join(this.context.cwd,".editorconfig");O.existsSync(D)||await O.writeFilePromise(D,v),O.existsSync(x.join(this.context.cwd,".git"))||await Cr.execvp("git",["init"],{cwd:this.context.cwd})}}};Uu.paths=[["init"]],Uu.usage=ve.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var Q8e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[Uu]},S8e=Q8e;var NM={};ut(NM,{default:()=>x8e});var lA="portal:",cA="link:";var Wb=class{supports(e,t){return!!e.reference.startsWith(lA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:lA});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:lA}),s=x.isAbsolute(n)?{packageFs:new qt(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,s.localPath),localPath:Me.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new qt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,localPath:l}:{packageFs:new vo(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot}}};var zb=class{supportsDescriptor(e,t){return!!e.range.startsWith(lA)}supportsLocator(e,t){return!!e.reference.startsWith(lA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(lA.length);return[P.makeLocator(e,`${lA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ie.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var Vb=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:cA});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:cA}),s=x.isAbsolute(n)?{packageFs:new qt(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,s.localPath),localPath:Me.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new qt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,discardFromLookup:!0,localPath:l}:{packageFs:new vo(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,discardFromLookup:!0}}};var Xb=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[P.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var v8e={fetchers:[Vb,Wb],resolvers:[Xb,zb]},x8e=v8e;var dO={};ut(dO,{default:()=>qze});var LM=(r,e)=>`${r}@${e}`,DAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return LM(r,i)};var FAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=T8e(r,s),l=!1,c=0;do l=MM(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=eE(a);if(MM(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: ${u}, next tree: -${eE(a)}`);let f=RAe(a);if(f)throw new Error(`${f}, after hoisting finished: -${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),N8e(a)},v8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},x8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},PAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:p,hoistedTo:C}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:new Map(p),hoistedTo:new Map(C)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},P8e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},FM=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},TM=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=T8e(o),l=P8e(o,a),c=r==o?new Map:n.fastLookupPossible?v8e(e):x8e(e),u,g=!1,f=!1,h=new Map(Array.from(l.entries()).map(([C,y])=>[C,y[0]])),p=new Map;do{let C=R8e(r,e,t,c,h,l,i,p,n);C.isGraphChanged&&(f=!0),C.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(h.delete(y),B.shift(),h.set(y,B[0]),u=!0)}while(u);for(let C of o.dependencies.values())if(!o.peerNames.has(C.name)&&!t.has(C.locator)){t.add(C.locator);let y=TM(r,[...e,C],t,p,n);y.isGraphChanged&&(f=!0),y.anotherRoundNeeded&&(g=!0),t.delete(C.locator)}return{anotherRoundNeeded:g,isGraphChanged:f}},D8e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},k8e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,f=new Set;l&&(u=`${Array.from(e).map(y=>ki(y)).join("\u2192")}`);let h=t[t.length-1],C=!(i.ident===h.ident);if(l&&!C&&(g="- self-reference"),C&&(C=i.dependencyKind!==1,l&&!C&&(g="- workspace")),C&&i.dependencyKind===2&&(C=!D8e(i),l&&!C&&(g="- external soft link with unhoisted dependencies")),C&&(C=h.dependencyKind!==1||h.hoistedFrom.has(i.name)||e.size===1,l&&!C&&(g=h.reasons.get(i.name))),C&&(C=!r.peerNames.has(i.name),l&&!C&&(g=`- cannot shadow peer: ${ki(r.originalDependencies.get(i.name).locator)} at ${u}`)),C){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${ki(B.locator)} at ${u}`),y)for(let v=t.length-1;v>=1;v--){let T=t[v].dependencies.get(i.name);if(T&&T.ident!==i.ident){y=!1;let H=a.get(h);H||(H=new Set,a.set(h,H)),H.add(i.name),l&&(g=`- filled by ${ki(T.locator)} at ${t.slice(0,v).map(j=>ki(j.locator)).join("\u2192")}`);break}}C=y}if(C&&(C=s.get(i.name)===i.ident,l&&!C&&(g=`- filled by: ${ki(o.get(i.name)[0])} at ${u}`)),C){let y=!0,B=new Set(i.peerNames);for(let v=t.length-1;v>=1;v--){let D=t[v];for(let T of B){if(D.peerNames.has(T)&&D.originalDependencies.has(T))continue;let H=D.dependencies.get(T);H&&r.dependencies.get(T)!==H&&(v===t.length-1?f.add(H):(f=null,y=!1,l&&(g=`- peer dependency ${ki(H.locator)} from parent ${ki(D.locator)} was not hoisted to ${u}`))),B.delete(T)}if(!y)break}C=y}if(C&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){C=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${ki(y.locator)}, available: ${ki(B==null?void 0:B.locator)}`);break}}return f!==null&&f.size>0?{isHoistable:2,dependsOn:f,reason:g}:{isHoistable:C?0:1,reason:g}},Zb=r=>`${r.name}@${r.locator}`,R8e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,f=!1,h=(B,v,D,T,H)=>{if(u.has(T))return;let j=[...v,Zb(T)],$=[...D,Zb(T)],V=new Map,W=new Map;for(let re of FM(T)){let M=k8e(c,t,[c,...B,T],re,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(re,M),M.isHoistable===2)for(let F of M.dependsOn){let ue=V.get(F.name)||new Set;ue.add(re.name),V.set(F.name,ue)}}let _=new Set,A=(re,M,F)=>{if(!_.has(re)){_.add(re),W.set(re,{isHoistable:1,reason:F});for(let ue of V.get(re.name)||[])A(T.dependencies.get(ue),M,l.debugLevel>=2?`- peer dependency ${ki(re.locator)} from parent ${ki(T.locator)} was not hoisted`:"")}};for(let[re,M]of W)M.isHoistable===1&&A(re,M,M.reason);let Ae=!1;for(let re of W.keys())if(!_.has(re)){f=!0;let M=o.get(T);M&&M.has(re.name)&&(g=!0),Ae=!0,T.dependencies.delete(re.name),T.hoistedDependencies.set(re.name,re),T.reasons.delete(re.name);let F=c.dependencies.get(re.name);if(l.debugLevel>=2){let ue=Array.from(v).concat([T.locator]).map(ke=>ki(ke)).join("\u2192"),pe=c.hoistedFrom.get(re.name);pe||(pe=[],c.hoistedFrom.set(re.name,pe)),pe.push(ue),T.hoistedTo.set(re.name,Array.from(e).map(ke=>ki(ke.locator)).join("\u2192"))}if(!F)c.ident!==re.ident&&(c.dependencies.set(re.name,re),H.add(re));else for(let ue of re.references)F.references.add(ue)}if(T.dependencyKind===2&&Ae&&(g=!0),l.check){let re=RAe(r);if(re)throw new Error(`${re}, after hoisting dependencies of ${[c,...B,T].map(M=>ki(M.locator)).join("\u2192")}: -${eE(r)}`)}let ge=FM(T);for(let re of ge)if(_.has(re)){let M=W.get(re);if((n.get(re.name)===re.ident||!T.reasons.has(re.name))&&M.isHoistable!==0&&T.reasons.set(re.name,M.reason),!re.isHoistBorder&&$.indexOf(Zb(re))<0){u.add(T);let ue=PAe(T,re);h([...B,T],j,$,ue,C),u.delete(T)}}},p,C=new Set(FM(c)),y=Array.from(e).map(B=>Zb(B));do{p=C,C=new Set;for(let B of p){if(B.locator===c.locator||B.isHoistBorder)continue;let v=PAe(c,B);h([],Array.from(t),y,v,C)}}while(C.size>0);return{anotherRoundNeeded:g,isGraphChanged:f}},RAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(f=>ki(f.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let f=o.get(c.name);(f!==u||!f||f.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${f&&f.ident}`)}else{let f=a.hoistedFrom.get(s.name),h=s.hoistedTo.get(c.name),p=`${f?` hoisted from ${f.join(", ")}`:""}`,C=`${h?` hoisted to ${h}`:""}`,y=`${g()}${p}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${C}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${C} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` -`)},F8e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:NM(t,n),ident:xAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),f=!!g;if(!g){let{name:h,identName:p,reference:C,peerNames:y,hoistPriority:B,dependencyKind:v}=c,D=e.hoistingLimits.get(u.locator);g={name:h,references:new Set([C]),locator:NM(p,C),ident:xAe(p,C),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:D?D.has(h):!1,hoistPriority:B||0,dependencyKind:v||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),f){let h=new Set,p=C=>{if(!h.has(C)){h.add(C),C.decoupled=!1;for(let y of C.dependencies.values())C.peerNames.has(y.name)||p(y)}};p(g)}else for(let h of c.dependencies)l(h,g)};for(let c of r.dependencies)l(c,o);return o},LM=r=>r.substring(0,r.indexOf("@",1)),N8e=r=>{let e={name:r.name,identName:LM(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:LM(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},T8e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},ki=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},DAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>DAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c":"")+(f!==u.name?`a:${u.name}:`:"")+ki(u.locator)+(g?` ${g}`:"")} -`,l+=t(u,s,`${o}${cDAe?` +${eE(a)}`);let f=NAe(a);if(f)throw new Error(`${f}, after hoisting finished: +${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),L8e(a)},P8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},D8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},kAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:p,hoistedTo:C}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:new Map(p),hoistedTo:new Map(C)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},k8e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},TM=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},MM=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=M8e(o),l=k8e(o,a),c=r==o?new Map:n.fastLookupPossible?P8e(e):D8e(e),u,g=!1,f=!1,h=new Map(Array.from(l.entries()).map(([C,y])=>[C,y[0]])),p=new Map;do{let C=N8e(r,e,t,c,h,l,i,p,n);C.isGraphChanged&&(f=!0),C.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(h.delete(y),B.shift(),h.set(y,B[0]),u=!0)}while(u);for(let C of o.dependencies.values())if(!o.peerNames.has(C.name)&&!t.has(C.locator)){t.add(C.locator);let y=MM(r,[...e,C],t,p,n);y.isGraphChanged&&(f=!0),y.anotherRoundNeeded&&(g=!0),t.delete(C.locator)}return{anotherRoundNeeded:g,isGraphChanged:f}},R8e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},F8e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,f=new Set;l&&(u=`${Array.from(e).map(y=>ki(y)).join("\u2192")}`);let h=t[t.length-1],C=!(i.ident===h.ident);if(l&&!C&&(g="- self-reference"),C&&(C=i.dependencyKind!==1,l&&!C&&(g="- workspace")),C&&i.dependencyKind===2&&(C=!R8e(i),l&&!C&&(g="- external soft link with unhoisted dependencies")),C&&(C=h.dependencyKind!==1||h.hoistedFrom.has(i.name)||e.size===1,l&&!C&&(g=h.reasons.get(i.name))),C&&(C=!r.peerNames.has(i.name),l&&!C&&(g=`- cannot shadow peer: ${ki(r.originalDependencies.get(i.name).locator)} at ${u}`)),C){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${ki(B.locator)} at ${u}`),y)for(let v=t.length-1;v>=1;v--){let T=t[v].dependencies.get(i.name);if(T&&T.ident!==i.ident){y=!1;let H=a.get(h);H||(H=new Set,a.set(h,H)),H.add(i.name),l&&(g=`- filled by ${ki(T.locator)} at ${t.slice(0,v).map(j=>ki(j.locator)).join("\u2192")}`);break}}C=y}if(C&&(C=s.get(i.name)===i.ident,l&&!C&&(g=`- filled by: ${ki(o.get(i.name)[0])} at ${u}`)),C){let y=!0,B=new Set(i.peerNames);for(let v=t.length-1;v>=1;v--){let D=t[v];for(let T of B){if(D.peerNames.has(T)&&D.originalDependencies.has(T))continue;let H=D.dependencies.get(T);H&&r.dependencies.get(T)!==H&&(v===t.length-1?f.add(H):(f=null,y=!1,l&&(g=`- peer dependency ${ki(H.locator)} from parent ${ki(D.locator)} was not hoisted to ${u}`))),B.delete(T)}if(!y)break}C=y}if(C&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){C=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${ki(y.locator)}, available: ${ki(B==null?void 0:B.locator)}`);break}}return f!==null&&f.size>0?{isHoistable:2,dependsOn:f,reason:g}:{isHoistable:C?0:1,reason:g}},Zb=r=>`${r.name}@${r.locator}`,N8e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,f=!1,h=(B,v,D,T,H)=>{if(u.has(T))return;let j=[...v,Zb(T)],$=[...D,Zb(T)],V=new Map,W=new Map;for(let re of TM(T)){let M=F8e(c,t,[c,...B,T],re,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(re,M),M.isHoistable===2)for(let F of M.dependsOn){let ue=V.get(F.name)||new Set;ue.add(re.name),V.set(F.name,ue)}}let _=new Set,A=(re,M,F)=>{if(!_.has(re)){_.add(re),W.set(re,{isHoistable:1,reason:F});for(let ue of V.get(re.name)||[])A(T.dependencies.get(ue),M,l.debugLevel>=2?`- peer dependency ${ki(re.locator)} from parent ${ki(T.locator)} was not hoisted`:"")}};for(let[re,M]of W)M.isHoistable===1&&A(re,M,M.reason);let Ae=!1;for(let re of W.keys())if(!_.has(re)){f=!0;let M=o.get(T);M&&M.has(re.name)&&(g=!0),Ae=!0,T.dependencies.delete(re.name),T.hoistedDependencies.set(re.name,re),T.reasons.delete(re.name);let F=c.dependencies.get(re.name);if(l.debugLevel>=2){let ue=Array.from(v).concat([T.locator]).map(ke=>ki(ke)).join("\u2192"),pe=c.hoistedFrom.get(re.name);pe||(pe=[],c.hoistedFrom.set(re.name,pe)),pe.push(ue),T.hoistedTo.set(re.name,Array.from(e).map(ke=>ki(ke.locator)).join("\u2192"))}if(!F)c.ident!==re.ident&&(c.dependencies.set(re.name,re),H.add(re));else for(let ue of re.references)F.references.add(ue)}if(T.dependencyKind===2&&Ae&&(g=!0),l.check){let re=NAe(r);if(re)throw new Error(`${re}, after hoisting dependencies of ${[c,...B,T].map(M=>ki(M.locator)).join("\u2192")}: +${eE(r)}`)}let ge=TM(T);for(let re of ge)if(_.has(re)){let M=W.get(re);if((n.get(re.name)===re.ident||!T.reasons.has(re.name))&&M.isHoistable!==0&&T.reasons.set(re.name,M.reason),!re.isHoistBorder&&$.indexOf(Zb(re))<0){u.add(T);let ue=kAe(T,re);h([...B,T],j,$,ue,C),u.delete(T)}}},p,C=new Set(TM(c)),y=Array.from(e).map(B=>Zb(B));do{p=C,C=new Set;for(let B of p){if(B.locator===c.locator||B.isHoistBorder)continue;let v=kAe(c,B);h([],Array.from(t),y,v,C)}}while(C.size>0);return{anotherRoundNeeded:g,isGraphChanged:f}},NAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(f=>ki(f.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let f=o.get(c.name);(f!==u||!f||f.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${f&&f.ident}`)}else{let f=a.hoistedFrom.get(s.name),h=s.hoistedTo.get(c.name),p=`${f?` hoisted from ${f.join(", ")}`:""}`,C=`${h?` hoisted to ${h}`:""}`,y=`${g()}${p}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${C}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${C} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` +`)},T8e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LM(t,n),ident:DAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),f=!!g;if(!g){let{name:h,identName:p,reference:C,peerNames:y,hoistPriority:B,dependencyKind:v}=c,D=e.hoistingLimits.get(u.locator);g={name:h,references:new Set([C]),locator:LM(p,C),ident:DAe(p,C),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:D?D.has(h):!1,hoistPriority:B||0,dependencyKind:v||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),f){let h=new Set,p=C=>{if(!h.has(C)){h.add(C),C.decoupled=!1;for(let y of C.dependencies.values())C.peerNames.has(y.name)||p(y)}};p(g)}else for(let h of c.dependencies)l(h,g)};for(let c of r.dependencies)l(c,o);return o},OM=r=>r.substring(0,r.indexOf("@",1)),L8e=r=>{let e={name:r.name,identName:OM(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:OM(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},M8e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},ki=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},RAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>RAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c":"")+(f!==u.name?`a:${u.name}:`:"")+ki(u.locator)+(g?` ${g}`:"")} +`,l+=t(u,s,`${o}${cRAe?` Tree is too large, part of the tree has been dunped -`:"")};var tE=(i=>(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),FAe="node_modules",Hu="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=M8e(r,e),o=null;if(n.length===0){let a=kAe(t,{hoistingLimits:i});o=K8e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},sa=r=>`${r.name}@${r.reference}`,OM=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(x.delimiter).length,o=n.split(x.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},NAe=(r,e)=>{let t=P.isVirtualLocator(r)?P.devirtualizeLocator(r):r,i=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e;return P.areLocatorsEqual(t,i)},MM=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return x.contains(i,n)===null},L8e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(f,h)=>{let p=sa(f);if(l.has(p))return;l.add(p);let C=r.getPackageInformation(f);if(C){let y=h?sa(h):"";if(sa(f)!==y&&C.linkType==="SOFT"&&!MM(C,f,r,i)){let B=TAe(C,f,r);(!a.get(B)||f.reference.startsWith("workspace:"))&&a.set(B,f)}for(let[B,v]of C.packageDependencies)v!==null&&(C.packagePeers.has(B)||c(r.getLocator(B,v),f))}};for(let f of o)c(f,null);let u=i.split(x.sep);for(let f of a.values()){let h=r.getPackageInformation(f),C=K.toPortablePath(h.packageLocation.slice(0,-1)).split(x.sep).slice(u.length),y=s;for(let B of C){let v=y.children.get(B);v||(v={children:new Map},y.children.set(B,v)),y=v}y.workspaceLocator=f}let g=(f,h)=>{if(f.workspaceLocator){let p=sa(h),C=n.get(p);C||(C=new Set,n.set(p,C)),C.add(f.workspaceLocator)}for(let p of f.children.values())g(p,f.workspaceLocator||h)};for(let f of s.children.values())g(f,s.workspaceLocator);return n},M8e=(r,e)=>{let t=[],i=!1,n=new Map,s=L8e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(h,p)=>`${sa(p)}:${h}`,f=(h,p,C,y,B,v,D,T)=>{var re,M;let H=g(h,C),j=u.get(H),$=!!j;!$&&C.name===a.name&&C.reference===a.reference&&(j=c,u.set(H,c));let V=MM(p,C,r,l);if(!j){let F=0;V?F=2:p.linkType==="SOFT"&&C.name.endsWith(Hu)&&(F=1),j={name:h,identName:C.name,reference:C.reference,dependencies:new Set,peerNames:F===1?new Set:p.packagePeers,dependencyKind:F},u.set(H,j)}let W;if(V?W=2:B.linkType==="SOFT"?W=1:W=0,j.hoistPriority=Math.max(j.hoistPriority||0,W),T&&!V){let F=sa({name:y.identName,reference:y.reference}),ue=n.get(F)||new Set;n.set(F,ue),ue.add(j.name)}let _=new Map(p.packageDependencies);if(e.project){let F=e.project.workspacesByCwd.get(K.toPortablePath(p.packageLocation.slice(0,-1)));if(F){let ue=new Set([...Array.from(F.manifest.peerDependencies.values(),pe=>P.stringifyIdent(pe)),...Array.from(F.manifest.peerDependenciesMeta.keys())]);for(let pe of ue)_.has(pe)||(_.set(pe,v.get(pe)||null),j.peerNames.add(pe))}}let A=sa({name:C.name.replace(Hu,""),reference:C.reference}),Ae=s.get(A);if(Ae)for(let F of Ae)_.set(`${F.name}${Hu}`,F.reference);(p!==B||p.linkType!=="SOFT"||!V&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(D)))&&y.dependencies.add(j);let ge=C!==a&&p.linkType==="SOFT"&&!C.name.endsWith(Hu)&&!V;if(!$&&!ge){let F=new Map;for(let[ue,pe]of _)if(pe!==null){let ke=r.getLocator(ue,pe),Fe=r.getLocator(ue.replace(Hu,""),pe),Ne=r.getPackageInformation(Fe);if(Ne===null)throw new Error("Assertion failed: Expected the package to have been registered");let oe=MM(Ne,ke,r,l);if(e.validateExternalSoftLinks&&e.project&&oe){Ne.packageDependencies.size>0&&(i=!0);for(let[qe,ne]of Ne.packageDependencies)if(ne!==null){let Y=P.parseLocator(Array.isArray(ne)?`${ne[0]}@${ne[1]}`:`${qe}@${ne}`);if(sa(Y)!==sa(ke)){let he=_.get(qe);if(he){let ie=P.parseLocator(Array.isArray(he)?`${he[0]}@${he[1]}`:`${qe}@${he}`);NAe(ie,Y)||t.push({messageName:71,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(ke.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${C.name}@${C.reference}`))} dependency ${P.prettyLocator(e.project.configuration,Y)} conflicts with parent dependency ${P.prettyLocator(e.project.configuration,ie)}`})}else{let ie=F.get(qe);if(ie){let de=ie.target,_e=P.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${qe}@${de}`);NAe(_e,Y)||t.push({messageName:71,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(ke.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${C.name}@${C.reference}`))} dependency ${P.prettyLocator(e.project.configuration,Y)} conflicts with dependency ${P.prettyLocator(e.project.configuration,_e)} from sibling portal ${P.prettyIdent(e.project.configuration,P.parseIdent(ie.portal.name))}`})}else F.set(qe,{target:Y.reference,portal:ke})}}}}let le=(re=e.hoistingLimitsByCwd)==null?void 0:re.get(D),Be=oe?D:x.relative(l,K.toPortablePath(Ne.packageLocation))||Me.dot,fe=(M=e.hoistingLimitsByCwd)==null?void 0:M.get(Be);f(ue,Ne,ke,j,p,_,Be,le==="dependencies"||fe==="dependencies"||fe==="workspaces")}}};return f(a.name,o,a,c,o,o.packageDependencies,Me.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function TAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function O8e(r,e,t){let i=e.getLocator(r.name.replace(Hu,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");let s,o;return t.pnpifyFs?(o=K.toPortablePath(n.packageLocation),s="SOFT"):(o=TAe(n,r,e),s=n.linkType),{linkType:s,target:o}}var K8e=(r,e,t)=>{let i=new Map,n=(u,g,f)=>{let{linkType:h,target:p}=O8e(u,r,t);return{locator:sa(u),nodePath:g,target:p,linkType:h,aliases:f}},s=u=>{let[g,f]=u.split("/");return f?{scope:Ur(g),name:Ur(f)}:{scope:null,name:Ur(g)}},o=new Set,a=(u,g,f)=>{if(o.has(u))return;o.add(u);let h=Array.from(u.references).sort().join("#");for(let p of u.dependencies){let C=Array.from(p.references).sort().join("#");if(p.identName===u.identName&&C===h)continue;let y=Array.from(p.references).sort(),B={name:p.identName,reference:y[0]},{name:v,scope:D}=s(p.name),T=D?[D,v]:[v],H=x.join(g,FAe),j=x.join(H,...T),$=`${f}/${B.name}`,V=n(B,f,y.slice(1)),W=!1;if(V.linkType==="SOFT"&&t.project){let A=t.project.workspacesByCwd.get(V.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let _=V.linkType==="SOFT"&&j.startsWith(V.target);if(!p.name.endsWith(Hu)&&!W&&!_){let A=i.get(j);if(A){if(A.dirList)throw new Error(`Assertion failed: ${j} cannot merge dir node with leaf node`);{let M=P.parseLocator(A.locator),F=P.parseLocator(V.locator);if(A.linkType!==V.linkType)throw new Error(`Assertion failed: ${j} cannot merge nodes with different link types ${A.nodePath}/${P.stringifyLocator(M)} and ${f}/${P.stringifyLocator(F)}`);if(M.identHash!==F.identHash)throw new Error(`Assertion failed: ${j} cannot merge nodes with different idents ${A.nodePath}/${P.stringifyLocator(M)} and ${f}/s${P.stringifyLocator(F)}`);V.aliases=[...V.aliases,...A.aliases,P.parseLocator(A.locator).reference]}}i.set(j,V);let Ae=j.split("/"),ge=Ae.indexOf(FAe),re=Ae.length-1;for(;ge>=0&&re>ge;){let M=K.toPortablePath(Ae.slice(0,re).join(x.sep)),F=Ur(Ae[re]),ue=i.get(M);if(!ue)i.set(M,{dirList:new Set([F])});else if(ue.dirList){if(ue.dirList.has(F))break;ue.dirList.add(F)}re--}}a(p,V.linkType==="SOFT"?V.target:j,$)}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var iO={};ut(iO,{PnpInstaller:()=>Yu,PnpLinker:()=>wl,default:()=>dze,getPnpPath:()=>Bl,jsInstallUtils:()=>po,pnpUtils:()=>hE,quotePathIfNeeded:()=>ble});var wle=Pe(Xr()),Ble=J("url");var LAe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function U8e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;n(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),TAe="node_modules",Hu="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=K8e(r,e),o=null;if(n.length===0){let a=FAe(t,{hoistingLimits:i});o=H8e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},sa=r=>`${r.name}@${r.reference}`,UM=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(x.delimiter).length,o=n.split(x.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},LAe=(r,e)=>{let t=P.isVirtualLocator(r)?P.devirtualizeLocator(r):r,i=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e;return P.areLocatorsEqual(t,i)},KM=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return x.contains(i,n)===null},O8e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(f,h)=>{let p=sa(f);if(l.has(p))return;l.add(p);let C=r.getPackageInformation(f);if(C){let y=h?sa(h):"";if(sa(f)!==y&&C.linkType==="SOFT"&&!KM(C,f,r,i)){let B=MAe(C,f,r);(!a.get(B)||f.reference.startsWith("workspace:"))&&a.set(B,f)}for(let[B,v]of C.packageDependencies)v!==null&&(C.packagePeers.has(B)||c(r.getLocator(B,v),f))}};for(let f of o)c(f,null);let u=i.split(x.sep);for(let f of a.values()){let h=r.getPackageInformation(f),C=K.toPortablePath(h.packageLocation.slice(0,-1)).split(x.sep).slice(u.length),y=s;for(let B of C){let v=y.children.get(B);v||(v={children:new Map},y.children.set(B,v)),y=v}y.workspaceLocator=f}let g=(f,h)=>{if(f.workspaceLocator){let p=sa(h),C=n.get(p);C||(C=new Set,n.set(p,C)),C.add(f.workspaceLocator)}for(let p of f.children.values())g(p,f.workspaceLocator||h)};for(let f of s.children.values())g(f,s.workspaceLocator);return n},K8e=(r,e)=>{let t=[],i=!1,n=new Map,s=O8e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(h,p)=>`${sa(p)}:${h}`,f=(h,p,C,y,B,v,D,T)=>{var re,M;let H=g(h,C),j=u.get(H),$=!!j;!$&&C.name===a.name&&C.reference===a.reference&&(j=c,u.set(H,c));let V=KM(p,C,r,l);if(!j){let F=0;V?F=2:p.linkType==="SOFT"&&C.name.endsWith(Hu)&&(F=1),j={name:h,identName:C.name,reference:C.reference,dependencies:new Set,peerNames:F===1?new Set:p.packagePeers,dependencyKind:F},u.set(H,j)}let W;if(V?W=2:B.linkType==="SOFT"?W=1:W=0,j.hoistPriority=Math.max(j.hoistPriority||0,W),T&&!V){let F=sa({name:y.identName,reference:y.reference}),ue=n.get(F)||new Set;n.set(F,ue),ue.add(j.name)}let _=new Map(p.packageDependencies);if(e.project){let F=e.project.workspacesByCwd.get(K.toPortablePath(p.packageLocation.slice(0,-1)));if(F){let ue=new Set([...Array.from(F.manifest.peerDependencies.values(),pe=>P.stringifyIdent(pe)),...Array.from(F.manifest.peerDependenciesMeta.keys())]);for(let pe of ue)_.has(pe)||(_.set(pe,v.get(pe)||null),j.peerNames.add(pe))}}let A=sa({name:C.name.replace(Hu,""),reference:C.reference}),Ae=s.get(A);if(Ae)for(let F of Ae)_.set(`${F.name}${Hu}`,F.reference);(p!==B||p.linkType!=="SOFT"||!V&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(D)))&&y.dependencies.add(j);let ge=C!==a&&p.linkType==="SOFT"&&!C.name.endsWith(Hu)&&!V;if(!$&&!ge){let F=new Map;for(let[ue,pe]of _)if(pe!==null){let ke=r.getLocator(ue,pe),Fe=r.getLocator(ue.replace(Hu,""),pe),Ne=r.getPackageInformation(Fe);if(Ne===null)throw new Error("Assertion failed: Expected the package to have been registered");let oe=KM(Ne,ke,r,l);if(e.validateExternalSoftLinks&&e.project&&oe){Ne.packageDependencies.size>0&&(i=!0);for(let[qe,ne]of Ne.packageDependencies)if(ne!==null){let Y=P.parseLocator(Array.isArray(ne)?`${ne[0]}@${ne[1]}`:`${qe}@${ne}`);if(sa(Y)!==sa(ke)){let he=_.get(qe);if(he){let ie=P.parseLocator(Array.isArray(he)?`${he[0]}@${he[1]}`:`${qe}@${he}`);LAe(ie,Y)||t.push({messageName:71,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(ke.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${C.name}@${C.reference}`))} dependency ${P.prettyLocator(e.project.configuration,Y)} conflicts with parent dependency ${P.prettyLocator(e.project.configuration,ie)}`})}else{let ie=F.get(qe);if(ie){let de=ie.target,_e=P.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${qe}@${de}`);LAe(_e,Y)||t.push({messageName:71,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(ke.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${C.name}@${C.reference}`))} dependency ${P.prettyLocator(e.project.configuration,Y)} conflicts with dependency ${P.prettyLocator(e.project.configuration,_e)} from sibling portal ${P.prettyIdent(e.project.configuration,P.parseIdent(ie.portal.name))}`})}else F.set(qe,{target:Y.reference,portal:ke})}}}}let le=(re=e.hoistingLimitsByCwd)==null?void 0:re.get(D),Be=oe?D:x.relative(l,K.toPortablePath(Ne.packageLocation))||Me.dot,fe=(M=e.hoistingLimitsByCwd)==null?void 0:M.get(Be);f(ue,Ne,ke,j,p,_,Be,le==="dependencies"||fe==="dependencies"||fe==="workspaces")}}};return f(a.name,o,a,c,o,o.packageDependencies,Me.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function MAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function U8e(r,e,t){let i=e.getLocator(r.name.replace(Hu,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");let s,o;return t.pnpifyFs?(o=K.toPortablePath(n.packageLocation),s="SOFT"):(o=MAe(n,r,e),s=n.linkType),{linkType:s,target:o}}var H8e=(r,e,t)=>{let i=new Map,n=(u,g,f)=>{let{linkType:h,target:p}=U8e(u,r,t);return{locator:sa(u),nodePath:g,target:p,linkType:h,aliases:f}},s=u=>{let[g,f]=u.split("/");return f?{scope:Jr(g),name:Jr(f)}:{scope:null,name:Jr(g)}},o=new Set,a=(u,g,f)=>{if(o.has(u))return;o.add(u);let h=Array.from(u.references).sort().join("#");for(let p of u.dependencies){let C=Array.from(p.references).sort().join("#");if(p.identName===u.identName&&C===h)continue;let y=Array.from(p.references).sort(),B={name:p.identName,reference:y[0]},{name:v,scope:D}=s(p.name),T=D?[D,v]:[v],H=x.join(g,TAe),j=x.join(H,...T),$=`${f}/${B.name}`,V=n(B,f,y.slice(1)),W=!1;if(V.linkType==="SOFT"&&t.project){let A=t.project.workspacesByCwd.get(V.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let _=V.linkType==="SOFT"&&j.startsWith(V.target);if(!p.name.endsWith(Hu)&&!W&&!_){let A=i.get(j);if(A){if(A.dirList)throw new Error(`Assertion failed: ${j} cannot merge dir node with leaf node`);{let M=P.parseLocator(A.locator),F=P.parseLocator(V.locator);if(A.linkType!==V.linkType)throw new Error(`Assertion failed: ${j} cannot merge nodes with different link types ${A.nodePath}/${P.stringifyLocator(M)} and ${f}/${P.stringifyLocator(F)}`);if(M.identHash!==F.identHash)throw new Error(`Assertion failed: ${j} cannot merge nodes with different idents ${A.nodePath}/${P.stringifyLocator(M)} and ${f}/s${P.stringifyLocator(F)}`);V.aliases=[...V.aliases,...A.aliases,P.parseLocator(A.locator).reference]}}i.set(j,V);let Ae=j.split("/"),ge=Ae.indexOf(TAe),re=Ae.length-1;for(;ge>=0&&re>ge;){let M=K.toPortablePath(Ae.slice(0,re).join(x.sep)),F=Jr(Ae[re]),ue=i.get(M);if(!ue)i.set(M,{dirList:new Set([F])});else if(ue.dirList){if(ue.dirList.has(F))break;ue.dirList.add(F)}re--}}a(p,V.linkType==="SOFT"?V.target:j,$)}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var sO={};ut(sO,{PnpInstaller:()=>Yu,PnpLinker:()=>wl,default:()=>mze,getPnpPath:()=>Bl,jsInstallUtils:()=>Co,pnpUtils:()=>hE,quotePathIfNeeded:()=>Sle});var ble=Pe(Xr()),Qle=J("url");var OAe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function G8e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;n"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_b(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function Y8e(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{ +`;return n+=t,n+="]",n}function j8e(r,e,t){let i=Object.keys(r),n="";n+="{";for(let s=0,o=i.length,a=0;s"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_b(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function q8e(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{ `;let o=0;for(let a=0,l=i.length;a"u"||(o!==0&&(s+=",",s+=` `),s+=n,s+=JSON.stringify(c),s+=": ",s+=_b(c,u,e,n).replace(/^ +/g,""),o+=1)}return o!==0&&(s+=` -`),s+=t,s+="}",s}function _b(r,e,t,i){let{next:n}=LAe[t],s=n[r]||n["*"];return MAe(e,s,i)}function MAe(r,e,t){let{collapsed:i}=LAe[e];return Array.isArray(r)?i?U8e(r,e,t):H8e(r,e,t):typeof r=="object"&&r!==null?i?G8e(r,e,t):Y8e(r,e,t):JSON.stringify(r)}function OAe(r){return MAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function j8e(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function q8e(r){return iE(r.fallbackPool||[],([e])=>e)}function J8e(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[p,C]of iE(a.entries(),([y])=>y))g.push([p,C]);let f=l&&l.size>0?Array.from(l):void 0,h=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:f,linkType:c,discardFromLookup:h}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:j8e(r),fallbackPool:q8e(r),packageRegistryData:J8e(r)}}var HAe=Pe(UAe());function GAe(r,e){return[r?`${r} +`),s+=t,s+="}",s}function _b(r,e,t,i){let{next:n}=OAe[t],s=n[r]||n["*"];return KAe(e,s,i)}function KAe(r,e,t){let{collapsed:i}=OAe[e];return Array.isArray(r)?i?G8e(r,e,t):Y8e(r,e,t):typeof r=="object"&&r!==null?i?j8e(r,e,t):q8e(r,e,t):JSON.stringify(r)}function UAe(r){return KAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function J8e(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function W8e(r){return iE(r.fallbackPool||[],([e])=>e)}function z8e(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[p,C]of iE(a.entries(),([y])=>y))g.push([p,C]);let f=l&&l.size>0?Array.from(l):void 0,h=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:f,linkType:c,discardFromLookup:h}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:J8e(r),fallbackPool:W8e(r),packageRegistryData:z8e(r)}}var YAe=Pe(GAe());function jAe(r,e){return[r?`${r} `:"",`/* eslint-disable */ `,`"use strict"; `,` `,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { `,e.replace(/^/gm," "),`} `,` -`,(0,HAe.default)()].join("")}function W8e(r){return JSON.stringify(r,null,2)}function z8e(r){return`'${r.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ -`)}'`}function V8e(r){return[`return hydrateRuntimeState(JSON.parse(${z8e(OAe(r))}), {basePath: basePath || __dirname}); -`].join("")}function X8e(r){return[`var path = require('path'); +`,(0,YAe.default)()].join("")}function V8e(r){return JSON.stringify(r,null,2)}function X8e(r){return`'${r.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ +`)}'`}function Z8e(r){return[`return hydrateRuntimeState(JSON.parse(${X8e(UAe(r))}), {basePath: basePath || __dirname}); +`].join("")}function _8e(r){return[`var path = require('path'); `,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(r)}); `,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)}); -`].join("")}function YAe(r){let e=nE(r),t=V8e(e);return GAe(r.shebang,t)}function jAe(r){let e=nE(r),t=X8e(r.dataLocation),i=GAe(r.shebang,t);return{dataFile:W8e(e),loaderFile:i}}var hle=J("fs");var ple=J("util");function UM(r,{basePath:e}){let t=K.toPortablePath(e),i=x.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,f])=>[g,new Map(f.map(([h,p])=>{var D;if(g===null!=(h===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let C=(D=p.discardFromLookup)!=null?D:!1,y={name:g,reference:h},B=s.get(p.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&C,C||(B.locator=y)):s.set(p.packageLocation,{locator:y,discardFromLookup:C});let v=null;return[h,{packageDependencies:new Map(p.packageDependencies),packagePeers:new Set(p.packagePeers),linkType:p.linkType,discardFromLookup:C,get packageLocation(){return v||(v=x.join(i,p.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,f])=>[g,new Set(f)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),gA=J("url"),XM=J("util");var qi=J("url");var zAe=Pe(J("assert"));var HM=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Gu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),GM=(r,e)=>RegExp.prototype.exec.call(r,e),YM=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),Il=(r,...e)=>String.prototype.endsWith.apply(r,e),jM=(r,...e)=>String.prototype.includes.apply(r,e),qM=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),qAe=(r,...e)=>String.prototype.replace.apply(r,e),yl=(r,...e)=>String.prototype.slice.apply(r,e),oa=(r,...e)=>String.prototype.startsWith.apply(r,e),JAe=Map,WAe=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var VAe=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),JM=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),XAe=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!oa(t,"./");return e==="."?((0,zAe.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),ZAe=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eQ=J("url");function _Ae(r,e){let t=Object.create(null);for(let i=0;ie):r+e}cE(t,r,i,o,n)}GM(ele,yl(r,2))!==null&&cE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(".",i).pathname;if(oa(c,u)||cE(t,r,i,o,n),e==="")return l;if(GM(ele,e)!==null){let g=s?qAe(t,"*",()=>e):t+e;$8e(g,i,o,n)}return s?new URL(YM(tle,l.href,()=>e)):new URL(e,l)}function tze(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function ip(r,e,t,i,n,s,o,a){if(typeof e=="string")return eze(e,t,i,r,n,s,o,a);if(HM(e)){if(e.length===0)return null;let l;for(let c=0;cs?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function rze(r,e,t){if(typeof r=="string"||HM(r))return!0;if(typeof r!="object"||r===null)return!1;let i=oE(r),n=!1,s=0;for(let o=0;o=c.length&&Il(e,g)&&ile(s,c)===1&&qM(c,"*")===u&&(s=c,o=yl(e,u,e.length-g.length))}}if(s){let l=t[s],c=ip(r,l,o,s,i,!0,!1,n);return c==null&&WM(e,r,i),c}WM(e,r,i)}function sle({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r==="#"||oa(r,"#/")||Il(r,"/")){let o="is not a valid internal imports specifier name";throw new JM(r,o,(0,qi.fileURLToPath)(e))}let n,s=$Ae(e,i);if(s.exists){n=(0,qi.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Gu(o,r)&&!jM(r,"*")){let a=ip(n,o[r],"",r,e,!1,!0,t);if(a!=null)return a}else{let a="",l,c=oE(o);for(let u=0;u=g.length&&Il(r,h)&&ile(a,g)===1&&qM(g,"*")===f&&(a=g,l=yl(r,f,r.length-h.length))}}if(a){let u=o[a],g=ip(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}_8e(r,n,e)}var nze=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ri(r,e,t={},i){i!=null||(i=nze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function ho(r){return K.normalize(K.fromPortablePath(r))}var lle=Pe(ale());function cle(r){return sze(),VM[r]}var VM;function sze(){VM||(VM={"--conditions":[],...Ale(oze()),...Ale(process.execArgv)})}function Ale(r){return(0,lle.default)({"--conditions":[String],"-C":"--conditions"},{argv:r,permissive:!0})}function oze(){let r=[],e=aze(process.env.NODE_OPTIONS||"",r);return r.length,e}function aze(r,e){let t=[],i=!1,n=!0;for(let s=0;s[g,new Map(f.map(([h,p])=>{var D;if(g===null!=(h===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let C=(D=p.discardFromLookup)!=null?D:!1,y={name:g,reference:h},B=s.get(p.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&C,C||(B.locator=y)):s.set(p.packageLocation,{locator:y,discardFromLookup:C});let v=null;return[h,{packageDependencies:new Map(p.packageDependencies),packagePeers:new Set(p.packagePeers),linkType:p.linkType,discardFromLookup:C,get packageLocation(){return v||(v=x.join(i,p.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,f])=>[g,new Set(f)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),uA=J("url"),_M=J("util");var qi=J("url");var XAe=Pe(J("assert"));var YM=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Gu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),jM=(r,e)=>RegExp.prototype.exec.call(r,e),qM=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),Il=(r,...e)=>String.prototype.endsWith.apply(r,e),JM=(r,...e)=>String.prototype.includes.apply(r,e),WM=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),WAe=(r,...e)=>String.prototype.replace.apply(r,e),yl=(r,...e)=>String.prototype.slice.apply(r,e),oa=(r,...e)=>String.prototype.startsWith.apply(r,e),zAe=Map,VAe=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var ZAe=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zM=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),_Ae=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!oa(t,"./");return e==="."?((0,XAe.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),$Ae=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eQ=J("url");function ele(r,e){let t=Object.create(null);for(let i=0;ie):r+e}cE(t,r,i,o,n)}jM(rle,yl(r,2))!==null&&cE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(".",i).pathname;if(oa(c,u)||cE(t,r,i,o,n),e==="")return l;if(jM(rle,e)!==null){let g=s?WAe(t,"*",()=>e):t+e;tze(g,i,o,n)}return s?new URL(qM(ile,l.href,()=>e)):new URL(e,l)}function ize(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function ip(r,e,t,i,n,s,o,a){if(typeof e=="string")return rze(e,t,i,r,n,s,o,a);if(YM(e)){if(e.length===0)return null;let l;for(let c=0;cs?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function nze(r,e,t){if(typeof r=="string"||YM(r))return!0;if(typeof r!="object"||r===null)return!1;let i=oE(r),n=!1,s=0;for(let o=0;o=c.length&&Il(e,g)&&sle(s,c)===1&&WM(c,"*")===u&&(s=c,o=yl(e,u,e.length-g.length))}}if(s){let l=t[s],c=ip(r,l,o,s,i,!0,!1,n);return c==null&&VM(e,r,i),c}VM(e,r,i)}function ale({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r==="#"||oa(r,"#/")||Il(r,"/")){let o="is not a valid internal imports specifier name";throw new zM(r,o,(0,qi.fileURLToPath)(e))}let n,s=tle(e,i);if(s.exists){n=(0,qi.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Gu(o,r)&&!JM(r,"*")){let a=ip(n,o[r],"",r,e,!1,!0,t);if(a!=null)return a}else{let a="",l,c=oE(o);for(let u=0;u=g.length&&Il(r,h)&&sle(a,g)===1&&WM(g,"*")===f&&(a=g,l=yl(r,f,r.length-h.length))}}if(a){let u=o[a],g=ip(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}eze(r,n,e)}var oze=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ri(r,e,t={},i){i!=null||(i=oze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function po(r){return K.normalize(K.fromPortablePath(r))}var ule=Pe(lle());function gle(r){return aze(),ZM[r]}var ZM;function aze(){ZM||(ZM={"--conditions":[],...cle(Aze()),...cle(process.execArgv)})}function cle(r){return(0,ule.default)({"--conditions":[String],"-C":"--conditions"},{argv:r,permissive:!0})}function Aze(){let r=[],e=lze(process.env.NODE_OPTIONS||"",r);return r.length,e}function lze(r,e){let t=[],i=!1,n=!0;for(let s=0;sparseInt(r,10)),sBt=Ji>16||Ji===16&&aa>=12,oBt=Ji>17||Ji===17&&aa>=5||Ji===16&&aa>=15,aBt=Ji>17||Ji===17&&aa>=1||Ji===16&&aa>14,ule=Ji>19||Ji===19&&aa>=2||Ji===18&&aa>=13,ABt=Ji>19||Ji===19&&aa>=3,lBt=Ji>18||Ji===18&&aa>=1||Ji===16&&aa>=17;var Aze=new Set(gle.Module.builtinModules||Object.keys(process.binding("natives"))),tQ=r=>r.startsWith("node:")||Aze.has(r);function fle(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(Br.resolveVirtual(K.toPortablePath(e)))),ule)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function ZM(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let oe of["react-scripts","gatsby"]){let le=r.packageRegistry.get(oe);if(le)for(let Be of le.keys()){if(Be===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:oe,reference:Be})}}let{ignorePattern:g,packageRegistry:f,packageLocatorsByLocations:h}=r;function p(oe,le){return{fn:oe,args:le,error:null,result:null}}function C(oe){var qe,ne,Y,he,ie,de;let le=(Y=(ne=(qe=process.stderr)==null?void 0:qe.hasColors)==null?void 0:ne.call(qe))!=null?Y:process.stdout.isTTY,Be=(_e,Pt)=>`\x1B[${_e}m${Pt}\x1B[0m`,fe=oe.error;console.error(fe?Be("31;1",`\u2716 ${(he=oe.error)==null?void 0:he.message.replace(/\n.*/s,"")}`):Be("33;1","\u203C Resolution")),oe.args.length>0&&console.error();for(let _e of oe.args)console.error(` ${Be("37;1","In \u2190")} ${(0,XM.inspect)(_e,{colors:le,compact:!0})}`);oe.result&&(console.error(),console.error(` ${Be("37;1","Out \u2192")} ${(0,XM.inspect)(oe.result,{colors:le,compact:!0})}`));let ae=(de=(ie=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:ie.slice(2))!=null?de:[];if(ae.length>0){console.error();for(let _e of ae)console.error(` ${Be("38;5;244",_e)}`)}console.error()}function y(oe,le){if(e.allowDebug===!1)return le;if(Number.isFinite(i)){if(i>=2)return(...Be)=>{let fe=p(oe,Be);try{return fe.result=le(...Be)}catch(ae){throw fe.error=ae}finally{C(fe)}};if(i>=1)return(...Be)=>{try{return le(...Be)}catch(fe){let ae=p(oe,Be);throw ae.error=fe,C(ae),fe}}}return le}function B(oe){let le=A(oe);if(!le)throw ri("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return le}function v(oe){if(oe.name===null)return!0;for(let le of r.dependencyTreeRoots)if(le.name===oe.name&&le.reference===oe.reference)return!0;return!1}let D=new Set(["node","require",...cle("--conditions")]);function T(oe,le=D,Be){let fe=re(x.join(oe,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(fe===null)throw ri("INTERNAL",`The locator that owns the "${oe}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:ae}=B(fe),qe=x.join(ae,xt.manifest);if(!e.fakeFs.existsSync(qe))return null;let ne=JSON.parse(e.fakeFs.readFileSync(qe,"utf8"));if(ne.exports==null)return null;let Y=x.contains(ae,oe);if(Y===null)throw ri("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");Y!=="."&&!a.test(Y)&&(Y=`./${Y}`);try{let he=nle({packageJSONUrl:(0,gA.pathToFileURL)(K.fromPortablePath(qe)),packageSubpath:Y,exports:ne.exports,base:Be?(0,gA.pathToFileURL)(K.fromPortablePath(Be)):null,conditions:le});return K.toPortablePath((0,gA.fileURLToPath)(he))}catch(he){throw ri("EXPORTS_RESOLUTION_FAILED",he.message,{unqualifiedPath:ho(oe),locator:fe,pkgJson:ne,subpath:ho(Y),conditions:le},he.code)}}function H(oe,le,{extensions:Be}){let fe;try{le.push(oe),fe=e.fakeFs.statSync(oe)}catch{}if(fe&&!fe.isDirectory())return e.fakeFs.realpathSync(oe);if(fe&&fe.isDirectory()){let ae;try{ae=JSON.parse(e.fakeFs.readFileSync(x.join(oe,xt.manifest),"utf8"))}catch{}let qe;if(ae&&ae.main&&(qe=x.resolve(oe,ae.main)),qe&&qe!==oe){let ne=H(qe,le,{extensions:Be});if(ne!==null)return ne}}for(let ae=0,qe=Be.length;ae{let Y=JSON.stringify(ne.name);if(fe.has(Y))return;fe.add(Y);let he=Ae(ne);for(let ie of he)if(B(ie).packagePeers.has(oe))ae(ie);else{let _e=Be.get(ie.name);typeof _e>"u"&&Be.set(ie.name,_e=new Set),_e.add(ie.reference)}};ae(le);let qe=[];for(let ne of[...Be.keys()].sort())for(let Y of[...Be.get(ne)].sort())qe.push({name:ne,reference:Y});return qe}function re(oe,{resolveIgnored:le=!1,includeDiscardFromLookup:Be=!1}={}){if(V(oe)&&!le)return null;let fe=x.relative(r.basePath,oe);fe.match(s)||(fe=`./${fe}`),fe.endsWith("/")||(fe=`${fe}/`);do{let ae=h.get(fe);if(typeof ae>"u"||ae.discardFromLookup&&!Be){fe=fe.substring(0,fe.lastIndexOf("/",fe.length-2)+1);continue}return ae.locator}while(fe!=="");return null}function M(oe){try{return e.fakeFs.readFileSync(K.toPortablePath(oe),"utf8")}catch(le){if(le.code==="ENOENT")return;throw le}}function F(oe,le,{considerBuiltins:Be=!0}={}){if(oe.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(oe==="pnpapi")return K.toPortablePath(e.pnpapiResolution);if(Be&&tQ(oe))return null;let fe=ho(oe),ae=le&&ho(le);if(le&&V(le)&&(!x.isAbsolute(oe)||re(oe)===null)){let Y=$(oe,le);if(Y===!1)throw ri("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) +`),t}var hle=J("module");var[Ji,aa]=process.versions.node.split(".").map(r=>parseInt(r,10)),aBt=Ji>16||Ji===16&&aa>=12,ABt=Ji>17||Ji===17&&aa>=5||Ji===16&&aa>=15,lBt=Ji>17||Ji===17&&aa>=1||Ji===16&&aa>14,fle=Ji>19||Ji===19&&aa>=2||Ji===18&&aa>=13,cBt=Ji>19||Ji===19&&aa>=3,uBt=Ji>18||Ji===18&&aa>=1||Ji===16&&aa>=17;var cze=new Set(hle.Module.builtinModules||Object.keys(process.binding("natives"))),tQ=r=>r.startsWith("node:")||cze.has(r);function ple(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(Br.resolveVirtual(K.toPortablePath(e)))),fle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $M(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let oe of["react-scripts","gatsby"]){let le=r.packageRegistry.get(oe);if(le)for(let Be of le.keys()){if(Be===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:oe,reference:Be})}}let{ignorePattern:g,packageRegistry:f,packageLocatorsByLocations:h}=r;function p(oe,le){return{fn:oe,args:le,error:null,result:null}}function C(oe){var qe,ne,Y,he,ie,de;let le=(Y=(ne=(qe=process.stderr)==null?void 0:qe.hasColors)==null?void 0:ne.call(qe))!=null?Y:process.stdout.isTTY,Be=(_e,Pt)=>`\x1B[${_e}m${Pt}\x1B[0m`,fe=oe.error;console.error(fe?Be("31;1",`\u2716 ${(he=oe.error)==null?void 0:he.message.replace(/\n.*/s,"")}`):Be("33;1","\u203C Resolution")),oe.args.length>0&&console.error();for(let _e of oe.args)console.error(` ${Be("37;1","In \u2190")} ${(0,_M.inspect)(_e,{colors:le,compact:!0})}`);oe.result&&(console.error(),console.error(` ${Be("37;1","Out \u2192")} ${(0,_M.inspect)(oe.result,{colors:le,compact:!0})}`));let ae=(de=(ie=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:ie.slice(2))!=null?de:[];if(ae.length>0){console.error();for(let _e of ae)console.error(` ${Be("38;5;244",_e)}`)}console.error()}function y(oe,le){if(e.allowDebug===!1)return le;if(Number.isFinite(i)){if(i>=2)return(...Be)=>{let fe=p(oe,Be);try{return fe.result=le(...Be)}catch(ae){throw fe.error=ae}finally{C(fe)}};if(i>=1)return(...Be)=>{try{return le(...Be)}catch(fe){let ae=p(oe,Be);throw ae.error=fe,C(ae),fe}}}return le}function B(oe){let le=A(oe);if(!le)throw ri("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return le}function v(oe){if(oe.name===null)return!0;for(let le of r.dependencyTreeRoots)if(le.name===oe.name&&le.reference===oe.reference)return!0;return!1}let D=new Set(["node","require",...gle("--conditions")]);function T(oe,le=D,Be){let fe=re(x.join(oe,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(fe===null)throw ri("INTERNAL",`The locator that owns the "${oe}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:ae}=B(fe),qe=x.join(ae,xt.manifest);if(!e.fakeFs.existsSync(qe))return null;let ne=JSON.parse(e.fakeFs.readFileSync(qe,"utf8"));if(ne.exports==null)return null;let Y=x.contains(ae,oe);if(Y===null)throw ri("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");Y!=="."&&!a.test(Y)&&(Y=`./${Y}`);try{let he=ole({packageJSONUrl:(0,uA.pathToFileURL)(K.fromPortablePath(qe)),packageSubpath:Y,exports:ne.exports,base:Be?(0,uA.pathToFileURL)(K.fromPortablePath(Be)):null,conditions:le});return K.toPortablePath((0,uA.fileURLToPath)(he))}catch(he){throw ri("EXPORTS_RESOLUTION_FAILED",he.message,{unqualifiedPath:po(oe),locator:fe,pkgJson:ne,subpath:po(Y),conditions:le},he.code)}}function H(oe,le,{extensions:Be}){let fe;try{le.push(oe),fe=e.fakeFs.statSync(oe)}catch{}if(fe&&!fe.isDirectory())return e.fakeFs.realpathSync(oe);if(fe&&fe.isDirectory()){let ae;try{ae=JSON.parse(e.fakeFs.readFileSync(x.join(oe,xt.manifest),"utf8"))}catch{}let qe;if(ae&&ae.main&&(qe=x.resolve(oe,ae.main)),qe&&qe!==oe){let ne=H(qe,le,{extensions:Be});if(ne!==null)return ne}}for(let ae=0,qe=Be.length;ae{let Y=JSON.stringify(ne.name);if(fe.has(Y))return;fe.add(Y);let he=Ae(ne);for(let ie of he)if(B(ie).packagePeers.has(oe))ae(ie);else{let _e=Be.get(ie.name);typeof _e>"u"&&Be.set(ie.name,_e=new Set),_e.add(ie.reference)}};ae(le);let qe=[];for(let ne of[...Be.keys()].sort())for(let Y of[...Be.get(ne)].sort())qe.push({name:ne,reference:Y});return qe}function re(oe,{resolveIgnored:le=!1,includeDiscardFromLookup:Be=!1}={}){if(V(oe)&&!le)return null;let fe=x.relative(r.basePath,oe);fe.match(s)||(fe=`./${fe}`),fe.endsWith("/")||(fe=`${fe}/`);do{let ae=h.get(fe);if(typeof ae>"u"||ae.discardFromLookup&&!Be){fe=fe.substring(0,fe.lastIndexOf("/",fe.length-2)+1);continue}return ae.locator}while(fe!=="");return null}function M(oe){try{return e.fakeFs.readFileSync(K.toPortablePath(oe),"utf8")}catch(le){if(le.code==="ENOENT")return;throw le}}function F(oe,le,{considerBuiltins:Be=!0}={}){if(oe.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(oe==="pnpapi")return K.toPortablePath(e.pnpapiResolution);if(Be&&tQ(oe))return null;let fe=po(oe),ae=le&&po(le);if(le&&V(le)&&(!x.isAbsolute(oe)||re(oe)===null)){let Y=$(oe,le);if(Y===!1)throw ri("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) Require request: "${fe}" Required by: ${ae} @@ -679,23 +679,23 @@ Required by: ${ie.name}@${ie.reference} (via ${ae}) Required package: ${Mr.name}@${Mr.reference}${Mr.name!==fe?` (via "${fe}")`:""} Required by: ${ie.name}@${ie.reference} (via ${ae}) -`,{request:fe,issuer:ae,dependencyLocator:Object.assign({},Mr)});let gi=ii.packageLocation;he?qe=x.join(gi,he):qe=gi}else if(x.isAbsolute(oe))qe=x.normalize(oe);else{if(!le)throw ri("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:fe,issuer:ae});let Y=x.resolve(le);le.match(o)?qe=x.normalize(x.join(Y,oe)):qe=x.normalize(x.join(x.dirname(Y),oe))}return x.normalize(qe)}function ue(oe,le,Be=D,fe){if(s.test(oe))return le;let ae=T(le,Be,fe);return ae?x.normalize(ae):le}function pe(oe,{extensions:le=Object.keys(gE.Module._extensions)}={}){var ae,qe;let Be=[],fe=H(oe,Be,{extensions:le});if(fe)return x.normalize(fe);{fle(Be.map(he=>K.fromPortablePath(he)));let ne=ho(oe),Y=re(oe);if(Y){let{packageLocation:he}=B(Y),ie=!0;try{e.fakeFs.accessSync(he)}catch(de){if((de==null?void 0:de.code)==="ENOENT")ie=!1;else{let _e=((qe=(ae=de==null?void 0:de.message)!=null?ae:de)!=null?qe:"empty exception thrown").replace(/^[A-Z]/,Pt=>Pt.toLowerCase());throw ri("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${_e}). +`,{request:fe,issuer:ae,dependencyLocator:Object.assign({},Mr)});let gi=ii.packageLocation;he?qe=x.join(gi,he):qe=gi}else if(x.isAbsolute(oe))qe=x.normalize(oe);else{if(!le)throw ri("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:fe,issuer:ae});let Y=x.resolve(le);le.match(o)?qe=x.normalize(x.join(Y,oe)):qe=x.normalize(x.join(x.dirname(Y),oe))}return x.normalize(qe)}function ue(oe,le,Be=D,fe){if(s.test(oe))return le;let ae=T(le,Be,fe);return ae?x.normalize(ae):le}function pe(oe,{extensions:le=Object.keys(gE.Module._extensions)}={}){var ae,qe;let Be=[],fe=H(oe,Be,{extensions:le});if(fe)return x.normalize(fe);{ple(Be.map(he=>K.fromPortablePath(he)));let ne=po(oe),Y=re(oe);if(Y){let{packageLocation:he}=B(Y),ie=!0;try{e.fakeFs.accessSync(he)}catch(de){if((de==null?void 0:de.code)==="ENOENT")ie=!1;else{let _e=((qe=(ae=de==null?void 0:de.message)!=null?ae:de)!=null?qe:"empty exception thrown").replace(/^[A-Z]/,Pt=>Pt.toLowerCase());throw ri("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${_e}). Missing package: ${Y.name}@${Y.reference} -Expected package location: ${ho(he)} +Expected package location: ${po(he)} `,{unqualifiedPath:ne,extensions:le})}}if(!ie){let de=he.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ri("QUALIFIED_PATH_RESOLUTION_FAILED",`${de} Missing package: ${Y.name}@${Y.reference} -Expected package location: ${ho(he)} +Expected package location: ${po(he)} `,{unqualifiedPath:ne,extensions:le})}}throw ri("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. Source path: ${ne} -${Be.map(he=>`Not found: ${ho(he)} -`).join("")}`,{unqualifiedPath:ne,extensions:le})}}function ke(oe,le,Be){var ae;if(!le)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let fe=sle({name:oe,base:(0,gA.pathToFileURL)(K.fromPortablePath(le)),conditions:(ae=Be.conditions)!=null?ae:D,readFileSyncFn:M});if(fe instanceof gA.URL)return pe(K.toPortablePath((0,gA.fileURLToPath)(fe)),{extensions:Be.extensions});if(fe.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return Fe(fe,le,Be)}function Fe(oe,le,Be={}){try{if(oe.startsWith("#"))return ke(oe,le,Be);let{considerBuiltins:fe,extensions:ae,conditions:qe}=Be,ne=F(oe,le,{considerBuiltins:fe});if(oe==="pnpapi")return ne;if(ne===null)return null;let Y=()=>le!==null?V(le):!1,he=(!fe||!tQ(oe))&&!Y()?ue(oe,ne,qe,le):ne;return pe(he,{extensions:ae})}catch(fe){throw Object.prototype.hasOwnProperty.call(fe,"pnpCode")&&Object.assign(fe.data,{request:ho(oe),issuer:le&&ho(le)}),fe}}function Ne(oe){let le=x.normalize(oe),Be=Br.resolveVirtual(le);return Be!==le?Be:null}return{VERSIONS:W,topLevel:_,getLocator:(oe,le)=>Array.isArray(le)?{name:le[0],reference:le[1]}:{name:oe,reference:le},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let oe=[];for(let[le,Be]of f)for(let fe of Be.keys())le!==null&&fe!==null&&oe.push({name:le,reference:fe});return oe},getPackageInformation:oe=>{let le=A(oe);if(le===null)return null;let Be=K.fromPortablePath(le.packageLocation);return{...le,packageLocation:Be}},findPackageLocator:oe=>re(K.toPortablePath(oe)),resolveToUnqualified:y("resolveToUnqualified",(oe,le,Be)=>{let fe=le!==null?K.toPortablePath(le):null,ae=F(K.toPortablePath(oe),fe,Be);return ae===null?null:K.fromPortablePath(ae)}),resolveUnqualified:y("resolveUnqualified",(oe,le)=>K.fromPortablePath(pe(K.toPortablePath(oe),le))),resolveRequest:y("resolveRequest",(oe,le,Be)=>{let fe=le!==null?K.toPortablePath(le):null,ae=Fe(K.toPortablePath(oe),fe,Be);return ae===null?null:K.fromPortablePath(ae)}),resolveVirtual:y("resolveVirtual",oe=>{let le=Ne(K.toPortablePath(oe));return le!==null?K.fromPortablePath(le):null})}}var SBt=(0,ple.promisify)(hle.readFile);var dle=(r,e,t)=>{let i=nE(r),n=UM(i,{basePath:e}),s=K.join(e,xt.pnpCjs);return ZM(n,{fakeFs:t,pnpapiResolution:s})};var $M=Pe(mle());var po={};ut(po,{checkAndReportManifestCompatibility:()=>Ile,checkManifestCompatibility:()=>Ele,extractBuildScripts:()=>rQ,getExtractHint:()=>eO,hasBindingGyp:()=>tO});function Ele(r){return P.isPackageCompatible(r,ws.getArchitectureSet())}function Ile(r,e,{configuration:t,report:i}){return Ele(r)?!0:(i==null||i.reportWarningOnce(76,`${P.prettyLocator(t,r)} The ${ws.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rQ(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${P.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${P.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${P.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):Ile(r,"build",{configuration:i,report:n})?s:[]}var cze=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function eO(r){return r.packageFs.getExtractHint({relevantExtensions:cze})}function tO(r){let e=x.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ut(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return x.resolve(e.get("pnpUnpluggedFolder"),P.slugifyLocator(r))}var uze=new Set([P.makeIdent(null,"open").identHash,P.makeIdent(null,"opn").identHash]),wl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=Bl(t.project).cjs;if(!O.existsSync(i))throw new Qe(`The project in ${ee.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ee.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=Ie.getFactoryWithDefault(this.pnpCache,i,()=>Ie.dynamicRequire(i,{cachingStrategy:Ie.CachingStrategy.FsTime})),s={name:P.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new Qe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=Bl(t.project).cjs;if(!O.existsSync(i))return null;let s=Ie.getFactoryWithDefault(this.pnpCache,i,()=>Ie.dynamicRequire(i,{cachingStrategy:Ie.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?P.makeLocator(P.parseIdent(s.name),s.reference):null}makeInstaller(e){return new Yu(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},Yu=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new Ie.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=P.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=P.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!=="SOFT",g,f;if(c||u){let D=a?P.devirtualizeLocator(e):e;g=this.customData.store.get(D.locatorHash),typeof g>"u"&&(g=await gze(t),e.linkType==="HARD"&&this.customData.store.set(D.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),f=this.opts.project.getDependencyMeta(D,e.version)}let h=c?rQ(e,g,f,{configuration:this.opts.project.configuration,report:this.opts.report}):[],p=u?await this.unplugPackageIfNeeded(e,g,t,f,i):t.packageFs;if(x.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let C=x.resolve(p.getRealPath(),t.prefixPath),y=rO(this.opts.project.cwd,C),B=new Map,v=new Set;if(a){for(let D of e.peerDependencies.values())B.set(P.stringifyIdent(D),null),v.add(P.stringifyIdent(D));if(!o){let D=P.devirtualizeLocator(e);this.virtualTemplates.set(D.locatorHash,{location:rO(this.opts.project.cwd,Br.resolveVirtual(C)),locator:D})}}return Ie.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:B,packagePeers:v,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:C,buildDirective:h.length>0?h:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(P.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=Bl(this.opts.project);if(O.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${ee.pretty(this.opts.project.configuration,xt.pnpJs,ee.Type.PATH)} file. You might need to manually update existing references to reference the new ${ee.pretty(this.opts.project.configuration,xt.pnpCjs,ee.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${ee.pretty(this.opts.project.configuration,"yarn sdks",ee.Type.CODE)}.`),await O.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await O.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await O.removePromise(e.cjs),await O.removePromise(this.opts.project.configuration.get("pnpDataPath")),await O.removePromise(e.esmLoader),await O.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:u,location:g}of this.virtualTemplates.values())Ie.getMapWithDefault(this.packageRegistry,P.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:P.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=Ie.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:P.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=Bl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await O.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=YAe(e);await O.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await O.removePromise(i)}else{let o=x.relative(x.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=jAe({...e,dataLocation:o});await O.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await O.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await O.changeFilePromise(t.esmLoader,(0,$M.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await O.removePromise(s);else for(let o of await O.readdirPromise(s)){let a=x.resolve(s,o);this.unpluggedPaths.has(a)||await O.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=x.join(n.cwd,"node_modules");if(i&&i.test(x.relative(this.opts.project.cwd,n.cwd))||!O.existsSync(s))continue;let o=await O.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(x.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<"u"?i.unplugged:uze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rQ(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=fE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Qo(n,{baseFs:t.packageFs,pathUtils:x}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=x.join(n,t.prefixPath,".ready");await O.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await O.mkdirPromise(n,{recursive:!0}),await O.copyPromise(n,Me.dot,{baseFs:t.packageFs,overwrite:!1}),await O.writeFilePromise(s,""))})),new qt(n))}getPackageInformation(e){let t=P.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${P.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${P.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=Ie.getMapWithDefault(this.packageRegistry,"@@disk"),i=rO(this.opts.project.cwd,e);return Ie.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function rO(r,e){let t=x.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function gze(r){var i;let e=(i=await ot.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new ot,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:eO(r),hasBindingGyp:tO(r)}}}var yle=Pe(Bn());var ju=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new Qe("This command can only be used if the `nodeLinker` option is set to `pnp`");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(h=>{let p=P.parseDescriptor(h),C=p.range!=="unknown"?p:P.makeDescriptor(p,"*");if(!vt.validRange(C.range))throw new Qe(`The range of the descriptor patterns must be a valid semver range (${P.prettyDescriptor(t,C)})`);return y=>{let B=P.stringifyIdent(y);return!yle.default.isMatch(B,P.stringifyIdent(C))||y.version&&!vt.satisfiesWithPrereleases(y.version,C.range)?!1:(o.delete(h),!0)}}),l=()=>{let h=[];for(let p of i.storedPackages.values())!i.tryWorkspaceByLocator(p)&&!P.isVirtualLocator(p)&&a.some(C=>C(p))&&h.push(p);return h},c=h=>{let p=new Set,C=[],y=(B,v)=>{if(!p.has(B.locatorHash)&&(p.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(D=>D(B))&&C.push(B),!(v>0&&!this.recursive)))for(let D of B.dependencies.values()){let T=i.storedResolutions.get(D.descriptorHash);if(!T)throw new Error("Assertion failed: The resolution should have been registered");let H=i.storedPackages.get(T);if(!H)throw new Error("Assertion failed: The package should have been registered");y(H,v+1)}};for(let B of h){let v=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!v)throw new Error("Assertion failed: The package should have been registered");y(v,0)}return C},u,g;if(this.all&&this.recursive?(u=l(),g="the project"):this.all?(u=c(i.workspaces),g="any workspace"):(u=c([n]),g="this workspace"),o.size>1)throw new Qe(`Patterns ${ee.prettyList(t,o,ee.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new Qe(`Pattern ${ee.prettyList(t,o,ee.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=Ie.sortMap(u,h=>P.stringifyLocator(h)),(await Ge.start({configuration:t,stdout:this.context.stdout,json:this.json},async h=>{var p;for(let C of u){let y=(p=C.version)!=null?p:"unknown",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(P.makeDescriptor(C,y));B.unplugged=!0,h.reportInfo(0,`Will unpack ${P.prettyLocator(t,C)} to ${ee.pretty(t,fE(C,{configuration:t}),ee.Type.PATH)}`),h.reportJson({locator:P.stringifyLocator(C),version:y})}await i.topLevelWorkspace.persistManifest(),h.reportSeparator(),await i.install({cache:s,report:h})})).exitCode()}};ju.paths=[["unplug"]],ju.usage=ve.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var Bl=r=>({cjs:x.join(r.cwd,xt.pnpCjs),cjsLegacy:x.join(r.cwd,xt.pnpJs),esmLoader:x.join(r.cwd,".pnp.loader.mjs")}),ble=r=>/\s/.test(r)?JSON.stringify(r):r;async function fze(r,e,t){let i=Bl(r),n=`--require ${ble(K.fromPortablePath(i.cjs))}`;if(O.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,Ble.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&wle.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(O.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function hze(r,e){let t=Bl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var pze={hooks:{populateYarnPaths:hze,setupScriptEnvironment:fze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:"ABSOLUTE_PATH",default:"./.pnp.data.json"}},linkers:[wl],commands:[ju]},dze=pze;var Rle=Pe(Ple());var cO=Pe(J("crypto")),Fle=Pe(J("fs")),Nle=1,kr="node_modules",iQ=".bin",Tle=".yarn-state.yml",Fze=1e3;var nQ=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await Ie.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await lO(t.project,{unrollAliases:!0}));if(n===null)throw new Qe("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(P.stringifyLocator(e));if(!s){let l=new Qe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code="LOCATOR_NOT_INSTALLED",l}let o=s.locations.sort((l,c)=>l.split(x.sep).length-c.split(x.sep).length),a=x.join(t.project.configuration.startingCwd,kr);return o.find(l=>x.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await Ie.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await lO(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sQ(x.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return P.parseLocator(a)}makeInstaller(e){return new AO(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},AO=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=x.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>"u"&&(n=await Nze(e,t),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,n)),!P.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(P.stringifyIdent(e))||s.set(P.stringifyIdent(e),e.reference);let a=e;if(P.isVirtualLocator(e)){a=P.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(P.stringifyIdent(g),null),o.add(P.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new Br({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await lO(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(f=>{var p,C;let h=this.opts.project.configuration.get("nmHoistingLimits");try{h=Ie.validateEnum(tE,(C=(p=f.manifest.installConfig)==null?void 0:p.hoistingLimits)!=null?C:h)}catch{let B=P.prettyWorkspace(this.opts.project.configuration,f);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(tE).join(", ")}, using default: "${h}"`)}return[f.relativeCwd,h]})),s=new Map(this.opts.project.workspaces.map(f=>{var p,C;let h=this.opts.project.configuration.get("nmSelfReferences");return h=(C=(p=f.manifest.installConfig)==null?void 0:p.selfReferences)!=null?C:h,[f.relativeCwd,h]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(f,h)=>Array.isArray(h)?{name:h[0],reference:h[1]}:{name:f,reference:h},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(f=>{let h=f.anchoredLocator;return{name:P.stringifyIdent(f.locator),reference:h.reference}}),getPackageInformation:f=>{let h=f.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:P.makeLocator(P.parseIdent(f.name),f.reference),p=this.localStore.get(h.locatorHash);if(typeof p>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return p.pnpNode},findPackageLocator:f=>{let h=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(f));if(h!==null){let p=h.anchoredLocator;return{name:P.stringifyIdent(p),reference:p.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:f=>K.fromPortablePath(Br.resolveVirtual(K.toPortablePath(f)))},{tree:a,errors:l,preserveSymlinksRequired:c}=rE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:f,text:h}of l)this.opts.report.reportError(f,h);return}let u=OM(a);await Uze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async f=>{let h=P.parseLocator(f),p=this.localStore.get(h.locatorHash);if(typeof p>"u")throw new Error("Assertion failed: Expected the slot to exist");return p.customPackageData.manifest}});let g=[];for(let[f,h]of u.entries()){if(Kle(f))continue;let p=P.parseLocator(f),C=this.localStore.get(p.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(C.pkg))continue;let y=po.extractBuildScripts(C.pkg,C.customPackageData,C.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:h.locations,locatorHash:p.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${ee.pretty(this.opts.project.configuration,"--preserve-symlinks",ee.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function Nze(r,e){var n;let t=(n=await ot.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new ot,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:po.getExtractHint(e),hasBindingGyp:po.hasBindingGyp(e)}}}async function Tze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will +${Be.map(he=>`Not found: ${po(he)} +`).join("")}`,{unqualifiedPath:ne,extensions:le})}}function ke(oe,le,Be){var ae;if(!le)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let fe=ale({name:oe,base:(0,uA.pathToFileURL)(K.fromPortablePath(le)),conditions:(ae=Be.conditions)!=null?ae:D,readFileSyncFn:M});if(fe instanceof uA.URL)return pe(K.toPortablePath((0,uA.fileURLToPath)(fe)),{extensions:Be.extensions});if(fe.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return Fe(fe,le,Be)}function Fe(oe,le,Be={}){try{if(oe.startsWith("#"))return ke(oe,le,Be);let{considerBuiltins:fe,extensions:ae,conditions:qe}=Be,ne=F(oe,le,{considerBuiltins:fe});if(oe==="pnpapi")return ne;if(ne===null)return null;let Y=()=>le!==null?V(le):!1,he=(!fe||!tQ(oe))&&!Y()?ue(oe,ne,qe,le):ne;return pe(he,{extensions:ae})}catch(fe){throw Object.prototype.hasOwnProperty.call(fe,"pnpCode")&&Object.assign(fe.data,{request:po(oe),issuer:le&&po(le)}),fe}}function Ne(oe){let le=x.normalize(oe),Be=Br.resolveVirtual(le);return Be!==le?Be:null}return{VERSIONS:W,topLevel:_,getLocator:(oe,le)=>Array.isArray(le)?{name:le[0],reference:le[1]}:{name:oe,reference:le},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let oe=[];for(let[le,Be]of f)for(let fe of Be.keys())le!==null&&fe!==null&&oe.push({name:le,reference:fe});return oe},getPackageInformation:oe=>{let le=A(oe);if(le===null)return null;let Be=K.fromPortablePath(le.packageLocation);return{...le,packageLocation:Be}},findPackageLocator:oe=>re(K.toPortablePath(oe)),resolveToUnqualified:y("resolveToUnqualified",(oe,le,Be)=>{let fe=le!==null?K.toPortablePath(le):null,ae=F(K.toPortablePath(oe),fe,Be);return ae===null?null:K.fromPortablePath(ae)}),resolveUnqualified:y("resolveUnqualified",(oe,le)=>K.fromPortablePath(pe(K.toPortablePath(oe),le))),resolveRequest:y("resolveRequest",(oe,le,Be)=>{let fe=le!==null?K.toPortablePath(le):null,ae=Fe(K.toPortablePath(oe),fe,Be);return ae===null?null:K.fromPortablePath(ae)}),resolveVirtual:y("resolveVirtual",oe=>{let le=Ne(K.toPortablePath(oe));return le!==null?K.fromPortablePath(le):null})}}var xBt=(0,Cle.promisify)(dle.readFile);var mle=(r,e,t)=>{let i=nE(r),n=GM(i,{basePath:e}),s=K.join(e,xt.pnpCjs);return $M(n,{fakeFs:t,pnpapiResolution:s})};var tO=Pe(Ile());var Co={};ut(Co,{checkAndReportManifestCompatibility:()=>wle,checkManifestCompatibility:()=>yle,extractBuildScripts:()=>rQ,getExtractHint:()=>rO,hasBindingGyp:()=>iO});function yle(r){return P.isPackageCompatible(r,ws.getArchitectureSet())}function wle(r,e,{configuration:t,report:i}){return yle(r)?!0:(i==null||i.reportWarningOnce(76,`${P.prettyLocator(t,r)} The ${ws.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rQ(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${P.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${P.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${P.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):wle(r,"build",{configuration:i,report:n})?s:[]}var gze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rO(r){return r.packageFs.getExtractHint({relevantExtensions:gze})}function iO(r){let e=x.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ut(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return x.resolve(e.get("pnpUnpluggedFolder"),P.slugifyLocator(r))}var fze=new Set([P.makeIdent(null,"open").identHash,P.makeIdent(null,"opn").identHash]),wl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=Bl(t.project).cjs;if(!O.existsSync(i))throw new Qe(`The project in ${ee.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ee.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=Ie.getFactoryWithDefault(this.pnpCache,i,()=>Ie.dynamicRequire(i,{cachingStrategy:Ie.CachingStrategy.FsTime})),s={name:P.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new Qe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=Bl(t.project).cjs;if(!O.existsSync(i))return null;let s=Ie.getFactoryWithDefault(this.pnpCache,i,()=>Ie.dynamicRequire(i,{cachingStrategy:Ie.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?P.makeLocator(P.parseIdent(s.name),s.reference):null}makeInstaller(e){return new Yu(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},Yu=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new Ie.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=P.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=P.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!=="SOFT",g,f;if(c||u){let D=a?P.devirtualizeLocator(e):e;g=this.customData.store.get(D.locatorHash),typeof g>"u"&&(g=await hze(t),e.linkType==="HARD"&&this.customData.store.set(D.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),f=this.opts.project.getDependencyMeta(D,e.version)}let h=c?rQ(e,g,f,{configuration:this.opts.project.configuration,report:this.opts.report}):[],p=u?await this.unplugPackageIfNeeded(e,g,t,f,i):t.packageFs;if(x.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let C=x.resolve(p.getRealPath(),t.prefixPath),y=nO(this.opts.project.cwd,C),B=new Map,v=new Set;if(a){for(let D of e.peerDependencies.values())B.set(P.stringifyIdent(D),null),v.add(P.stringifyIdent(D));if(!o){let D=P.devirtualizeLocator(e);this.virtualTemplates.set(D.locatorHash,{location:nO(this.opts.project.cwd,Br.resolveVirtual(C)),locator:D})}}return Ie.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:B,packagePeers:v,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:C,buildDirective:h.length>0?h:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(P.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=Bl(this.opts.project);if(O.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${ee.pretty(this.opts.project.configuration,xt.pnpJs,ee.Type.PATH)} file. You might need to manually update existing references to reference the new ${ee.pretty(this.opts.project.configuration,xt.pnpCjs,ee.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${ee.pretty(this.opts.project.configuration,"yarn sdks",ee.Type.CODE)}.`),await O.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await O.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await O.removePromise(e.cjs),await O.removePromise(this.opts.project.configuration.get("pnpDataPath")),await O.removePromise(e.esmLoader),await O.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:u,location:g}of this.virtualTemplates.values())Ie.getMapWithDefault(this.packageRegistry,P.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:P.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=Ie.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:P.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=Bl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await O.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=qAe(e);await O.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await O.removePromise(i)}else{let o=x.relative(x.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=JAe({...e,dataLocation:o});await O.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await O.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await O.changeFilePromise(t.esmLoader,(0,tO.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await O.removePromise(s);else for(let o of await O.readdirPromise(s)){let a=x.resolve(s,o);this.unpluggedPaths.has(a)||await O.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=x.join(n.cwd,"node_modules");if(i&&i.test(x.relative(this.opts.project.cwd,n.cwd))||!O.existsSync(s))continue;let o=await O.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(x.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<"u"?i.unplugged:fze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rQ(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=fE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new So(n,{baseFs:t.packageFs,pathUtils:x}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=x.join(n,t.prefixPath,".ready");await O.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await O.mkdirPromise(n,{recursive:!0}),await O.copyPromise(n,Me.dot,{baseFs:t.packageFs,overwrite:!1}),await O.writeFilePromise(s,""))})),new qt(n))}getPackageInformation(e){let t=P.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${P.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${P.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=Ie.getMapWithDefault(this.packageRegistry,"@@disk"),i=nO(this.opts.project.cwd,e);return Ie.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function nO(r,e){let t=x.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function hze(r){var i;let e=(i=await ot.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new ot,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rO(r),hasBindingGyp:iO(r)}}}var Ble=Pe(Bn());var ju=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new Qe("This command can only be used if the `nodeLinker` option is set to `pnp`");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(h=>{let p=P.parseDescriptor(h),C=p.range!=="unknown"?p:P.makeDescriptor(p,"*");if(!vt.validRange(C.range))throw new Qe(`The range of the descriptor patterns must be a valid semver range (${P.prettyDescriptor(t,C)})`);return y=>{let B=P.stringifyIdent(y);return!Ble.default.isMatch(B,P.stringifyIdent(C))||y.version&&!vt.satisfiesWithPrereleases(y.version,C.range)?!1:(o.delete(h),!0)}}),l=()=>{let h=[];for(let p of i.storedPackages.values())!i.tryWorkspaceByLocator(p)&&!P.isVirtualLocator(p)&&a.some(C=>C(p))&&h.push(p);return h},c=h=>{let p=new Set,C=[],y=(B,v)=>{if(!p.has(B.locatorHash)&&(p.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(D=>D(B))&&C.push(B),!(v>0&&!this.recursive)))for(let D of B.dependencies.values()){let T=i.storedResolutions.get(D.descriptorHash);if(!T)throw new Error("Assertion failed: The resolution should have been registered");let H=i.storedPackages.get(T);if(!H)throw new Error("Assertion failed: The package should have been registered");y(H,v+1)}};for(let B of h){let v=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!v)throw new Error("Assertion failed: The package should have been registered");y(v,0)}return C},u,g;if(this.all&&this.recursive?(u=l(),g="the project"):this.all?(u=c(i.workspaces),g="any workspace"):(u=c([n]),g="this workspace"),o.size>1)throw new Qe(`Patterns ${ee.prettyList(t,o,ee.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new Qe(`Pattern ${ee.prettyList(t,o,ee.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=Ie.sortMap(u,h=>P.stringifyLocator(h)),(await Ge.start({configuration:t,stdout:this.context.stdout,json:this.json},async h=>{var p;for(let C of u){let y=(p=C.version)!=null?p:"unknown",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(P.makeDescriptor(C,y));B.unplugged=!0,h.reportInfo(0,`Will unpack ${P.prettyLocator(t,C)} to ${ee.pretty(t,fE(C,{configuration:t}),ee.Type.PATH)}`),h.reportJson({locator:P.stringifyLocator(C),version:y})}await i.topLevelWorkspace.persistManifest(),h.reportSeparator(),await i.install({cache:s,report:h})})).exitCode()}};ju.paths=[["unplug"]],ju.usage=ve.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var Bl=r=>({cjs:x.join(r.cwd,xt.pnpCjs),cjsLegacy:x.join(r.cwd,xt.pnpJs),esmLoader:x.join(r.cwd,".pnp.loader.mjs")}),Sle=r=>/\s/.test(r)?JSON.stringify(r):r;async function pze(r,e,t){let i=Bl(r),n=`--require ${Sle(K.fromPortablePath(i.cjs))}`;if(O.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,Qle.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&ble.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(O.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function dze(r,e){let t=Bl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var Cze={hooks:{populateYarnPaths:dze,setupScriptEnvironment:pze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:"ABSOLUTE_PATH",default:"./.pnp.data.json"}},linkers:[wl],commands:[ju]},mze=Cze;var Nle=Pe(kle());var gO=Pe(J("crypto")),Tle=Pe(J("fs")),Lle=1,kr="node_modules",iQ=".bin",Mle=".yarn-state.yml",Tze=1e3;var nQ=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await Ie.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uO(t.project,{unrollAliases:!0}));if(n===null)throw new Qe("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(P.stringifyLocator(e));if(!s){let l=new Qe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code="LOCATOR_NOT_INSTALLED",l}let o=s.locations.sort((l,c)=>l.split(x.sep).length-c.split(x.sep).length),a=x.join(t.project.configuration.startingCwd,kr);return o.find(l=>x.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await Ie.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uO(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sQ(x.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return P.parseLocator(a)}makeInstaller(e){return new cO(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},cO=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=x.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>"u"&&(n=await Lze(e,t),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,n)),!P.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(P.stringifyIdent(e))||s.set(P.stringifyIdent(e),e.reference);let a=e;if(P.isVirtualLocator(e)){a=P.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(P.stringifyIdent(g),null),o.add(P.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new Br({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await uO(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(f=>{var p,C;let h=this.opts.project.configuration.get("nmHoistingLimits");try{h=Ie.validateEnum(tE,(C=(p=f.manifest.installConfig)==null?void 0:p.hoistingLimits)!=null?C:h)}catch{let B=P.prettyWorkspace(this.opts.project.configuration,f);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(tE).join(", ")}, using default: "${h}"`)}return[f.relativeCwd,h]})),s=new Map(this.opts.project.workspaces.map(f=>{var p,C;let h=this.opts.project.configuration.get("nmSelfReferences");return h=(C=(p=f.manifest.installConfig)==null?void 0:p.selfReferences)!=null?C:h,[f.relativeCwd,h]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(f,h)=>Array.isArray(h)?{name:h[0],reference:h[1]}:{name:f,reference:h},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(f=>{let h=f.anchoredLocator;return{name:P.stringifyIdent(f.locator),reference:h.reference}}),getPackageInformation:f=>{let h=f.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:P.makeLocator(P.parseIdent(f.name),f.reference),p=this.localStore.get(h.locatorHash);if(typeof p>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return p.pnpNode},findPackageLocator:f=>{let h=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(f));if(h!==null){let p=h.anchoredLocator;return{name:P.stringifyIdent(p),reference:p.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:f=>K.fromPortablePath(Br.resolveVirtual(K.toPortablePath(f)))},{tree:a,errors:l,preserveSymlinksRequired:c}=rE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:f,text:h}of l)this.opts.report.reportError(f,h);return}let u=UM(a);await Gze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async f=>{let h=P.parseLocator(f),p=this.localStore.get(h.locatorHash);if(typeof p>"u")throw new Error("Assertion failed: Expected the slot to exist");return p.customPackageData.manifest}});let g=[];for(let[f,h]of u.entries()){if(Hle(f))continue;let p=P.parseLocator(f),C=this.localStore.get(p.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(C.pkg))continue;let y=Co.extractBuildScripts(C.pkg,C.customPackageData,C.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:h.locations,locatorHash:p.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${ee.pretty(this.opts.project.configuration,"--preserve-symlinks",ee.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function Lze(r,e){var n;let t=(n=await ot.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new ot,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:Co.getExtractHint(e),hasBindingGyp:Co.hasBindingGyp(e)}}}async function Mze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will `,s+=`# cause your node_modules installation to become invalidated. `,s+=` `,s+=`__metadata: -`,s+=` version: ${Nle} +`,s+=` version: ${Lle} `,s+=` nmMode: ${i.value} `;let o=Array.from(e.keys()).sort(),a=P.stringifyLocator(r.topLevelWorkspace.anchoredLocator);for(let u of o){let g=e.get(u);s+=` `,s+=`${JSON.stringify(u)}: @@ -706,10 +706,10 @@ ${Be.map(he=>`Not found: ${ho(he)} `}if(u===a&&t.size>0){s+=` bin: `;for(let[f,h]of t){let p=x.contains(r.cwd,f);if(p===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=` ${JSON.stringify(p)}: `;for(let[C,y]of h){let B=x.relative(x.join(f,kr),y);s+=` ${JSON.stringify(C)}: ${JSON.stringify(B)} -`}}}}let l=r.cwd,c=x.join(l,kr,Tle);n&&await O.removePromise(c),await O.changeFilePromise(c,s,{automaticNewlines:!0})}async function lO(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=x.join(t,kr,Tle),n;try{n=await O.statPromise(i)}catch{}if(!n)return null;let s=yi(await O.readFilePromise(i,"utf8"));if(s.__metadata.version>Nle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(h=>x.join(t,h)),f=u.bin;if(f)for(let[h,p]of Object.entries(f)){let C=x.join(t,K.toPortablePath(h)),y=Ie.getMapWithDefault(l,C);for(let[B,v]of Object.entries(p))y.set(Ur(B),K.toPortablePath([C,kr,v].join(x.sep)))}if(a.set(c,{target:Me.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let h of u.aliases){let{scope:p,name:C}=P.parseLocator(c),y=P.makeLocator(P.makeIdent(p,C),h),B=P.stringifyLocator(y);a.set(B,{target:Me.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Lle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(x.sep).indexOf(kr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await O.statPromise(r):await O.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await O.unlinkPromise(r);return}}let t=await O.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=x.join(r,Ur(i.name));i.isDirectory()?(i.name!==kr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await O.unlinkPromise(n)}e.contentsOnly||await O.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Dle=4,sQ=(r,{skipPrefix:e})=>{let t=x.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(x.sep).filter(l=>l!==""),n=i.indexOf(kr),s=i.slice(0,n).join(x.sep),o=x.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Lle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&x.contains(e,s.target)!==null){let a=Ie.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sQ(o,{skipPrefix:e}),c=Ie.getFactoryWithDefault(t,a,i);for(let u=0;u{let t;try{process.platform==="win32"&&(t=await O.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await O.symlinkPromise(r,e,"junction"):await O.symlinkPromise(x.relative(x.dirname(e),r),e)};async function Mle(r,e,t){let i=x.join(r,Ur(`${cO.default.randomBytes(16).toString("hex")}.tmp`));try{await O.writeFilePromise(i,t);try{await O.linkPromise(i,e)}catch{}}finally{await O.unlinkPromise(i)}}async function Lze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===Ole.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=x.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await O.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(Ole||{}),Mze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await O.mkdirPromise(r,{recursive:!0});let o=async(c=Me.dot)=>{let u=x.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),f=new Map;for(let h of g){let p=x.join(c,h.name),C,y=x.join(u,h.name);if(h.isFile()){if(C={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await li.checksumFile(y,{baseFs:t,algorithm:"sha1"});C.digest=B}}else if(h.isDirectory())C={kind:"directory"};else if(h.isSymbolicLink())C={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(f.set(p,C),h.isDirectory()&&p!==kr){let B=await o(p);for(let[v,D]of B)f.set(v,D)}}return f},a;if(n.value==="hardlinks-global"&&i&&s){let c=x.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await O.readFilePromise(c,"utf8"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=x.join(e,c),f=x.join(r,c);if(u.kind==="directory")await O.mkdirPromise(f,{recursive:!0});else if(u.kind==="file"){let h=u.mtimeMs;await Lze({srcPath:g,dstPath:f,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==h&&(l=!0)}else u.kind==="symlink"&&await uO(x.resolve(x.dirname(f),u.symlinkTo),f)}if(n.value==="hardlinks-global"&&i&&l&&s){let c=x.join(i,s.substring(0,2),`${s.substring(2)}.json`);await O.removePromise(c),await Mle(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function Oze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,f,h)=>{let p=!0,C=x.join(c,u),y=new Set;if(u===kr||u.startsWith("@")){let v;try{v=O.statSync(C)}catch{}p=!!v,v?v.mtimeMs>t?(a=!0,y=new Set(O.readdirSync(C))):y=new Set(g.children.get(u).children.keys()):a=!0;let D=e.get(c);if(D){let T=x.join(c,kr,iQ),H;try{H=O.statSync(T)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let j=new Set(O.readdirSync(T)),$=new Map;s.set(c,$);for(let[V,W]of D)j.has(V)&&$.set(V,W)}else s.set(c,D)}}else p=h.has(u);let B=g.children.get(u);if(p){let{linkType:v,locator:D}=B,T={children:new Map,linkType:v,locator:D};if(f.children.set(u,T),D){let H=Ie.getSetWithDefault(o,D);H.add(C),o.set(D,H)}for(let H of B.children.keys())l(C,H,B,T,y)}else B.locator&&i.storedBuildState.delete(P.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:f}=u,h={children:new Map,linkType:g,locator:f};if(n.set(c,h),f){let p=Ie.getSetWithDefault(o,u.locator);p.add(c),o.set(u.locator,p)}u.children.has(kr)&&l(c,kr,u,h,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function Kle(r){let e=P.parseDescriptor(r);return P.isVirtualDescriptor(e)&&(e=P.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Kze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=Kle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,f]of c.bin){let h=x.join(l[0],f);f!==""&&O.existsSync(h)&&u.set(g,f)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=x.contains(t,a);if(c.locator&&g!==null){let f=n.get(c.locator);for(let[h,p]of f){let C=x.join(a,K.toPortablePath(p));u.set(Ur(h),C)}for(let[h,p]of c.children){let C=x.join(a,h),y=o(C,C,p);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[f,h]of c.children){let p=o(x.join(a,f),l,h);for(let[C,y]of p)u.set(C,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var kle=(r,e)=>{if(!r||!e)return r===e;let t=P.parseLocator(r);P.isVirtualLocator(t)&&(t=P.devirtualizeLocator(t));let i=P.parseLocator(e);return P.isVirtualLocator(i)&&(i=P.devirtualizeLocator(i)),P.areLocatorsEqual(t,i)};function gO(r){return x.join(r.get("globalFolder"),"store")}async function Uze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=x.join(i.cwd,kr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Oze(r.locationTree,r.binSymlinks,r.mtimeMs,i),f=Lle(e,{skipPrefix:i.cwd}),h=[],p=async({srcDir:V,dstDir:W,linkType:_,globalHardlinksStore:A,nmMode:Ae,packageChecksum:ge})=>{let re=(async()=>{try{_==="SOFT"?(await O.mkdirPromise(x.dirname(W),{recursive:!0}),await uO(x.resolve(V),W)):await Mze(W,V,{baseFs:t,globalHardlinksStore:A,nmMode:Ae,packageChecksum:ge})}catch(M){throw M.message=`While persisting ${V} -> ${W} ${M.message}`,M}finally{T.tick()}})().then(()=>h.splice(h.indexOf(re),1));h.push(re),h.length>Dle&&await Promise.race(h)},C=async(V,W,_)=>{let A=(async()=>{let Ae=async(ge,re,M)=>{try{M.innerLoop||await O.mkdirPromise(re,{recursive:!0});let F=await O.readdirPromise(ge,{withFileTypes:!0});for(let ue of F){if(!M.innerLoop&&ue.name===iQ)continue;let pe=x.join(ge,ue.name),ke=x.join(re,ue.name);ue.isDirectory()?(ue.name!==kr||M&&M.innerLoop)&&(await O.mkdirPromise(ke,{recursive:!0}),await Ae(pe,ke,{...M,innerLoop:!0})):$.value==="hardlinks-local"||$.value==="hardlinks-global"?await O.linkPromise(pe,ke):await O.copyFilePromise(pe,ke,Fle.default.constants.COPYFILE_FICLONE)}}catch(F){throw M.innerLoop||(F.message=`While cloning ${ge} -> ${re} ${F.message}`),F}finally{M.innerLoop||T.tick()}};await Ae(V,W,_)})().then(()=>h.splice(h.indexOf(A),1));h.push(A),h.length>Dle&&await Promise.race(h)},y=async(V,W,_)=>{if(_)for(let[A,Ae]of W.children){let ge=_.children.get(A);await y(x.join(V,A),Ae,ge)}else{W.children.has(kr)&&await sp(x.join(V,kr),{contentsOnly:!1});let A=x.basename(V)===kr&&f.has(x.join(x.dirname(V),x.sep));await sp(V,{contentsOnly:V===a,allowSymlink:A})}};for(let[V,W]of l){let _=f.get(V);for(let[A,Ae]of W.children){if(A===".")continue;let ge=_&&_.children.get(A),re=x.join(V,A);await y(re,Ae,ge)}}let B=async(V,W,_)=>{if(_){kle(W.locator,_.locator)||await sp(V,{contentsOnly:W.linkType==="HARD"});for(let[A,Ae]of W.children){let ge=_.children.get(A);await B(x.join(V,A),Ae,ge)}}else{W.children.has(kr)&&await sp(x.join(V,kr),{contentsOnly:!0});let A=x.basename(V)===kr&&f.has(x.join(x.dirname(V),x.sep));await sp(V,{contentsOnly:W.linkType==="HARD",allowSymlink:A})}};for(let[V,W]of f){let _=l.get(V);for(let[A,Ae]of W.children){if(A===".")continue;let ge=_&&_.children.get(A);await B(x.join(V,A),Ae,ge)}}let v=new Map,D=[];for(let[V,W]of u)for(let _ of W){let{locationRoot:A,segments:Ae}=sQ(_,{skipPrefix:i.cwd}),ge=f.get(A),re=A;if(ge){for(let M of Ae)if(re=x.join(re,M),ge=ge.children.get(M),!ge)break;if(ge){let M=kle(ge.locator,V),F=e.get(ge.locator),ue=F.target,pe=re,ke=F.linkType;if(M)v.has(ue)||v.set(ue,pe);else if(ue!==pe){let Fe=P.parseLocator(ge.locator);P.isVirtualLocator(Fe)&&(Fe=P.devirtualizeLocator(Fe)),D.push({srcDir:ue,dstDir:pe,linkType:ke,realLocatorHash:Fe.locatorHash})}}}}for(let[V,{locations:W}]of e.entries())for(let _ of W){let{locationRoot:A,segments:Ae}=sQ(_,{skipPrefix:i.cwd}),ge=l.get(A),re=f.get(A),M=A,F=e.get(V),ue=P.parseLocator(V);P.isVirtualLocator(ue)&&(ue=P.devirtualizeLocator(ue));let pe=ue.locatorHash,ke=F.target,Fe=_;if(ke===Fe)continue;let Ne=F.linkType;for(let oe of Ae)re=re.children.get(oe);if(!ge)D.push({srcDir:ke,dstDir:Fe,linkType:Ne,realLocatorHash:pe});else for(let oe of Ae)if(M=x.join(M,oe),ge=ge.children.get(oe),!ge){D.push({srcDir:ke,dstDir:Fe,linkType:Ne,realLocatorHash:pe});break}}let T=vi.progressViaCounter(D.length),H=n.reportProgress(T),j=i.configuration.get("nmMode"),$={value:j};try{let V=$.value==="hardlinks-global"?`${gO(i.configuration)}/v1`:null;if(V&&!await O.existsPromise(V)){await O.mkdirpPromise(V);for(let _=0;_<256;_++)await O.mkdirPromise(x.join(V,_.toString(16).padStart(2,"0")))}for(let _ of D)(_.linkType==="SOFT"||!v.has(_.srcDir))&&(v.set(_.srcDir,_.dstDir),await p({..._,globalHardlinksStore:V,nmMode:$,packageChecksum:o.get(_.realLocatorHash)||null}));await Promise.all(h),h.length=0;for(let _ of D){let A=v.get(_.srcDir);_.linkType!=="SOFT"&&_.dstDir!==A&&await C(A,_.dstDir,{nmMode:$})}await Promise.all(h),await O.mkdirPromise(a,{recursive:!0});let W=await Kze(e,f,i.cwd,{loadManifest:s});await Hze(c,W,i.cwd),await Tze(i,e,W,$,{installChangedByUser:g}),j=="hardlinks-global"&&$.value=="hardlinks-local"&&n.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{H.stop()}}async function Hze(r,e,t){for(let i of r.keys()){if(x.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=x.join(i,kr,iQ);await O.removePromise(n)}}for(let[i,n]of e){if(x.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=x.join(i,kr,iQ),o=r.get(i)||new Map;await O.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await O.removePromise(x.join(s,a)),process.platform==="win32"&&await O.removePromise(x.join(s,Ur(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=x.join(s,a);c!==l&&(process.platform==="win32"?await(0,Rle.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await O.removePromise(u),await uO(l,u),x.contains(t,await O.realpathPromise(l))!==null&&await O.chmodPromise(l,493)))}}}var oQ=class extends wl{constructor(){super(...arguments);this.mode="loose"}makeInstaller(t){return new fO(t)}},fO=class extends Yu{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(t){let i=new Br({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),n=dle(t,this.opts.project.cwd,i),{tree:s,errors:o}=rE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:f}of o)this.opts.report.reportError(g,f);return}let a=new Map;t.fallbackPool=a;let l=(g,f)=>{let h=P.parseLocator(f.locator),p=P.stringifyIdent(h);p===g?a.set(g,h.reference):a.set(g,[p,h.reference])},c=x.join(this.opts.project.cwd,xt.nodeModules),u=s.get(c);if(!(typeof u>"u")){if("target"in u)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let g of u.dirList){let f=x.join(c,g),h=s.get(f);if(typeof h>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in h)l(g,h);else for(let p of h.dirList){let C=x.join(f,p),y=s.get(C);if(typeof y>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in y)l(`${g}/${p}`,y);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var Gze={hooks:{cleanGlobalArtifacts:async r=>{let e=gO(r);await O.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[nQ,oQ]},Yze=Gze;var u1={};ut(u1,{default:()=>ZVe,npmConfigUtils:()=>or,npmHttpUtils:()=>Ot,npmPublishUtils:()=>Cp});var qle=Pe(Xr());var gr="npm:";var Ot={};ut(Ot,{AuthType:()=>jle,customPackageError:()=>qze,del:()=>zze,get:()=>mo,getIdentUrl:()=>Ql,handleInvalidAuthenticationError:()=>bl,post:()=>Jze,put:()=>Wze});var CO=Pe(Km()),Yle=J("url");var or={};ut(or,{RegistryType:()=>Ule,getAuditRegistry:()=>jze,getAuthConfiguration:()=>dO,getDefaultRegistry:()=>aQ,getPublishRegistry:()=>Hle,getRegistryConfiguration:()=>Gle,getScopeConfiguration:()=>pO,getScopeRegistry:()=>fA,normalizeRegistry:()=>Co});var Ule=(i=>(i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry",i))(Ule||{});function Co(r){return r.replace(/\/$/,"")}function jze(r,{configuration:e}){let t=e.get("npmAuditRegistry");return t!==null?Co(t):Hle(r,{configuration:e})}function Hle(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?Co(r.publishConfig.registry):r.name?fA(r.name.scope,{configuration:e,type:"npmPublishRegistry"}):aQ({configuration:e,type:"npmPublishRegistry"})}function fA(r,{configuration:e,type:t="npmRegistryServer"}){let i=pO(r,{configuration:e});if(i===null)return aQ({configuration:e,type:t});let n=i.get(t);return n===null?aQ({configuration:e,type:t}):Co(n)}function aQ({configuration:r,type:e="npmRegistryServer"}){let t=r.get(e);return Co(t!==null?t:r.get("npmRegistryServer"))}function Gle(r,{configuration:e}){let t=e.get("npmRegistries"),i=Co(r),n=t.get(i);if(typeof n<"u")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s<"u"?s:null}function pO(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function dO(r,{configuration:e,ident:t}){let i=t&&pO(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:Gle(r,{configuration:e})||e}var jle=(n=>(n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH",n))(jle||{});async function bl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(lQ(r))throw new at(41,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new at(41,`Invalid authentication (${typeof e!="string"?`as ${await Xze(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function qze(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function Ql(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function mo(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>"u"&&(s=fA(i.scope,{configuration:e})),i&&i.scope&&typeof n>"u"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let a=await AQ(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Xt.get(r.charAt(0)==="/"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await bl(l,{registry:s,configuration:e,headers:t}),l}}async function Jze(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await AQ(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Xt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lQ(g)||l)throw await bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await mO(g,{configuration:i});let f={...n,...op(l)};try{return await Xt.post(`${a}${r}`,e,{configuration:i,headers:f,...c})}catch(h){throw await bl(h,{attemptedAs:t,registry:a,configuration:i,headers:n}),h}}}async function Wze(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await AQ(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Xt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lQ(g))throw await bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await mO(g,{configuration:i});let f={...n,...op(l)};try{return await Xt.put(`${a}${r}`,e,{configuration:i,headers:f,...c})}catch(h){throw await bl(h,{attemptedAs:t,registry:a,configuration:i,headers:n}),h}}}async function zze(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>"u"&&(o=fA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let c=await AQ(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...op(a)});try{return await Xt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!lQ(u)||a)throw await bl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await mO(u,{configuration:t});let g={...i,...op(a)};try{return await Xt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(f){throw await bl(f,{attemptedAs:e,registry:o,configuration:t,headers:i}),f}}}async function AQ(r,{authType:e=2,configuration:t,ident:i}){let n=dO(r,{configuration:t,ident:i}),s=Vze(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new at(33,"No authentication configured for request");return null}function Vze(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function Xze(r,e,{configuration:t}){var i;if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(i=(await Xt.get(new Yle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function mO(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers["npm-notice"];if(t&&(await Ge.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\/\/\S+)/g,ee.pretty(e,"$1",ee.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\/\/\S+)/i);if(o&&ws.openUrl){let{openNow:a}=await(0,CO.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await ws.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` -`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:i}=await(0,CO.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` -`),i}function lQ(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cQ=class{supports(e,t){if(!e.reference.startsWith(gr))return!1;let{selector:i,params:n}=P.parseRange(e.reference);return!(!qle.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=P.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await mo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await mi.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var uQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(gr)||!P.tryParseDescriptor(e.range.slice(gr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=P.parseDescriptor(e.range.slice(gr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=P.parseDescriptor(e.range.slice(gr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=P.parseDescriptor(e.range.slice(gr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var Jle=Pe(Xr()),Wle=J("url");var Ls=class{supports(e,t){if(!e.reference.startsWith(gr))return!1;let i=new Wle.URL(e.reference);return!(!Jle.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await mo(Ls.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await mo(Ls.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await mi.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ls.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=vt.clean(e.reference.slice(gr.length));if(t===null)throw new at(10,"The npm semver resolver got selected, but the version isn't semver");return`${Ql(e)}/-/${e.name}-${t}.tgz`}};var zle=Pe(Xr());var gQ=P.makeIdent(null,"node-gyp"),Zze=/\b(node-gyp|prebuild-install)\b/,fQ=class{supportsDescriptor(e,t){return e.range.startsWith(gr)?!!vt.validRange(e.range.slice(gr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(gr))return!1;let{selector:i}=P.parseRange(e.reference);return!!zle.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=vt.validRange(e.range.slice(gr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(gr.length)}`);let s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=Ie.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new vt.SemVer(c);if(n.test(u))return u}catch{}return Ie.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=P.makeLocator(e,`${gr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ls.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:P.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=vt.validRange(e.range.slice(gr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(gr.length)}`);return Ie.mapAndFilter(t,s=>{try{let{selector:o}=P.parseRange(s,{requireProtocol:gr}),a=new vt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return Ie.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>P.makeLocator(e,s))}async resolve(e,t){let{selector:i}=P.parseRange(e.reference),n=vt.clean(i);if(n===null)throw new at(10,"The npm semver resolver got selected, but the version isn't semver");let s=await mo(Ql(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new at(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new at(16,`Registry failed to return reference "${n}"`);let o=new ot;if(o.load(s.versions[n]),!o.dependencies.has(gQ.identHash)&&!o.peerDependencies.has(gQ.identHash)){for(let a of o.scripts.values())if(a.match(Zze)){o.dependencies.set(gQ.identHash,P.makeDescriptor(gQ,"latest")),t.report.reportWarningOnce(32,`${P.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=P.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:"node",linkType:"HARD",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var hQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(gr)||!Rf.test(e.range.slice(gr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(gr.length),s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new at(15,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new at(16,`Registry failed to return tag "${n}"`);let a=o[n],l=P.makeLocator(e,`${gr}${a}`),c=s.versions[a].dist.tarball;return Ls.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[P.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Cp={};ut(Cp,{getGitHead:()=>VVe,getPublishAccess:()=>Oue,getReadmeContent:()=>Kue,makePublishBody:()=>zVe});var o1={};ut(o1,{default:()=>DVe,packUtils:()=>ca});var ca={};ut(ca,{genPackList:()=>MQ,genPackStream:()=>s1,genPackageManifest:()=>Que,hasPackScripts:()=>i1,prepareForPack:()=>n1});var r1=Pe(Bn()),Bue=Pe(Eue()),bue=J("zlib"),EVe=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],IVe=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function i1(r){return!!(Wt.hasWorkspaceScript(r,"prepack")||Wt.hasWorkspaceScript(r,"postpack"))}async function n1(r,{report:e},t){await Wt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=x.join(r.cwd,ot.fileName);await O.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:O}),await t()}finally{await Wt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function s1(r,e){var s,o;typeof e>"u"&&(e=await MQ(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(x.normalize(a));for(let a of r.manifest.bin.values())t.add(x.normalize(a));let i=Bue.default.pack();process.nextTick(async()=>{for(let a of e){let l=x.normalize(a),c=x.resolve(r.cwd,l),u=x.join("package",l),g=await O.lstatPromise(c),f={name:u,mtime:new Date(xr.SAFE_TIME*1e3)},h=t.has(l)?493:420,p,C,y=new Promise((v,D)=>{p=v,C=D}),B=v=>{v?C(v):p()};if(g.isFile()){let v;l==="package.json"?v=Buffer.from(JSON.stringify(await Que(r),null,2)):v=await O.readFilePromise(c),i.entry({...f,mode:h,type:"file"},v,B)}else g.isSymbolicLink()?i.entry({...f,mode:h,type:"symlink",linkname:await O.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,bue.createGzip)();return i.pipe(n),n}async function Que(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function MQ(r){var g,f,h,p,C,y,B,v;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let D of IVe)i.reject.push(D);for(let D of EVe)i.accept.push(D);i.reject.push(t.get("rcFilename"));let n=D=>{if(D===null||!D.startsWith(`${r.cwd}/`))return;let T=x.relative(r.cwd,D),H=x.resolve(Me.root,T);i.reject.push(H)};n(x.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(D=>D.populateYarnPaths,e,D=>{n(D)});for(let D of e.workspaces){let T=x.relative(r.cwd,D.cwd);T!==""&&!T.match(/^(\.\.)?\//)&&i.reject.push(`/${T}`)}let s={accept:[],reject:[]},o=(f=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?f:r.manifest.main,a=(p=(h=r.manifest.publishConfig)==null?void 0:h.module)!=null?p:r.manifest.module,l=(y=(C=r.manifest.publishConfig)==null?void 0:C.browser)!=null?y:r.manifest.browser,c=(v=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?v:r.manifest.bin;o!=null&&s.accept.push(x.resolve(Me.root,o)),a!=null&&s.accept.push(x.resolve(Me.root,a)),typeof l=="string"&&s.accept.push(x.resolve(Me.root,l));for(let D of c.values())s.accept.push(x.resolve(Me.root,D));if(l instanceof Map)for(let[D,T]of l.entries())s.accept.push(x.resolve(Me.root,D)),typeof T=="string"&&s.accept.push(x.resolve(Me.root,T));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let D of r.manifest.files)Sue(s.accept,D,{cwd:Me.root})}return await yVe(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function yVe(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new So(r),o=[[Me.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!yue(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,f=!1;if(!e||a!==Me.root)for(let C of u)g=g||C===".gitignore",f=f||C===".npmignore";let h=f?await Iue(s,a,".npmignore"):g?await Iue(s,a,".gitignore"):null,p=h!==null?[h].concat(l):l;yue(a,{globalList:t,ignoreLists:l})&&(p=[...l,{accept:[],reject:["**/*"]}]);for(let C of u)o.push([x.resolve(a,C),p])}else(c.isFile()||c.isSymbolicLink())&&n.push(x.relative(Me.root,a))}return n.sort()}async function Iue(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(x.join(e,t),"utf8");for(let s of n.split(/\n/g))Sue(i.reject,s,{cwd:e});return i}function wVe(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=x.resolve(e,r)),t&&(r=`!${r}`),r}function Sue(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(wVe(i,{cwd:t}))}function yue(r,{globalList:e,ignoreLists:t}){let i=LQ(r,e.accept);if(i!==0)return i===2;let n=LQ(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=LQ(r,s.accept);if(o!==0)return o===2;let a=LQ(r,s.reject);if(a!==0)return a===1}return!1}function LQ(r,e){let t=e,i=[];for(let n=0;n{await n1(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await MQ(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await s1(n,u),f=O.createWriteStream(o);g.pipe(f),await new Promise(h=>{f.on("finish",h)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${ee.pretty(t,o,ee.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};Vu.paths=[["pack"]],Vu.usage=ve.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function BVe(r,{workspace:e}){let t=r.replace("%s",bVe(e)).replace("%v",QVe(e));return K.toPortablePath(t)}function bVe(r){return r.manifest.name!==null?P.slugifyIdent(r.manifest.name):"package"}function QVe(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var SVe=["dependencies","devDependencies","peerDependencies"],vVe="workspace:",xVe=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of SVe)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=P.parseRange(o.range);if(l.protocol===vVe)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new at(21,`${P.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;P.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?P.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][P.stringifyIdent(o)]=c}}},PVe={hooks:{beforeWorkspacePacking:xVe},commands:[Vu]},DVe=PVe;var Tue=J("crypto"),Lue=Pe(Nue()),Mue=J("url");async function zVe(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.manifest.name,a=r.manifest.version,l=P.stringifyIdent(o),c=(0,Tue.createHash)("sha1").update(e).digest("hex"),u=Lue.default.fromData(e).toString(),g=t!=null?t:Oue(r,o),f=await Kue(r),h=await ca.genPackageManifest(r),p=`${l}-${a}.tgz`,C=new Mue.URL(`${Co(n)}/${l}/-/${p}`);return{_id:l,_attachments:{[p]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:l,access:g,["dist-tags"]:{[i]:a},versions:{[a]:{...h,_id:`${l}@${a}`,name:l,version:a,gitHead:s,dist:{shasum:c,integrity:u,tarball:C.toString()}}},readme:f}}async function VVe(r){try{let{stdout:e}=await Cr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}function Oue(r,e){let t=r.project.configuration;return r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?r.manifest.publishConfig.access:t.get("npmPublishAccess")!==null?t.get("npmPublishAccess"):e.scope?"restricted":"public"}async function Kue(r){let e=K.toPortablePath(`${r.cwd}/README.md`),t=r.manifest.name,n=`# ${P.stringifyIdent(t)} -`;try{n=await O.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var c1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Uue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},XVe={configuration:{...c1,...Uue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...c1,...Uue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Co,valueDefinition:{description:"",type:"SHAPE",properties:{...c1}}}},fetchers:[cQ,Ls],resolvers:[uQ,fQ,hQ]},ZVe=XVe;var p1={};ut(p1,{default:()=>a9e});var kE=Pe(Bn());ls();var OQ=(i=>(i.All="all",i.Production="production",i.Development="development",i))(OQ||{}),KQ=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(KQ||{});var DE=["info","low","moderate","high","critical"];function Gue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function _Ve(r,e){return new Set([...r].filter(t=>!e.has(t)))}function $Ve(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(f=>f.manifest),s=new Set(n.map(f=>[...f.dependencies].map(([h,p])=>h)).flat()),o=new Set(n.map(f=>[...f.devDependencies].map(([h,p])=>h)).flat()),a=i.map(f=>[...f.dependencies.values()]).flat(),l=a.filter(f=>s.has(f.identHash)).map(f=>f.descriptorHash),c=a.filter(f=>o.has(f.identHash)).map(f=>f.descriptorHash),u=Gue(r,l),g=Gue(r,c);return _Ve(g,u)}function Yue(r){let e={};for(let t of r)e[P.stringifyIdent(t)]=P.parseRange(t.range).selector;return e}function jue(r){if(typeof r>"u")return new Set(DE);let e=DE.indexOf(r),t=DE.slice(e);return new Set(t)}function e9e(r,e){let t=jue(e),i={};for(let n of t)i[n]=r[n];return i}function que(r,e){var i;let t=e9e(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function Jue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=jue(e);n=n.filter(a=>o.has(a.severity))}for(let o of Ie.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:ee.tuple(ee.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:ee.tuple(ee.Type.NUMBER,o.id)},Issue:{label:"Issue",value:ee.tuple(ee.Type.NO_HINT,o.title)},URL:{label:"URL",value:ee.tuple(ee.Type.URL,o.url)},Severity:{label:"Severity",value:ee.tuple(ee.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:ee.tuple(ee.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:ee.tuple(ee.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:ee.tuple(ee.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:ee.tuple(ee.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function Wue(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Yue([...o,...l].filter(c=>P.parseRange(c.range).protocol===null))}function zue(r,e,{all:t}){var s;let i=$Ve(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[P.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Yue(o.dependencies.values()),dev:i.has(P.convertLocatorToDescriptor(o).descriptorHash)};return n}var _u=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Zi(OQ)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Zi(KQ)});this.excludes=z.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=z.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let s=Wue(i,n,{all:this.all,environment:this.environment}),o=zue(i,n,{all:this.all});if(!this.recursive)for(let C of Object.keys(o))Object.prototype.hasOwnProperty.call(s,C)?o[C].requires={}:delete o[C];let a=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes]));if(a){for(let C of Object.keys(s))kE.default.isMatch(C,a)&&delete s[C];for(let C of Object.keys(o))kE.default.isMatch(C,a)&&delete o[C];for(let C of Object.keys(o))for(let y of Object.keys(o[C].requires))kE.default.isMatch(y,a)&&delete o[C].requires[y]}let l={requires:s,dependencies:o},c=or.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ra.start({configuration:t,stdout:this.context.stdout},async()=>{u=await Ot.post("/-/npm/v1/security/audits/quick",l,{authType:Ot.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let f=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(f){for(let C of Object.keys(u.advisories))if(kE.default.isMatch(C,f)){let y=u.advisories[C],B=0;y.findings.forEach(v=>B+=v.paths.length),u.metadata.vulnerabilities[y.severity]-=B,delete u.advisories[C]}}let h=que(u.metadata.vulnerabilities,this.severity);return!this.json&&h?(es.emitTree(Jue(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Ge.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async C=>{C.reportJson(u),h||C.reportInfo(1,"No audit suggestions")})).exitCode()}};_u.paths=[["npm","audit"]],_u.usage=ve.Usage({description:"perform a vulnerability audit against the installed packages",details:` +`}}}}let l=r.cwd,c=x.join(l,kr,Mle);n&&await O.removePromise(c),await O.changeFilePromise(c,s,{automaticNewlines:!0})}async function uO(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=x.join(t,kr,Mle),n;try{n=await O.statPromise(i)}catch{}if(!n)return null;let s=yi(await O.readFilePromise(i,"utf8"));if(s.__metadata.version>Lle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(h=>x.join(t,h)),f=u.bin;if(f)for(let[h,p]of Object.entries(f)){let C=x.join(t,K.toPortablePath(h)),y=Ie.getMapWithDefault(l,C);for(let[B,v]of Object.entries(p))y.set(Jr(B),K.toPortablePath([C,kr,v].join(x.sep)))}if(a.set(c,{target:Me.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let h of u.aliases){let{scope:p,name:C}=P.parseLocator(c),y=P.makeLocator(P.makeIdent(p,C),h),B=P.stringifyLocator(y);a.set(B,{target:Me.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Ole(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(x.sep).indexOf(kr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await O.statPromise(r):await O.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await O.unlinkPromise(r);return}}let t=await O.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=x.join(r,Jr(i.name));i.isDirectory()?(i.name!==kr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await O.unlinkPromise(n)}e.contentsOnly||await O.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Rle=4,sQ=(r,{skipPrefix:e})=>{let t=x.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(x.sep).filter(l=>l!==""),n=i.indexOf(kr),s=i.slice(0,n).join(x.sep),o=x.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Ole=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&x.contains(e,s.target)!==null){let a=Ie.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sQ(o,{skipPrefix:e}),c=Ie.getFactoryWithDefault(t,a,i);for(let u=0;u{let t;try{process.platform==="win32"&&(t=await O.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await O.symlinkPromise(r,e,"junction"):await O.symlinkPromise(x.relative(x.dirname(e),r),e)};async function Kle(r,e,t){let i=x.join(r,Jr(`${gO.default.randomBytes(16).toString("hex")}.tmp`));try{await O.writeFilePromise(i,t);try{await O.linkPromise(i,e)}catch{}}finally{await O.unlinkPromise(i)}}async function Oze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===Ule.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=x.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await O.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(Ule||{}),Kze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await O.mkdirPromise(r,{recursive:!0});let o=async(c=Me.dot)=>{let u=x.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),f=new Map;for(let h of g){let p=x.join(c,h.name),C,y=x.join(u,h.name);if(h.isFile()){if(C={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await li.checksumFile(y,{baseFs:t,algorithm:"sha1"});C.digest=B}}else if(h.isDirectory())C={kind:"directory"};else if(h.isSymbolicLink())C={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(f.set(p,C),h.isDirectory()&&p!==kr){let B=await o(p);for(let[v,D]of B)f.set(v,D)}}return f},a;if(n.value==="hardlinks-global"&&i&&s){let c=x.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await O.readFilePromise(c,"utf8"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=x.join(e,c),f=x.join(r,c);if(u.kind==="directory")await O.mkdirPromise(f,{recursive:!0});else if(u.kind==="file"){let h=u.mtimeMs;await Oze({srcPath:g,dstPath:f,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==h&&(l=!0)}else u.kind==="symlink"&&await fO(x.resolve(x.dirname(f),u.symlinkTo),f)}if(n.value==="hardlinks-global"&&i&&l&&s){let c=x.join(i,s.substring(0,2),`${s.substring(2)}.json`);await O.removePromise(c),await Kle(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function Uze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,f,h)=>{let p=!0,C=x.join(c,u),y=new Set;if(u===kr||u.startsWith("@")){let v;try{v=O.statSync(C)}catch{}p=!!v,v?v.mtimeMs>t?(a=!0,y=new Set(O.readdirSync(C))):y=new Set(g.children.get(u).children.keys()):a=!0;let D=e.get(c);if(D){let T=x.join(c,kr,iQ),H;try{H=O.statSync(T)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let j=new Set(O.readdirSync(T)),$=new Map;s.set(c,$);for(let[V,W]of D)j.has(V)&&$.set(V,W)}else s.set(c,D)}}else p=h.has(u);let B=g.children.get(u);if(p){let{linkType:v,locator:D}=B,T={children:new Map,linkType:v,locator:D};if(f.children.set(u,T),D){let H=Ie.getSetWithDefault(o,D);H.add(C),o.set(D,H)}for(let H of B.children.keys())l(C,H,B,T,y)}else B.locator&&i.storedBuildState.delete(P.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:f}=u,h={children:new Map,linkType:g,locator:f};if(n.set(c,h),f){let p=Ie.getSetWithDefault(o,u.locator);p.add(c),o.set(u.locator,p)}u.children.has(kr)&&l(c,kr,u,h,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function Hle(r){let e=P.parseDescriptor(r);return P.isVirtualDescriptor(e)&&(e=P.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Hze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=Hle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,f]of c.bin){let h=x.join(l[0],f);f!==""&&O.existsSync(h)&&u.set(g,f)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=x.contains(t,a);if(c.locator&&g!==null){let f=n.get(c.locator);for(let[h,p]of f){let C=x.join(a,K.toPortablePath(p));u.set(Jr(h),C)}for(let[h,p]of c.children){let C=x.join(a,h),y=o(C,C,p);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[f,h]of c.children){let p=o(x.join(a,f),l,h);for(let[C,y]of p)u.set(C,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var Fle=(r,e)=>{if(!r||!e)return r===e;let t=P.parseLocator(r);P.isVirtualLocator(t)&&(t=P.devirtualizeLocator(t));let i=P.parseLocator(e);return P.isVirtualLocator(i)&&(i=P.devirtualizeLocator(i)),P.areLocatorsEqual(t,i)};function hO(r){return x.join(r.get("globalFolder"),"store")}async function Gze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=x.join(i.cwd,kr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Uze(r.locationTree,r.binSymlinks,r.mtimeMs,i),f=Ole(e,{skipPrefix:i.cwd}),h=[],p=async({srcDir:V,dstDir:W,linkType:_,globalHardlinksStore:A,nmMode:Ae,packageChecksum:ge})=>{let re=(async()=>{try{_==="SOFT"?(await O.mkdirPromise(x.dirname(W),{recursive:!0}),await fO(x.resolve(V),W)):await Kze(W,V,{baseFs:t,globalHardlinksStore:A,nmMode:Ae,packageChecksum:ge})}catch(M){throw M.message=`While persisting ${V} -> ${W} ${M.message}`,M}finally{T.tick()}})().then(()=>h.splice(h.indexOf(re),1));h.push(re),h.length>Rle&&await Promise.race(h)},C=async(V,W,_)=>{let A=(async()=>{let Ae=async(ge,re,M)=>{try{M.innerLoop||await O.mkdirPromise(re,{recursive:!0});let F=await O.readdirPromise(ge,{withFileTypes:!0});for(let ue of F){if(!M.innerLoop&&ue.name===iQ)continue;let pe=x.join(ge,ue.name),ke=x.join(re,ue.name);ue.isDirectory()?(ue.name!==kr||M&&M.innerLoop)&&(await O.mkdirPromise(ke,{recursive:!0}),await Ae(pe,ke,{...M,innerLoop:!0})):$.value==="hardlinks-local"||$.value==="hardlinks-global"?await O.linkPromise(pe,ke):await O.copyFilePromise(pe,ke,Tle.default.constants.COPYFILE_FICLONE)}}catch(F){throw M.innerLoop||(F.message=`While cloning ${ge} -> ${re} ${F.message}`),F}finally{M.innerLoop||T.tick()}};await Ae(V,W,_)})().then(()=>h.splice(h.indexOf(A),1));h.push(A),h.length>Rle&&await Promise.race(h)},y=async(V,W,_)=>{if(_)for(let[A,Ae]of W.children){let ge=_.children.get(A);await y(x.join(V,A),Ae,ge)}else{W.children.has(kr)&&await sp(x.join(V,kr),{contentsOnly:!1});let A=x.basename(V)===kr&&f.has(x.join(x.dirname(V),x.sep));await sp(V,{contentsOnly:V===a,allowSymlink:A})}};for(let[V,W]of l){let _=f.get(V);for(let[A,Ae]of W.children){if(A===".")continue;let ge=_&&_.children.get(A),re=x.join(V,A);await y(re,Ae,ge)}}let B=async(V,W,_)=>{if(_){Fle(W.locator,_.locator)||await sp(V,{contentsOnly:W.linkType==="HARD"});for(let[A,Ae]of W.children){let ge=_.children.get(A);await B(x.join(V,A),Ae,ge)}}else{W.children.has(kr)&&await sp(x.join(V,kr),{contentsOnly:!0});let A=x.basename(V)===kr&&f.has(x.join(x.dirname(V),x.sep));await sp(V,{contentsOnly:W.linkType==="HARD",allowSymlink:A})}};for(let[V,W]of f){let _=l.get(V);for(let[A,Ae]of W.children){if(A===".")continue;let ge=_&&_.children.get(A);await B(x.join(V,A),Ae,ge)}}let v=new Map,D=[];for(let[V,W]of u)for(let _ of W){let{locationRoot:A,segments:Ae}=sQ(_,{skipPrefix:i.cwd}),ge=f.get(A),re=A;if(ge){for(let M of Ae)if(re=x.join(re,M),ge=ge.children.get(M),!ge)break;if(ge){let M=Fle(ge.locator,V),F=e.get(ge.locator),ue=F.target,pe=re,ke=F.linkType;if(M)v.has(ue)||v.set(ue,pe);else if(ue!==pe){let Fe=P.parseLocator(ge.locator);P.isVirtualLocator(Fe)&&(Fe=P.devirtualizeLocator(Fe)),D.push({srcDir:ue,dstDir:pe,linkType:ke,realLocatorHash:Fe.locatorHash})}}}}for(let[V,{locations:W}]of e.entries())for(let _ of W){let{locationRoot:A,segments:Ae}=sQ(_,{skipPrefix:i.cwd}),ge=l.get(A),re=f.get(A),M=A,F=e.get(V),ue=P.parseLocator(V);P.isVirtualLocator(ue)&&(ue=P.devirtualizeLocator(ue));let pe=ue.locatorHash,ke=F.target,Fe=_;if(ke===Fe)continue;let Ne=F.linkType;for(let oe of Ae)re=re.children.get(oe);if(!ge)D.push({srcDir:ke,dstDir:Fe,linkType:Ne,realLocatorHash:pe});else for(let oe of Ae)if(M=x.join(M,oe),ge=ge.children.get(oe),!ge){D.push({srcDir:ke,dstDir:Fe,linkType:Ne,realLocatorHash:pe});break}}let T=vi.progressViaCounter(D.length),H=n.reportProgress(T),j=i.configuration.get("nmMode"),$={value:j};try{let V=$.value==="hardlinks-global"?`${hO(i.configuration)}/v1`:null;if(V&&!await O.existsPromise(V)){await O.mkdirpPromise(V);for(let _=0;_<256;_++)await O.mkdirPromise(x.join(V,_.toString(16).padStart(2,"0")))}for(let _ of D)(_.linkType==="SOFT"||!v.has(_.srcDir))&&(v.set(_.srcDir,_.dstDir),await p({..._,globalHardlinksStore:V,nmMode:$,packageChecksum:o.get(_.realLocatorHash)||null}));await Promise.all(h),h.length=0;for(let _ of D){let A=v.get(_.srcDir);_.linkType!=="SOFT"&&_.dstDir!==A&&await C(A,_.dstDir,{nmMode:$})}await Promise.all(h),await O.mkdirPromise(a,{recursive:!0});let W=await Hze(e,f,i.cwd,{loadManifest:s});await Yze(c,W,i.cwd),await Mze(i,e,W,$,{installChangedByUser:g}),j=="hardlinks-global"&&$.value=="hardlinks-local"&&n.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{H.stop()}}async function Yze(r,e,t){for(let i of r.keys()){if(x.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=x.join(i,kr,iQ);await O.removePromise(n)}}for(let[i,n]of e){if(x.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=x.join(i,kr,iQ),o=r.get(i)||new Map;await O.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await O.removePromise(x.join(s,a)),process.platform==="win32"&&await O.removePromise(x.join(s,Jr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=x.join(s,a);c!==l&&(process.platform==="win32"?await(0,Nle.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await O.removePromise(u),await fO(l,u),x.contains(t,await O.realpathPromise(l))!==null&&await O.chmodPromise(l,493)))}}}var oQ=class extends wl{constructor(){super(...arguments);this.mode="loose"}makeInstaller(t){return new pO(t)}},pO=class extends Yu{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(t){let i=new Br({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),n=mle(t,this.opts.project.cwd,i),{tree:s,errors:o}=rE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:f}of o)this.opts.report.reportError(g,f);return}let a=new Map;t.fallbackPool=a;let l=(g,f)=>{let h=P.parseLocator(f.locator),p=P.stringifyIdent(h);p===g?a.set(g,h.reference):a.set(g,[p,h.reference])},c=x.join(this.opts.project.cwd,xt.nodeModules),u=s.get(c);if(!(typeof u>"u")){if("target"in u)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let g of u.dirList){let f=x.join(c,g),h=s.get(f);if(typeof h>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in h)l(g,h);else for(let p of h.dirList){let C=x.join(f,p),y=s.get(C);if(typeof y>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in y)l(`${g}/${p}`,y);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var jze={hooks:{cleanGlobalArtifacts:async r=>{let e=hO(r);await O.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[nQ,oQ]},qze=jze;var f1={};ut(f1,{default:()=>$Ve,npmConfigUtils:()=>or,npmHttpUtils:()=>Ot,npmPublishUtils:()=>Cp});var Wle=Pe(Xr());var gr="npm:";var Ot={};ut(Ot,{AuthType:()=>Jle,customPackageError:()=>Wze,del:()=>Xze,get:()=>Eo,getIdentUrl:()=>Ql,handleInvalidAuthenticationError:()=>bl,post:()=>zze,put:()=>Vze});var EO=Pe(Km()),qle=J("url");var or={};ut(or,{RegistryType:()=>Gle,getAuditRegistry:()=>Jze,getAuthConfiguration:()=>mO,getDefaultRegistry:()=>aQ,getPublishRegistry:()=>Yle,getRegistryConfiguration:()=>jle,getScopeConfiguration:()=>CO,getScopeRegistry:()=>gA,normalizeRegistry:()=>mo});var Gle=(i=>(i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry",i))(Gle||{});function mo(r){return r.replace(/\/$/,"")}function Jze(r,{configuration:e}){let t=e.get("npmAuditRegistry");return t!==null?mo(t):Yle(r,{configuration:e})}function Yle(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?mo(r.publishConfig.registry):r.name?gA(r.name.scope,{configuration:e,type:"npmPublishRegistry"}):aQ({configuration:e,type:"npmPublishRegistry"})}function gA(r,{configuration:e,type:t="npmRegistryServer"}){let i=CO(r,{configuration:e});if(i===null)return aQ({configuration:e,type:t});let n=i.get(t);return n===null?aQ({configuration:e,type:t}):mo(n)}function aQ({configuration:r,type:e="npmRegistryServer"}){let t=r.get(e);return mo(t!==null?t:r.get("npmRegistryServer"))}function jle(r,{configuration:e}){let t=e.get("npmRegistries"),i=mo(r),n=t.get(i);if(typeof n<"u")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s<"u"?s:null}function CO(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function mO(r,{configuration:e,ident:t}){let i=t&&CO(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:jle(r,{configuration:e})||e}var Jle=(n=>(n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH",n))(Jle||{});async function bl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(lQ(r))throw new at(41,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new at(41,`Invalid authentication (${typeof e!="string"?`as ${await _ze(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function Wze(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function Ql(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function Eo(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>"u"&&(s=gA(i.scope,{configuration:e})),i&&i.scope&&typeof n>"u"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let a=await AQ(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Xt.get(r.charAt(0)==="/"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await bl(l,{registry:s,configuration:e,headers:t}),l}}async function zze(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=gA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await AQ(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Xt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lQ(g)||l)throw await bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IO(g,{configuration:i});let f={...n,...op(l)};try{return await Xt.post(`${a}${r}`,e,{configuration:i,headers:f,...c})}catch(h){throw await bl(h,{attemptedAs:t,registry:a,configuration:i,headers:n}),h}}}async function Vze(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=gA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await AQ(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Xt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lQ(g))throw await bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IO(g,{configuration:i});let f={...n,...op(l)};try{return await Xt.put(`${a}${r}`,e,{configuration:i,headers:f,...c})}catch(h){throw await bl(h,{attemptedAs:t,registry:a,configuration:i,headers:n}),h}}}async function Xze(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>"u"&&(o=gA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let c=await AQ(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...op(a)});try{return await Xt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!lQ(u)||a)throw await bl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await IO(u,{configuration:t});let g={...i,...op(a)};try{return await Xt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(f){throw await bl(f,{attemptedAs:e,registry:o,configuration:t,headers:i}),f}}}async function AQ(r,{authType:e=2,configuration:t,ident:i}){let n=mO(r,{configuration:t,ident:i}),s=Zze(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new at(33,"No authentication configured for request");return null}function Zze(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function _ze(r,e,{configuration:t}){var i;if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(i=(await Xt.get(new qle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function IO(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers["npm-notice"];if(t&&(await Ge.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\/\/\S+)/g,ee.pretty(e,"$1",ee.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\/\/\S+)/i);if(o&&ws.openUrl){let{openNow:a}=await(0,EO.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await ws.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` +`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:i}=await(0,EO.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` +`),i}function lQ(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cQ=class{supports(e,t){if(!e.reference.startsWith(gr))return!1;let{selector:i,params:n}=P.parseRange(e.reference);return!(!Wle.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=P.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await Eo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await mi.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var uQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(gr)||!P.tryParseDescriptor(e.range.slice(gr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=P.parseDescriptor(e.range.slice(gr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=P.parseDescriptor(e.range.slice(gr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=P.parseDescriptor(e.range.slice(gr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var zle=Pe(Xr()),Vle=J("url");var Ls=class{supports(e,t){if(!e.reference.startsWith(gr))return!1;let i=new Vle.URL(e.reference);return!(!zle.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await Eo(Ls.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await Eo(Ls.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await mi.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=gA(e.scope,{configuration:i}),s=Ls.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=vt.clean(e.reference.slice(gr.length));if(t===null)throw new at(10,"The npm semver resolver got selected, but the version isn't semver");return`${Ql(e)}/-/${e.name}-${t}.tgz`}};var Xle=Pe(Xr());var gQ=P.makeIdent(null,"node-gyp"),$ze=/\b(node-gyp|prebuild-install)\b/,fQ=class{supportsDescriptor(e,t){return e.range.startsWith(gr)?!!vt.validRange(e.range.slice(gr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(gr))return!1;let{selector:i}=P.parseRange(e.reference);return!!Xle.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=vt.validRange(e.range.slice(gr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(gr.length)}`);let s=await Eo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=Ie.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new vt.SemVer(c);if(n.test(u))return u}catch{}return Ie.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=P.makeLocator(e,`${gr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ls.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:P.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=vt.validRange(e.range.slice(gr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(gr.length)}`);return Ie.mapAndFilter(t,s=>{try{let{selector:o}=P.parseRange(s,{requireProtocol:gr}),a=new vt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return Ie.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>P.makeLocator(e,s))}async resolve(e,t){let{selector:i}=P.parseRange(e.reference),n=vt.clean(i);if(n===null)throw new at(10,"The npm semver resolver got selected, but the version isn't semver");let s=await Eo(Ql(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new at(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new at(16,`Registry failed to return reference "${n}"`);let o=new ot;if(o.load(s.versions[n]),!o.dependencies.has(gQ.identHash)&&!o.peerDependencies.has(gQ.identHash)){for(let a of o.scripts.values())if(a.match($ze)){o.dependencies.set(gQ.identHash,P.makeDescriptor(gQ,"latest")),t.report.reportWarningOnce(32,`${P.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=P.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:"node",linkType:"HARD",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var hQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(gr)||!Rf.test(e.range.slice(gr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(gr.length),s=await Eo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new at(15,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new at(16,`Registry failed to return tag "${n}"`);let a=o[n],l=P.makeLocator(e,`${gr}${a}`),c=s.versions[a].dist.tarball;return Ls.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[P.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Cp={};ut(Cp,{getGitHead:()=>ZVe,getPublishAccess:()=>Uue,getReadmeContent:()=>Hue,makePublishBody:()=>XVe});var A1={};ut(A1,{default:()=>RVe,packUtils:()=>ca});var ca={};ut(ca,{genPackList:()=>MQ,genPackStream:()=>a1,genPackageManifest:()=>vue,hasPackScripts:()=>s1,prepareForPack:()=>o1});var n1=Pe(Bn()),Que=Pe(yue()),Sue=J("zlib"),yVe=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],wVe=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function s1(r){return!!(Wt.hasWorkspaceScript(r,"prepack")||Wt.hasWorkspaceScript(r,"postpack"))}async function o1(r,{report:e},t){await Wt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=x.join(r.cwd,ot.fileName);await O.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:O}),await t()}finally{await Wt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function a1(r,e){var s,o;typeof e>"u"&&(e=await MQ(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(x.normalize(a));for(let a of r.manifest.bin.values())t.add(x.normalize(a));let i=Que.default.pack();process.nextTick(async()=>{for(let a of e){let l=x.normalize(a),c=x.resolve(r.cwd,l),u=x.join("package",l),g=await O.lstatPromise(c),f={name:u,mtime:new Date(xr.SAFE_TIME*1e3)},h=t.has(l)?493:420,p,C,y=new Promise((v,D)=>{p=v,C=D}),B=v=>{v?C(v):p()};if(g.isFile()){let v;l==="package.json"?v=Buffer.from(JSON.stringify(await vue(r),null,2)):v=await O.readFilePromise(c),i.entry({...f,mode:h,type:"file"},v,B)}else g.isSymbolicLink()?i.entry({...f,mode:h,type:"symlink",linkname:await O.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Sue.createGzip)();return i.pipe(n),n}async function vue(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function MQ(r){var g,f,h,p,C,y,B,v;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let D of wVe)i.reject.push(D);for(let D of yVe)i.accept.push(D);i.reject.push(t.get("rcFilename"));let n=D=>{if(D===null||!D.startsWith(`${r.cwd}/`))return;let T=x.relative(r.cwd,D),H=x.resolve(Me.root,T);i.reject.push(H)};n(x.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(D=>D.populateYarnPaths,e,D=>{n(D)});for(let D of e.workspaces){let T=x.relative(r.cwd,D.cwd);T!==""&&!T.match(/^(\.\.)?\//)&&i.reject.push(`/${T}`)}let s={accept:[],reject:[]},o=(f=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?f:r.manifest.main,a=(p=(h=r.manifest.publishConfig)==null?void 0:h.module)!=null?p:r.manifest.module,l=(y=(C=r.manifest.publishConfig)==null?void 0:C.browser)!=null?y:r.manifest.browser,c=(v=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?v:r.manifest.bin;o!=null&&s.accept.push(x.resolve(Me.root,o)),a!=null&&s.accept.push(x.resolve(Me.root,a)),typeof l=="string"&&s.accept.push(x.resolve(Me.root,l));for(let D of c.values())s.accept.push(x.resolve(Me.root,D));if(l instanceof Map)for(let[D,T]of l.entries())s.accept.push(x.resolve(Me.root,D)),typeof T=="string"&&s.accept.push(x.resolve(Me.root,T));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let D of r.manifest.files)xue(s.accept,D,{cwd:Me.root})}return await BVe(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function BVe(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new vo(r),o=[[Me.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!Bue(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,f=!1;if(!e||a!==Me.root)for(let C of u)g=g||C===".gitignore",f=f||C===".npmignore";let h=f?await wue(s,a,".npmignore"):g?await wue(s,a,".gitignore"):null,p=h!==null?[h].concat(l):l;Bue(a,{globalList:t,ignoreLists:l})&&(p=[...l,{accept:[],reject:["**/*"]}]);for(let C of u)o.push([x.resolve(a,C),p])}else(c.isFile()||c.isSymbolicLink())&&n.push(x.relative(Me.root,a))}return n.sort()}async function wue(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(x.join(e,t),"utf8");for(let s of n.split(/\n/g))xue(i.reject,s,{cwd:e});return i}function bVe(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=x.resolve(e,r)),t&&(r=`!${r}`),r}function xue(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(bVe(i,{cwd:t}))}function Bue(r,{globalList:e,ignoreLists:t}){let i=LQ(r,e.accept);if(i!==0)return i===2;let n=LQ(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=LQ(r,s.accept);if(o!==0)return o===2;let a=LQ(r,s.reject);if(a!==0)return a===1}return!1}function LQ(r,e){let t=e,i=[];for(let n=0;n{await o1(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await MQ(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await a1(n,u),f=O.createWriteStream(o);g.pipe(f),await new Promise(h=>{f.on("finish",h)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${ee.pretty(t,o,ee.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};Vu.paths=[["pack"]],Vu.usage=ve.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function QVe(r,{workspace:e}){let t=r.replace("%s",SVe(e)).replace("%v",vVe(e));return K.toPortablePath(t)}function SVe(r){return r.manifest.name!==null?P.slugifyIdent(r.manifest.name):"package"}function vVe(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var xVe=["dependencies","devDependencies","peerDependencies"],PVe="workspace:",DVe=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of xVe)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=P.parseRange(o.range);if(l.protocol===PVe)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new at(21,`${P.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;P.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?P.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][P.stringifyIdent(o)]=c}}},kVe={hooks:{beforeWorkspacePacking:DVe},commands:[Vu]},RVe=kVe;var Mue=J("crypto"),Oue=Pe(Lue()),Kue=J("url");async function XVe(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.manifest.name,a=r.manifest.version,l=P.stringifyIdent(o),c=(0,Mue.createHash)("sha1").update(e).digest("hex"),u=Oue.default.fromData(e).toString(),g=t!=null?t:Uue(r,o),f=await Hue(r),h=await ca.genPackageManifest(r),p=`${l}-${a}.tgz`,C=new Kue.URL(`${mo(n)}/${l}/-/${p}`);return{_id:l,_attachments:{[p]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:l,access:g,["dist-tags"]:{[i]:a},versions:{[a]:{...h,_id:`${l}@${a}`,name:l,version:a,gitHead:s,dist:{shasum:c,integrity:u,tarball:C.toString()}}},readme:f}}async function ZVe(r){try{let{stdout:e}=await Cr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}function Uue(r,e){let t=r.project.configuration;return r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?r.manifest.publishConfig.access:t.get("npmPublishAccess")!==null?t.get("npmPublishAccess"):e.scope?"restricted":"public"}async function Hue(r){let e=K.toPortablePath(`${r.cwd}/README.md`),t=r.manifest.name,n=`# ${P.stringifyIdent(t)} +`;try{n=await O.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Gue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},_Ve={configuration:{...g1,...Gue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Gue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:mo,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cQ,Ls],resolvers:[uQ,fQ,hQ]},$Ve=_Ve;var C1={};ut(C1,{default:()=>l9e});var kE=Pe(Bn());ls();var OQ=(i=>(i.All="all",i.Production="production",i.Development="development",i))(OQ||{}),KQ=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(KQ||{});var DE=["info","low","moderate","high","critical"];function jue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function e9e(r,e){return new Set([...r].filter(t=>!e.has(t)))}function t9e(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(f=>f.manifest),s=new Set(n.map(f=>[...f.dependencies].map(([h,p])=>h)).flat()),o=new Set(n.map(f=>[...f.devDependencies].map(([h,p])=>h)).flat()),a=i.map(f=>[...f.dependencies.values()]).flat(),l=a.filter(f=>s.has(f.identHash)).map(f=>f.descriptorHash),c=a.filter(f=>o.has(f.identHash)).map(f=>f.descriptorHash),u=jue(r,l),g=jue(r,c);return e9e(g,u)}function que(r){let e={};for(let t of r)e[P.stringifyIdent(t)]=P.parseRange(t.range).selector;return e}function Jue(r){if(typeof r>"u")return new Set(DE);let e=DE.indexOf(r),t=DE.slice(e);return new Set(t)}function r9e(r,e){let t=Jue(e),i={};for(let n of t)i[n]=r[n];return i}function Wue(r,e){var i;let t=r9e(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function zue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Jue(e);n=n.filter(a=>o.has(a.severity))}for(let o of Ie.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:ee.tuple(ee.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:ee.tuple(ee.Type.NUMBER,o.id)},Issue:{label:"Issue",value:ee.tuple(ee.Type.NO_HINT,o.title)},URL:{label:"URL",value:ee.tuple(ee.Type.URL,o.url)},Severity:{label:"Severity",value:ee.tuple(ee.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:ee.tuple(ee.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:ee.tuple(ee.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:ee.tuple(ee.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:ee.tuple(ee.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function Vue(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return que([...o,...l].filter(c=>P.parseRange(c.range).protocol===null))}function Xue(r,e,{all:t}){var s;let i=t9e(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[P.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:que(o.dependencies.values()),dev:i.has(P.convertLocatorToDescriptor(o).descriptorHash)};return n}var _u=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Zi(OQ)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Zi(KQ)});this.excludes=z.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=z.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let s=Vue(i,n,{all:this.all,environment:this.environment}),o=Xue(i,n,{all:this.all});if(!this.recursive)for(let C of Object.keys(o))Object.prototype.hasOwnProperty.call(s,C)?o[C].requires={}:delete o[C];let a=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes]));if(a){for(let C of Object.keys(s))kE.default.isMatch(C,a)&&delete s[C];for(let C of Object.keys(o))kE.default.isMatch(C,a)&&delete o[C];for(let C of Object.keys(o))for(let y of Object.keys(o[C].requires))kE.default.isMatch(y,a)&&delete o[C].requires[y]}let l={requires:s,dependencies:o},c=or.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ra.start({configuration:t,stdout:this.context.stdout},async()=>{u=await Ot.post("/-/npm/v1/security/audits/quick",l,{authType:Ot.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let f=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(f){for(let C of Object.keys(u.advisories))if(kE.default.isMatch(C,f)){let y=u.advisories[C],B=0;y.findings.forEach(v=>B+=v.paths.length),u.metadata.vulnerabilities[y.severity]-=B,delete u.advisories[C]}}let h=Wue(u.metadata.vulnerabilities,this.severity);return!this.json&&h?(es.emitTree(zue(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Ge.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async C=>{C.reportJson(u),h||C.reportInfo(1,"No audit suggestions")})).exitCode()}};_u.paths=[["npm","audit"]],_u.usage=ve.Usage({description:"perform a vulnerability audit against the installed packages",details:` This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. @@ -723,25 +723,25 @@ ${Be.map(he=>`Not found: ${ho(he)} If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why \` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});var g1=Pe(Xr()),f1=J("util"),$u=class extends De{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await Ge.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let T=i.topLevelWorkspace;if(!T.manifest.name)throw new Qe(`Missing ${ee.pretty(t,"name",ee.Type.CODE)} field in ${K.fromPortablePath(x.join(T.cwd,xt.manifest))}`);u=P.makeDescriptor(T.manifest.name,"unknown")}else u=P.parseDescriptor(c);let g=Ot.getIdentUrl(u),f=h1(await Ot.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:Ot.customPackageError})),h=Object.keys(f.versions).sort(g1.default.compareLoose),C=f["dist-tags"].latest||h[h.length-1],y=vt.validRange(u.range);if(y){let T=g1.default.maxSatisfying(h,y);T!==null?C=T:(l.reportWarning(0,`Unmet range ${P.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(f["dist-tags"],u.range)?C=f["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${P.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=f.versions[C],v={...f,...B,version:C,versions:h},D;if(n!==null){D={};for(let T of n){let H=v[T];if(typeof H<"u")D[T]=H;else{l.reportWarning(1,`The ${ee.pretty(t,T,ee.Type.CODE)} field doesn't exist inside ${P.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete v.dist,delete v.readme,delete v.users),D=v;l.reportJson(D),this.json||s.push(D)}});f1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(` -`),this.context.stdout.write(`${(0,f1.inspect)(l,{depth:1/0,colors:!0,compact:!1})} -`);return a.exitCode()}};$u.paths=[["npm","info"]],$u.usage=ve.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function h1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=h1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=h1(r[t]);i&&(e[t]=i)}return e}else return r||null}var Vue=Pe(Km()),eg=class extends De{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Ge.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await i9e({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=`/-/user/org.couchdb.user:${encodeURIComponent(o.name)}`,l=await Ot.put(a,o,{attemptedAs:o.name,configuration:t,registry:i,jsonResponse:!0,authType:Ot.AuthType.NO_AUTH});return await r9e(i,l.token,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};eg.paths=[["npm","login"]],eg.usage=ve.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function UQ({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?or.getScopeRegistry(r,{configuration:t,type:or.RegistryType.PUBLISH_REGISTRY}):r?or.getScopeRegistry(r,{configuration:t}):e?or.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):or.getDefaultRegistry({configuration:t})}async function r9e(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=Ie.isIndexableObject(a)?a:{},c=l[o],u=Ie.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await ye.updateHomeConfiguration(s)}async function i9e({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${ee.pretty(r,e,ee.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let{username:o,password:a}=await(0,Vue.prompt)([{type:"input",name:"username",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:"password",name:"password",message:s?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),{name:o,password:a}}var mp=new Set(["npmAuthIdent","npmAuthToken"]),tg=class extends De{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=z.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await ye.find(this.context.cwd,this.context.plugins),a=P.makeIdent((c=this.scope)!=null?c:null,"pkg");return!or.getAuthConfiguration(s,{configuration:o,ident:a}).get("npmAuthToken")};return(await Ge.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await s9e(),s.reportInfo(0,"Successfully logged out from everything")),this.scope){await Xue("npmScopes",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish});await Xue("npmRegistries",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};tg.paths=[["npm","logout"]],tg.usage=ve.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function n9e(r,e){let t=r[e];if(!Ie.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...mp].every(s=>!i.has(s)))return!1;for(let s of mp)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of mp)delete n[s];return r[e]=n,!0}async function s9e(){let r=e=>{let t=!1,i=Ie.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))n9e(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await ye.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function Xue(r,e){return await ye.updateHomeConfiguration({[r]:t=>{let i=Ie.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=Ie.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...mp].every(l=>!o.has(l)))return t;for(let l of mp)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of mp)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var rg=class extends De{constructor(){super(...arguments);this.access=z.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=z.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=z.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=z.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);if(n.manifest.private)throw new Qe("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new Qe("Workspaces must have valid names and versions to be published on an external registry");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=or.getPublishRegistry(n.manifest,{configuration:t});return(await Ge.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let f=await Ot.get(Ot.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(f,"versions"))throw new at(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(f.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(f){if(((g=(u=f.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw f}await Wt.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:c}),await ca.prepareForPack(n,{report:c},async()=>{let f=await ca.genPackList(n);for(let B of f)c.reportInfo(null,B);let h=await ca.genPackStream(n,f),p=await Ie.bufferStream(h),C=await Cp.getGitHead(n.cwd),y=await Cp.makePublishBody(n,p,{access:this.access,tag:this.tag,registry:a,gitHead:C});await Ot.put(Ot.getIdentUrl(s),y,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,"Package archive published")})).exitCode()}};rg.paths=[["npm","publish"]],rg.usage=ve.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var Zue=Pe(Xr());var ig=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String({required:!1})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s;if(typeof this.package<"u")s=P.parseIdent(this.package);else{if(!n)throw new ct(i.cwd,this.context.cwd);if(!n.manifest.name)throw new Qe(`Missing 'name' field in ${K.fromPortablePath(x.join(n.cwd,xt.manifest))}`);s=n.manifest.name}let o=await RE(s,t),l={children:Ie.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:ee.tuple(ee.Type.RESOLUTION,{descriptor:P.makeDescriptor(s,c),locator:P.makeLocator(s,u)})}))};return es.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};ig.paths=[["npm","tag","list"]],ig.usage=ve.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});var h1=Pe(Xr()),p1=J("util"),$u=class extends De{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await Ge.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let T=i.topLevelWorkspace;if(!T.manifest.name)throw new Qe(`Missing ${ee.pretty(t,"name",ee.Type.CODE)} field in ${K.fromPortablePath(x.join(T.cwd,xt.manifest))}`);u=P.makeDescriptor(T.manifest.name,"unknown")}else u=P.parseDescriptor(c);let g=Ot.getIdentUrl(u),f=d1(await Ot.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:Ot.customPackageError})),h=Object.keys(f.versions).sort(h1.default.compareLoose),C=f["dist-tags"].latest||h[h.length-1],y=vt.validRange(u.range);if(y){let T=h1.default.maxSatisfying(h,y);T!==null?C=T:(l.reportWarning(0,`Unmet range ${P.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(f["dist-tags"],u.range)?C=f["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${P.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=f.versions[C],v={...f,...B,version:C,versions:h},D;if(n!==null){D={};for(let T of n){let H=v[T];if(typeof H<"u")D[T]=H;else{l.reportWarning(1,`The ${ee.pretty(t,T,ee.Type.CODE)} field doesn't exist inside ${P.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete v.dist,delete v.readme,delete v.users),D=v;l.reportJson(D),this.json||s.push(D)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(` +`),this.context.stdout.write(`${(0,p1.inspect)(l,{depth:1/0,colors:!0,compact:!1})} +`);return a.exitCode()}};$u.paths=[["npm","info"]],$u.usage=ve.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function d1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=d1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=d1(r[t]);i&&(e[t]=i)}return e}else return r||null}var Zue=Pe(Km()),eg=class extends De{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Ge.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await s9e({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=`/-/user/org.couchdb.user:${encodeURIComponent(o.name)}`,l=await Ot.put(a,o,{attemptedAs:o.name,configuration:t,registry:i,jsonResponse:!0,authType:Ot.AuthType.NO_AUTH});return await n9e(i,l.token,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};eg.paths=[["npm","login"]],eg.usage=ve.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function UQ({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?or.getScopeRegistry(r,{configuration:t,type:or.RegistryType.PUBLISH_REGISTRY}):r?or.getScopeRegistry(r,{configuration:t}):e?or.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):or.getDefaultRegistry({configuration:t})}async function n9e(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=Ie.isIndexableObject(a)?a:{},c=l[o],u=Ie.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await ye.updateHomeConfiguration(s)}async function s9e({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${ee.pretty(r,e,ee.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let{username:o,password:a}=await(0,Zue.prompt)([{type:"input",name:"username",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:"password",name:"password",message:s?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),{name:o,password:a}}var mp=new Set(["npmAuthIdent","npmAuthToken"]),tg=class extends De{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=z.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await ye.find(this.context.cwd,this.context.plugins),a=P.makeIdent((c=this.scope)!=null?c:null,"pkg");return!or.getAuthConfiguration(s,{configuration:o,ident:a}).get("npmAuthToken")};return(await Ge.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await a9e(),s.reportInfo(0,"Successfully logged out from everything")),this.scope){await _ue("npmScopes",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish});await _ue("npmRegistries",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};tg.paths=[["npm","logout"]],tg.usage=ve.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function o9e(r,e){let t=r[e];if(!Ie.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...mp].every(s=>!i.has(s)))return!1;for(let s of mp)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of mp)delete n[s];return r[e]=n,!0}async function a9e(){let r=e=>{let t=!1,i=Ie.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))o9e(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await ye.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function _ue(r,e){return await ye.updateHomeConfiguration({[r]:t=>{let i=Ie.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=Ie.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...mp].every(l=>!o.has(l)))return t;for(let l of mp)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of mp)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var rg=class extends De{constructor(){super(...arguments);this.access=z.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=z.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=z.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=z.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);if(n.manifest.private)throw new Qe("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new Qe("Workspaces must have valid names and versions to be published on an external registry");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=or.getPublishRegistry(n.manifest,{configuration:t});return(await Ge.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let f=await Ot.get(Ot.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(f,"versions"))throw new at(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(f.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(f){if(((g=(u=f.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw f}await Wt.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:c}),await ca.prepareForPack(n,{report:c},async()=>{let f=await ca.genPackList(n);for(let B of f)c.reportInfo(null,B);let h=await ca.genPackStream(n,f),p=await Ie.bufferStream(h),C=await Cp.getGitHead(n.cwd),y=await Cp.makePublishBody(n,p,{access:this.access,tag:this.tag,registry:a,gitHead:C});await Ot.put(Ot.getIdentUrl(s),y,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,"Package archive published")})).exitCode()}};rg.paths=[["npm","publish"]],rg.usage=ve.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var $ue=Pe(Xr());var ig=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String({required:!1})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s;if(typeof this.package<"u")s=P.parseIdent(this.package);else{if(!n)throw new ct(i.cwd,this.context.cwd);if(!n.manifest.name)throw new Qe(`Missing 'name' field in ${K.fromPortablePath(x.join(n.cwd,xt.manifest))}`);s=n.manifest.name}let o=await RE(s,t),l={children:Ie.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:ee.tuple(ee.Type.RESOLUTION,{descriptor:P.makeDescriptor(s,c),locator:P.makeLocator(s,u)})}))};return es.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};ig.paths=[["npm","tag","list"]],ig.usage=ve.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` This command will list all tags of a package from the npm registry. If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function RE(r,e){let t=`/-/package${Ot.getIdentUrl(r)}/dist-tags`;return Ot.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:Ot.customPackageError})}var ng=class extends De{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);let s=P.parseDescriptor(this.package,!0),o=s.range;if(!Zue.default.valid(o))throw new Qe(`The range ${ee.pretty(t,s.range,ee.Type.RANGE)} must be a valid semver version`);let a=or.getPublishRegistry(n.manifest,{configuration:t}),l=ee.pretty(t,s,ee.Type.IDENT),c=ee.pretty(t,o,ee.Type.RANGE),u=ee.pretty(t,this.tag,ee.Type.CODE);return(await Ge.start({configuration:t,stdout:this.context.stdout},async f=>{let h=await RE(s,t);Object.prototype.hasOwnProperty.call(h,this.tag)&&h[this.tag]===o&&f.reportWarning(0,`Tag ${u} is already set to version ${c}`);let p=`/-/package${Ot.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await Ot.put(p,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),f.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};ng.paths=[["npm","tag","add"]],ng.usage=ve.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function RE(r,e){let t=`/-/package${Ot.getIdentUrl(r)}/dist-tags`;return Ot.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:Ot.customPackageError})}var ng=class extends De{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);let s=P.parseDescriptor(this.package,!0),o=s.range;if(!$ue.default.valid(o))throw new Qe(`The range ${ee.pretty(t,s.range,ee.Type.RANGE)} must be a valid semver version`);let a=or.getPublishRegistry(n.manifest,{configuration:t}),l=ee.pretty(t,s,ee.Type.IDENT),c=ee.pretty(t,o,ee.Type.RANGE),u=ee.pretty(t,this.tag,ee.Type.CODE);return(await Ge.start({configuration:t,stdout:this.context.stdout},async f=>{let h=await RE(s,t);Object.prototype.hasOwnProperty.call(h,this.tag)&&h[this.tag]===o&&f.reportWarning(0,`Tag ${u} is already set to version ${c}`);let p=`/-/package${Ot.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await Ot.put(p,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),f.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};ng.paths=[["npm","tag","add"]],ng.usage=ve.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var sg=class extends De{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new Qe("The 'latest' tag cannot be removed.");let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);let s=P.parseIdent(this.package),o=or.getPublishRegistry(n.manifest,{configuration:t}),a=ee.pretty(t,this.tag,ee.Type.CODE),l=ee.pretty(t,s,ee.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new Qe(`${a} is not a tag of package ${l}`);return(await Ge.start({configuration:t,stdout:this.context.stdout},async g=>{let f=`/-/package${Ot.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await Ot.del(f,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};sg.paths=[["npm","tag","remove"]],sg.usage=ve.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var og=class extends De{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=or.getScopeRegistry(this.scope,{configuration:t,type:or.RegistryType.PUBLISH_REGISTRY}):this.scope?i=or.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=or.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=or.getDefaultRegistry({configuration:t}),(await Ge.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await Ot.get("/-/whoami",{configuration:t,registry:i,authType:Ot.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?P.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};og.paths=[["npm","whoami"]],og.usage=ve.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var o9e={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[_u,$u,eg,tg,rg,ng,ig,sg,og]},a9e=o9e;var b1={};ut(b1,{default:()=>B9e,patchUtils:()=>ag});var ag={};ut(ag,{applyPatchFile:()=>GQ,diffFolders:()=>w1,ensureUnpatchedDescriptor:()=>C1,extractPackageToDisk:()=>y1,extractPatchFlags:()=>nge,isParentRequired:()=>I1,loadPatchFiles:()=>LE,makeDescriptor:()=>m1,makeLocator:()=>E1,makePatchHash:()=>B1,parseDescriptor:()=>NE,parseLocator:()=>TE,parsePatchFile:()=>FE});var A9e=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return x.relative(Me.root,x.resolve(Me.root,K.toPortablePath(r)))}function l9e(r){let e=r.trim().match(A9e);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var c9e=420,u9e=493;var _ue=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),g9e=r=>({header:l9e(r),parts:[]}),f9e={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function h9e(r){let e=[],t=_ue(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=_ue()}for(let l=0;l0?"patch":"mode change",v=null;switch(B){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Ep(u),toPath:Ep(g)}),v=g}break;case"file deletion":{let D=n||p;if(!D)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(D),mode:HQ(l),hash:f})}break;case"file creation":{let D=s||C;if(!D)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(D),mode:HQ(c),hash:h})}break;case"patch":case"mode change":v=C||s;break;default:Ie.assertNever(B);break}v&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Ep(v),oldMode:HQ(o),newMode:HQ(a)}),v&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Ep(v),hunks:y,beforeHash:f,afterHash:h})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function HQ(r){let e=parseInt(r,8)&511;if(e!==c9e&&e!==u9e)throw new Error(`Unexpected file mode string: ${r}`);return e}function FE(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),p9e(h9e(e))}function d9e(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case"context":t+=n.length,e+=n.length;break;case"deletion":e+=n.length;break;case"insertion":t+=n.length;break;default:Ie.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Ip=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<"u"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function GQ(r,{baseFs:e=new $t,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!vt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await yp(e,x.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await yp(e,x.dirname(n.fromPath),async()=>{await yp(e,x.dirname(n.toPath),async()=>{await yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var og=class extends De{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=or.getScopeRegistry(this.scope,{configuration:t,type:or.RegistryType.PUBLISH_REGISTRY}):this.scope?i=or.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=or.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=or.getDefaultRegistry({configuration:t}),(await Ge.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await Ot.get("/-/whoami",{configuration:t,registry:i,authType:Ot.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?P.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};og.paths=[["npm","whoami"]],og.usage=ve.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var A9e={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[_u,$u,eg,tg,rg,ng,ig,sg,og]},l9e=A9e;var S1={};ut(S1,{default:()=>Q9e,patchUtils:()=>ag});var ag={};ut(ag,{applyPatchFile:()=>GQ,diffFolders:()=>b1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>oge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>Q1,parseDescriptor:()=>NE,parseLocator:()=>TE,parsePatchFile:()=>FE});var c9e=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return x.relative(Me.root,x.resolve(Me.root,K.toPortablePath(r)))}function u9e(r){let e=r.trim().match(c9e);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var g9e=420,f9e=493;var ege=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),h9e=r=>({header:u9e(r),parts:[]}),p9e={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function d9e(r){let e=[],t=ege(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=ege()}for(let l=0;l0?"patch":"mode change",v=null;switch(B){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Ep(u),toPath:Ep(g)}),v=g}break;case"file deletion":{let D=n||p;if(!D)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(D),mode:HQ(l),hash:f})}break;case"file creation":{let D=s||C;if(!D)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(D),mode:HQ(c),hash:h})}break;case"patch":case"mode change":v=C||s;break;default:Ie.assertNever(B);break}v&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Ep(v),oldMode:HQ(o),newMode:HQ(a)}),v&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Ep(v),hunks:y,beforeHash:f,afterHash:h})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function HQ(r){let e=parseInt(r,8)&511;if(e!==g9e&&e!==f9e)throw new Error(`Unexpected file mode string: ${r}`);return e}function FE(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),C9e(d9e(e))}function m9e(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case"context":t+=n.length,e+=n.length;break;case"deletion":e+=n.length;break;case"insertion":t+=n.length;break;default:Ie.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Ip=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<"u"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function GQ(r,{baseFs:e=new $t,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!vt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await yp(e,x.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await yp(e,x.dirname(n.fromPath),async()=>{await yp(e,x.dirname(n.toPath),async()=>{await yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` `)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` -`):"";await e.mkdirpPromise(x.dirname(n.path),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,xr.SAFE_TIME,xr.SAFE_TIME)}break;case"patch":await yp(e,n.path,async()=>{await E9e(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if($ue(n.newMode)!==$ue(o))continue;await yp(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:Ie.assertNever(n);break}}function $ue(r){return(r&64)>0}function ege(r){return r.replace(/\s+$/,"")}function m9e(r,e){return ege(r)===ege(e)}async function E9e({hunks:r,path:e},{baseFs:t,dryRun:i=!1}){let n=await t.statSync(e).mode,o=(await t.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of r){let f=Math.max(c,g.header.patched.start+l),h=Math.max(0,f-c),p=Math.max(0,o.length-f-g.header.original.length),C=Math.max(h,p),y=0,B=0,v=null;for(;y<=C;){if(y<=h&&(B=f-y,v=tge(g,o,B),v!==null)){y=-y;break}if(y<=p&&(B=f+y,v=tge(g,o,B),v!==null))break;y+=1}if(v===null)throw new Ip(r.indexOf(g),g);a.push(v),l+=y,c=B+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let f of g)switch(f.type){case"splice":{let h=f.index+u;o.splice(h,f.numToDelete,...f.linesToInsert),u+=f.linesToInsert.length-f.numToDelete}break;case"pop":o.pop();break;case"push":o.push(f.line);break;default:Ie.assertNever(f);break}await t.writeFilePromise(e,o.join(` -`),{mode:n})}function tge(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!m9e(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:Ie.assertNever(n.type);break}return i}var y9e=/^builtin<([^>]+)>$/;function d1(r,e){let{source:t,selector:i,params:n}=P.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?P.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function NE(r){let{sourceItem:e,...t}=d1(r.range,P.parseDescriptor);return{...t,sourceDescriptor:e}}function TE(r){let{sourceItem:e,...t}=d1(r.reference,P.parseLocator);return{...t,sourceLocator:e}}function C1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=d1(r.range,P.parseDescriptor);return e}function rge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:P.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return P.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function m1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return P.makeDescriptor(r,rge({parentLocator:e,sourceItem:t,patchPaths:i},P.stringifyDescriptor))}function E1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return P.makeLocator(r,rge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},P.stringifyLocator))}function ige({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(y9e);return s!==null?t(s[1]):x.isAbsolute(i)?r(i):e(i)}function nge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function I1(r){return ige({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await Ie.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=nge(o),l=await ige({onAbsolute:async()=>await O.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(x.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` -`));return s}async function y1(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new ti,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await O.mktempPromise(),c=x.join(l,"source"),u=x.join(l,"user"),g=x.join(l,".yarn-patch.json");return await Promise.all([O.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),O.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),O.writeJsonPromise(g,{locator:P.stringifyLocator(r),version:i.version})]),O.detachTemp(l),u}async function w1(r,e){let t=K.fromPortablePath(r).replace(/\\/g,"/"),i=K.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await Cr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. +`):"";await e.mkdirpPromise(x.dirname(n.path),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,xr.SAFE_TIME,xr.SAFE_TIME)}break;case"patch":await yp(e,n.path,async()=>{await y9e(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(tge(n.newMode)!==tge(o))continue;await yp(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:Ie.assertNever(n);break}}function tge(r){return(r&64)>0}function rge(r){return r.replace(/\s+$/,"")}function I9e(r,e){return rge(r)===rge(e)}async function y9e({hunks:r,path:e},{baseFs:t,dryRun:i=!1}){let n=await t.statSync(e).mode,o=(await t.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of r){let f=Math.max(c,g.header.patched.start+l),h=Math.max(0,f-c),p=Math.max(0,o.length-f-g.header.original.length),C=Math.max(h,p),y=0,B=0,v=null;for(;y<=C;){if(y<=h&&(B=f-y,v=ige(g,o,B),v!==null)){y=-y;break}if(y<=p&&(B=f+y,v=ige(g,o,B),v!==null))break;y+=1}if(v===null)throw new Ip(r.indexOf(g),g);a.push(v),l+=y,c=B+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let f of g)switch(f.type){case"splice":{let h=f.index+u;o.splice(h,f.numToDelete,...f.linesToInsert),u+=f.linesToInsert.length-f.numToDelete}break;case"pop":o.pop();break;case"push":o.push(f.line);break;default:Ie.assertNever(f);break}await t.writeFilePromise(e,o.join(` +`),{mode:n})}function ige(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!I9e(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:Ie.assertNever(n.type);break}return i}var B9e=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=P.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?P.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function NE(r){let{sourceItem:e,...t}=m1(r.range,P.parseDescriptor);return{...t,sourceDescriptor:e}}function TE(r){let{sourceItem:e,...t}=m1(r.reference,P.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,P.parseDescriptor);return e}function nge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:P.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return P.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return P.makeDescriptor(r,nge({parentLocator:e,sourceItem:t,patchPaths:i},P.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return P.makeLocator(r,nge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},P.stringifyLocator))}function sge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(B9e);return s!==null?t(s[1]):x.isAbsolute(i)?r(i):e(i)}function oge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return sge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await Ie.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=oge(o),l=await sge({onAbsolute:async()=>await O.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(x.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` +`));return s}async function B1(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new ti,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await O.mktempPromise(),c=x.join(l,"source"),u=x.join(l,"user"),g=x.join(l,".yarn-patch.json");return await Promise.all([O.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),O.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),O.writeJsonPromise(g,{locator:P.stringifyLocator(r),version:i.version})]),O.detachTemp(l),u}async function b1(r,e){let t=K.fromPortablePath(r).replace(/\\/g,"/"),i=K.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await Cr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. The following error was reported by 'git': -${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${Ie.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${Ie.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(Ie.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(Ie.escapeRegExp(`${i}/`),"g"),"")}function B1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!vt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return li.makeHash(`${3}`,...t).slice(0,6)}function sge(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${ee.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${ee.pretty(e,n,ee.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${ee.pretty(e,n,ee.Type.ADDED)}`);break;default:Ie.assertNever(i.type)}}var YQ=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=TE(e),a=await LE(i,o,t),l=await O.mktempPromise(),c=x.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=P.getIdentVendorPath(e),f=await an(),h=new Wr(c,{libzip:f,create:!0,level:t.project.configuration.get("compressionLevel")});await Ie.releaseAfterUseAsync(async()=>{await h.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),h.saveAndClose();for(let{source:p,optional:C}of a){if(p===null)continue;let y=new Wr(c,{libzip:f,level:t.project.configuration.get("compressionLevel")}),B=new qt(x.resolve(Me.root,g),{baseFs:y});try{await GQ(FE(p),{baseFs:B,version:s})}catch(v){if(!(v instanceof Ip))throw v;let D=t.project.configuration.get("enableInlineHunks"),T=!D&&!C?" (set enableInlineHunks for details)":"",H=`${P.prettyLocator(t.project.configuration,e)}: ${v.message}${T}`,j=$=>{!D||sge(v.hunk,{configuration:t.project.configuration,report:$})};if(y.discardAndClose(),C){t.report.reportWarningOnce(66,H,{reportExtra:j});continue}else throw new at(66,H,j)}y.saveAndClose()}return new Wr(c,{libzip:f,level:t.project.configuration.get("compressionLevel")})}};var jQ=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=NE(e);return n.every(s=>!I1(s))?e:P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=NE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=NE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=B1(a,l.version);return[E1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=TE(e);return{...await t.resolver.resolve(i,t),...e}}};var Ag=class extends De{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=x.join(s,"../source"),a=x.join(s,"../.yarn-patch.json");if(!O.existsSync(o))throw new Qe("The argument folder didn't get created by 'yarn patch'");let l=await w1(o,s),c=await O.readJsonPromise(a),u=P.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new Qe("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),f=x.join(g,`${P.slugifyLocator(u)}.patch`);await O.mkdirPromise(g,{recursive:!0}),await O.writeFilePromise(f,l);let h=new Map;for(let p of i.storedPackages.values()){if(P.isVirtualLocator(p))continue;let C=p.dependencies.get(u.identHash);if(!C)continue;let y=P.isVirtualDescriptor(C)?P.devirtualizeDescriptor(C):C,B=C1(y),v=i.storedResolutions.get(B.descriptorHash);if(!v)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(v))throw new Error("Assertion failed: Expected the package to have been registered");let T=i.originalPackages.get(p.locatorHash);if(!T)throw new Error("Assertion failed: Expected the original package to have been registered");let H=T.dependencies.get(C.identHash);if(!H)throw new Error("Assertion failed: Expected the original dependency to have been registered");h.set(H.descriptorHash,H)}for(let p of h.values()){let C=m1(p,{parentLocator:null,sourceDescriptor:P.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${x.relative(i.cwd,f)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:P.stringifyIdent(C),description:p.range}},reference:C.range})}await i.persist()}};Ag.paths=[["patch-commit"]],Ag.usage=ve.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var lg=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let o=P.parseLocator(this.package);if(o.reference==="unknown"){let a=Ie.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?Ie.mapAndFilter.skip:P.isVirtualLocator(l)?Ie.mapAndFilter.skip:l);if(a.length===0)throw new Qe("No package found in the project for the given locator");if(a.length>1)throw new Qe(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): +${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${Ie.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${Ie.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(Ie.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(Ie.escapeRegExp(`${i}/`),"g"),"")}function Q1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!vt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return li.makeHash(`${3}`,...t).slice(0,6)}function age(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${ee.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${ee.pretty(e,n,ee.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${ee.pretty(e,n,ee.Type.ADDED)}`);break;default:Ie.assertNever(i.type)}}var YQ=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=TE(e),a=await LE(i,o,t),l=await O.mktempPromise(),c=x.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=P.getIdentVendorPath(e),f=await an(),h=new Wr(c,{libzip:f,create:!0,level:t.project.configuration.get("compressionLevel")});await Ie.releaseAfterUseAsync(async()=>{await h.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),h.saveAndClose();for(let{source:p,optional:C}of a){if(p===null)continue;let y=new Wr(c,{libzip:f,level:t.project.configuration.get("compressionLevel")}),B=new qt(x.resolve(Me.root,g),{baseFs:y});try{await GQ(FE(p),{baseFs:B,version:s})}catch(v){if(!(v instanceof Ip))throw v;let D=t.project.configuration.get("enableInlineHunks"),T=!D&&!C?" (set enableInlineHunks for details)":"",H=`${P.prettyLocator(t.project.configuration,e)}: ${v.message}${T}`,j=$=>{!D||age(v.hunk,{configuration:t.project.configuration,report:$})};if(y.discardAndClose(),C){t.report.reportWarningOnce(66,H,{reportExtra:j});continue}else throw new at(66,H,j)}y.saveAndClose()}return new Wr(c,{libzip:f,level:t.project.configuration.get("compressionLevel")})}};var jQ=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=NE(e);return n.every(s=>!w1(s))?e:P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=NE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=NE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=Q1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=TE(e);return{...await t.resolver.resolve(i,t),...e}}};var Ag=class extends De{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=x.join(s,"../source"),a=x.join(s,"../.yarn-patch.json");if(!O.existsSync(o))throw new Qe("The argument folder didn't get created by 'yarn patch'");let l=await b1(o,s),c=await O.readJsonPromise(a),u=P.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new Qe("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),f=x.join(g,`${P.slugifyLocator(u)}.patch`);await O.mkdirPromise(g,{recursive:!0}),await O.writeFilePromise(f,l);let h=new Map;for(let p of i.storedPackages.values()){if(P.isVirtualLocator(p))continue;let C=p.dependencies.get(u.identHash);if(!C)continue;let y=P.isVirtualDescriptor(C)?P.devirtualizeDescriptor(C):C,B=E1(y),v=i.storedResolutions.get(B.descriptorHash);if(!v)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(v))throw new Error("Assertion failed: Expected the package to have been registered");let T=i.originalPackages.get(p.locatorHash);if(!T)throw new Error("Assertion failed: Expected the original package to have been registered");let H=T.dependencies.get(C.identHash);if(!H)throw new Error("Assertion failed: Expected the original dependency to have been registered");h.set(H.descriptorHash,H)}for(let p of h.values()){let C=I1(p,{parentLocator:null,sourceDescriptor:P.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${x.relative(i.cwd,f)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:P.stringifyIdent(C),description:p.range}},reference:C.range})}await i.persist()}};Ag.paths=[["patch-commit"]],Ag.usage=ve.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var lg=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let o=P.parseLocator(this.package);if(o.reference==="unknown"){let a=Ie.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?Ie.mapAndFilter.skip:P.isVirtualLocator(l)?Ie.mapAndFilter.skip:l);if(a.length===0)throw new Qe("No package found in the project for the given locator");if(a.length>1)throw new Qe(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): ${a.map(l=>` -- ${P.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new Qe("No package found in the project for the given locator");await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await y1(o,{cache:s,project:i});a.reportJson({locator:P.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${P.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${ee.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${ee.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};lg.paths=[["patch"]],lg.usage=ve.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s ` (with `` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var w9e={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[Ag,lg],fetchers:[YQ],resolvers:[jQ]},B9e=w9e;var x1={};ut(x1,{default:()=>S9e});var qQ=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=S1(),n=t.project.installersCustomData.get(i);if(!n)throw new Qe(`The project in ${ee.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ee.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new Qe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=S1(),n=t.project.installersCustomData.get(i);if(!n)throw new Qe(`The project in ${ee.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ee.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=x.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new Q1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},Q1=class{constructor(e){this.opts=e;this.asyncActions=new Ie.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return S1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=x.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=b9e(e,{project:this.opts.project});this.customData.locatorByPath.set(n,P.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await O.mkdirPromise(n,{recursive:!0}),await O.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:po.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=po.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!oge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(e)})`);let s=x.join(n,xt.nodeModules),o=[],a=await age(s);for(let[l,c]of t){let u=c;oge(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=P.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(c)})`);let f=P.stringifyIdent(l),h=x.join(s,f),p=x.relative(x.dirname(h),g),C=a.get(f);a.delete(f),o.push(Promise.resolve().then(async()=>{if(C){if(C.isSymbolicLink()&&await O.readlinkPromise(h)===p)return;await O.removePromise(h)}await O.mkdirpPromise(x.dirname(h)),process.platform=="win32"?await O.symlinkPromise(g,h,"junction"):await O.symlinkPromise(p,h)}))}o.push(Age(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=cge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await O.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=x.contains(e,s);if(o!==null){let[a,,...l]=o.split(x.sep);i.add(a);let c=x.join(e,a);t.push(O.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let f=x.join(c,g);if(g===xt.nodeModules){let h=await age(f);return h.delete(l.join(x.sep)),Age(f,h)}else return O.removePromise(f)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await O.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(O.removePromise(x.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await v1(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await v1(lge(this.opts.project)),{customData:this.customData}}};function S1(){return JSON.stringify({name:"PnpmInstaller",version:2})}function lge(r){return x.join(r.cwd,xt.nodeModules)}function cge(r){return x.join(lge(r),".store")}function b9e(r,{project:e}){let t=P.slugifyLocator(r),i=P.getIdentVendorPath(r);return x.join(cge(e),t,i)}function oge(r,{project:e}){return!P.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function age(r){let e=new Map,t=[];try{t=await O.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await O.readdirPromise(x.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function Age(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(O.removePromise(x.join(r,s)));let o=(n=P.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>v1(x.join(r,s)))))}async function v1(r){try{await O.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var Q9e={linkers:[qQ]},S9e=Q9e;var Bb=()=>({modules:new Map([["@yarnpkg/cli",Nm],["@yarnpkg/core",sm],["@yarnpkg/fslib",Wp],["@yarnpkg/libzip",xC],["@yarnpkg/parsers",td],["@yarnpkg/shell",RC],["clipanion",F$(ud)],["semver",v9e],["typanion",hn],["yup",x9e],["@yarnpkg/plugin-essentials",pM],["@yarnpkg/plugin-compat",IM],["@yarnpkg/plugin-dlx",yM],["@yarnpkg/plugin-file",QM],["@yarnpkg/plugin-git",hM],["@yarnpkg/plugin-github",SM],["@yarnpkg/plugin-http",vM],["@yarnpkg/plugin-init",kM],["@yarnpkg/plugin-link",RM],["@yarnpkg/plugin-nm",hO],["@yarnpkg/plugin-npm",u1],["@yarnpkg/plugin-npm-cli",p1],["@yarnpkg/plugin-pack",o1],["@yarnpkg/plugin-patch",b1],["@yarnpkg/plugin-pnp",iO],["@yarnpkg/plugin-pnpm",x1]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});$0({binaryVersion:Tr||"",pluginConfiguration:Bb()});})(); +- ${P.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new Qe("No package found in the project for the given locator");await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:P.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${P.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${ee.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${ee.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};lg.paths=[["patch"]],lg.usage=ve.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s ` (with `` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var b9e={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[Ag,lg],fetchers:[YQ],resolvers:[jQ]},Q9e=b9e;var D1={};ut(D1,{default:()=>x9e});var qQ=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new Qe(`The project in ${ee.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ee.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new Qe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new Qe(`The project in ${ee.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ee.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=x.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new Ie.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return x1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=x.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=S9e(e,{project:this.opts.project});this.customData.locatorByPath.set(n,P.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await O.mkdirPromise(n,{recursive:!0}),await O.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:Co.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=Co.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!Age(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(e)})`);let s=x.join(n,xt.nodeModules),o=[],a=await lge(s);for(let[l,c]of t){let u=c;Age(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=P.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(c)})`);let f=P.stringifyIdent(l),h=x.join(s,f),p=x.relative(x.dirname(h),g),C=a.get(f);a.delete(f),o.push(Promise.resolve().then(async()=>{if(C){if(C.isSymbolicLink()&&await O.readlinkPromise(h)===p)return;await O.removePromise(h)}await O.mkdirpPromise(x.dirname(h)),process.platform=="win32"?await O.symlinkPromise(g,h,"junction"):await O.symlinkPromise(p,h)}))}o.push(cge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=gge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await O.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=x.contains(e,s);if(o!==null){let[a,,...l]=o.split(x.sep);i.add(a);let c=x.join(e,a);t.push(O.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let f=x.join(c,g);if(g===xt.nodeModules){let h=await lge(f);return h.delete(l.join(x.sep)),cge(f,h)}else return O.removePromise(f)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await O.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(O.removePromise(x.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await P1(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await P1(uge(this.opts.project)),{customData:this.customData}}};function x1(){return JSON.stringify({name:"PnpmInstaller",version:2})}function uge(r){return x.join(r.cwd,xt.nodeModules)}function gge(r){return x.join(uge(r),".store")}function S9e(r,{project:e}){let t=P.slugifyLocator(r),i=P.getIdentVendorPath(r);return x.join(gge(e),t,i)}function Age(r,{project:e}){return!P.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function lge(r){let e=new Map,t=[];try{t=await O.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await O.readdirPromise(x.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function cge(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(O.removePromise(x.join(r,s)));let o=(n=P.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>P1(x.join(r,s)))))}async function P1(r){try{await O.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var v9e={linkers:[qQ]},x9e=v9e;var Bb=()=>({modules:new Map([["@yarnpkg/cli",Nm],["@yarnpkg/core",sm],["@yarnpkg/fslib",Wp],["@yarnpkg/libzip",xC],["@yarnpkg/parsers",td],["@yarnpkg/shell",RC],["clipanion",T$(ud)],["semver",P9e],["typanion",hn],["yup",D9e],["@yarnpkg/plugin-essentials",CM],["@yarnpkg/plugin-compat",wM],["@yarnpkg/plugin-dlx",BM],["@yarnpkg/plugin-file",vM],["@yarnpkg/plugin-git",dM],["@yarnpkg/plugin-github",xM],["@yarnpkg/plugin-http",PM],["@yarnpkg/plugin-init",FM],["@yarnpkg/plugin-link",NM],["@yarnpkg/plugin-nm",dO],["@yarnpkg/plugin-npm",f1],["@yarnpkg/plugin-npm-cli",C1],["@yarnpkg/plugin-pack",A1],["@yarnpkg/plugin-patch",S1],["@yarnpkg/plugin-pnp",sO],["@yarnpkg/plugin-pnpm",D1]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});$0({binaryVersion:Tr||"",pluginConfiguration:Bb()});})(); /*! * buildToken * Builds OAuth token prefix (helper function) diff --git a/.yarnrc.yml b/.yarnrc.yml index dccf35219e..1134393082 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -8,4 +8,4 @@ plugins: - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs spec: "@yarnpkg/plugin-interactive-tools" -yarnPath: .yarn/releases/yarn-3.6.1.cjs +yarnPath: .yarn/releases/yarn-3.6.2.cjs diff --git a/package.json b/package.json index 4e97e45c92..1a2766802f 100644 --- a/package.json +++ b/package.json @@ -254,5 +254,5 @@ "sortablejs@1.15.0": "patch:sortablejs@npm%3A1.15.0#./.yarn/patches/sortablejs-npm-1.15.0-f3a393abcc.patch", "leaflet-draw@1.0.4": "patch:leaflet-draw@npm%3A1.0.4#./.yarn/patches/leaflet-draw-npm-1.0.4-0ca0ebcf65.patch" }, - "packageManager": "yarn@3.6.1" + "packageManager": "yarn@3.6.2" } From d0a6e727f2d103645603e56cdfd6a1c4367b55f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 10:58:07 +0200 Subject: [PATCH 103/182] Bump actions/setup-node from 3.7.0 to 3.8.1 (#17650) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/cast_deployment.yaml | 4 ++-- .github/workflows/ci.yaml | 8 ++++---- .github/workflows/demo_deployment.yaml | 4 ++-- .github/workflows/design_deployment.yaml | 2 +- .github/workflows/design_preview.yaml | 2 +- .github/workflows/nightly.yaml | 2 +- .github/workflows/release.yaml | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/cast_deployment.yaml b/.github/workflows/cast_deployment.yaml index b1cde578e8..26f133d4ee 100644 --- a/.github/workflows/cast_deployment.yaml +++ b/.github/workflows/cast_deployment.yaml @@ -26,7 +26,7 @@ jobs: ref: dev - name: Setup Node - uses: actions/setup-node@v3.7.0 + uses: actions/setup-node@v3.8.1 with: node-version-file: ".nvmrc" cache: yarn @@ -62,7 +62,7 @@ jobs: ref: master - name: Setup Node - uses: actions/setup-node@v3.7.0 + uses: actions/setup-node@v3.8.1 with: node-version-file: ".nvmrc" cache: yarn diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a7a7da4f92..0436f662cd 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -26,7 +26,7 @@ jobs: - name: Check out files from GitHub uses: actions/checkout@v3.5.3 - name: Setup Node - uses: actions/setup-node@v3.7.0 + uses: actions/setup-node@v3.8.1 with: node-version-file: ".nvmrc" cache: yarn @@ -57,7 +57,7 @@ jobs: - name: Check out files from GitHub uses: actions/checkout@v3.5.3 - name: Setup Node - uses: actions/setup-node@v3.7.0 + uses: actions/setup-node@v3.8.1 with: node-version-file: ".nvmrc" cache: yarn @@ -75,7 +75,7 @@ jobs: - name: Check out files from GitHub uses: actions/checkout@v3.5.3 - name: Setup Node - uses: actions/setup-node@v3.7.0 + uses: actions/setup-node@v3.8.1 with: node-version-file: ".nvmrc" cache: yarn @@ -93,7 +93,7 @@ jobs: - name: Check out files from GitHub uses: actions/checkout@v3.5.3 - name: Setup Node - uses: actions/setup-node@v3.7.0 + uses: actions/setup-node@v3.8.1 with: node-version-file: ".nvmrc" cache: yarn diff --git a/.github/workflows/demo_deployment.yaml b/.github/workflows/demo_deployment.yaml index cbf8b92d88..e241ac0c67 100644 --- a/.github/workflows/demo_deployment.yaml +++ b/.github/workflows/demo_deployment.yaml @@ -27,7 +27,7 @@ jobs: ref: dev - name: Setup Node - uses: actions/setup-node@v3.7.0 + uses: actions/setup-node@v3.8.1 with: node-version-file: ".nvmrc" cache: yarn @@ -63,7 +63,7 @@ jobs: ref: master - name: Setup Node - uses: actions/setup-node@v3.7.0 + uses: actions/setup-node@v3.8.1 with: node-version-file: ".nvmrc" cache: yarn diff --git a/.github/workflows/design_deployment.yaml b/.github/workflows/design_deployment.yaml index 096dfd752b..31f7c1561c 100644 --- a/.github/workflows/design_deployment.yaml +++ b/.github/workflows/design_deployment.yaml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@v3.5.3 - name: Setup Node - uses: actions/setup-node@v3.7.0 + uses: actions/setup-node@v3.8.1 with: node-version-file: ".nvmrc" cache: yarn diff --git a/.github/workflows/design_preview.yaml b/.github/workflows/design_preview.yaml index d5b5bde6fd..f071ced1da 100644 --- a/.github/workflows/design_preview.yaml +++ b/.github/workflows/design_preview.yaml @@ -24,7 +24,7 @@ jobs: uses: actions/checkout@v3.5.3 - name: Setup Node - uses: actions/setup-node@v3.7.0 + uses: actions/setup-node@v3.8.1 with: node-version-file: ".nvmrc" cache: yarn diff --git a/.github/workflows/nightly.yaml b/.github/workflows/nightly.yaml index 70c397083e..3ee6122b29 100644 --- a/.github/workflows/nightly.yaml +++ b/.github/workflows/nightly.yaml @@ -28,7 +28,7 @@ jobs: python-version: ${{ env.PYTHON_VERSION }} - name: Setup Node - uses: actions/setup-node@v3.7.0 + uses: actions/setup-node@v3.8.1 with: node-version-file: ".nvmrc" cache: yarn diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 9c181a1690..efb4c819ab 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -34,7 +34,7 @@ jobs: python-version: ${{ env.PYTHON_VERSION }} - name: Setup Node - uses: actions/setup-node@v3.7.0 + uses: actions/setup-node@v3.8.1 with: node-version-file: ".nvmrc" cache: yarn From 196c15ff3e0a44ac47b9680dee97a54c3904c991 Mon Sep 17 00:00:00 2001 From: Michael Arthur Date: Mon, 21 Aug 2023 22:19:15 +1200 Subject: [PATCH 104/182] Add lawn mower entity state, icon and color (#17558) * start of lawn mower entity in the frontend * added colours for states * remove schedule states as no longer needed * change mowing to teal * remove docking as not included in architecture discussion and was missed --- src/common/const.ts | 3 +++ src/common/entity/get_states.ts | 1 + src/common/entity/state_active.ts | 2 ++ src/common/entity/state_color.ts | 1 + src/resources/ha-style.ts | 2 ++ 5 files changed, 9 insertions(+) diff --git a/src/common/const.ts b/src/common/const.ts index 399654a10b..03e2f424d6 100644 --- a/src/common/const.ts +++ b/src/common/const.ts @@ -49,6 +49,7 @@ import { mdiProgressClock, mdiRayVertex, mdiRemote, + mdiRobotMower, mdiRobotVacuum, mdiScriptText, mdiSineWave, @@ -99,6 +100,7 @@ export const FIXED_DOMAIN_ICONS = { input_number: mdiRayVertex, input_select: mdiFormatListBulleted, input_text: mdiFormTextbox, + lawn_mower: mdiRobotMower, light: mdiLightbulb, mailbox: mdiMailbox, notify: mdiCommentAlert, @@ -187,6 +189,7 @@ export const DOMAINS_WITH_CARD = [ "input_number", "input_text", "humidifier", + "lawn_mower", "lock", "media_player", "number", diff --git a/src/common/entity/get_states.ts b/src/common/entity/get_states.ts index 9ac8bcfbaa..29c11ca48c 100644 --- a/src/common/entity/get_states.ts +++ b/src/common/entity/get_states.ts @@ -26,6 +26,7 @@ export const FIXED_DOMAIN_STATES = { humidifier: ["on", "off"], input_boolean: ["on", "off"], input_button: [], + lawn_mower: ["error", "paused", "mowing", "docked"], light: ["on", "off"], lock: ["jammed", "locked", "locking", "unlocked", "unlocking"], media_player: [ diff --git a/src/common/entity/state_active.ts b/src/common/entity/state_active.ts index 34162fcc0b..7c304f0389 100644 --- a/src/common/entity/state_active.ts +++ b/src/common/entity/state_active.ts @@ -34,6 +34,8 @@ export function stateActive(stateObj: HassEntity, state?: string): boolean { case "device_tracker": case "person": return compareState !== "not_home"; + case "lawn_mower": + return ["mowing", "error"].includes(compareState); case "lock": return compareState !== "locked"; case "media_player": diff --git a/src/common/entity/state_color.ts b/src/common/entity/state_color.ts index d1c8e25d78..0abaca4c17 100644 --- a/src/common/entity/state_color.ts +++ b/src/common/entity/state_color.ts @@ -22,6 +22,7 @@ const STATE_COLORED_DOMAIN = new Set([ "group", "humidifier", "input_boolean", + "lawn_mower", "light", "lock", "media_player", diff --git a/src/resources/ha-style.ts b/src/resources/ha-style.ts index b0f80d7d41..4e311d8d6b 100644 --- a/src/resources/ha-style.ts +++ b/src/resources/ha-style.ts @@ -158,6 +158,8 @@ documentContainer.innerHTML = ` --state-device_tracker-home-color: var(--green-color); --state-fan-active-color: var(--cyan-color); --state-humidifier-on-color: var(--blue-color); + --state-lawn_mower-error-color: var(--red-color); + --state-lawn_mower-mowing-color: var(--teal-color); --state-light-active-color: var(--amber-color); --state-lock-jammed-color: var(--red-color); --state-lock-locked-color: var(--green-color); From bf912f7bd396e3b1286269738adae9625fe5158b Mon Sep 17 00:00:00 2001 From: Steve Repsher Date: Mon, 21 Aug 2023 06:57:38 -0400 Subject: [PATCH 105/182] Add missing super calls to disconnectedCallback (#17641) --- src/components/media-player/ha-media-player-browse.ts | 1 + src/panels/config/helpers/forms/ha-schedule-form.ts | 1 + src/panels/developer-tools/template/developer-tools-template.ts | 1 + src/panels/lovelace/cards/hui-calendar-card.ts | 1 + src/panels/lovelace/cards/hui-markdown-card.ts | 1 + src/panels/lovelace/cards/hui-media-control-card.ts | 1 + src/panels/lovelace/cards/hui-weather-forecast-card.ts | 1 + src/panels/lovelace/components/hui-entity-editor.ts | 1 + .../editor/config-elements/hui-tile-card-features-editor.ts | 1 + src/panels/lovelace/editor/hui-entities-card-row-editor.ts | 1 + src/panels/lovelace/entity-rows/hui-input-number-entity-row.ts | 1 + src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts | 1 + src/panels/lovelace/entity-rows/hui-number-entity-row.ts | 1 + src/state-summary/state-card-input_number.ts | 1 + 14 files changed, 14 insertions(+) diff --git a/src/components/media-player/ha-media-player-browse.ts b/src/components/media-player/ha-media-player-browse.ts index 2600758eac..e5c895e742 100644 --- a/src/components/media-player/ha-media-player-browse.ts +++ b/src/components/media-player/ha-media-player-browse.ts @@ -122,6 +122,7 @@ export class HaMediaPlayerBrowse extends LitElement { } public disconnectedCallback(): void { + super.disconnectedCallback(); if (this._resizeObserver) { this._resizeObserver.disconnect(); } diff --git a/src/panels/config/helpers/forms/ha-schedule-form.ts b/src/panels/config/helpers/forms/ha-schedule-form.ts index 5a503eef1b..d592a5ec93 100644 --- a/src/panels/config/helpers/forms/ha-schedule-form.ts +++ b/src/panels/config/helpers/forms/ha-schedule-form.ts @@ -112,6 +112,7 @@ class HaScheduleForm extends LitElement { } public disconnectedCallback(): void { + super.disconnectedCallback(); if (this._resizeObserver) { this._resizeObserver.disconnect(); } diff --git a/src/panels/developer-tools/template/developer-tools-template.ts b/src/panels/developer-tools/template/developer-tools-template.ts index c7618b38d5..c977bdba83 100644 --- a/src/panels/developer-tools/template/developer-tools-template.ts +++ b/src/panels/developer-tools/template/developer-tools-template.ts @@ -62,6 +62,7 @@ class HaPanelDevTemplate extends LitElement { } public disconnectedCallback() { + super.disconnectedCallback(); this._unsubscribeTemplate(); } diff --git a/src/panels/lovelace/cards/hui-calendar-card.ts b/src/panels/lovelace/cards/hui-calendar-card.ts index 855825f65d..3ade43b753 100644 --- a/src/panels/lovelace/cards/hui-calendar-card.ts +++ b/src/panels/lovelace/cards/hui-calendar-card.ts @@ -113,6 +113,7 @@ export class HuiCalendarCard extends LitElement implements LovelaceCard { } public disconnectedCallback(): void { + super.disconnectedCallback(); if (this._resizeObserver) { this._resizeObserver.disconnect(); } diff --git a/src/panels/lovelace/cards/hui-markdown-card.ts b/src/panels/lovelace/cards/hui-markdown-card.ts index 59dfd15265..0cf9f5c4e4 100644 --- a/src/panels/lovelace/cards/hui-markdown-card.ts +++ b/src/panels/lovelace/cards/hui-markdown-card.ts @@ -69,6 +69,7 @@ export class HuiMarkdownCard extends LitElement implements LovelaceCard { } public disconnectedCallback() { + super.disconnectedCallback(); this._tryDisconnect(); } diff --git a/src/panels/lovelace/cards/hui-media-control-card.ts b/src/panels/lovelace/cards/hui-media-control-card.ts index fcd449cdf0..04e8773237 100644 --- a/src/panels/lovelace/cards/hui-media-control-card.ts +++ b/src/panels/lovelace/cards/hui-media-control-card.ts @@ -130,6 +130,7 @@ export class HuiMediaControlCard extends LitElement implements LovelaceCard { } public disconnectedCallback(): void { + super.disconnectedCallback(); if (this._progressInterval) { clearInterval(this._progressInterval); this._progressInterval = undefined; diff --git a/src/panels/lovelace/cards/hui-weather-forecast-card.ts b/src/panels/lovelace/cards/hui-weather-forecast-card.ts index 46b0e67cda..2dfd3a3a88 100644 --- a/src/panels/lovelace/cards/hui-weather-forecast-card.ts +++ b/src/panels/lovelace/cards/hui-weather-forecast-card.ts @@ -124,6 +124,7 @@ class HuiWeatherForecastCard extends LitElement implements LovelaceCard { } public disconnectedCallback(): void { + super.disconnectedCallback(); if (this._resizeObserver) { this._resizeObserver.disconnect(); } diff --git a/src/panels/lovelace/components/hui-entity-editor.ts b/src/panels/lovelace/components/hui-entity-editor.ts index ca0a8303c1..870058d349 100644 --- a/src/panels/lovelace/components/hui-entity-editor.ts +++ b/src/panels/lovelace/components/hui-entity-editor.ts @@ -33,6 +33,7 @@ export class HuiEntityEditor extends LitElement { private _sortable?: SortableInstance; public disconnectedCallback() { + super.disconnectedCallback(); this._destroySortable(); } diff --git a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts index de176cc217..1db19aa31f 100644 --- a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts @@ -107,6 +107,7 @@ export class HuiTileCardFeaturesEditor extends LitElement { private _sortable?: SortableInstance; public disconnectedCallback() { + super.disconnectedCallback(); this._destroySortable(); } diff --git a/src/panels/lovelace/editor/hui-entities-card-row-editor.ts b/src/panels/lovelace/editor/hui-entities-card-row-editor.ts index d34f656ab4..950ce84d41 100644 --- a/src/panels/lovelace/editor/hui-entities-card-row-editor.ts +++ b/src/panels/lovelace/editor/hui-entities-card-row-editor.ts @@ -37,6 +37,7 @@ export class HuiEntitiesCardRowEditor extends LitElement { private _sortable?: SortableInstance; public disconnectedCallback() { + super.disconnectedCallback(); this._destroySortable(); } diff --git a/src/panels/lovelace/entity-rows/hui-input-number-entity-row.ts b/src/panels/lovelace/entity-rows/hui-input-number-entity-row.ts index 6488d33843..9281d2391f 100644 --- a/src/panels/lovelace/entity-rows/hui-input-number-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-input-number-entity-row.ts @@ -49,6 +49,7 @@ class HuiInputNumberEntityRow extends LitElement implements LovelaceRow { } public disconnectedCallback(): void { + super.disconnectedCallback(); this._resizeObserver?.disconnect(); } diff --git a/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts b/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts index ab2de02d9a..daf1aa150c 100644 --- a/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts @@ -68,6 +68,7 @@ class HuiMediaPlayerEntityRow extends LitElement implements LovelaceRow { } public disconnectedCallback(): void { + super.disconnectedCallback(); this._resizeObserver?.unobserve(this); } diff --git a/src/panels/lovelace/entity-rows/hui-number-entity-row.ts b/src/panels/lovelace/entity-rows/hui-number-entity-row.ts index bd55652798..7b4d2a6848 100644 --- a/src/panels/lovelace/entity-rows/hui-number-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-number-entity-row.ts @@ -49,6 +49,7 @@ class HuiNumberEntityRow extends LitElement implements LovelaceRow { } public disconnectedCallback(): void { + super.disconnectedCallback(); this._resizeObserver?.disconnect(); } diff --git a/src/state-summary/state-card-input_number.ts b/src/state-summary/state-card-input_number.ts index 6cd218fb03..6deb14392b 100644 --- a/src/state-summary/state-card-input_number.ts +++ b/src/state-summary/state-card-input_number.ts @@ -35,6 +35,7 @@ class StateCardInputNumber extends LitElement { } public disconnectedCallback(): void { + super.disconnectedCallback(); this._resizeObserver?.disconnect(); } From 46a036ddbe9fb5aa698f01026dd318b835abb8d1 Mon Sep 17 00:00:00 2001 From: Steve Repsher Date: Mon, 21 Aug 2023 07:01:42 -0400 Subject: [PATCH 106/182] Improve frontend error messages written to system log (#17616) --- build-scripts/webpack.cjs | 5 ++- package.json | 3 ++ src/data/system_log.ts | 16 +++++--- src/entrypoints/core.ts | 30 --------------- src/resources/log-message.ts | 72 ++++++++++++++++++++++++++++++++++++ src/state/logging-mixin.ts | 41 +++++++++++++++++++- yarn.lock | 70 +++++++++++++++++++++++++++++++++++ 7 files changed, 200 insertions(+), 37 deletions(-) create mode 100644 src/resources/log-message.ts diff --git a/build-scripts/webpack.cjs b/build-scripts/webpack.cjs index 13b7c75c6a..efed17792f 100644 --- a/build-scripts/webpack.cjs +++ b/build-scripts/webpack.cjs @@ -202,7 +202,10 @@ const createWebpackConfig = ({ !existsSync(info.resourcePath) || info.resourcePath.startsWith("./node_modules") ) { - return new URL(info.resourcePath, "webpack://frontend/").href; + // Source URLs are unknown for dependencies, so we use a relative URL with a + // non - existent top directory. This results in a clean source tree in browser + // dev tools, and they stay happy getting 404s with valid requests. + return `/unknown${path.resolve("/", info.resourcePath)}`; } return new URL(info.resourcePath, bundle.sourceMapURL()).href; } diff --git a/package.json b/package.json index 1a2766802f..d8c69d9767 100644 --- a/package.json +++ b/package.json @@ -133,10 +133,12 @@ "roboto-fontface": "0.10.0", "rrule": "2.7.2", "sortablejs": "1.15.0", + "stacktrace-js": "2.0.2", "superstruct": "1.0.3", "tinykeys": "2.1.0", "tsparticles-engine": "2.12.0", "tsparticles-preset-links": "2.12.0", + "ua-parser-js": "1.0.35", "unfetch": "5.0.0", "vis-data": "7.1.6", "vis-network": "9.1.6", @@ -182,6 +184,7 @@ "@types/serve-handler": "6.1.1", "@types/sortablejs": "1.15.1", "@types/tar": "6.1.5", + "@types/ua-parser-js": "0.7.36", "@types/webspeechapi": "0.0.29", "@typescript-eslint/eslint-plugin": "6.4.0", "@typescript-eslint/parser": "6.4.0", diff --git a/src/data/system_log.ts b/src/data/system_log.ts index 61b02df458..593fcba0d6 100644 --- a/src/data/system_log.ts +++ b/src/data/system_log.ts @@ -1,15 +1,21 @@ -import { HomeAssistant, TranslationDict } from "../types"; +import { HomeAssistant } from "../types"; + +export type SystemLogLevel = + | "critical" + | "error" + | "warning" + | "info" + | "debug"; export interface LoggedError { name: string; message: [string]; - level: keyof TranslationDict["ui"]["panel"]["config"]["logs"]["level"]; + level: SystemLogLevel; source: [string, number]; - // unix timestamp in seconds - timestamp: number; exception: string; count: number; - // unix timestamp in seconds + // unix timestamps in seconds + timestamp: number; first_occurred: number; } diff --git a/src/entrypoints/core.ts b/src/entrypoints/core.ts index d9467f11ca..8cd2671645 100644 --- a/src/entrypoints/core.ts +++ b/src/entrypoints/core.ts @@ -25,7 +25,6 @@ import { subscribeUser } from "../data/ws-user"; import type { ExternalAuth } from "../external_app/external_auth"; import "../resources/array.flat.polyfill"; import "../resources/safari-14-attachshadow-patch"; -import { HomeAssistant } from "../types"; import { MAIN_WINDOW_NAME } from "../data/main_window"; window.name = MAIN_WINDOW_NAME; @@ -132,32 +131,3 @@ window.hassConnection.then(({ conn }) => { llWindow.llResProm = fetchResources(conn); } }); - -window.addEventListener("error", (e) => { - if ( - !__DEV__ && - typeof e.message === "string" && - (e.message.includes("ResizeObserver loop limit exceeded") || - e.message.includes( - "ResizeObserver loop completed with undelivered notifications" - )) - ) { - e.preventDefault(); - e.stopImmediatePropagation(); - e.stopPropagation(); - return; - } - const homeAssistant = document.querySelector("home-assistant") as any; - if ( - homeAssistant && - homeAssistant.hass && - (homeAssistant.hass as HomeAssistant).callService - ) { - homeAssistant.hass.callService("system_log", "write", { - logger: `frontend.${ - __DEV__ ? "js_dev" : "js" - }.${__BUILD__}.${__VERSION__.replace(".", "")}`, - message: `${e.filename}:${e.lineno}:${e.colno} ${e.message}`, - }); - } -}); diff --git a/src/resources/log-message.ts b/src/resources/log-message.ts new file mode 100644 index 0000000000..53237ffbac --- /dev/null +++ b/src/resources/log-message.ts @@ -0,0 +1,72 @@ +import "core-js/modules/web.url.can-parse"; +import { fromError } from "stacktrace-js"; +import { UAParser } from "ua-parser-js"; + +// URL paths to remove from filenames and max stack trace lines for brevity +const REMOVAL_PATHS = + /^\/(?:home-assistant\/frontend\/[^/]+|unknown|\/{2}\.)\//; +const MAX_STACK_FRAMES = 10; + +export const createLogMessage = async ( + error: unknown, + intro?: string, + messageFallback?: string, + stackFallback?: string +) => { + const lines: (string | undefined)[] = []; + // Append the originating browser/OS to any intro for easier identification + if (intro) { + const parser = new UAParser(); + const { + name: browserName = "unknown browser", + version: browserVersion = "", + } = parser.getBrowser(); + const { name: osName = "unknown OS", version: osVersion = "" } = + parser.getOS(); + const browser = `${browserName} ${browserVersion}`.trim(); + const os = `${osName} ${osVersion}`.trim(); + lines.push(`${intro} from ${browser} on ${os}`); + } + // In most cases, an Error instance will be thrown, which can have many details to log: + // - a standard string coercion to "ErrorType: Message" + // - a stack added by browsers (which must be converted to original source) + // - an optional cause chain + // - a possible list of aggregated errors + if (error instanceof Error) { + lines.push(error.toString() || messageFallback); + const stackLines = (await fromError(error)) + .slice(0, MAX_STACK_FRAMES) + .map((frame) => { + frame.fileName ??= ""; + // @ts-expect-error canParse not in DOM library yet + if (URL.canParse(frame.fileName)) { + frame.fileName = new URL(frame.fileName).pathname; + } + frame.fileName = frame.fileName.replace(REMOVAL_PATHS, ""); + return frame.toString(); + }); + lines.push(...(stackLines.length > 0 ? stackLines : [stackFallback])); + // @ts-expect-error Requires library bump to ES2022 + if (error.cause) { + // @ts-expect-error Requires library bump to ES2022 + lines.push(`Caused by: ${await createLogMessage(error.cause)}`); + } + if (error instanceof AggregateError) { + const subMessageEntries = error.errors.map( + async (e, i) => [i, await createLogMessage(e)] as const + ); + for await (const [i, m] of subMessageEntries) { + lines.push(`Part ${i + 1} of ${error.errors.length}: ${m}`); + } + } + } else { + // The error could be anything, so just stringify it and log with fallbacks + const errorString = JSON.stringify(error, null, 2); + lines.push( + messageFallback, + errorString === messageFallback ? "" : errorString, + stackFallback + ); + } + return lines.filter(Boolean).join("\n"); +}; diff --git a/src/state/logging-mixin.ts b/src/state/logging-mixin.ts index 1d1a232e31..677ccf45b0 100644 --- a/src/state/logging-mixin.ts +++ b/src/state/logging-mixin.ts @@ -1,9 +1,10 @@ import { HASSDomEvent } from "../common/dom/fire_event"; +import { SystemLogLevel } from "../data/system_log"; import { Constructor } from "../types"; import { HassBaseEl } from "./hass-base-mixin"; interface WriteLogParams { - level?: "debug" | "info" | "warning" | "error" | "critical"; + level?: SystemLogLevel; message: string; } @@ -21,6 +22,44 @@ export const loggingMixin = >( superClass: T ) => class extends superClass { + protected hassConnected() { + super.hassConnected(); + window.addEventListener("error", async (ev) => { + if ( + !__DEV__ && + (ev.message.includes("ResizeObserver loop limit exceeded") || + ev.message.includes( + "ResizeObserver loop completed with undelivered notifications" + )) + ) { + ev.preventDefault(); + ev.stopImmediatePropagation(); + ev.stopPropagation(); + return; + } + const { createLogMessage } = await import("../resources/log-message"); + this._writeLog({ + // The error object from browsers includes the message and a stack trace, + // so use the data in the error event just as fallback + message: await createLogMessage( + ev.error, + "Uncaught error", + ev.message, + `@${ev.filename}:${ev.lineno}:${ev.colno}` + ), + }); + }); + window.addEventListener("unhandledrejection", async (ev) => { + const { createLogMessage } = await import("../resources/log-message"); + this._writeLog({ + message: await createLogMessage( + ev.reason, + "Unhandled promise rejection" + ), + }); + }); + } + protected firstUpdated(changedProps) { super.firstUpdated(changedProps); this.addEventListener("write_log", (ev) => { diff --git a/yarn.lock b/yarn.lock index 141c3e1f47..19aced3cb0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4602,6 +4602,13 @@ __metadata: languageName: node linkType: hard +"@types/ua-parser-js@npm:0.7.36": + version: 0.7.36 + resolution: "@types/ua-parser-js@npm:0.7.36" + checksum: 8c24d4dc12ed1b8b98195838093391c358c81bf75e9cae0ecec8f7824b441e069daaa17b974a3e257172caddb671439f0c0b44bf43bfcf409b7a574a25aab948 + languageName: node + linkType: hard + "@types/webspeechapi@npm:0.0.29": version: 0.0.29 resolution: "@types/webspeechapi@npm:0.0.29" @@ -7753,6 +7760,15 @@ __metadata: languageName: node linkType: hard +"error-stack-parser@npm:^2.0.6": + version: 2.1.4 + resolution: "error-stack-parser@npm:2.1.4" + dependencies: + stackframe: ^1.3.4 + checksum: 3b916d2d14c6682f287c8bfa28e14672f47eafe832701080e420e7cdbaebb2c50293868256a95706ac2330fe078cf5664713158b49bc30d7a5f2ac229ded0e18 + languageName: node + linkType: hard + "es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4, es-abstract@npm:^1.21.2": version: 1.22.1 resolution: "es-abstract@npm:1.22.1" @@ -9700,6 +9716,7 @@ __metadata: "@types/serve-handler": 6.1.1 "@types/sortablejs": 1.15.1 "@types/tar": 6.1.5 + "@types/ua-parser-js": 0.7.36 "@types/webspeechapi": 0.0.29 "@typescript-eslint/eslint-plugin": 6.4.0 "@typescript-eslint/parser": 6.4.0 @@ -9790,6 +9807,7 @@ __metadata: sinon: 15.2.0 sortablejs: 1.15.0 source-map-url: 0.4.1 + stacktrace-js: 2.0.2 superstruct: 1.0.3 systemjs: 6.14.2 tar: 6.1.15 @@ -9799,6 +9817,7 @@ __metadata: tsparticles-engine: 2.12.0 tsparticles-preset-links: 2.12.0 typescript: 5.1.6 + ua-parser-js: 1.0.35 unfetch: 5.0.0 vinyl-buffer: 1.0.1 vinyl-source-stream: 2.0.0 @@ -14500,6 +14519,13 @@ __metadata: languageName: node linkType: hard +"source-map@npm:0.5.6": + version: 0.5.6 + resolution: "source-map@npm:0.5.6" + checksum: 390b3f5165c9631a74fb6fb55ba61e62a7f9b7d4026ae0e2bfc2899c241d71c1bccb8731c496dc7f7cb79a5f523406eb03d8c5bebe8448ee3fc38168e2d209c8 + languageName: node + linkType: hard + "source-map@npm:^0.5.6": version: 0.5.7 resolution: "source-map@npm:0.5.7" @@ -14623,6 +14649,15 @@ __metadata: languageName: node linkType: hard +"stack-generator@npm:^2.0.5": + version: 2.0.10 + resolution: "stack-generator@npm:2.0.10" + dependencies: + stackframe: ^1.3.4 + checksum: 4fc3978a934424218a0aa9f398034e1f78153d5ff4f4ff9c62478c672debb47dd58de05b09fc3900530cbb526d72c93a6e6c9353bacc698e3b1c00ca3dda0c47 + languageName: node + linkType: hard + "stack-trace@npm:0.0.10": version: 0.0.10 resolution: "stack-trace@npm:0.0.10" @@ -14630,6 +14665,34 @@ __metadata: languageName: node linkType: hard +"stackframe@npm:^1.3.4": + version: 1.3.4 + resolution: "stackframe@npm:1.3.4" + checksum: bae1596873595c4610993fa84f86a3387d67586401c1816ea048c0196800c0646c4d2da98c2ee80557fd9eff05877efe33b91ba6cd052658ed96ddc85d19067d + languageName: node + linkType: hard + +"stacktrace-gps@npm:^3.0.4": + version: 3.1.2 + resolution: "stacktrace-gps@npm:3.1.2" + dependencies: + source-map: 0.5.6 + stackframe: ^1.3.4 + checksum: 85daa232d138239b6ae0f4bcdd87d15d302a045d93625db17614030945b5314e204b5fbcf9bee5b6f4f9e6af5fca05f65c27fe910894b861ef6853b99470aa1c + languageName: node + linkType: hard + +"stacktrace-js@npm:2.0.2": + version: 2.0.2 + resolution: "stacktrace-js@npm:2.0.2" + dependencies: + error-stack-parser: ^2.0.6 + stack-generator: ^2.0.5 + stacktrace-gps: ^3.0.4 + checksum: 081e786d56188ac04ac6604c09cd863b3ca2b4300ec061366cf68c3e4ad9edaa34fb40deea03cc23a05f442aa341e9171f47313f19bd588f9bec6c505a396286 + languageName: node + linkType: hard + "static-extend@npm:^0.1.1": version: 0.1.2 resolution: "static-extend@npm:0.1.2" @@ -15581,6 +15644,13 @@ __metadata: languageName: node linkType: hard +"ua-parser-js@npm:1.0.35": + version: 1.0.35 + resolution: "ua-parser-js@npm:1.0.35" + checksum: 02370d38a0c8b586f2503d1c3bbba5cbc0b97d407282f9023201a99e4c03eae4357a2800fdf50cf80d73ec25c0b0cc5bfbaa03975b0add4043d6e4c86712c9c1 + languageName: node + linkType: hard + "unbox-primitive@npm:^1.0.2": version: 1.0.2 resolution: "unbox-primitive@npm:1.0.2" From e8bd77a84e9b9684754ae5b812fe18659ec4e1ae Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Mon, 21 Aug 2023 13:02:36 +0200 Subject: [PATCH 107/182] Add water heater more info to gallery (#17621) --- gallery/src/pages/more-info/climate.ts | 22 ++++++ .../src/pages/more-info/water-heater.markdown | 3 + gallery/src/pages/more-info/water-heater.ts | 70 +++++++++++++++++++ .../ha-more-info-climate-temperature.ts | 5 +- .../ha-more-info-water_heater-temperature.ts | 4 +- src/fake_data/entity.ts | 21 ++++++ src/fake_data/provide_hass.ts | 37 +++++++++- 7 files changed, 157 insertions(+), 5 deletions(-) create mode 100644 gallery/src/pages/more-info/water-heater.markdown create mode 100644 gallery/src/pages/more-info/water-heater.ts diff --git a/gallery/src/pages/more-info/climate.ts b/gallery/src/pages/more-info/climate.ts index 95cc65321e..daa3554c50 100644 --- a/gallery/src/pages/more-info/climate.ts +++ b/gallery/src/pages/more-info/climate.ts @@ -43,6 +43,28 @@ const ENTITIES = [ target_temp_low: 20, target_temp_high: 25, }), + getEntity("climate", "advanced", "auto", { + friendly_name: "Advanced hvac", + supported_features: + // eslint-disable-next-line no-bitwise + ClimateEntityFeature.TARGET_TEMPERATURE_RANGE | + ClimateEntityFeature.TARGET_HUMIDITY | + ClimateEntityFeature.PRESET_MODE, + hvac_modes: ["auto", "off"], + hvac_mode: "auto", + preset_modes: ["eco", "comfort", "boost"], + preset_mode: "eco", + current_temperature: 18, + min_temp: 10, + max_temp: 30, + target_temp_step: 1, + target_temp_low: 20, + target_temp_high: 25, + current_humidity: 40, + min_humidity: 0, + max_humidity: 100, + humidity: 50, + }), getEntity("climate", "unavailable", "unavailable", { friendly_name: "Unavailable heater", hvac_modes: ["heat", "off"], diff --git a/gallery/src/pages/more-info/water-heater.markdown b/gallery/src/pages/more-info/water-heater.markdown new file mode 100644 index 0000000000..52dd5b3be1 --- /dev/null +++ b/gallery/src/pages/more-info/water-heater.markdown @@ -0,0 +1,3 @@ +--- +title: Water Heater +--- diff --git a/gallery/src/pages/more-info/water-heater.ts b/gallery/src/pages/more-info/water-heater.ts new file mode 100644 index 0000000000..8210dcac55 --- /dev/null +++ b/gallery/src/pages/more-info/water-heater.ts @@ -0,0 +1,70 @@ +import { html, LitElement, PropertyValues, TemplateResult } from "lit"; +import { customElement, property, query } from "lit/decorators"; +import "../../../../src/components/ha-card"; +import { WaterHeaterEntityFeature } from "../../../../src/data/water_heater"; +import "../../../../src/dialogs/more-info/more-info-content"; +import { getEntity } from "../../../../src/fake_data/entity"; +import { + MockHomeAssistant, + provideHass, +} from "../../../../src/fake_data/provide_hass"; +import "../../components/demo-more-infos"; + +const ENTITIES = [ + getEntity("water_heater", "basic", "eco", { + friendly_name: "Basic heater", + operation_list: ["heat_pump", "eco", "performance", "off"], + operation_mode: "eco", + away_mode: "off", + target_temp_step: 1, + current_temperature: 55, + temperature: 60, + min_temp: 20, + max_temp: 70, + supported_features: + // eslint-disable-next-line no-bitwise + WaterHeaterEntityFeature.TARGET_TEMPERATURE | + WaterHeaterEntityFeature.OPERATION_MODE | + WaterHeaterEntityFeature.AWAY_MODE, + }), + getEntity("water_heater", "unavailable", "unavailable", { + friendly_name: "Unavailable heater", + operation_list: ["heat_pump", "eco", "performance", "off"], + operation_mode: "off", + min_temp: 20, + max_temp: 70, + supported_features: + // eslint-disable-next-line no-bitwise + WaterHeaterEntityFeature.TARGET_TEMPERATURE | + WaterHeaterEntityFeature.OPERATION_MODE, + }), +]; + +@customElement("demo-more-info-water-heater") +class DemoMoreInfoWaterHeater extends LitElement { + @property() public hass!: MockHomeAssistant; + + @query("demo-more-infos") private _demoRoot!: HTMLElement; + + protected render(): TemplateResult { + return html` + ent.entityId)} + > + `; + } + + protected firstUpdated(changedProperties: PropertyValues) { + super.firstUpdated(changedProperties); + const hass = provideHass(this._demoRoot); + hass.updateTranslations(null, "en"); + hass.addEntities(ENTITIES); + } +} + +declare global { + interface HTMLElementTagNameMap { + "demo-more-info-water-heater": DemoMoreInfoWaterHeater; + } +} diff --git a/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts b/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts index e9ddb81c11..1d7306f439 100644 --- a/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts +++ b/src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts @@ -416,11 +416,12 @@ export class HaMoreInfoClimateTemperature extends LitElement { font-size: 20px; line-height: 24px; align-self: flex-start; - margin-left: -20px; width: 20px; margin-top: 4px; } - + .decimal + .unit { + margin-left: -20px; + } .dual { display: flex; flex-direction: row; diff --git a/src/dialogs/more-info/components/water_heater/ha-more-info-water_heater-temperature.ts b/src/dialogs/more-info/components/water_heater/ha-more-info-water_heater-temperature.ts index a23d89fc79..3d2319688c 100644 --- a/src/dialogs/more-info/components/water_heater/ha-more-info-water_heater-temperature.ts +++ b/src/dialogs/more-info/components/water_heater/ha-more-info-water_heater-temperature.ts @@ -243,10 +243,12 @@ export class HaMoreInfoWaterHeaterTemperature extends LitElement { font-size: 20px; line-height: 24px; align-self: flex-start; - margin-left: -20px; width: 20px; margin-top: 4px; } + .decimal + .unit { + margin-left: -20px; + } `, ]; } diff --git a/src/fake_data/entity.ts b/src/fake_data/entity.ts index de4b0ca5a5..f6e6912dfd 100644 --- a/src/fake_data/entity.ts +++ b/src/fake_data/entity.ts @@ -356,6 +356,26 @@ class ClimateEntity extends Entity { } } +class WaterHeaterEntity extends Entity { + public async handleService(domain, service, data) { + if (domain !== this.domain) { + return; + } + + if (service === "set_operation_mode") { + this.update(data.operation_mode, this.attributes); + } else if (["set_temperature"].includes(service)) { + const { entity_id, ...toSet } = data; + this.update(this.state, { + ...this.attributes, + ...toSet, + }); + } else { + super.handleService(domain, service, data); + } + } +} + class GroupEntity extends Entity { public async handleService(domain, service, data) { if (!["homeassistant", this.domain].includes(domain)) { @@ -386,6 +406,7 @@ const TYPES = { lock: LockEntity, media_player: MediaPlayerEntity, switch: ToggleEntity, + water_heater: WaterHeaterEntity, }; export const getEntity = ( diff --git a/src/fake_data/provide_hass.ts b/src/fake_data/provide_hass.ts index 3da61ed4fe..297f4d4f8c 100644 --- a/src/fake_data/provide_hass.ts +++ b/src/fake_data/provide_hass.ts @@ -1,15 +1,16 @@ -import { HassEntities } from "home-assistant-js-websocket"; +import { HassEntities, HassEntity } from "home-assistant-js-websocket"; import { applyThemesOnElement, invalidateThemeCache, } from "../common/dom/apply_themes_on_element"; import { fireEvent } from "../common/dom/fire_event"; +import { computeFormatFunctions } from "../common/translations/entity-state"; import { computeLocalize } from "../common/translations/localize"; import { DEFAULT_PANEL } from "../data/panel"; import { + DateFormat, FirstWeekday, NumberFormat, - DateFormat, TimeFormat, TimeZone, } from "../data/translation"; @@ -49,6 +50,13 @@ export interface MockHomeAssistant extends HomeAssistant { mockAPI(path: string | RegExp, callback: MockRestCallback); mockEvent(event); mockTheme(theme: Record | null); + formatEntityState(stateObj: HassEntity, state?: string): string; + formatEntityAttributeValue( + stateObj: HassEntity, + attribute: string, + value?: any + ): string; + formatEntityAttributeName(stateObj: HassEntity, attribute: string): string; } export const provideHass = ( @@ -73,6 +81,7 @@ export const provideHass = ( const lang = language || getLocalLanguage(); const translation = await getTranslation(fragment, lang); await addTranslations(translation.data, lang); + updateFormatFunctions(); } async function addTranslations( @@ -101,6 +110,24 @@ export const provideHass = ( }); } + async function updateFormatFunctions() { + const { + formatEntityState, + formatEntityAttributeName, + formatEntityAttributeValue, + } = await computeFormatFunctions( + hass().localize, + hass().locale, + hass().config, + hass().entities + ); + hass().updateHass({ + formatEntityState, + formatEntityAttributeName, + formatEntityAttributeValue, + }); + } + function addEntities(newEntities, replace = false) { const states = {}; ensureArray(newEntities).forEach((ent) => { @@ -115,6 +142,7 @@ export const provideHass = ( } else { updateStates(states); } + updateFormatFunctions(); } function mockAPI(path, callback) { @@ -318,6 +346,11 @@ export const provideHass = ( areas: {}, devices: {}, entities: {}, + formatEntityState: (stateObj, state) => + (state !== null ? state : stateObj.state) ?? "", + formatEntityAttributeName: (_stateObj, attribute) => attribute, + formatEntityAttributeValue: (stateObj, attribute, value) => + value !== null ? value : stateObj.attributes[attribute] ?? "", ...overrideData, }; From dddee87de37fcd6751523d4a8338cd07d1cf9c9a Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Mon, 21 Aug 2023 13:03:20 +0200 Subject: [PATCH 108/182] Use gradient based on min/max color temp for tile card feature (#17612) --- src/common/color/convert-light-color.ts | 4 +- src/components/ha-temp-color-picker.ts | 12 +++-- .../lights/light-color-temp-picker.ts | 13 ++++- .../hui-light-color-temp-tile-feature.ts | 49 +++++++++++++++++-- 4 files changed, 65 insertions(+), 13 deletions(-) diff --git a/src/common/color/convert-light-color.ts b/src/common/color/convert-light-color.ts index 3e67b00fcb..3ca78f6c5c 100644 --- a/src/common/color/convert-light-color.ts +++ b/src/common/color/convert-light-color.ts @@ -1,7 +1,7 @@ import { clamp } from "../number/clamp"; -const DEFAULT_MIN_KELVIN = 2700; -const DEFAULT_MAX_KELVIN = 6500; +export const DEFAULT_MIN_KELVIN = 2700; +export const DEFAULT_MAX_KELVIN = 6500; export const temperature2rgb = ( temperature: number diff --git a/src/components/ha-temp-color-picker.ts b/src/components/ha-temp-color-picker.ts index 4e0d109109..ce471c207f 100644 --- a/src/components/ha-temp-color-picker.ts +++ b/src/components/ha-temp-color-picker.ts @@ -1,10 +1,14 @@ import { DIRECTION_ALL, Manager, Pan, Tap } from "@egjs/hammerjs"; -import { css, html, LitElement, PropertyValues, svg } from "lit"; +import { LitElement, PropertyValues, css, html, svg } from "lit"; import { customElement, property, query, state } from "lit/decorators"; import { classMap } from "lit/directives/class-map"; import { styleMap } from "lit/directives/style-map"; import { rgb2hex } from "../common/color/convert-color"; -import { temperature2rgb } from "../common/color/convert-light-color"; +import { + DEFAULT_MAX_KELVIN, + DEFAULT_MIN_KELVIN, + temperature2rgb, +} from "../common/color/convert-light-color"; import { fireEvent } from "../common/dom/fire_event"; const SAFE_ZONE_FACTOR = 0.9; @@ -79,10 +83,10 @@ class HaTempColorPicker extends LitElement { public value?: number; @property({ type: Number }) - public min = 2000; + public min = DEFAULT_MIN_KELVIN; @property({ type: Number }) - public max = 10000; + public max = DEFAULT_MAX_KELVIN; @query("#canvas") private _canvas!: HTMLCanvasElement; diff --git a/src/dialogs/more-info/components/lights/light-color-temp-picker.ts b/src/dialogs/more-info/components/lights/light-color-temp-picker.ts index 4543c0dc88..cd69b7ba7d 100644 --- a/src/dialogs/more-info/components/lights/light-color-temp-picker.ts +++ b/src/dialogs/more-info/components/lights/light-color-temp-picker.ts @@ -16,6 +16,10 @@ import { LightEntity, } from "../../../../data/light"; import { HomeAssistant } from "../../../../types"; +import { + DEFAULT_MAX_KELVIN, + DEFAULT_MIN_KELVIN, +} from "../../../../common/color/convert-light-color"; declare global { interface HASSDomEvents { @@ -37,12 +41,17 @@ class LightColorTempPicker extends LitElement { return nothing; } + const minKelvin = + this.stateObj.attributes.min_color_temp_kelvin ?? DEFAULT_MIN_KELVIN; + const maxKelvin = + this.stateObj.attributes.max_color_temp_kelvin ?? DEFAULT_MAX_KELVIN; + return html` diff --git a/src/panels/lovelace/tile-features/hui-light-color-temp-tile-feature.ts b/src/panels/lovelace/tile-features/hui-light-color-temp-tile-feature.ts index 78fbab6367..43f16a4655 100644 --- a/src/panels/lovelace/tile-features/hui-light-color-temp-tile-feature.ts +++ b/src/panels/lovelace/tile-features/hui-light-color-temp-tile-feature.ts @@ -1,6 +1,14 @@ import { HassEntity } from "home-assistant-js-websocket"; import { css, html, LitElement, nothing } from "lit"; import { customElement, property, state } from "lit/decorators"; +import { styleMap } from "lit/directives/style-map"; +import memoizeOne from "memoize-one"; +import { rgb2hex } from "../../../common/color/convert-color"; +import { + DEFAULT_MAX_KELVIN, + DEFAULT_MIN_KELVIN, + temperature2rgb, +} from "../../../common/color/convert-light-color"; import { computeDomain } from "../../../common/entity/compute_domain"; import { stateActive } from "../../../common/entity/state_active"; import "../../../components/ha-control-slider"; @@ -57,6 +65,13 @@ class HuiLightColorTempTileFeature ? this.stateObj.attributes.color_temp_kelvin : undefined; + const minKelvin = + this.stateObj.attributes.min_color_temp_kelvin ?? DEFAULT_MIN_KELVIN; + const maxKelvin = + this.stateObj.attributes.max_color_temp_kelvin ?? DEFAULT_MAX_KELVIN; + + const gradient = this.generateTemperatureGradient(minKelvin!, maxKelvin); + return html`
`; } + private generateTemperatureGradient = memoizeOne( + (min: number, max: number) => { + const count = 10; + + const gradient: [number, string][] = []; + + const step = (max - min) / count; + const percentageStep = 1 / count; + + for (let i = 0; i < count + 1; i++) { + const value = min + step * i; + + const hex = rgb2hex(temperature2rgb(value)); + gradient.push([percentageStep * i, hex]); + } + + return gradient + .map(([stop, color]) => `${color} ${(stop as number) * 100}%`) + .join(", "); + } + ); + private _valueChanged(ev: CustomEvent) { ev.stopPropagation(); const value = ev.detail.value; @@ -86,11 +126,10 @@ class HuiLightColorTempTileFeature static get styles() { return css` ha-control-slider { + --control-slider-color: var(--tile-color); --control-slider-background: -webkit-linear-gradient( left, - rgb(255, 160, 0) 0%, - white 50%, - rgb(166, 209, 255) 100% + var(--gradient) ); --control-slider-background-opacity: 1; --control-slider-thickness: 40px; From ac7c354bfc27747ff83411fc616046d636741edf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 13:12:02 +0200 Subject: [PATCH 109/182] Update dependency @lrnwebcomponents/simple-tooltip to v7.0.16 (#17651) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d8c69d9767..645ff2a3fd 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "@lit-labs/context": "0.4.0", "@lit-labs/motion": "1.0.4", "@lit-labs/virtualizer": "2.0.5", - "@lrnwebcomponents/simple-tooltip": "7.0.15", + "@lrnwebcomponents/simple-tooltip": "7.0.16", "@material/chips": "=14.0.0-canary.53b3cad2f.0", "@material/data-table": "=14.0.0-canary.53b3cad2f.0", "@material/mwc-button": "0.27.0", diff --git a/yarn.lock b/yarn.lock index 19aced3cb0..8107220438 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2116,12 +2116,12 @@ __metadata: languageName: node linkType: hard -"@lrnwebcomponents/simple-tooltip@npm:7.0.15": - version: 7.0.15 - resolution: "@lrnwebcomponents/simple-tooltip@npm:7.0.15" +"@lrnwebcomponents/simple-tooltip@npm:7.0.16": + version: 7.0.16 + resolution: "@lrnwebcomponents/simple-tooltip@npm:7.0.16" dependencies: lit: ^2.7.6 - checksum: 01cb532415f3434be9d42025f71979216717c7f0a4a626f4d84626c3ce3b4f35514002e2b6bf4ccd9faab9c3d6eb8c08db4a17c0b6e8959c34f0708fcd64bcce + checksum: 0cb42c19c9f41945b4f9b28ee9e1a90b0ebc25a3fb84d5acd791af2de7243eb80eab830a9e2c6059381cdca27d05ce02e0c2ebb6c1b777fb2f657075cddc0999 languageName: node linkType: hard @@ -9651,7 +9651,7 @@ __metadata: "@lit-labs/context": 0.4.0 "@lit-labs/motion": 1.0.4 "@lit-labs/virtualizer": 2.0.5 - "@lrnwebcomponents/simple-tooltip": 7.0.15 + "@lrnwebcomponents/simple-tooltip": 7.0.16 "@material/chips": =14.0.0-canary.53b3cad2f.0 "@material/data-table": =14.0.0-canary.53b3cad2f.0 "@material/mwc-button": 0.27.0 From 5f015ac9af34c5fbf73c582f50855cebb0e33792 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Mon, 21 Aug 2023 13:17:11 +0200 Subject: [PATCH 110/182] Add basic more info for lawn mower (#17601) * Add basic more info for lawn mower * Change buttons layout --- src/common/translations/localize.ts | 2 + src/components/ha-lawn_mower-state.ts | 91 ++++++++ src/data/lawn_mower.ts | 42 ++++ src/dialogs/more-info/const.ts | 1 + .../controls/more-info-lawn_mower.ts | 213 ++++++++++++++++++ .../more-info/state_more_info_control.ts | 1 + src/state-summary/state-card-content.js | 3 +- src/state-summary/state-card-lawn_mower.ts | 43 ++++ src/translations/en.json | 14 ++ 9 files changed, 409 insertions(+), 1 deletion(-) create mode 100644 src/components/ha-lawn_mower-state.ts create mode 100644 src/data/lawn_mower.ts create mode 100644 src/dialogs/more-info/controls/more-info-lawn_mower.ts create mode 100644 src/state-summary/state-card-lawn_mower.ts diff --git a/src/common/translations/localize.ts b/src/common/translations/localize.ts index 15773a5cb5..c12f468423 100644 --- a/src/common/translations/localize.ts +++ b/src/common/translations/localize.ts @@ -11,10 +11,12 @@ export type LocalizeKeys = | `ui.card.alarm_control_panel.${string}` | `ui.card.weather.attributes.${string}` | `ui.card.weather.cardinal_direction.${string}` + | `ui.card.lawn_mower.actions.${string}` | `ui.components.calendar.event.rrule.${string}` | `ui.components.logbook.${string}` | `ui.components.selectors.file.${string}` | `ui.dialogs.entity_registry.editor.${string}` + | `ui.dialogs.more_info_control.lawn_mower.${string}` | `ui.dialogs.more_info_control.vacuum.${string}` | `ui.dialogs.quick-bar.commands.${string}` | `ui.dialogs.unhealthy.reason.${string}` diff --git a/src/components/ha-lawn_mower-state.ts b/src/components/ha-lawn_mower-state.ts new file mode 100644 index 0000000000..8214ae1ee0 --- /dev/null +++ b/src/components/ha-lawn_mower-state.ts @@ -0,0 +1,91 @@ +import "@material/mwc-button"; +import { CSSResultGroup, LitElement, css, html } from "lit"; +import { customElement, property } from "lit/decorators"; +import { supportsFeature } from "../common/entity/supports-feature"; +import { + LawnMowerEntity, + LawnMowerEntityFeature, + LawnMowerEntityState, +} from "../data/lawn_mower"; +import { HomeAssistant } from "../types"; + +type LawnMowerAction = { + action: string; + service: string; + feature: LawnMowerEntityFeature; +}; + +const LAWN_MOWER_ACTIONS: Partial< + Record +> = { + mowing: { + action: "dock", + service: "dock", + feature: LawnMowerEntityFeature.DOCK, + }, + docked: { + action: "start_mowing", + service: "start_mowing", + feature: LawnMowerEntityFeature.START_MOWING, + }, + paused: { + action: "resume_mowing", + service: "start_mowing", + feature: LawnMowerEntityFeature.START_MOWING, + }, +}; + +@customElement("ha-lawn_mower-state") +class HaLawnMowerState extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @property({ attribute: false }) public stateObj!: LawnMowerEntity; + + public render() { + const state = this.stateObj.state; + const action = LAWN_MOWER_ACTIONS[state]; + + if (action && supportsFeature(this.stateObj, action.feature)) { + return html` + + ${this.hass.localize(`ui.card.lawn_mower.actions.${action.action}`)} + + `; + } + + return html` + + ${this.hass.formatEntityState(this.stateObj)} + + `; + } + + callService(ev) { + ev.stopPropagation(); + const stateObj = this.stateObj; + const service = ev.target.service; + this.hass.callService("lawn_mower", service, { + entity_id: stateObj.entity_id, + }); + } + + static get styles(): CSSResultGroup { + return css` + mwc-button { + top: 3px; + height: 37px; + margin-right: -0.57em; + } + mwc-button[disabled] { + background-color: transparent; + color: var(--secondary-text-color); + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "ha-lawn_mower-state": HaLawnMowerState; + } +} diff --git a/src/data/lawn_mower.ts b/src/data/lawn_mower.ts new file mode 100644 index 0000000000..2d06b557a8 --- /dev/null +++ b/src/data/lawn_mower.ts @@ -0,0 +1,42 @@ +import { + HassEntityAttributeBase, + HassEntityBase, +} from "home-assistant-js-websocket"; +import { UNAVAILABLE } from "./entity"; + +export type LawnMowerEntityState = "paused" | "mowing" | "docked" | "error"; + +export const enum LawnMowerEntityFeature { + START_MOWING = 1, + PAUSE = 2, + DOCK = 4, +} + +interface LawnMowerEntityAttributes extends HassEntityAttributeBase { + [key: string]: any; +} + +export interface LawnMowerEntity extends HassEntityBase { + attributes: LawnMowerEntityAttributes; +} + +export function canStartMowing(stateObj: LawnMowerEntity): boolean { + if (stateObj.state === UNAVAILABLE) { + return false; + } + return stateObj.state !== "mowing"; +} + +export function canPause(stateObj: LawnMowerEntity): boolean { + if (stateObj.state === UNAVAILABLE) { + return false; + } + return stateObj.state !== "paused"; +} + +export function canDock(stateObj: LawnMowerEntity): boolean { + if (stateObj.state === UNAVAILABLE) { + return false; + } + return stateObj.state !== "docked"; +} diff --git a/src/dialogs/more-info/const.ts b/src/dialogs/more-info/const.ts index d77742b5be..80c5d5994f 100644 --- a/src/dialogs/more-info/const.ts +++ b/src/dialogs/more-info/const.ts @@ -46,6 +46,7 @@ export const DOMAINS_WITH_MORE_INFO = [ "image", "input_boolean", "input_datetime", + "lawn_mower", "light", "lock", "media_player", diff --git a/src/dialogs/more-info/controls/more-info-lawn_mower.ts b/src/dialogs/more-info/controls/more-info-lawn_mower.ts new file mode 100644 index 0000000000..dca0aa51a3 --- /dev/null +++ b/src/dialogs/more-info/controls/more-info-lawn_mower.ts @@ -0,0 +1,213 @@ +import { mdiHomeMapMarker, mdiPause, mdiPlay } from "@mdi/js"; +import { CSSResultGroup, LitElement, css, html, nothing } from "lit"; +import { customElement, property } from "lit/decorators"; +import memoizeOne from "memoize-one"; +import { computeStateDisplay } from "../../../common/entity/compute_state_display"; +import { computeStateDomain } from "../../../common/entity/compute_state_domain"; +import { supportsFeature } from "../../../common/entity/supports-feature"; +import { blankBeforePercent } from "../../../common/translations/blank_before_percent"; +import "../../../components/entity/ha-battery-icon"; +import "../../../components/ha-icon-button"; +import { UNAVAILABLE } from "../../../data/entity"; +import { + EntityRegistryDisplayEntry, + findBatteryChargingEntity, + findBatteryEntity, +} from "../../../data/entity_registry"; +import { + LawnMowerEntity, + LawnMowerEntityFeature, +} from "../../../data/lawn_mower"; +import { HomeAssistant } from "../../../types"; + +interface LawnMowerCommand { + translationKey: string; + icon: string; + serviceName: string; + isVisible: (stateObj: LawnMowerEntity) => boolean; +} + +const LAWN_MOWER_COMMANDS: LawnMowerCommand[] = [ + { + translationKey: "start_mowing", + icon: mdiPlay, + serviceName: "start_mowing", + isVisible: (stateObj) => + supportsFeature(stateObj, LawnMowerEntityFeature.START_MOWING), + }, + { + translationKey: "pause", + icon: mdiPause, + serviceName: "pause", + isVisible: (stateObj) => + supportsFeature(stateObj, LawnMowerEntityFeature.PAUSE), + }, + { + translationKey: "dock", + icon: mdiHomeMapMarker, + serviceName: "dock", + isVisible: (stateObj) => + supportsFeature(stateObj, LawnMowerEntityFeature.DOCK), + }, +]; + +@customElement("more-info-lawn_mower") +class MoreInfoLawnMower extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @property() public stateObj?: LawnMowerEntity; + + protected render() { + if (!this.hass || !this.stateObj) { + return nothing; + } + + const stateObj = this.stateObj; + + return html` + ${stateObj.state !== UNAVAILABLE + ? html`
+
+ ${this.hass!.localize( + "ui.dialogs.more_info_control.lawn_mower.activity" + )}: + + + + ${computeStateDisplay( + this.hass.localize, + stateObj, + this.hass.locale, + this.hass.config, + this.hass.entities + )} + + +
+ ${this._renderBattery()} +
` + : nothing} + ${LAWN_MOWER_COMMANDS.some((item) => item.isVisible(stateObj)) + ? html` +
+

+
+ ${this.hass!.localize( + "ui.dialogs.more_info_control.lawn_mower.commands" + )} +
+
+ ${LAWN_MOWER_COMMANDS.filter((item) => + item.isVisible(stateObj) + ).map( + (item) => html` +
+ +
+ ` + )} +
+
+ ` + : ""} + `; + } + + private _deviceEntities = memoizeOne( + ( + deviceId: string, + entities: HomeAssistant["entities"] + ): EntityRegistryDisplayEntry[] => { + const entries = Object.values(entities); + return entries.filter((entity) => entity.device_id === deviceId); + } + ); + + private _renderBattery() { + const stateObj = this.stateObj!; + + const deviceId = this.hass.entities[stateObj.entity_id]?.device_id; + + const entities = deviceId + ? this._deviceEntities(deviceId, this.hass.entities) + : []; + + const batteryEntity = findBatteryEntity(this.hass, entities); + const battery = batteryEntity + ? this.hass.states[batteryEntity.entity_id] + : undefined; + + const batteryIsBinary = + battery && computeStateDomain(battery) === "binary_sensor"; + + // Use device battery entity + if (battery && (batteryIsBinary || !isNaN(battery.state as any))) { + const batteryChargingEntity = findBatteryChargingEntity( + this.hass, + entities + ); + const batteryCharging = batteryChargingEntity + ? this.hass.states[batteryChargingEntity?.entity_id] + : undefined; + + return html` +
+ + ${batteryIsBinary + ? "" + : `${Number(battery.state).toFixed()}${blankBeforePercent( + this.hass.locale + )}%`} + + +
+ `; + } + + return nothing; + } + + private callService(ev: CustomEvent) { + const entry = (ev.target! as any).entry as LawnMowerCommand; + this.hass.callService("lawn_mower", entry.serviceName, { + entity_id: this.stateObj!.entity_id, + }); + } + + static get styles(): CSSResultGroup { + return css` + :host { + line-height: 1.5; + } + .status-subtitle { + color: var(--secondary-text-color); + } + .flex-horizontal { + display: flex; + flex-direction: row; + } + .space-around { + justify-content: space-around; + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "more-info-lawn_mower": MoreInfoLawnMower; + } +} diff --git a/src/dialogs/more-info/state_more_info_control.ts b/src/dialogs/more-info/state_more_info_control.ts index cc0d07eb67..65a2e0a1a0 100644 --- a/src/dialogs/more-info/state_more_info_control.ts +++ b/src/dialogs/more-info/state_more_info_control.ts @@ -21,6 +21,7 @@ const LAZY_LOADED_MORE_INFO_CONTROL = { image: () => import("./controls/more-info-image"), input_boolean: () => import("./controls/more-info-input_boolean"), input_datetime: () => import("./controls/more-info-input_datetime"), + lawn_mower: () => import("./controls/more-info-lawn_mower"), light: () => import("./controls/more-info-light"), lock: () => import("./controls/more-info-lock"), media_player: () => import("./controls/more-info-media_player"), diff --git a/src/state-summary/state-card-content.js b/src/state-summary/state-card-content.js index d62703f97c..c4d2e18206 100644 --- a/src/state-summary/state-card-content.js +++ b/src/state-summary/state-card-content.js @@ -5,15 +5,16 @@ import { stateCardType } from "../common/entity/state_card_type"; import "./state-card-alert"; import "./state-card-button"; import "./state-card-climate"; -import "./state-card-humidifier"; import "./state-card-configurator"; import "./state-card-cover"; import "./state-card-display"; import "./state-card-event"; +import "./state-card-humidifier"; import "./state-card-input_button"; import "./state-card-input_number"; import "./state-card-input_select"; import "./state-card-input_text"; +import "./state-card-lawn_mower"; import "./state-card-lock"; import "./state-card-media_player"; import "./state-card-number"; diff --git a/src/state-summary/state-card-lawn_mower.ts b/src/state-summary/state-card-lawn_mower.ts new file mode 100644 index 0000000000..afa8c570a2 --- /dev/null +++ b/src/state-summary/state-card-lawn_mower.ts @@ -0,0 +1,43 @@ +import { HassEntity } from "home-assistant-js-websocket"; +import { CSSResultGroup, LitElement, html } from "lit"; +import { customElement, property } from "lit/decorators"; +import "../components/entity/state-info"; +import "../components/ha-lawn_mower-state"; +import { haStyle } from "../resources/styles"; +import type { HomeAssistant } from "../types"; + +@customElement("state-card-lawn_mower") +class StateCardLawnMower extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @property() public stateObj!: HassEntity; + + @property({ type: Boolean }) public inDialog = false; + + public render() { + const stateObj = this.stateObj; + return html` +
+ + +
+ `; + } + + static get styles(): CSSResultGroup { + return haStyle; + } +} + +declare global { + interface HTMLElementTagNameMap { + "state-card-lawn_mower": StateCardLawnMower; + } +} diff --git a/src/translations/en.json b/src/translations/en.json index 448831c0a4..74bb2f1ac7 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -139,6 +139,13 @@ "drying": "{name} drying", "on_entity": "{name} on" }, + "lawn_mower": { + "actions": { + "resume_mowing": "Resume mowing", + "start_mowing": "Start mowing", + "dock": "Return to dock" + } + }, "light": { "brightness": "Brightness", "color_temperature": "Color temperature", @@ -1006,6 +1013,13 @@ "target_label": "[%key:ui::dialogs::more_info_control::climate::target_label%]", "target": "[%key:ui::dialogs::more_info_control::climate::target%]" }, + "lawn_mower": { + "activity": "Activity", + "commands": "Lawn mower commands:", + "start_mowing": "Start mowing", + "pause": "Pause", + "dock": "Return to dock" + }, "water_heater": { "target": "[%key:ui::dialogs::more_info_control::climate::target%]" } From c76b2fb357fa97e8def1841af52de5048bcb8b33 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Mon, 21 Aug 2023 13:22:01 +0200 Subject: [PATCH 111/182] Fix reselecting forecast type in weather forecast card editor (#17652) Co-authored-by: Simon Lamon <32477463+silamon@users.noreply.github.com> Co-authored-by: Bram Kragten --- .../config-elements/hui-weather-forecast-card-editor.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/panels/lovelace/editor/config-elements/hui-weather-forecast-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-weather-forecast-card-editor.ts index 0f48a3b1dc..a8b9442e19 100644 --- a/src/panels/lovelace/editor/config-elements/hui-weather-forecast-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-weather-forecast-card-editor.ts @@ -58,6 +58,7 @@ export class HuiWeatherForecastCardEditor } if ( !config.forecast_type || + (config.forecast_type === "legacy" && this._modernForecastSupported()) || !this._forecastSupported(config.forecast_type) ) { let forecastType: string | undefined; @@ -114,6 +115,14 @@ export class HuiWeatherForecastCardEditor return false; } + private _modernForecastSupported(): boolean { + return ( + this._forecastSupported("daily") || + this._forecastSupported("hourly") || + this._forecastSupported("twice_daily") + ); + } + private _schema = memoizeOne( ( localize: LocalizeFunc, From ac3e8587381ce8e5c21a6bc0e26aad47f5403799 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 13:46:07 +0200 Subject: [PATCH 112/182] Update dependency eslint-plugin-lit to v1.9.1 (#17556) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 17 ++--------------- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 645ff2a3fd..d2018907b1 100644 --- a/package.json +++ b/package.json @@ -201,7 +201,7 @@ "eslint-import-resolver-webpack": "0.13.6", "eslint-plugin-disable": "2.0.3", "eslint-plugin-import": "2.28.0", - "eslint-plugin-lit": "1.8.3", + "eslint-plugin-lit": "1.9.1", "eslint-plugin-lit-a11y": "3.0.0", "eslint-plugin-unused-imports": "3.0.0", "eslint-plugin-wc": "1.5.0", diff --git a/yarn.lock b/yarn.lock index 8107220438..01eb1c7590 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8078,20 +8078,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-lit@npm:1.8.3": - version: 1.8.3 - resolution: "eslint-plugin-lit@npm:1.8.3" - dependencies: - parse5: ^6.0.1 - parse5-htmlparser2-tree-adapter: ^6.0.1 - requireindex: ^1.2.0 - peerDependencies: - eslint: ">= 5" - checksum: 67f78b92b06224b3b83f2c914f508e94072aea106f3ea5aea42de55d3e83c73c91369b07f359a6ddeda5412c46f4f300c37d80715177cbb88834a5b497d262a0 - languageName: node - linkType: hard - -"eslint-plugin-lit@npm:^1.6.0": +"eslint-plugin-lit@npm:1.9.1, eslint-plugin-lit@npm:^1.6.0": version: 1.9.1 resolution: "eslint-plugin-lit@npm:1.9.1" dependencies: @@ -9750,7 +9737,7 @@ __metadata: eslint-import-resolver-webpack: 0.13.6 eslint-plugin-disable: 2.0.3 eslint-plugin-import: 2.28.0 - eslint-plugin-lit: 1.8.3 + eslint-plugin-lit: 1.9.1 eslint-plugin-lit-a11y: 3.0.0 eslint-plugin-unused-imports: 3.0.0 eslint-plugin-wc: 1.5.0 From 53f18bec53227accc3fff372cdee172aafd0244e Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Mon, 21 Aug 2023 06:04:23 -0700 Subject: [PATCH 113/182] Respect sensor precision setting when rendering line chart tooltips (#17648) --- src/components/chart/state-history-chart-line.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/chart/state-history-chart-line.ts b/src/components/chart/state-history-chart-line.ts index 37f831c192..11c655b497 100644 --- a/src/components/chart/state-history-chart-line.ts +++ b/src/components/chart/state-history-chart-line.ts @@ -7,6 +7,7 @@ import { computeRTL } from "../../common/util/compute_rtl"; import { formatNumber, numberFormatToLocale, + getNumberFormatOptions, } from "../../common/number/format_number"; import { LineChartEntity, LineChartState } from "../../data/history"; import { HomeAssistant } from "../../types"; @@ -125,7 +126,13 @@ class StateHistoryChartLine extends LitElement { label: (context) => `${context.dataset.label}: ${formatNumber( context.parsed.y, - this.hass.locale + this.hass.locale, + getNumberFormatOptions( + this.hass.states[this.data[context.datasetIndex].entity_id], + this.hass.entities[ + this.data[context.datasetIndex].entity_id + ] + ) )} ${this.unit}`, }, }, From 07dceb8e6d8ed69783af3646975cf1125f237424 Mon Sep 17 00:00:00 2001 From: ildar170975 <71872483+ildar170975@users.noreply.github.com> Date: Mon, 21 Aug 2023 16:12:13 +0300 Subject: [PATCH 114/182] Update ha-sidebar.ts: fix notification badge clipped (#17638) --- src/components/ha-sidebar.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ha-sidebar.ts b/src/components/ha-sidebar.ts index 0f95bbae23..be3c2b6227 100644 --- a/src/components/ha-sidebar.ts +++ b/src/components/ha-sidebar.ts @@ -1075,7 +1075,7 @@ class HaSidebar extends SubscribeMixin(LitElement) { background-color: var(--accent-color); line-height: 20px; text-align: center; - padding: 0px 6px; + padding: 0px 2px; color: var(--text-accent-color, var(--text-primary-color)); } ha-svg-icon + .notification-badge, From 014bbf12ce59ecfa1c3f40c286a55b01f106de1c Mon Sep 17 00:00:00 2001 From: ildar170975 <71872483+ildar170975@users.noreply.github.com> Date: Mon, 21 Aug 2023 16:12:58 +0300 Subject: [PATCH 115/182] Update ha-config-person.ts: fix misaligned text (#17637) --- src/panels/config/person/ha-config-person.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/panels/config/person/ha-config-person.ts b/src/panels/config/person/ha-config-person.ts index 288ec173aa..61a54c2582 100644 --- a/src/panels/config/person/ha-config-person.ts +++ b/src/panels/config/person/ha-config-person.ts @@ -276,8 +276,10 @@ class HaConfigPerson extends LitElement { overflow: hidden; } .empty { - text-align: center; padding: 8px; + display: flex; + align-items: center; + justify-content: space-around; } paper-icon-item { padding-top: 4px; From a725b6c9de06b6619ae1d7102384b84cd53dbe33 Mon Sep 17 00:00:00 2001 From: Simon Lamon <32477463+silamon@users.noreply.github.com> Date: Mon, 21 Aug 2023 15:27:54 +0200 Subject: [PATCH 116/182] Clear entityId before duplicate script (#17624) --- src/panels/config/script/ha-script-editor.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/panels/config/script/ha-script-editor.ts b/src/panels/config/script/ha-script-editor.ts index c9f1048e63..7702331b0c 100644 --- a/src/panels/config/script/ha-script-editor.ts +++ b/src/panels/config/script/ha-script-editor.ts @@ -761,6 +761,7 @@ export class HaScriptEditor extends KeyboardShortcutMixin(LitElement) { }) : await this.confirmUnsavedChanged(); if (result) { + this._entityId = undefined; showScriptEditor({ ...this._config, alias: this._readOnly From 693c77ce1ccc05064c603479abe62681dbc655ea Mon Sep 17 00:00:00 2001 From: Virenbar Date: Mon, 21 Aug 2023 18:41:26 +0500 Subject: [PATCH 117/182] Fix AND condition description (#17630) --- src/translations/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/translations/en.json b/src/translations/en.json index 74bb2f1ac7..042d14deff 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -2521,7 +2521,7 @@ "label": "And", "description": { "no_conditions": "Test if multiple conditions match", - "full": "Test if any of {count} {count, plural,\n one {condition match}\n other {conditions matches}\n}" + "full": "Test if {count} {count, plural,\n one {condition match}\n other {conditions matches}\n}" } }, "device": { From e764076b1af8f70695afda5aa43925bcf35daa67 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Mon, 21 Aug 2023 06:48:10 -0700 Subject: [PATCH 118/182] Fix blueprint editor behavior for number and text with defaults (#17646) --- .../automation/blueprint-automation-editor.ts | 50 ++++++------------- .../config/script/blueprint-script-editor.ts | 46 +++++------------ 2 files changed, 28 insertions(+), 68 deletions(-) diff --git a/src/panels/config/automation/blueprint-automation-editor.ts b/src/panels/config/automation/blueprint-automation-editor.ts index 74d3d0586e..a860e29481 100644 --- a/src/panels/config/automation/blueprint-automation-editor.ts +++ b/src/panels/config/automation/blueprint-automation-editor.ts @@ -9,7 +9,6 @@ import "../../../components/ha-circular-progress"; import "../../../components/ha-markdown"; import "../../../components/ha-selector/ha-selector"; import "../../../components/ha-settings-row"; -import "../../../components/ha-textfield"; import "../../../components/ha-alert"; import { BlueprintAutomationConfig } from "../../../data/automation"; import { @@ -129,27 +128,19 @@ export class HaBlueprintAutomationEditor extends LitElement { breaks .content=${value?.description} > - ${value?.selector - ? html`` - : html``} + ${html``} ` ) : html`

@@ -173,7 +164,7 @@ export class HaBlueprintAutomationEditor extends LitElement { } fireEvent(this, "value-changed", { value: { - ...this.config!, + ...this.config, use_blueprint: { path: ev.detail.value, }, @@ -195,20 +186,9 @@ export class HaBlueprintAutomationEditor extends LitElement { } const input = { ...this.config.use_blueprint.input, [key]: value }; - const blueprint = this._blueprint; - const metaValue = - !blueprint || "error" in blueprint - ? undefined - : blueprint?.metadata.input && blueprint?.metadata?.input[key]; - const keyDefault = metaValue && metaValue.default; - - if ((value === "" && !keyDefault) || value === undefined) { - delete input[key]; - } - fireEvent(this, "value-changed", { value: { - ...this.config!, + ...this.config, use_blueprint: { ...this.config.use_blueprint, input, diff --git a/src/panels/config/script/blueprint-script-editor.ts b/src/panels/config/script/blueprint-script-editor.ts index 7a71170b98..a47b16b727 100644 --- a/src/panels/config/script/blueprint-script-editor.ts +++ b/src/panels/config/script/blueprint-script-editor.ts @@ -5,7 +5,6 @@ import "../../../components/ha-blueprint-picker"; import "../../../components/ha-card"; import "../../../components/ha-circular-progress"; import "../../../components/ha-markdown"; -import "../../../components/ha-textfield"; import "../../../components/ha-selector/ha-selector"; import "../../../components/ha-settings-row"; @@ -108,27 +107,19 @@ export class HaBlueprintScriptEditor extends LitElement { breaks .content=${value?.description} > - ${value?.selector - ? html`` - : html``} + ${html``} ` ) : html`

@@ -174,17 +165,6 @@ export class HaBlueprintScriptEditor extends LitElement { } const input = { ...this.config.use_blueprint.input, [key]: value }; - const blueprint = this._blueprint; - const metaValue = - !blueprint || "error" in blueprint - ? undefined - : blueprint?.metadata.input && blueprint?.metadata?.input[key]; - const keyDefault = metaValue && metaValue.default; - - if ((value === "" && !keyDefault) || value === undefined) { - delete input[key]; - } - fireEvent(this, "value-changed", { value: { ...this.config, From bfcdbbd70bd0148526e9852dadbf8c948de4eb93 Mon Sep 17 00:00:00 2001 From: Simon Lamon <32477463+silamon@users.noreply.github.com> Date: Mon, 21 Aug 2023 15:49:27 +0200 Subject: [PATCH 119/182] Form fields should not init in the error state (#17615) --- src/panels/calendar/dialog-calendar-event-editor.ts | 2 +- .../dialog-add-application-credential.ts | 6 +++--- .../config/areas/dialog-area-registry-detail.ts | 4 ++-- .../entities/entity-registry-settings-editor.ts | 2 +- src/panels/config/person/dialog-person-detail.ts | 3 +-- src/panels/config/tags/dialog-tag-detail.ts | 11 +++++++---- src/panels/config/users/dialog-add-user.ts | 10 ++++++---- 7 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/panels/calendar/dialog-calendar-event-editor.ts b/src/panels/calendar/dialog-calendar-event-editor.ts index fcc624b653..a7f885d119 100644 --- a/src/panels/calendar/dialog-calendar-event-editor.ts +++ b/src/panels/calendar/dialog-calendar-event-editor.ts @@ -176,7 +176,7 @@ class DialogCalendarEventEditor extends LitElement { .value=${this._summary} required @change=${this._handleSummaryChanged} - error-message=${this.hass.localize("ui.common.error_required")} + .validationMessage=${this.hass.localize("ui.common.error_required")} dialogInitialFocus > diff --git a/src/panels/config/entities/entity-registry-settings-editor.ts b/src/panels/config/entities/entity-registry-settings-editor.ts index e6c8f17f63..773871da14 100644 --- a/src/panels/config/entities/entity-registry-settings-editor.ts +++ b/src/panels/config/entities/entity-registry-settings-editor.ts @@ -516,7 +516,7 @@ export class EntityRegistrySettingsEditor extends LitElement { ${domain === "lock" ? html` ${!this._params.entry ? html` ${this._params.entry ? this.hass!.localize("ui.panel.config.tag.detail.update") @@ -164,7 +163,7 @@ class DialogTagDetail ? html` ${this.hass!.localize( "ui.panel.config.tag.detail.create_and_write" @@ -271,6 +270,10 @@ class DialogTagDetail #qr { text-align: center; } + ha-textfield { + display: block; + margin: 8px 0; + } `, ]; } diff --git a/src/panels/config/users/dialog-add-user.ts b/src/panels/config/users/dialog-add-user.ts index 345dfcfc1a..ff9d8d3d30 100644 --- a/src/panels/config/users/dialog-add-user.ts +++ b/src/panels/config/users/dialog-add-user.ts @@ -107,7 +107,9 @@ export class DialogAddUser extends LitElement { )} .value=${this._name} required - .errorMessage=${this.hass.localize("ui.common.error_required")} + .validationMessage=${this.hass.localize( + "ui.common.error_required" + )} @input=${this._handleValueChanged} @blur=${this._maybePopulateUsername} dialogInitialFocus @@ -122,7 +124,7 @@ export class DialogAddUser extends LitElement { .value=${this._username} required @input=${this._handleValueChanged} - .errorMessage=${this.hass.localize("ui.common.error_required")} + .validationMessage=${this.hass.localize("ui.common.error_required")} dialogInitialFocus > @@ -135,7 +137,7 @@ export class DialogAddUser extends LitElement { .value=${this._password} required @input=${this._handleValueChanged} - .errorMessage=${this.hass.localize("ui.common.error_required")} + .validationMessage=${this.hass.localize("ui.common.error_required")} > From eca3ec7f984aae3a52954001661a31f37c7df999 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Mon, 21 Aug 2023 15:49:33 +0200 Subject: [PATCH 120/182] Tile feature lawn mower (#17655) * Add lawn mower commands to tile card * Rename state to action button --- ...tate.ts => ha-lawn_mower-action-button.ts} | 6 +- .../create-tile-feature-element.ts | 2 + ...lawn-mower-commands-tile-feature-editor.ts | 102 ++++++++++ .../hui-tile-card-features-editor.ts | 16 +- .../hui-lawn-mower-commands-tile-feature.ts | 187 ++++++++++++++++++ src/panels/lovelace/tile-features/types.ts | 16 +- src/state-summary/state-card-lawn_mower.ts | 6 +- src/translations/en.json | 8 + 8 files changed, 328 insertions(+), 15 deletions(-) rename src/components/{ha-lawn_mower-state.ts => ha-lawn_mower-action-button.ts} (93%) create mode 100644 src/panels/lovelace/editor/config-elements/hui-lawn-mower-commands-tile-feature-editor.ts create mode 100644 src/panels/lovelace/tile-features/hui-lawn-mower-commands-tile-feature.ts diff --git a/src/components/ha-lawn_mower-state.ts b/src/components/ha-lawn_mower-action-button.ts similarity index 93% rename from src/components/ha-lawn_mower-state.ts rename to src/components/ha-lawn_mower-action-button.ts index 8214ae1ee0..cdf3d35a5c 100644 --- a/src/components/ha-lawn_mower-state.ts +++ b/src/components/ha-lawn_mower-action-button.ts @@ -35,8 +35,8 @@ const LAWN_MOWER_ACTIONS: Partial< }, }; -@customElement("ha-lawn_mower-state") -class HaLawnMowerState extends LitElement { +@customElement("ha-lawn_mower-action-button") +class HaLawnMowerActionButton extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; @property({ attribute: false }) public stateObj!: LawnMowerEntity; @@ -86,6 +86,6 @@ class HaLawnMowerState extends LitElement { declare global { interface HTMLElementTagNameMap { - "ha-lawn_mower-state": HaLawnMowerState; + "ha-lawn_mower-action-button": HaLawnMowerActionButton; } } diff --git a/src/panels/lovelace/create-element/create-tile-feature-element.ts b/src/panels/lovelace/create-element/create-tile-feature-element.ts index 22aafff590..142838310b 100644 --- a/src/panels/lovelace/create-element/create-tile-feature-element.ts +++ b/src/panels/lovelace/create-element/create-tile-feature-element.ts @@ -7,6 +7,7 @@ import "../tile-features/hui-fan-speed-tile-feature"; import "../tile-features/hui-light-brightness-tile-feature"; import "../tile-features/hui-light-color-temp-tile-feature"; import "../tile-features/hui-vacuum-commands-tile-feature"; +import "../tile-features/hui-lawn-mower-commands-tile-feature"; import "../tile-features/hui-water-heater-operation-modes-tile-feature"; import { LovelaceTileFeatureConfig } from "../tile-features/types"; import { @@ -21,6 +22,7 @@ const TYPES: Set = new Set([ "light-brightness", "light-color-temp", "vacuum-commands", + "lawn-mower-commands", "fan-speed", "alarm-modes", "climate-hvac-modes", diff --git a/src/panels/lovelace/editor/config-elements/hui-lawn-mower-commands-tile-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-lawn-mower-commands-tile-feature-editor.ts new file mode 100644 index 0000000000..64fc9387b5 --- /dev/null +++ b/src/panels/lovelace/editor/config-elements/hui-lawn-mower-commands-tile-feature-editor.ts @@ -0,0 +1,102 @@ +import { HassEntity } from "home-assistant-js-websocket"; +import { html, LitElement, nothing } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import memoizeOne from "memoize-one"; +import { fireEvent } from "../../../../common/dom/fire_event"; +import type { LocalizeFunc } from "../../../../common/translations/localize"; +import type { SchemaUnion } from "../../../../components/ha-form/types"; +import type { HomeAssistant } from "../../../../types"; +import { supportsLawnMowerCommand } from "../../tile-features/hui-lawn-mower-commands-tile-feature"; +import { + LAWN_MOWER_COMMANDS, + LawnMowerCommandsTileFeatureConfig, + LovelaceTileFeatureContext, +} from "../../tile-features/types"; +import type { LovelaceTileFeatureEditor } from "../../types"; + +@customElement("hui-lawn-mower-commands-tile-feature-editor") +export class HuiLawnMowerCommandsTileFeatureEditor + extends LitElement + implements LovelaceTileFeatureEditor +{ + @property({ attribute: false }) public hass?: HomeAssistant; + + @property({ attribute: false }) public context?: LovelaceTileFeatureContext; + + @state() private _config?: LawnMowerCommandsTileFeatureConfig; + + public setConfig(config: LawnMowerCommandsTileFeatureConfig): void { + this._config = config; + } + + private _schema = memoizeOne( + (localize: LocalizeFunc, stateObj?: HassEntity) => + [ + { + name: "commands", + selector: { + select: { + multiple: true, + mode: "list", + options: LAWN_MOWER_COMMANDS.filter( + (command) => + stateObj && supportsLawnMowerCommand(stateObj, command) + ).map((command) => ({ + value: command, + label: `${localize( + `ui.panel.lovelace.editor.card.tile.features.types.lawn-mower-commands.commands_list.${command}` + )}`, + })), + }, + }, + }, + ] as const + ); + + protected render() { + if (!this.hass || !this._config) { + return nothing; + } + + const stateObj = this.context?.entity_id + ? this.hass.states[this.context?.entity_id] + : undefined; + + const schema = this._schema(this.hass.localize, stateObj); + + return html` + + `; + } + + private _valueChanged(ev: CustomEvent): void { + fireEvent(this, "config-changed", { config: ev.detail.value }); + } + + private _computeLabelCallback = ( + schema: SchemaUnion> + ) => { + switch (schema.name) { + case "commands": + return this.hass!.localize( + `ui.panel.lovelace.editor.card.tile.features.types.lawn-mower-commands.${schema.name}` + ); + default: + return this.hass!.localize( + `ui.panel.lovelace.editor.card.generic.${schema.name}` + ); + } + }; +} + +declare global { + interface HTMLElementTagNameMap { + "hui-lawn-mower-commands-tile-feature-editor": HuiLawnMowerCommandsTileFeatureEditor; + } +} diff --git a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts index 1db19aa31f..12411d4092 100644 --- a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts @@ -31,6 +31,7 @@ import { supportsCoverOpenCloseTileFeature } from "../../tile-features/hui-cover import { supportsCoverPositionTileFeature } from "../../tile-features/hui-cover-position-tile-feature"; import { supportsCoverTiltTileFeature } from "../../tile-features/hui-cover-tilt-tile-feature"; import { supportsFanSpeedTileFeature } from "../../tile-features/hui-fan-speed-tile-feature"; +import { supportsLawnMowerCommandTileFeature } from "../../tile-features/hui-lawn-mower-commands-tile-feature"; import { supportsLightBrightnessTileFeature } from "../../tile-features/hui-light-brightness-tile-feature"; import { supportsLightColorTempTileFeature } from "../../tile-features/hui-light-color-temp-tile-feature"; import { supportsVacuumCommandTileFeature } from "../../tile-features/hui-vacuum-commands-tile-feature"; @@ -41,15 +42,16 @@ type FeatureType = LovelaceTileFeatureConfig["type"]; type SupportsFeature = (stateObj: HassEntity) => boolean; const FEATURE_TYPES: FeatureType[] = [ + "alarm-modes", + "climate-hvac-modes", "cover-open-close", "cover-position", "cover-tilt", + "fan-speed", + "lawn-mower-commands", "light-brightness", "light-color-temp", "vacuum-commands", - "fan-speed", - "alarm-modes", - "climate-hvac-modes", "water-heater-operation-modes", ]; @@ -58,19 +60,21 @@ const EDITABLES_FEATURE_TYPES = new Set([ "alarm-modes", "climate-hvac-modes", "water-heater-operation-modes", + "lawn-mower-commands", ]); const SUPPORTS_FEATURE_TYPES: Record = { + "alarm-modes": supportsAlarmModesTileFeature, + "climate-hvac-modes": supportsClimateHvacModesTileFeature, "cover-open-close": supportsCoverOpenCloseTileFeature, "cover-position": supportsCoverPositionTileFeature, "cover-tilt": supportsCoverTiltTileFeature, + "fan-speed": supportsFanSpeedTileFeature, + "lawn-mower-commands": supportsLawnMowerCommandTileFeature, "light-brightness": supportsLightBrightnessTileFeature, "light-color-temp": supportsLightColorTempTileFeature, "vacuum-commands": supportsVacuumCommandTileFeature, - "fan-speed": supportsFanSpeedTileFeature, - "alarm-modes": supportsAlarmModesTileFeature, - "climate-hvac-modes": supportsClimateHvacModesTileFeature, "water-heater-operation-modes": supportsWaterHeaterOperationModesTileFeature, }; diff --git a/src/panels/lovelace/tile-features/hui-lawn-mower-commands-tile-feature.ts b/src/panels/lovelace/tile-features/hui-lawn-mower-commands-tile-feature.ts new file mode 100644 index 0000000000..d1b508e2ad --- /dev/null +++ b/src/panels/lovelace/tile-features/hui-lawn-mower-commands-tile-feature.ts @@ -0,0 +1,187 @@ +import { mdiHomeMapMarker, mdiPause, mdiPlay } from "@mdi/js"; +import { HassEntity } from "home-assistant-js-websocket"; +import { LitElement, css, html, nothing } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import { computeDomain } from "../../../common/entity/compute_domain"; +import { supportsFeature } from "../../../common/entity/supports-feature"; +import "../../../components/ha-control-button"; +import "../../../components/ha-control-button-group"; +import { UNAVAILABLE } from "../../../data/entity"; +import { + LawnMowerEntity, + LawnMowerEntityFeature, + canDock, +} from "../../../data/lawn_mower"; +import { HomeAssistant } from "../../../types"; +import { LovelaceTileFeature, LovelaceTileFeatureEditor } from "../types"; +import { + LAWN_MOWER_COMMANDS, + LawnMowerCommand, + LawnMowerCommandsTileFeatureConfig, +} from "./types"; + +interface LawnMowerButton { + translationKey: string; + icon: string; + serviceName: string; + disabled?: boolean; +} + +export const LAWN_MOWER_COMMANDS_FEATURES: Record< + LawnMowerCommand, + LawnMowerEntityFeature[] +> = { + start_pause: [ + LawnMowerEntityFeature.PAUSE, + LawnMowerEntityFeature.START_MOWING, + ], + dock: [LawnMowerEntityFeature.DOCK], +}; + +export const supportsLawnMowerCommand = ( + stateObj: HassEntity, + command: LawnMowerCommand +): boolean => + LAWN_MOWER_COMMANDS_FEATURES[command].some((feature) => + supportsFeature(stateObj, feature) + ); + +export const LAWN_MOWER_COMMANDS_BUTTONS: Record< + LawnMowerCommand, + (stateObj: LawnMowerEntity) => LawnMowerButton +> = { + start_pause: (stateObj) => { + const canPause = + stateObj.state === "mowing" && + supportsFeature(stateObj, LawnMowerEntityFeature.PAUSE); + + return canPause + ? { + translationKey: "pause", + icon: mdiPause, + serviceName: "pause", + } + : { + translationKey: "start", + icon: mdiPlay, + serviceName: "start_mowing", + }; + }, + dock: (stateObj) => ({ + translationKey: "dock", + icon: mdiHomeMapMarker, + serviceName: "dock", + disabled: !canDock(stateObj), + }), +}; + +export const supportsLawnMowerCommandTileFeature = (stateObj: HassEntity) => { + const domain = computeDomain(stateObj.entity_id); + return ( + domain === "lawn_mower" && + LAWN_MOWER_COMMANDS.some((c) => supportsLawnMowerCommand(stateObj, c)) + ); +}; + +@customElement("hui-lawn-mower-commands-tile-feature") +class HuiLawnMowerCommandTileFeature + extends LitElement + implements LovelaceTileFeature +{ + @property({ attribute: false }) public hass?: HomeAssistant; + + @property({ attribute: false }) public stateObj?: HassEntity; + + @state() private _config?: LawnMowerCommandsTileFeatureConfig; + + static getStubConfig( + _, + stateObj?: HassEntity + ): LawnMowerCommandsTileFeatureConfig { + return { + type: "lawn-mower-commands", + commands: stateObj + ? LAWN_MOWER_COMMANDS.filter((c) => + supportsLawnMowerCommand(stateObj, c) + ).slice(0, 3) + : [], + }; + } + + public static async getConfigElement(): Promise { + await import( + "../editor/config-elements/hui-lawn-mower-commands-tile-feature-editor" + ); + return document.createElement( + "hui-lawn-mower-commands-tile-feature-editor" + ); + } + + public setConfig(config: LawnMowerCommandsTileFeatureConfig): void { + if (!config) { + throw new Error("Invalid configuration"); + } + this._config = config; + } + + private _onCommandTap(ev): void { + ev.stopPropagation(); + const entry = (ev.target! as any).entry as LawnMowerButton; + this.hass!.callService("lawn_mower", entry.serviceName, { + entity_id: this.stateObj!.entity_id, + }); + } + + protected render() { + if ( + !this._config || + !this.hass || + !this.stateObj || + !supportsLawnMowerCommandTileFeature(this.stateObj) + ) { + return nothing; + } + + const stateObj = this.stateObj as LawnMowerEntity; + + return html` + + ${LAWN_MOWER_COMMANDS.filter( + (command) => + supportsLawnMowerCommand(stateObj, command) && + this._config?.commands?.includes(command) + ).map((command) => { + const button = LAWN_MOWER_COMMANDS_BUTTONS[command](stateObj); + return html` + + + + `; + })} + + `; + } + + static get styles() { + return css` + ha-control-button-group { + margin: 0 12px 12px 12px; + --control-button-group-spacing: 12px; + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "hui-lawn-mower-commands-tile-feature": HuiLawnMowerCommandTileFeature; + } +} diff --git a/src/panels/lovelace/tile-features/types.ts b/src/panels/lovelace/tile-features/types.ts index 79b202ad8f..848862c4d3 100644 --- a/src/panels/lovelace/tile-features/types.ts +++ b/src/panels/lovelace/tile-features/types.ts @@ -56,16 +56,26 @@ export interface VacuumCommandsTileFeatureConfig { commands?: VacuumCommand[]; } +export const LAWN_MOWER_COMMANDS = ["start_pause", "dock"] as const; + +export type LawnMowerCommand = (typeof LAWN_MOWER_COMMANDS)[number]; + +export interface LawnMowerCommandsTileFeatureConfig { + type: "lawn-mower-commands"; + commands?: LawnMowerCommand[]; +} + export type LovelaceTileFeatureConfig = + | AlarmModesTileFeatureConfig + | ClimateHvacModesTileFeatureConfig | CoverOpenCloseTileFeatureConfig | CoverPositionTileFeatureConfig | CoverTiltTileFeatureConfig + | FanSpeedTileFeatureConfig + | LawnMowerCommandsTileFeatureConfig | LightBrightnessTileFeatureConfig | LightColorTempTileFeatureConfig | VacuumCommandsTileFeatureConfig - | FanSpeedTileFeatureConfig - | AlarmModesTileFeatureConfig - | ClimateHvacModesTileFeatureConfig | WaterHeaterOperationModesTileFeatureConfig; export type LovelaceTileFeatureContext = { diff --git a/src/state-summary/state-card-lawn_mower.ts b/src/state-summary/state-card-lawn_mower.ts index afa8c570a2..a9cb5a17b8 100644 --- a/src/state-summary/state-card-lawn_mower.ts +++ b/src/state-summary/state-card-lawn_mower.ts @@ -2,7 +2,7 @@ import { HassEntity } from "home-assistant-js-websocket"; import { CSSResultGroup, LitElement, html } from "lit"; import { customElement, property } from "lit/decorators"; import "../components/entity/state-info"; -import "../components/ha-lawn_mower-state"; +import "../components/ha-lawn_mower-action-button"; import { haStyle } from "../resources/styles"; import type { HomeAssistant } from "../types"; @@ -23,10 +23,10 @@ class StateCardLawnMower extends LitElement { .stateObj=${stateObj} .inDialog=${this.inDialog} > - + >

`; } diff --git a/src/translations/en.json b/src/translations/en.json index 042d14deff..3bf9d6582a 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -5026,6 +5026,14 @@ "water-heater-operation-modes": { "label": "Water heater operation modes", "operation_modes": "Operation modes" + }, + "lawn-mower-commands": { + "label": "Lawn mower commands", + "commands": "Commands", + "commands_list": { + "start_pause": "Start Pause", + "dock": "[%key:ui::dialogs::more_info_control::lawn_mower::dock%]" + } } } } From 92358b4859419497aa328bde91d13ff8d6694051 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Mon, 21 Aug 2023 06:51:33 -0700 Subject: [PATCH 121/182] Don't show pointer for glance entity when there is no action (#17625) --- src/panels/lovelace/cards/hui-glance-card.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/panels/lovelace/cards/hui-glance-card.ts b/src/panels/lovelace/cards/hui-glance-card.ts index 7e1bbedb0c..081f930a15 100644 --- a/src/panels/lovelace/cards/hui-glance-card.ts +++ b/src/panels/lovelace/cards/hui-glance-card.ts @@ -206,10 +206,12 @@ export class HuiGlanceCard extends LitElement implements LovelaceCard { display: flex; flex-direction: column; align-items: center; - cursor: pointer; margin-bottom: 12px; width: var(--glance-column-width, 20%); } + .entity.action { + cursor: pointer; + } .entity:focus { outline: none; background: var(--divider-color); @@ -282,9 +284,15 @@ export class HuiGlanceCard extends LitElement implements LovelaceCard { const name = entityConf.name ?? computeStateName(stateObj); + const hasAnyAction = + !entityConf.tap_action || + hasAction(entityConf.tap_action) || + hasAction(entityConf.hold_action) || + hasAction(entityConf.double_tap_action); + return html`
Date: Mon, 21 Aug 2023 16:15:08 +0200 Subject: [PATCH 122/182] fix tabindex for glance card (#17656) --- src/panels/lovelace/cards/hui-glance-card.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/panels/lovelace/cards/hui-glance-card.ts b/src/panels/lovelace/cards/hui-glance-card.ts index 081f930a15..e4dea4c2e7 100644 --- a/src/panels/lovelace/cards/hui-glance-card.ts +++ b/src/panels/lovelace/cards/hui-glance-card.ts @@ -300,7 +300,9 @@ export class HuiGlanceCard extends LitElement implements LovelaceCard { hasDoubleClick: hasAction(entityConf.double_tap_action), })} tabindex=${ifDefined( - hasAction(entityConf.tap_action) ? "0" : undefined + !entityConf.tap_action || hasAction(entityConf.tap_action) + ? "0" + : undefined )} > ${this._config!.show_name From 567bd9831f4bf9e0406e5853fe5841768d0e7377 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Mon, 21 Aug 2023 16:15:29 +0200 Subject: [PATCH 123/182] Reduce control select menu component size (#17657) --- .../ha-control-select-menu.markdown | 3 + .../components/ha-control-select-menu.ts | 146 ++++++++++++++++++ src/components/ha-control-select-menu.ts | 31 ++-- 3 files changed, 162 insertions(+), 18 deletions(-) create mode 100644 gallery/src/pages/components/ha-control-select-menu.markdown create mode 100644 gallery/src/pages/components/ha-control-select-menu.ts diff --git a/gallery/src/pages/components/ha-control-select-menu.markdown b/gallery/src/pages/components/ha-control-select-menu.markdown new file mode 100644 index 0000000000..a44d3aec00 --- /dev/null +++ b/gallery/src/pages/components/ha-control-select-menu.markdown @@ -0,0 +1,3 @@ +--- +title: Control Select Menu +--- diff --git a/gallery/src/pages/components/ha-control-select-menu.ts b/gallery/src/pages/components/ha-control-select-menu.ts new file mode 100644 index 0000000000..c3e15cddaf --- /dev/null +++ b/gallery/src/pages/components/ha-control-select-menu.ts @@ -0,0 +1,146 @@ +import { mdiFan, mdiFanSpeed1, mdiFanSpeed2, mdiFanSpeed3 } from "@mdi/js"; +import { LitElement, TemplateResult, css, html, nothing } from "lit"; +import { customElement } from "lit/decorators"; +import { repeat } from "lit/directives/repeat"; +import "../../../../src/components/ha-card"; +import "../../../../src/components/ha-control-select-menu"; +import "../../../../src/components/ha-list-item"; +import "../../../../src/components/ha-svg-icon"; + +type SelectMenuOptions = { + label: string; + value: string; + icon?: string; +}; + +type SelectMenu = { + label: string; + icon: string; + class?: string; + disabled?: boolean; + options: SelectMenuOptions[]; +}; + +const selects: SelectMenu[] = [ + { + label: "Basic select", + icon: mdiFan, + options: [ + { + value: "low", + label: "Low", + }, + { + value: "medium", + label: "Medium", + }, + { + value: "high", + label: "High", + }, + ], + }, + { + label: "Select with icons", + icon: mdiFan, + options: [ + { + value: "low", + label: "Low", + icon: mdiFanSpeed1, + }, + { + value: "medium", + label: "Medium", + icon: mdiFanSpeed2, + }, + { + value: "high", + label: "High", + icon: mdiFanSpeed3, + }, + ], + }, + { + label: "Disabled select", + icon: mdiFan, + options: [], + disabled: true, + }, +]; + +@customElement("demo-components-ha-control-select-menu") +export class DemoHaControlSelectMenu extends LitElement { + protected render(): TemplateResult { + return html` + + ${repeat( + selects, + (select) => html` +
+ + + ${select.options.map( + (option) => html` + + ${option.icon + ? html` + + ` + : nothing} + ${option.label ?? option.value} + + ` + )} + +
+ ` + )} +
+ `; + } + + static get styles() { + return css` + ha-card { + max-width: 600px; + margin: 24px auto; + } + pre { + margin-top: 0; + margin-bottom: 8px; + } + p { + margin: 0; + } + label { + font-weight: 600; + } + .custom { + --control-button-icon-color: var(--primary-color); + --control-button-background-color: var(--primary-color); + --control-button-background-opacity: 0.2; + --control-button-border-radius: 18px; + height: 100px; + width: 100px; + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "demo-components-ha-control-select-menu": DemoHaControlSelectMenu; + } +} diff --git a/src/components/ha-control-select-menu.ts b/src/components/ha-control-select-menu.ts index ce119fcba1..028242488f 100644 --- a/src/components/ha-control-select-menu.ts +++ b/src/components/ha-control-select-menu.ts @@ -170,18 +170,18 @@ export class HaControlSelectMenu extends SelectBase { --control-select-menu-text-color: var(--primary-text-color); --control-select-menu-background-color: var(--disabled-color); --control-select-menu-background-opacity: 0.2; - --control-select-menu-border-radius: 16px; + --control-select-menu-border-radius: 14px; --control-select-menu-min-width: 120px; --control-select-menu-max-width: 200px; --control-select-menu-width: 100%; - --mdc-icon-size: 24px; + --mdc-icon-size: 20px; color: var(--primary-text-color); -webkit-tap-highlight-color: transparent; } .select-anchor { color: var(--control-select-menu-text-color); - height: 56px; - padding: 8px 12px; + height: 48px; + padding: 6px 10px; overflow: hidden; position: relative; cursor: pointer; @@ -199,11 +199,16 @@ export class HaControlSelectMenu extends SelectBase { font-size: inherit; transition: color 180ms ease-in-out; color: var(--control-text-icon-color); - gap: 12px; + gap: 10px; min-width: var(--control-select-menu-min-width); max-width: var(--control-select-menu-max-width); width: var(--control-select-menu-width); user-select: none; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 20px; + letter-spacing: 0.25px; } .content { display: flex; @@ -225,24 +230,14 @@ export class HaControlSelectMenu extends SelectBase { .label { font-size: 12px; - font-style: normal; - font-weight: 400; line-height: 16px; letter-spacing: 0.4px; } .select-no-value .label { - font-size: 16px; - line-height: 24px; - letter-spacing: 0.5px; - } - - .value { - font-size: 16px; - font-style: normal; - font-weight: 400; - line-height: 24px; - letter-spacing: 0.5px; + font-size: inherit; + line-height: inherit; + letter-spacing: inherit; } .select-anchor::before { From 216a3c4c7eacdf571cf892e2e798635263de0be9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 20:08:43 +0200 Subject: [PATCH 124/182] Update dependency core-js to v3.32.1 (#17658) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d2018907b1..bcea40195f 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "app-datepicker": "5.1.1", "chart.js": "3.3.2", "comlink": "4.4.1", - "core-js": "3.32.0", + "core-js": "3.32.1", "cropperjs": "1.5.13", "date-fns": "2.30.0", "date-fns-tz": "2.0.0", diff --git a/yarn.lock b/yarn.lock index 01eb1c7590..1eff6b6b19 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7120,10 +7120,10 @@ __metadata: languageName: node linkType: hard -"core-js@npm:3.32.0": - version: 3.32.0 - resolution: "core-js@npm:3.32.0" - checksum: 52921395028550e4c9d21d47b9836439bb5b6b9eefc34d45a3948a68d81fdd093acc0fadf69f9cf632b82f01f95f22f484408a93dd9e940b19119ac204cd2925 +"core-js@npm:3.32.1": + version: 3.32.1 + resolution: "core-js@npm:3.32.1" + checksum: e4af91d9c6be7b59235feb3f273d16705126ce09a0b4a787144d131d874f0cd10be3c24fc52e5eea7d7cb03ceabe4be7b255abcd9474b5eb1ff365d2c5611f9a languageName: node linkType: hard @@ -9723,7 +9723,7 @@ __metadata: chai: 4.3.7 chart.js: 3.3.2 comlink: 4.4.1 - core-js: 3.32.0 + core-js: 3.32.1 cropperjs: 1.5.13 date-fns: 2.30.0 date-fns-tz: 2.0.0 From 3534617f81c911a0b8f7e6fd57c1f6abe5e3fb9d Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Mon, 21 Aug 2023 21:46:08 +0200 Subject: [PATCH 125/182] Fix initial data for select selector without labels (#17659) --- src/components/ha-form/compute-initial-ha-form-data.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/ha-form/compute-initial-ha-form-data.ts b/src/components/ha-form/compute-initial-ha-form-data.ts index c1d2ba5824..8844e2d9e0 100644 --- a/src/components/ha-form/compute-initial-ha-form-data.ts +++ b/src/components/ha-form/compute-initial-ha-form-data.ts @@ -60,7 +60,8 @@ export const computeInitialHaFormData = ( data[field.name] = selector.number?.min ?? 0; } else if ("select" in selector) { if (selector.select?.options.length) { - data[field.name] = selector.select.options[0][0]; + const val = selector.select.options[0]; + data[field.name] = Array.isArray(val) ? val[0] : val; } } else if ("duration" in selector) { data[field.name] = { From 2483249b5f467c519995115961eb5b70ad1be8c3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 18:57:19 -0400 Subject: [PATCH 126/182] Update dependency eslint-plugin-import to v2.28.1 (#17661) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index bcea40195f..7a5a61cb34 100644 --- a/package.json +++ b/package.json @@ -200,7 +200,7 @@ "eslint-config-prettier": "9.0.0", "eslint-import-resolver-webpack": "0.13.6", "eslint-plugin-disable": "2.0.3", - "eslint-plugin-import": "2.28.0", + "eslint-plugin-import": "2.28.1", "eslint-plugin-lit": "1.9.1", "eslint-plugin-lit-a11y": "3.0.0", "eslint-plugin-unused-imports": "3.0.0", diff --git a/yarn.lock b/yarn.lock index 1eff6b6b19..23ba384116 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8029,9 +8029,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:2.28.0": - version: 2.28.0 - resolution: "eslint-plugin-import@npm:2.28.0" +"eslint-plugin-import@npm:2.28.1": + version: 2.28.1 + resolution: "eslint-plugin-import@npm:2.28.1" dependencies: array-includes: ^3.1.6 array.prototype.findlastindex: ^1.2.2 @@ -8042,18 +8042,17 @@ __metadata: eslint-import-resolver-node: ^0.3.7 eslint-module-utils: ^2.8.0 has: ^1.0.3 - is-core-module: ^2.12.1 + is-core-module: ^2.13.0 is-glob: ^4.0.3 minimatch: ^3.1.2 object.fromentries: ^2.0.6 object.groupby: ^1.0.0 object.values: ^1.1.6 - resolve: ^1.22.3 semver: ^6.3.1 tsconfig-paths: ^3.14.2 peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: f9eba311b93ca1bb89311856b1f7285bd79e0181d7eb70fe115053ff77e2235fea749b30f538b78927dc65769340b5be61f4c9581d1c82bcdcccb2061f440ad1 + checksum: e8ae6dd8f06d8adf685f9c1cfd46ac9e053e344a05c4090767e83b63a85c8421ada389807a39e73c643b9bff156715c122e89778169110ed68d6428e12607edf languageName: node linkType: hard @@ -9736,7 +9735,7 @@ __metadata: eslint-config-prettier: 9.0.0 eslint-import-resolver-webpack: 0.13.6 eslint-plugin-disable: 2.0.3 - eslint-plugin-import: 2.28.0 + eslint-plugin-import: 2.28.1 eslint-plugin-lit: 1.9.1 eslint-plugin-lit-a11y: 3.0.0 eslint-plugin-unused-imports: 3.0.0 @@ -10387,7 +10386,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0, is-core-module@npm:^2.9.0": +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.9.0": version: 2.13.0 resolution: "is-core-module@npm:2.13.0" dependencies: @@ -13803,7 +13802,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.3, resolve@npm:^1.22.4, resolve@npm:^1.4.0": +"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4, resolve@npm:^1.4.0": version: 1.22.4 resolution: "resolve@npm:1.22.4" dependencies: @@ -13829,7 +13828,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.3#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.4.0#~builtin": +"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.4.0#~builtin": version: 1.22.4 resolution: "resolve@patch:resolve@npm%3A1.22.4#~builtin::version=1.22.4&hash=c3c19d" dependencies: From 811edfcc0f5e0190b9d8442a8611ac651700ee5e Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Tue, 22 Aug 2023 10:30:31 +0200 Subject: [PATCH 127/182] Add support for previews in data flows (#17533) --- src/data/data_entry_flow.ts | 3 + src/data/group.ts | 19 ++++ .../previews/entity-preview-row.ts | 71 ++++++++++++++ .../previews/flow-preview-group_sensor.ts | 92 +++++++++++++++++++ .../config-flow/show-dialog-config-flow.ts | 1 + .../show-dialog-data-entry-flow.ts | 3 + .../config-flow/show-dialog-options-flow.ts | 1 + src/dialogs/config-flow/step-flow-form.ts | 32 ++++++- src/dialogs/config-flow/styles.ts | 3 +- .../config/repairs/show-dialog-repair-flow.ts | 1 + src/translations/en.json | 1 + 11 files changed, 224 insertions(+), 3 deletions(-) create mode 100644 src/dialogs/config-flow/previews/entity-preview-row.ts create mode 100644 src/dialogs/config-flow/previews/flow-preview-group_sensor.ts diff --git a/src/data/data_entry_flow.ts b/src/data/data_entry_flow.ts index 14821f8b77..7a830e7d88 100644 --- a/src/data/data_entry_flow.ts +++ b/src/data/data_entry_flow.ts @@ -2,6 +2,8 @@ import { Connection } from "home-assistant-js-websocket"; import type { HaFormSchema } from "../components/ha-form/types"; import { ConfigEntry } from "./config_entries"; +export type FlowType = "config_flow" | "options_flow" | "repair_flow"; + export interface DataEntryFlowProgressedEvent { type: "data_entry_flow_progressed"; data: { @@ -30,6 +32,7 @@ export interface DataEntryFlowStepForm { errors: Record; description_placeholders?: Record; last_step: boolean | null; + preview?: string; } export interface DataEntryFlowStepExternal { diff --git a/src/data/group.ts b/src/data/group.ts index cfae3ed858..e6a004b1a8 100644 --- a/src/data/group.ts +++ b/src/data/group.ts @@ -1,8 +1,10 @@ import { HassEntityAttributeBase, HassEntityBase, + UnsubscribeFunc, } from "home-assistant-js-websocket"; import { computeDomain } from "../common/entity/compute_domain"; +import { HomeAssistant } from "../types"; interface GroupEntityAttributes extends HassEntityAttributeBase { entity_id: string[]; @@ -24,3 +26,20 @@ export const computeGroupDomain = ( ]; return uniqueDomains.length === 1 ? uniqueDomains[0] : undefined; }; + +export const subscribePreviewGroupSensor = ( + hass: HomeAssistant, + flow_id: string, + flow_type: "config_flow" | "options_flow", + user_input: Record, + callback: (preview: { + state: string; + attributes: Record; + }) => void +): Promise => + hass.connection.subscribeMessage(callback, { + type: "group/sensor/start_preview", + flow_id, + flow_type, + user_input, + }); diff --git a/src/dialogs/config-flow/previews/entity-preview-row.ts b/src/dialogs/config-flow/previews/entity-preview-row.ts new file mode 100644 index 0000000000..1ca2b10c13 --- /dev/null +++ b/src/dialogs/config-flow/previews/entity-preview-row.ts @@ -0,0 +1,71 @@ +import { HassEntity } from "home-assistant-js-websocket"; +import { CSSResultGroup, LitElement, css, html, nothing } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import { computeStateDisplay } from "../../../common/entity/compute_state_display"; +import { computeStateName } from "../../../common/entity/compute_state_name"; +import { isUnavailableState } from "../../../data/entity"; +import { SENSOR_DEVICE_CLASS_TIMESTAMP } from "../../../data/sensor"; +import { HomeAssistant } from "../../../types"; + +@customElement("entity-preview-row") +class EntityPreviewRow extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @state() private stateObj?: HassEntity; + + protected render() { + if (!this.stateObj) { + return nothing; + } + const stateObj = this.stateObj; + return html` +
+ ${computeStateName(stateObj)} +
+
+ ${stateObj.attributes.device_class === SENSOR_DEVICE_CLASS_TIMESTAMP && + !isUnavailableState(stateObj.state) + ? html` + + ` + : computeStateDisplay( + this.hass!.localize, + stateObj, + this.hass.locale, + this.hass.config, + this.hass.entities + )} +
`; + } + + static get styles(): CSSResultGroup { + return css` + :host { + display: flex; + align-items: center; + flex-direction: row; + } + .name { + margin-left: 16px; + margin-right: 8px; + flex: 1 1 30%; + } + .value { + direction: ltr; + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "entity-preview-row": EntityPreviewRow; + } +} diff --git a/src/dialogs/config-flow/previews/flow-preview-group_sensor.ts b/src/dialogs/config-flow/previews/flow-preview-group_sensor.ts new file mode 100644 index 0000000000..4da52df762 --- /dev/null +++ b/src/dialogs/config-flow/previews/flow-preview-group_sensor.ts @@ -0,0 +1,92 @@ +import { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket"; +import { LitElement, html } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import { FlowType } from "../../../data/data_entry_flow"; +import { subscribePreviewGroupSensor } from "../../../data/group"; +import { HomeAssistant } from "../../../types"; +import "./entity-preview-row"; + +@customElement("flow-preview-group_sensor") +class FlowPreviewGroupSensor extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @property() public flowType!: FlowType; + + public handler!: string; + + public stepId!: string; + + @property() public flowId!: string; + + @property() public stepData!: Record; + + @state() private _preview?: HassEntity; + + private _unsub?: Promise; + + disconnectedCallback(): void { + super.disconnectedCallback(); + if (this._unsub) { + this._unsub.then((unsub) => unsub()); + this._unsub = undefined; + } + } + + willUpdate(changedProps) { + if (changedProps.has("stepData")) { + this._subscribePreview(); + } + } + + protected render() { + return html``; + } + + private _setPreview = (preview: { + state: string; + attributes: Record; + }) => { + const now = new Date().toISOString(); + this._preview = { + entity_id: "sensor.flow_preview", + last_changed: now, + last_updated: now, + context: { id: "", parent_id: null, user_id: null }, + ...preview, + }; + }; + + private async _subscribePreview() { + if (this._unsub) { + (await this._unsub)(); + this._unsub = undefined; + } + if (this.flowType === "repair_flow") { + return; + } + if (!this.stepData.type) { + this._preview = undefined; + return; + } + try { + this._unsub = subscribePreviewGroupSensor( + this.hass, + this.flowId, + this.flowType, + this.stepData, + this._setPreview + ); + } catch (err) { + this._preview = undefined; + } + } +} + +declare global { + interface HTMLElementTagNameMap { + "flow-preview-group_sensor": FlowPreviewGroupSensor; + } +} diff --git a/src/dialogs/config-flow/show-dialog-config-flow.ts b/src/dialogs/config-flow/show-dialog-config-flow.ts index f7b3fc7e37..23c37f1797 100644 --- a/src/dialogs/config-flow/show-dialog-config-flow.ts +++ b/src/dialogs/config-flow/show-dialog-config-flow.ts @@ -19,6 +19,7 @@ export const showConfigFlowDialog = ( dialogParams: Omit ): void => showFlowDialog(element, dialogParams, { + flowType: "config_flow", loadDevicesAndAreas: true, createFlow: async (hass, handler) => { const [step] = await Promise.all([ diff --git a/src/dialogs/config-flow/show-dialog-data-entry-flow.ts b/src/dialogs/config-flow/show-dialog-data-entry-flow.ts index 265a5cd5f6..5dbd48e7b3 100644 --- a/src/dialogs/config-flow/show-dialog-data-entry-flow.ts +++ b/src/dialogs/config-flow/show-dialog-data-entry-flow.ts @@ -9,11 +9,14 @@ import { DataEntryFlowStepForm, DataEntryFlowStepMenu, DataEntryFlowStepProgress, + FlowType, } from "../../data/data_entry_flow"; import type { IntegrationManifest } from "../../data/integration"; import type { HomeAssistant } from "../../types"; export interface FlowConfig { + flowType: FlowType; + loadDevicesAndAreas: boolean; createFlow(hass: HomeAssistant, handler: string): Promise; diff --git a/src/dialogs/config-flow/show-dialog-options-flow.ts b/src/dialogs/config-flow/show-dialog-options-flow.ts index d95a38c29a..012f0c580e 100644 --- a/src/dialogs/config-flow/show-dialog-options-flow.ts +++ b/src/dialogs/config-flow/show-dialog-options-flow.ts @@ -27,6 +27,7 @@ export const showOptionsFlowDialog = ( manifest, }, { + flowType: "options_flow", loadDevicesAndAreas: false, createFlow: async (hass, handler) => { const [step] = await Promise.all([ diff --git a/src/dialogs/config-flow/step-flow-form.ts b/src/dialogs/config-flow/step-flow-form.ts index f951dda0d2..eaf09bef98 100644 --- a/src/dialogs/config-flow/step-flow-form.ts +++ b/src/dialogs/config-flow/step-flow-form.ts @@ -1,15 +1,18 @@ -import "@material/mwc-button"; import "@lrnwebcomponents/simple-tooltip/simple-tooltip"; +import "@material/mwc-button"; import { css, CSSResultGroup, html, LitElement, + nothing, PropertyValues, TemplateResult, } from "lit"; import { customElement, property, state } from "lit/decorators"; +import { dynamicElement } from "../../common/dom/dynamic-element-directive"; import { fireEvent } from "../../common/dom/fire_event"; +import { isNavigationClick } from "../../common/dom/is-navigation-click"; import "../../components/ha-alert"; import "../../components/ha-circular-progress"; import { computeInitialHaFormData } from "../../components/ha-form/compute-initial-ha-form-data"; @@ -21,7 +24,7 @@ import type { DataEntryFlowStepForm } from "../../data/data_entry_flow"; import type { HomeAssistant } from "../../types"; import type { FlowConfig } from "./show-dialog-data-entry-flow"; import { configFlowContentStyles } from "./styles"; -import { isNavigationClick } from "../../common/dom/is-navigation-click"; +import { haStyle } from "../../resources/styles"; @customElement("step-flow-form") class StepFlowForm extends LitElement { @@ -66,6 +69,23 @@ class StepFlowForm extends LitElement { .localizeValue=${this._localizeValueCallback} >
+ ${step.preview + ? html`
+

+ ${this.hass.localize( + "ui.panel.config.integrations.config_flow.preview" + )}: +

+ ${dynamicElement(`flow-preview-${this.step.preview}`, { + hass: this.hass, + flowType: this.flowConfig.flowType, + handler: step.handler, + stepId: step.step_id, + flowId: step.flow_id, + stepData, + })} +
` + : nothing}
${this._loading ? html` @@ -93,6 +113,13 @@ class StepFlowForm extends LitElement { this.addEventListener("keydown", this._handleKeyDown); } + protected willUpdate(changedProps: PropertyValues): void { + super.willUpdate(changedProps); + if (changedProps.has("step") && this.step?.preview) { + import(`./previews/flow-preview-${this.step.preview}`); + } + } + private _clickHandler(ev: MouseEvent) { if (isNavigationClick(ev, false)) { fireEvent(this, "flow-update", { @@ -199,6 +226,7 @@ class StepFlowForm extends LitElement { static get styles(): CSSResultGroup { return [ + haStyle, configFlowContentStyles, css` .error { diff --git a/src/dialogs/config-flow/styles.ts b/src/dialogs/config-flow/styles.ts index 3d93386476..daaa9342af 100644 --- a/src/dialogs/config-flow/styles.ts +++ b/src/dialogs/config-flow/styles.ts @@ -23,7 +23,8 @@ export const configFlowContentStyles = css` box-sizing: border-box; } - .content { + .content, + .preview { margin-top: 20px; padding: 0 24px; } diff --git a/src/panels/config/repairs/show-dialog-repair-flow.ts b/src/panels/config/repairs/show-dialog-repair-flow.ts index b723382b80..c4730ab86c 100644 --- a/src/panels/config/repairs/show-dialog-repair-flow.ts +++ b/src/panels/config/repairs/show-dialog-repair-flow.ts @@ -27,6 +27,7 @@ export const showRepairsFlowDialog = ( dialogClosedCallback, }, { + flowType: "repair_flow", loadDevicesAndAreas: false, createFlow: async (hass, handler) => { const [step] = await Promise.all([ diff --git a/src/translations/en.json b/src/translations/en.json index 3bf9d6582a..f9f71e30c1 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -3572,6 +3572,7 @@ "finish": "Finish", "submit": "Submit", "next": "Next", + "preview": "Preview", "found_following_devices": "We found the following devices", "yaml_only_title": "This device cannot be added from the UI", "yaml_only": "You can add this device by adding it to your ''configuration.yaml''. See the documentation for more information.", From e3f53e90e21716a7a9ca9fc2baacff48b9bbb0e8 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Tue, 22 Aug 2023 11:07:46 +0200 Subject: [PATCH 128/182] Fix not showing multi day events on mobile (#17660) --- src/panels/calendar/ha-full-calendar.ts | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/panels/calendar/ha-full-calendar.ts b/src/panels/calendar/ha-full-calendar.ts index 897d16f976..61a370c2e4 100644 --- a/src/panels/calendar/ha-full-calendar.ts +++ b/src/panels/calendar/ha-full-calendar.ts @@ -645,27 +645,19 @@ export class HAFullCalendar extends LitElement { :host([narrow]) .fc-dayGridMonth-view .fc-daygrid-dot-event - .fc-event-title, - :host([narrow]) .fc-dayGridMonth-view .fc-daygrid-day-bottom { + .fc-event-title { display: none; } - :host([narrow]) - .fc - .fc-dayGridMonth-view - .fc-daygrid-event-harness-abs { - visibility: visible !important; - position: static; + :host([narrow]) .fc-dayGridMonth-view .fc-daygrid-event-harness { + margin-top: 0 !important; } :host([narrow]) .fc-dayGridMonth-view .fc-daygrid-day-events { display: flex; - min-height: 2em !important; + align-items: center; justify-content: center; flex-wrap: wrap; - max-height: 2em; - height: 2em; - overflow: hidden; } :host([narrow]) .fc-dayGridMonth-view .fc-scrollgrid-sync-table { From d33430e53fce2fe32ab863d7513ad6f1816805f9 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Tue, 22 Aug 2023 11:09:18 +0200 Subject: [PATCH 129/182] Reduce ha-icon-button-group height (#17664) --- src/components/ha-icon-button-group.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/ha-icon-button-group.ts b/src/components/ha-icon-button-group.ts index cd739082ab..fe09ae262a 100644 --- a/src/components/ha-icon-button-group.ts +++ b/src/components/ha-icon-button-group.ts @@ -14,17 +14,17 @@ export class HaIconButtonGroup extends LitElement { display: flex; flex-direction: row; align-items: center; - height: 56px; + height: 48px; border-radius: 28px; background-color: rgba(139, 145, 151, 0.1); box-sizing: border-box; width: auto; - padding: 4px; - gap: 4px; + padding: 0; } ::slotted(.separator) { background-color: rgba(var(--rgb-primary-text-color), 0.15); width: 1px; + margin: 0 1px; height: 40px; } `; From 7e7205627a82b131169f381b4012edcc4496bcf6 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Tue, 22 Aug 2023 15:24:30 +0200 Subject: [PATCH 130/182] Update return home and dock icon (#17672) Update return home and docker icon --- .../more-info/controls/more-info-lawn_mower.ts | 4 ++-- src/dialogs/more-info/controls/more-info-vacuum.ts | 4 ++-- .../hui-lawn-mower-commands-tile-feature.ts | 4 ++-- .../hui-vacuum-commands-tile-feature.ts | 12 ++++++------ 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/dialogs/more-info/controls/more-info-lawn_mower.ts b/src/dialogs/more-info/controls/more-info-lawn_mower.ts index dca0aa51a3..b2437bdb45 100644 --- a/src/dialogs/more-info/controls/more-info-lawn_mower.ts +++ b/src/dialogs/more-info/controls/more-info-lawn_mower.ts @@ -1,4 +1,4 @@ -import { mdiHomeMapMarker, mdiPause, mdiPlay } from "@mdi/js"; +import { mdiHomeImportOutline, mdiPause, mdiPlay } from "@mdi/js"; import { CSSResultGroup, LitElement, css, html, nothing } from "lit"; import { customElement, property } from "lit/decorators"; import memoizeOne from "memoize-one"; @@ -44,7 +44,7 @@ const LAWN_MOWER_COMMANDS: LawnMowerCommand[] = [ }, { translationKey: "dock", - icon: mdiHomeMapMarker, + icon: mdiHomeImportOutline, serviceName: "dock", isVisible: (stateObj) => supportsFeature(stateObj, LawnMowerEntityFeature.DOCK), diff --git a/src/dialogs/more-info/controls/more-info-vacuum.ts b/src/dialogs/more-info/controls/more-info-vacuum.ts index 43decfaecb..df8b02bef7 100644 --- a/src/dialogs/more-info/controls/more-info-vacuum.ts +++ b/src/dialogs/more-info/controls/more-info-vacuum.ts @@ -1,7 +1,7 @@ import "@material/mwc-list/mwc-list-item"; import { mdiFan, - mdiHomeMapMarker, + mdiHomeImportOutline, mdiMapMarker, mdiPause, mdiPlay, @@ -91,7 +91,7 @@ const VACUUM_COMMANDS: VacuumCommand[] = [ }, { translationKey: "return_home", - icon: mdiHomeMapMarker, + icon: mdiHomeImportOutline, serviceName: "return_to_base", isVisible: (stateObj) => supportsFeature(stateObj, VacuumEntityFeature.RETURN_HOME), diff --git a/src/panels/lovelace/tile-features/hui-lawn-mower-commands-tile-feature.ts b/src/panels/lovelace/tile-features/hui-lawn-mower-commands-tile-feature.ts index d1b508e2ad..8aa16e5534 100644 --- a/src/panels/lovelace/tile-features/hui-lawn-mower-commands-tile-feature.ts +++ b/src/panels/lovelace/tile-features/hui-lawn-mower-commands-tile-feature.ts @@ -1,4 +1,4 @@ -import { mdiHomeMapMarker, mdiPause, mdiPlay } from "@mdi/js"; +import { mdiHomeImportOutline, mdiPause, mdiPlay } from "@mdi/js"; import { HassEntity } from "home-assistant-js-websocket"; import { LitElement, css, html, nothing } from "lit"; import { customElement, property, state } from "lit/decorators"; @@ -69,7 +69,7 @@ export const LAWN_MOWER_COMMANDS_BUTTONS: Record< }, dock: (stateObj) => ({ translationKey: "dock", - icon: mdiHomeMapMarker, + icon: mdiHomeImportOutline, serviceName: "dock", disabled: !canDock(stateObj), }), diff --git a/src/panels/lovelace/tile-features/hui-vacuum-commands-tile-feature.ts b/src/panels/lovelace/tile-features/hui-vacuum-commands-tile-feature.ts index f4079030dd..16c4a77278 100644 --- a/src/panels/lovelace/tile-features/hui-vacuum-commands-tile-feature.ts +++ b/src/panels/lovelace/tile-features/hui-vacuum-commands-tile-feature.ts @@ -1,5 +1,5 @@ import { - mdiHomeMapMarker, + mdiHomeImportOutline, mdiMapMarker, mdiPause, mdiPlay, @@ -8,7 +8,7 @@ import { mdiTargetVariant, } from "@mdi/js"; import { HassEntity } from "home-assistant-js-websocket"; -import { css, html, LitElement, nothing } from "lit"; +import { LitElement, css, html, nothing } from "lit"; import { customElement, property, state } from "lit/decorators"; import { computeDomain } from "../../../common/entity/compute_domain"; import { supportsFeature } from "../../../common/entity/supports-feature"; @@ -16,19 +16,19 @@ import "../../../components/ha-control-button"; import "../../../components/ha-control-button-group"; import { UNAVAILABLE } from "../../../data/entity"; import { + VacuumEntity, + VacuumEntityFeature, canReturnHome, canStart, canStop, isCleaning, - VacuumEntity, - VacuumEntityFeature, } from "../../../data/vacuum"; import { HomeAssistant } from "../../../types"; import { LovelaceTileFeature, LovelaceTileFeatureEditor } from "../types"; import { + VACUUM_COMMANDS, VacuumCommand, VacuumCommandsTileFeatureConfig, - VACUUM_COMMANDS, } from "./types"; interface VacuumButton { @@ -110,7 +110,7 @@ export const VACUUM_COMMANDS_BUTTONS: Record< }), return_home: (stateObj) => ({ translationKey: "return_home", - icon: mdiHomeMapMarker, + icon: mdiHomeImportOutline, serviceName: "return_to_base", disabled: !canReturnHome(stateObj), }), From 3249a5225fd9bfca19e2a59fdb893576ce35d8cf Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Tue, 22 Aug 2023 15:26:46 +0200 Subject: [PATCH 131/182] Keep user signed in during onboarding (#17669) --- src/onboarding/ha-onboarding.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/onboarding/ha-onboarding.ts b/src/onboarding/ha-onboarding.ts index 88b12140f1..f08917aaa4 100644 --- a/src/onboarding/ha-onboarding.ts +++ b/src/onboarding/ha-onboarding.ts @@ -27,6 +27,11 @@ import { registerServiceWorker } from "../util/register-service-worker"; import "./onboarding-analytics"; import "./onboarding-create-user"; import "./onboarding-loading"; +import { + enableWrite, + loadTokens, + saveTokens, +} from "../common/auth/token_storage"; type OnboardingEvent = | { @@ -212,6 +217,8 @@ class HaOnboarding extends litLocalizeLiteMixin(HassElement) { const auth = await getAuth({ hassUrl, limitHassInstance: true, + saveTokens, + loadTokens: () => Promise.resolve(loadTokens()), }); history.replaceState(null, "", location.pathname); await this._connectHass(auth); @@ -235,11 +242,13 @@ class HaOnboarding extends litLocalizeLiteMixin(HassElement) { if (stepResult.type === "user") { const result = stepResult.result as OnboardingResponses["user"]; this._loading = true; + enableWrite(); try { const auth = await getAuth({ hassUrl, limitHassInstance: true, authCode: result.auth_code, + saveTokens, }); await this._connectHass(auth); } catch (err: any) { From 85977e505b547637ab92e1e10078c3f149a011ad Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Tue, 22 Aug 2023 16:55:12 +0200 Subject: [PATCH 132/182] Add cover tilt position to tile card (#17619) Add cover tilt to tile card --- .../cover/ha-more-info-cover-tilt-position.ts | 4 +- .../create-tile-feature-element.ts | 2 + .../hui-tile-card-features-editor.ts | 2 + .../hui-cover-tilt-position-tile-feature.ts | 121 ++++++++++++++++++ src/panels/lovelace/tile-features/types.ts | 5 + src/translations/en.json | 3 + 6 files changed, 135 insertions(+), 2 deletions(-) create mode 100644 src/panels/lovelace/tile-features/hui-cover-tilt-position-tile-feature.ts diff --git a/src/dialogs/more-info/components/cover/ha-more-info-cover-tilt-position.ts b/src/dialogs/more-info/components/cover/ha-more-info-cover-tilt-position.ts index f9ddde6b9d..435d437f83 100644 --- a/src/dialogs/more-info/components/cover/ha-more-info-cover-tilt-position.ts +++ b/src/dialogs/more-info/components/cover/ha-more-info-cover-tilt-position.ts @@ -15,7 +15,7 @@ import { CoverEntity } from "../../../../data/cover"; import { UNAVAILABLE } from "../../../../data/entity"; import { HomeAssistant } from "../../../../types"; -function generateTiltSliderTrackBackgroundGradient() { +export function generateTiltSliderTrackBackgroundGradient() { const count = 24; const minStrokeWidth = 0.2; const gradient: [number, string][] = []; @@ -87,7 +87,7 @@ export class HaMoreInfoCoverTiltPosition extends LitElement { this.hass.localize, this.stateObj, this.hass.entities, - "tilt_position" + "current_tilt_position" )} style=${styleMap({ "--control-slider-color": color, diff --git a/src/panels/lovelace/create-element/create-tile-feature-element.ts b/src/panels/lovelace/create-element/create-tile-feature-element.ts index 142838310b..f85e660378 100644 --- a/src/panels/lovelace/create-element/create-tile-feature-element.ts +++ b/src/panels/lovelace/create-element/create-tile-feature-element.ts @@ -2,6 +2,7 @@ import "../tile-features/hui-alarm-modes-tile-feature"; import "../tile-features/hui-climate-hvac-modes-tile-feature"; import "../tile-features/hui-cover-open-close-tile-feature"; import "../tile-features/hui-cover-position-tile-feature"; +import "../tile-features/hui-cover-tilt-position-tile-feature"; import "../tile-features/hui-cover-tilt-tile-feature"; import "../tile-features/hui-fan-speed-tile-feature"; import "../tile-features/hui-light-brightness-tile-feature"; @@ -19,6 +20,7 @@ const TYPES: Set = new Set([ "cover-open-close", "cover-position", "cover-tilt", + "cover-tilt-position", "light-brightness", "light-color-temp", "vacuum-commands", diff --git a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts index 12411d4092..6a38b0a672 100644 --- a/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts @@ -46,6 +46,7 @@ const FEATURE_TYPES: FeatureType[] = [ "climate-hvac-modes", "cover-open-close", "cover-position", + "cover-tilt-position", "cover-tilt", "fan-speed", "lawn-mower-commands", @@ -69,6 +70,7 @@ const SUPPORTS_FEATURE_TYPES: Record = "climate-hvac-modes": supportsClimateHvacModesTileFeature, "cover-open-close": supportsCoverOpenCloseTileFeature, "cover-position": supportsCoverPositionTileFeature, + "cover-tilt-position": supportsCoverPositionTileFeature, "cover-tilt": supportsCoverTiltTileFeature, "fan-speed": supportsFanSpeedTileFeature, "lawn-mower-commands": supportsLawnMowerCommandTileFeature, diff --git a/src/panels/lovelace/tile-features/hui-cover-tilt-position-tile-feature.ts b/src/panels/lovelace/tile-features/hui-cover-tilt-position-tile-feature.ts new file mode 100644 index 0000000000..be174788a6 --- /dev/null +++ b/src/panels/lovelace/tile-features/hui-cover-tilt-position-tile-feature.ts @@ -0,0 +1,121 @@ +import { HassEntity } from "home-assistant-js-websocket"; +import { css, html, LitElement, nothing } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import { computeAttributeNameDisplay } from "../../../common/entity/compute_attribute_display"; +import { computeDomain } from "../../../common/entity/compute_domain"; +import { supportsFeature } from "../../../common/entity/supports-feature"; +import { CoverEntity, CoverEntityFeature } from "../../../data/cover"; +import { UNAVAILABLE } from "../../../data/entity"; +import { generateTiltSliderTrackBackgroundGradient } from "../../../dialogs/more-info/components/cover/ha-more-info-cover-tilt-position"; +import { HomeAssistant } from "../../../types"; +import { LovelaceTileFeature } from "../types"; +import { CoverTiltPositionTileFeatureConfig } from "./types"; + +const GRADIENT = generateTiltSliderTrackBackgroundGradient(); + +export const supportsCoverTiltPositionTileFeature = (stateObj: HassEntity) => { + const domain = computeDomain(stateObj.entity_id); + return ( + domain === "cover" && + supportsFeature(stateObj, CoverEntityFeature.SET_TILT_POSITION) + ); +}; + +@customElement("hui-cover-tilt-position-tile-feature") +class HuiCoverTiltPositionTileFeature + extends LitElement + implements LovelaceTileFeature +{ + @property({ attribute: false }) public hass?: HomeAssistant; + + @property({ attribute: false }) public stateObj?: CoverEntity; + + @state() private _config?: CoverTiltPositionTileFeatureConfig; + + static getStubConfig(): CoverTiltPositionTileFeatureConfig { + return { + type: "cover-tilt-position", + }; + } + + public setConfig(config: CoverTiltPositionTileFeatureConfig): void { + if (!config) { + throw new Error("Invalid configuration"); + } + this._config = config; + } + + protected render() { + if ( + !this._config || + !this.hass || + !this.stateObj || + !supportsCoverTiltPositionTileFeature(this.stateObj) + ) { + return nothing; + } + + const percentage = this.stateObj.attributes.current_tilt_position ?? 0; + + const value = Math.max(Math.round(percentage), 0); + + return html` +
+ +
+
+ `; + } + + private _valueChanged(ev: CustomEvent) { + const value = (ev.detail as any).value; + if (isNaN(value)) return; + + this.hass!.callService("cover", "set_cover_tilt_position", { + entity_id: this.stateObj!.entity_id, + tilt_position: value, + }); + } + + static get styles() { + return css` + ha-control-slider { + /* Force inactive state to be colored for the slider */ + --control-slider-color: var(--tile-color); + --control-slider-background: var(--tile-color); + --control-slider-background-opacity: 0.2; + --control-slider-thickness: 40px; + --control-slider-border-radius: 10px; + } + .container { + padding: 0 12px 12px 12px; + width: auto; + } + .gradient { + background: -webkit-linear-gradient(left, ${GRADIENT}); + opacity: 0.6; + } + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + "hui-cover-tilt-position-tile-feature": HuiCoverTiltPositionTileFeature; + } +} diff --git a/src/panels/lovelace/tile-features/types.ts b/src/panels/lovelace/tile-features/types.ts index 848862c4d3..71e3ad711a 100644 --- a/src/panels/lovelace/tile-features/types.ts +++ b/src/panels/lovelace/tile-features/types.ts @@ -14,6 +14,10 @@ export interface CoverTiltTileFeatureConfig { type: "cover-tilt"; } +export interface CoverTiltPositionTileFeatureConfig { + type: "cover-tilt-position"; +} + export interface LightBrightnessTileFeatureConfig { type: "light-brightness"; } @@ -70,6 +74,7 @@ export type LovelaceTileFeatureConfig = | ClimateHvacModesTileFeatureConfig | CoverOpenCloseTileFeatureConfig | CoverPositionTileFeatureConfig + | CoverTiltPositionTileFeatureConfig | CoverTiltTileFeatureConfig | FanSpeedTileFeatureConfig | LawnMowerCommandsTileFeatureConfig diff --git a/src/translations/en.json b/src/translations/en.json index f9f71e30c1..c27789a9ae 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -4988,6 +4988,9 @@ "cover-tilt": { "label": "Cover tilt" }, + "cover-tilt-position": { + "label": "Cover tilt position" + }, "fan-speed": { "label": "Fan speed" }, From 5cc06ebf0b4d9562ccd287bf1b1b2c267313a665 Mon Sep 17 00:00:00 2001 From: Simon Lamon <32477463+silamon@users.noreply.github.com> Date: Tue, 22 Aug 2023 17:10:26 +0200 Subject: [PATCH 133/182] Migrate gallery pages to LitElement (#17667) --- gallery/src/components/demo-cards.ts | 30 +++----- gallery/src/components/demo-more-info.js | 93 ----------------------- gallery/src/components/demo-more-info.ts | 93 +++++++++++++++++++++++ gallery/src/components/demo-more-infos.js | 83 -------------------- gallery/src/components/demo-more-infos.ts | 87 +++++++++++++++++++++ gallery/src/ha-demo-options.ts | 47 ++++++++++++ 6 files changed, 236 insertions(+), 197 deletions(-) delete mode 100644 gallery/src/components/demo-more-info.js create mode 100644 gallery/src/components/demo-more-info.ts delete mode 100644 gallery/src/components/demo-more-infos.js create mode 100644 gallery/src/components/demo-more-infos.ts create mode 100644 gallery/src/ha-demo-options.ts diff --git a/gallery/src/components/demo-cards.ts b/gallery/src/components/demo-cards.ts index d2c485e76e..0bb36e3309 100644 --- a/gallery/src/components/demo-cards.ts +++ b/gallery/src/components/demo-cards.ts @@ -1,4 +1,3 @@ -import "@polymer/app-layout/app-toolbar/app-toolbar"; import { html, css, LitElement } from "lit"; import { customElement, property, query, state } from "lit/decorators"; import { applyThemesOnElement } from "../../../src/common/dom/apply_themes_on_element"; @@ -7,6 +6,7 @@ import "../../../src/components/ha-switch"; import { HomeAssistant } from "../../../src/types"; import "./demo-card"; import type { DemoCardConfig } from "./demo-card"; +import "../ha-demo-options"; @customElement("demo-cards") class DemoCards extends LitElement { @@ -20,20 +20,14 @@ class DemoCards extends LitElement { render() { return html` - -
- - - - - - - -
-
+ + + + + + + +
${this.configs.map( @@ -69,12 +63,6 @@ class DemoCards extends LitElement { demo-card { margin: 16px 16px 32px; } - app-toolbar { - background-color: var(--light-primary-color); - } - .filters { - margin-left: 60px; - } ha-formfield { margin-right: 16px; } diff --git a/gallery/src/components/demo-more-info.js b/gallery/src/components/demo-more-info.js deleted file mode 100644 index 9e2fe30b22..0000000000 --- a/gallery/src/components/demo-more-info.js +++ /dev/null @@ -1,93 +0,0 @@ -import { html } from "@polymer/polymer/lib/utils/html-tag"; -/* eslint-plugin-disable lit */ -import { PolymerElement } from "@polymer/polymer/polymer-element"; -import "../../../src/components/ha-card"; -import "../../../src/dialogs/more-info/more-info-content"; -import "../../../src/state-summary/state-card-content"; - -class DemoMoreInfo extends PolymerElement { - static get template() { - return html` - -
-
- - - - - -
- -
- `; - } - - static get properties() { - return { - hass: Object, - entityId: String, - showConfig: Boolean, - _stateObj: { - type: Object, - computed: "_getState(entityId, hass.states)", - }, - }; - } - - _getState(entityId, states) { - return states[entityId]; - } - - _jsonEntity(stateObj) { - // We are caching some things on stateObj - // (it sucks, we will remove in the future) - const tmp = {}; - Object.keys(stateObj).forEach((key) => { - if (key[0] !== "_") { - tmp[key] = stateObj[key]; - } - }); - return JSON.stringify(tmp, null, 2); - } -} - -customElements.define("demo-more-info", DemoMoreInfo); diff --git a/gallery/src/components/demo-more-info.ts b/gallery/src/components/demo-more-info.ts new file mode 100644 index 0000000000..2aa2ca1336 --- /dev/null +++ b/gallery/src/components/demo-more-info.ts @@ -0,0 +1,93 @@ +import { LitElement, css, html } from "lit"; +import { customElement, property } from "lit/decorators"; +import "../../../src/components/ha-card"; +import "../../../src/dialogs/more-info/more-info-content"; +import "../../../src/state-summary/state-card-content"; +import "../ha-demo-options"; +import { HomeAssistant } from "../../../src/types"; + +@customElement("demo-more-info") +class DemoMoreInfo extends LitElement { + @property() public hass!: HomeAssistant; + + @property() public entityId!: string; + + @property() public showConfig!: boolean; + + render() { + const state = this._getState(this.entityId, this.hass.states); + return html` +
+
+ + + + + +
+ ${this.showConfig ? html`
${this._jsonEntity(state)}
` : ""} +
+ `; + } + + private _getState(entityId, states) { + return states[entityId]; + } + + private _jsonEntity(stateObj) { + // We are caching some things on stateObj + // (it sucks, we will remove in the future) + const tmp = {}; + Object.keys(stateObj).forEach((key) => { + if (key[0] !== "_") { + tmp[key] = stateObj[key]; + } + }); + return JSON.stringify(tmp, null, 2); + } + + static styles = css` + .root { + display: flex; + } + #card { + max-width: 400px; + width: 100vw; + } + ha-card { + width: 352px; + padding: 20px 24px; + } + state-card-content { + display: block; + margin-bottom: 16px; + } + pre { + width: 400px; + margin: 0 16px; + overflow: auto; + color: var(--primary-text-color); + } + @media only screen and (max-width: 800px) { + .root { + flex-direction: column; + } + pre { + margin: 16px 0; + } + } + `; +} + +declare global { + interface HTMLElementTagNameMap { + "demo-more-info": DemoMoreInfo; + } +} diff --git a/gallery/src/components/demo-more-infos.js b/gallery/src/components/demo-more-infos.js deleted file mode 100644 index 26d5fd002f..0000000000 --- a/gallery/src/components/demo-more-infos.js +++ /dev/null @@ -1,83 +0,0 @@ -import "@polymer/app-layout/app-toolbar/app-toolbar"; -import { html } from "@polymer/polymer/lib/utils/html-tag"; -/* eslint-plugin-disable lit */ -import { PolymerElement } from "@polymer/polymer/polymer-element"; -import { applyThemesOnElement } from "../../../src/common/dom/apply_themes_on_element"; -import "../../../src/components/ha-formfield"; -import "../../../src/components/ha-switch"; -import "./demo-more-info"; - -class DemoMoreInfos extends PolymerElement { - static get template() { - return html` - - -
- - - - - - - -
-
-
-
- -
-
- `; - } - - static get properties() { - return { - entities: Array, - hass: Object, - _showConfig: { - type: Boolean, - value: false, - }, - }; - } - - _showConfigToggled(ev) { - this._showConfig = ev.target.checked; - } - - _darkThemeToggled(ev) { - applyThemesOnElement(this.$.container, { themes: {} }, "default", { - dark: ev.target.checked, - }); - } -} - -customElements.define("demo-more-infos", DemoMoreInfos); diff --git a/gallery/src/components/demo-more-infos.ts b/gallery/src/components/demo-more-infos.ts new file mode 100644 index 0000000000..5d7d928620 --- /dev/null +++ b/gallery/src/components/demo-more-infos.ts @@ -0,0 +1,87 @@ +import { LitElement, css, html } from "lit"; +import { customElement, property } from "lit/decorators"; +import { applyThemesOnElement } from "../../../src/common/dom/apply_themes_on_element"; +import "../../../src/components/ha-formfield"; +import "../../../src/components/ha-switch"; +import "./demo-more-info"; +import "../ha-demo-options"; +import { HomeAssistant } from "../../../src/types"; + +@customElement("demo-more-infos") +class DemoMoreInfos extends LitElement { + @property() public hass!: HomeAssistant; + + @property() public entities!: []; + + @property({ attribute: false }) _showConfig: boolean = false; + + render() { + return html` + + + + + + + + +
+
+ ${this.entities.map( + (item) => + html`` + )} +
+
+ `; + } + + static styles = css` + #container { + min-height: calc(100vh - 128px); + background: var(--primary-background-color); + } + .cards { + display: flex; + flex-wrap: wrap; + justify-content: center; + } + demo-more-info { + margin: 16px 16px 32px; + } + ha-formfield { + margin-right: 16px; + } + `; + + _showConfigToggled(ev) { + this._showConfig = ev.target.checked; + } + + _darkThemeToggled(ev) { + applyThemesOnElement( + this.shadowRoot!.querySelector("#container"), + { + default_theme: "default", + default_dark_theme: "default", + themes: {}, + darkMode: false, + theme: "default", + }, + "default", + { + dark: ev.target.checked, + } + ); + } +} + +declare global { + interface HTMLElementTagNameMap { + "demo-more-infos": DemoMoreInfos; + } +} diff --git a/gallery/src/ha-demo-options.ts b/gallery/src/ha-demo-options.ts new file mode 100644 index 0000000000..f3565e7891 --- /dev/null +++ b/gallery/src/ha-demo-options.ts @@ -0,0 +1,47 @@ +import "@material/mwc-drawer"; +import "@material/mwc-top-app-bar-fixed"; +import { html, css, LitElement } from "lit"; +import { customElement } from "lit/decorators"; +import "../../src/components/ha-icon-button"; +import "../../src/managers/notification-manager"; +import { haStyle } from "../../src/resources/styles"; +import "./components/page-description"; + +@customElement("ha-demo-options") +class HaDemoOptions extends LitElement { + render() { + return html``; + } + + static styles = [ + haStyle, + css` + :host { + display: block; + background-color: var(--light-primary-color); + margin-left: 60px + margin-right: 60px; + display: var(--layout-horizontal_-_display); + -ms-flex-direction: var(--layout-horizontal_-_-ms-flex-direction); + -webkit-flex-direction: var( + --layout-horizontal_-_-webkit-flex-direction + ); + flex-direction: var(--layout-horizontal_-_flex-direction); + -ms-flex-align: var(--layout-center_-_-ms-flex-align); + -webkit-align-items: var(--layout-center_-_-webkit-align-items); + align-items: var(--layout-center_-_align-items); + position: relative; + height: 64px; + padding: 0 16px; + pointer-events: none; + font-size: 20px; + } + `, + ]; +} + +declare global { + interface HTMLElementTagNameMap { + "ha-demo-options": HaDemoOptions; + } +} From aa2b2b0d16d931b82cca2bf8820838855537bfff Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Tue, 22 Aug 2023 08:14:10 -0700 Subject: [PATCH 134/182] Typo: lates -> latest (#17673) --- gallery/src/pages/concepts/home.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gallery/src/pages/concepts/home.markdown b/gallery/src/pages/concepts/home.markdown index 7b8cb4ab3f..35dda1cb86 100644 --- a/gallery/src/pages/concepts/home.markdown +++ b/gallery/src/pages/concepts/home.markdown @@ -20,7 +20,7 @@ We want to make it as easy for designers to contribute as it is for developers. - Meet us at devs_ux Discord. Feel free to share your designs, user test or strategic ideas. - Start designing with our Figma DesignKit. -- Find the lates UX discussions and issues on GitHub. Everyone can start a new issue or discussion! +- Find the latest UX discussions and issues on GitHub. Everyone can start a new issue or discussion! ## Developers From bbb6fccaec888d456069f0f3c311caa793cad3a4 Mon Sep 17 00:00:00 2001 From: Simon Lamon <32477463+silamon@users.noreply.github.com> Date: Tue, 22 Aug 2023 17:20:13 +0200 Subject: [PATCH 135/182] Clean system health subscription after data is collected (#17665) --- src/data/system_health.ts | 3 +- .../repairs/dialog-system-information.ts | 55 +++++++++---------- 2 files changed, 28 insertions(+), 30 deletions(-) diff --git a/src/data/system_health.ts b/src/data/system_health.ts index 72d5e20068..a98ef79b4f 100644 --- a/src/data/system_health.ts +++ b/src/data/system_health.ts @@ -69,7 +69,7 @@ type SystemHealthEvent = export const subscribeSystemHealthInfo = ( hass: HomeAssistant, - callback: (info: SystemHealthInfo) => void + callback: (info: SystemHealthInfo | undefined) => void ) => { let data = {}; @@ -82,6 +82,7 @@ export const subscribeSystemHealthInfo = ( } if (updateEvent.type === "finish") { unsubProm.then((unsub) => unsub()); + callback(undefined); return; } diff --git a/src/panels/config/repairs/dialog-system-information.ts b/src/panels/config/repairs/dialog-system-information.ts index c96ac4c574..5158d0b61f 100644 --- a/src/panels/config/repairs/dialog-system-information.ts +++ b/src/panels/config/repairs/dialog-system-information.ts @@ -71,7 +71,9 @@ class DialogSystemInformation extends LitElement { @state() private _opened = false; - private _subscriptions?: Array>; + private _systemHealthSubscription?: Promise; + + private _hassIOSubscription?: UnsubscribeFunc; public showDialog(): void { this._opened = true; @@ -86,48 +88,43 @@ class DialogSystemInformation extends LitElement { } private _subscribe(): void { - const subs: Array> = []; if (isComponentLoaded(this.hass, "system_health")) { - subs.push( - subscribeSystemHealthInfo(this.hass!, (info) => { - this._systemInfo = info; - }) + this._systemHealthSubscription = subscribeSystemHealthInfo( + this.hass, + (info) => { + if (!info) { + this._systemHealthSubscription = undefined; + } else { + this._systemInfo = info; + } + } ); } if (isComponentLoaded(this.hass, "hassio")) { - subs.push( - subscribePollingCollection( - this.hass, - async () => { - this._supervisorStats = await fetchHassioStats( - this.hass, - "supervisor" - ); - this._coreStats = await fetchHassioStats(this.hass, "core"); - }, - 10000 - ) + this._hassIOSubscription = subscribePollingCollection( + this.hass, + async () => { + this._supervisorStats = await fetchHassioStats( + this.hass, + "supervisor" + ); + this._coreStats = await fetchHassioStats(this.hass, "core"); + }, + 10000 ); fetchHassioResolution(this.hass).then((data) => { this._resolutionInfo = data; }); } - - this._subscriptions = subs; } private _unsubscribe() { - while (this._subscriptions?.length) { - const unsub = this._subscriptions.pop()!; - if (unsub instanceof Promise) { - unsub.then((unsubFunc) => unsubFunc()); - } else { - unsub(); - } - } - this._subscriptions = undefined; + this._systemHealthSubscription?.then((unsubFunc) => unsubFunc()); + this._systemHealthSubscription = undefined; + this._hassIOSubscription?.(); + this._hassIOSubscription = undefined; this._systemInfo = undefined; this._resolutionInfo = undefined; From f773c968f9e8ed80256e0dee46869bbbd1d5063d Mon Sep 17 00:00:00 2001 From: Matthias Alphart Date: Tue, 22 Aug 2023 17:21:06 +0200 Subject: [PATCH 136/182] Clear input element value of `ha-file-upload` (#17663) --- src/components/ha-file-upload.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/ha-file-upload.ts b/src/components/ha-file-upload.ts index af4524b060..db6a029bd0 100644 --- a/src/components/ha-file-upload.ts +++ b/src/components/ha-file-upload.ts @@ -146,6 +146,7 @@ export class HaFileUpload extends LitElement { private _clearValue(ev: Event) { ev.preventDefault(); this.value = null; + this._input!.value = ""; fireEvent(this, "change"); } From 88eba92f578ab5a6a9d2c89763780d34dab7f5d8 Mon Sep 17 00:00:00 2001 From: Simon Lamon <32477463+silamon@users.noreply.github.com> Date: Tue, 22 Aug 2023 19:49:30 +0200 Subject: [PATCH 137/182] Migrate ha-service-call-button to LitElement (#17666) --- .../buttons/ha-call-service-button.js | 100 ------------------ .../buttons/ha-call-service-button.ts | 92 ++++++++++++++++ 2 files changed, 92 insertions(+), 100 deletions(-) delete mode 100644 src/components/buttons/ha-call-service-button.js create mode 100644 src/components/buttons/ha-call-service-button.ts diff --git a/src/components/buttons/ha-call-service-button.js b/src/components/buttons/ha-call-service-button.js deleted file mode 100644 index aa53eec5ac..0000000000 --- a/src/components/buttons/ha-call-service-button.js +++ /dev/null @@ -1,100 +0,0 @@ -import { html } from "@polymer/polymer/lib/utils/html-tag"; -/* eslint-plugin-disable lit */ -import { PolymerElement } from "@polymer/polymer/polymer-element"; -import { showConfirmationDialog } from "../../dialogs/generic/show-dialog-box"; -import { EventsMixin } from "../../mixins/events-mixin"; -import "./ha-progress-button"; - -/* - * @appliesMixin EventsMixin - */ -class HaCallServiceButton extends EventsMixin(PolymerElement) { - static get template() { - return html` - - `; - } - - static get properties() { - return { - hass: { - type: Object, - }, - - progress: { - type: Boolean, - value: false, - }, - - domain: { - type: String, - }, - - service: { - type: String, - }, - - serviceData: { - type: Object, - value: {}, - }, - - confirmation: { - type: String, - }, - - disabled: { - type: Boolean, - }, - }; - } - - callService() { - this.progress = true; - // eslint-disable-next-line @typescript-eslint/no-this-alias - const el = this; - const eventData = { - domain: this.domain, - service: this.service, - serviceData: this.serviceData, - }; - - this.hass - .callService(this.domain, this.service, this.serviceData) - .then( - () => { - el.progress = false; - el.$.progress.actionSuccess(); - eventData.success = true; - }, - () => { - el.progress = false; - el.$.progress.actionError(); - eventData.success = false; - } - ) - .then(() => { - el.fire("hass-service-called", eventData); - }); - } - - buttonTapped() { - if (this.confirmation) { - showConfirmationDialog(this, { - text: this.confirmation, - confirm: () => this.callService(), - }); - } else { - this.callService(); - } - } -} - -customElements.define("ha-call-service-button", HaCallServiceButton); diff --git a/src/components/buttons/ha-call-service-button.ts b/src/components/buttons/ha-call-service-button.ts new file mode 100644 index 0000000000..3cea93de0d --- /dev/null +++ b/src/components/buttons/ha-call-service-button.ts @@ -0,0 +1,92 @@ +import { LitElement, TemplateResult, html } from "lit"; +import { customElement, property } from "lit/decorators"; +import { showConfirmationDialog } from "../../dialogs/generic/show-dialog-box"; +import "./ha-progress-button"; +import { HomeAssistant } from "../../types"; +import { fireEvent } from "../../common/dom/fire_event"; + +@customElement("ha-call-service-button") +class HaCallServiceButton extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @property({ type: Boolean }) public disabled = false; + + @property({ type: Boolean }) public progress = false; + + @property() public domain!: string; + + @property() public service!: string; + + @property({ type: Object }) public serviceData = {}; + + @property() public confirmation?; + + public render(): TemplateResult { + return html` + + + `; + } + + private async _callService() { + this.progress = true; + const eventData = { + domain: this.domain, + service: this.service, + serviceData: this.serviceData, + success: false, + }; + + const progressElement = + this.shadowRoot!.querySelector("ha-progress-button")!; + + try { + await this.hass.callService(this.domain, this.service, this.serviceData); + this.progress = false; + progressElement.actionSuccess(); + eventData.success = true; + } catch (e) { + this.progress = false; + progressElement.actionError(); + eventData.success = false; + return; + } finally { + fireEvent(this, "hass-service-called", eventData); + } + } + + private _buttonTapped() { + if (this.confirmation) { + showConfirmationDialog(this, { + text: this.confirmation, + confirm: () => this._callService(), + }); + } else { + this._callService(); + } + } +} + +declare global { + interface HTMLElementTagNameMap { + "ha-call-service-button": HaCallServiceButton; + } +} + +declare global { + // for fire event + interface HASSDomEvents { + "hass-service-called": { + domain: string; + service: string; + serviceData: object; + success: boolean; + }; + } +} From 42158544146f8d71e90b7f3579c701731cb32285 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 23 Aug 2023 10:14:12 +0200 Subject: [PATCH 138/182] Update dependency eslint-import-resolver-webpack to v0.13.7 (#17675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 7a5a61cb34..77d5ba56d5 100644 --- a/package.json +++ b/package.json @@ -198,7 +198,7 @@ "eslint-config-airbnb-base": "15.0.0", "eslint-config-airbnb-typescript": "17.1.0", "eslint-config-prettier": "9.0.0", - "eslint-import-resolver-webpack": "0.13.6", + "eslint-import-resolver-webpack": "0.13.7", "eslint-plugin-disable": "2.0.3", "eslint-plugin-import": "2.28.1", "eslint-plugin-lit": "1.9.1", diff --git a/yarn.lock b/yarn.lock index 23ba384116..48b5ab61ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7984,9 +7984,9 @@ __metadata: languageName: node linkType: hard -"eslint-import-resolver-webpack@npm:0.13.6": - version: 0.13.6 - resolution: "eslint-import-resolver-webpack@npm:0.13.6" +"eslint-import-resolver-webpack@npm:0.13.7": + version: 0.13.7 + resolution: "eslint-import-resolver-webpack@npm:0.13.7" dependencies: array.prototype.find: ^2.2.1 debug: ^3.2.7 @@ -8002,7 +8002,7 @@ __metadata: peerDependencies: eslint-plugin-import: ">=1.4.0" webpack: ">=1.11.0" - checksum: ad10a7fa0f15d9b4d8adf637283ef5a3a7cac6351867215bc4a3738f9adce22c52bde0fef031f2a775611f908605109c9d5085567ffaf600fa7445d1affcdd9a + checksum: 7e7bd7d48c570cb3110b04f9bb7ec6a2f2cfee29471c89a292c5825d3c1209af227310a53e9e9a46d83a8c6eed32bb3ad28f24f5499b25a18d4e21770acfc6fe languageName: node linkType: hard @@ -9733,7 +9733,7 @@ __metadata: eslint-config-airbnb-base: 15.0.0 eslint-config-airbnb-typescript: 17.1.0 eslint-config-prettier: 9.0.0 - eslint-import-resolver-webpack: 0.13.6 + eslint-import-resolver-webpack: 0.13.7 eslint-plugin-disable: 2.0.3 eslint-plugin-import: 2.28.1 eslint-plugin-lit: 1.9.1 From 3de4cfbc00de1cf6cda3f561a35fc7f9ba5cd0f1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 23 Aug 2023 10:14:39 +0200 Subject: [PATCH 139/182] Update dependency marked to v7.0.4 (#17680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 77d5ba56d5..f202a6fc73 100644 --- a/package.json +++ b/package.json @@ -122,7 +122,7 @@ "leaflet-draw": "1.0.4", "lit": "2.8.0", "luxon": "3.4.0", - "marked": "7.0.3", + "marked": "7.0.4", "memoize-one": "6.0.0", "node-vibrant": "3.2.1-alpha.1", "proxy-polyfill": "0.3.2", diff --git a/yarn.lock b/yarn.lock index 48b5ab61ee..6813c5a3bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9770,7 +9770,7 @@ __metadata: luxon: 3.4.0 magic-string: 0.30.2 map-stream: 0.0.7 - marked: 7.0.3 + marked: 7.0.4 memoize-one: 6.0.0 mocha: 10.2.0 node-vibrant: 3.2.1-alpha.1 @@ -11751,12 +11751,12 @@ __metadata: languageName: node linkType: hard -"marked@npm:7.0.3": - version: 7.0.3 - resolution: "marked@npm:7.0.3" +"marked@npm:7.0.4": + version: 7.0.4 + resolution: "marked@npm:7.0.4" bin: marked: bin/marked.js - checksum: 423a0bd75a6bc072d1e3bcdb888c0838dcd8468c1d2e6fc9b9e45e0f6bf39ecbfe01a32758e33b3ef8dffc9328ee63de5f4471476cfa563fc4e368d164b8eb9a + checksum: e69cc5635d13aec3486340ee97b059a360c429cbbdbdbdf6d23cdf79b6f5e5edc3f3d649763b3482261705aa91e5f08b14f91dd85be1452a98b65230485d7f55 languageName: node linkType: hard From 52c12b5659437565daf170e8bcd9811f56ad5860 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 23 Aug 2023 10:52:44 +0200 Subject: [PATCH 140/182] Simplify onboarding integrations page (#17671) --- src/onboarding/action-badge.ts | 85 ----------- src/onboarding/integration-badge.ts | 24 ---- src/onboarding/onboarding-integrations.ts | 163 +++++++++------------- src/translations/en.json | 5 +- 4 files changed, 71 insertions(+), 206 deletions(-) delete mode 100644 src/onboarding/action-badge.ts diff --git a/src/onboarding/action-badge.ts b/src/onboarding/action-badge.ts deleted file mode 100644 index c53f57ca52..0000000000 --- a/src/onboarding/action-badge.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; -import { customElement, property } from "lit/decorators"; -import "../components/ha-svg-icon"; - -@customElement("action-badge") -class ActionBadge extends LitElement { - @property() public icon!: string; - - @property() public title!: string; - - @property() public badgeIcon?: string; - - @property({ type: Boolean, reflect: true }) public clickable = false; - - protected render(): TemplateResult { - return html` -
- - ${this.badgeIcon - ? html`` - : ""} -
-
${this.title}
- `; - } - - static get styles(): CSSResultGroup { - return css` - :host { - display: inline-flex; - flex-direction: column; - text-align: center; - color: var(--primary-text-color); - } - - :host([clickable]) { - color: var(--primary-text-color); - } - - .icon { - position: relative; - box-sizing: border-box; - margin: 0 auto 8px; - height: 40px; - width: 40px; - border-radius: 50%; - border: 1px solid var(--secondary-text-color); - display: flex; - align-items: center; - justify-content: center; - } - - :host([clickable]) .icon { - border-color: var(--primary-color); - border-width: 2px; - } - - .badge { - position: absolute; - color: var(--primary-color); - bottom: -5px; - right: -5px; - background-color: white; - border-radius: 50%; - width: 18px; - display: block; - height: 18px; - } - - .title { - min-height: 2.3em; - word-break: break-word; - } - `; - } -} - -declare global { - interface HTMLElementTagNameMap { - "action-badge": ActionBadge; - } -} diff --git a/src/onboarding/integration-badge.ts b/src/onboarding/integration-badge.ts index fc440b1589..e888460046 100644 --- a/src/onboarding/integration-badge.ts +++ b/src/onboarding/integration-badge.ts @@ -9,8 +9,6 @@ class IntegrationBadge extends LitElement { @property() public title!: string; - @property() public badgeIcon?: string; - @property({ type: Boolean }) public darkOptimizedIcon?: boolean; @property({ type: Boolean, reflect: true }) public clickable = false; @@ -27,12 +25,6 @@ class IntegrationBadge extends LitElement { })} referrerpolicy="no-referrer" /> - ${this.badgeIcon - ? html`` - : ""}
${this.title}
`; @@ -47,10 +39,6 @@ class IntegrationBadge extends LitElement { color: var(--primary-text-color); } - :host([clickable]) { - color: var(--primary-text-color); - } - img { max-width: 100%; max-height: 100%; @@ -66,18 +54,6 @@ class IntegrationBadge extends LitElement { justify-content: center; } - .badge { - position: absolute; - color: white; - bottom: -7px; - right: -10px; - background-color: var(--label-badge-green); - border-radius: 50%; - display: block; - --mdc-icon-size: 18px; - border: 2px solid white; - } - .title { min-height: 2.3em; word-break: break-word; diff --git a/src/onboarding/onboarding-integrations.ts b/src/onboarding/onboarding-integrations.ts index c2c145359a..6475ae6695 100644 --- a/src/onboarding/onboarding-integrations.ts +++ b/src/onboarding/onboarding-integrations.ts @@ -1,14 +1,12 @@ import "@material/mwc-button/mwc-button"; -import { mdiCheck, mdiDotsHorizontal } from "@mdi/js"; import { UnsubscribeFunc } from "home-assistant-js-websocket"; import { - css, CSSResultGroup, - html, LitElement, - nothing, PropertyValues, - TemplateResult, + css, + html, + nothing, } from "lit"; import { customElement, property, state } from "lit/decorators"; import { isComponentLoaded } from "../common/config/is_component_loaded"; @@ -16,22 +14,12 @@ import { fireEvent } from "../common/dom/fire_event"; import { stringCompare } from "../common/string/compare"; import { LocalizeFunc } from "../common/translations/localize"; import { ConfigEntry, subscribeConfigEntries } from "../data/config_entries"; -import { - getConfigFlowInProgressCollection, - localizeConfigFlowTitle, - subscribeConfigFlowInProgress, -} from "../data/config_flow"; +import { subscribeConfigFlowInProgress } from "../data/config_flow"; import { DataEntryFlowProgress } from "../data/data_entry_flow"; import { domainToName } from "../data/integration"; import { scanUSBDevices } from "../data/usb"; -import { - loadConfigFlowDialog, - showConfigFlowDialog, -} from "../dialogs/config-flow/show-dialog-config-flow"; import { SubscribeMixin } from "../mixins/subscribe-mixin"; -import { showAddIntegrationDialog } from "../panels/config/integrations/show-add-integration-dialog"; import { HomeAssistant } from "../types"; -import "./action-badge"; import "./integration-badge"; const HIDDEN_DOMAINS = new Set([ @@ -63,7 +51,7 @@ class OnboardingIntegrations extends SubscribeMixin(LitElement) { integrations.add(flow.handler); } } - this.hass.loadBackendTranslation("config", Array.from(integrations)); + this.hass.loadBackendTranslation("title", Array.from(integrations)); }), subscribeConfigEntries( this.hass, @@ -109,62 +97,65 @@ class OnboardingIntegrations extends SubscribeMixin(LitElement) { return nothing; } // Render discovered and existing entries together sorted by localized title. - const entries: Array<[string, TemplateResult]> = this._entries.map( - (entry) => { - const title = - entry.title || - domainToName(this.hass.localize, entry.domain) || - entry.domain; - return [ - title, - html` - - `, - ]; - } + const entries: Array<[string, string]> = this._entries.map((entry) => [ + entry.domain, + domainToName(this.hass.localize, entry.domain), + ]); + const discovered: Array<[string, string]> = this._discovered.map((flow) => [ + flow.handler, + domainToName(this.hass.localize, flow.handler), + ]); + let domains = [...entries, ...discovered].sort((a, b) => + stringCompare(a[0], b[0], this.hass.locale.language) ); - const discovered: Array<[string, TemplateResult]> = this._discovered.map( - (flow) => { - const title = localizeConfigFlowTitle(this.hass.localize, flow); - return [ - title, - html` - - `, - ]; + + const foundDevices = domains.length; + + if (domains.length > 12) { + const uniqueDomains: Set = new Set(); + domains.forEach(([domain]) => { + uniqueDomains.add(domain); + }); + if (uniqueDomains.size < domains.length) { + domains = domains.filter(([domain]) => { + if (uniqueDomains.has(domain)) { + uniqueDomains.delete(domain); + return true; + } + return false; + }); } - ); - const content = [...entries, ...discovered] - .sort((a, b) => stringCompare(a[0], b[0], this.hass.locale.language)) - .map((item) => item[1]); + if (domains.length > 12) { + domains = domains.slice(0, 11); + } + } return html` +

+ ${this.onboardingLocalize( + "ui.panel.page-onboarding.integration.header" + )} +

${this.onboardingLocalize("ui.panel.page-onboarding.integration.intro")}

- ${content} - + ${domains.map( + ([domain, title]) => + html`` + )} + ${foundDevices > domains.length + ? html`
+ ${this.onboardingLocalize( + "ui.panel.page-onboarding.integration.more_integrations", + { count: foundDevices - domains.length } + )} +
` + : nothing}
${this.title}
`; @@ -39,6 +47,10 @@ class IntegrationBadge extends LitElement { color: var(--primary-text-color); } + :host([clickable]) { + color: var(--primary-text-color); + } + img { max-width: 100%; max-height: 100%; @@ -54,6 +66,18 @@ class IntegrationBadge extends LitElement { justify-content: center; } + .badge { + position: absolute; + color: white; + bottom: -7px; + right: -10px; + background-color: var(--label-badge-green); + border-radius: 50%; + display: block; + --mdc-icon-size: 18px; + border: 2px solid white; + } + .title { min-height: 2.3em; word-break: break-word; diff --git a/src/onboarding/onboarding-integrations.ts b/src/onboarding/onboarding-integrations.ts index 6475ae6695..c2c145359a 100644 --- a/src/onboarding/onboarding-integrations.ts +++ b/src/onboarding/onboarding-integrations.ts @@ -1,12 +1,14 @@ import "@material/mwc-button/mwc-button"; +import { mdiCheck, mdiDotsHorizontal } from "@mdi/js"; import { UnsubscribeFunc } from "home-assistant-js-websocket"; import { - CSSResultGroup, - LitElement, - PropertyValues, css, + CSSResultGroup, html, + LitElement, nothing, + PropertyValues, + TemplateResult, } from "lit"; import { customElement, property, state } from "lit/decorators"; import { isComponentLoaded } from "../common/config/is_component_loaded"; @@ -14,12 +16,22 @@ import { fireEvent } from "../common/dom/fire_event"; import { stringCompare } from "../common/string/compare"; import { LocalizeFunc } from "../common/translations/localize"; import { ConfigEntry, subscribeConfigEntries } from "../data/config_entries"; -import { subscribeConfigFlowInProgress } from "../data/config_flow"; +import { + getConfigFlowInProgressCollection, + localizeConfigFlowTitle, + subscribeConfigFlowInProgress, +} from "../data/config_flow"; import { DataEntryFlowProgress } from "../data/data_entry_flow"; import { domainToName } from "../data/integration"; import { scanUSBDevices } from "../data/usb"; +import { + loadConfigFlowDialog, + showConfigFlowDialog, +} from "../dialogs/config-flow/show-dialog-config-flow"; import { SubscribeMixin } from "../mixins/subscribe-mixin"; +import { showAddIntegrationDialog } from "../panels/config/integrations/show-add-integration-dialog"; import { HomeAssistant } from "../types"; +import "./action-badge"; import "./integration-badge"; const HIDDEN_DOMAINS = new Set([ @@ -51,7 +63,7 @@ class OnboardingIntegrations extends SubscribeMixin(LitElement) { integrations.add(flow.handler); } } - this.hass.loadBackendTranslation("title", Array.from(integrations)); + this.hass.loadBackendTranslation("config", Array.from(integrations)); }), subscribeConfigEntries( this.hass, @@ -97,65 +109,62 @@ class OnboardingIntegrations extends SubscribeMixin(LitElement) { return nothing; } // Render discovered and existing entries together sorted by localized title. - const entries: Array<[string, string]> = this._entries.map((entry) => [ - entry.domain, - domainToName(this.hass.localize, entry.domain), - ]); - const discovered: Array<[string, string]> = this._discovered.map((flow) => [ - flow.handler, - domainToName(this.hass.localize, flow.handler), - ]); - let domains = [...entries, ...discovered].sort((a, b) => - stringCompare(a[0], b[0], this.hass.locale.language) + const entries: Array<[string, TemplateResult]> = this._entries.map( + (entry) => { + const title = + entry.title || + domainToName(this.hass.localize, entry.domain) || + entry.domain; + return [ + title, + html` + + `, + ]; + } ); - - const foundDevices = domains.length; - - if (domains.length > 12) { - const uniqueDomains: Set = new Set(); - domains.forEach(([domain]) => { - uniqueDomains.add(domain); - }); - if (uniqueDomains.size < domains.length) { - domains = domains.filter(([domain]) => { - if (uniqueDomains.has(domain)) { - uniqueDomains.delete(domain); - return true; - } - return false; - }); + const discovered: Array<[string, TemplateResult]> = this._discovered.map( + (flow) => { + const title = localizeConfigFlowTitle(this.hass.localize, flow); + return [ + title, + html` + + `, + ]; } - if (domains.length > 12) { - domains = domains.slice(0, 11); - } - } + ); + const content = [...entries, ...discovered] + .sort((a, b) => stringCompare(a[0], b[0], this.hass.locale.language)) + .map((item) => item[1]); return html` -

- ${this.onboardingLocalize( - "ui.panel.page-onboarding.integration.header" - )} -

${this.onboardingLocalize("ui.panel.page-onboarding.integration.intro")}

- ${domains.map( - ([domain, title]) => - html`` - )} - ${foundDevices > domains.length - ? html`
- ${this.onboardingLocalize( - "ui.panel.page-onboarding.integration.more_integrations", - { count: foundDevices - domains.length } - )} -
` - : nothing} + ${content} +
- ${this._options.length - ? this._options.map( - (option, index) => html` - - ${option} - - - ` - ) - : html` - - ${this.hass!.localize( - "ui.dialogs.helper_settings.input_select.no_options" - )} - - `} + + ${this._options.length + ? repeat( + this._options, + (option) => option, + (option, index) => html` + +
+
+ +
+ ${option} +
+ +
+ ` + ) + : html` + + ${this.hass!.localize( + "ui.dialogs.helper_settings.input_select.no_options" + )} + + `} +
- ${this.hass!.localize( "ui.dialogs.helper_settings.input_select.add" - )}
@@ -190,6 +258,7 @@ class HaInputSelectForm extends LitElement { static get styles(): CSSResultGroup { return [ haStyle, + sortableStyles, css` .form { color: var(--primary-text-color); @@ -199,6 +268,10 @@ class HaInputSelectForm extends LitElement { border-radius: 4px; margin-top: 4px; --mdc-icon-button-size: 24px; + --mdc-ripple-color: transparent; + --mdc-list-side-padding: 16px; + cursor: default; + background-color: var(--card-background-color); } mwc-button { margin-left: 8px; @@ -214,6 +287,18 @@ class HaInputSelectForm extends LitElement { margin-top: 8px; margin-bottom: 8px; } + .handle { + cursor: move; + padding-right: 12px; + } + .handle ha-svg-icon { + pointer-events: none; + height: 24px; + } + .optioncontent { + display: flex; + align-items: center; + } `, ]; } From 034ce56da5859557f49f63d2bc60707031490576 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Wed, 30 Aug 2023 02:42:51 -0700 Subject: [PATCH 168/182] Updates to alarm panel card configuration (#17598) * Updates to alarm panel card configuration * changes from feedback --- .../lovelace/cards/hui-alarm-panel-card.ts | 53 +++++++++--- src/panels/lovelace/cards/types.ts | 9 ++- .../hui-alarm-panel-card-editor.ts | 81 +++++++++++++++---- 3 files changed, 116 insertions(+), 27 deletions(-) diff --git a/src/panels/lovelace/cards/hui-alarm-panel-card.ts b/src/panels/lovelace/cards/hui-alarm-panel-card.ts index b35235bd2d..34585865c6 100644 --- a/src/panels/lovelace/cards/hui-alarm-panel-card.ts +++ b/src/panels/lovelace/cards/hui-alarm-panel-card.ts @@ -9,6 +9,7 @@ import { import { customElement, property, query, state } from "lit/decorators"; import { classMap } from "lit/directives/class-map"; import { styleMap } from "lit/directives/style-map"; +import { HassEntity } from "home-assistant-js-websocket"; import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element"; import { fireEvent } from "../../../common/dom/fire_event"; import { alarmPanelIcon } from "../../../common/entity/alarm_panel_icon"; @@ -20,16 +21,48 @@ import type { HaTextField } from "../../../components/ha-textfield"; import { callAlarmAction, FORMAT_NUMBER, + ALARM_MODES, + AlarmMode, } from "../../../data/alarm_control_panel"; import { UNAVAILABLE } from "../../../data/entity"; import type { HomeAssistant } from "../../../types"; import { findEntities } from "../common/find-entities"; import { createEntityNotFoundWarning } from "../components/hui-warning"; import type { LovelaceCard } from "../types"; -import { AlarmPanelCardConfig } from "./types"; +import { AlarmPanelCardConfig, AlarmPanelCardConfigState } from "./types"; +import { supportsFeature } from "../../../common/entity/supports-feature"; const BUTTONS = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "", "0", "clear"]; +export const DEFAULT_STATES = [ + "arm_home", + "arm_away", +] as AlarmPanelCardConfigState[]; + +export const ALARM_MODE_STATE_MAP: Record< + AlarmPanelCardConfigState, + AlarmMode +> = { + arm_home: "armed_home", + arm_away: "armed_away", + arm_night: "armed_night", + arm_vacation: "armed_vacation", + arm_custom_bypass: "armed_custom_bypass", +}; + +export const filterSupportedAlarmStates = ( + stateObj: HassEntity | undefined, + states: AlarmPanelCardConfigState[] +): AlarmPanelCardConfigState[] => + states.filter( + (s) => + stateObj && + supportsFeature( + stateObj, + ALARM_MODES[ALARM_MODE_STATE_MAP[s]].feature || 0 + ) + ); + @customElement("hui-alarm-panel-card") class HuiAlarmPanelCard extends LitElement implements LovelaceCard { public static async getConfigElement() { @@ -52,10 +85,13 @@ class HuiAlarmPanelCard extends LitElement implements LovelaceCard { includeDomains ); + const entity = foundEntities[0] || ""; + const stateObj = hass.states[entity]; + return { type: "alarm-panel", - states: ["arm_home", "arm_away"], - entity: foundEntities[0] || "", + states: filterSupportedAlarmStates(stateObj, DEFAULT_STATES), + entity, }; } @@ -86,11 +122,7 @@ class HuiAlarmPanelCard extends LitElement implements LovelaceCard { throw new Error("Invalid configuration"); } - const defaults = { - states: ["arm_away", "arm_home"] as const, - }; - - this._config = { ...defaults, ...config }; + this._config = { ...config }; } protected updated(changedProps: PropertyValues): void { @@ -138,6 +170,9 @@ class HuiAlarmPanelCard extends LitElement implements LovelaceCard { return nothing; } const stateObj = this.hass.states[this._config.entity]; + const states = + this._config.states || + filterSupportedAlarmStates(stateObj, DEFAULT_STATES); if (!stateObj) { return html` @@ -170,7 +205,7 @@ class HuiAlarmPanelCard extends LitElement implements LovelaceCard {
${(stateObj.state === "disarmed" - ? this._config.states! + ? states : (["disarm"] as const) ).map( (stateAction) => html` diff --git a/src/panels/lovelace/cards/types.ts b/src/panels/lovelace/cards/types.ts index 0a7c8ee412..7ddeef08a3 100644 --- a/src/panels/lovelace/cards/types.ts +++ b/src/panels/lovelace/cards/types.ts @@ -14,10 +14,17 @@ import { HaDurationData } from "../../../components/ha-duration-input"; import { LovelaceTileFeatureConfig } from "../tile-features/types"; import { ForecastType } from "../../../data/weather"; +export type AlarmPanelCardConfigState = + | "arm_away" + | "arm_home" + | "arm_night" + | "arm_vacation" + | "arm_custom_bypass"; + export interface AlarmPanelCardConfig extends LovelaceCardConfig { entity: string; name?: string; - states?: readonly (keyof TranslationDict["ui"]["card"]["alarm_control_panel"])[]; + states?: AlarmPanelCardConfigState[]; theme?: string; } diff --git a/src/panels/lovelace/editor/config-elements/hui-alarm-panel-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-alarm-panel-card-editor.ts index b70e346018..74ff40fc22 100644 --- a/src/panels/lovelace/editor/config-elements/hui-alarm-panel-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-alarm-panel-card-editor.ts @@ -2,14 +2,25 @@ import { html, LitElement, nothing } from "lit"; import { customElement, property, state } from "lit/decorators"; import memoizeOne from "memoize-one"; import { array, assert, assign, object, optional, string } from "superstruct"; +import { HassEntity } from "home-assistant-js-websocket"; import { fireEvent } from "../../../../common/dom/fire_event"; import type { LocalizeFunc } from "../../../../common/translations/localize"; import "../../../../components/ha-form/ha-form"; import type { SchemaUnion } from "../../../../components/ha-form/types"; import type { HomeAssistant } from "../../../../types"; -import type { AlarmPanelCardConfig } from "../../cards/types"; +import type { + AlarmPanelCardConfig, + AlarmPanelCardConfigState, +} from "../../cards/types"; import type { LovelaceCardEditor } from "../../types"; import { baseLovelaceCardConfig } from "../structs/base-card-struct"; +import { + DEFAULT_STATES, + ALARM_MODE_STATE_MAP, + filterSupportedAlarmStates, +} from "../../cards/hui-alarm-panel-card"; +import { supportsFeature } from "../../../../common/entity/supports-feature"; +import { ALARM_MODES } from "../../../../data/alarm_control_panel"; const cardConfigStruct = assign( baseLovelaceCardConfig, @@ -21,13 +32,7 @@ const cardConfigStruct = assign( }) ); -const states = [ - "arm_home", - "arm_away", - "arm_night", - "arm_vacation", - "arm_custom_bypass", -] as const; +const states = Object.keys(ALARM_MODE_STATE_MAP) as AlarmPanelCardConfigState[]; @customElement("hui-alarm-panel-card-editor") export class HuiAlarmPanelCardEditor @@ -44,7 +49,11 @@ export class HuiAlarmPanelCardEditor } private _schema = memoizeOne( - (localize: LocalizeFunc) => + ( + localize: LocalizeFunc, + stateObj: HassEntity | undefined, + config_states: AlarmPanelCardConfigState[] + ) => [ { name: "entity", @@ -60,12 +69,24 @@ export class HuiAlarmPanelCardEditor ], }, { - type: "multi_select", name: "states", - options: states.map((s) => [ - s, - localize(`ui.card.alarm_control_panel.${s}`), - ]) as [string, string][], + selector: { + select: { + multiple: true, + mode: "list", + options: states.map((s) => ({ + value: s, + label: localize(`ui.card.alarm_control_panel.${s}`), + disabled: + !config_states.includes(s) && + (!stateObj || + !supportsFeature( + stateObj, + ALARM_MODES[ALARM_MODE_STATE_MAP[s]].feature || 0 + )), + })), + }, + }, }, ] as const ); @@ -75,11 +96,18 @@ export class HuiAlarmPanelCardEditor return nothing; } + const stateObj = this.hass.states[this._config.entity]; + const defaultFilteredStates = filterSupportedAlarmStates( + stateObj, + DEFAULT_STATES + ); + const config = { states: defaultFilteredStates, ...this._config }; + return html` @@ -87,7 +115,26 @@ export class HuiAlarmPanelCardEditor } private _valueChanged(ev: CustomEvent): void { - fireEvent(this, "config-changed", { config: ev.detail.value }); + const newConfig = ev.detail.value; + + // Sort states in a consistent order + if (newConfig.states) { + const sortStates = states.filter((s) => newConfig.states.includes(s)); + newConfig.states = sortStates; + } + + // When changing entities, clear any states that the new entity does not support + if (newConfig.states && newConfig.entity !== this._config?.entity) { + const newStateObj = this.hass?.states[newConfig.entity]; + if (newStateObj) { + newConfig.states = filterSupportedAlarmStates( + newStateObj, + newConfig.states + ); + } + } + + fireEvent(this, "config-changed", { config: newConfig }); } private _computeLabelCallback = ( From d350c35c4e555df581bc46709b8fd7fc1ee80427 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 30 Aug 2023 12:56:53 +0200 Subject: [PATCH 169/182] Add preview for template (#17699) --- src/data/ws-templates.ts | 26 ++++ .../previews/flow-preview-template.ts | 114 ++++++++++++++++++ src/dialogs/config-flow/step-flow-form.ts | 9 +- 3 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 src/dialogs/config-flow/previews/flow-preview-template.ts diff --git a/src/data/ws-templates.ts b/src/data/ws-templates.ts index 57bfde655b..3b4256be27 100644 --- a/src/data/ws-templates.ts +++ b/src/data/ws-templates.ts @@ -1,4 +1,5 @@ import { Connection, UnsubscribeFunc } from "home-assistant-js-websocket"; +import { HomeAssistant } from "../types"; export interface RenderTemplateResult { result: string; @@ -12,6 +13,17 @@ interface TemplateListeners { time: boolean; } +export type TemplatePreview = TemplatePreviewState | TemplatePreviewError; + +interface TemplatePreviewState { + state: string; + attributes: Record; +} + +interface TemplatePreviewError { + error: string; +} + export const subscribeRenderTemplate = ( conn: Connection, onChange: (result: RenderTemplateResult) => void, @@ -27,3 +39,17 @@ export const subscribeRenderTemplate = ( type: "render_template", ...params, }); + +export const subscribePreviewTemplate = ( + hass: HomeAssistant, + flow_id: string, + flow_type: "config_flow" | "options_flow", + user_input: Record, + callback: (preview: TemplatePreview) => void +): Promise => + hass.connection.subscribeMessage(callback, { + type: "template/start_preview", + flow_id, + flow_type, + user_input, + }); diff --git a/src/dialogs/config-flow/previews/flow-preview-template.ts b/src/dialogs/config-flow/previews/flow-preview-template.ts new file mode 100644 index 0000000000..44fbe03ff5 --- /dev/null +++ b/src/dialogs/config-flow/previews/flow-preview-template.ts @@ -0,0 +1,114 @@ +import { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket"; +import { LitElement, html } from "lit"; +import { customElement, property, state } from "lit/decorators"; +import { debounce } from "../../../common/util/debounce"; +import { FlowType } from "../../../data/data_entry_flow"; +import { + TemplatePreview, + subscribePreviewTemplate, +} from "../../../data/ws-templates"; +import { HomeAssistant } from "../../../types"; +import "./entity-preview-row"; +import { fireEvent } from "../../../common/dom/fire_event"; + +@customElement("flow-preview-template") +class FlowPreviewTemplate extends LitElement { + @property({ attribute: false }) public hass!: HomeAssistant; + + @property() public flowType!: FlowType; + + public handler!: string; + + @property() public stepId!: string; + + @property() public flowId!: string; + + @property() public stepData!: Record; + + @state() private _preview?: HassEntity; + + @state() private _error?: string; + + private _unsub?: Promise; + + disconnectedCallback(): void { + super.disconnectedCallback(); + if (this._unsub) { + this._unsub.then((unsub) => unsub()); + this._unsub = undefined; + } + } + + willUpdate(changedProps) { + if (changedProps.has("stepData")) { + this._debouncedSubscribePreview(); + } + } + + protected render() { + if (this._error) { + return html`${this._error}`; + } + return html``; + } + + private _setPreview = (preview: TemplatePreview) => { + if ("error" in preview) { + this._error = preview.error; + this._preview = undefined; + return; + } + this._error = undefined; + const now = new Date().toISOString(); + this._preview = { + entity_id: `${this.stepId}.flow_preview`, + last_changed: now, + last_updated: now, + context: { id: "", parent_id: null, user_id: null }, + ...preview, + }; + }; + + private _debouncedSubscribePreview = debounce(() => { + this._subscribePreview(); + }, 250); + + private async _subscribePreview() { + if (this._unsub) { + (await this._unsub)(); + this._unsub = undefined; + } + if (this.flowType === "repair_flow") { + return; + } + try { + this._unsub = subscribePreviewTemplate( + this.hass, + this.flowId, + this.flowType, + this.stepData, + this._setPreview + ); + await this._unsub; + fireEvent(this, "set-flow-errors", { errors: {} }); + } catch (err: any) { + if (typeof err.message === "string") { + this._error = err.message; + } else { + this._error = undefined; + fireEvent(this, "set-flow-errors", err.message); + } + this._unsub = undefined; + this._preview = undefined; + } + } +} + +declare global { + interface HTMLElementTagNameMap { + "flow-preview-template": FlowPreviewTemplate; + } +} diff --git a/src/dialogs/config-flow/step-flow-form.ts b/src/dialogs/config-flow/step-flow-form.ts index eaf09bef98..bffd423ef9 100644 --- a/src/dialogs/config-flow/step-flow-form.ts +++ b/src/dialogs/config-flow/step-flow-form.ts @@ -70,7 +70,7 @@ class StepFlowForm extends LitElement { >
${step.preview - ? html`
+ ? html`

${this.hass.localize( "ui.panel.config.integrations.config_flow.preview" @@ -107,6 +107,10 @@ class StepFlowForm extends LitElement { `; } + private _setError(ev: CustomEvent) { + this.step = { ...this.step, errors: ev.detail }; + } + protected firstUpdated(changedProps: PropertyValues) { super.firstUpdated(changedProps); setTimeout(() => this.shadowRoot!.querySelector("ha-form")!.focus(), 0); @@ -253,6 +257,9 @@ class StepFlowForm extends LitElement { } declare global { + interface HASSDomEvents { + "set-flow-errors": { errors: DataEntryFlowStepForm["errors"] }; + } interface HTMLElementTagNameMap { "step-flow-form": StepFlowForm; } From 2ab67328d4b65b8e8293ecf8749f0bc2a0332282 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 30 Aug 2023 13:24:11 +0200 Subject: [PATCH 170/182] Update upload element (#17654) --- hassio/src/components/hassio-upload-backup.ts | 1 + src/components/ha-file-upload.ts | 372 +++++++++++------- src/components/ha-picture-upload.ts | 89 ++++- .../ha-selector/ha-selector-file.ts | 7 +- .../areas/dialog-area-registry-detail.ts | 19 +- .../dialog-zwave_js-update-firmware-node.ts | 4 +- .../config/person/dialog-person-detail.ts | 4 +- src/translations/en.json | 16 +- 8 files changed, 335 insertions(+), 177 deletions(-) diff --git a/hassio/src/components/hassio-upload-backup.ts b/hassio/src/components/hassio-upload-backup.ts index d40345522e..57046f2818 100644 --- a/hassio/src/components/hassio-upload-backup.ts +++ b/hassio/src/components/hassio-upload-backup.ts @@ -31,6 +31,7 @@ export class HassioUploadBackup extends LitElement { .icon=${mdiFolderUpload} accept="application/x-tar" label="Upload backup" + supports="Supports .TAR files" @file-picked=${this._uploadFile} auto-open-file-dialog > diff --git a/src/components/ha-file-upload.ts b/src/components/ha-file-upload.ts index db6a029bd0..cc0e97a29c 100644 --- a/src/components/ha-file-upload.ts +++ b/src/components/ha-file-upload.ts @@ -1,16 +1,19 @@ -import { styles } from "@material/mwc-textfield/mwc-textfield.css"; -import { mdiClose } from "@mdi/js"; -import { css, html, LitElement, PropertyValues, TemplateResult } from "lit"; +import "@material/mwc-linear-progress/mwc-linear-progress"; +import { mdiDelete, mdiFileUpload } from "@mdi/js"; +import { LitElement, PropertyValues, TemplateResult, css, html } from "lit"; import { customElement, property, query, state } from "lit/decorators"; import { classMap } from "lit/directives/class-map"; import { fireEvent } from "../common/dom/fire_event"; import { HomeAssistant } from "../types"; -import "./ha-circular-progress"; +import "./ha-button"; import "./ha-icon-button"; +import { blankBeforePercent } from "../common/translations/blank_before_percent"; +import { ensureArray } from "../common/array/ensure-array"; +import { bytesToString } from "../util/bytes-to-string"; declare global { interface HASSDomEvents { - "file-picked": { files: FileList }; + "file-picked": { files: File[] }; } } @@ -22,12 +25,22 @@ export class HaFileUpload extends LitElement { @property() public icon?: string; - @property() public label!: string; + @property() public label?: string; - @property() public value: string | TemplateResult | null = null; + @property() public secondary?: string; + + @property() public supports?: string; + + @property() public value?: File | File[] | FileList | string; + + @property({ type: Boolean }) private multiple = false; + + @property({ type: Boolean, reflect: true }) public disabled: boolean = false; @property({ type: Boolean }) private uploading = false; + @property({ type: Number }) private progress?: number; + @property({ type: Boolean, attribute: "auto-open-file-dialog" }) private autoOpenFileDialog = false; @@ -45,72 +58,102 @@ export class HaFileUpload extends LitElement { public render(): TemplateResult { return html` ${this.uploading - ? html`` - : html` - `} `; } @@ -122,7 +165,12 @@ export class HaFileUpload extends LitElement { ev.preventDefault(); ev.stopPropagation(); if (ev.dataTransfer?.files) { - fireEvent(this, "file-picked", { files: ev.dataTransfer.files }); + fireEvent(this, "file-picked", { + files: + this.multiple || ev.dataTransfer.files.length === 1 + ? Array.from(ev.dataTransfer.files) + : [ev.dataTransfer.files[0]], + }); } this._drag = false; } @@ -140,93 +188,121 @@ export class HaFileUpload extends LitElement { } private _handleFilePicked(ev) { + if (ev.target.files.length === 0) { + return; + } + this.value = ev.target.files; fireEvent(this, "file-picked", { files: ev.target.files }); } private _clearValue(ev: Event) { ev.preventDefault(); - this.value = null; this._input!.value = ""; + this.value = undefined; fireEvent(this, "change"); } static get styles() { - return [ - styles, - css` - :host { - display: block; - } - .mdc-text-field--filled { - height: auto; - padding-top: 16px; - cursor: pointer; - } - .mdc-text-field--filled.mdc-text-field--with-trailing-icon { - padding-top: 28px; - } - .mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__icon { - color: var(--secondary-text-color); - } - .mdc-text-field--filled.mdc-text-field--with-trailing-icon - .mdc-text-field__icon { - align-self: flex-end; - } - .mdc-text-field__icon--leading { - margin-bottom: 12px; - inset-inline-start: initial; - inset-inline-end: 0px; - direction: var(--direction); - } - .mdc-text-field--filled .mdc-floating-label--float-above { - transform: scale(0.75); - top: 8px; - } - .mdc-floating-label { - inset-inline-start: 16px !important; - inset-inline-end: initial !important; - direction: var(--direction); - } - .mdc-text-field--filled .mdc-floating-label { - inset-inline-start: 48px !important; - inset-inline-end: initial !important; - direction: var(--direction); - } - .mdc-text-field__icon--trailing { - pointer-events: auto !important; - } - .dragged:before { - position: var(--layout-fit_-_position); - top: var(--layout-fit_-_top); - right: var(--layout-fit_-_right); - bottom: var(--layout-fit_-_bottom); - left: var(--layout-fit_-_left); - background: currentColor; - content: ""; - opacity: var(--dark-divider-opacity); - pointer-events: none; - border-radius: 4px; - } - .value { - width: 100%; - } - input.file { - display: none; - } - img { - max-width: 100%; - max-height: 125px; - } - ha-icon-button { - --mdc-icon-button-size: 24px; - --mdc-icon-size: 20px; - } - ha-circular-progress { - display: block; - text-align-last: center; - } - `, - ]; + return css` + :host { + display: block; + height: 240px; + } + :host([disabled]) { + pointer-events: none; + color: var(--disabled-text-color); + } + .container { + position: relative; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + border: solid 1px + var(--mdc-text-field-idle-line-color, rgba(0, 0, 0, 0.42)); + border-radius: var(--mdc-shape-small, 4px); + height: 100%; + } + label.container { + border: dashed 1px + var(--mdc-text-field-idle-line-color, rgba(0, 0, 0, 0.42)); + cursor: pointer; + } + :host([disabled]) .container { + border-color: var(--disabled-color); + } + label.dragged { + border-color: var(--primary-color); + } + .dragged:before { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: var(--primary-color); + content: ""; + opacity: var(--dark-divider-opacity); + pointer-events: none; + border-radius: var(--mdc-shape-small, 4px); + } + label.value { + cursor: default; + } + label.value.multiple { + justify-content: unset; + overflow: auto; + } + .highlight { + color: var(--primary-color); + } + .row { + display: flex; + width: 100%; + align-items: center; + justify-content: space-between; + padding: 0 16px; + box-sizing: border-box; + } + ha-button { + margin-bottom: 4px; + } + .supports { + color: var(--secondary-text-color); + font-size: 12px; + } + :host([disabled]) .secondary { + color: var(--disabled-text-color); + } + input.file { + display: none; + } + .value { + cursor: pointer; + } + .value ha-svg-icon { + margin-right: 8px; + } + .big-icon { + --mdc-icon-size: 48px; + margin-bottom: 8px; + } + ha-button { + --mdc-button-outline-color: var(--primary-color); + --mdc-icon-button-size: 24px; + } + mwc-linear-progress { + width: 100%; + padding: 16px; + box-sizing: border-box; + } + .header { + font-weight: 500; + } + .progress { + color: var(--secondary-text-color); + } + `; } } diff --git a/src/components/ha-picture-upload.ts b/src/components/ha-picture-upload.ts index 0a21f82ec7..7a23a3b093 100644 --- a/src/components/ha-picture-upload.ts +++ b/src/components/ha-picture-upload.ts @@ -1,5 +1,5 @@ import { mdiImagePlus } from "@mdi/js"; -import { html, LitElement, TemplateResult } from "lit"; +import { LitElement, TemplateResult, css, html } from "lit"; import { customElement, property, state } from "lit/decorators"; import { fireEvent } from "../common/dom/fire_event"; import { createImage, generateImageThumbnailUrl } from "../data/image_upload"; @@ -9,6 +9,7 @@ import { showImageCropperDialog, } from "../dialogs/image-cropper-dialog/show-image-cropper-dialog"; import { HomeAssistant } from "../types"; +import "./ha-button"; import "./ha-circular-progress"; import "./ha-file-upload"; @@ -20,6 +21,12 @@ export class HaPictureUpload extends LitElement { @property() public label?: string; + @property() public secondary?: string; + + @property() public supports?: string; + + @property() public currentImageAltText?: string; + @property({ type: Boolean }) public crop = false; @property({ attribute: false }) public cropOptions?: CropOptions; @@ -29,19 +36,44 @@ export class HaPictureUpload extends LitElement { @state() private _uploading = false; public render(): TemplateResult { - return html` - ` : ""} - @file-picked=${this._handleFilePicked} - @change=${this._handleFileCleared} - accept="image/png, image/jpeg, image/gif" - > - `; + if (!this.value) { + return html` + + `; + } + return html`
+
+ ${this.currentImageAltText + + +
+
`; + } + + private _handleChangeClick() { + this.value = null; + fireEvent(this, "change"); } private async _handleFilePicked(ev) { @@ -100,6 +132,35 @@ export class HaPictureUpload extends LitElement { this._uploading = false; } } + + static get styles() { + return css` + :host { + display: block; + height: 240px; + } + ha-file-upload { + height: 100%; + } + .center-vertical { + display: flex; + align-items: center; + height: 100%; + } + .value { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + } + img { + max-width: 100%; + max-height: 200px; + margin-bottom: 4px; + border-radius: var(--file-upload-image-border-radius); + } + `; + } } declare global { diff --git a/src/components/ha-selector/ha-selector-file.ts b/src/components/ha-selector/ha-selector-file.ts index f46ca12696..2024d04b54 100644 --- a/src/components/ha-selector/ha-selector-file.ts +++ b/src/components/ha-selector/ha-selector-file.ts @@ -37,9 +37,12 @@ export class HaFileSelector extends LitElement { .label=${this.label} .required=${this.required} .disabled=${this.disabled} - .helper=${this.helper} + .supports=${this.helper} .uploading=${this._busy} - .value=${this.value ? this._filename?.name || "Unknown file" : ""} + .value=${this.value + ? this._filename?.name || + this.hass.localize("ui.components.selectors.file.unknown_file") + : undefined} @file-picked=${this._uploadFile} @change=${this._removeFile} > diff --git a/src/panels/config/areas/dialog-area-registry-detail.ts b/src/panels/config/areas/dialog-area-registry-detail.ts index 4b2d913413..9a1bd141e6 100644 --- a/src/panels/config/areas/dialog-area-registry-detail.ts +++ b/src/panels/config/areas/dialog-area-registry-detail.ts @@ -100,6 +100,14 @@ class DialogAreaDetail extends LitElement { dialogInitialFocus > + +
${this.hass.localize( "ui.panel.config.areas.editor.aliases_section" @@ -132,14 +140,6 @@ class DialogAreaDetail extends LitElement { "ui.panel.config.areas.editor.aliases_description" )}
- -

${entry @@ -229,7 +229,8 @@ class DialogAreaDetail extends LitElement { return [ haStyleDialog, css` - ha-textfield { + ha-textfield, + ha-picture-upload { display: block; margin-bottom: 16px; } diff --git a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-update-firmware-node.ts b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-update-firmware-node.ts index 68d0ff8235..b154162f83 100644 --- a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-update-firmware-node.ts +++ b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-update-firmware-node.ts @@ -110,10 +110,10 @@ class DialogZWaveJSUpdateFirmwareNode extends LitElement { .hass=${this.hass} .uploading=${this._uploading} .icon=${mdiFileUpload} - label=${this._firmwareFile?.name ?? - this.hass.localize( + .label=${this.hass.localize( "ui.panel.config.zwave_js.update_firmware.upload_firmware" )} + .value=${this._firmwareFile} @file-picked=${this._uploadFile} > ${this._nodeStatus.is_controller_node diff --git a/src/panels/config/person/dialog-person-detail.ts b/src/panels/config/person/dialog-person-detail.ts index 8aee5cb25f..9273ea02f8 100644 --- a/src/panels/config/person/dialog-person-detail.ts +++ b/src/panels/config/person/dialog-person-detail.ts @@ -126,6 +126,7 @@ class DialogPersonDetail extends LitElement { )} required > + Date: Wed, 30 Aug 2023 13:24:25 +0200 Subject: [PATCH 171/182] Update onboarding (#17734) Co-authored-by: Paul Bottein --- .../dialogs/backup/dialog-hassio-backup.ts | 5 +- .../backup/show-dialog-hassio-backup.ts | 1 + public/static/images/logo_discord.png | Bin 0 -> 1298 bytes public/static/images/logo_twitter.png | Bin 0 -> 1201 bytes src/auth/ha-authorize.ts | 4 +- src/components/ha-dialog.ts | 4 +- src/components/ha-language-picker.ts | 40 +- src/components/ha-select.ts | 3 + src/components/language-datalist.ts | 15 - src/html/onboarding.html.template | 50 +- src/mixins/lit-localize-lite-mixin.ts | 27 +- src/onboarding/action-badge.ts | 85 - src/onboarding/dialogs/app-dialog.ts | 6759 +++++++++++++++++ src/onboarding/dialogs/community-dialog.ts | 106 + src/onboarding/dialogs/show-app-dialog.ts | 15 + .../dialogs/show-community-dialog.ts | 15 + src/onboarding/ha-onboarding.ts | 205 +- src/onboarding/integration-badge.ts | 24 - src/onboarding/onboarding-analytics.ts | 60 +- src/onboarding/onboarding-core-config.ts | 314 +- src/onboarding/onboarding-create-user.ts | 70 +- src/onboarding/onboarding-integrations.ts | 185 +- src/onboarding/onboarding-loading.ts | 2 +- src/onboarding/onboarding-location.ts | 308 +- src/onboarding/onboarding-name.ts | 111 - src/onboarding/onboarding-restore-backup.ts | 69 +- src/onboarding/onboarding-welcome-link.ts | 103 + src/onboarding/onboarding-welcome-links.ts | 84 + src/onboarding/onboarding-welcome.ts | 79 + src/onboarding/particles.ts | 15 +- src/onboarding/styles.ts | 19 + src/translations/en.json | 36 +- 32 files changed, 7866 insertions(+), 947 deletions(-) create mode 100644 public/static/images/logo_discord.png create mode 100644 public/static/images/logo_twitter.png delete mode 100644 src/components/language-datalist.ts delete mode 100644 src/onboarding/action-badge.ts create mode 100644 src/onboarding/dialogs/app-dialog.ts create mode 100644 src/onboarding/dialogs/community-dialog.ts create mode 100644 src/onboarding/dialogs/show-app-dialog.ts create mode 100644 src/onboarding/dialogs/show-community-dialog.ts delete mode 100644 src/onboarding/onboarding-name.ts create mode 100644 src/onboarding/onboarding-welcome-link.ts create mode 100644 src/onboarding/onboarding-welcome-links.ts create mode 100644 src/onboarding/onboarding-welcome.ts create mode 100644 src/onboarding/styles.ts diff --git a/hassio/src/dialogs/backup/dialog-hassio-backup.ts b/hassio/src/dialogs/backup/dialog-hassio-backup.ts index 230ecc1f22..fbf1edc46f 100644 --- a/hassio/src/dialogs/backup/dialog-hassio-backup.ts +++ b/hassio/src/dialogs/backup/dialog-hassio-backup.ts @@ -173,6 +173,7 @@ class HassioBackupDialog private async _restoreClicked() { const backupDetails = this._backupContent.backupDetails(); this._restoringBackup = true; + this._dialogParams?.onRestoring?.(); if (this._backupContent.backupType === "full") { await this._fullRestoreClicked(backupDetails); } else { @@ -219,7 +220,7 @@ class HassioBackupDialog this._error = error.body.message; } } else { - fireEvent(this, "restoring"); + this._dialogParams?.onRestoring?.(); await fetch(`/api/hassio/backups/${this._backup!.slug}/restore/partial`, { method: "POST", body: JSON.stringify(backupDetails), @@ -268,7 +269,7 @@ class HassioBackupDialog } ); } else { - fireEvent(this, "restoring"); + this._dialogParams?.onRestoring?.(); fetch(`/api/hassio/backups/${this._backup!.slug}/restore/full`, { method: "POST", body: JSON.stringify(backupDetails), diff --git a/hassio/src/dialogs/backup/show-dialog-hassio-backup.ts b/hassio/src/dialogs/backup/show-dialog-hassio-backup.ts index 39c438e217..42f00da445 100644 --- a/hassio/src/dialogs/backup/show-dialog-hassio-backup.ts +++ b/hassio/src/dialogs/backup/show-dialog-hassio-backup.ts @@ -5,6 +5,7 @@ import { Supervisor } from "../../../../src/data/supervisor/supervisor"; export interface HassioBackupDialogParams { slug: string; onDelete?: () => void; + onRestoring?: () => void; onboarding?: boolean; supervisor?: Supervisor; localize?: LocalizeFunc; diff --git a/public/static/images/logo_discord.png b/public/static/images/logo_discord.png new file mode 100644 index 0000000000000000000000000000000000000000..24e567e1eba2331f522e0494f17b027b41a9b8af GIT binary patch literal 1298 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 N5I`XM)%#G={{!ySZnppc literal 0 HcmV?d00001 diff --git a/src/auth/ha-authorize.ts b/src/auth/ha-authorize.ts index 67313d4ffa..9778edfc0a 100644 --- a/src/auth/ha-authorize.ts +++ b/src/auth/ha-authorize.ts @@ -35,6 +35,8 @@ export class HaAuthorize extends litLocalizeLiteMixin(LitElement) { @property() public oauth2State?: string; + @property() public translationFragment = "page-authorize"; + @state() private _authProvider?: AuthProvider; @state() private _authProviders?: AuthProvider[]; @@ -45,7 +47,6 @@ export class HaAuthorize extends litLocalizeLiteMixin(LitElement) { constructor() { super(); - this.translationFragment = "page-authorize"; const query = extractSearchParamsObject() as AuthUrlSearchParams; if (query.client_id) { this.clientId = query.client_id; @@ -102,7 +103,6 @@ export class HaAuthorize extends litLocalizeLiteMixin(LitElement) { : nothing} html`
${title}
option.value === this.value @@ -78,11 +79,11 @@ export class HaLanguagePicker extends LitElement { } private _getLanguagesOptions = memoizeOne( - (languages: string[], locale: FrontendLocaleData, nativeName: boolean) => { + (languages: string[], nativeName: boolean, locale?: FrontendLocaleData) => { let options: { label: string; value: string }[] = []; if (nativeName) { - const translations = this.hass.translationMetadata.translations; + const translations = translationMetadata.translations; options = languages.map((lang) => { let label = translations[lang]?.nativeName; if (!label) { @@ -101,14 +102,14 @@ export class HaLanguagePicker extends LitElement { label, }; }); - } else { + } else if (locale) { options = languages.map((lang) => ({ value: lang, label: formatLanguageCode(lang, locale), })); } - if (!this.noSort) { + if (!this.noSort && locale) { options.sort((a, b) => caseInsensitiveStringCompare(a.label, b.label, locale.language) ); @@ -118,20 +119,14 @@ export class HaLanguagePicker extends LitElement { ); private _computeDefaultLanguageOptions() { - if (!this.hass.translationMetadata?.translations) { - return; - } - - this._defaultLanguages = Object.keys( - this.hass.translationMetadata.translations - ); + this._defaultLanguages = Object.keys(translationMetadata.translations); } protected render() { const languageOptions = this._getLanguagesOptions( this.languages ?? this._defaultLanguages, - this.hass.locale, - this.nativeName + this.nativeName, + this.hass?.locale ); const value = @@ -139,9 +134,10 @@ export class HaLanguagePicker extends LitElement { return html` ${languageOptions.length === 0 ? html`${this.hass.localize( + >${this.hass?.localize( "ui.components.language-picker.no_languages" - )}` : languageOptions.map( (option) => html` @@ -176,7 +172,7 @@ export class HaLanguagePicker extends LitElement { private _changed(ev): void { const target = ev.target as HaSelect; - if (!this.hass || target.value === "" || target.value === this.value) { + if (target.value === "" || target.value === this.value) { return; } this.value = target.value; diff --git a/src/components/ha-select.ts b/src/components/ha-select.ts index 7471149051..bb3cfb4ae7 100644 --- a/src/components/ha-select.ts +++ b/src/components/ha-select.ts @@ -47,6 +47,9 @@ export class HaSelect extends SelectBase { .mdc-select__anchor { width: var(--ha-select-min-width, 200px); } + .mdc-select--filled .mdc-select__anchor { + height: var(--ha-select-height, 56px); + } .mdc-select--filled .mdc-floating-label { inset-inline-start: 12px; inset-inline-end: initial; diff --git a/src/components/language-datalist.ts b/src/components/language-datalist.ts deleted file mode 100644 index bac8b44c9c..0000000000 --- a/src/components/language-datalist.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { HomeAssistant } from "../types"; - -export const createLanguageListEl = (hass: HomeAssistant) => { - const list = document.createElement("datalist"); - list.id = "languages"; - for (const [language, metadata] of Object.entries( - hass.translationMetadata.translations - )) { - const option = document.createElement("option"); - option.value = language; - option.innerText = metadata.nativeName; - list.appendChild(option); - } - return list; -}; diff --git a/src/html/onboarding.html.template b/src/html/onboarding.html.template index 1824f4727b..9f89da79f0 100644 --- a/src/html/onboarding.html.template +++ b/src/html/onboarding.html.template @@ -6,57 +6,40 @@ <%= renderTemplate("_style_base.html.template") %> @@ -64,8 +47,7 @@
- - Home Assistant + Home Assistant
diff --git a/src/mixins/lit-localize-lite-mixin.ts b/src/mixins/lit-localize-lite-mixin.ts index ecfd84957d..2259a23dff 100644 --- a/src/mixins/lit-localize-lite-mixin.ts +++ b/src/mixins/lit-localize-lite-mixin.ts @@ -1,5 +1,5 @@ import { LitElement, PropertyValues } from "lit"; -import { property } from "lit/decorators"; +import { property, state } from "lit/decorators"; import { computeLocalize, LocalizeFunc } from "../common/translations/localize"; import { Constructor, Resources } from "../types"; import { getLocalLanguage, getTranslation } from "../util/common-translation"; @@ -15,13 +15,13 @@ export const litLocalizeLiteMixin = >( // Initialized to empty will prevent undefined errors if called before connected to DOM. @property() public localize: LocalizeFunc = empty; - @property() public resources?: Resources; - // Use browser language setup before login. @property() public language?: string = getLocalLanguage(); @property() public translationFragment?: string; + @state() private _resources?: Resources; + public connectedCallback(): void { super.connectedCallback(); this._initializeLocalizeLite(); @@ -35,22 +35,27 @@ export const litLocalizeLiteMixin = >( ); } - protected updated(changedProperties: PropertyValues) { - super.updated(changedProperties); + protected willUpdate(changedProperties: PropertyValues) { + super.willUpdate(changedProperties); + if (changedProperties.get("language")) { + this._resources = undefined; + this._initializeLocalizeLite(); + } + if (changedProperties.get("translationFragment")) { this._initializeLocalizeLite(); } if ( this.language && - this.resources && + this._resources && (changedProperties.has("language") || - changedProperties.has("resources")) + changedProperties.has("_resources")) ) { computeLocalize( this.constructor.prototype, this.language, - this.resources + this._resources ).then((localize) => { this.localize = localize; }); @@ -58,7 +63,7 @@ export const litLocalizeLiteMixin = >( } protected async _initializeLocalizeLite() { - if (this.resources) { + if (this._resources) { return; } @@ -68,7 +73,7 @@ export const litLocalizeLiteMixin = >( if (__DEV__) { setTimeout( () => - !this.resources && + !this._resources && // eslint-disable-next-line console.error( "Forgot to pass in resources or set translationFragment for", @@ -84,7 +89,7 @@ export const litLocalizeLiteMixin = >( this.translationFragment!, this.language! ); - this.resources = { + this._resources = { [this.language!]: data, }; } diff --git a/src/onboarding/action-badge.ts b/src/onboarding/action-badge.ts deleted file mode 100644 index c53f57ca52..0000000000 --- a/src/onboarding/action-badge.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; -import { customElement, property } from "lit/decorators"; -import "../components/ha-svg-icon"; - -@customElement("action-badge") -class ActionBadge extends LitElement { - @property() public icon!: string; - - @property() public title!: string; - - @property() public badgeIcon?: string; - - @property({ type: Boolean, reflect: true }) public clickable = false; - - protected render(): TemplateResult { - return html` -
- - ${this.badgeIcon - ? html`` - : ""} -
-
${this.title}
- `; - } - - static get styles(): CSSResultGroup { - return css` - :host { - display: inline-flex; - flex-direction: column; - text-align: center; - color: var(--primary-text-color); - } - - :host([clickable]) { - color: var(--primary-text-color); - } - - .icon { - position: relative; - box-sizing: border-box; - margin: 0 auto 8px; - height: 40px; - width: 40px; - border-radius: 50%; - border: 1px solid var(--secondary-text-color); - display: flex; - align-items: center; - justify-content: center; - } - - :host([clickable]) .icon { - border-color: var(--primary-color); - border-width: 2px; - } - - .badge { - position: absolute; - color: var(--primary-color); - bottom: -5px; - right: -5px; - background-color: white; - border-radius: 50%; - width: 18px; - display: block; - height: 18px; - } - - .title { - min-height: 2.3em; - word-break: break-word; - } - `; - } -} - -declare global { - interface HTMLElementTagNameMap { - "action-badge": ActionBadge; - } -} diff --git a/src/onboarding/dialogs/app-dialog.ts b/src/onboarding/dialogs/app-dialog.ts new file mode 100644 index 0000000000..087adfc3a7 --- /dev/null +++ b/src/onboarding/dialogs/app-dialog.ts @@ -0,0 +1,6759 @@ +import { LitElement, css, html, nothing } from "lit"; +import { customElement, property } from "lit/decorators"; +import { LocalizeFunc } from "../../common/translations/localize"; +import { fireEvent } from "../../common/dom/fire_event"; +import { createCloseHeading } from "../../components/ha-dialog"; + +@customElement("app-dialog") +class DialogApp extends LitElement { + @property({ attribute: false }) public localize?: LocalizeFunc; + + public async showDialog(params): Promise { + this.localize = params.localize; + } + + public async closeDialog(): Promise { + this.localize = undefined; + fireEvent(this, "dialog-closed", { dialog: this.localName }); + } + + protected render() { + if (!this.localize) { + return nothing; + } + return html` +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
`; + } + + static styles = css` + ha-dialog { + --mdc-dialog-min-width: min(500px, 90vw); + } + div { + display: flex; + justify-content: space-between; + } + a:first-child { + margin-right: 16px; + } + svg { + width: 100%; + } + .light { + fill: var(--card-background-color); + } + .dark { + fill: var(--primary-text-color); + } + @media (prefers-color-scheme: dark) { + .mask { + fill: var(--primary-text-color); + } + .logo { + filter: invert(100%); + } + } + `; +} + +declare global { + interface HTMLElementTagNameMap { + "app-dialog": DialogApp; + } +} diff --git a/src/onboarding/dialogs/community-dialog.ts b/src/onboarding/dialogs/community-dialog.ts new file mode 100644 index 0000000000..f2bffcb3cc --- /dev/null +++ b/src/onboarding/dialogs/community-dialog.ts @@ -0,0 +1,106 @@ +import "@material/mwc-list/mwc-list"; +import { mdiOpenInNew } from "@mdi/js"; +import { LitElement, css, html, nothing } from "lit"; +import { customElement, property } from "lit/decorators"; +import { fireEvent } from "../../common/dom/fire_event"; +import { LocalizeFunc } from "../../common/translations/localize"; +import { createCloseHeading } from "../../components/ha-dialog"; +import "../../components/ha-list-item"; + +@customElement("community-dialog") +class DialogCommunity extends LitElement { + @property({ attribute: false }) public localize?: LocalizeFunc; + + public async showDialog(params): Promise { + this.localize = params.localize; + } + + public async closeDialog(): Promise { + this.localize = undefined; + fireEvent(this, "dialog-closed", { dialog: this.localName }); + } + + protected render() { + if (!this.localize) { + return nothing; + } + return html` + + + + + ${this.localize("ui.panel.page-onboarding.welcome.forums")} + + + + + + + ${this.localize( + "ui.panel.page-onboarding.welcome.open_home_newsletter" + )} + + + + + + + ${this.localize("ui.panel.page-onboarding.welcome.discord")} + + + + + + + ${this.localize("ui.panel.page-onboarding.welcome.twitter")} + + + + + `; + } + + static styles = css` + ha-dialog { + --mdc-dialog-min-width: min(400px, 90vw); + --dialog-content-padding: 0; + } + ha-list-item { + height: 56px; + --mdc-list-item-meta-size: 20px; + } + a { + text-decoration: none; + } + `; +} + +declare global { + interface HTMLElementTagNameMap { + "community-dialog": DialogCommunity; + } +} diff --git a/src/onboarding/dialogs/show-app-dialog.ts b/src/onboarding/dialogs/show-app-dialog.ts new file mode 100644 index 0000000000..49dbac5205 --- /dev/null +++ b/src/onboarding/dialogs/show-app-dialog.ts @@ -0,0 +1,15 @@ +import { fireEvent } from "../../common/dom/fire_event"; +import { LocalizeFunc } from "../../common/translations/localize"; + +export const loadAppDialog = () => import("./app-dialog"); + +export const showAppDialog = ( + element: HTMLElement, + params: { localize: LocalizeFunc } +): void => { + fireEvent(element, "show-dialog", { + dialogTag: "app-dialog", + dialogImport: loadAppDialog, + dialogParams: params, + }); +}; diff --git a/src/onboarding/dialogs/show-community-dialog.ts b/src/onboarding/dialogs/show-community-dialog.ts new file mode 100644 index 0000000000..236df5cc70 --- /dev/null +++ b/src/onboarding/dialogs/show-community-dialog.ts @@ -0,0 +1,15 @@ +import { fireEvent } from "../../common/dom/fire_event"; +import { LocalizeFunc } from "../../common/translations/localize"; + +export const loadCommunityDialog = () => import("./community-dialog"); + +export const showCommunityDialog = ( + element: HTMLElement, + params: { localize: LocalizeFunc } +): void => { + fireEvent(element, "show-dialog", { + dialogTag: "community-dialog", + dialogImport: loadCommunityDialog, + dialogParams: params, + }); +}; diff --git a/src/onboarding/ha-onboarding.ts b/src/onboarding/ha-onboarding.ts index f08917aaa4..7a06c0e3cf 100644 --- a/src/onboarding/ha-onboarding.ts +++ b/src/onboarding/ha-onboarding.ts @@ -1,3 +1,4 @@ +import "@material/mwc-linear-progress/mwc-linear-progress"; import { Auth, createConnection, @@ -5,35 +6,45 @@ import { getAuth, subscribeConfig, } from "home-assistant-js-websocket"; -import { html, PropertyValues, nothing } from "lit"; +import { PropertyValues, css, html, nothing } from "lit"; import { customElement, property, state } from "lit/decorators"; +import { + enableWrite, + loadTokens, + saveTokens, +} from "../common/auth/token_storage"; import { applyThemesOnElement } from "../common/dom/apply_themes_on_element"; import { HASSDomEvent } from "../common/dom/fire_event"; import { extractSearchParamsObject } from "../common/url/search-params"; import { subscribeOne } from "../common/util/subscribe-one"; +import "../components/ha-card"; +import "../components/ha-language-picker"; import { AuthUrlSearchParams, hassUrl } from "../data/auth"; import { - fetchInstallationType, - fetchOnboardingOverview, OnboardingResponses, OnboardingStep, + fetchInstallationType, + fetchOnboardingOverview, onboardIntegrationStep, } from "../data/onboarding"; import { subscribeUser } from "../data/ws-user"; import { litLocalizeLiteMixin } from "../mixins/lit-localize-lite-mixin"; import { HassElement } from "../state/hass-element"; import { HomeAssistant } from "../types"; +import { storeState } from "../util/ha-pref-storage"; import { registerServiceWorker } from "../util/register-service-worker"; import "./onboarding-analytics"; import "./onboarding-create-user"; import "./onboarding-loading"; -import { - enableWrite, - loadTokens, - saveTokens, -} from "../common/auth/token_storage"; +import "./onboarding-welcome"; +import "./onboarding-welcome-links"; +import { makeDialogManager } from "../dialogs/make-dialog-manager"; type OnboardingEvent = + | { + type: "init"; + result: { restore: boolean }; + } | { type: "user"; result: OnboardingResponses["user"]; @@ -49,13 +60,21 @@ type OnboardingEvent = type: "analytics"; }; +interface OnboardingProgressEvent { + increase?: number; + decrease?: number; + progress?: number; +} + declare global { interface HASSDomEvents { "onboarding-step": OnboardingEvent; + "onboarding-progress": OnboardingProgressEvent; } interface GlobalEventHandlersEventMap { "onboarding-step": HASSDomEvent; + "onboarding-progress": HASSDomEvent; } } @@ -65,8 +84,12 @@ class HaOnboarding extends litLocalizeLiteMixin(HassElement) { @property() public translationFragment = "page-onboarding"; + @state() private _progress = 0; + @state() private _loading = false; + @state() private _init = false; + @state() private _restoring = false; @state() private _supervisor?: boolean; @@ -74,29 +97,58 @@ class HaOnboarding extends litLocalizeLiteMixin(HassElement) { @state() private _steps?: OnboardingStep[]; protected render() { + return html` + +
${this._renderStep()}
+
+ ${this._init + ? html`` + : nothing} + `; + } + + private _renderStep() { + if (this._init) { + return html``; + } + + if (this._restoring) { + return html` + `; + } + const step = this._curStep()!; if (this._loading || !step) { return html` `; } if (step.step === "user") { - return html` - ${!this._restoring - ? html` - ` - : ""} - ${this._supervisor - ? html` - ` - : ""} - `; + return html` + `; } if (step.step === "core_config") { return html` @@ -114,7 +166,6 @@ class HaOnboarding extends litLocalizeLiteMixin(HassElement) { > `; } - if (step.step === "integration") { return html` this._handleStepDone(ev)); + this.addEventListener("onboarding-progress", (ev) => + this._handleProgress(ev) + ); if (window.innerWidth > 450) { import("./particles"); } + makeDialogManager(this, this.shadowRoot!); } protected updated(changedProps: PropertyValues) { @@ -170,10 +225,6 @@ class HaOnboarding extends litLocalizeLiteMixin(HassElement) { return this._steps ? this._steps.find((stp) => !stp.done) : undefined; } - private _restoringBackup() { - this._restoring = true; - } - private async _fetchInstallationType(): Promise { try { const response = await fetchInstallationType(); @@ -222,8 +273,12 @@ class HaOnboarding extends litLocalizeLiteMixin(HassElement) { }); history.replaceState(null, "", location.pathname); await this._connectHass(auth); + const currentStep = steps.findIndex((stp) => !stp.done); + const singelStepProgress = 1 / steps.length; + this._progress = currentStep * singelStepProgress + singelStepProgress; } else { - // User creating screen needs to know the installation type. + this._init = true; + // Init screen needs to know the installation type. this._fetchInstallationType(); } @@ -233,15 +288,35 @@ class HaOnboarding extends litLocalizeLiteMixin(HassElement) { } } + private _handleProgress(ev: HASSDomEvent) { + const stepSize = 1 / this._steps!.length; + if (ev.detail.increase) { + this._progress += ev.detail.increase * stepSize; + } + if (ev.detail.decrease) { + this._progress -= ev.detail.decrease * stepSize; + } + if (ev.detail.progress) { + this._progress = ev.detail.progress; + } + } + private async _handleStepDone(ev: HASSDomEvent) { const stepResult = ev.detail; this._steps = this._steps!.map((step) => step.step === stepResult.type ? { ...step, done: true } : step ); - if (stepResult.type === "user") { + if (stepResult.type === "init") { + this._init = false; + this._restoring = stepResult.result.restore; + if (!this._restoring) { + this._progress = 0.25; + } + } else if (stepResult.type === "user") { const result = stepResult.result as OnboardingResponses["user"]; this._loading = true; + this._progress = 0.5; enableWrite(); try { const auth = await getAuth({ @@ -258,6 +333,10 @@ class HaOnboarding extends litLocalizeLiteMixin(HassElement) { this._loading = false; } } else if (stepResult.type === "core_config") { + this._progress = 0.75; + // We do nothing + } else if (stepResult.type === "analytics") { + this._progress = 1; // We do nothing } else if (stepResult.type === "integration") { this._loading = true; @@ -331,6 +410,14 @@ class HaOnboarding extends litLocalizeLiteMixin(HassElement) { subscribeOne(conn, subscribeUser), ]); this.initializeHass(auth, conn); + if (this.language && this.language !== this.hass!.language) { + this._updateHass({ + locale: { ...this.hass!.locale, language: this.language }, + language: this.language, + selectedLanguage: this.language, + }); + storeState(this.hass!); + } // Load config strings for integrations (this as any)._loadFragmentTranslations(this.hass!.language, "config"); // Make sure hass is initialized + the config/user callbacks have called. @@ -338,6 +425,60 @@ class HaOnboarding extends litLocalizeLiteMixin(HassElement) { setTimeout(resolve, 0); }); } + + private _languageChanged(ev: CustomEvent) { + const language = ev.detail.value; + this.language = language; + if (this.hass) { + this._updateHass({ + locale: { ...this.hass!.locale, language }, + language, + selectedLanguage: language, + }); + storeState(this.hass!); + } else { + try { + localStorage.setItem("selectedLanguage", JSON.stringify(language)); + } catch (err: any) { + // Ignore + } + } + } + + static styles = css` + mwc-linear-progress { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 10; + } + .footer { + display: flex; + justify-content: space-between; + align-items: center; + } + ha-language-picker { + display: block; + width: 200px; + margin-top: 8px; + border-radius: 4px; + overflow: hidden; + --ha-select-height: 40px; + --mdc-select-fill-color: none; + --mdc-select-label-ink-color: var(--primary-text-color, #212121); + --mdc-select-ink-color: var(--primary-text-color, #212121); + --mdc-select-idle-line-color: transparent; + --mdc-select-hover-line-color: transparent; + --mdc-select-dropdown-icon-color: var(--primary-text-color, #212121); + --mdc-shape-small: 0; + } + a { + text-decoration: none; + color: var(--primary-text-color); + margin-right: 16px; + } + `; } declare global { diff --git a/src/onboarding/integration-badge.ts b/src/onboarding/integration-badge.ts index fc440b1589..e888460046 100644 --- a/src/onboarding/integration-badge.ts +++ b/src/onboarding/integration-badge.ts @@ -9,8 +9,6 @@ class IntegrationBadge extends LitElement { @property() public title!: string; - @property() public badgeIcon?: string; - @property({ type: Boolean }) public darkOptimizedIcon?: boolean; @property({ type: Boolean, reflect: true }) public clickable = false; @@ -27,12 +25,6 @@ class IntegrationBadge extends LitElement { })} referrerpolicy="no-referrer" /> - ${this.badgeIcon - ? html`` - : ""}
${this.title}
`; @@ -47,10 +39,6 @@ class IntegrationBadge extends LitElement { color: var(--primary-text-color); } - :host([clickable]) { - color: var(--primary-text-color); - } - img { max-width: 100%; max-height: 100%; @@ -66,18 +54,6 @@ class IntegrationBadge extends LitElement { justify-content: center; } - .badge { - position: absolute; - color: white; - bottom: -7px; - right: -10px; - background-color: var(--label-badge-green); - border-radius: 50%; - display: block; - --mdc-icon-size: 18px; - border: 2px solid white; - } - .title { min-height: 2.3em; word-break: break-word; diff --git a/src/onboarding/onboarding-analytics.ts b/src/onboarding/onboarding-analytics.ts index aeddcb4cc7..0bf36b8159 100644 --- a/src/onboarding/onboarding-analytics.ts +++ b/src/onboarding/onboarding-analytics.ts @@ -1,4 +1,5 @@ import "@material/mwc-button/mwc-button"; +import { mdiOpenInNew } from "@mdi/js"; import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { customElement, property, state } from "lit/decorators"; import { fireEvent } from "../common/dom/fire_event"; @@ -8,6 +9,7 @@ import { Analytics, setAnalyticsPreferences } from "../data/analytics"; import { onboardAnalyticsStep } from "../data/onboarding"; import type { HomeAssistant } from "../types"; import { documentationUrl } from "../util/documentation-url"; +import { onBoardingStyles } from "./styles"; @customElement("onboarding-analytics") class OnboardingAnalytics extends LitElement { @@ -23,7 +25,18 @@ class OnboardingAnalytics extends LitElement { protected render(): TemplateResult { return html` +

${this.localize("ui.panel.page-onboarding.analytics.header")}

${this.localize("ui.panel.page-onboarding.analytics.intro")}

+

+ + ${this.localize("ui.panel.page-onboarding.analytics.learn_more")} + + +

${this._error ? html`
${this._error}
` : ""} `; } @@ -81,27 +91,19 @@ class OnboardingAnalytics extends LitElement { } static get styles(): CSSResultGroup { - return css` - p { - font-size: 14px; - line-height: 20px; - } - .error { - color: var(--error-color); - } - .footer { - margin-top: 16px; - display: flex; - justify-content: space-between; - align-items: center; - flex-direction: row-reverse; - } - a { - color: var(--primary-color); - } - `; - - // footer is direction reverse to tab to "NEXT" first + return [ + onBoardingStyles, + css` + .error { + color: var(--error-color); + } + a { + color: var(--primary-color); + text-decoration: none; + --mdc-icon-size: 14px; + } + `, + ]; } } diff --git a/src/onboarding/onboarding-core-config.ts b/src/onboarding/onboarding-core-config.ts index 3ea32cd556..6306e8ba64 100644 --- a/src/onboarding/onboarding-core-config.ts +++ b/src/onboarding/onboarding-core-config.ts @@ -13,22 +13,12 @@ import { fireEvent } from "../common/dom/fire_event"; import type { LocalizeFunc } from "../common/translations/localize"; import "../components/ha-alert"; import "../components/ha-country-picker"; -import "../components/ha-currency-picker"; -import "../components/ha-formfield"; -import "../components/ha-language-picker"; -import "../components/ha-radio"; -import type { HaRadio } from "../components/ha-radio"; -import "../components/ha-textfield"; -import type { HaTextField } from "../components/ha-textfield"; -import "../components/ha-timezone-picker"; -import "../components/map/ha-locations-editor"; import { ConfigUpdateValues, saveCoreConfig } from "../data/core"; import { countryCurrency } from "../data/currency"; import { onboardCoreConfigStep } from "../data/onboarding"; import type { HomeAssistant, ValueChangedEvent } from "../types"; import { getLocalLanguage } from "../util/common-translation"; import "./onboarding-location"; -import "./onboarding-name"; @customElement("onboarding-core-config") class OnboardingCoreConfig extends LitElement { @@ -38,32 +28,26 @@ class OnboardingCoreConfig extends LitElement { @state() private _working = false; - @state() private _name?: ConfigUpdateValues["location_name"]; - @state() private _location?: [number, number]; - @state() private _elevation?: string; + private _elevation = "0"; - @state() private _unitSystem?: ConfigUpdateValues["unit_system"]; + private _unitSystem: ConfigUpdateValues["unit_system"] = "metric"; - @state() private _currency?: ConfigUpdateValues["currency"]; + private _currency: ConfigUpdateValues["currency"] = "EUR"; - @state() private _timeZone?: ConfigUpdateValues["time_zone"]; + private _timeZone: ConfigUpdateValues["time_zone"] = + Intl.DateTimeFormat?.().resolvedOptions?.().timeZone; - @state() private _language: ConfigUpdateValues["language"]; + private _language: ConfigUpdateValues["language"] = getLocalLanguage(); @state() private _country?: ConfigUpdateValues["country"]; @state() private _error?: string; + @state() private _skipCore = false; + protected render(): TemplateResult { - if (!this._name) { - return html``; - } if (!this._location) { return html``; } + if (this._skipCore) { + return html`
+ +
`; + } return html` - ${ - this._error - ? html`${this._error}` - : nothing - } + ${this._error + ? html`${this._error}` + : nothing}

- ${this.onboardingLocalize( - "ui.panel.page-onboarding.core-config.intro_core_config" - )} + ${this.onboardingLocalize( + "ui.panel.page-onboarding.core-config.country_intro" + )}

-
- - - - -
- -
- - - - - -
- -
-
- ${this.hass.localize( - "ui.panel.config.core.section.core.core_config.unit_system" - )} -
-
- - ${this.hass.localize( - "ui.panel.config.core.section.core.core_config.metric_example" - )} -
`} - > - - - - ${this.hass.localize( - "ui.panel.config.core.section.core.core_config.us_customary_example" - )} -
`} - > - - - - - -
-
- ${this.hass.localize( - "ui.panel.config.core.section.core.core_config.currency" - )}
- ${this.hass.localize( - "ui.panel.config.core.section.core.core_config.find_currency_value" - )} -
- - -
- + +