Compare commits

..
Author SHA1 Message Date
Paul Bottein e642c80003 Fix device automations 2024-10-09 19:28:50 +02:00
Paul Bottein cc07d51613 Add sequence support to dashboard action 2024-10-09 18:53:41 +02:00
karwosts 23a33b10a1 Allow override entity_id in more-info action (#22147) 2024-10-09 14:14:03 +02:00
Simon Lamon 67a93013c7 Revert "Fix drag and drop when using action and trigger selector" (#22296)
Revert "Fix drag and drop when using action and trigger selector (#22291)"

This reverts commit 99035cea8f.
2024-10-09 10:22:40 +00:00
Bram Kragten 1f838d7529 Update statistics issues from dev tools (#22286)
update statistics issues from dev tools
2024-10-09 09:29:30 +02:00
TJ Horner ffc0435144 Fix erroneous addition of service: key in ha-automation-action-play_media element (#22294)
fix: no longer erroneously set 'service' in ha-automation-action-play_media
2024-10-08 21:07:38 +00:00
David F. Mulcahey 5877d69c87 Fix ZHA group dashboard display on mobile (#22279) 2024-10-08 21:20:07 +02:00
Paul Bottein 99035cea8f Fix drag and drop when using action and trigger selector (#22291)
* Fix drag and drop when using action selector

* Fix drag and drop when using trigger selector
2024-10-08 21:04:45 +02:00
__JosephAbbeyandWendelin 1b441a7eec Add support for relative start and end time displays in state-display (#22249)
* Add support for relative start and end time displays in state-display

* Add support for sun attributes as well

* Improve state-display code for relative-time

---------

Co-authored-by: Wendelin <[email protected]>
2024-10-08 10:04:16 +02:00
Paul Bottein ad49e9f7b0 Add minimal size for badges and cards in edit mode (#22271) 2024-10-07 17:33:47 +02:00
Petar Petrov e32b15ede2 Hide service dropdown for predefined actions in automations (#22275)
Hide service dropdown for predefined actions
2024-10-07 15:49:44 +02:00
Wendelin a35b4376ea Fix unused entities view (#22274)
Fix compute-unused-entities when using sections
2024-10-07 15:28:14 +02:00
Simon Lamon 619f9f76ee Fixup service/action when entity is picked in activate scene (#22259)
Fixup service/action when entity is picked
2024-10-07 09:23:48 +02:00
dependabot[bot] f771bc10db Bump actions/cache from 4.0.2 to 4.1.0 (#22270)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-07 08:44:00 +02:00
renovate[bot] b8889a1183 Update dependency eslint-plugin-import to v2.31.0 (#22260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-06 10:47:08 +00:00
renovate[bot] eb6b45eaed Update babel monorepo to v7.25.7 (#22250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 20:11:42 +02:00
renovate[bot] 31a748ed93 Update dependency date-fns-tz to v3.2.0 (#22209)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-04 21:38:25 +02:00
Bram Kragten 0110bdd24a Fix and update step flow create (#22223)
* Fix and update step flow create

* cleanup
2024-10-04 14:13:21 +02:00
Bram Kragten 365b712976 Add temporary logging to webrtc player (#22213)
* add temporary logging to webrtc player

* Update ha-web-rtc-player.ts

* Update ha-web-rtc-player.ts

* Update ha-web-rtc-player.ts
2024-10-03 21:01:21 +02:00
Paul Bottein 7d97dbe15b Fix potential undefined select element in color picker (#22212) 2024-10-03 11:31:36 +02:00
Paul Bottein 8bc0ea5a0b Update heading entity schema to allow empty entity id (#22211) 2024-10-03 11:15:13 +02:00
Adam Kapos 44948a3474 Disable backdrop filter on Heading Card (#22204) 2024-10-03 09:45:29 +02:00
Robert Resch bc51b53b4a Use camera ws endpoint to get WebRTC config (#22009) 2024-10-03 09:19:49 +02:00
Bram Kragten 67217b9dd0 Bumped version to 20241002.2 2024-10-02 16:42:46 +02:00
Bram Kragten 487795b7c4 handle unknown state for update voice assitant (#22196)
* handle unknown state for update voice assitant

* Update voice-assistant-setup-step-update.ts
2024-10-02 16:42:27 +02:00
Petar Petrov a30e0d33f9 Handle exceptions when subscribing from the event dev tool (#22191)
* Handle exceptions when subscribing from the event dev tool

* use ha-alert for the error msg

* import ha-alert element

* use undefined instead of null to align with the rest of the code base
2024-10-02 16:34:28 +02:00
Bram Kragten 0c1b8abe03 Fix hassio entrypoint (#22194) 2024-10-02 14:20:53 +00:00
Paul Bottein ce9c5149d5 Use heading card in demo dashboard (#22193) 2024-10-02 14:13:26 +00:00
Bram Kragten adbcdc62eb Alert user when auto update is enabled instead of hiding the button (#22187) 2024-10-02 15:41:15 +02:00
Paul Bottein faf872bfb8 Simplify create automation from device dialog (#22190)
* Simplify automation dialog

* Fix translations

* Auto expand trigger action and condition

* Improve wording

* Expand all

* Remove unused translations
2024-10-02 13:13:21 +00:00
Stefan Agner fe0fb2382a Allow to transfer all Thread datasets with TLV (#22183)
* Allow to transfer all Thread datasets with TLV

This commit allows to transfer all Thread datasets with TLV. Since
PR #22022 the preferred dataset is transmitted when using Matter
external commissioning. This commit makes the Thread configuration
dialog to have feature parity.

* Drop preferred border agent id as additional metric for default router

We always have the extended address, so use this as primary and only
metric which router is the default. The preferred border agent id gets
updated best effort.

Also use isDefaultRouter consistently in the code.
2024-10-02 15:06:06 +02:00
Bram Kragten cdd29295e5 Bumped version to 20241002.1 2024-10-02 13:37:47 +02:00
f7532f3476 Devtools statistics - new style, multi-select, & multi-delete (#21813)
* feat: auto-fix statistics

* statistics multi-select and multi-fix

* unused css

* Change multi action to clear, fixes

* Update developer-tools-statistics.ts

* update translations

* Add select all issues option

* Update en.json

* Update developer-tools-statistics.ts

---------

Co-authored-by: Muka Schultze <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2024-10-02 13:21:04 +02:00
Bram Kragten c8930cec87 Bumped version to 20241002.0 2024-10-02 09:50:01 +02:00
Bram Kragten f9c336890d Await removal of statistics when fixing (#22167)
* Await removal of statistics when fixing

* refactor

* translations
2024-10-02 09:24:46 +02:00
c721de109f Put rename entities in expandable when renaming device (#22182)
* Put rename entities in expandable when renaming device

* Update ha-config-device-page.ts

* Update src/panels/config/devices/ha-config-device-page.ts

Co-authored-by: Simon Lamon <[email protected]>

---------

Co-authored-by: Paul Bottein <[email protected]>
Co-authored-by: Simon Lamon <[email protected]>
2024-10-02 07:19:05 +00:00
renovate[bot] 1c95e8d6ec Update vaadinWebComponents monorepo to v24.4.10 (#22180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-01 16:34:51 +00:00
Bram Kragten 57cf2c1341 Update update entity in voice flow (#22178) 2024-10-01 18:34:18 +02:00
renovate[bot] f7d5c5f850 Update dependency @codemirror/view to v6.34.1 (#22179)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-01 16:33:42 +00:00
renovate[bot] 470f5127f4 Update dependency @types/color-name to v2 (#22157)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-01 18:22:13 +02:00
Paul Bottein 34e361601a Fix display elements field in heading badge editor (#22177)
* Fix display elements field in heading badge editor

* Update src/panels/lovelace/editor/heading-badge-editor/hui-entity-heading-badge-editor.ts
2024-10-01 16:58:00 +02:00
Paul Bottein 70d6cce8f8 Add support for custom color display in color picker (#22174)
Add support for custom color in color picker
2024-10-01 15:43:31 +02:00
Paul Bottein f9814f35d1 Don't handle UI editor event when using yaml editor (#22176) 2024-10-01 15:11:54 +02:00
Paul Bottein f30603753e Use radio buttons for heading style (#22173) 2024-10-01 14:26:51 +02:00
karwosts ce9993fd36 Use finishes_at in timer remaining calculation (#22169)
* Use finishes_at in timer remaining calculation

* lint

* fix test
2024-10-01 14:05:01 +02:00
Bram Kragten 4c2044e70a Bumped version to 20240930.0 2024-09-30 17:11:52 +02:00
Darren Griffin 7f96c1fbe1 Add OHF logo to README (#22165) 2024-09-30 17:10:45 +02:00
Paul BotteinandSimon Lamon 75e24780c1 Use dash for unknown and unavailable state in heading entity (#22163)
* Use dash for unknown and unavailable state in heading entity

* Update src/state-display/state-display.ts

Co-authored-by: Simon Lamon <[email protected]>

---------

Co-authored-by: Simon Lamon <[email protected]>
2024-09-30 15:52:20 +02:00
Bram Kragten 95580bc4c0 Fix min width of checkbox column in data table (#22162)
fix min width of checkbox column in data table
2024-09-30 09:09:08 +00:00
Paul Bottein 175f68e0cf Allow to add name in heading entity badge state content (#22161) 2024-09-30 09:07:25 +00:00
Bart Mesuere b6efedfc8d Improve the accessibility of the default colors used for graphs (#21839)
* Update the first 10 colors to match the Observable10 scheme

* Add darker and lighter variants
2024-09-30 10:59:13 +02:00
Wendelin 23c21a35d8 Fix script rename name placeholder (#22160) 2024-09-30 07:43:59 +00:00
Simon Lamon 9c7324298b Remove floor context (#22143)
* Remove floor context

* Fixup gallery
2024-09-30 09:33:08 +02:00
Matthias Alphart e92be566a0 Handle falsy value in ha-yaml-editor (object selector) (#22142)
* Handle falsy value in ha-yaml-editor (object selector)

* handle explicit `null`
2024-09-30 09:28:17 +02:00
dependabot[bot] 4e96ad5f28 Bump actions/checkout from 4.1.7 to 4.2.0 (#22159)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-30 09:07:50 +02:00
renovate[bot] f64a1500af Update dependency webpack to v5.95.0 (#22150)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-28 21:23:29 +02:00
renovate[bot] c9e8619c04 Update dependency @codemirror/view to v6.34.0 (#22144)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-28 21:23:21 +02:00
Bram Kragten 7ab1133b45 Implement missing function for password field 2024-09-27 23:42:44 +02:00
Bram Kragten 77abfd3e61 voice setup tweaks 2024-09-27 23:42:09 +02:00
Bram Kragten d7aaa41aa4 Add missing voice assistant select action logic (#22139) 2024-09-27 14:40:55 -04:00
Aindriú Mac Giolla Eoin 8223f6b155 Update translationMetadata.json - Added Irish language code (#21898)
Added language code for Irish, native name Gaeilge
2024-09-27 18:12:44 +02:00
renovate[bot] 435eae77fa Update dependency rollup to v2.79.2 [SECURITY] (#22071)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-27 15:29:29 +00:00
Paul Bottein ead54e445f Reuse flatten logic for trigger ids condition (#22136) 2024-09-27 17:18:06 +02:00
Bram Kragten 7ee5db2be5 Bumped version to 20240927.0 2024-09-27 17:15:57 +02:00
Bram Kragten fef6f0ac94 migrate nested triggers too (#22135) 2024-09-27 15:13:05 +00:00
Bram Kragten 7a60763786 Voice setup feedback (#22134)
* Voice setup feedback

* Update voice-assistant-setup-step-check.ts
2024-09-27 16:56:38 +02:00
Paul Bottein 94e321a364 Add UI support for trigger list (#22133)
* Add UI support for trigger list

* Update gallery

* Fix gallery
2024-09-27 16:56:22 +02:00
Bram Kragten 1c12c2b714 Fix codemirror fold for empty lines (#22130) 2024-09-27 14:18:48 +02:00
Paul Bottein 442a8f11a7 Improve heading card style and add theme variables (#22129)
improve heading card style and add theme variables
2024-09-27 13:45:18 +02:00
Bram Kragten 4e8b58cd6c Add password field element (#22121)
* Add password field element

* Update ha-password-field.ts
2024-09-27 12:34:28 +02:00
Paul Bottein a92dab46c2 Allow different types of heading badges (#22109)
* Allow different type of heading item

* Update editor

* Migrate entities to items

* Rename support for string entity

* Refactor

* Rename to badges and add error state

* Update font weight

* Feedback

* Feedback
2024-09-27 12:33:15 +02:00
Joakim Sørensen 468660d235 Adjust username handling in the cloud panel register and login flows (#22118)
* Use lowercase when registering

* Fallback to lowercase username if usernotfound is recieved

* Adjust resend

* handle reset password

* limit with else

* return early
2024-09-27 12:31:48 +02:00
Wendelin c721afa137 Fix matter device actions (#22117)
* Fix matter device actions when matter integration loads forever

* Fix matter device-actions types path

* Move getMatterDeviceActions inside getDeviceActions in device page
2024-09-27 09:37:07 +00:00
Paul Bottein ac9654c1de Add heading card when creating a new view (#22123) 2024-09-27 09:19:19 +00:00
Wendelin 570ad38bac Fix automation trigger condition and triggers description (#22122)
* Fix config.triggers in automation-contition-trigger

* Fix config.triggers for automation triggers description
2024-09-27 09:10:33 +00:00
Erik Montnemery e778a9aa1d Improve statistics issues (#22110) 2024-09-27 11:05:30 +02:00
selvalt7 49576189af Use localizeValue in ha-form-expandable and ha-form-grid (#22114)
Pass localizeValue to ha-form-expandable and ha-form-grid
2024-09-27 10:00:36 +02:00
Bram Kragten 5d71d4c0a1 Bumped version to 20240926.0 2024-09-26 18:26:20 +02:00
Bram Kragten d334b1ca7b Update voice-assistant-setup-step-update.ts 2024-09-26 18:25:30 +02:00
Wendelin 5551e98388 Add no IP found message to ping a matter device (#22103) 2024-09-26 18:22:28 +02:00
Bram Kragten 59945cb2f8 Add statistic id to statistic issue fix messages (#22104)
* Add statistic id to fix messages

* revert state class check, as it will be solved in another way
2024-09-26 18:07:54 +02:00
Erik Montnemery 500bc959f0 Improve translation strings for statistic issues (#22100) 2024-09-26 16:46:35 +02:00
Bram Kragten deece20206 Include extended_pan_id when commissioning matter (#22099) 2024-09-26 16:46:15 +02:00
Bram KragtenandPaul Bottein fc8945be60 Flatten fields in sections in developer tools actions (#22096)
* flatten fields in sections in developer tools actions

* Update src/panels/developer-tools/action/developer-tools-action.ts

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-09-26 12:31:53 +00:00
Bram Kragten 3fbd5f07a9 Fix dialog box callback order (#22097)
* Fix dialog box callback order

* Update dialog-box.ts
2024-09-26 14:17:28 +02:00
Wendelin ff9af2f980 Fix delete appearance chip (#22098)
* Add filter option to ha-sortable

* Filter chips remove buttons from dragging in ha-entity-state-content-picker
2024-09-26 14:11:34 +02:00
Paul Bottein 62cba99491 Don't use ha-card in card-condition-editor (#22085) 2024-09-26 12:15:58 +02:00
5a5005c09c Fix matter commissioning wording and add prevent misuse alert (#22083)
* Fix matter commissioning wording and add prevent misuse alert

* Update src/translations/en.json

Co-authored-by: Bram Kragten <[email protected]>

* Add small misuese prevent note for matter-commissioning dialog

---------

Co-authored-by: Paul Bottein <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2024-09-26 12:15:03 +02:00
Wendelin dd179e1f4e Add seperator to dialog-repairs-issue-subtitle (#22095) 2024-09-26 12:12:10 +02:00
Paul Bottein 27bdf80168 Fix automation drag and drop (#22093) 2024-09-26 07:59:48 +00:00
renovate[bot] f70ce7491a Update dependency @rollup/plugin-node-resolve to v15.2.4 (#22092)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-26 09:48:41 +02:00
Jan Rieger 9f17f6a8cf Fix typo (#22086) 2024-09-25 18:02:34 +00:00
Paul Bottein 4e51c7cf96 Use callback instead of changing nested config with sub editor (#22081)
Use callback instead of changing nested config
2024-09-25 16:47:38 +02:00
Bram Kragten 291c026da0 Bumped version to 20240925.0 2024-09-25 16:47:19 +02:00
Bram Kragten dd88d8633f Optimize helpers filtering (#22080) 2024-09-25 16:41:12 +02:00
WendelinandBram Kragten 254ee8568b Add integration name information to repairs (#22006)
* Add integration name to repairs

* Improve dialog-repairs-issue aria and translations

* Fix type in dialog-repairs-issue

* Remove unused slots in dialog-repairs-issue

* Fix ha-config-repairs avoid nested css

* Fix ha-config-repairs to use ha-md-list

* Add subtitle slot to ha-dialog-header

* Move close icon to left in dialog-data-entry-flow

* Move severity and reportedBy to dialog subtitle in repair-dialog

* Add md buttons to dialog-repairs-issue

* Revert dialog-repairs-issue to use normal ha-buttons

* Revert dialog-entry-flow close icon position

* Improve buttons for dialog-repairs-issue

* Add subtitle to all show-dialog-repair-flow headers

* Fix integration names for repair dialogs

* Fix subtitle title repair dialogs

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-09-25 16:12:45 +02:00
Paul Bottein cd631e8693 Move sub element editor inside hui-element-editor. (#22079)
* Move sub element editor into hui-element-editor

* Migrate feature editor

* Migrate feature editor

* Simplify context
2024-09-25 16:05:41 +02:00
765812331b Allow to fix statistic issue from repairs (#22055)
* Allow to fix statistic issue from repairs

* clean up, add names

* Update src/translations/en.json

Co-authored-by: Paul Bottein <[email protected]>

* address review

* Update src/translations/en.json

Co-authored-by: Paul Bottein <[email protected]>

---------

Co-authored-by: Simon Lamon <[email protected]>
Co-authored-by: Paul Bottein <[email protected]>
2024-09-25 15:55:49 +02:00
Paul Bottein 7462f8fbe3 Fix entity row editor (#22078) 2024-09-25 15:42:29 +02:00
Bram Kragten dc940f248c Migrate trigger platform key to trigger (#22054)
* Migrate trigger platform key to trigger

* fix gallery configs

* Update ha-automation-editor.ts

* migrate device automation triggers
2024-09-25 14:20:27 +02:00
Miguel Palhas 2793ca65cd Adds highlight on current indentation mark to code editor (#21972)
* Adds highlight on current indentation mark to code editor

* code review
2024-09-25 11:35:47 +00:00
Miguel Palhas e687ddab21 Indent-based folds for YAML editor (#21966)
* Indent-based folds for YAML editor

* adding compartment

* code review
2024-09-25 13:15:02 +02:00
karwosts 4bd27e5055 Add detail to the device+entity_id rename dialog (#21952) 2024-09-25 13:08:39 +02:00
Paul Bottein c6e2e07286 Use YAML editor in card/badge editor (#22075) 2024-09-25 10:59:39 +02:00
Paul Bottein e77508b8a8 Create ha-divider and use it inside color picker (#22074)
* Create ha-divider and use it inside color picker

* rename divider
2024-09-25 08:59:00 +00:00
Bram Kragten a5db44a167 Fix initial automation config (#22073) 2024-09-25 08:24:06 +00:00
Bram Kragten 265bbfc95d Triggers doesn't have to be an array, fix flattenTriggers (#22072)
Triggers doesnt have to be an array, fix flattenTriggers
2024-09-25 08:17:37 +00:00
Bram Kragten 305cecb213 Add MVP voice assist flow (#22061)
* Add MVP voice assist flow

* filter on supported features

* check for unavailable

* Update step-flow-create-entry.ts
2024-09-24 20:38:00 +02:00
Paul Bottein 813feff12e Add color option to heading entities (#22068)
* Add uncolored option

* Allow to color icon based on state or custom color

* Use text color for inactive color

* Rename uncolored to none

* Add helper

* Update wording
2024-09-24 20:14:03 +02:00
Bram Kragten cbce6f633f Migrate base automation config to plurals (#22053)
* Migrate base automation config to plurals

* revert

* Update hat-script-graph.ts

* Make traces work with both new and old config

* Adjust validateConfig
2024-09-24 20:03:53 +02:00
Bram Kragten 1bbf45d35e Remove min width from alert dialog (#22069) 2024-09-24 16:16:07 +00:00
Paul Bottein 76e53e9738 Add more config option to heading entity element (#22063)
Add show state and show icon to heading entity
2024-09-24 18:15:36 +02:00
Paul Bottein c30e4a6935 Add visibility option to heading entities (#22064)
* Add visibility option to heading entity

* Fix types
2024-09-24 17:12:04 +02:00
Paul Bottein c4a700a55c Improve element editor and migrate heading-entity editor (#22034)
* Extract load config element

* Improve error by using ha-alert

* Create hui-hase-editor

* Migrate heading entity form to its own editor

* Rename editor

* Rename

* Rename

* Move heading entity to its own component

* Fix default action for heading entity
2024-09-24 11:17:29 +02:00
Raj Laud a759767d79 Update media-player.ts to display artist name as backup secondary title (#22039)
* Update media-player.ts to display artist name for playlist if playlist name unavailable

* Run prettier
2024-09-23 16:08:18 +00:00
renovate[bot] 7f868c8140 Update dependency eslint to v8.57.1 (#22033)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 16:04:59 +00:00
Paul Bottein f7f37c24e2 Filter selected entities in entities picker using includeEntities property (#22059)
* Filter selected entities in entities picker using includeEntities property

* Don't ignore other property when using include entities
2024-09-23 15:55:13 +00:00
Simon Lamon be02a8869f Fix lint failures on CI (#21986)
Add ignore
2024-09-23 15:50:43 +00:00
Wendelin 3a9f09cb47 Migrate dialog restart to ha-md-dialog (#22032)
* Fix ha-md-dialog for iOS 12

* Fix ha-md-dialog polyfill loading

* Fix ha-md-dialog open prop

* Fix multiple polyfill loads in ha-md-dialog

* Migrate dialog-restart to ha-md-dialog

* Fix dialog-restart to use ha-md-list

* Fix dialog opens dialog for ha-md-dialog
2024-09-23 15:18:00 +00:00
karwosts 0c2a9d85e0 Better handling of multiple entities in numeric-state condition (#22021)
* Better handling of multiple entities in numeric-state condition

* update translations, fix infinite render loop in form
2024-09-23 15:35:45 +02:00
Simon Lamon e72356033c Handle url error better when invalid blueprint url is provided (#21778)
* Encode spaces again

* Prettier

* Update src/panels/my/ha-panel-my.ts

* Remove the specific contents

* Remove the error keys, assign error immediately

* Revert "Remove the error keys, assign error immediately"

This reverts commit 27381ff250.
2024-09-23 15:28:57 +02:00
Simon Lamon 3c48559df6 Move patches in dependency section (#22050)
* Move patches in dependency section

* yarn lock
2024-09-23 15:27:46 +02:00
Wendelin f36d68c677 Fix delete entity alias (#22058)
Fix aliasChanged to save deleted in entity-voice-settings
2024-09-23 15:18:50 +02:00
Yosi Levy af46b8221e RTL fixes (#22060) 2024-09-23 13:16:58 +02:00
Paul Bottein d25f72524b Migrate title section to heading (#22017)
* Remove title from UI

* Migrate section title to heading card

* Remove title from edit section dialog

* Update src/panels/lovelace/views/hui-sections-view.ts

* Simplify delete section dialog
2024-09-23 09:54:20 +02:00
dependabot[bot] 0840d8a10e Bump actions/setup-node from 4.0.3 to 4.0.4 (#22057)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-23 09:37:25 +02:00
renovate[bot] 597bf5def0 Update dependency @octokit/plugin-retry to v7.1.2 (#22047)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-22 18:35:14 +02:00
renovate[bot] 3478bd309b Update dependency date-fns to v4.1.0 (#22037)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-21 09:28:08 +02:00
renovate[bot] 64b8b7658d Update dependency @codemirror/commands to v6.6.2 (#22038)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-21 09:27:31 +02:00
renovate[bot] a1af8718a0 Update dependency @material/web to v2.2.0 (#22041)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-21 09:25:24 +02:00
renovate[bot] fd9e2b647d Lock file maintenance (#22027)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-19 20:48:19 +02:00
karwosts caee4ba7bc Load defaults in script more-info (#22014) 2024-09-19 20:01:57 +02:00
karwosts 915036006d Fixes for trace viewer for nested triggers feature (#21765) 2024-09-19 19:48:20 +02:00
renovate[bot] 48887f2066 Update dependency sinon to v19 (#21988)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-19 19:27:41 +02:00
renovate[bot] 68d9ce7923 Update vaadinWebComponents monorepo to v24.4.9 (#21970)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-19 19:26:56 +02:00
renovate[bot] a36f3c8fb1 Update dependency date-fns to v4 (#22028)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-19 19:25:15 +02:00
renovate[bot] 4dfadea9e9 Update dependency babel-loader to v9.2.1 (#22031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-19 19:24:48 +02:00
Wendelin 71dc26edab Migrate dialog-light-color-favorite to ha-md-dialog (#22013)
* Migrate dialog-light-color-favorite to ha-md-dialog

* Add aria-label to dialog-light-color-favorite

* Add mobile dialog from bottom animation to dialog-light-color-favorite
2024-09-19 18:28:13 +02:00
Wendelin f260c95add Add default value to zwave config params (#21990)
* Add default value to zwave config params

* Remove unused ha-switch from zwave node config

* Small fix of duplicate code in zwave node config
2024-09-19 13:17:45 +02:00
Paul Bottein dc6f1efffb Add badges to section demo (#22029) 2024-09-19 12:01:59 +02:00
Paul Bottein b7763882f4 Add Heading card (#22008)
* Add header card

* Rename to heading card

* Add heading entities

* Add editor for entities

* Remove unused property

* Fix margin and gap

* Improve content and entities container

* Fix no entities displayed

* Cache form to not loose state

* Use style

* Fix type

* Add support for string entities

* Add tap action support to entities

* Move expandable outside of entities editor

* Fix double processing
2024-09-19 10:46:20 +02:00
Paul Bottein 7de5c46f14 Improve card features editor (#22023)
* Move expansion panel outside of feature component

* Cache main form and feature form
2024-09-19 09:52:59 +02:00
Bram Kragten 5920efa2b2 Add preferred thread credentials to matter external commission (#22022) 2024-09-19 09:34:03 +02:00
Simon Lamon d2194d55f9 Rename ha-button-menu-new into ha-md-button-menu (#22016)
* ha-button-menu-new => ha-md-button-menu

* linting
2024-09-18 12:02:15 +00:00
Simon Lamon c0043af4c9 Rename ha-list-new into ha-md-list (#22015)
ha-list-new => ha-md-list
2024-09-18 08:28:05 +00:00
Bram Kragten dcf763438b Use issue placeholders in issue repair flow, show break warning in re… (#21959)
Use issue placeholders in issue repair flow, show break warning in repair flow
2024-09-18 10:18:00 +02:00
Wendelin 858a00e28c Migrate dialog-box to ha-md-dialog (#22007)
* Migrate dialog-box to ha-md-dialog

* Add aria-labelby to dialog-box

* Add ids for dialog-box aria content
2024-09-18 09:24:27 +02:00
renovate[bot] ab407e8274 Update Yarn to v4.5.0 (#22012)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-17 18:14:13 +02:00
renovate[bot] 14f96a6262 Update dependency @codemirror/autocomplete to v6.18.1 (#22011)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-17 17:50:01 +02:00
Paulus Schoutsen 2b33c70e04 Ensure device info categories notify, event and assist always show (#21994)
Currently we have the entity category always win. However, we have some functional categories on a device, notify, event, assist. It would be good to always show these togehter.
2024-09-17 09:37:45 +02:00
akloeckner 717443e2d6 Fix typo in ha-selector-color-rgb.ts (#22001) 2024-09-17 04:20:56 +00:00
renovate[bot] 2aba9099a0 Update dependency ua-parser-js to v1.0.39 (#22002)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-17 06:09:54 +02:00
karwosts 3079f126a8 Improve robustness of automation editor description error handling (#21993) 2024-09-16 17:55:16 +02:00
Bram Kragten 1cdfb746bf Optimize entities config performance (#21974)
* Optimize entities config performance

* review
2024-09-16 12:40:52 +00:00
renovate[bot] 39a1844991 Update dependency eslint-plugin-unused-imports to v4.1.4 (#21992)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 14:27:50 +02:00
WendelinandBram Kragten 9e4dc0d39e Migrate add/edit resources dialog to @material/web (#21933)
* Remove dashboard resources options from advanced mode

* Add ha-dialog-new, use it for dashboard resources

* Add ha-dialog-new shake; Move resources delete to table

* Improve ha-dialog-new, resource-detail

* Rename ha-dialog-new to ha-md-dialog

* Update src/panels/config/lovelace/resources/dialog-lovelace-resource-detail.ts

Fix dialogClosed method naming

Co-authored-by: Bram Kragten <[email protected]>

* Add ha-md-dialog polyfill

* Fix ha-md-dialog for iOS 12

* Fix ha-md-dialog polyfill loading

* Fix ha-md-dialog open prop

* Fix ha-md-dialog legacy loading

* Improve ha-md-dialog legacy loading

* Fix multiple polyfill loads in ha-md-dialog

* Fix polyfill handleOpen in ha-md-dialog

* Improve polyfill handleOpen in ha-md-dialog

* Improve polyfill handleOpen ordering in ha-md-dialog

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-09-16 12:27:13 +00:00
Wendelin ab91a4b814 Fix onboarding with 0 found integrations (#21977)
* Add onboarding 0 integrations fallback page

* Add translations to onboarding all set

* Migrate mwc to ha-button in onboarding-integrations
2024-09-16 13:19:25 +02:00
renovate[bot] ca66c02fb3 Update dependency husky to v9.1.6 (#21983)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 20:18:08 +02:00
renovate[bot] 97bb052d71 Update dependency sinon to v18.0.1 (#21981)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-14 14:55:21 +02:00
Wendelin 137bb473c0 Fix user change password autofill (#21975)
* Fix user change password autofill

* Fix user change password new password input
2024-09-13 17:17:40 +02:00
Miguel Palhas 326b57f91b Fixes text input icons color in dark mode (#21971) 2024-09-13 11:43:59 +00:00
Paul Bottein 32feab6a70 Add floors to hass (#21960) 2024-09-13 11:07:04 +02:00
Martin Dybal 68a0d04f04 Added hold and double tap actions for tile card icon (#21947) 2024-09-13 09:59:04 +02:00
renovate[bot] 9078ab4026 Update dependency @bundle-stats/plugin-webpack-filter to v4.15.1 (#21968)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-13 06:24:57 +02:00
renovate[bot] 8605684906 Update dependency typescript to v5.6.2 (#21963)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-12 18:53:28 +02:00
AlCalzone 9f17d17d6e Z-Wave JS: Mention the ability to select which security keys to grant (#21958) 2024-09-12 18:51:22 +02:00
Reuben ba5f176d52 Capitalise ha-relative-time in state-display (#21949)
This matches the capitalisation applied to hui-timestamp-display, and state-info displays
2024-09-12 18:51:15 +02:00
ildar170975 7115d14699 Add padding to bottom of logbook in device page (#21913)
Update ha-config-device-page.ts
2024-09-12 18:51:06 +02:00
dependabot[bot] 23e37daff3 Bump express from 4.19.2 to 4.20.0 (#21956)
Bumps [express](https://github.com/expressjs/express) from 4.19.2 to 4.20.0.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.20.0)

---
updated-dependencies:
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-11 18:39:36 +00:00
renovate[bot] ed6c2dfe39 Update dependency marked to v14.1.2 (#21955)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-11 20:26:42 +02:00
Simon Lamon b48a28f2a6 Fix "unknown" traces in design gallery (#21942) 2024-09-10 22:04:10 +02:00
renovate[bot] 3166fec7db Update dependency eslint-plugin-lit to v1.15.0 (#21940)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-10 17:29:25 +02:00
karwostsandBram Kragten 1a67bd0414 Fix script more-info when entity_id != unique_id (#21880)
* Fix script more-info when entity_id != unique_id

* Update src/dialogs/more-info/controls/more-info-script.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-09-10 09:35:40 +02:00
Paulus Schoutsen d34c43e292 Add assist_satellite to Assist entities array (#21795) 2024-09-10 06:22:54 +02:00
karwosts c7cfbb5b6c Fix service advanced options UI (#21925) 2024-09-09 17:19:35 +02:00
Paul Bottein bde2fd8202 Bumped version to 20240909.1 2024-09-09 17:17:04 +02:00
Paul Bottein e5327c0903 Update patch for sortablejs 1.15.3 (#21934)
Update sortablejs patch
2024-09-09 15:15:53 +00:00
Yosi Levy 1a0ca1b78f RTL fixes sep 24 (#21893)
* Fix logs drop down

* Fix history arrow

* Icon direction fix
2024-09-09 17:13:23 +02:00
Paul Bottein ed141b1d12 Bumped version to 20240909.0 2024-09-09 16:35:16 +02:00
Paul Bottein 5a7a71c551 Fix section view crashing on old iPads (#21932) 2024-09-09 10:30:27 +00:00
karwosts f09e0d187b Restore localizeValue to ha-form (fix selector translations) (#21923) 2024-09-09 11:20:08 +02:00
karwosts 7f6325fa5e Fix sections item translation for config flow (#21924) 2024-09-08 15:24:59 +00:00
jonnynch de292a8143 Fix WebRTC for Firefox by ignoring empty ice candidates (#21908)
* handle firefox empty string ice candidate

* use optional chaining as per comment
2024-09-08 17:23:47 +02:00
renovate[bot] 84b2005844 Update dependency marked to v14.1.1 (#21917)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 08:27:00 +02:00
renovate[bot] 0d93432a2c Update dependency eslint-import-resolver-webpack to v0.13.9 (#21909)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 22:46:05 +00:00
Bram Kragten 8bc9927ee2 Zwave JS display allowed range of config values (#21892)
* Zwave: Display allowed range of config values, catch wrong values

* allow min and max

* Update zwave_js-node-config.ts
2024-09-07 00:38:32 +02:00
Bram Kragten 484bed4dab Fix initial form data for action/condition/trigger selectors (#21899) 2024-09-07 00:34:59 +02:00
renovate[bot] 3d7e243707 Update dependency sortablejs to v1.15.3 (#21885)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 00:31:08 +02:00
renovate[bot] f8a432c89e Update dependency eslint-plugin-import to v2.30.0 (#21910)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 00:29:53 +02:00
renovate[bot] d484b2f63d Update dependency webpack-dev-server to v5.1.0 (#21914)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 00:28:06 +02:00
Paul Bottein 30d9186031 Bumped version to 20240906.0 2024-09-06 13:46:51 +02:00
Paul Bottein cd74367acc Use primary config entry for device (#21903)
* Use primary config entry for device

* Fix types
2024-09-06 13:43:29 +02:00
Bram Kragten 618cd9d9e5 Remove device subscription from zwave node config (#21891)
remove device subscription from zwave node config
2024-09-05 13:40:10 +02:00
Paul Bottein 0ff2f1bf75 Hide top label for number selector using box mode (#21888) 2024-09-05 10:22:39 +02:00
renovate[bot] d28f1f07e7 Update dependency lint-staged to v15.2.10 (#21881)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 10:05:06 +02:00
Bram Kragten 6aa5bc2d8b Bumped version to 20240904.0 2024-09-04 10:50:16 +02:00
Bram Kragten 76fc0c7ab1 Change update logic in ha-data-table (#21874)
* Change update logic in ha-data-table

* use time of last request
2024-09-04 10:49:32 +02:00
Paul BotteinandPaulus Schoutsen 7aa7019386 Move badge styling into ha-badge component to reuse it (#21864)
* Move badge styling into ha-badge component to reuse it

* Fix error badge

* Update src/components/ha-badge.ts

Co-authored-by: Paulus Schoutsen <[email protected]>

---------

Co-authored-by: Paulus Schoutsen <[email protected]>
2024-09-04 10:48:55 +02:00
Joakim Sørensen b69f0964c9 Fix compression of hassio builds (#21869) 2024-09-04 10:01:58 +02:00
renovate[bot] 2f9b6d000b Update dependency @codemirror/commands to v6.6.1 (#21863)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-04 07:48:35 +02:00
Paul Bottein 94f186c436 Bumped version to 20240903.1 2024-09-03 18:51:49 +02:00
Bram Kragten 449f858ac8 Merge branch 'master' into dev 2024-09-03 18:47:42 +02:00
Paul Bottein 91a2f2cf24 Bumped version to 20240903.0 2024-09-03 18:37:42 +02:00
Paul Bottein 2c975d4f41 Add advanced yaml only row_span option for sections (#21833) 2024-09-03 18:20:55 +02:00
renovate[bot] ab534933fc Update dependency @babel/runtime to v7.25.6 (#21847)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-03 11:37:28 -04:00
renovate[bot] e353aaa339 Update vaadinWebComponents monorepo to v24.4.7 (#21854)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-03 11:35:44 -04:00
Paul Bottein 020904f8f6 Hide section title when the section is hidden (#21862) 2024-09-03 10:41:15 +02:00
Wendelin fa8b3f006d Fix autofill for ha-selector-text (#21861) 2024-09-03 09:35:17 +02:00
d9ce20992c 20240902.0 (#21857)
* Update dependency @bundle-stats/plugin-webpack-filter to v4.15.0 (#21837)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update dependency marked to v14.1.0 (#21829)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Bump actions/upload-artifact from 4.3.6 to 4.4.0 (#21850)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.6...v4.4.0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add padding to no info badge (#21844)

* Add padding to no info badge

* Update src/panels/lovelace/badges/hui-entity-badge.ts

Co-authored-by: Paul Bottein <[email protected]>

---------

Co-authored-by: Paul Bottein <[email protected]>

* Fix section not displayed when empty and string config (#21852)

* Move edit mode actions next to section block (#21840)

* Fix rendering of alerts in markdown when not breaking (#21856)

* Perform action on every entity (#21845)

* Bumped version to 20240902.0

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Simon Lamon <[email protected]>
Co-authored-by: Joakim Sørensen <[email protected]>
2024-09-02 17:30:17 +02:00
Paul Bottein a09f44dcd2 Bumped version to 20240902.0 2024-09-02 17:29:27 +02:00
Simon Lamon c709059c00 Perform action on every entity (#21845) 2024-09-02 17:23:46 +02:00
Joakim Sørensen 5613df1d01 Fix rendering of alerts in markdown when not breaking (#21856) 2024-09-02 17:21:58 +02:00
Paul Bottein d8013a4db9 Move edit mode actions next to section block (#21840) 2024-09-02 13:21:24 +02:00
Paul Bottein 216dbc4d41 Fix section not displayed when empty and string config (#21852) 2024-09-02 13:21:13 +02:00
Simon LamonandPaul Bottein c40751dadd Add padding to no info badge (#21844)
* Add padding to no info badge

* Update src/panels/lovelace/badges/hui-entity-badge.ts

Co-authored-by: Paul Bottein <[email protected]>

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-09-02 12:35:28 +02:00
dependabot[bot] f58d3ad670 Bump actions/upload-artifact from 4.3.6 to 4.4.0 (#21850)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.6...v4.4.0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-02 12:00:26 +02:00
renovate[bot] 682f5345cc Update dependency marked to v14.1.0 (#21829)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-29 22:35:42 -04:00
renovate[bot] a69771c1f8 Update dependency @bundle-stats/plugin-webpack-filter to v4.15.0 (#21837)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-29 22:33:57 -04:00
Bram Kragten 22de449dda 20240829.0 (#21836) 2024-08-29 16:40:01 +02:00
Bram Kragten 05a27b9399 Bumped version to 20240829.0 2024-08-29 16:36:32 +02:00
Paul Bottein 32083ea13d Use dense layout for section view (#21830)
* Use dense layout for section view

* Make it an option in view settings

* Add expandable
2024-08-29 16:36:00 +02:00
Paul Bottein 18210f35b5 Put number selector label above the input (#21835) 2024-08-29 16:15:55 +02:00
Paul Bottein 362a6f46fe Don't use the word column in section view (#21834) 2024-08-29 15:30:25 +02:00
Paul Bottein 1c9d411d3a Put boolean selector helper inside field (#21831) 2024-08-29 14:24:59 +02:00
Bram Kragten 6d84523456 Revert "Adds throttler to config pages for state entity updates (#21646)"
This reverts commit 00eb820e36.
2024-08-29 12:18:26 +02:00
Paul Bottein 2a18706a13 Take column span into account to determine the max number of columns (#21827) 2024-08-29 09:58:17 +02:00
karwosts 87b58b0bbd Fix untracked consumption string (#21825) 2024-08-29 09:57:53 +02:00
Simon Lamon 3ebb268b57 Migrate polymer paper tab in badge card editor (#21627)
* paper tab badge

* Remove copy paste from card editor
2024-08-29 09:55:51 +02:00
Simon Lamon 2df097cd1b Add default config automation typings (#21657)
* typings

* fixes

* fixes

* Update more typings
2024-08-29 09:55:23 +02:00
Paul Bottein 8349e47c17 20240828.0 (#21822) 2024-08-28 16:02:54 +02:00
Paul Bottein 4913932c97 Bumped version to 20240828.0 2024-08-28 16:00:16 +02:00
Paul BotteinandBram Kragten 19f057a51b Add title and description translation support to expandable form (#21745)
* Add title and description translation support to expandable form

* Fix type

* handle translations in sections

* Rename prefix to path + refactor

* Fix section name and description

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-08-28 13:49:38 +00:00
Paul Bottein c556742ff4 Column span better editor (#21820)
* Add label, unit and max for column span option

* Display the right number of columns in the layout editor

* improve translations
2024-08-28 12:58:46 +00:00
Paul Bottein 8b5f731d0c Use right grid column count inside grid section (#21819) 2024-08-28 12:53:29 +00:00
Bram Kragten 9568677926 Add support for service section icons (#21806)
* Add support for service section icons

* remove backwards compatibility core handles it

* Update icons.ts
2024-08-28 14:44:08 +02:00
karwosts 93ee5de1b4 Plot 'untracked consumption' on devices detail energy graph (#21632)
* Plot 'untracked consumption' on devices detail energy graph

* skip when there are no energy sources

* rename variable
2024-08-28 14:24:19 +02:00
Paul Bottein 2f68ee0efc Allow a card to span the full width of a section (#21758)
* Limit card size with the grid size

* Set full option in YAML

* Export card grid size

* Add editor

* Set full column for map card and iframe by default

* Do not set string variable
2024-08-28 12:01:40 +02:00
Paul Bottein 5a229e3c88 Allow resizing section to span multiple columns (#21742)
* WIP: Allow to resize section

* Use listeners

* Rename variables

* Rename variables

* Remove column min width

* Make column breakpoints optional

* Use old logic to calculate the number of columns

* Remove breakpoints

* Simplify column span
2024-08-28 09:54:03 +02:00
Paul Bottein 7c5f947865 Change entity badge display type to 3 booleans : name, state and icon (#21798)
* Change display type to 3 boolean : name, state and icon for entity badge

* Fix image url

* Fix not found entity

* Update state-label badge migration
2024-08-28 09:53:07 +02:00
DouweandDamian Sypniewski e9cbd54979 Option to change new badge size (#21676)
* Update hui-entity-badge.ts

add option to chsnge badge size

* Update hui-entity-badge.ts

Co-authored-by: Damian Sypniewski <[email protected]>

* Update hui-entity-badge.ts

prettier

* Update hui-entity-badge.ts

Fixed something strange

---------

Co-authored-by: Damian Sypniewski <[email protected]>
2024-08-28 09:02:34 +02:00
cf55824899 Add more-info click to energy table and detail device graph (#21737)
* feat: more info energy dashboard

* add more info to device details usage

* Add some more-info click to energy

---------

Co-authored-by: Muka Schultze <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2024-08-28 08:43:53 +02:00
karwosts 395586ddeb Adjust schedule helper UI with minute granularity (#21073)
* Adjust schedule helper UI with minute granularity

* Update en.json

* ha-button
2024-08-28 08:41:53 +02:00
karwosts 9c48dbf232 Revert display_precision override for duration format (#21755)
Remove precision override for duration format
2024-08-28 08:35:11 +02:00
Simon Lamon 00eb820e36 Adds throttler to config pages for state entity updates (#21646)
throttler
2024-08-28 08:27:28 +02:00
Bram Kragten 6b99cda982 Hide deprecated stt/tts engines, use name provided by core (#21805)
* Hide deprecated stt/tts engines, use name provided by core

* Update ha-tts-picker.ts
2024-08-27 23:51:01 +02:00
renovate[bot] 9bde0e876d Update Yarn to v4.4.1 (#21809)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-27 13:39:32 -04:00
Denis Shulyaka 9482fcb04b Fallback data flow label translation (#21704) 2024-08-27 13:59:44 +02:00
renovate[bot] 883ad58f52 Update dependency @codemirror/view to v6.33.0 (#21804)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-27 12:17:41 +02:00
Paulus Schoutsen 11ace6002a Fix Assist pipeline defaults (#21796)
* Fix Assist pipeline defaults

* Always set to NONE if nothing

* Rewrite for readability
2024-08-26 23:51:37 +02:00
puddlyandSimon Lamon c416daeb92 Expand the ZHA channel selection dialog text (#21801)
* Expand the ZHA channel selection dialog text

* Drop unnecessary `It is recommended to`

* Update src/translations/en.json

Co-authored-by: Simon Lamon <[email protected]>

* Replace `hui-warning` with just `ha-alert`

* Avoid creating translations for just channel numbers

---------

Co-authored-by: Simon Lamon <[email protected]>
2024-08-26 20:30:35 +00:00
Eric Shtivelberg 061521a979 Fix duplicate and non lazy loading of hui-calendar-card (#21788)
* fix: hui-calendar-card is not lazy loaded

* reorder imports
2024-08-26 17:42:33 +02:00
renovate[bot] d3f73baa36 Update vaadinWebComponents monorepo to v24.4.6 (#21794)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 11:06:02 -04:00
Paul Bottein 3037bf494c Add description to service translations (#21759) 2024-08-26 11:33:51 +02:00
Paulus Schoutsen b4dd953128 Hide tag entities from default dashboard (#21793)
Tag integration now creates entities. They need to be hidden from the default dashboard.
2024-08-26 09:44:52 +02:00
renovate[bot] 430a28f350 Update dependency webpack to v5.94.0 (#21791)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-25 13:47:03 -04:00
Paul Bottein 0eacf3fdac Show error badge when an unknown entity is used in badges (#21757)
* Show error badge when wrong entity set in badges
2024-08-25 13:48:05 +02:00
karwosts 7f9bf69a08 Fix tile alarm modes when wrong code entered (#21779) 2024-08-25 13:22:19 +02:00
renovate[bot] 32cca9e30c Update babel monorepo to v7.25.4 (#21789)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-25 13:11:20 +02:00
renovate[bot] d7d62307b8 Update dependency @material/web to v2.1.0 (#21785)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-25 08:13:34 +02:00
renovate[bot] 12bfa5dab2 Update dependency eslint-plugin-wc to v2.1.1 (#21784) 2024-08-24 23:04:00 -04:00
renovate[bot] c0a728bc66 Update dependency tinykeys to v3 (#21773)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-24 14:17:27 +02:00
renovate[bot] 19e8667349 Update dependency chart.js to v4.4.4 (#21771)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-24 13:23:52 +02:00
dependabot[bot] f3688b95d4 Bump micromatch from 4.0.7 to 4.0.8 (#21770)
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.7 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/4.0.8/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.7...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-23 22:07:45 +02:00
karwosts 01f692f05c Render the label on the target selector (#21769)
* Render the label on the target selector

* use label
2024-08-23 20:04:09 +00:00
renovate[bot] d652f6382d Update dependency @bundle-stats/plugin-webpack-filter to v4.14.2 (#21768)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 21:53:31 +02:00
renovate[bot] c0f96d9473 Update dependency husky to v9.1.5 (#21767)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 17:54:56 +02:00
renovate[bot] f1a2af24b3 Update dependency core-js to v3.38.1 (#21764)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 17:54:17 +02:00
renovate[bot] 8501098bd1 Lock file maintenance (#21734)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-22 21:18:12 +02:00
Gourav SoniandPaul Bottein a235f76985 fix: Add destructive styling to delete button in dashboard config rem… (#21729)
* fix: Add destructive styling to delete button in dashboard config removal dialog

* changed translation key 'remove' to 'delete'

* Update src/translations/en.json

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-08-21 18:25:42 +00:00
Paul Bottein 968c0de141 Fix migration from call-service to perform-action (#21746) 2024-08-21 20:13:09 +02:00
Paul Bottein 77d8aff1f4 Add missing label_id and floor_id key in action struct (#21753)
* Add missing label_id key in action struct

* Add missing floor_id key in action struct
2024-08-21 19:59:02 +02:00
Steve Repsher 5e486d9cf0 Correct serving modern build to macOS companion app (#21724) 2024-08-21 11:51:07 -04:00
Michael Arthur f730761b3f add returning lawn mower state (#21740) 2024-08-21 16:34:33 +02:00
Steve Repsher 46fc9c1a33 Remove old ha-form-style (#21751) 2024-08-21 06:29:13 +02:00
Denis Shulyaka 8ed68bf295 Add check for conversation entity (#21736)
* Add check for conversation entity

* Use true as default
2024-08-20 13:53:07 +02:00
renovate[bot] 5622180d42 Update dependency @octokit/rest to v21.0.2 (#21739) 2024-08-19 20:30:33 -04:00
renovate[bot] ef1f9b371d Update dependency @types/chromecast-caf-receiver to v6.0.17 (#21733)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-18 23:08:06 -04:00
renovate[bot] 0b79684cf1 Update dependency @codemirror/legacy-modes to v6.4.1 (#21731)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-18 23:07:03 -04:00
renovate[bot] bc68d8df11 Update dependency marked to v14 (#21654)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-17 12:59:26 +02:00
renovate[bot] ebbade2fb7 Update dependency @lezer/highlight to v1.2.1 (#21719) 2024-08-16 21:59:36 -04:00
renovate[bot] 2b5f778f2e Update dependency @bundle-stats/plugin-webpack-filter to v4.14.1 (#21718) 2024-08-16 21:58:23 -04:00
Paul Bottein 91fc2383cb Add badges for sidebar view (#21715) 2024-08-16 16:52:52 +02:00
Paul Bottein 1080a8c961 Add missing box shadow theme variable to entity badge (#21714) 2024-08-16 16:18:29 +02:00
renovate[bot] 6144049f8c Update dependency lint-staged to v15.2.9 (#21712)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-16 12:42:11 +02:00
renovate[bot] 4ad3ad6e93 Update dependency @codemirror/view to v6.32.0 (#21694)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-16 06:41:35 +02:00
karwosts 16e84296da Use defined response_variable for json copy_to_clipboard button (#21705) 2024-08-16 06:40:56 +02:00
karwosts 3e1ea8d236 fix ha-card-condition-state invert selector (#21711) 2024-08-16 06:39:55 +02:00
Martin Vyšňovský 8c9996fc81 Make delete button red when removing todo item (#21466) (#21708) 2024-08-16 06:39:27 +02:00
Charles Garwood 336b5fb547 Update styling on Template dev-tools (#21661)
* Update styling on Template dev-tools

* Remove unnecessary divs
2024-08-15 09:14:27 +02:00
G Johansson 3f0f3affb6 Remove deprecated mailbox (#21689)
Remove mailbox
2024-08-14 12:38:06 +02:00
renovate[bot] 6754b8893b Update dependency eslint-plugin-unused-imports to v4.1.3 (#21669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-13 16:00:05 +00:00
Adam Kapos 6ec4323c76 Enable background transparency & effects on badges (#21667)
Enable background effects on badges
2024-08-13 09:23:09 +02:00
dependabot[bot] 20408392d2 Bump actions/upload-artifact from 4.3.5 to 4.3.6 (#21671)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-12 08:46:05 +02:00
dependabot[bot] b030a5d1f0 Bump relative-ci/agent-action from 2.1.11 to 2.1.12 (#21672)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-12 08:44:59 +02:00
Franck Nijhof a9f8eb5ab1 Merge branch 'dev' 2024-08-09 20:00:53 +02:00
Franck Nijhof e26e6d7c2d Bumped version to 20240809.0 2024-08-09 19:58:41 +02:00
Simon Lamon e0c98e4524 Fix left over "script" in default config when using perform action (#21650) 2024-08-09 19:55:57 +02:00
Simon Lamon 2832f501d1 Fix scripted blueprints (#21649) 2024-08-09 19:38:33 +02:00
renovate[bot] d2f2d682a9 Update CodeMirror (#21628)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-09 06:25:41 +00:00
renovate[bot] 54b2121273 Update dependency @lit-labs/virtualizer to v2.0.14 (#21637)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-09 08:15:58 +02:00
renovate[bot] c5ca731e05 Update dependency qrcode to v1.5.4 (#21638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-09 08:15:11 +02:00
renovate[bot] fd9c6c5449 Update dependency @bundle-stats/plugin-webpack-filter to v4.14.0 (#21639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-09 08:13:02 +02:00
renovate[bot] 39f4355c1a Update dependency core-js to v3.38.0 (#21617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-08 15:57:47 -04:00
Vaibhav Tank 35fed0b0e2 Fix logout button text color on confirmation dialog (#21595) 2024-08-08 09:18:38 +02:00
Madelena Mak f0f0aefca1 Clean up OHF badge for splash screen (#21593)
* Clean up OHF badge for splash screen

* Fix demo logo size

* Fixed the code to Bram's feedback

* Pixel pushing
2024-08-08 07:56:51 +02:00
karwosts b60864086f Localize some column headers (#21622) 2024-08-08 07:55:15 +02:00
Jesse Hills 6629f372fc Fix typo in assist-render-pipeline-events.ts (#21620) 2024-08-08 07:54:35 +02:00
dependabot[bot] ec9a95dde0 Bump @75lb/deep-merge from 1.1.1 to 1.1.2 (#21616)
Bumps [@75lb/deep-merge](https://github.com/75lb/deep-merge) from 1.1.1 to 1.1.2.
- [Commits](https://github.com/75lb/deep-merge/compare/v1.1.1...v1.1.2)

---
updated-dependencies:
- dependency-name: "@75lb/deep-merge"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-07 12:16:34 +00:00
renovate[bot] 3cd0c49c78 Update dependency luxon to v3.5.0 (#21609)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-07 14:03:12 +02:00
karwosts e1ae95dd9f Fix webhook textfield icon color for dark mode (#21610) 2024-08-07 08:47:26 +02:00
Franck Nijhof ab38dad156 Bumped version to 20240806.1 2024-08-06 16:55:24 +02:00
Franck Nijhof 1ddeca3eeb Merge branch 'dev' 2024-08-06 16:54:59 +02:00
Franck Nijhof 9c6aef033d Add indicator/alert to YAML integrations on integration page (#21607) 2024-08-06 16:48:29 +02:00
Bram Kragten b23aacef84 Condition testing display fix (#21606) 2024-08-06 16:33:54 +02:00
Bram Kragten 7d218c89ae Improve state badge migration (#21603) 2024-08-06 16:13:12 +02:00
Bram Kragten ffa96d789f Update weather card layout options (#21604) 2024-08-06 16:12:36 +02:00
Franck Nijhof f08f455698 Merge branch 'dev' 2024-08-06 12:10:50 +02:00
Franck Nijhof 5eae163796 Bumped version to 20240806.0 2024-08-06 12:09:23 +02:00
Franck Nijhof 9e7f01a009 Only migrate automation actions if there are any (#21599) 2024-08-06 11:39:52 +02:00
Simon Lamon eeffa3561c Add badge label (#21598) 2024-08-06 11:38:08 +02:00
renovate[bot] f096eb2031 Update dependency lint-staged to v15.2.8 (#21597)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-06 10:25:36 +02:00
renovate[bot] 3aad7431da Migrate renovate config (#21594)
Migrate config renovate.json

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-06 10:08:09 +02:00
renovate[bot] a4f167559c Update Yarn to v4.4.0 (#21592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-05 23:15:32 -04:00
renovate[bot] 44a0582e83 Update vaadinWebComponents monorepo to v24.4.5 (#21585)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-05 23:12:45 -04:00
Bram Kragten 735560c552 Merge branch 'dev' 2024-08-05 17:16:34 +02:00
Bram Kragten 94c28ea534 Bumped version to 20240805.1 2024-08-05 17:16:24 +02:00
karwosts 5b7c20af33 fix broken perform-action translation in gauge card editor (#21589) 2024-08-05 15:15:39 +00:00
Paul Bottein 4719775926 Allow name in state content for badges (#21576) 2024-08-05 17:14:10 +02:00
Bram Kragten 5c30c1647c Show name for badges without config (#21588)
* Show name for badges without config

* also for state label type
2024-08-05 15:12:28 +00:00
karwosts 3ba572ee37 Fix pointer cursor issues (#21587)
* Fix pointer cursor issues

* one more
2024-08-05 17:07:03 +02:00
karwosts 0adee7d189 Use getStubConfig for picture-elements (and more fixes) (#21579) 2024-08-05 17:05:31 +02:00
Bram Kragten b5c2b555bc Merge branch 'dev' 2024-08-05 16:37:14 +02:00
Bram Kragten 51b6d7758d Bumped version to 20240805.0 2024-08-05 16:36:50 +02:00
karwosts 0f21dfadf1 Dont load unnecessary translations for helper dialog (#21573) 2024-08-05 16:33:36 +02:00
Robert Resch 54e8a34f21 Change yaml integration icon (#21586) 2024-08-05 16:32:04 +02:00
Steve Repsher dfbf4abd5d Link old service worker to new name (#21581) 2024-08-05 15:52:46 +02:00
dependabot[bot] 62d8434596 Bump actions/upload-artifact from 4.3.4 to 4.3.5 (#21583) 2024-08-05 08:36:50 +02:00
renovate[bot] d6df228e17 Update dependency @babel/preset-env to v7.25.3 (#21572)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-03 13:08:44 +00:00
Simon Lamon 00faa16349 Add some other tile cards to design page (#21563) 2024-08-03 15:06:41 +02:00
renovate[bot] 3c92fe4170 Update typescript-eslint monorepo to v7.18.0 (#21546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 20:58:26 +02:00
renovate[bot] 02a9d67c7d Update babel monorepo to v7.25.2 (#21548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 20:57:20 +02:00
Bram Kragten b368f886f9 20240802.0 (#21562) 2024-08-02 16:11:50 +02:00
Bram Kragten 88718bca23 Bumped version to 20240802.0 2024-08-02 15:56:25 +02:00
Bram Kragten 33931b29a1 Try to force refresh if old service worker is used (#21561)
* Try to force refresh if old service worker is used

* Update register-service-worker.ts
2024-08-02 15:32:21 +02:00
Bram Kragten a9310fdde0 fix hui-action-editor (#21560) 2024-08-02 14:27:05 +02:00
Bram Kragten d634317438 Fix tabs not shown in edit card dialog (#21559) 2024-08-02 13:46:25 +02:00
Bram Kragten a41978f647 Await starting audio recorder (#21557) 2024-08-02 12:57:57 +02:00
Bram Kragten 7e799bf639 migrate script sequence to new format (#21556) 2024-08-02 12:47:41 +02:00
Paulus Schoutsen 73617711ff Show in Assist dialog if assistant is unable to control Home Assistant (#21549)
* Show in Assist dialog if assistant is unable to control Home Assistant

* Update src/translations/en.json
2024-08-02 12:31:06 +02:00
karwosts edbfc22bf8 Add a warning for improper usage of the template selector (#21545)
* Add a warning when adding template yaml in the template selector

* refinement
2024-08-02 12:30:09 +02:00
karwosts 5e75f6a6c2 Add a destructive confirmation when deleting a picture-elements element (#21541) 2024-08-02 12:28:37 +02:00
karwosts 6dc80306e8 Add help links to helper integration config flow forms (#21537) 2024-08-02 12:27:48 +02:00
Simon Lamon acd1b04b0a Fix width of numeric features in tile card (#21543) 2024-08-01 23:57:02 +02:00
renovate[bot] 7e9d09e11c Update dependency magic-string to v0.30.11 (#21540)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-01 18:37:07 +02:00
renovate[bot] 038f7ec000 Update dependency husky to v9.1.4 (#21539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-01 18:36:30 +02:00
renovate[bot] 08959cbabf Update dependency @codemirror/view to v6.29.1 (#21532)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-01 18:16:37 +02:00
Bram Kragten b611674ebd Minify ohf logo (#21528) 2024-08-01 12:29:16 +02:00
Bram Kragten da75eecfa5 Merge branch 'dev' 2024-08-01 11:15:27 +02:00
Bram Kragten 2f696bd511 Fix demo service worker (#21527)
* fix demo service worker

* cast too
2024-08-01 09:11:27 +00:00
Bram Kragten 9e3284a7db Add ping to mock hass (#21526)
add ping to mock hass
2024-08-01 08:54:43 +00:00
Bram Kragten 0c3471e0b7 Skip database migration check on demo (#21525) 2024-08-01 08:54:14 +00:00
karwosts 1ca0b58aca Picture elements editor minor adjustments (#21512)
* Picture elements editor minor adjustments

* image selector for image element

* revert change to expanded
2024-08-01 10:43:08 +02:00
renovate[bot] adceed689b Update dependency marked to v13.0.3 (#21513)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-31 21:32:03 +02:00
Bram Kragten fdf829bc81 20240731.0 (#21510) 2024-07-31 16:21:25 +02:00
Bram Kragten 574fc99889 Rename service button to action button (#21511) 2024-07-31 16:19:32 +02:00
Bram Kragten 3a83cb36a1 Bumped version to 20240731.0 2024-07-31 15:27:19 +02:00
Paulus SchoutsenandBram Kragten a458ccf995 Update OHF logo on loading screen (#21509)
* Update OHF logo on loading screen

* tweak

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-07-31 13:24:30 +00:00
Bram Kragten 560e2c9438 Migrate service call element to use action key (#21506)
Migrate service call element
2024-07-31 14:54:01 +02:00
Bram Kragten 78becb5440 Allow and migrate action key in service action (#21503) 2024-07-31 14:36:14 +02:00
Bram Kragten da2e530601 Migrate state label badge to entity badge (#21507) 2024-07-31 14:34:51 +02:00
Bram Kragten a88a7c5236 Change yaml config of UI service call actions (#21508) 2024-07-31 14:34:43 +02:00
karwosts 0a095c6f21 Add enable_millisecond to duration selector (#21498)
Add enable_milliseconds to duration selector
2024-07-31 12:34:57 +02:00
Bram Kragten e8dd835eeb rename actions in UI editors to interactions (#21505) 2024-07-31 11:39:32 +02:00
e05c66444a Picture Elements Visual editor (#19718)
* preliminary edits

* more functional prototype

* all types implemented

* mostly style and localization updates

* fix empty conditional case

* Move getConfigElement to elements themselves

* drop unneeded imports

* move struct validation to individual element editors

* description for unknown types

* Update src/panels/lovelace/editor/config-elements/elements/hui-service-button-element-editor.ts

Co-authored-by: Simon Lamon <[email protected]>

* Update src/panels/lovelace/editor/config-elements/elements/hui-state-icon-element-editor.ts

Co-authored-by: Simon Lamon <[email protected]>

* Update src/panels/lovelace/editor/config-elements/elements/hui-service-button-element-editor.ts

Co-authored-by: Simon Lamon <[email protected]>

* Update src/panels/lovelace/editor/config-elements/elements/hui-state-badge-element-editor.ts

Co-authored-by: Simon Lamon <[email protected]>

* Update hui-picture-elements-card-row-editor.ts

* Fix merge mistake

* Update src/panels/lovelace/create-element/create-picture-element.ts

remove comment

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Simon Lamon <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2024-07-31 11:16:57 +02:00
Paulus Schoutsen d0e61ca31a Show OHF logo on loading and about screen (#21504)
* Show OHF logo on loading screen

* Also add OHF logo to about page
2024-07-31 09:12:11 +00:00
Simon Lamon 1f90a0c2e5 Add translation for unknown entity (#21484)
* unknown entity

* prettier
2024-07-31 11:05:14 +02:00
illuznandcoderabbitai[bot] dbd84901f8 Implement show_empty functionality for the markdown card (#21379)
* Implement show_empty functionality

* Implement show_empty functionality

* import fireEvent

* Order imports correctly

* Lint with prettier

* Unhide card when appropriate

* only run show code if card is hidden

* Commit coderabbit code cleanup

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* linting

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-07-31 08:58:45 +00:00
Simon Lamon 0aa25dbed9 Don't eat spaces while searching (#21479) 2024-07-31 10:58:39 +02:00
Steve Repsher dd74a35d3f Use Brotli compression for modern build (#17906) 2024-07-31 10:57:52 +02:00
Simon Lamon b1d8ec0fe4 Call a service: Split remaining service_data's into data and target (#21440)
* service_data into data and target

* Add other possible targets
2024-07-31 10:46:00 +02:00
Simon Lamon cd4af674a3 Move some polymer paper-tabs to mwc-tabs (#21390)
* dev-tools

* entity card editor

* edit section dialog

* edit view

* Set the page from the router back in dev tools

* Remove changes to developer tools

* Prettier
2024-07-31 10:44:52 +02:00
renovate[bot] 7a6491a901 Update babel monorepo to v7.25.0 (#21497)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-30 16:59:34 +02:00
Bram Kragten 8d20303d54 Show helpers setup in YAML also in the UI (#21500) 2024-07-30 15:13:05 +02:00
Bram Kragten a5786b4761 Fix translation loading and manifest fetching for integration page (#21501) 2024-07-30 12:48:28 +02:00
Bram Kragten 4ade39543d Add created/modified to registry tables (#21494) 2024-07-30 11:18:50 +02:00
renovate[bot]andSimon Lamon a85dda3365 Update dependency husky to v9.1.3 (#21443)
* Update dependency husky to v9.1.3

* Follow migration guide (options removed in 10.x, but deprecation notice right now)

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Simon Lamon <[email protected]>
2024-07-30 07:44:43 +00:00
renovate[bot] e578904ff7 Update dependency @material/web to v2 (#21489)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-29 17:56:22 +02:00
renovate[bot] 09f0da1ead Update dependency @codemirror/view to v6.29.0 (#21488)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-29 17:38:14 +02:00
Mike Degatano 2faa8fec17 Music Assistant repository is now built in (#21496) 2024-07-29 15:09:33 +00:00
renovate[bot] 945c4a66b1 Update dependency tar to v7.4.3 (#21491)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-29 11:43:43 +02:00
renovate[bot] 5d794e7e88 Update dependency tar to v7.4.2 (#21482)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 08:02:34 +02:00
renovate[bot] 88a33bee14 Update dependency typescript to v5.5.4 (#21474) 2024-07-26 02:09:07 -04:00
renovate[bot] 35ec9af23f Update typescript-eslint monorepo to v7.17.0 (#21472) 2024-07-26 02:07:16 -04:00
renovate[bot] dd331173ad Update dependency tar to v7.4.1 (#21469)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-25 16:22:04 +00:00
renovate[bot] 885ccb84cb Update dependency eslint-plugin-unused-imports to v4.0.1 (#21468)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-25 18:06:19 +02:00
0358fe5614 Clearable time selector (#18590)
* initial attempt at clearable time selector

* only show clear button if there is a value

* use null instead of undefined.

* leave event value undefined

* move clear button into input

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: J. Nick Koston <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2024-07-25 18:05:59 +02:00
renovate[bot] 89d842c2a8 Update dependency @bundle-stats/plugin-webpack-filter to v4.13.4 (#21457)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-24 18:44:04 +02:00
Erik Montnemery 8911b55316 Adjust message about offline database migration (#21460)
Tweak message about offline database migration
2024-07-24 13:32:27 +02:00
Paul Bottein 6791e85625 Set 56px row height for new section button and title (#21456) 2024-07-23 13:13:35 +02:00
Erik Montnemery 79618ce114 Fix offline db migration support (#21452)
* Fix offline db migration support

* Add error handling
2024-07-23 11:47:47 +02:00
QuentameandSimon Lamon 87ba0e73dd picture cards: add person image support (#20593)
* picture cards: add person image support

* fix: person attributes typing

* review: apply comment from @coderabbitai

* fix lint:types

* review: put person domain in image_entity config

* add picture card compatibility & exemple in gallery

* fix lint

* Allow only image or person domains on image_entity editor config

Co-authored-by: Simon Lamon <[email protected]>

* fix domain type

* gracefully use the default config.image if the person don't have an image

* gracefully use the default config.image if the person don't have an image (that works)

---------

Co-authored-by: Simon Lamon <[email protected]>
2024-07-23 09:50:34 +02:00
renovate[bot] 567a2ea019 Update dependency @braintree/sanitize-url to v7.1.0 (#21451)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-23 09:23:46 +02:00
karwosts 811c34b489 Button to copy service response as json for templates (#21226)
* Button to copy service response as json for templates
2024-07-22 18:06:48 +02:00
Paul Bottein dd22ae446a Don't show badge container if all badges are hidden (#21449) 2024-07-22 15:45:06 +02:00
Bram Kragten d96ddf968c Show yaml setup integrations in the UI (#21447)
* Show yaml setup integrations in the UI

* Update en.json

* Move config entry logic to memoize function
2024-07-22 15:44:08 +02:00
karwosts bbb64870a1 Leave climate humidity mode if entity stops supporting it (#21423)
* Leave climate humidity mode if entity stops supporting it

* check changedProps
2024-07-22 10:28:51 +02:00
dependabot[bot] f05ddd3fcd Bump softprops/action-gh-release from 2.0.6 to 2.0.8 (#21446)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-22 10:05:35 +02:00
renovate[bot]andSteve Repsher 0612e25d9f Lock file maintenance (#21430)
* Lock file maintenance

* bump vaadin to 24.4.4

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2024-07-20 13:32:20 -04:00
renovate[bot] 559ecf3eae Update dependency @lokalise/node-api to v12.7.0 (#21442)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-20 15:57:09 +00:00
renovate[bot] ddb31a8342 Update dependency @codemirror/view to v6.28.6 (#21441)
* Update dependency @codemirror/view to v6.28.5

* Update dependency @codemirror/view to v6.28.6

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-20 15:56:25 +00:00
Onne 1c978b7cce Fix last point of line charts. And small other fixes to line charts. (#21235)
* Fixes last point of graphs.

Especially for items that don't often change state, the last state could
be essentially be ignored for quite a while, using the average of the
last series of entries instead.

Also for detailed graphs, the initial values could be off, because the
initial last value would be computed on bad data, resulting in NaN.

And no longer adds a double entry at end if graph has only one point.
2024-07-20 08:20:52 +00:00
renovate[bot] 9d9624c960 Update dependency @octokit/rest to v21.0.1 (#21439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-20 08:08:00 +02:00
Paul Bottein 179245e1aa Add picker for badges (#21436) 2024-07-19 20:56:29 +02:00
Steve RepsherandQuentame 345000a0e9 Redefine browser requirements for modern (latest) builds (#16506)
* Redefine browser requirements for modern (latest) builds

* Rename babel class properties plugin

* Fix only allowing latest Android

* Add browsers released in last year

* Use at or above for utilization (no change to browsers currently)

* Only use time query (no effective change)

* Add transform for private methods

* Fix some typos in browserslist config

Co-authored-by: Quentame <[email protected]>

* bump browserslist-useragent-regex

* Add fallback feature detection for Array.prototype.findLast

---------

Co-authored-by: Quentame <[email protected]>
2024-07-19 10:49:19 -04:00
Paul Bottein d94d5f96c3 Fix state content options when opening (#21437) 2024-07-19 16:48:03 +02:00
Bram Kragten 0fa3538db5 Change abi of wheel to cp312 (#21435) 2024-07-19 15:50:50 +02:00
Jan-Philipp Benecke 1749725229 Remember hidden detailed energy device statistics (#21406)
* Remember hidden detailed energy device statistics

* Do not subscribe
2024-07-19 13:56:38 +02:00
Bram Kragten 83e94d32e3 Bumped version to 20240719.0 2024-07-19 12:49:36 +02:00
Bruno Pantaleão Gonçalves 7fed4e6b37 Tell mobile app to scan for Improv devices when 'Add Integration' tap (#21420) 2024-07-19 12:48:51 +02:00
leonardmgh 677cffd650 Fix halfopen websocket (#18934)
* initial suggestion

* Refactored implementation

* Updated implementation

* Cancel existing inverval
2024-07-19 10:07:55 +00:00
Paul Bottein 1faa1480e4 Remove badges configuration from view settings (#21433) 2024-07-19 10:03:18 +00:00
karwosts 8cb63ac36d Fix quirks in URL field in view editor (#21410) 2024-07-19 11:54:35 +02:00
Paul Bottein 6e29b77e94 Use layout property for panel view (#21418) 2024-07-19 11:53:46 +02:00
dougiteixeira 38e7b8c467 Allow use trigger/condition selector in config flows (#21431) 2024-07-19 09:39:06 +00:00
karwosts d078807255 Show a fallback string when repair translation fails (#21400) 2024-07-19 11:05:03 +02:00
Steve Repsher 82d84de426 Enable service worker for legacy build (#21177) 2024-07-19 10:54:27 +02:00
Paul Bottein 729a12af0c Add new badges design with UI editor (#21401)
* Add new entity badge

* Improve badge render

* Add edit mode

* Add editor

* Increase height

* Use hui-badge

* Add editor

* Add drag and drop

* Fix editor translations

* Fix icon

* Fix inactive color

* Add state content

* Add default config

* Fix types

* Add custom badge support to editor

* Fix custom badges

* Add new badges to masonry view

* fix lint

* Fix inactive color

* Fix entity filter card

* Add display type option

* Add support for picture

* Improve focus style

* Add visibility editor

* Fix visibility

* Fix add/delete card inside section

* Fix translations

* Add error badge

* Rename classes

* Fix badge type

* Remove badges from section type

* Add missing types
2024-07-19 10:52:22 +02:00
Paul Bottein ce43774b5f Fix tile card padding in vertical mode (#21409) 2024-07-18 21:03:21 +02:00
karwosts e63d82d291 Fix persistent notification count on server restart (#21405)
* Fix persistent notification count on server restart
2024-07-18 20:53:17 +02:00
Stefan Agner d997cfcef0 Add error handling to device delete (#21403)
Currently, if device delete fails, the frontend stays silent. The
user might get hints in the Core logs, but nothing shown on the
frontend.

This adds error handling similar to other places.
2024-07-18 20:50:46 +02:00
renovate[bot] 219f548261 Update typescript-eslint monorepo to v7.16.1 (#21426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-18 20:34:51 +02:00
karwosts ee2b10912c Stop closed event propagating in automation editor elements (#21424) 2024-07-18 20:34:13 +02:00
renovate[bot] e3b0630797 Update dependency @babel/core to v7.24.9 (#21422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-18 20:15:53 +02:00
Joost LekkerkerkerandPaul Bottein 30d0293a4b Add model_id to device info card (#21417)
* Add model_id to device info card

* Update src/panels/config/devices/device-detail/ha-device-info-card.ts

Co-authored-by: Paul Bottein <[email protected]>

* Add model_id to device info card

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-07-17 18:09:25 +02:00
Stefan AgnerandBram Kragten 7468ab985a Use Thread BR extended address in WS API calls (#21172)
* Use extended address in WS API calls

This follows the HA Core change and passes the extended address to the
OTBR WS API calls where necessary. It also follows the new OTBR info
format which potentially includes multiple OTBRs.

This allows to support multiple OTBR managed by a single system.

Note: There is one corner case when none of the OTBR is found via
discovery. In this case we offer to reset the OTBR. Currently we simply
offer this for the primary or first one found.

* Fix lint error

* Update src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts

Co-authored-by: Bram Kragten <[email protected]>

* Update src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts

Co-authored-by: Bram Kragten <[email protected]>

* Use Record type to map OBTR data

* Add labels to Thread network operation icons

* Apply suggestions from code review

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-07-17 09:06:09 +02:00
renovate[bot]andSimon Lamon ef3758da55 Update dependency prettier to v3.3.3 (#21408)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Simon Lamon <[email protected]>
2024-07-16 18:32:13 +02:00
renovate[bot] 2a970b8416 Update fullcalendar monorepo to v6.1.15 (#21404)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-16 17:54:29 +02:00
Paul Bottein f70126eb62 Adjust row height in grid (#21311)
* Set row height to 56px

* Adjust padding and sizes

* Adjust margin

* Fix pointer-events

* Fix image size

* Clean code
2024-07-15 14:11:03 +02:00
Paul Bottein f87296d978 Add state content component (#21370)
* Move state content into its own component for reusability

* Add entity state content selector

* Use live timer

* Rename live timer to remaining time and remove remaining attribute from state content list

* Move default in state content component

* Fix picker
2024-07-15 14:08:00 +02:00
renovate[bot] 2890d5c8cf Update vaadinWebComponents monorepo to v24.4.3 (#21399)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-15 09:45:05 +00:00
Simon Lamon 15a7ace278 Add on primary color to ha-slider (#21389)
add on primary
2024-07-15 11:38:48 +02:00
dependabot[bot] 71a2c40dd7 Bump home-assistant/wheels from 2024.01.0 to 2024.07.1 (#21398)
Bumps [home-assistant/wheels](https://github.com/home-assistant/wheels) from 2024.01.0 to 2024.07.1.
- [Release notes](https://github.com/home-assistant/wheels/releases)
- [Commits](https://github.com/home-assistant/wheels/compare/2024.01.0...2024.07.1)

---
updated-dependencies:
- dependency-name: home-assistant/wheels
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-15 09:00:16 +02:00
dependabot[bot] a08bbcd1b4 Bump actions/setup-node from 4.0.2 to 4.0.3 (#21397)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4.0.2...v4.0.3)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-15 06:59:05 +00:00
renovate[bot] 5ec257fa18 Update dependency webpack to v5.93.0 (#21394)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-14 22:30:44 +02:00
renovate[bot] 9b01c0b2f0 Update dependency eslint-plugin-lit-a11y to v4.1.4 (#21392)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-14 17:21:05 +02:00
renovate[bot] 7dd860c539 Update babel monorepo to v7.24.8 (#21391)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-14 17:20:19 +02:00
karwosts dbc2db2591 Make config flow previews more generic (#21382)
* Make config flow previews more generic
2024-07-14 17:01:21 +02:00
renovate[bot] 29aa57229c Update dependency gulp-zopfli-green to v6.0.2 (#21385) 2024-07-13 20:40:32 -04:00
renovate[bot] 8d74174be1 Update dependency glob to v11 (#21375)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-13 11:39:17 +02:00
Paul Bottein a60242f042 Fix state color for locking and unlocking state (#21369) 2024-07-13 11:35:03 +02:00
renovate[bot] db314522d7 Update dependency glob to v10.4.5 (#21374)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-13 01:18:34 +02:00
renovate[bot] 7b66ee06eb Update vaadinWebComponents monorepo to v24.4.2 (#21376)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-13 01:15:19 +02:00
renovate[bot] 3f34dacec9 Update typescript-eslint monorepo to v7.16.0 (#21372)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-11 21:16:54 +02:00
Bram Kragten 277650e1c1 Update en.json 2024-07-11 12:26:23 +02:00
Paul Bottein e59c04c685 Display live remaining time for timer on tile card (#21290)
Display timer by default on tile card
2024-07-11 11:09:14 +02:00
Bram Kragten d9583582e6 Rename service call to action (#21362) 2024-07-11 09:00:15 +02:00
Bram Kragten 5ead5ed058 Fix unhiding default hidden column (#21358)
the first commit is the right commit...
2024-07-10 18:25:57 +02:00
renovate[bot] f2993602f9 Update dependency superstruct to v2 (#21324)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 17:09:06 +02:00
Simon Lamon 11b490d145 Dev tools events: Add a clear events button (#21353)
Clear events
2024-07-10 15:01:56 +02:00
Bram Kragten cd4937b539 Fix unhiding default hidden columns (#21354)
* Fix unhiding default hidden columns

* Update dialog-data-table-settings.ts
2024-07-10 14:58:26 +02:00
Paul Bottein daa36788e0 Reload the card when changing the configuration in editor (#21351) 2024-07-10 12:39:50 +02:00
Paul Bottein 0447247add 20240710.0 (#21350) 2024-07-10 08:34:04 +02:00
Paul Bottein 7edc4efc95 Bumped version to 20240710.0 2024-07-10 08:21:12 +02:00
Bram Kragten 144d278e4a Don't block interaction on disabled automation selector (#21347) 2024-07-09 17:03:40 +02:00
Paul Bottein 541453c245 Fix hidden conditional card in editor preview (#21344) 2024-07-09 15:37:05 +02:00
G Johansson ca53af5c41 Add turn_on/off to FanEntity (#21339) 2024-07-09 10:26:42 +02:00
renovate[bot] bd54eb40a7 Update dependency glob to v10.4.3 (#21343)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-09 09:59:36 +02:00
renovate[bot] 8ff2396a53 Update vaadinWebComponents monorepo to v24.4.1 (#21334)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-08 17:42:39 +02:00
Bram Kragten c85e29f2bb Use localize func in table settings dialog (#21335) 2024-07-08 17:41:59 +02:00
karwosts e7a749ef7d Add title to stack editor UI (#21328)
Add title to stack editor UI
2024-07-08 14:13:29 +02:00
dependabot[bot] bef53aef57 Bump actions/upload-artifact from 4.3.3 to 4.3.4 (#21332) 2024-07-08 08:42:44 +02:00
G Johansson 877d0db1bb Add defrosting to HVAC actions for ClimateEntity (#21330) 2024-07-07 18:54:58 +02:00
renovate[bot] aa49d6ef6b Update dependency marked to v13 (#21094)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-07 13:32:07 +02:00
renovate[bot] d646ce4995 Update dependency @codemirror/view to v6.28.4 (#21321)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-06 17:42:38 +02:00
renovate[bot] d6e6844f23 Update dependency @codemirror/autocomplete to v6.17.0 (#21320)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-06 17:23:49 +02:00
renovate[bot] 66e26e1a27 Update dependency @braintree/sanitize-url to v7.0.4 (#21314)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-05 21:19:50 +02:00
Paul Bottein b7473b58fb Fix sensor card display (#21313) 2024-07-05 21:01:19 +02:00
Bram Kragten 895333aa05 20240705.0 (#21306) 2024-07-05 13:40:27 +02:00
Bram Kragten 42b5fbec9b Bumped version to 20240705.0 2024-07-05 13:22:23 +02:00
Paul Bottein f7072c247e Improve sensor card graph inside section grid (#21289) 2024-07-05 12:17:31 +02:00
f995f19f06 Clarify remove vs. delete (#21297)
Co-authored-by: Simon Lamon <[email protected]>
Co-authored-by: Franck Nijhof <[email protected]>
2024-07-05 09:00:19 +02:00
renovate[bot] 7f50504908 Update dependency typescript to v5.5.3 (#21300)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-04 19:21:19 +00:00
Paul Bottein dc93a0ce54 Fix energy selection date card in grid layout (#21293)
Fix energy selection card in grid layout
2024-07-04 21:18:50 +02:00
Simon Lamon 3e4d06fca3 Change delete/remove wording in tag area to be consistent (#21299)
delete tags
2024-07-04 21:09:34 +02:00
Paul Bottein 050bef0564 Better handle auto height in card resize editor (#21260)
* Add auto-height option to resize editor

* Use min instead of max

* Remove auto height
2024-07-04 21:09:10 +02:00
renovate[bot] 1abebdae21 Update typescript-eslint monorepo to v7.15.0 (#21296)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-04 20:07:42 +02:00
renovate[bot] b411ae0286 Update dependency @lokalise/node-api to v12.6.0 (#21291)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-04 19:18:37 +02:00
Paul Bottein 202bd148ef Fix iframe card overflow in vertical stack (#21282) 2024-07-04 12:29:17 +02:00
renovate[bot] 15589927c8 Update dependency @codemirror/view to v6.28.3 (#21277)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-04 11:46:55 +02:00
Bram Kragten df7b5b08cf Allow custom localize function for datatable (#21270) 2024-07-04 11:46:10 +02:00
Steve Repsher 8b9fa9bc39 Clean up imports and unopened tag on device config page (#21274) 2024-07-04 10:01:01 +02:00
Bram Kragtenandcoderabbitai[bot] c07e1122e1 Tweak demo, add some translations, tweak media players (#21271)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-07-04 08:11:39 +02:00
Paul Bottein 1ceef7c3d3 Set min column size to 1 for vertical tile card (#21275) 2024-07-03 22:32:56 +02:00
karwosts e332364ec0 Fix automation picker overflow menu for keyboard (#21048)
* Fix automation picker overflow menu for keyboard

* some updates from review

* typing

* no removeEventListener

* updates from review
2024-07-03 11:56:44 -04:00
Bram Kragten 97c4cf9391 Hide some things in demo (#21268) 2024-07-03 13:33:00 +00:00
Bram Kragten 522f66423b Fix demo map panel (#21265) 2024-07-03 13:26:19 +00:00
Bram Kragten 58ba9f628a 20240703.0 (#21264) 2024-07-03 14:27:49 +02:00
Bram Kragten 57e48e2561 Bumped version to 20240703.0 2024-07-03 14:23:31 +02:00
Bram Kragten 37af77dabe Make sure unhidden columns are put at the correct place (#21262) 2024-07-03 14:23:05 +02:00
Paulus Schoutsen 2b5fba4a30 Add support for capability attributes in demo (#21263) 2024-07-03 14:08:38 +02:00
Paulus Schoutsen d833910796 Fix demo development inside a dev container (#21261) 2024-07-03 13:52:53 +02:00
Paul Bottein 81c796beb4 Fix area card background and improve grid support (#21259) 2024-07-03 13:16:55 +02:00
Paul Bottein 19ee150395 Remove layout options for media player (#21258) 2024-07-03 11:54:11 +02:00
Steve Repsher 82329833f5 Remove Safari 14.0 patch for delegatesFocus (#21247) 2024-07-03 06:28:57 +02:00
Bram Kragten 28ced4bfd3 20240702.0 (#21255) 2024-07-02 21:37:23 +02:00
Bram Kragten ab3b8593f4 Bumped version to 20240702.0 2024-07-02 21:21:25 +02:00
Paul Bottein 094203f0b4 Add min/max row/columns to resize card editor (#21244)
* Add min/max row/columns to resize card editor

* Add humidifier and thermostat card

* Removed unused condition

* Don't set max rows

* Add media card

* Add button card

* Use same rule if there is footer

* Don't show disabled cell

* Add min rows to sensor card

* Update sizes

* Update sizes

* Update sizes

* Add min rows to weather forecast card
2024-07-02 21:19:29 +02:00
Bram KragtenandPaul Bottein 9a2051a679 Change take control of blueprint UX (#21254)
* Change take control of blueprint UX

* Add margin to ha-alert

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-07-02 21:18:58 +02:00
Paul Bottein 09accb3071 Ignore aspect ratio in grid section (#21248)
* Ignore aspect ratio in grid section

* Feedback
2024-07-02 18:50:42 +02:00
Simon Lamon 7d432cd11a Fix logbook card display/reloading issues (#21253)
remove await logic
2024-07-02 18:44:36 +02:00
Paulus Schoutsen 7258e31348 Tweak first section in section demo (#21249)
* Tweak first section in section demo

* Allow automation entities be toggled
2024-07-02 17:11:16 +02:00
Steve Repsher 5707ca0016 Fix English only translations build (#21245) 2024-07-02 15:13:04 +02:00
Paulus Schoutsen 76abfea6ed Hide demo card when showing demo from frontpage (#21243)
* Hide demo card when showing demo from frontpage

* Store in constant on load

* reverse

* Remove filter

* move constnat

* Make Home Assistant title
2024-07-02 14:59:52 +02:00
Steve Repsher d01377da3c Fix Webpack bundling of recorder worklet (#21239)
* Fix Webpack bundling of recorder worklet
2024-07-01 16:31:22 +02:00
Simon LamonandBram Kragten e97be57e3b Application credentials: small improvements (#21233)
* small improvements

* Update ha-config-application-credentials.ts

* Update ha-config-application-credentials.ts

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-07-01 13:11:52 +02:00
Paulus Schoutsen c71a051b6d Remove ga.js (#21242) 2024-07-01 12:11:26 +02:00
Paul Bottein f41fab6968 Improve take control of automation/script wording (#21241) 2024-07-01 11:12:15 +02:00
renovate[bot] bda61da666 Update dependency @material/web to v1.5.1 (#21224)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-30 09:34:43 +02:00
renovate[bot] 93445ced74 Update dependency eslint-plugin-lit-a11y to v4.1.3 (#21227)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-29 13:30:05 -04:00
Paul Bottein fd6a192db1 20240628.0 (#21223) 2024-06-28 22:04:49 +02:00
Paul Bottein b81314fc1f Bumped version to 20240628.0 2024-06-28 21:11:07 +02:00
Simon Lamon 9beb4c39ff Implement search in application credentials table (#21219)
Implement search functions
2024-06-28 21:10:24 +02:00
Simon Lamon 18a6f8d64d Add credential to user after creation (#21221) 2024-06-28 21:08:51 +02:00
Paul Bottein beec720b9b Use display contents in horizontal stack only (#21217) 2024-06-28 20:56:01 +02:00
Paul Bottein 85865af0c3 Fix update config mecanism in hui-card (#21218) 2024-06-28 20:17:57 +02:00
Simon Lamon d33cf4f199 Reload application credentials after single delete (#21216)
Reload application credentials after delete
2024-06-28 14:46:27 +02:00
Simon Lamon 4a1087c969 Add storage variables for application credentials config table (#21215)
Implement storage variables
2024-06-28 14:45:33 +02:00
Simon Lamon cbc95a5e2d Fix icon header labels in Automations, Scene and Script tables (#21214)
Change icon header labels
2024-06-28 14:44:57 +02:00
Simon Lamon dcd4c39978 Fix add application credential keyboard handling (#21205)
double primaryAction
2024-06-28 14:44:30 +02:00
renovate[bot] 11d832c2ea Update dependency @bundle-stats/plugin-webpack-filter to v4.13.3 (#21197) 2024-06-27 23:00:52 -04:00
renovate[bot] 3b15d26500 Update typescript-eslint monorepo to v7.14.1 (#21195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-27 21:57:31 +02:00
renovate[bot] df65038341 Update dependency mocha to v10.5.0 (#21194)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-27 14:55:43 -04:00
Bram Kragten d72e8c35d8 20240627.0 (#21192) 2024-06-27 20:02:18 +02:00
Paul Bottein da2865d8bf Fix size of cards inside stack cards (#21190)
* Fix size of cards inside stack cards

* Apply style everywhere

* Fix stack

* Fix grid stack

* Set block only for square
2024-06-27 19:31:55 +02:00
Bram Kragten fd64d17d88 Bumped version to 20240627.0 2024-06-27 19:30:48 +02:00
Paul Bottein 5273293cd6 Add last updated property to tile card state content (#21191) 2024-06-27 18:46:39 +02:00
Bram Kragten 49c42fc757 Add support for native QR code scanner (#21187) 2024-06-27 17:15:33 +02:00
Paul Bottein 7603fa3aa8 Don't set hass to undefined in lovelace cards. (#21189)
* Wait for hass and config before building the card

* Don't use setter

* Improve code readability

* Use hasupdated

* Rename build to load
2024-06-27 16:49:10 +02:00
karwosts 7aa005e0ce Fix device integration filter for entityless devices (#21136)
* Fix device integration filter for entityless devices

* code review
2024-06-27 12:40:09 +02:00
renovate[bot] b2a55dd737 Update dependency @types/chromecast-caf-receiver to v6.0.16 (#21183)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-27 06:34:34 +02:00
Paul Bottein 5bc3ad4c63 20240626.2 (#21181) 2024-06-26 23:19:57 +02:00
Paul Bottein ccad1afcf0 Bumped version to 20240626.2 2024-06-26 23:18:57 +02:00
Paul Bottein 530745d20d Revert "20240626.1" (#21180)
Revert "20240626.1 (#21179)"

This reverts commit a16cae0671.
2024-06-26 23:18:27 +02:00
Paul Bottein a16cae0671 20240626.1 (#21179)
* Fix undefined value in search (#21175)

* Fix hass object in nested hui-card (#21178)

* Bumped version to 20240626.1
2024-06-26 23:09:42 +02:00
Paul Bottein 231c923776 Bumped version to 20240626.1 2024-06-26 23:08:56 +02:00
Paul Bottein b08b67179e Fix hass object in nested hui-card (#21178) 2024-06-26 21:05:47 +00:00
Paul Bottein d9f1b06199 Fix undefined value in search (#21175) 2024-06-26 20:37:07 +02:00
Bram Kragten 8d0c4e4a52 20240626.0 (#21171) 2024-06-26 12:49:50 +02:00
Bram Kragten 4b7526c8a3 Merge branch 'master' into dev 2024-06-26 12:38:37 +02:00
Bram Kragten 6267ab5ed3 Bumped version to 20240626.0 2024-06-26 12:36:57 +02:00
Paul Bottein ae94231800 Use resize controller for weather card (#19806)
* Use resize controller for weather card

* Don't use observe
2024-06-26 12:35:49 +02:00
Bram Kragten 7d28f3f585 Allow to hide and sort columns in data tables (#21168)
* Allow to hide and sort columns in data tables

* fix unused

* store
2024-06-26 11:51:32 +02:00
Bram Kragten adea384f40 Update logo_x.svg 2024-06-26 11:50:18 +02:00
Bram KragtenandPaul Bottein 55b66250f4 Take convert of blueprint automation and script (#21151)
* substituteBlueprint

* WIP ux

* Simplify feature

* Add take control to scripts

* Add translations and catch error

* Clean import

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-06-26 11:24:47 +02:00
Philip AllgaierandSimon Lamon 182111912c Rename "Twitter" to "X (formerly Twitter)" (#20694)
* Rename "Twitter" to "X (formerly Twitter)"

* Add translations

* Show x logo on light mode

---------

Co-authored-by: Simon Lamon <[email protected]>
2024-06-26 11:13:52 +02:00
renovate[bot] 8a0924bf1f Update dependency typescript to v5.5.2 (#21144)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-26 10:50:25 +02:00
Simon Lamon 94dc9308ea Replace octal escape sequences (#21156)
* replace octal escape characters

* Add disable eslint
2024-06-26 10:19:52 +02:00
Paul Bottein f42a9ac070 Ignore diacritics (accents) in search (#21150)
* Ignore diacritics in search

* Rename variable
2024-06-26 10:07:31 +02:00
Paul Bottein 1acada625f Improve user and person dialogs (#21162)
* Improve user dialog

* Update person dialog

* Improve add user dialog

* Fix secondary option
2024-06-26 10:03:43 +02:00
Paul Bottein 128dbbcfef Better resizing support for thermostat card (#21120)
* Better resizing support for thermostat card

* Use resize controller

* Fix typings

* Don't use query

* Use render to set style
2024-06-26 10:03:10 +02:00
Bram Kragten 57d8544dbf Add menu with remove option to application credentials (#21139) 2024-06-26 09:47:46 +02:00
Bram Kragten 76daa2bb7f Add support for sections in filters (#21157) 2024-06-25 20:01:10 +02:00
renovate[bot] 9cbb51549b Update dependency @types/mocha to v10.0.7 (#21163)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 12:42:54 +00:00
Paul Bottein bd1ede4145 Fix grid size picker size (#21161) 2024-06-25 12:24:04 +02:00
Paul Bottein 321a085c0e Resize card editor (#21115) 2024-06-24 22:10:31 +02:00
Bram Kragten 6a3041988a Allow to change username (#21152) 2024-06-24 18:51:43 +02:00
renovate[bot] 23fcdf876c Update dependency @codemirror/view to v6.28.2 (#21154)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-24 12:24:01 -04:00
Bram Kragten 00f325e961 Support expandable in initial form data (#21153) 2024-06-24 17:30:43 +02:00
renovate[bot] d00b3cfc61 Update Yarn to v4.3.1 (#21149)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-24 13:33:19 +02:00
karwosts 4cc9e74ea8 Fix 'Move to view' operation (#21142) 2024-06-24 11:56:06 +02:00
dependabot[bot] a56b9a96ce Bump softprops/action-gh-release from 2.0.5 to 2.0.6 (#21148)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 08:37:48 +02:00
renovate[bot] d4b5f4bc14 Update dependency @octokit/rest to v21 (#21146)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-23 23:22:08 -04:00
renovate[bot] cf1523ee73 Update dependency @types/chromecast-caf-receiver to v6.0.15 (#21138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-23 12:54:15 +02:00
renovate[bot] f5d571ca84 Update dependency webpack to v5.92.1 (#21134)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-22 20:54:24 +02:00
karwosts 362e92f313 Add some weather attribute icons and units (#21133) 2024-06-22 15:42:26 +02:00
Jan-Philipp BeneckeandFranck Nijhof 5ddf72b973 Add preview to Threshold config & option flow (#19845)
Co-authored-by: Franck Nijhof <[email protected]>
2024-06-22 13:32:40 +02:00
renovate[bot] 6e78c28f51 Update dependency @codemirror/autocomplete to v6.16.3 (#21130)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-22 09:10:52 +02:00
renovate[bot] 772f0bb669 Update dependency tar to v7.4.0 (#21129)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-22 08:51:43 +02:00
renovate[bot] 846c2a848f Update dependency glob to v10.4.2 (#21127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-22 08:51:08 +02:00
renovate[bot] 8495757005 Update dependency @braintree/sanitize-url to v7.0.3 (#21126) 2024-06-21 22:09:25 -04:00
karwosts 9960d38b91 Offer to delete no-longer-recorded statistics (#21119) 2024-06-21 11:18:24 +02:00
Simon Lamon d3222f8bb0 Various fixes in dialogs (#20935)
* allow escape and scrim action for repair dialogs

* improve delete entity dialogs

* reiterate refresh token dialog wordings (kept refresh token for now)

* improve device delete dialogs

* Improve deletable text and invalidation
2024-06-21 11:15:01 +02:00
Simon LamonandBram Kragten 2e5cce5409 Replace paper-listbox in cast frontend (#19954)
* hc-cast

* Update cast/src/launcher/layout/hc-cast.ts

Co-authored-by: Bram Kragten <[email protected]>

* Update cast/src/launcher/layout/hc-cast.ts

Co-authored-by: Bram Kragten <[email protected]>

* Update cast/src/launcher/layout/hc-cast.ts

Co-authored-by: Bram Kragten <[email protected]>

* Fixes

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-06-21 11:13:13 +02:00
Paul Bottein f78946447f Show card preview inside section in card editor (#21065)
* Show card inside section in card editor

* Replace edit mode by preview

* Add backward compatibility for custom cards

* Re-order props
2024-06-21 11:12:18 +02:00
Jay Turner eb0579ddc5 Use EnergyCardBaseConfig where appropriate (#20896)
* Use EnergyCardBaseConfig where appropriate

* Update type key

* Rename class

* Run prettier
2024-06-21 11:11:41 +02:00
Steve Repsher 686424fc70 Add CoreJS polyfills to modern build (#20676) 2024-06-21 11:07:39 +02:00
renovate[bot] 039e9b40bd Update typescript-eslint monorepo to v7.13.1 (#21121)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-20 14:41:07 -04:00
karwosts 8272bef890 Sort filter-domains on translated name (#21116) 2024-06-19 17:31:04 +02:00
Kevin JahrensandPaul Bottein 62528b2413 Fix back paths (#21112)
Co-authored-by: Paul Bottein <[email protected]>
2024-06-19 07:08:14 +00:00
renovate[bot] fa24f529e0 Lock file maintenance (#21114)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-19 08:58:38 +02:00
dependabot[bot] 43a54f6cda Bump ws from 7.5.9 to 7.5.10 (#21111) 2024-06-18 20:56:53 -04:00
Paulus Schoutsen 9c153bbd58 Split out service entities (#21076)
* Hide notify entiites from generated dashboard

* Split out service entities on device info page

* Update src/panels/lovelace/common/generate-lovelace-config.ts

* Split service -> notify/assist
2024-06-18 08:58:45 +02:00
Bram Kragten 27afe9ecb7 Wrap code editor for template selector (#21104)
* Wrap code editor for template selector
2024-06-17 19:15:55 +00:00
dependabot[bot] 72f989e2bd Bump actions/checkout from 4.1.6 to 4.1.7 (#21102) 2024-06-17 10:19:48 +02:00
renovate[bot] a6ef46565f Update dependency @codemirror/view to v6.28.1 (#21099)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-16 09:43:11 +02:00
renovate[bot] a35ac09688 Update dependency lint-staged to v15.2.7 (#21098)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-15 20:55:19 +02:00
Douwe 27024135ea Update hui-grid-section.ts (#21088)
Add variable to align title
2024-06-15 18:21:42 +02:00
Franck Nijhof 8759ed740a Make the radius of the home zone configurable (#21096) 2024-06-15 14:41:09 +02:00
Franck Nijhof bb3e8ae33d Update home-assistant-js-websocket to 9.4.0 (#21097) 2024-06-15 08:03:55 -04:00
renovate[bot] b5b60c9bf0 Update vaadinWebComponents monorepo to v24.4.0 (#21089)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-15 00:12:37 -04:00
renovate[bot] 3b6a2cf7d8 Update dependency @codemirror/view to v6.28.0 (#21081)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-15 00:09:09 -04:00
renovate[bot] 7e10e14102 Update dependency lint-staged to v15.2.6 (#21092)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-14 21:21:25 +02:00
renovate[bot] a580abab4a Update dependency webpack to v5.92.0 (#21090)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-14 20:21:11 +02:00
renovate[bot] 11523c08c4 Update Yarn to v4.3.0 (#21084) 2024-06-14 12:29:02 -04:00
renovate[bot] 7a8988528b Update dependency prettier to v3.3.2 (#21087)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-14 08:42:55 +02:00
renovate[bot] 2a6380f083 Update typescript-eslint monorepo to v7.13.0 (#21082)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-14 08:29:55 +02:00
Paul Bottein f43319a3ae Bumped version to 20240610.1 2024-06-13 20:49:43 +02:00
Paul Bottein e8eefaf1d3 Fix current mode not selected in card feature (#21063) 2024-06-13 20:46:50 +02:00
Steve Repsher 06d82a4925 Do not inject Intl polyfill into ecma402-abstract package (#21074) 2024-06-13 20:45:50 +02:00
Paulus Schoutsen 4991d52fcc Hide notify entities from generated dashboard (#21075)
Hide notify entiites from generated dashboard
2024-06-13 20:45:35 +02:00
Simon Lamon 0b391eafcf Fix diagnostic download not downloading (#21078) 2024-06-13 20:45:12 +02:00
Paul Bottein 0bb34830f8 Fix selected state for selected config entries (#21079) 2024-06-13 20:45:02 +02:00
Paul Bottein 29881c8bb4 Fix selected state for selected config entries (#21079) 2024-06-13 18:26:45 +02:00
Simon Lamon 56254ddf03 Fix diagnostic download not downloading (#21078) 2024-06-13 13:31:30 +02:00
Paulus Schoutsen 007ba70641 Hide notify entities from generated dashboard (#21075)
Hide notify entiites from generated dashboard
2024-06-13 08:04:27 +02:00
Steve Repsher 3e1227b064 Do not inject Intl polyfill into ecma402-abstract package (#21074) 2024-06-12 14:45:57 -04:00
Matthias Alphart 067e179f26 Translation support for device automation extra fields (#20567)
* Translation support for device trigger extra fields

* Prefer component translation over default

* Move device trigger extra_fields translations to backend

* move translations for extra_fields of conditions and actions too
2024-06-12 14:09:50 +02:00
AlCalzone 9a3f7df25e Z-Wave: Prevent closing the Add Device dialog when user input is required (#20999)
* prevent closing the Z-Wave Add node dialog when user input is required

* ask user for confirmation before leaving page during bootstrapping

* fix: no non-null assertion
2024-06-12 13:48:40 +02:00
Paul Bottein c7b4e8f37c Fix current mode not selected in card feature (#21063) 2024-06-12 13:40:44 +02:00
Paul Bottein bfa8b886ab Make update actions sticky on more info (#21053) 2024-06-12 13:39:04 +02:00
Paul Bottein 433c00b73a Move card loading logic into hui-card (#21018)
* Move card rebuild to hui-card

* Use hui card in stack card

* add once to event

* Do not use state

* Use hui card in conditional card

* Use editMode instead of lovelace in hui card

* Fix edit mode

* Use hui-card in card dialog and panel todo

* Fix edit mode

* Fix types

* Migrate entity filter card

* Update demo card

* Fix UI view

* Allow edit mode attribute

* Remove unused condition

* Remove unused section preview code

* Remove useless check for config
2024-06-12 13:38:21 +02:00
Stefan Agner a497f42f73 Move send credentials to phone to main Thread configuration panel (#21066)
Move send credentials to phone to main view

Currently the button is hidden in the more info dialog, and even there
it seems that it is currently not rendered correctly.

This moves the button to the main view, make it more obvious while
still keeping it out of the way if the feature is not applicable.
2024-06-12 13:35:29 +02:00
Stefan Agner 165723cb5b Clarify Thread credentials transfer direction (#21067)
"Import credentials" on a phone can be missunderstood as importing
credentials from Home Assistant to the phone, but this is not what
this command is doing.

Use "Send credentials to Home Assistant" to make it clear what the
direction of the transfer is.
2024-06-12 13:32:51 +02:00
Bruno Pantaleão Gonçalves 42b5fa696a Fix "canImportKeychain" boolean for thread panel (#21062) 2024-06-11 10:04:13 +02:00
renovate[bot] 59062d96a8 Update dependency @rollup/plugin-commonjs to v26 (#21037)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-10 21:56:01 +02:00
Paulus Schoutsen d36bbfe07d Hide hidden updates from sidebar/settings (#21058) 2024-06-10 15:52:24 -04:00
Bram Kragten 4a8bb5034d Merge branch 'dev' 2024-06-10 19:50:24 +02:00
Bram Kragten 0d489213a4 Bumped version to 20240610.0 2024-06-10 19:50:10 +02:00
koostamas c54acc9369 Fix automation describeCondition for number state type (#21052)
When using a number state condition in an automation, the UI used an incorrect evaluation when trying to describe the condition which made the label default to the default value.
To fix this, I just changed the evaluation to check directly for `undefined` value.
2024-06-10 19:19:26 +02:00
Simon Lamon 562bc084f0 Revert fullcalendar back to v6.1.11 (#21039)
* Drop fullcalendar back to v6.1.11

* Add resolution
2024-06-10 09:23:53 +02:00
karwosts 6fce2f35a5 Add a title to triggered dialog (#21046) 2024-06-09 21:33:58 +02:00
karwosts f4e24bed2e Fix cancel button in section edit (#21045) 2024-06-09 12:54:38 +00:00
renovate[bot] 09969c0e2d Update babel monorepo to v7.24.7 (#21035)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-08 19:52:09 +02:00
renovate[bot] 4b0181774b Update CodeMirror (#21022)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-08 19:51:08 +02:00
renovate[bot] 272db5e9e8 Update dependency @rollup/plugin-replace to v5.0.7 (#21036)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-08 19:50:43 +02:00
renovate[bot] 9ae3a824d9 Update dependency prettier to v3.3.1 (#21033)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-08 12:29:12 +02:00
renovate[bot] 9db55c9391 Update dependency @lit-labs/virtualizer to v2.0.13 (#21029)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-08 09:42:52 +02:00
renovate[bot] 59697127c0 Update dependency @rollup/plugin-replace to v5.0.6 (#21031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-08 08:50:00 +02:00
renovate[bot] 565600e945 Update dependency @codemirror/view to v6.26.4 (#21021)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-07 16:08:38 +02:00
karwosts 721eebf367 Add floor selector to script fields (#21016) 2024-06-07 13:02:58 +02:00
renovate[bot] f5ae842167 Update typescript-eslint monorepo to v7.12.0 (#21014) 2024-06-06 20:35:13 -04:00
renovate[bot] 3575734ed0 Update dependency @codemirror/language to v6.10.2 (#21008) 2024-06-06 20:34:16 -04:00
karwosts 4e8de1f64d Todo button menu: add stop propagation (#20996) 2024-06-05 11:43:21 +02:00
Bram Kragten a8366c6416 Merge branch 'dev' 2024-06-05 11:42:10 +02:00
Bram Kragten cd73b8ac29 Bumped version to 20240605.0 2024-06-05 11:41:51 +02:00
Paul Bottein 74eca6b1f5 Increase check update timeout to 15s (#20998) 2024-06-05 10:13:28 +02:00
Paulus Schoutsen 9ef0bd6e46 Fix Assist styling (#20997) 2024-06-05 09:53:40 +02:00
renovate[bot] 53eb7f771f Update dependency prettier to v3.3.0 (#20992)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-04 20:27:20 +02:00
Bram Kragten 8ff8c01bba Merge branch 'dev' 2024-06-04 16:47:15 +02:00
Bram Kragten cd62f064cb Bumped version to 20240604.0 2024-06-04 16:47:00 +02:00
Paul Bottein db82b856e0 Fix filter card visibility when show empty is false (#20985) 2024-06-04 16:46:38 +02:00
Paul Bottein ab340e13e9 Fix max option saving using keyboard for script mode (#20984) 2024-06-04 16:46:08 +02:00
Paul Bottein 22c54b3fea Fix card editor size on mobile (#20976) 2024-06-04 16:45:54 +02:00
Alex van den Hoogen 2dd7e598d5 Add missing hui-root callback, fixes #20854 (#20975)
* Add missing hui-root callback, fixes #20854

* Set scroll event listener on hui-root to passive
2024-06-04 14:03:04 +02:00
Raman Gupta d1ce06e368 Fix parameter name in zwave_js WS API (#20981) 2024-06-04 11:21:52 +02:00
Bram Kragten 52f3ff3306 20240603.0 (#20974) 2024-06-03 18:56:01 +02:00
Bram Kragten 9717304b68 Bumped version to 20240603.0 2024-06-03 18:43:00 +02:00
Bram Kragtenandcoderabbitai[bot] c646f3c39a Save search filter in session storage (#20973)
* Save search filter in session storage

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-06-03 18:42:34 +02:00
Paul Bottein 0297ec5a7b Add visibility editor to card editor (#20926)
* Add visibility editor to card editor

* Add translations

* AI suggestion
2024-06-03 18:23:47 +02:00
Paul Bottein e48286c2a0 Fix conditional card visiblity inside section (#20966)
* Fix conditional card visiblity inside section

* Remove _ from protected method
2024-06-03 18:23:30 +02:00
Brynley McDonald f2b2da9877 Fix filters for entity/device from integrations dashboard (#20953) 2024-06-03 17:50:40 +02:00
Simon LamonandPaul Bottein 250f87cfd8 Improve error messages in config entries (#20934)
* Improve error messages and test completely

* Add css back

* Revert ha-alert changes

* Update src/panels/config/integrations/ha-config-integration-page.ts

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-06-03 16:29:47 +02:00
Paul Bottein 9f6afb162a Make lovelace optional in card and section (#20970) 2024-06-03 16:05:41 +02:00
Paul Bottein 0add65feff Use event for section visibility instead of mutation observer (#20967) 2024-06-03 15:54:40 +02:00
Paul Bottein c08d9a9166 Fix card display in view panel (#20972) 2024-06-03 15:49:31 +02:00
ildar170975 d9a9038cec Update ha-entity-marker.ts: add CSS variable for border-radius (#20914)
* Update ha-entity-marker.ts

* fix whitespace
2024-06-03 15:40:46 +02:00
Paul Bottein 6bee3ef45c Fix fallback icon color in dark mode (#20969) 2024-06-03 14:16:18 +02:00
Paul Bottein 3a855f95ad Fix broken config switch in demo (#20971) 2024-06-03 13:37:32 +02:00
Paulus Schoutsen e7f3393ec6 Tweak styles Assist dialog (#20960) 2024-06-03 11:42:43 +02:00
karwosts d7cb4cb537 Revert "Filter unrecorded entities from history panel (#19621)" (#20941)
This reverts commit d88670034a.
2024-06-03 10:03:30 +02:00
renovate[bot] c55720c933 Update dependency @codemirror/autocomplete to v6.16.2 (#20965)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-03 07:49:47 +00:00
dependabot[bot] f78e757485 Bump relative-ci/agent-action from 2.1.10 to 2.1.11 (#20964)
Bumps [relative-ci/agent-action](https://github.com/relative-ci/agent-action) from 2.1.10 to 2.1.11.
- [Release notes](https://github.com/relative-ci/agent-action/releases)
- [Commits](https://github.com/relative-ci/agent-action/compare/v2.1.10...v2.1.11)

---
updated-dependencies:
- dependency-name: relative-ci/agent-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 09:39:01 +02:00
renovate[bot] fa03c58a93 Update dependency tar to v7.2.0 (#20952)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-02 15:21:42 +02:00
renovate[bot] 49f1ad633f Update dependency @codemirror/autocomplete to v6.16.1 (#20948) 2024-06-01 22:39:12 -04:00
renovate[bot] d449e10120 Update dependency eslint-plugin-lit to v1.14.0 (#20950) 2024-06-01 22:37:39 -04:00
renovate[bot] 474c8c243e Update dependency ua-parser-js to v1.0.38 (#20939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-31 14:49:31 -04:00
renovate[bot] e9e53e9451 Update dependency workbox-build to v7.1.1 (#20937)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-31 14:29:02 +02:00
renovate[bot] cfa84f30be Update typescript-eslint monorepo to v7.11.0 (#20932)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-31 00:41:51 -04:00
karwosts 7416ae7dfd Fix double unsubscribe in todo list card (#20928) 2024-05-30 20:21:39 +02:00
Bram Kragten 10a5c4dfb4 20240530.0 (#20925) 2024-05-30 16:27:39 +02:00
Bram Kragten 6f1fa139e7 Bumped version to 20240530.0 2024-05-30 16:08:31 +02:00
Paulus Schoutsen b38a348957 Disable beta menu instead of hiding (#20906) 2024-05-30 15:29:28 +02:00
Simon Lamon f97971faf6 Improve refresh token dialogs (#20917)
* Improve refresh token dialogs

* Remove this
2024-05-30 10:39:15 +02:00
Steve Repsher c5ae9e8497 Remove eslint-plugin-disable (#20902) 2024-05-30 09:49:40 +02:00
Paul Bottein c00287c401 Fix config entry menu (#20908) 2024-05-29 23:49:20 +02:00
Bram Kragten 1a2daf8a7a 20240529.0 (#20901) 2024-05-29 18:27:40 +02:00
Bram Kragten c0e048023d format webpack.cjs 2024-05-29 18:04:24 +02:00
Bram Kragten 431f4937c1 Update webpack.cjs 2024-05-29 17:55:40 +02:00
Bram Kragten 0a55220837 Merge branch 'master' into dev 2024-05-29 17:53:04 +02:00
Paul Bottein 13f01492b4 Add visibility option to dashboard cards (#20840)
* Create hui card

* Add compatiblity with helpers

* Improve layout options

* Fix conditional card

* Add missing import

* Add visibility option in config

* Fix conditions

* Fix case with multiple conditions

* Remove useless set hass
2024-05-29 17:50:16 +02:00
Bram Kragten ce5bcf61f9 Bumped version to 20240529.0 2024-05-29 17:49:29 +02:00
Bram Kragten d31a777135 use image selector for view background (#20898)
* use image selector for view background

* make config future proof

* improvements
2024-05-29 17:29:09 +02:00
Paul Bottein 5cc08cfe0b Fix area card editor when an entity have an unknown device (#20900) 2024-05-29 14:29:04 +00:00
Steve Repsher 3eea7dc6cd Use valid locale for translation test (#20899) 2024-05-29 15:44:56 +02:00
karwosts a629f01300 Collapsible blueprint input sections (#19946)
* Deduplicate blueprint editor code

* Collapsible blueprint sections

* add description

* renamed collapsed

* unused import

* unused import

* Don't allow collapsing sections with required

* Update to new schema
2024-05-29 15:44:11 +02:00
renovate[bot] f1345af526 Update dependency @bundle-stats/plugin-webpack-filter to v4.13.2 (#20897)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-29 12:44:04 +00:00
karwosts 064c51f487 Add a picture uploader to picture-card-editor (#18695)
* Add a picture uploader to picture-card-editor

* add imageSelector

* lint

* Add delete button to picture-upload

* updates from feedback

* fix lint

* Update en.json

* Update selector.ts

* remove delete
2024-05-29 14:32:53 +02:00
karwosts d88670034a Filter unrecorded entities from history panel (#19621)
* Filter unrecorded entities from history panel

* cache result

* Cache excluded entities instead of recorded entities
2024-05-29 14:32:22 +02:00
Georgi Stanojevski 5fab1969a8 Add Macedonian (Македонски) to the frontend. (#20701)
Following: https://developers.home-assistant.io/docs/translations/#maintainer-steps-to-add-a-new-language

Steps 1 and 2.

- It has the "mk" code in the IANA subtag registry.
- Adding it in src/translations/translationMetadata.json
2024-05-29 14:13:45 +02:00
Simon Lamon b3e14d449e Show detailed config entry error inline (#20764)
* Put config entry error inline

* Fixes (show configure button and don't make them interactive)
2024-05-29 14:07:52 +02:00
Steve Repsher 97206ee8fe Inject element polyfills where used using Babel (#20689) 2024-05-29 14:02:40 +02:00
Steve Repsher 7748315fc3 Inject Intl polyfills where used (#20798)
* Inject Intl polyfills where used

* Replace Intl polyfill in localize method with loading intl-messageformat asynchronously

* Remove spurious feature tests for Intl
2024-05-29 14:01:21 +02:00
Paul Bottein e059ca146b Script change icon (#20885)
* Add icon to rename dialog

* Check in entity registry

* Only use icon for script
2024-05-29 13:57:13 +02:00
Jay Turner 56cabeb497 Fix type value on Interface for the energy-usage-graph (#20895) 2024-05-29 10:33:12 +00:00
Paul Bottein 7a7bd87f50 Unify usage of dashboard title (#20853) 2024-05-29 12:29:52 +02:00
Adam Kapos ff9c794659 Add UI for setting view background (#20708)
* Add UI for setting view background

* Update eslint-plugin-unused-imports to fix parse failure

* Changes from review
2024-05-29 12:23:54 +02:00
Bram Kragten 2921161336 Save data table filters in session storage (#20894)
* Save data table filters in session storage

* typing fix

* remove url logic, rename storage key
2024-05-29 12:20:30 +02:00
G JohanssonandPaul Bottein 91e5fcacd5 Add default code to alarm_control_panel (#20062)
Co-authored-by: Paul Bottein <[email protected]>
2024-05-29 11:05:46 +02:00
Raman Gupta febbf34de6 Change Z-Wave JS API model to match zwave-js (#20793)
* Change Z-Wave JS API model to match zwave-js

* fix qrprovisioninginformation

* remove additional properties from QRProvisioningInformation
2024-05-29 09:25:09 +02:00
Bram Kragten 5a2977f4d4 Add collapse & expand all groups (#20891)
* Add collapse & expand all groups

* review suggestion
2024-05-29 09:16:26 +02:00
Paul BotteinandSimon Lamon 7a7a355765 Allowing toggle of expiration date for refresh token (#20846)
* Allowing removal of expiration date for refresh token

* Adjust wording and add icon

* Update current

* Update src/translations/en.json

Co-authored-by: Simon Lamon <[email protected]>

* Update wording

* Allow enable and disable

* Better type

* Better handle errors

* Use relative date

* Update src/panels/profile/ha-refresh-tokens-card.ts

* Update API

---------

Co-authored-by: Simon Lamon <[email protected]>
2024-05-29 09:12:08 +02:00
Paul Bottein ccebae84a7 Use list for change mode dialog (#20890)
* Use list for change mode dialog

* Add listbox role

* Remove unused import
2024-05-28 18:23:12 +02:00
renovate[bot] f96f38ee82 Update dependency lint-staged to v15.2.5 (#20892)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-28 10:46:59 -04:00
renovate[bot] d4056e6a32 Update dependency @bundle-stats/plugin-webpack-filter to v4.13.1 (#20889)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-28 09:31:17 +02:00
renovate[bot] 389a7a6ed9 Update dependency eslint-plugin-unused-imports to v4 (#20884)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-27 14:04:45 -04:00
renovate[bot] 05aecaaaf1 Update babel monorepo to v7.24.6 (#20883)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-27 15:47:29 +02:00
karwosts 085131d546 Rename energy 'Today' button to 'Now' (#20871) 2024-05-27 14:13:55 +02:00
renovate[bot] c2737d5cec Update dependency @bundle-stats/plugin-webpack-filter to v4.13.0 (#20877)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-27 14:11:34 +02:00
renovate[bot] 29ae46d775 Update dependency @material/web to v1.5.0 (#20878)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-27 14:09:55 +02:00
Yosi Levy dfee3ba089 RTL fixes (#20880) 2024-05-27 14:09:29 +02:00
renovate[bot] 1dbb70b964 Update dependency glob to v10.4.1 (#20881)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-27 08:39:34 +02:00
renovate[bot] 1eecc5c0e2 Update dependency glob to v10.4.0 (#20879)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-27 08:22:11 +02:00
Franck Nijhof 81c0bcff0b Add sequence action building block (#20874)
* Add sequence action building block

* This is a non-conditional action

* Render sequence in automation traces graph

* Render trace timeline

* Process review comment
2024-05-26 14:54:05 -04:00
karwosts 6ccbeb8a75 Fix entity picker delete button (#20875) 2024-05-26 15:29:57 +02:00
renovate[bot] f59ed0a72b Update dependency @rollup/plugin-commonjs to v25.0.8 (#20873) 2024-05-25 21:45:51 -04:00
renovate[bot] a9f00ded0f Update fullcalendar monorepo to v6.1.13 (#20869)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-25 16:10:53 +00:00
renovate[bot] 74730ba201 Update dependency lint-staged to v15.2.4 (#20868)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-24 22:12:56 +02:00
renovate[bot] 95b2f7d821 Update dependency glob to v10.3.16 (#20867)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-24 22:07:19 +02:00
renovate[bot] 661b14da54 Update formatjs monorepo (#20847)
* Update formatjs monorepo

* Update dependency @formatjs/intl-locale to v4

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-24 18:49:48 +02:00
Steve Repsher 41e34c0d61 Inject ResizeObserver polyfill where needed (#20754) 2024-05-24 12:21:46 -04:00
Simon Lamon 5d044a06eb Remove empty electricity grid state (#20794)
* Remove empty grid state

* Apply feedback

* AI review
2024-05-24 16:40:47 +02:00
karwostsandBram Kragten f617426808 Bake numeric device classes into formatEntityState (#19878)
* Bake numeric device classes into formatEntityState

* Apply suggestions from code review

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-05-24 16:17:23 +02:00
karwosts 3c3d54243c Fix pick-theme-row and behavior of default theme mode (#20783) 2024-05-24 16:06:22 +02:00
Paul Bottein afc624bf4b Remove strict connection (#20861) 2024-05-24 15:50:45 +02:00
AlCalzone 0991628843 Z-Wave JS: Title-Case "S2 Access Control" (#20850)
* Z-Wave JS: Title-Case "S2 Access Control"

* Apply sentence case to example description
2024-05-24 13:23:17 +00:00
Paul Bottein 34b9c7b9d1 Fix long title for section in add card dialog (#20863) 2024-05-24 15:10:17 +02:00
karwosts d52641b495 Device trigger - sync value with initialHaFormData (#20810)
Device trigger - sync yaml with initialHaFormData
2024-05-24 15:06:40 +02:00
renovate[bot] 80c7fd2bf2 Update typescript-eslint monorepo to v7.10.0 (#20858)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-23 21:36:30 +02:00
Steve Repsher e0062cf190 Inject ElementInternals polyfill where needed (#20818) 2024-05-23 14:25:58 -04:00
karwosts 7d2cee650d Sort yaml reloads on translated domain (#20857) 2024-05-23 16:26:03 +02:00
c0ffeeca7 66560b1f1c Apply sentence-style capitalization to headings (#20855) 2024-05-23 15:22:06 +02:00
NP v/d SpekandPaul Bottein a500b582e3 Modify the way the update shows available updates (#20773)
* Modify the way the update shows available updates

* Update src/data/update.ts

Co-authored-by: Paul Bottein <[email protected]>

* Update src/data/update.ts

* Update src/translations/en.json

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-05-22 16:15:17 +02:00
Adam Kapos 19f94ff8cc Fix app-theme-color not following header color (#20758)
* Fix app-theme-color not following header color

* Revert incorrect fix for #20671 that only applies when a primary color is set by the user
2024-05-22 15:26:13 +02:00
AlCalzone 0b6994d402 Z-Wave JS: Sort security classes from highest to lowest (#20851) 2024-05-22 14:18:09 +02:00
karwostsandPaul Bottein 9fe8f507ec Add configurable actions to Gauge Card (#20833)
* Add actions to gauge card

* struct support

* tap_action in UI

* Apply suggestions from code review

Co-authored-by: Paul Bottein <[email protected]>

* typo

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-05-22 14:10:22 +02:00
Simon Lamon 2113cf5280 Trim search inputs (#20825) 2024-05-22 10:39:32 +02:00
Paul Bottein ae9e1b724f Fix voice assistant expose datatable storage key (#20843) 2024-05-21 19:20:29 +02:00
karwosts 9b28c7cf69 Script editor updates (match automation editor) (#20791)
* Show descriptions in script editor

* Script editor updates (match automation editor)

* review feedback
2024-05-21 19:01:51 +02:00
renovate[bot] d9bac06806 Update formatjs monorepo (#20838)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-21 12:29:21 -04:00
karwosts b1e37cb1e1 Missing checkbox in zwave dialog (#20841) 2024-05-21 11:56:55 -04:00
Paul Bottein a2a89502d8 Add visibility option to sections (conditional section) (#20805)
* Add first version of section visibility option

* Move visibility logic into view

* Simplify section view structure

* Don't add hidden section to dom

* Move visilibity logic to hui-section

* Setup section editor

* Add visibility view

* Add basic settings editor

* Improve visibility editor

* Update conditional base

* Feedbacks

* Better typings
2024-05-21 10:43:23 +02:00
Paul Bottein 4cc5d2d04b Improve open and opening state for lock (#20808)
* Add open and opening color

* Split isAvailable into multiple function

* Use done wording
2024-05-21 09:19:36 +02:00
renovate[bot] 79abcca3b3 Update dependency @braintree/sanitize-url to v7.0.2 (#20836)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-20 19:54:15 +02:00
renovate[bot] 043f383a35 Update dependency chart.js to v4.4.3 (#20835)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-20 13:25:08 -04:00
dependabot[bot] d4dd767941 Bump actions/checkout from 4.1.5 to 4.1.6 (#20829) 2024-05-20 08:29:31 +02:00
renovate[bot] 174f1991b1 Lock file maintenance (#20823)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-19 03:04:28 +00:00
renovate[bot]andSteve Repsher e15495a626 Update dependency eslint-plugin-lit to v1.13.0 (#20775)
* Update dependency eslint-plugin-lit to v1.13.0

* Set attribute-names rule to warning

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2024-05-19 02:49:44 +00:00
renovate[bot] a8a9a797cb Update dependency sinon to v18 (#20822)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-18 21:57:01 -04:00
karwosts 914dbc1e28 Reset select-selector to undefined when cleared (#20821) 2024-05-18 17:28:59 +02:00
Jan-Philipp Benecke 111816f08a Use domain translation in filter for domain search (#20763)
* Use domain translation in filter for domain search
2024-05-18 10:15:29 +02:00
renovate[bot] 1b4534890c Update dependency @lokalise/node-api to v12.5.0 (#20819)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-18 10:02:44 +02:00
renovate[bot] ed6542469d Update dependency core-js to v3.37.1 (#20815) 2024-05-17 08:30:47 -04:00
renovate[bot] 3774a3d6ba Update typescript-eslint monorepo to v7.9.0 (#20812)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-16 16:32:31 -04:00
Bram Kragten bfa293ae3a Allow storing thread credentials in phone keychain (#20743)
* Allow storing thread credentials in phone keychain

* Update dialog-thread-dataset.ts

* use preferred of dataset if available
2024-05-16 10:01:40 +02:00
renovate[bot] 9264adb799 Update vaadinWebComponents monorepo to v24.3.13 (#20802)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-16 09:19:36 +02:00
renovate[bot] 829ea4a9e4 Update dependency @types/chromecast-caf-sender to v1.0.10 (#20801)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-16 09:04:29 +02:00
Paul Bottein be26f8bc24 Add grouping by area and domain in voice assistant expose data table (#20797) 2024-05-15 11:41:09 +02:00
renovate[bot] c864b34a9a Update dependency glob to v10.3.15 (#20795)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 08:55:31 +02:00
Cody C 099ea61a94 Add checks to energy dashboard for when preferences are empty (#19765)
* Forbid completing energy dashboard setup unless at least one statistic is selected
* If energy setup was completed but there are no sources available, start setup wizard again
2024-05-13 20:57:37 +02:00
karwosts 3ebe6027be Minor fixes to energy sources behavior (#20785) 2024-05-13 18:41:51 +02:00
karwosts f5f2a5ad5b Show descriptions in script editor (#20765)
* Show descriptions in script editor

* descriptions in blueprints also
2024-05-13 14:19:47 +02:00
Paulus Schoutsen d046700d06 Show tag ID if no name, sort by last updated on mobile (#20788) 2024-05-13 09:56:23 +02:00
dependabot[bot] 2ad84b2832 Bump softprops/action-gh-release from 2.0.4 to 2.0.5 (#20790)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-13 09:13:29 +02:00
dependabot[bot] f9ccb9fc72 Bump actions/checkout from 4.1.4 to 4.1.5 (#20789)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-13 09:12:12 +02:00
renovate[bot] 6d3940db1e Update dependency glob to v10.3.14 (#20784)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-12 19:08:52 +02:00
renovate[bot] 20d174431d Update dependency chai to v5.1.1 (#20781)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-12 13:06:07 +02:00
renovate[bot] 1900710e06 Update Yarn to v4.2.2 (#20778) 2024-05-11 15:41:07 -04:00
renovate[bot] ed86a48e1c Update dependency sinon to v17.0.2 (#20772)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-10 15:08:14 -04:00
renovate[bot] d2bdb52926 Update vaadinWebComponents monorepo to v24.3.12 (#20761)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-09 14:21:35 +02:00
G Johansson 9c57c9f151 Support open / opening state in LockEntity (#19944) 2024-05-08 21:01:57 +02:00
karwosts 9e9cb15a42 Minor improvements to service call descriptions. (#20733)
* Minor improvements to service call descriptions.
2024-05-08 18:04:38 +02:00
renovate[bot] 6421a9443d Update dependency intl-messageformat to v10.5.12 (#20755)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-08 12:50:05 +02:00
Paulus Schoutsen f2b43ddad8 Allow adding card from history panel (#19582)
* Allow adding card from history panel

* Better empty entities check
2024-05-07 17:11:27 +02:00
Yosi Levy e55b59d9b7 Logical property style fixes (#20752)
logical prop fixes
2024-05-07 15:35:34 +02:00
Paul Bottein 4a77359a06 Use Material 3 ripple (#20751)
* Use material web ripple component

* Improve button style

* Use css animation instead of ripple for action

* Use ha ripple in all components

* Remove unused label
2024-05-07 15:30:45 +02:00
renovate[bot] 505d7b6ddb Update dependency tar to v7.1.0 (#20748) 2024-05-07 08:23:16 +02:00
Steve Repsher 79cdc43699 Enhance webpack transform async plugin to use babel runtime (with fix) (#20745) 2024-05-06 18:06:21 -04:00
renovate[bot] 8ff9823cd7 Update dependency @octokit/rest to v20.1.1 (#20746)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-06 20:42:37 +02:00
Paul Bottein 3488c60818 Fix tile card margin on old devices (#20742) 2024-05-06 19:49:52 +02:00
Bram Kragten b2af21ba5c Bumped version to 20240501.1 2024-05-06 17:50:01 +02:00
Paul Bottein 12a61a0021 Remove alarm modes list when adding a alarm modes card feature (#20688) 2024-05-06 17:49:30 +02:00
Simon Lamon 649917cdde Always save custom display name in energy dashboard when hitting Enter (#20702)
Change to Input event
2024-05-06 17:49:14 +02:00
karwosts 3ed27ee853 Add spacer for FAB under the zone list (#20706) 2024-05-06 17:48:58 +02:00
karwosts c1d3a76917 Energy CSV download should not require admin (#20704) 2024-05-06 17:48:38 +02:00
Paul Bottein 571ed6b9e9 Revert usage of babel runtime for legacy bundle (#20741)
Revert usage of babel runtine for legacy bundle
2024-05-06 17:48:21 +02:00
Paulus Schoutsen a347315fa7 Fix showing options button on conversation agent picker (#20736) 2024-05-06 17:47:59 +02:00
Simon Lamon 57d1405115 Show ungrouped group when there are results (#20716) 2024-05-06 17:47:41 +02:00
Yosi Levy e5ff6bd2f5 Font updates in new filters (#20482)
* Style changes

* Fixes
2024-05-06 17:47:21 +02:00
Yosi Levy 43a422cdca Font updates in new filters (#20482)
* Style changes

* Fixes
2024-05-06 15:39:36 +02:00
DouweandBram Kragten 11f2bef05c Add header text align theme variable to stack cards (#20563)
* Update hui-stack-card.ts

Added variable

* Update hui-stack-card.ts

Updated the variable, so that it would not be in line with the rest of the variables. In this way, the variable only works for hui-stack titles.

* Update hui-stack-card.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-05-06 13:35:36 +00:00
karwosts ff9f331287 Expand createDomains to more selectors (#20714)
Expand createDomains to more pickers
2024-05-06 15:26:13 +02:00
Steve Repsher cdf64ccdaa Refactor translation merges to use native transform stream (#20666) 2024-05-06 15:17:01 +02:00
Simon Lamon 8b220acca2 Show ungrouped group when there are results (#20716) 2024-05-06 15:07:22 +02:00
Paul Bottein 8fdb7fa1d5 Update newsletter link (#20740)
* Update newsletter link

* Update src/panels/config/dashboard/ha-config-dashboard.ts

* Update src/onboarding/dialogs/community-dialog.ts
2024-05-06 14:57:51 +02:00
Paulus Schoutsen 008c842431 Fix showing options button on conversation agent picker (#20736) 2024-05-06 12:24:22 +02:00
Paul Bottein bc41de0d9c Revert usage of babel runtime for legacy bundle (#20741)
Revert usage of babel runtine for legacy bundle
2024-05-06 12:12:19 +02:00
renovate[bot] 7310c9cf6d Update Yarn to v4.2.1 (#20735) 2024-05-05 21:49:14 -04:00
84b436c08e Fix self-injection for custom polyfills (#20718)
* Fix self-injection for custom polyfills

* Update build-scripts/bundle.cjs

Co-authored-by: Joost Lekkerkerker <[email protected]>

---------

Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: Joost Lekkerkerker <[email protected]>
2024-05-03 16:37:40 -04:00
renovate[bot] 1925a47bdc Update dependency eslint-plugin-unused-imports to v3.2.0 (#20715)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-03 16:05:13 +00:00
renovate[bot] 438a426458 Update babel monorepo to v7.24.5 (#20707) 2024-05-02 21:25:29 -04:00
karwosts f923deb71d Energy CSV download should not require admin (#20704) 2024-05-02 21:08:54 +02:00
renovate[bot] e79bc71ab7 Update typescript-eslint monorepo to v7.8.0 (#20703)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-02 21:04:03 +02:00
karwosts 11b0990d2b Add spacer for FAB under the zone list (#20706) 2024-05-02 21:02:57 +02:00
Simon Lamon 870cb0c65f Always save custom display name in energy dashboard when hitting Enter (#20702)
Change to Input event
2024-05-02 20:03:36 +02:00
Paul Bottein deda2009f8 Remove alarm modes list when adding a alarm modes card feature (#20688) 2024-05-02 19:22:43 +02:00
renovate[bot]andSteve Repsher b2797ab8da Update dependency gulp to v5 (#20601)
* Update dependency gulp to v5

* Fix premature cloasing of hash stream

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2024-05-01 15:13:28 +02:00
renovate[bot] 644dcb0381 Update dependency systemjs to v6.15.1 (#20682)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-01 13:12:18 +02:00
Bram Kragten c65f4f7a6e Revert "Remove strict connections" (#20685)
Revert "Remove strict connections (#20662)"

This reverts commit 1df92fa863.
2024-05-01 12:53:01 +02:00
Bram Kragten e2266aa671 Merge branch 'dev' 2024-05-01 12:04:10 +02:00
Bram Kragten 68a79490dc Bumped version to 20240501.0 2024-05-01 12:03:26 +02:00
Paul Bottein 6febe8552e Allow to reorder alarm modes in card feature (#20684) 2024-05-01 11:55:06 +02:00
Bram Kragten f611f23f6f Make sure lovelace theme background is set on it's container (#20683) 2024-05-01 11:24:40 +02:00
Bram Kragten ef4f11fdf8 20240430.0 (#20681) 2024-04-30 23:58:58 +02:00
Bram Kragten 627e06663b Bumped version to 20240430.0 2024-04-30 23:44:32 +02:00
Paul Bottein ab01633069 Fix ha settings row display in more info settings (#20680) 2024-04-30 21:12:53 +00:00
Bram Kragten 17dcc90638 Update entity status filter and grouping (#20679) 2024-04-30 23:04:48 +02:00
Paul Bottein d0df029ff1 Update check update icon and add toast when checking update (#20677)
* Update check update icon

* Add toast when checking for update
2024-04-30 19:21:30 +00:00
Paul Bottein 86a7e69812 Allow to reorder and filter options in select options card feature (#20675) 2024-04-30 21:14:49 +02:00
Adam KaposandBram Kragten af9417f2a6 Add theme support for dialog surface background (#20653)
* Add theme support for dialog surface background

* Change from review

* Change from review

Co-authored-by: Bram Kragten <[email protected]>

* Run prettier

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-04-30 21:12:36 +02:00
Paul Bottein 7120ad99b9 Add customize mode option to card features with modes (#20670)
* Add customize mode options to card features with modes

* Better type

* Fix water heater and humidifier

* Clean schema
2024-04-30 18:38:51 +02:00
Adam Kapos 334c245b65 Fix visual differences between regular and energy dashboards (#20654)
* Fix visual differences between regular and energy dashboards

* Order padding properties the same way between energy and lovelace

* Change from code review
2024-04-30 15:07:54 +02:00
Nicooow bcb72d83b8 Fix an inconsistency in dark mode (#20671)
* add app-theme-color var

* Fix Prettier format

* Fix regression on default dark theme

* prevent duplicate calculation
2024-04-30 12:03:19 +00:00
karwosts c99e0e846b More config/entities status filters (#20638) 2024-04-30 12:32:32 +02:00
J. Nick Koston ec3f63e8a3 Fallback to raw config entry reason if localize returns an empty string (#20668)
Show config entry reason if localize returns an empty string
2024-04-30 12:25:45 +02:00
karwosts 1bc33a30ec Display version info for custom integrations (#20652)
* Display version info for custom integrations

* no width
2024-04-30 12:23:20 +02:00
krazos 8cca233b7c Update unlock icon for tile card lock features (#20667)
Update unlock icon for tile card lock features so it's easier to see the difference between lock and unlock buttons
2024-04-29 20:53:33 +02:00
karwosts a78608bfb4 Reorderable card-feature modes (#20647)
* Reorderable card-feature modes

* unused var in getStubConfig
2024-04-29 17:48:01 +02:00
Bram Kragten e7c1ac94af 20240429.0 (#20665) 2024-04-29 17:44:33 +02:00
Bram Kragten 1a797b3415 Bumped version to 20240429.0 2024-04-29 17:36:46 +02:00
Bram Kragten 2b27a4da2b Show abort reason when no translation (#20664) 2024-04-29 17:35:30 +02:00
Bram Kragten 1df92fa863 Remove strict connections (#20662)
* Remove strict connections

* Update cloud-remote-pref.ts
2024-04-29 16:42:23 +02:00
Bram Kragten cdde85315a fix list items cloud account (#20663) 2024-04-29 14:26:14 +00:00
Paul Bottein dc67f9faf4 Fix cloud page design on mobile (#20661) 2024-04-29 16:03:02 +02:00
dependabot[bot] 3ad1be50a2 Bump actions/upload-artifact from 4.3.2 to 4.3.3 (#20658)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-29 12:38:02 +02:00
dependabot[bot] 8aadfe7d28 Bump actions/checkout from 4.1.3 to 4.1.4 (#20659)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-29 12:33:17 +02:00
renovate[bot] cff54b73a4 Update dependency @lokalise/node-api to v12.4.1 (#20643)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-27 20:01:32 +02:00
Philip Allgaier b54cfeb0c0 Hide "Browse Media" button for unavailable media players (#20629)
* Hide "Browse Media" button for unavailable media players
2024-04-27 14:36:42 +02:00
renovate[bot] cefe612b11 Update dependency @octokit/plugin-retry to v7.1.1 (#20641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-27 11:16:55 +02:00
renovate[bot] 4bc874b497 Update workbox monorepo to v7.1.0 (#20642)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-27 11:16:43 +02:00
Philip Allgaier f3abaa8e02 Align lawn-mower and vacuum more-info layouts (#20632) 2024-04-26 14:07:38 +02:00
Philip Allgaier 21a563fe98 Add details for offset format to sun trigger (#20625)
Add details for offset to sun trigger
2024-04-26 14:05:04 +02:00
Paul Bottein 1acbcccd62 20240426.0 (#20636) 2024-04-26 11:42:26 +02:00
Paul Bottein 35d6c638ab Bumped version to 20240426.0 2024-04-26 11:40:38 +02:00
Bram KragtenandPaul Bottein 68f8239708 Update cloud remote settings (#20619)
* Update cloud remote settings

* Change again

* Update cloud-remote-pref.ts

* Update UI

* Add missing translations

* use hr and simplify condition

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-04-26 11:36:03 +02:00
renovate[bot] 0db64cca0b Update dependency @babel/helper-define-polyfill-provider to v0.6.2 (#20627)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-25 23:37:11 -04:00
renovate[bot] accfda5f4b Update typescript-eslint monorepo to v7.7.1 (#20628) 2024-04-25 20:51:55 -04:00
Philip Allgaier c97c20f57d Add mock area registry to demo to fix card picker (#20626) 2024-04-25 18:50:16 +00:00
Philip Allgaier 2725d0191d Disable counter more-info dec/inc buttons when min/max reached (#20624) 2024-04-25 20:49:20 +02:00
renovate[bot] 852cc62398 Update dependency @types/leaflet to v1.9.12 (#20623)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-25 17:56:27 +02:00
David F. Mulcahey 654e3ce437 Fix ZHA UI issues (#20622) 2024-04-25 16:16:00 +02:00
Bram Kragten 20a3a00aec add inital data for language selector (#20620)
* add inital data for language selector

* Update compute-initial-ha-form-data.ts
2024-04-25 15:25:18 +02:00
Bram Kragten 22b927d666 make sure we always have trigger and action (#20621)
* make sure we always have trigger and action

* script too
2024-04-25 15:24:33 +02:00
Philip Allgaier 709d6be2e3 Fix wrong chevron icon direction for groups in data tables (#20617)
Fix chevron icon for groups in data table
2024-04-25 11:28:36 +02:00
Bram Kragten 64f54d9aaa 20240424.1 (#20609) 2024-04-24 14:45:22 +02:00
Bram Kragten fbda9ca418 Bumped version to 20240424.1 2024-04-24 14:30:36 +02:00
Paul BotteinandBram Kragten 4e97e3763e Use theme mode property for ha-map (#20606)
* Use theme mode property for ha-map

* Use theme mode in ha-location-editor

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-04-24 14:28:33 +02:00
Bram Kragten 4c9c52d27d Add filter for domains to entity settings (#20605) 2024-04-24 13:53:14 +02:00
Bram Kragten 87bcd3e471 Add multiselect area to automation/scene/script (#20604) 2024-04-24 10:10:43 +00:00
Paul Bottein 7e9b01b56d Fix text alignment for open lock card feature (#20603)
Fix text aligment for open lock card feature
2024-04-24 09:36:17 +00:00
karwostsandChristoph Wen 713763fc21 Fix visual map issues (#20541)
* Fix visual map issues (#15587)

- hover background color of zoom control in dark mode
- map light mode when dark theme is used
- background color of zoom control with map dark mode when light theme is used

* Fix breaking change (#15587)

* Change theme mode selection to use dropdown (#15587)

- Additionally fixed unpleasant horizontal scrollbar in map editor

* Add yaml migration, fix force light/dark options

---------

Co-authored-by: Christoph Wen <[email protected]>
2024-04-24 11:35:37 +02:00
renovate[bot] 5b7ab1bfcb Update dependency cropperjs to v1.6.2 (#20600)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-24 11:28:58 +02:00
Bram Kragten 8712adbf8d 20240424.0 (#20602) 2024-04-24 11:21:24 +02:00
Bram Kragten 4b0d19b615 Fix duplicate imports from merge 2024-04-24 11:14:55 +02:00
Bram Kragten 90e5d259af Merge branch 'master' into dev 2024-04-24 11:13:34 +02:00
Bram Kragten af3a331f57 Bumped version to 20240424.0 2024-04-24 11:09:48 +02:00
Bram Kragten 67c60a4aa8 Add strict connection cloud settings (#20585)
* Add strict connection cloud settings

* Change static page to guard page

* saving files helps...

* Add create link button

* use correct service
2024-04-24 11:06:15 +02:00
Bram Kragten 62de16bb8e Implement storing sorting and grouping for all tables (#20594) 2024-04-24 11:06:00 +02:00
Marc Geurts d9b71e754d Add lock features for tile card (#20539)
* Added lock features for tile card

* Change success label
2024-04-24 10:30:34 +02:00
Matthias Alphart 5fc950f09f Fix ha-filter-states clear filter behaviour (#20599)
Fix ha-filter-states clear filter behaviour
2024-04-24 10:28:17 +02:00
J. Nick Koston 0725c7b160 Restore getHassTranslationsPre109 (#20597)
* Revert "Remove legacy state translations (#20536)"

This reverts commit e376efc579.

* keep
2024-04-24 10:26:24 +02:00
Steve Repsher 469dbbcccc Rollback gulp to version 4 (#20598) 2024-04-24 10:25:52 +02:00
Bram Kragten ffdd661b1f Make fallback translations work (#20596) 2024-04-24 07:31:29 +02:00
Bram Kragten 81922f5a3e Save and restore collapsed groups (#20591) 2024-04-23 21:00:17 +02:00
renovate[bot] 7e25366897 Update dependency @types/chromecast-caf-receiver to v6.0.14 (#20589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-23 18:04:44 +02:00
Bram Kragten 8ab61b5468 Add title when text in datatable doesnt fit (#20590) 2024-04-23 13:50:44 +02:00
Bram Kragten 8239f6dd60 Update hass-tabs-subpage-data-table.ts 2024-04-22 20:28:21 +02:00
Bram Kragten 45dce18e4d typo 2024-04-22 20:15:52 +02:00
Bram Kragten a428ad0655 Add bulk area assignment to device dashboard (#20581)
* Add bulk area assignment to device dashboard

* Update ha-config-devices-dashboard.ts
2024-04-22 18:35:58 +02:00
Bram Kragten 1b54d51e4a Add option for custom group order to data table (#20582) 2024-04-22 18:28:50 +02:00
Bram Kragten eb1354d229 Allow groups in data table to be collapsed (#20579) 2024-04-22 18:27:46 +02:00
Bram Kragten 4d21f9e80c Allow to group entities by domain (#20580)
Allow group entities by domain
2024-04-22 18:27:13 +02:00
Paul Bottein 62f46baacf Fix more info slider in iOS (#20586) 2024-04-22 18:26:50 +02:00
Bram Kragten a3090796d2 Store grouping and sorting for device table (#20583) 2024-04-22 18:13:44 +02:00
renovate[bot] c34c5d64f9 Update dependency @codemirror/commands to v6.5.0 (#20587)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-22 18:09:46 +02:00
Bram Kragten 66228f5858 Add new timestamp state domains (#20584) 2024-04-22 16:33:32 +02:00
Bram Kragten ac378cfe6d Update external barcode scanning API (#20470) 2024-04-22 12:52:59 +02:00
Nicooow 7ecf8b755e Add css var for meta theme-color attribute (#20558)
* add app-theme-color var

* Fix Prettier format
2024-04-22 09:51:21 +02:00
Matthias Alphart 141107f1f3 Apply initial values to forms of device trigger extra fields (#20555)
* Apply default values of device trigger extra fields

* use computeInitialHaFormData
2024-04-22 09:48:50 +02:00
karwosts b5277dee53 When munging statistics to history, assume always numeric (#20544) 2024-04-22 09:41:12 +02:00
Steve Repsher 4b593c1c96 Enhance webpack transform async plugin to use babel runtime (#20543) 2024-04-22 09:40:20 +02:00
dependabot[bot] 50ce1b94c8 Bump actions/upload-artifact from 4.3.1 to 4.3.2 (#20575)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 09:22:38 +02:00
dependabot[bot] 8bf27a83ec Bump actions/checkout from 4.1.2 to 4.1.3 (#20576)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 09:21:14 +02:00
renovate[bot] 389f0d3d23 Update dependency marked to v12.0.2 (#20577)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-22 09:19:52 +02:00
karwosts b966601e6a Hide beta toggle when unsupervised (#20573) 2024-04-21 09:50:14 +02:00
renovate[bot] f2a0881821 Update dependency @types/tar to v6.1.13 (#20572)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-21 09:36:09 +02:00
renovate[bot] 50a49eae43 Update dependency date-fns-tz to v3.1.3 (#20552)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-20 14:23:57 -04:00
renovate[bot] 1c04561004 Update dependency @codemirror/commands to v6.4.0 (#20569)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-20 19:39:54 +02:00
renovate[bot] b80d94d260 Update dependency magic-string to v0.30.10 (#20568)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-20 19:39:42 +02:00
karwosts 87012e23e7 Wrap unbreakable area names in ha-card header (#20566) 2024-04-20 19:39:24 +02:00
Simon Lamon f39758b103 Only create sortable when not disabled (#20565) 2024-04-20 14:32:40 +02:00
G Johansson 697bbf428e Add translation to integration setup failures (#19128) 2024-04-20 09:16:36 +02:00
renovate[bot] c7444a2605 Update dependency @octokit/auth-oauth-device to v7.1.1 (#20560)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-20 09:03:01 +02:00
karwosts 3a5f4d33d2 Fix stopped_unknown_reason localization message (#20557)
* Fix stopped_unknown_reason localization message
2024-04-20 08:45:05 +02:00
renovate[bot] c3dc62523b Update dependency core-js to v3.37.0 (#20559) 2024-04-19 20:45:00 -04:00
renovate[bot] 424622061a Lock file maintenance (#20553) 2024-04-19 00:47:42 -04:00
renovate[bot] a3b021b11d Update dependency @material/web to v1.4.1 (#20551) 2024-04-19 00:12:18 -04:00
renovate[bot] b60ad8b143 Update typescript-eslint monorepo to v7.7.0 (#20549) 2024-04-18 18:55:17 -04:00
J. Nick Koston e376efc579 Remove legacy state translations (#20536)
* Remove legacy state translations

https://github.com/home-assistant/core/pull/112023
2024-04-18 06:33:07 +02:00
renovate[bot] 382035a1d4 Update dependency @types/color-name to v1.1.4 (#20546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-17 18:55:59 -04:00
renovate[bot] 542e22fe0e Update dependency tar to v7.0.1 (#20547)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-17 22:54:57 +00:00
karwosts af37d57779 Fix entity picker delete entity (#20542) 2024-04-17 19:48:25 +02:00
renovate[bot] fbef0b0186 Update dependency gulp to v5 (#20305)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-17 12:31:10 -04:00
renovate[bot] 9e67d6add8 Update dependency @types/leaflet to v1.9.11 (#20538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-17 18:21:59 +02:00
Simon Lamon 25c702ad2b Don't display keyboard shortcut hints in quickbar if keyboard shortcuts are disabled (#20527)
Fix forgotten hint shortcut tip
2024-04-15 20:20:45 +02:00
Bram KragtenandSimon Lamon 6516597c93 Fix zones on mobile, align mobile and non mobile view (#20525)
* Fix zones on mobile, align mobile and non mobile view

* Fix CI

---------

Co-authored-by: Simon Lamon <[email protected]>
2024-04-15 20:20:14 +02:00
renovate[bot]andBram Kragten 1df9c38a8c Update dependency tar to v7 (#20513)
* Update dependency tar to v7

* Update fetch-nightly-translations.js

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <[email protected]>
2024-04-15 13:40:38 +00:00
renovate[bot] bd7217145a Update dependency element-internals-polyfill to v1.3.11 (#20512)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 15:07:09 +02:00
renovate[bot] 569fef38a4 Update vaadinWebComponents monorepo to v24.3.11 (#20523)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 15:03:46 +02:00
f21c89cf1a Make allow attribute configurable in iframe panel (#19087)
* Make allow attribute configurable in iframe panel

* Delete .vscode/settings.json

* Update ha-panel-iframe.ts

* Don't quote

* Update src/panels/iframe/ha-panel-iframe.ts

Co-authored-by: Quentame <[email protected]>

* Make `allow` configurable for `hui-iframe-card`

* Update src/panels/iframe/ha-panel-iframe.ts

Co-authored-by: Quentame <[email protected]>

* Update src/panels/lovelace/cards/hui-iframe-card.ts

Co-authored-by: Quentame <[email protected]>

* Update src/panels/iframe/ha-panel-iframe.ts

Co-authored-by: Quentame <[email protected]>

* Update src/panels/lovelace/cards/hui-iframe-card.ts

Co-authored-by: Bram Kragten <[email protected]>

* Delete src/panels/iframe/ha-panel-iframe.ts

* Restore dev

* Update ha-panel-iframe.ts

* Prettier

---------

Co-authored-by: Quentame <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2024-04-15 14:48:57 +02:00
renovate[bot] 02cc418969 Update CodeMirror (#20520)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 09:21:07 +00:00
Cougar 4faba159c0 ZHA (Zigbee) visualization enhancement (#20511) 2024-04-15 11:09:16 +02:00
Adam Kapos 29816e6c5e Fix malformed CSS in dialog surface (#20519) 2024-04-15 11:06:07 +02:00
karwosts 5317a11c39 Sort custom cards in card picker (#20517) 2024-04-14 22:32:35 +02:00
Simon Lamon 27c53b3241 Replace paper-listbox in zone area (#19955)
* ha-config-zone

* Fixes

* add selected event back

* Fixes

* remove leftover paper-item css rule

* Fixup merge conflict
2024-04-14 13:46:38 +02:00
renovate[bot] 919befa961 Update dependency typescript to v5.4.5 (#20510) 2024-04-13 20:43:27 -04:00
renovate[bot] f9c02ed099 Update dependency date-fns-tz to v3.0.1 (#20509) 2024-04-13 20:38:12 -04:00
karwosts b35c325f43 Rebuild stack card when a child card rebuilds (#19861) 2024-04-12 20:53:04 +02:00
karwosts b82f1128fe Location/zone editor updates (#19994) 2024-04-12 20:51:23 +02:00
karwostsandBram Kragten 178feb7330 Create helpers from automation editor (#19287)
* Create helpers from automation editor

* support multiple createDomains

* localization

* fix lint

* Move multi domain to entity picker

* Update dialog-helper-detail.ts

* Update ha-config-helpers.ts

* optimize a little

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-04-12 18:38:39 +00:00
karwosts 0118a5bf4c Allow customizing display name for energy device (#20033)
* Allow customizing display name for energy device

* use display name in device settings list
2024-04-12 20:31:59 +02:00
renovate[bot]andSimon Lamon e0087bd142 Update dependency @material/web to v1.4.0 (#20177)
* Update dependency @material/web to v1.4.0

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Simon Lamon <[email protected]>
2024-04-12 15:15:33 +00:00
renovate[bot]andBram Kragten c2d3e7900e Update date-fns to v3 (major) (#20504)
* Update date-fns to v3

* update imports

* breaking changes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <[email protected]>
2024-04-12 17:03:30 +02:00
Charles Garwood fb8312110b Add support for setting label description (#20421)
* Add support for setting label description
2024-04-12 15:49:07 +02:00
renovate[bot] 16de57342e Update dependency eslint-plugin-wc to v2.1.0 (#20500)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-12 08:23:48 -04:00
renovate[bot] ad6e041c04 Update dependency @codemirror/view to v6.26.2 (#20505)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-12 13:10:15 +02:00
Steve RepsherandSimon Lamon e22e3e88a0 Speed up and simplify translations build (#19988)
* Speed up and simplify translations build

- Remove use of gulp-flatmap for merges (wasted input) and just loop over translation files.
- Parse and buffer master only once for all merges.
- Remove lokalise key reference transform from non-English files. This is already done by Lokalise when they are downloaded.
- Remove tabs from merged output to minimize buffer sizes.
- Pipe merges to a hashing stream, removing extra tasks and intermediate file I/O.
- Pipe hashed files to a single custom asynchronous transform stream to fragmentize the files. It expands the stream to push a new file for each fragment.
- Incorporate flattening into fragmentization.
- Delete entire ui.panel key for base translation (instead of leaving an empty object).
- Optimize flatten method to stop copying output over and over.
- Convert empty and test filters to JSON.parse() revivers for simplicity and better performance.
- Incorporate supervisor builds into main tasks using a simple toggle (i.e. remove duplicate code).
- Funcify local tasks and simplify exported tasks.
- Incorporate test metadata task into a simplified metadata task.

* Fix Lokalise key reference link

Co-authored-by: Simon Lamon <[email protected]>

---------

Co-authored-by: Simon Lamon <[email protected]>
2024-04-12 12:49:18 +02:00
Steve Repsher dc8a50965c Group date-fns packages (#20499) 2024-04-12 12:22:18 +02:00
Bram Kragten 1914de7ddf Bumped version to 20240404.2 2024-04-12 11:21:05 +02:00
Simon Lamon 2e505cfb1f Add spacing between icon and name in entity button bar (#20492)
* Fix width between icon and name

* Remove no-text
2024-04-12 11:20:15 +02:00
Bram Kragten ab49aca815 Handle errors in multi select (#20494) 2024-04-12 11:19:57 +02:00
Bram Kragten c96968e476 Fix issues with application credentials (#20495) 2024-04-12 11:19:31 +02:00
Simon Lamon 8f050516ec Fix missing argument in voice assistant expose search label (#20491) 2024-04-12 11:18:47 +02:00
Simon Lamon 27d2b244a4 Add spacing between icon and name in entity button bar (#20492)
* Fix width between icon and name

* Remove no-text
2024-04-12 11:17:51 +02:00
Bram Kragten be2f2c6271 Handle errors in multi select (#20494) 2024-04-12 11:15:15 +02:00
Bram Kragten 8dc2797b16 Fix issues with application credentials (#20495) 2024-04-12 11:10:23 +02:00
renovate[bot] 7ca8dabc44 Update typescript-eslint monorepo to v7.6.0 (#20497)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-11 16:32:52 -04:00
Bram Kragten baeb55e217 Merge branch 'master' into dev 2024-04-11 11:16:42 +02:00
Simon Lamon a8502fcc11 Fix missing argument in voice assistant expose search label (#20491) 2024-04-11 11:10:02 +02:00
Paulus Schoutsen 9f5bc5b196 Match on correct entity ID of HA conversation agent (#20484) 2024-04-10 11:41:12 +02:00
Bruno Pantaleão Gonçalves 7556ab9506 Add css var for header webkit backdrop filter (#20473)
* Add CSS var for header -webkit-backdrop-filter

* Add backdrop to energy and developer tools
2024-04-10 11:40:44 +02:00
Adam KaposandBram Kragten bf176ac314 Make it possible for themes to blur backgrounds (#20447)
* Make it possible for themes to blur card backgrounds

* Make it possible for themes to blur dialog backgrounds

* Add ha prefix

Co-authored-by: Bram Kragten <[email protected]>

* Rename dialog-backdrop-filter to ha-dialog-scrim-backdrop-filter

With backwards compatibility

* Run prettier

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-04-10 11:37:35 +02:00
Adam Kapos 9903e22eaa Change tile to display "last triggered" in relative time (#20463) 2024-04-09 14:11:58 +02:00
Simon Lamon 1e0f7d9629 Don't display keyboard shortcut hints if keyboard shortcuts are disabled (#20456)
* Shortcut hints

* Prettier
2024-04-09 14:10:59 +02:00
Charles Garwood e8a140af44 Don't duplicate the label as the description in Z-Wave Config (#20454)
Don'tduplicate the label as the description
2024-04-09 14:09:21 +02:00
Bram KragtenandFranck Nijhof b091d4f298 Write log on translation error (#20430)
* Write log on translation error

* Update ha-config-devices-dashboard.ts

---------

Co-authored-by: Franck Nijhof <[email protected]>
2024-04-09 13:25:27 +02:00
renovate[bot] 35cf3063cb Update dependency @lokalise/node-api to v12.4.0 (#20252) 2024-04-08 20:49:48 -04:00
renovate[bot] 7141ef17be Update dependency @codemirror/legacy-modes to v6.4.0 (#20475) 2024-04-08 20:36:26 -04:00
renovate[bot] be2c68c0bb Update octokit monorepo (#20453) 2024-04-08 20:32:57 -04:00
renovate[bot] 7c944d3767 Update dependency mocha to v10.4.0 (#20279) 2024-04-08 20:29:48 -04:00
renovate[bot] 1d4f02df2e Update dependency glob to v10.3.12 (#20298) 2024-04-08 20:28:30 -04:00
renovate[bot] 2007a74a20 Update babel monorepo to v7.24.4 (#20451) 2024-04-08 20:23:53 -04:00
renovate[bot] 8c0839ad57 Update dependency @types/tar to v6.1.12 (#20457) 2024-04-08 20:22:31 -04:00
renovate[bot] 516b9a54c4 Update dependency typescript to v5.4.4 (#20468) 2024-04-08 20:21:33 -04:00
renovate[bot] 0d3e730c9c Update dependency magic-string to v0.30.9 (#20465)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-08 09:33:26 +02:00
renovate[bot] c7a87d02b2 Update dependency @types/leaflet to v1.9.9 (#20452) 2024-04-07 20:37:42 +02:00
Bram Kragten dd082c204b Remove unused type (#20429) 2024-04-05 12:22:47 +02:00
renovate[bot] c4af3d1579 Update typescript-eslint monorepo to v7.5.0 (#20426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-05 11:36:28 +02:00
Bram Kragten 10eadbcbbb Merge branch 'dev' 2024-04-04 21:31:51 +02:00
Bram Kragten 17141824f7 Bumped version to 20240404.1 2024-04-04 21:31:30 +02:00
Bram Kragten 4cfd6c010f Fix overflow on submenus (#20415) 2024-04-04 19:54:36 +02:00
Bram Kragten daa9024bff Make pages full height 2024-04-04 17:16:36 +02:00
Bram Kragten e96aca90fe 20240404.0 (#20414) 2024-04-04 16:23:24 +02:00
Bram Kragten 0580a31961 Bumped version to 20240404.0 2024-04-04 16:16:30 +02:00
Bram Kragten 5c42c5130c Add count of items (#20410)
* Add count of items

* Adjust layout, correct filter count
2024-04-04 16:15:13 +02:00
Bram Kragten 72d1e37a23 Fix integration filter search (#20408) 2024-04-04 13:26:26 +02:00
Bram Kragten 61c9072a08 Fix icons in entity settings (#20405) 2024-04-04 13:00:14 +02:00
Bram Kragten 08b25f9c2a Add floor and label support to describe action (#20403) 2024-04-04 13:00:05 +02:00
Samuel Schultze 1a03b49700 Fix calendar range selection (#20394)
fix: calendar range selector
2024-04-04 12:59:54 +02:00
Paul Bottein 2d4a8e2e45 Fix search input outlined background color and margin (#20407) 2024-04-04 12:53:03 +02:00
Bram Kragten 8486377604 Fix z-index create category dialog (#20406) 2024-04-04 10:51:04 +00:00
Paul Bottein 3a4e9b6856 Avoid duplicate entity ids in history (#20402)
* Avoid duplicate entity ids in history

* Don't need to check for size
2024-04-04 12:12:04 +02:00
Bram Kragten 5f5ac5419b Add floor and label support to history panel (#20388) 2024-04-04 00:06:03 +02:00
Bram Kragten 92b7a3b477 Adjust integration filter height for search bar (#20382) 2024-04-03 21:54:27 +02:00
Bram Kragten 4326519a3f 20240403.1 (#20380) 2024-04-03 16:58:47 +02:00
Bram Kragten 00837acdfc Bumped version to 20240403.1 2024-04-03 16:52:23 +02:00
Bram Kragten 7704be12b1 When creating a label or category with multi select, also assign it (#20379)
* When creating a label or category with multi select, also assign it

* correct scope

* again
2024-04-03 16:51:33 +02:00
Bram Kragten 712ddb531b Make selection bar responsive (#20378) 2024-04-03 16:48:02 +02:00
Bram Kragten d52afc3f71 Add settings shortcut to scene and script table (#20375) 2024-04-03 16:11:32 +02:00
Bram Kragten 92f6083e0b Faulty helpers should not be selectable (#20373) 2024-04-03 15:19:05 +02:00
Bram Kragten 5751fdbe56 Improve entity integration filter (#20372) 2024-04-03 15:18:40 +02:00
Bram Kragten 962b30adb9 20240403.0 (#20370) 2024-04-03 14:50:16 +02:00
Bram Kragten 3b5b3f3bb6 Handle disabled entities in multi select label (#20371) 2024-04-03 14:40:48 +02:00
Bram Kragten 1a6d96cf3a Bumped version to 20240403.0 2024-04-03 14:18:07 +02:00
Bram Kragten 034fd9b4df Manage areas from floor dialog (#20347)
* manage areas from floor dialog

* Finish

* fix exclude
2024-04-03 14:17:32 +02:00
Bram Kragten eb79a1e7d7 Allow to remove labels in multi select (#20368)
* Allow to remove labels in multi select

* reducedTouchTarget

* fix devices

* Update ha-config-devices-dashboard.ts
2024-04-03 14:17:21 +02:00
Bram Kragten e25d4f17aa Add create category and label to multi select (#20365)
* Add create category and label to multi select

* move out of map
2024-04-03 13:23:00 +02:00
Bram Kragten ccde9cceee Add category and filters to helpers (#20346)
* Add category and filters to helpers

* Add support for adding label and category in multi select

* remove labels multi
2024-04-03 13:22:40 +02:00
Paul Bottein 578d3c4260 Set input and button background color to white for toolbar (#20369) 2024-04-03 11:10:51 +00:00
Bram Kragten bfdc9a3d86 Add area to automation, scene, script tables (#20366)
* Add area to automation, scene, script tables

* typing
2024-04-03 13:04:47 +02:00
Bram Kragten 5315545a4d Add search to integration filter (#20367) 2024-04-03 12:03:35 +02:00
Paul Bottein 82a3b9d80f Use tree for nested floor instead of icon (#20363) 2024-04-03 09:27:30 +00:00
Bram Kragten 3de985a3b8 Prevent line break in selection menu (#20361) 2024-04-03 11:04:24 +02:00
Bram Kragten 567ee8000d Fix toggles in automation datatable on firefox (#20360) 2024-04-03 08:30:08 +00:00
Bram Kragten 03939001b2 Fix elements above filter dialog (#20359) 2024-04-03 08:28:33 +00:00
Bram Kragten 30d18050d1 Add arrow to areas under floors (#20344) 2024-04-03 10:24:10 +02:00
Bram Kragten 95caf8c7df make subpage data table full height (#20358) 2024-04-03 10:12:36 +02:00
Bram Kragten 6c1f328d71 Take lang into account when sorting groups (#20355)
* Take lang into account when sorting groups

* make sure empty values are at the bottom
2024-04-03 10:12:25 +02:00
Bram Kragten bb20ab8c2c Fix removing labels (#20354) 2024-04-03 09:54:49 +02:00
Bram Kragten 29eb73176a 20240402.2 (#20348) 2024-04-02 23:34:17 +02:00
Bram Kragten 17ad3a87f3 Bumped version to 20240402.2 2024-04-02 23:31:14 +02:00
Bram Kragten ed7c9c33b9 Add my link support for labels (#20345) 2024-04-02 22:31:37 +02:00
Bram Kragten 59b66219cb Add clear filter button to individual filters (#20343) 2024-04-02 22:05:03 +02:00
Bram Kragten 1e2c1d1464 Add search to device and entity filters (#20341) 2024-04-02 21:46:21 +02:00
Bram Kragten 5b86b1277f Add edit button to areas in area dashboard + color add floor fab (#20339) 2024-04-02 21:41:56 +02:00
Paul BotteinandSimon Lamon 41fdf31e34 Check for entity state and entity string in conditional card (#20331)
Co-authored-by: Simon Lamon <[email protected]>
2024-04-02 20:39:39 +02:00
Bram Kragten 9bef5c2af9 Add clear button to search field (#20332) 2024-04-02 19:42:54 +02:00
Paul Bottein ed1a69071b Replace add label by manage labels in filters (#20330) 2024-04-02 19:05:01 +02:00
Paul Bottein 56d328b4db Fix error in console when taking control of the strategy (#20329) 2024-04-02 18:33:30 +02:00
Paulus Schoutsen 33c7e0fa2d Hide conversation entities from default dashboard (#20327) 2024-04-02 14:55:22 +00:00
Bram Kragten 4f1cf1110f 20240402.1 (#20326) 2024-04-02 16:41:12 +02:00
Bram Kragten a434bfd944 Bumped version to 20240402.1 2024-04-02 16:33:05 +02:00
Bram Kragten 21ed8e4206 Load translations when adding item in pickers (#20325)
* Load translations when adding item in pickers

* Update ha-selector-label.ts
2024-04-02 15:33:10 +02:00
Paul Bottein 169d782580 Fix label wrap (#20323)
* Don't wrap headline on ha-menu-item

* Don't wrap text on ha-label
2024-04-02 13:20:22 +00:00
Bram Kragten 8a015f4e38 Update multi select of entities config (#20319)
* Update multi select of entities config

* Update ha-config-entities.ts
2024-04-02 15:16:20 +02:00
Bram Kragten cbb08c6202 Add multi select to scripts and scenes (#20318) 2024-04-02 15:16:10 +02:00
Bram Kragten 6301bc713c Add multi select to devices (#20321) 2024-04-02 15:16:00 +02:00
Paul Bottein a5d7043ce4 Update style of more info style (#20322)
* Set more info border radius to 36px

* Use control button for alarm more info
2024-04-02 15:05:21 +02:00
Bram Kragten 912d2cbd79 Add warning color for menu item (#20317)
* Add warning color for menu item

* align icons
2024-04-02 14:40:53 +02:00
Bram Kragten 48ee3a34eb Sort labels by name (#20316) 2024-04-02 13:37:46 +02:00
Paul Bottein 21263a1ffb Improve more info dialog navigation for specific view (#20312) 2024-04-02 12:45:39 +02:00
Paul Bottein db59e138e9 Fix pickers (#20315)
* Fix not found area picker

* Fix no match for categories
2024-04-02 12:45:13 +02:00
Bram Kragten bc8012dcc9 Add shortcut to label filter from label config page (#20313) 2024-04-02 11:50:50 +02:00
Bram Kragten d8b43597a0 Use area and floor dialog when adding item in picker (#20311)
* Use area and floor dialog when adding item in picker

* use const
2024-04-02 11:49:05 +02:00
Bram Kragten d3bf0da289 20240402.0 (#20314) 2024-04-02 11:44:05 +02:00
Bram Kragten 871949e760 Bumped version to 20240402.0 2024-04-02 11:41:16 +02:00
Bram KragtenandPaul Bottein 4fb42d3545 Fix and optimize automation overflow (#20293)
* WIP fix and optimize automation overflow

* finish

* Prettier

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-04-02 11:23:43 +02:00
Bram KragtenandPaul Bottein 2e58d6656c Add drag and drop to area dashboard (#20289)
* Add drag and drop to area dashboard

* Update ha-config-areas-dashboard.ts

* Fix unassign path

* Add delay for touch

* Update ha-config-areas-dashboard.ts

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-04-02 11:23:32 +02:00
Bram Kragten a3024b38e9 fix floor icon color dark mode (#20310) 2024-04-02 10:44:13 +02:00
Bram Kragten 85f2016371 Add floor selector (#20295) 2024-04-02 10:43:50 +02:00
Bram Kragten 1ce3347c2e Add multi select to automations (#20291)
* Add multi select to automations

* allow to clear category, add icons

* use popover

* revert changes to group. by and sort menu, fix dark mode

* ha-menu

* responsive
2024-04-02 10:14:17 +02:00
renovate[bot] 4f8415e8a7 Update dependency @codemirror/view to v6.26.1 (#20300)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-02 09:13:46 +02:00
Simon Lamon b202a36feb Clean menu implementation (#20294)
* Clean menu

* Clean up imports

* Fix imports
2024-03-31 12:28:28 +02:00
Bram Kragten 7e3e224746 Some data table fixes (#20286) 2024-03-30 21:11:35 +01:00
Bram Kragten 503a7979d0 Fix clearing of filters (#20288)
* Fix clearing of filters

* Update ha-filter-integrations.ts

* Update ha-filter-integrations.ts
2024-03-30 15:32:34 +01:00
Simon LamonandBram Kragten f3ba6e7996 Fix uncaught keyFunction errors when data table filtering (#20285)
* Undefined keys

* Apply suggestion

Co-authored-by: Bram Kragten <[email protected]>

* Prettier

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-03-30 13:44:59 +00:00
Bram Kragten f13dcb4139 Fix flickering toast (#20287) 2024-03-30 14:40:13 +01:00
Yosi Levy e8dc61ec36 RTL fixes to new data table (#20283)
RTL fixes to new features
2024-03-30 13:32:29 +01:00
Simon Lamon 88c59c5c13 Add label filter for helper page (#20281)
* Label filter for helper page

* Clean up debugging label
2024-03-30 13:30:24 +01:00
Paul Bottein fd06d434f2 20240329.1 (#20280) 2024-03-29 21:25:10 +01:00
Paul Bottein 85f80ff863 Bumped version to 20240329.1 2024-03-29 21:23:46 +01:00
Paul Bottein d56abe6b72 Fix stack card border radius reset on iOS (#20278) 2024-03-29 21:22:31 +01:00
Paul Bottein d24d29e42f 20240329.0 (#20277) 2024-03-29 19:10:34 +01:00
Paul Bottein bc14b8468d Bumped version to 20240329.0 2024-03-29 19:09:09 +01:00
Paul Bottein f924f81ec1 Add labels on entities datatable (#20274) 2024-03-29 18:47:22 +01:00
Paul Bottein 3a6382df55 Add labels on devices datatable (#20275) 2024-03-29 18:46:34 +01:00
Paul Bottein 1dba049038 Fix floor creation in floor picker (#20276) 2024-03-29 18:05:06 +01:00
Simon Lamon f539516252 Label filters for devices & entities (#20253)
More label filters
2024-03-29 16:41:18 +01:00
Paul Bottein abd02eda0f Fix empty line in data table when using group_by (#20273) 2024-03-29 15:16:01 +00:00
Paul Bottein 99695d6cb3 Use md-menu for group by and sort by for data table (#20266) 2024-03-29 16:15:21 +01:00
Paul Bottein cb1c2b59df Use primary color for filter badge color (#20263) 2024-03-29 16:12:18 +01:00
Paul Bottein 8368f977b9 Improve data table search bar style (#20271) 2024-03-29 16:10:41 +01:00
Paul Bottein e05595f318 Fix add category and add label animation (#20272) 2024-03-29 16:09:10 +01:00
Paul Bottein 11cf2ec39d Fix selecting no category message (#20268) 2024-03-29 15:41:05 +01:00
renovate[bot] e5c43fcfcd Update typescript-eslint monorepo to v7.4.0 (#20256)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-29 12:44:45 +01:00
Paul Bottein 520581c165 Reapply filters if entity registry change (#20265) 2024-03-29 11:37:13 +01:00
Paul Bottein d1119a3b61 Restore theme usage in stack card in panel view (#20264) 2024-03-29 11:16:28 +01:00
Paul Bottein 5dd029cc05 Add delete action in label overflow menu (#20261) 2024-03-29 10:25:54 +01:00
Paul Bottein 510e010f97 Fix search for labels and categories (#20262) 2024-03-29 10:25:02 +01:00
Paul Bottein 1300cffa3b Hide show all categories button is no categories (#20255) 2024-03-28 23:13:51 +01:00
Simon Lamon 8fbcbb0b68 Add label button to ha-filter-labels (#20251) 2024-03-28 18:51:36 +01:00
Paul Bottein e02a47a16a 20240328.0 (#20250) 2024-03-28 16:49:01 +01:00
Paul Bottein 7b26c1ffcb Bumped version to 20240328.0 2024-03-28 16:45:12 +01:00
Bram KragtenandPaul Bottein d3e62454a5 Add default icons for area and floors (#20214)
* Add default icons for area and floors

* Add default icon for floor based on level

* Allow deleting floor level

* Use texture box for area

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-03-28 16:35:56 +01:00
Paul Bottein 6b8f4e92a7 Display category dialog in category picker (#20234) 2024-03-28 13:51:53 +01:00
Paul Bottein b590b21183 Fix unassign category action (#20235) 2024-03-28 13:51:37 +01:00
Paul Bottein a08484f450 Fix default label color (#20232) 2024-03-28 12:30:53 +00:00
Paul Bottein 2978ca13c5 Fix label creation in label picker (#20233) 2024-03-28 13:09:51 +01:00
Bram Kragten 31c0850b14 Add default icons to categories (#20215)
* Add default icons to categories

* Update ha-filter-categories.ts

* smaller graphic margin in filters
2024-03-28 11:45:41 +01:00
Bram Kragten 1d85f0717a Add label and floor to target struct (#20213) 2024-03-28 09:15:58 +01:00
Bram Kragten 795c16a941 20240327.0 (#20210) 2024-03-27 17:52:08 +01:00
Bram Kragten 55c8589841 Merge branch 'master' into dev 2024-03-27 17:45:26 +01:00
Bram Kragten 4687add37a Bumped version to 20240327.0 2024-03-27 17:41:56 +01:00
Paul BotteinandBram Kragten c25e23ccd6 Fix translations for label and category (#20209)
* Fix translations for label and category

* Update en.json

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-03-27 17:41:38 +01:00
Bram Kragten e42ddb8f0f Update ha-target-picker.ts 2024-03-27 17:36:12 +01:00
Bram KragtenandPaul Bottein 705c0e58fc Allow delete floor (#20208)
* Allow delete floor

* Update src/translations/en.json

Co-authored-by: Paul Bottein <[email protected]>

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-03-27 17:35:29 +01:00
Paul Bottein 7427e17926 Remove border from chip and use ha-label for label (#20205) 2024-03-27 16:33:32 +00:00
Paul Bottein 2c4b31dcaa Use primary color for user message in assist dialog (#20207) 2024-03-27 16:31:39 +00:00
Bram Kragten ae8671af96 Add filtering and grouping to device and entities config pages (#20204)
* Add filtering and grouping to device and entities config pages

* Update hass-tabs-subpage-data-table.ts

* Change label

* Update ha-config-voice-assistants-expose.ts

* fix expose multi select

* Update ha-config-voice-assistants-expose.ts
2024-03-27 17:26:56 +01:00
Bram Kragten f5ff55abc5 Support no level on floors (#20206) 2024-03-27 16:15:06 +00:00
karwosts b662512995 Fix missing column headers for various data tables (#20160)
* Fix missing column headers for automation/scene/script/blueprint

* more tables

* Update ha-automation-picker.ts

* Update ha-script-picker.ts

* Update ha-scene-dashboard.ts
2024-03-27 17:04:45 +01:00
renovate[bot] 64c3fb1723 Update formatjs monorepo (#20196)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-27 16:31:04 +01:00
renovate[bot] fb99dc4cd0 Update dependency transform-async-modules-webpack-plugin to v1.0.4 (#20186)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-27 16:30:37 +01:00
Bram Kragten e08a0c44ba Add filtering and grouping to scenes and scripts (#20203)
* Add filtering and grouping to scenes and scripts

* hide labels when there are none

* Update ha-data-table.ts
2024-03-27 16:24:49 +01:00
Bram Kragten 68935d46ce Add categories, filtering, grouping to automation panel (#20197)
* Add categories and filtering to automation panel

* Update search-input-outlined.ts

* Update ha-config-entities.ts

* fix resetting area filter

* fixes

* Update ha-category-picker.ts

* Update ha-filter-blueprints.ts

* fix updating badge

* fix overflow issue
2024-03-27 15:26:01 +01:00
karwosts 141c8c5192 Fix energy dates when using server TZ (#20191)
* Fix energy dates when using server TZ

* update
2024-03-27 15:24:25 +01:00
Quentame 7ca5467f4c climate: Add preset exemple (#19092)
* Add none, frost_protection & auto preset mode icons

* Revert preset icons addition
2024-03-27 12:53:14 +01:00
Tomasz 5de53964d9 Update en.json - fix expand_label_id, use areas instead of area (#20200)
Update en.json
2024-03-27 12:05:59 +01:00
Paul Bottein 8d8807e659 Fix profile page (#20199)
* Add icon to profile page

* Fix notification dot color
2024-03-27 11:17:31 +01:00
Paul Bottein 9347944cbd Update matter app translations (#20198) 2024-03-27 10:07:44 +01:00
Paul Bottein 480448acbb Add maximum number of columns option for section view (#20145)
* Add maximum number of columns option for section view

* Add comment
2024-03-27 08:53:53 +01:00
renovate[bot] 202fa82646 Update vaadinWebComponents monorepo to v24.3.10 (#20180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-26 18:12:38 -04:00
renovate[bot] feecc9f838 Update dependency @bundle-stats/plugin-webpack-filter to v4.12.2 (#20190)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-26 18:10:34 -04:00
dependabot[bot] 2f9e667517 Bump express from 4.18.3 to 4.19.2 (#20193)
Bumps [express](https://github.com/expressjs/express) from 4.18.3 to 4.19.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.3...4.19.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-26 18:09:37 -04:00
Paul Bottein 5547bc7356 Add question based matter commissioning flow (#20188)
* Create add device dialog

* Add translations and shared design

* Disable add buttons when no code

* Use right endpoint

* Add loading state

* Update logos

* Add native flow

* Add store links to download app

* Always display qr code and link

* Update translations

* Share assets and translations with app dialog
2024-03-26 20:53:05 +01:00
Bram KragtenandPaul Bottein eb4ae926b7 Add support for labels (#20189)
* Add support for labels

* Update ha-label-picker.ts

* Remove aliases from label

* Use opacity for chips in labels picker

* Fix label filtering in target picker

* Update ha-labels-picker.ts

* Update dialog-area-registry-detail.ts

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-03-26 20:52:17 +01:00
On Freund b239ec2b71 Add image domain to sensors (#20194) 2024-03-26 20:48:27 +01:00
Simon Lamon e9cac94aee Show integration page if no integrations are configured (#20107)
* Show integration page if no integrations are configured

* Feedback
2024-03-26 14:48:36 -04:00
Bram KragtenandPaul Bottein 5289cd3af1 Add floor support (#20187)
* Add floor support

* Update src/components/ha-area-floor-picker.ts

Co-authored-by: Paul Bottein <[email protected]>

* Use different type for floor area picker

* type

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-03-26 18:00:09 +01:00
Paul Bottein 45a5c1c235 Add confirmation button in lock more info (#20093)
* Add confirmation button in more info lock

* Reset confirm open on service call

* Use text instead of toast for success
2024-03-25 15:56:55 +01:00
Paul Bottein db3709952c Fix stack style in panel view (#20135) 2024-03-25 15:55:19 +01:00
Paul Bottein 447932eedb Update control slider color (#20124)
* Increase control slider thickness and border radius

* Increase control switch, select thickness and border radius

* Update assumed state toggle buttons
2024-03-25 15:54:37 +01:00
Paul Bottein 10cc3bdd3f Fix header on take control dialog (#20123) 2024-03-25 15:53:52 +01:00
Paul Bottein 6ee2bfed36 Add theme variables for grid section and sections view (#20099)
* Fix variable

* Add section view theme variables

* Add grid section theme variables
2024-03-25 15:53:21 +01:00
renovate[bot] 01efb831b7 Update dependency tar to v6.2.1 (#20178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-25 09:52:20 +01:00
dependabot[bot] 9e1e20bd94 Bump actions/cache from 4.0.1 to 4.0.2 (#20179) 2024-03-25 08:59:15 +01:00
potelux 869ace74ad Allow commas in state of history download (#20088)
Allow commas and quotes in state of history download
2024-03-24 21:30:08 -04:00
karwosts 94d56367fc Split profile page (#20103) 2024-03-24 21:18:55 -04:00
renovate[bot] 68a5ba668e Update dependency webpack to v5.91.0 (#20172)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-23 23:04:37 -04:00
renovate[bot] b2b590cf67 Update babel monorepo to v7.24.3 (#20169) 2024-03-23 17:20:27 -04:00
renovate[bot] 6f7c071769 Update dependency typescript to v5.4.3 (#20174) 2024-03-23 17:19:26 -04:00
renovate[bot] c1a7164ce7 Update dependency webpack-dev-server to v5.0.4 (#20165) 2024-03-23 17:17:55 -04:00
renovate[bot] b77839c139 Update dependency @lokalise/node-api to v12.3.0 (#20162)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-22 18:11:42 +01:00
renovate[bot] e2f2a9322c Update dependency transform-async-modules-webpack-plugin to v1.0.3 (#20153)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-22 14:33:02 +01:00
renovate[bot] e4bd6c885d Update babel monorepo to v7.24.1 (#20158)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-22 14:07:15 +01:00
renovate[bot] 8201701d17 Update dependency core-js to v3.36.1 (#20156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-22 08:40:26 -04:00
renovate[bot] a5e6b78e1d Update dependency @braintree/sanitize-url to v7.0.1 (#20154)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-22 08:38:15 -04:00
renovate[bot] 027eccba06 Update typescript-eslint monorepo to v7.3.1 (#20155) 2024-03-22 01:05:38 +00:00
dependabot[bot] 12f10513f0 Bump webpack-dev-middleware from 7.0.0 to 7.1.1 (#20152) 2024-03-21 20:53:25 -04:00
renovate[bot] 9907ed51f0 Update typescript-eslint monorepo to v7.3.0 (#20151) 2024-03-21 20:51:07 -04:00
Paul Bottein 90e9f79841 Add iframe strategy (#20068)
* Add iframe strategy with editor

* Unify sandbox parameters

* Update translations

* Remove title from editor

* Add editor when creating iframe strategy

* Update src/translations/en.json
2024-03-21 13:44:49 +01:00
Bram KragtenandPaul Bottein c30b9cdfcf Change gender to voice for cloud tts settings (#20057)
* change gender to voice for cloud tts settings

* Use voice in cloud tts try dialog

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-03-20 09:56:32 +00:00
Paul Bottein 7e1fa0cf38 Fix drag and drop when switching views (#20143) 2024-03-20 10:43:30 +01:00
Paul Bottein b6587488d4 Center title in zha pairing page (#20142) 2024-03-20 10:34:02 +01:00
552eeeddf6 conditional & entity-filter: add ability to filter through entity_id & add entity-filter conditional's conditions (#19182)
* entity-filter: add ability to filter through entity_id value

* review: test filter value against undefined

Co-authored-by: karwosts <[email protected]>

* review: better handle state values that could be mixed with an entity_id

* Add multiple filter/condition types

* Fix automation's NumericStateCondition above/below types

* Replace operator condition by state for string or number

* Move to condition: type & attr

* Remove enable attr

* fix condition state array

* Remove necessary undefined check

* Move to condition: use same codebase as conditionnal card

* Fix entities error 'read properties of undefined' + conditions first

* Fix lint

* Merge condition to set the entity to filter on

Co-authored-by: Paul Bottein <[email protected]>

* review: make numeric_state below & above working together again, with entity_id support

* shorthand getValueFromEntityId

* review: states are string

* Split legacy state filter and condition logic

* Fix types

* Fix type

* Update gallery doc

* Fix operator in while numaric array

* Rename condition card header in gallery

* Don't use real gas station name

* Update gallery

* Update card is entity in condition change

* Don't check for entity id in state condition

* Improve check

* Update condition card demo

* Revert "Don't check for entity id in state condition"

This reverts commit f5e6a65a37.

* Use set instead of list

* Update demo

---------

Co-authored-by: karwosts <[email protected]>
Co-authored-by: Paul Bottein <[email protected]>
2024-03-19 14:29:34 +01:00
Paul Bottein cbc150bad2 Fix hidden entity filter card in section (#20117) 2024-03-19 10:24:12 +01:00
Bram Kragten 8a4ed121b5 Add option to remove cloud data (#20055) 2024-03-19 10:23:32 +01:00
Paul Bottein a9793dc0a5 Remove border radius in panel view (#20122) 2024-03-19 10:21:30 +01:00
renovate[bot] c9deef84ca Lock file maintenance (#20132)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 10:19:38 +01:00
renovate[bot] 1582aaeb4c Update vaadinWebComponents monorepo to v24.3.9 (#20120)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-18 15:01:27 +01:00
karwosts 707520c15c Themed graph color support for energy devices graphs (#19998)
Themed graph color support for energy devices
2024-03-18 14:42:24 +01:00
d5de435f06 Fix html5 notification toggle (#20028)
* Fix html5 notification toggle

* Update src/components/ha-push-notifications-toggle.ts

Co-authored-by: Bram Kragten <[email protected]>

* fix lint

---------

Co-authored-by: alexyao2015 <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2024-03-18 11:03:33 +00:00
dependabot[bot] 9e3dfaa400 Bump softprops/action-gh-release from 2.0.2 to 2.0.4 (#20115) 2024-03-18 08:29:45 +01:00
dependabot[bot] 7aa92ec249 Bump actions/checkout from 4.1.1 to 4.1.2 (#20114) 2024-03-18 07:29:10 +01:00
renovate[bot] 2fdcd40f00 Update CodeMirror (#20105)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-17 18:18:10 -04:00
renovate[bot] 3b15b786ff Update dependency webpack-dev-server to v5.0.3 (#20095)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-17 18:15:49 -04:00
renovate[bot] b212b30e58 Update dependency @babel/helper-define-polyfill-provider to v0.6.1 (#20098) 2024-03-17 17:48:12 -04:00
renovate[bot] 6fd89f8585 Update dependency @bundle-stats/plugin-webpack-filter to v4.12.1 (#20104) 2024-03-17 17:46:14 -04:00
renovate[bot] 0406d21703 Update dependency @lokalise/node-api to v12.2.1 (#20102) 2024-03-17 17:45:11 -04:00
renovate[bot] 293f89a07b Update dependency @codemirror/autocomplete to v6.14.0 (#20078) 2024-03-15 10:56:46 -04:00
dependabot[bot] 520a0b4075 Bump follow-redirects from 1.15.3 to 1.15.6 (#20086) 2024-03-15 10:54:57 -04:00
renovate[bot] 488602e232 Update dependency superstruct to v1.0.4 (#20082) 2024-03-15 08:21:34 -04:00
renovate[bot] 1e8d353162 Update typescript-eslint monorepo to v7.2.0 (#20085) 2024-03-15 08:19:02 -04:00
Simon Lamon b3718b8b4a Fix broken state_color in Entities card (#20077)
Restore button functionality
2024-03-15 11:22:25 +01:00
Simon Lamon 097cba5c60 Use the entityId in the legacy shopping cart (#20083) 2024-03-15 11:20:42 +01:00
Simon Lamon fa6d8d0891 Bump Python version to 3.12 (#20084) 2024-03-14 20:06:03 +01:00
Paul Bottein 31797c55df Add map strategy (#20067) 2024-03-14 14:22:24 +01:00
karwosts 56a23c5c3d Small reorganization of profile settings (#20076)
* Small reorganization of profile settings

* use isExternal
2024-03-14 01:17:07 -04:00
Klara adc89f1487 Fix spelling mistake of Changelog in About (#20044)
Fix spelling mistake
2024-03-13 15:24:11 +00:00
7facc375bc Avoid starting config flow and show alert dialog early if single config entry only (#19648)
* Add note that integration only supports one entry on the integration page

* Set on error

* Move single instance info to the manifest and add it to the add integration dialog as well

* Get config entries only when single_instance_only set and add check to redirect

* Make single_instance_only optional

* Add missing import

* Use new manifest option name

* Fix translation key

* Rename dialog and re-add button

* Fix linting error

* Use alert dialog instead of new one

* Remove ha-alert on integration page

* Remove css change

* Apply language tweak

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Franck Nijhof <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2024-03-13 16:20:28 +01:00
renovate[bot] 91d3fb0ea8 Update dependency date-fns-tz to v2.0.1 (#20075)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-13 10:05:27 -04:00
Yosi Levy 4ab0047dc1 RTL fixes for state info (#20056) 2024-03-13 09:17:27 +01:00
Samuel Schultze 279eeaa442 Add swing modes card feature (#19999)
feat: add swing modes card feature
2024-03-12 14:14:06 +01:00
Matt d4d0fb2a03 Add azimuth to sun.sun dialog's more-info section (#20036) 2024-03-12 12:33:21 +01:00
Yosi Levy d56fe8a542 Update simple-tooltip to 8.0.2 with RTL fix (remove patch) (#20039)
* Update simple-tooltip to 8.0.2 with RTL fix (remove patch)

* Remove patch
2024-03-12 00:37:39 -04:00
renovate[bot] 292701925d Update vaadinWebComponents monorepo to v24.3.8 (#20054) 2024-03-11 23:20:22 -04:00
renovate[bot] 52fc854cc3 Update dependency @babel/helper-define-polyfill-provider to v0.6.0 (#20061) 2024-03-11 23:04:42 -04:00
renovate[bot] 90ca039768 Update dependency open to v10.1.0 (#20059) 2024-03-11 23:03:28 -04:00
dependabot[bot] 9e81055070 Bump softprops/action-gh-release from 0.1.15 to 2.0.2 (#20048)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-11 10:57:49 +01:00
renovate[bot] cea402ebf8 Update dependency marked to v12.0.1 (#20031) 2024-03-09 21:40:00 -05:00
renovate[bot] 6b939b95c0 Update dependency @codemirror/view to v6.25.1 (#20032) 2024-03-09 21:29:22 -05:00
renovate[bot] b24621d1ea Update dependency typescript to v5.4.2 (#20035) 2024-03-09 21:25:49 -05:00
renovate[bot] cc0fde2c08 Update CodeMirror (#19953)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-08 11:39:21 -05:00
renovate[bot] 3732998fb7 Update Yarn to v4.1.1 (#20020) 2024-03-08 07:48:46 -05:00
renovate[bot] c699e265ef Update typescript-eslint monorepo to v7.1.1 (#20019) 2024-03-08 07:46:22 -05:00
renovate[bot] 98bb726f1a Update dependency magic-string to v0.30.8 (#20003) 2024-03-08 07:45:09 -05:00
renovate[bot] c132e7ed85 Update dependency xss to v1.0.15 (#20000) 2024-03-08 07:43:35 -05:00
Bram Kragten 298cebe17f Bumped version to 20240307.0 2024-03-07 16:10:42 +01:00
Paul Bottein d03825d200 Block moving card to a section view or a strategy view (#20016) 2024-03-07 16:10:26 +01:00
Paul Bottein d9ab9db211 Fix width of create section button (#20015) 2024-03-07 16:10:25 +01:00
Simon Lamon 58a607561a Fix visibility save in dashboard edit (#20013)
Visibility fix
2024-03-07 16:10:25 +01:00
Simon Lamon 0ae1f11ffc Fix removal of badges after yaml dashboard change (#20012)
* Fix badges removed after yaml change

* Remove test code
2024-03-07 16:10:24 +01:00
Yosi Levy db48c5a6a3 Sections RTL fixes (#20007) 2024-03-07 16:10:23 +01:00
Paul Bottein effefdbff1 Add layout options to cards and improve grid and sections defaults (#20001)
* Add grid options to cards

* Fix the height of the card it's rows option is provided

* Add variable

* Adjust grid margin

* Use layout options

* Fix max width when only one column

* Update card API
2024-03-07 16:10:22 +01:00
Paul Bottein 233c969402 Block moving card to a section view or a strategy view (#20016) 2024-03-07 14:56:57 +00:00
Paul Bottein 3b885dd01f Fix width of create section button (#20015) 2024-03-07 15:47:10 +01:00
Simon Lamon 52c8554d89 Fix removal of badges after yaml dashboard change (#20012)
* Fix badges removed after yaml change

* Remove test code
2024-03-07 15:12:56 +01:00
Simon Lamon b55baef985 Fix visibility save in dashboard edit (#20013)
Visibility fix
2024-03-07 15:12:02 +01:00
Paul Bottein b593b15f27 Add layout options to cards and improve grid and sections defaults (#20001)
* Add grid options to cards

* Fix the height of the card it's rows option is provided

* Add variable

* Adjust grid margin

* Use layout options

* Fix max width when only one column

* Update card API
2024-03-07 10:22:26 +00:00
Yosi Levy 00669ac0c3 Sections RTL fixes (#20007) 2024-03-07 11:18:56 +01:00
Paul Bottein 33a4258c06 Set grid gap to 32px (#19990)
Set grip grap to 32px
2024-03-06 11:43:03 +01:00
Bram Kragten d4a8fcbe03 Bumped version to 20240306.0 2024-03-06 11:38:57 +01:00
Paul Bottein 36c3b938ce Add section max width variable to section view (#19995) 2024-03-06 11:38:05 +01:00
Bram Kragten bf2fad2a2a Patch HLS light module (#19993)
Patch hls light module
2024-03-06 11:37:20 +01:00
Paul Bottein 9cbd49b867 Add description to sections demo (#19991)
* Add description to sections demo

* Update wording
2024-03-06 11:36:03 +01:00
Paulus Schoutsen 9de59131f4 Run script in script editor open more info if fields (#19982)
* Run script in script editor open more info if fields

* Extract function
2024-03-06 11:36:02 +01:00
Paul Bottein 7f44e89829 Use shorter name for dashboard (#19980) 2024-03-06 11:36:01 +01:00
Paul Bottein 572e4457b3 Fix margin on browse media button (#19979) 2024-03-06 11:36:00 +01:00
Paul Bottein a5bcf87c08 Add description to sections demo (#19991)
* Add description to sections demo

* Update wording
2024-03-05 23:45:16 -05:00
Paul Bottein 8ca5b7528b Add section max width variable to section view (#19995) 2024-03-05 23:55:10 +01:00
Bram Kragten d951e68c10 Patch HLS light module (#19993)
Patch hls light module
2024-03-05 22:25:35 +01:00
Paul Bottein 32e8d2043c Set grid gap to 32px (#19990)
Set grip grap to 32px
2024-03-05 17:30:35 +01:00
MichaelandBram Kragten bf028915ec Add clickForMoreInfo to statistics graph card (#19178)
* add clickForMoreInfo

* only show more info on graphs when mouse is used

* disable clickForMoreInfo already in more-info popup

* check if not isExternalStatistic

* Apply suggestions from code review

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-03-05 15:13:51 +01:00
renovate[bot] b03f483e4f Update dependency eslint-config-airbnb-typescript to v18 (#19986)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-05 08:16:19 -05:00
Paul Bottein 6f6202eb69 Fix margin on browse media button (#19979) 2024-03-04 23:18:09 -05:00
Paulus Schoutsen 7ab2d1496e Run script in script editor open more info if fields (#19982)
* Run script in script editor open more info if fields

* Extract function
2024-03-04 22:23:14 +01:00
dependabot[bot] acc229a7e1 Bump actions/cache from 4.0.0 to 4.0.1 (#19966)
Bumps [actions/cache](https://github.com/actions/cache) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4.0.0...v4.0.1)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-04 15:01:08 -05:00
renovate[bot] 64ffa86fe3 Update dependency @octokit/plugin-retry to v7.0.3 (#19962)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-04 14:59:37 -05:00
G Johansson 8b77024fb9 Add reconfigure config entry (#19794) 2024-03-04 20:23:01 +01:00
Paul Bottein 42aa18ac16 Use shorter name for dashboard (#19980) 2024-03-04 13:07:37 -05:00
Paul Bottein 54d21666d0 Bumped version to 20240304.0 2024-03-04 17:21:05 +01:00
Paul Bottein aac00a5e78 Change wording from add section to create section (#19978)
* Rename add section to create section

* update function name
2024-03-04 17:19:59 +01:00
Paul Bottein 63d93f2a36 Don't suggest to pick another card for sections (#19977) 2024-03-04 17:19:58 +01:00
Paul Bottein a9f453ea36 Add sections dashboard to demo dashboard (#19976) 2024-03-04 17:19:57 +01:00
Paul BotteinandBram Kragten d248de92e5 Clean generated config for tile in sections (#19974)
* Do not include show_entity_picture false in tile card config

* Update src/panels/lovelace/common/generate-lovelace-config.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-03-04 17:19:56 +01:00
Paul BotteinandBram Kragten 0ed483ba51 Do not reserve space for condition card in grid section (#19973)
* Do not reserve space for condition card in grid section

* Update src/panels/lovelace/sections/hui-grid-section.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-03-04 17:19:54 +01:00
Paul Bottein 68fbadf21b Fix masonry badges not centered (#19972) 2024-03-04 17:19:53 +01:00
Paul Bottein ac66079d41 Fix badges not saved in view editor (#19971) 2024-03-04 17:19:52 +01:00
Paul Bottein 56c681bcf8 Make migration warning alert sticky at the top for views (#19970) 2024-03-04 17:19:51 +01:00
Paul Bottein c5c4253760 Expose dialog to custom card helpers (#19969) 2024-03-04 17:19:50 +01:00
karwosts 84e6f2fc4f Fix a bug in energy batteryToGrid calculation (#19958) 2024-03-04 17:19:48 +01:00
karwosts 8cedaae645 Support max_devices for energy-devices-detail-graph (#19936)
* Support max_devices for energy-devices-detail-graph

* responsive ui editor
2024-03-04 17:19:47 +01:00
Jeremy Noesen e350ba4726 Update cast launch screen colors (#19754) 2024-03-04 17:19:46 +01:00
Paul Bottein 1b7742ef7f Change wording from add section to create section (#19978)
* Rename add section to create section

* update function name
2024-03-04 16:33:31 +01:00
Paul BotteinandBram Kragten 0c6bf701c7 Clean generated config for tile in sections (#19974)
* Do not include show_entity_picture false in tile card config

* Update src/panels/lovelace/common/generate-lovelace-config.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-03-04 14:50:40 +00:00
Jeremy Noesen 05e2e305e4 Update cast launch screen colors (#19754) 2024-03-04 15:45:54 +01:00
karwosts 5523cd6203 Fix a bug in energy batteryToGrid calculation (#19958) 2024-03-04 15:44:17 +01:00
Paul BotteinandBram Kragten 50da4bcd37 Do not reserve space for condition card in grid section (#19973)
* Do not reserve space for condition card in grid section

* Update src/panels/lovelace/sections/hui-grid-section.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-03-04 14:31:49 +00:00
Paul Bottein b99072d986 Use icon in area card if there is no image (#19933) 2024-03-04 15:31:07 +01:00
Paul Bottein b9a7a7c422 Don't suggest to pick another card for sections (#19977) 2024-03-04 15:30:31 +01:00
Paul Bottein 88ccbcd883 Fix badges not saved in view editor (#19971) 2024-03-04 14:28:58 +00:00
Paul Bottein b5bb6c6fe5 Expose dialog to custom card helpers (#19969) 2024-03-04 15:22:22 +01:00
Paul Bottein 19a3810168 Add sections dashboard to demo dashboard (#19976) 2024-03-04 15:22:04 +01:00
Paul Bottein 8ccc38eb00 Fix masonry badges not centered (#19972) 2024-03-04 15:04:45 +01:00
Paul Bottein 70146a08c1 Make migration warning alert sticky at the top for views (#19970) 2024-03-04 15:04:20 +01:00
karwosts 19d50b9c92 Support max_devices for energy-devices-detail-graph (#19936)
* Support max_devices for energy-devices-detail-graph

* responsive ui editor
2024-03-04 15:02:32 +01:00
renovate[bot] 05c1328ca7 Update dependency gulp-merge-json to v2.2.1 (#19942)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-03 17:03:18 -05:00
renovate[bot] 99c2dd9765 Update dependency @bundle-stats/plugin-webpack-filter to v4.12.0 (#19957) 2024-03-03 12:43:34 -05:00
renovate[bot] edbe6851f7 Update dependency @types/chromecast-caf-sender to v1.0.9 (#19960) 2024-03-03 12:42:30 -05:00
renovate[bot] a7867a9253 Update babel monorepo to v7.24.0 (#19945) 2024-03-02 21:38:07 -05:00
renovate[bot] 94e70f81ed Update dependency chart.js to v4.4.2 (#19947)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-02 15:00:33 -05:00
renovate[bot] 3d8654253a Update octokit monorepo (#19941) 2024-03-01 21:31:44 -05:00
Paul Bottein 69dbcec678 Bumped version to 20240301.0 2024-03-01 16:15:03 +01:00
Paul Bottein de8b0ba8c5 Transform helper to warning for edit view type (#19934) 2024-03-01 16:12:49 +01:00
Paul Bottein 730cd9f983 Use max column count instead of max width for section grid (#19932) 2024-03-01 16:12:48 +01:00
Paul Bottein 67d8765624 Add badges support to sections view (#19929) 2024-03-01 16:12:47 +01:00
Paul Bottein 39bd07de73 Revert "Bumped version to 20240301.0"
This reverts commit 3202ea55d2.
2024-03-01 15:59:01 +01:00
Paul Bottein 3202ea55d2 Bumped version to 20240301.0 2024-03-01 15:41:56 +01:00
Paul Bottein 329a8c0c90 Transform helper to warning for edit view type (#19934) 2024-03-01 09:31:25 -05:00
Paul Bottein c05824c641 Revert "Transform helper to warning for edit view type"
This reverts commit 3abdffda9c.
2024-03-01 14:57:08 +01:00
Paul Bottein 3abdffda9c Transform helper to warning for edit view type 2024-03-01 14:55:34 +01:00
Paul Bottein 67da851efc Use max column count instead of max width for section grid (#19932) 2024-03-01 13:09:21 +01:00
Paul Bottein 5463a27255 Add badges support to sections view (#19929) 2024-03-01 13:09:10 +01:00
renovate[bot] ec0434c9b0 Update dependency hls.js to v1.5.7 (#19927)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-01 11:58:00 +01:00
renovate[bot] 7d8cb5c863 Update typescript-eslint monorepo to v7.1.0 (#19922) 2024-02-29 18:32:16 -05:00
Bram Kragten 4f01348ffb Improve error display in automation/script traces (#19920) 2024-02-29 13:09:02 -05:00
Bram Kragten ca7e257e95 Bumped version to 20240228.1 2024-02-29 16:44:43 +01:00
Paul BotteinandBram Kragten a34332b48d Fix section editing after disconnect/reconnect (#19917)
* Fix section editing after disconnect/reconnect

* Update src/components/ha-sortable.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-02-29 16:44:11 +01:00
Paul Bottein 962912c43c Add allow changing type of empty views (#19912) 2024-02-29 16:44:10 +01:00
Paul BotteinandBram Kragten 2af3400464 Fix section editing after disconnect/reconnect (#19917)
* Fix section editing after disconnect/reconnect

* Update src/components/ha-sortable.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-02-29 14:12:19 +00:00
renovate[bot] b6e220a4c5 Update vaadinWebComponents monorepo to v24.3.7 (#19919)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-29 13:54:55 +01:00
renovate[bot] d5d45f100e Update dependency open to v10.0.4 (#19918)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-29 13:54:22 +01:00
renovate[bot] 6b9ca60c47 Update octokit monorepo to v7 (major) (#19914)
Update octokit monorepo to v7

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-29 13:54:02 +01:00
Simon Lamon bc445a1e27 Lokalize automation trace area (#19836)
* Translate automation trace timeline area

* Fix undefined changed_variables

* change naming options in triggered_by

* Split messages for stopped_by

* remove stopped message
2024-02-29 13:51:18 +01:00
dependabot[bot] a087b4c43e Bump ip from 1.1.8 to 1.1.9 (#19915) 2024-02-29 01:20:20 -05:00
Paul Bottein 8f67ddf968 Add allow changing type of empty views (#19912) 2024-02-28 21:51:21 +01:00
Simon LamonandBram Kragten 9ef07484dd Replace paper-toast with mwc-snackbar (#19579)
* toast

* Fixes

* Linting

* Remove empty styles

* PR feedback

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-02-28 21:50:58 +01:00
Bram Kragten 7475cb56a1 20240228.0 (#19908) 2024-02-28 17:07:48 +01:00
Paulus SchoutsenandBram Kragten 5287061699 Update script more info (#19899)
* Update script more info

* Fixes

* Update styling

* remarks

* Always show cancel button

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-02-28 17:07:26 +01:00
Bram Kragten 3ef1110109 Bumped version to 20240228.0 2024-02-28 16:51:50 +01:00
Bram Kragten 2efe2589d2 Merge branch 'rc' into dev 2024-02-28 16:50:23 +01:00
Bram Kragten 4fb596357d Add advanced options block to cloud remote connection (#19907)
* Add advanced options block to cloud remote connection

* Review
2024-02-28 16:28:51 +01:00
karwosts dd98ec771d Infer a limited history chart from state object (#19176)
* Infer a limited history chart from state object

* bugfix

* bugfix

* minor fixes from feedback
2024-02-28 15:20:56 +00:00
Paul Bottein 94f74308d8 Escape special characters of automation ID in URL (#19790)
* Escape special character of automation ID in URL

* Use encodeURIComponent
2024-02-28 13:29:00 +00:00
renovate[bot] b982884933 Pin dependencies (#19905)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-28 08:26:26 -05:00
renovate[bot] c47c6e358b Update dependency color-name to v2 (#19906)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-28 13:05:53 +00:00
Charles Baynham 46394d0bf9 Always show "create new zone from current location" option (#19649) 2024-02-28 13:56:30 +01:00
karwosts 4dc154201a Support color names in energy themes (#19597)
* Support color names in energy themes

* fix yarn
2024-02-28 13:55:11 +01:00
Simon Lamon ebdbab81d3 Mobile view calendar improvements (#19218)
* Mobile view calendar improvements

* Remove very narrow

* Revert default choice
2024-02-28 13:51:59 +01:00
Paul Bottein 155098bc41 Center section in section view (#19904) 2024-02-28 13:30:10 +01:00
karwosts 291638a9dd Deduplicate blueprint editor code (#19791)
* Deduplicate blueprint editor code

* prune unneeded imports
2024-02-28 13:08:31 +01:00
karwosts 763c672e36 Automated outlier detection for adjust sum dialog (#18723) 2024-02-28 12:54:44 +01:00
Paul BotteinandBram Kragten c945534640 Disable the ability to change the view type to sections and the other way around (#19902)
* Disable the ability to change the view type to sections and the other way around

* Update src/translations/en.json

Co-authored-by: Bram Kragten <[email protected]>

* Update src/translations/en.json

Co-authored-by: Bram Kragten <[email protected]>

* Update src/translations/en.json

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-02-28 12:35:32 +01:00
Marcel van der Veldt 5b3074d939 Replace button to manually add a Thread border router with more info button (#19903)
Replace button to manually add a border router with more info button
2024-02-28 11:33:21 +00:00
Marko DimjaševićandBram Kragten 3b89b72568 Automation editor: clarify multiple triggers logic (#19647)
* Automation editor: clarify multiple triggers logic

* Implement PR feedback

* Update src/translations/en.json

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-02-28 11:29:18 +00:00
Cody CandBram Kragten 1d9fa1522c Fix MFA module name not showing on step completion (#19581)
* Fix MFA module name not showing on step completion

Fixes #18918

* Update src/panels/profile/dialog-ha-mfa-module-setup-flow.ts

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-02-28 11:07:38 +00:00
renovate[bot] 4db743db00 Update dependency webpack-dev-server to v5 (#19807)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-28 12:07:27 +01:00
Cody C d5f8231f97 Update dashboard resources title to reflect translations (#19641)
* Update dashboard resources title to reflect translations

* Update dashboard resources title to reflect translations
2024-02-28 11:57:12 +01:00
Simon Lamon 32c403d069 Replace more paper-items (#19707)
Remove leftover paper items
2024-02-28 11:52:45 +01:00
renovate[bot] 220da51606 Update dependency @material/web to v1.3.0 (#19877)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-28 11:47:54 +01:00
Paulus SchoutsenandBram Kragten 9ae234a02f Mark paste button list item as interactive (#19898)
* Mark paste button list item as interactive

* Update add-automation-element-dialog.ts

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-02-28 10:46:27 +00:00
Jimandkarwosts 401bbed67b Improve service filtering (#19811)
* Improve service filtering

Split filter term by space and match if each word is individually present

* Prettier formatting

* Fix un-necessary toLowerCase() call

Co-authored-by: karwosts <[email protected]>

* Combine filter check conditions into the same loop

* Prettier formatting

---------

Co-authored-by: karwosts <[email protected]>
2024-02-28 11:42:19 +01:00
Marcel van der Veldt 83190c21db Clear Matter ping result when closing the dialog (#19901) 2024-02-28 10:42:07 +00:00
karwosts ccdd906e2f Restore alphabetical sorting to Areas (#19897) 2024-02-28 11:37:02 +01:00
Paul Bottein f4c932ef9c Automatically add section to empty section view and improve delete wording (#19892)
* Automatically add section to empty section view and improve delete wording

* Update delete dialog

* Update delete dialog
2024-02-28 11:35:19 +01:00
Yosi Levy 0892ed18e5 RTL fixes (#19834)
* RTL fixes

* Additional update

* Fixed comments
2024-02-28 11:26:18 +01:00
Joakim Sørensen 3afc218adc Combine component/components PageNavigation keys (#19890)
* Combine component/components PageNavigation keys

* Update src/panels/config/ha-panel-config.ts
2024-02-28 11:25:41 +01:00
Erik Montnemery 841b9c0917 Add support for translation domain in data entry flows (#19900) 2024-02-28 11:12:19 +01:00
karwosts a479c6e786 Download energy panel data to CSV (#19863)
* Download energy panel data to CSV

* table format changes

* unique types for cost/compensation
2024-02-27 23:02:39 -05:00
Paulus Schoutsen babb723521 Fix script data (#19894) 2024-02-27 22:05:27 +01:00
Joakim Sørensen 29954e530e Hide the core backup integration if hassio is loaded (#19833)
* Hide the core backup integration if hassio is loaded

* Combine to single entry
2024-02-27 14:36:16 +00:00
karwosts fb3c94f403 Improve map/zone navigation (#19740)
* Improve map/zone navigation

* dont remove tabs
2024-02-27 15:24:42 +01:00
karwosts dd8c1d359c localize input_select form (#19829) 2024-02-27 15:22:34 +01:00
Steve Repsher 45e09a262b Fix issues with state_color as false (#19776)
* Fix issues with state_color as false

* Remove format from glance timestamp

* Restore type assertion hack and remove conditional

* Revert "removal of glance timestamp format and adjust types to make it work

* Revert to minimal change just to pass false state_color
2024-02-27 15:20:13 +01:00
d6d61a4137 Show script fields in Script more info dialog (#19879)
* Show script fields in more info dialog

* Apply suggestions from code review

Co-authored-by: Bram Kragten <[email protected]>

* Guard for state obj changes

* Update src/components/ha-service-control.ts

Co-authored-by: Marc Geurts <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: Marc Geurts <[email protected]>
2024-02-27 15:05:28 +01:00
dependabot[bot] 8fe7711634 Bump es5-ext from 0.10.62 to 0.10.63 (#19883)
Bumps [es5-ext](https://github.com/medikoo/es5-ext) from 0.10.62 to 0.10.63.
- [Release notes](https://github.com/medikoo/es5-ext/releases)
- [Changelog](https://github.com/medikoo/es5-ext/blob/main/CHANGELOG.md)
- [Commits](https://github.com/medikoo/es5-ext/compare/v0.10.62...v0.10.63)

---
updated-dependencies:
- dependency-name: es5-ext
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-27 08:05:46 -05:00
James Woglom a5ec7fc251 Resolve iframe CORS errors - Fix #19724 (#19884)
* Resolve iframe CORS errors - Fix #19724

* add newline
2024-02-27 12:17:29 +00:00
Paul Bottein b9935717dc Focus cancel button on destructive confirmation dialog (#19889) 2024-02-27 12:51:35 +01:00
Paul Bottein bb25817bae Reduce drag and drop delay on touch (#19888) 2024-02-27 12:50:59 +01:00
Paul Bottein bf8a33e086 Fix button card and sensor card in grid section (#19887) 2024-02-27 12:50:37 +01:00
renovate[bot] bf56f50e0a Update dependency gulp-json-transform to v0.5.0 (#19885)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-27 11:26:11 +01:00
renovate[bot] 3a8e2c429f Update dependency eslint to v8.57.0 (#19882) 2024-02-26 18:38:40 -05:00
chammp e8fca5d93c Directly prompt for lock code in dashboards (#19835)
Prompt for lock codes in more places
2024-02-26 15:21:02 +01:00
Yosi Levy a39cf99024 RTL updates (#19848)
* RTL updates

* Additional fixes

* TODO fix
2024-02-26 15:14:32 +01:00
renovate[bot] 0ff27154e6 Update fullcalendar monorepo to v6.1.11 (#19865)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-23 14:32:13 -05:00
renovate[bot] 766fd4cbf5 Update dependency webpack to v5.90.3 (#19858)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-22 15:19:44 -05:00
renovate[bot] 1869260868 Update CodeMirror (#19857)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-22 15:17:02 -05:00
renovate[bot] 93046d78f6 Update dependency webpackbar to v6.0.1 (#19859)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-22 15:15:30 -05:00
renovate[bot] 3e51f9a505 Update typescript-eslint monorepo to v7.0.2 (#19862)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-22 15:14:06 -05:00
Paul Bottein d95bf64edf Add experimental sections view (#19846) 2024-02-22 20:51:48 +01:00
karwosts 47f7cf5419 Add devices to energy collection (#19849)
* Include individual devices in energy collection

* async cleanup, fix includeTypes filter
2024-02-22 16:23:06 +01:00
Paul Bottein 267fc3743d Fix device class icon not showing in entities config page (#19854) 2024-02-22 10:42:37 +01:00
karwosts a6d73f7615 Allow unhiding entity hidden by integration (#19753) 2024-02-22 10:42:15 +01:00
dependabot[bot] b360c854a8 Bump ip from 1.1.8 to 1.1.9 (#19855) 2024-02-21 20:28:37 -05:00
renovate[bot] a088b20987 Update dependency hls.js to v1.5.6 (#19843)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-21 17:43:38 -05:00
renovate[bot] af6dd545dc Update dependency @bundle-stats/plugin-webpack-filter to v4.10.1 (#19844)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-21 21:59:27 +00:00
karwosts a26df88022 More accurate cardSize for Tile card (#19853)
More accurate cardSize for tile card
2024-02-21 22:08:30 +01:00
renovate[bot] 86ec272581 Update dependency @types/sortablejs to v1.15.8 (#19839)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-20 14:39:33 +01:00
karwostsandPaul Bottein 2a803e09a4 Detail view for energy devices graph (#19068)
* Detail view for energy devices graph

* Use getCommonOptions

* Remove visibility toggle on horizontal bar chart

* make a new card

* unneeded translations

* graph titles

* Update src/translations/en.json

Co-authored-by: Paul Bottein <[email protected]>

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-02-20 14:14:04 +01:00
renovate[bot] 50cf6d2af9 Lock file maintenance (#19832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-19 12:34:52 -05:00
karwosts 86626b1855 Localize Long Lived Token Dialog (#19830) 2024-02-19 10:06:33 +01:00
renovate[bot] 63603a281e Update dependency webpack to v5.90.2 (#19828)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-18 16:01:25 -05:00
renovate[bot] faf05f5339 Update dependency @bundle-stats/plugin-webpack-filter to v4.10.0 (#19825)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-18 00:42:48 -05:00
Paul Bottein 4de3db52cb Remove cancel button on edit view dialog (#19821) 2024-02-17 20:33:50 -05:00
renovate[bot] 9a9fbda08b Update dependency core-js to v3.36.0 (#19822)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-17 13:09:59 -05:00
renovate[bot] ea642515c1 Update dependency husky to v9.0.11 (#19818)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-17 13:06:30 -05:00
renovate[bot] add2dedc7f Update dependency hls.js to v1.5.5 (#19817) 2024-02-16 20:30:51 -05:00
Simon LamonandSteve Repsher 4ba4a28aa0 Bring back backend translations in devcontainer (#19793)
* Bring back translations

* Apply feedback

Co-authored-by: Steve Repsher <[email protected]>

---------

Co-authored-by: Steve Repsher <[email protected]>
2024-02-16 12:41:53 -05:00
Bram Kragten 7050453783 Check active matter fabric by index (#19692)
Check active fabric by id
2024-02-16 17:13:43 +01:00
renovate[bot] 8f984517bb Update typescript-eslint monorepo to v7 (major) (#19810)
Update typescript-eslint monorepo to v7

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-16 10:05:05 -05:00
karwosts 2524c96db6 Localize system log detail (#19813) 2024-02-16 16:03:35 +01:00
karwosts 26600e3d78 Compact legend mode for statistics-graph-card (#19089)
* Compact legend mode for statistics-graph-card

* remove clearable from selector

* Remove legend_mode, make compact default
2024-02-16 16:02:42 +01:00
renovate[bot] 316756d06a Update dependency eslint-plugin-unused-imports to v3.1.0 (#19814)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-16 10:00:56 -05:00
Tucker Kern 7357b914d0 Add fan preset modes feature to Tile cards (#19618)
* Add support for fan preset modes in Tile cards.

Convert climate-preset-mode-card-feature to a more generic preset-modes-card-feature that supports fan entitys.

* Split fan and climate preset modes features

* Restore climate-preset-modes as an editable feature
2024-02-16 15:04:16 +01:00
karwosts 8548c9767b Localize assist pipeline debug (#19812)
localize assist pipeline debug
2024-02-16 10:47:24 +01:00
renovate[bot] a30a35f82f Update dependency chai to v5.1.0 (#19809) 2024-02-15 19:26:46 -05:00
karwosts 84938ccc94 stopPropagation on automation moveUp/moveDown (#19804)
* stopPropagation on automation moveUp/moveDown

* also conditions and triggers
2024-02-15 10:04:40 +01:00
Bram Kragten 8136cc8008 Cloud: allow remote enable (#19691)
* Cloud: allow remote enable

* core does this
2024-02-14 15:05:18 +01:00
PolishKrowa 2dc9d268ec Allowed ObjectSelector to work in forms (#19761) 2024-02-14 09:16:24 +00:00
Steve Repsher 226dad309c Install libpcap for core in devcontainers (#19787) 2024-02-14 10:08:14 +01:00
Paul Bottein 33cdd51f00 Improve lovelace card events (#19785) 2024-02-14 10:07:50 +01:00
karwosts a3a099126e Fix to display correct weather attribute unit (#19750) 2024-02-14 10:03:04 +01:00
Jeremy Noesen 4e22fea6e2 Fix status text centering for cast launch screen (#19748) 2024-02-14 09:57:39 +01:00
Yosi Levy fd06f28253 Patch simple tooltip for RTL (#19767) 2024-02-14 09:57:10 +01:00
Paulus Schoutsen 553230ca23 Change how external QR code scanning works (#19743) 2024-02-14 09:56:02 +01:00
karwosts 208bfebc12 Fix chart alignments (#19788) 2024-02-13 09:24:02 +01:00
Jan Čermák 802b0949ac Fix My redirect for supervisor_logs (#19780)
My link for supervisor_logs redirected to common logs after the removal
of Supervisor panel. Leverage provider param added in #19355 to show
Supervisor logs directly.
2024-02-13 09:23:04 +01:00
Yosi Levy b65dc47f72 Drawer fix (#19789) 2024-02-13 09:22:19 +01:00
renovate[bot]andSteve Repsher c5a3670838 Update dependency prettier to v3.2.5 (#19711)
* Update dependency prettier to v3.2.5

* Reformat

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2024-02-12 22:53:41 +00:00
renovate[bot] cd167ac645 Update dependency @codemirror/view to v6.24.0 (#19781)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-12 13:12:23 -05:00
dependabot[bot] eb3e756637 Bump actions/setup-node from 4.0.1 to 4.0.2 (#19777) 2024-02-12 08:23:29 +01:00
dependabot[bot] 5049210524 Bump actions/upload-artifact from 4.3.0 to 4.3.1 (#19778) 2024-02-12 07:51:26 +01:00
renovate[bot] eeaad86c4b Update vaadinWebComponents monorepo to v24.3.6 (#19771) 2024-02-11 22:25:11 -05:00
renovate[bot] 71483e0bc7 Update dependency mocha to v10.3.0 (#19772) 2024-02-11 22:23:51 -05:00
renovate[bot] 10650e8937 Update dependency marked to v12 (#19706)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-10 18:19:33 -05:00
renovate[bot] 99d72ba817 Update dependency hls.js to v1.5.4 (#19757)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-10 17:58:45 -05:00
renovate[bot] e21ad742b1 Update dependency @codemirror/search to v6.5.6 (#19762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-10 17:56:50 -05:00
renovate[bot] 1bcb1e7768 Update dependency magic-string to v0.30.7 (#19744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-08 15:28:26 -05:00
renovate[bot] 618fee98ce Update typescript-eslint monorepo to v6.21.0 (#19747)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-08 15:27:25 -05:00
renovate[bot] 83da89437f Update dependency lint-staged to v15.2.2 (#19737)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-08 20:19:53 +01:00
Bram Kragten 35ebfc15c9 Merge branch 'rc' 2024-02-08 18:32:06 +01:00
Bram Kragten f0a9185e4a handle undefined and null in cast 2024-02-08 18:31:23 +01:00
Bram Kragten b3766cbc62 Merge branch 'rc' 2024-02-08 18:09:07 +01:00
Bram Kragten fac82fa185 Revert "Bumped version to 20240208.0"
This reverts commit 17bd7f9476.
2024-02-08 18:08:35 +01:00
Bram Kragten 3469013f1a Bumped version to 20240207.1 2024-02-08 18:07:15 +01:00
Bram Kragten 03486e4125 cast allow empty view, pick first (#19739) 2024-02-08 18:06:57 +01:00
Bram Kragten 20560fb847 Fix cast launch screen (#19738) 2024-02-08 18:06:37 +01:00
Bram Kragten bad18da658 Fix icons in gallery, demo and cast (#19732)
* Fix icons in gallery and demo

* Add to lovelace gallery

* Update icons.ts

* add BACKWARDS_COMPAT support for icons

* Update entity-state.ts

* Update icons.ts

* Update icons.ts
2024-02-08 18:06:27 +01:00
Paul Bottein e26c7c491a Fix demo dashboard (#19734) 2024-02-08 18:06:11 +01:00
Paul Bottein b0c8ae0c94 Fix suggest card dialog (#19735) 2024-02-08 18:05:55 +01:00
Bram Kragten cc1658cbab Add service icons to traces (again :D) (#19728)
* Add service icons to traces (again :D)

* Update hat-graph-node.ts
2024-02-08 18:05:41 +01:00
Paul Bottein 4b768f0635 Use rgb theme variables for qrcode (#19726) 2024-02-08 18:05:27 +01:00
Paul Bottein 989057d947 Show icon of disabled entities (#19717) 2024-02-08 18:05:16 +01:00
Bram Kragten 6671d24fa6 Improve matter ping dialog (#19715) 2024-02-08 18:05:05 +01:00
Bram Kragten 297c721229 Matter cleanup on close dialog (#19714) 2024-02-08 18:04:51 +01:00
Bram Kragten 17bd7f9476 Bumped version to 20240208.0 2024-02-08 17:45:37 +01:00
Bram Kragten 045ff7a45e cast allow empty view, pick first (#19739) 2024-02-08 17:43:50 +01:00
Bram Kragten 8624853ec4 Fix cast launch screen (#19738) 2024-02-08 17:40:43 +01:00
Bram Kragten 336376d2a5 Fix icons in gallery, demo and cast (#19732)
* Fix icons in gallery and demo

* Add to lovelace gallery

* Update icons.ts

* add BACKWARDS_COMPAT support for icons

* Update entity-state.ts

* Update icons.ts

* Update icons.ts
2024-02-08 17:04:05 +01:00
Paul Bottein 189793bff4 Fix demo dashboard (#19734) 2024-02-08 15:40:03 +01:00
Paul Bottein 1e35f973d6 Fix suggest card dialog (#19735) 2024-02-08 15:38:55 +01:00
Bram Kragten 6033f8b31a Add QR and constant selector to gallery (#19730)
* Add QR and constant selector to gallery

* Update ha-selector.ts
2024-02-08 14:38:08 +01:00
Bram Kragten c3b2ebf380 Don't use ES5 build for dev server (#19731) 2024-02-08 14:33:34 +01:00
Bram Kragten 23cbecb2c4 Add service icons to traces (again :D) (#19728)
* Add service icons to traces (again :D)

* Update hat-graph-node.ts
2024-02-08 13:33:10 +01:00
Paul Bottein b1e1b44c75 Use rgb theme variables for qrcode (#19726) 2024-02-08 12:04:23 +01:00
Paul Bottein abb014745a Show icon of disabled entities (#19717) 2024-02-07 19:42:39 +01:00
Bram Kragten e51c98e1a7 Improve matter ping dialog (#19715) 2024-02-07 15:52:04 +01:00
Paul Bottein 9513699332 Use gap instead of margin for vertical and horizontal card (#19699) 2024-02-07 15:51:01 +01:00
Bram Kragten b57bc8cd06 Matter cleanup on close dialog (#19714) 2024-02-07 14:24:14 +00:00
Bram Kragten 70c502bb45 Merge branch 'rc' 2024-02-07 11:22:12 +01:00
Bram Kragten add0b55657 Merge branch 'dev' into rc 2024-02-07 11:21:56 +01:00
Bram Kragten d61fc9ec6c Bumped version to 20240207.0 2024-02-07 11:21:33 +01:00
Paul BotteinandBram Kragten d1592bf262 Fix ha-state-badge name in picture element card (#19703)
Co-authored-by: Bram Kragten <[email protected]>
2024-02-07 10:15:10 +01:00
karwosts 3c744c09f1 Fix plant battery level icon (#19704)
* Fix plant battery level icon

* cleanup

* cleanup
2024-02-06 15:42:23 +01:00
Cody C 3ef61aaf02 Move cloud login forgot password link into card actions area (#19642)
* Move cloud login forgot password link into card actions area

Aligns login forgot password link styling with create resend confirmation styling.

* Amend cloud-login buttons / links to show on single line
2024-02-06 15:30:55 +01:00
Paul Bottein c738127c09 Fix horizontal stack margin (#19700) 2024-02-06 11:36:22 +01:00
Paulus Schoutsen 6e62f568fc Include climate attributes in history download (#19667)
* Include climate attributes in history download

* Add attributes for water heater and humidifier

* Simplify typing
2024-02-06 10:36:47 +01:00
Bram Kragten 2ba3a991a9 Improve matter share device dialog (#19693)
* Improve matter share device dialog

* Add border

* Update dialog-matter-open-commissioning-window.ts
2024-02-05 18:15:10 +01:00
Bram Kragten 50e559487d Merge branch 'rc' 2024-02-05 14:45:51 +01:00
Bram Kragten 4cd02c81bb Merge branch 'dev' into rc 2024-02-05 14:45:33 +01:00
Bram Kragten 55c6d3a7c4 Bumped version to 20240205.0 2024-02-05 14:45:17 +01:00
renovate[bot] 242f3813bc Update vaadinWebComponents monorepo to v24.3.5 (#19684)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-05 13:32:18 +00:00
renovate[bot] aa93cb17a7 Update dependency @lit-labs/motion to v1.0.7 (#19650)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-05 13:30:44 +00:00
renovate[bot] 4692d885d1 Update dependency @codemirror/language to v6.10.1 (#19688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-05 13:30:21 +00:00
Cody CandBram Kragten b39ac984f9 Fix last input margins in supervisor-network.ts (#19659)
* Fix last input margins in supervisor-network.ts

Resolves #19658

* Update src/panels/config/network/supervisor-network.ts

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-02-05 13:28:01 +00:00
renovate[bot] 9894d83e22 Update Yarn to v4.1.0 (#19634)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-05 14:12:49 +01:00
Cody C 113083a241 Avoid unnecessary redirect on empty state card page (#19643)
Avoid unnecessary redirect on hui-empty-state-card page
2024-02-05 13:53:52 +01:00
Cody C 32971cc875 Remove flag that sets icon as required when creating a new dashboard (#19640)
Less friction to create a new dashboard. Moreover, an icon isn't actually required in order to create the dashboard anyway. See https://github.com/home-assistant/frontend/issues/19639
2024-02-05 13:41:37 +01:00
Bram Kragten 137f59feb1 Remove comments from css (#19689)
remove comments from css
2024-02-05 13:39:47 +01:00
Paulus Schoutsen 6675121b85 Allow deselecting all values (#19677) 2024-02-05 12:48:18 +01:00
Paul Bottein aed0a35c9c Fix button card color when off (#19685) 2024-02-05 12:47:23 +01:00
Paul Bottein 65a8518d99 Increase drop zone for automation editor (#19687) 2024-02-05 12:35:34 +01:00
dependabot[bot]andFranck Nijhof cb690e9d4e Bump release-drafter/release-drafter from 5 to 6 (#19683)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Franck Nijhof <[email protected]>
2024-02-05 08:59:50 +01:00
renovate[bot] 5da67de95f Update dependency magic-string to v0.30.6 (#19651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-04 21:04:01 +01:00
renovate[bot] b9609f2154 Update dependency husky to v9.0.10 (#19674)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-04 21:01:29 +01:00
renovate[bot] aaabb6e1fb Update dependency webpack to v5.90.1 (#19675)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-04 20:35:46 +01:00
renovate[bot] 6561de34f0 Update dependency husky to v9.0.9 (#19672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-04 16:36:32 +01:00
Cody C 016ff74483 Fix grammar of Storage area messages (#19644) 2024-02-03 14:14:01 +01:00
renovate[bot] f5e9839b42 Update dependency lint-staged to v15.2.1 (#19646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-03 14:12:04 +01:00
Bram Kragten d044f4d34e 20240202.0Merge branch 'rc' 2024-02-02 16:29:21 +01:00
Bram Kragten 696717dd90 20240202.0Merge branch 'dev' into rc 2024-02-02 16:28:34 +01:00
Bram Kragten eb3b168975 Bumped version to 20240202.0 2024-02-02 16:28:10 +01:00
Bram Kragten aa400ce6ab Reload entity component icons when missing (#19629)
* Reload entity component icons when missing

* Improve typing, improve caching

* Make copy

* review suggestion

* overload

* Update icons.ts

* Update icons.ts
2024-02-02 16:26:47 +01:00
Paulus Schoutsen 682f9a0f04 Clean up the overlapping history in the CSV download (#19622)
* Clean up the overlapping history in the CSV download

* Speed up merge

* undefined unit

* Fix targetPickerValue handling
2024-02-02 16:06:29 +01:00
Paulus Schoutsen e478038206 Remove refresh button from history panel (#19631) 2024-02-02 15:21:29 +01:00
Paul Bottein 259a9a4f58 Fix assist devices search bar color (#19627) 2024-02-02 12:12:43 +01:00
Bram Kragten b08d1ae7e9 Update button focus style to match tile focus style (#19608) 2024-02-02 12:02:54 +01:00
renovate[bot] 3970fdd070 Update dependency hls.js to v1.5.3 (#19619)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-02 11:46:33 +01:00
renovate[bot] 946445b2df Update dependency eslint-plugin-lit-a11y to v4.1.2 (#19626)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-02 11:45:09 +01:00
renovate[bot] 17b090af58 Update typescript-eslint monorepo to v6.20.0 (#19613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-02 11:44:43 +01:00
karwostsandBram Kragten 6690a0e4b1 Add names to map path tooltip (#19565)
* Add names to map path tooltip

* Apply suggestions from code review

Co-authored-by: Bram Kragten <[email protected]>

* prettier

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-02-02 11:40:31 +01:00
Paul Bottein c291448ffa Improve automation drag and drop interaction (#19624) 2024-02-02 11:31:01 +01:00
renovate[bot] 6f831699be Update dependency husky to v9.0.7 (#19612)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-02 09:37:14 +01:00
Bram Kragten fb73bfb964 Only show more info on graphs when mouse is used (#19606)
only show more info on graphs when mouse is used
2024-02-01 17:57:08 +01:00
Bram Kragten 28a0d216f9 Fix race in lovelace (#19609) 2024-02-01 17:56:46 +01:00
Bram Kragten 69f2566526 Matter tweaks (#19607) 2024-02-01 17:56:37 +01:00
Yosi Levy 7b3797502a RTL simplification and updates (#19586)
* RTL simplification and updates

* Fixes

* Fix weird icon offset when mwc-list-item is in a concat html``

* Additional updates
2024-02-01 14:29:00 +01:00
Paul Bottein cf960be07e Fix item path for default in choose automation action (#19602) 2024-02-01 14:05:01 +01:00
Paulus Schoutsen 8a410d6c82 Add error checking to download button (#19596)
Clean up history panel + add better error checking
2024-02-01 09:25:52 +01:00
Bram Kragten 22c3132638 20240131.0 (#19595) 2024-01-31 19:02:00 +01:00
Bram Kragten ce32de6e23 20240131.0 (#19594) 2024-01-31 19:00:50 +01:00
Bram Kragten b6bc88e460 Merge branch 'dev' of https://github.com/home-assistant/frontend into dev 2024-01-31 18:55:23 +01:00
Bram Kragten 6e00806f1a Update state-control-circular-slider-style.ts 2024-01-31 18:54:56 +01:00
Bram Kragten d9fa148c49 Merge branch 'master' into dev 2024-01-31 18:52:58 +01:00
Bram Kragten 939b3a8092 Update button card styles (#19591) 2024-01-31 18:48:58 +01:00
Bram Kragten 95920ba710 Default to error correction Q when there is a center image (#19593)
default to error correction Q when there is a center image
2024-01-31 18:48:45 +01:00
Bram Kragten 462ac79890 Bumped version to 20240131.0 2024-01-31 18:35:09 +01:00
Paul Bottein 601a165b2a Disable reorder for readonly automation and disabled block (#19592) 2024-01-31 17:48:22 +01:00
Bram Kragten 62bb9b1a87 Add QR code selector (#19588) 2024-01-31 16:31:54 +01:00
Paul Bottein b60ba35a9f Don't allow dragging parent into child element in automation editor (#19589) 2024-01-31 16:28:20 +01:00
Bram Kragten c97c3f2fc4 Fix disabled users picker (#19590)
fix disabled users picker
2024-01-31 15:26:37 +00:00
Bram Kragten ed888200f9 Add support for re-auth flows in repairs (#19587) 2024-01-31 15:06:01 +01:00
Bram KragtenandPaul Bottein f4859320eb Add icon to areas (#19585)
* Add icon to areas

* Fix gallery

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-01-31 13:18:43 +00:00
Marcel van der VeldtandBram Kragten b159f4c074 Add matter device info and actions (#19578)
* add matter device info panel (WIP)

* actually enable card on device page

* fix remove fabric

* add some translation labels

* add dialog to interview node

* do not show info for bridged devices

* first device action

* add ping node action and dialog

* ping should be always available

* update model for MatterCommissioningParameters

* add basic support for open commissioning window

* move fabric management to dialog

* review

* Add link to thread panel

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-01-31 14:16:21 +01:00
Cody C b700e08d52 Simplify MFA onboarding styling & flow (#19584)
Align MFA onboarding flow

* Aligns QR Code to centre to make scanning on mobile easier
* Removes background from manual key text
* Re-adds spacing to bottom of form so it is not hard up against the code entry form
2024-01-31 10:51:07 +01:00
karwosts c1bdd679ff Promote edit dashboard button out of overflow menu (#19345) 2024-01-31 10:45:10 +01:00
Paulus Schoutsen b728b9efc4 Allow mobile apps to provide QR code functionality (#19570)
* Add QR code scanner to external bus

* Make `hasQRScanner` a version number
2024-01-31 10:44:21 +01:00
David F. Mulcahey 8acae63939 Update ZHA reconfigure device dialog to show accurate cluster configuration statuses (#19527) 2024-01-31 09:50:55 +01:00
Bram Kragten 374f5ee1be Update thread preferred router (#19580) 2024-01-31 00:58:03 +01:00
karwosts 528533a2dd Combine climate graph with temperature device_classes (#19485) 2024-01-31 00:33:28 +01:00
Maxim A 2b18db8525 Add Y axis limits options for historical charts (#19297)
* Add Y axis limit options for historical charts

* Fir formatting according to linter

* Revert statistic graph changes

* Cleanup local tests leftover

* Show fit Y fit option only if limits are set
2024-01-31 00:18:14 +01:00
Joni Käki-Mäkelä 6cd8ee9253 Disable pointer-events for tile-card .icon-container class that don't have a "button" role (#19497)
Set pointer-events to none for icon containers that don't have button role
2024-01-31 00:15:41 +01:00
karwosts e45709fffc Fix map icon color (#19567)
* Fix map icon color

* different solution

* updates from code review
2024-01-30 23:57:35 +01:00
Simon Lamon 28c21b1041 Localize trigger state in automation editor (#19554)
* trigger state

* Lokalize

* don't change existing trigger

* space

* Fixes
2024-01-30 23:36:39 +01:00
G Johansson 0919f0e89e Add new TURN_ON and TURN_OFF Climate feature flags (#19523) 2024-01-30 15:11:08 +01:00
Paul Bottein 64fc58ddd2 Always allow reorder for triggers, conditions, actions and options (#19574)
* Move up and down action to overflow menu

* Always enable reorder mode on desktop

* Use media query helper
2024-01-30 15:06:02 +01:00
Joakim Plate 568e9ebc38 Add volume flow rate (#19344) 2024-01-30 15:03:39 +01:00
renovate[bot] 33888beb63 Update dependency marked to v11.2.0 (#19572)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-30 14:55:16 +01:00
renovate[bot] 0bc6f9152a Update dependency webpack to v5.90.0 (#19541)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-30 14:54:45 +01:00
renovate[bot] 17fd0de102 Update dependency @lrnwebcomponents/simple-tooltip to v8 (#19138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-30 14:52:45 +01:00
Simon Lamon f98e66a409 Allow description placeholders in all repair flow title options (#19553)
Add description placeholders
2024-01-30 14:50:15 +01:00
Paul BotteinandBram Kragten 314499005d Clean domain icons (#19533)
* Use state icon inside alarm control panel card

* Add domain icon component and clean old files

* Clean code

* Migrate area card

* Remove some icon rules

* Update ha-bar-media-player.ts

Co-authored-by: Bram Kragten <[email protected]>

* Update ha-domain-icon.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-01-30 14:49:39 +01:00
renovate[bot] 6dcc70f6fc Update dependency husky to v9 (#19550)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-30 14:30:09 +01:00
Yosi Levy 5e40bb55eb RTL fixes (#19563) 2024-01-30 14:27:40 +01:00
Cody C 476457fe2e Clarify wording of Thread network messaging (#19564)
* Removes ambiguity of many "may" statements, which are virtually certainly.
* Fix some typos / grammatical errors
2024-01-30 14:24:58 +01:00
karwosts 4c314928c6 Bigger touch target for mobile map history trace (#19569) 2024-01-30 14:21:10 +01:00
Bram Kragten 73460c7d8a Fix more info remote (#19575) 2024-01-30 13:51:12 +01:00
Cody C 767b2b6b9c Add documentation link to ZHA pairing mode page (#19518)
Add pairing instructions docs link to ZHA Add Devices page

While we ask people to refer to the instructions of their device, they may need some further support to locate this. We can direct them to the ZHA documentation.
2024-01-30 13:39:57 +01:00
Joakim Sørensen 0944b1e9d3 Simplify GtHub markdown alerts (#19536)
Simplify GtHub merkdown alerts
2024-01-30 13:37:47 +01:00
karwosts 623ac88166 Fix trace graph for non-safari & safari (#19557) 2024-01-30 13:23:53 +01:00
karwosts 3a204d889f Fix QR codes (#19552) 2024-01-30 13:07:58 +01:00
Bram Kragten 107f0da88b Allow config flow to show error per field (#19522) 2024-01-30 12:24:45 +01:00
86bbff36ea Delete all refresh tokens (attempt #2) (#19547)
* Add a button to delete all refresh tokens (#18680)

Co-authored-by: Bram Kragten <[email protected]>

* Don't delete LL tokens. Don't delete the current token

* Update src/data/auth.ts

Co-authored-by: Simon Lamon <[email protected]>

* typing

---------

Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: Simon Lamon <[email protected]>
2024-01-29 18:07:44 +01:00
renovate[bot] 42a52f9a1c Update dependency @material/web to v1.2.0 (#19546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-29 15:01:48 +01:00
renovate[bot] ade8687d7b Update formatjs monorepo (#19561)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-29 14:58:05 +01:00
dependabot[bot] e1341a1961 Bump actions/upload-artifact from 4.2.0 to 4.3.0 (#19562)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-29 09:25:41 +01:00
renovate[bot] 74282e9afe Update dependency hls.js to v1.5.2 (#19559)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-28 19:45:50 +00:00
renovate[bot] 687c9753a0 Update babel monorepo to v7.23.9 (#19558)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-28 14:38:06 -05:00
renovate[bot] 4825163b20 Update dependency chai to v5.0.3 (#19556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-28 14:35:39 -05:00
renovate[bot] a37bea3701 Update dependency @types/tar to v6.1.11 (#19555)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-28 14:34:04 -05:00
renovate[bot] 0d8f9351cc Update dependency @codemirror/view to v6.23.1 (#19540) 2024-01-27 21:36:37 -05:00
renovate[bot] 692774f6c4 Update dependency @bundle-stats/plugin-webpack-filter to v4.9.2 (#19545) 2024-01-27 21:34:02 -05:00
Stanisław Czajka 6ee1404eef Fixed volume slider alignment (#19534) 2024-01-26 16:26:11 +00:00
Yosi Levy 97652bd2f6 Various RTL fixes (#19495)
* Various RTL fixes

* Additional RTL

* Additional fixes

* Revert ha-dialog

* Improve margin-title

* Additional fixes

* Additional fixes

* Fix prettier

* More fixes

* Additional fixes

* Fix prettier

* Fix prettier again

* Additional updates

* Additional fixes

* Final fixes (left only)
2024-01-26 17:15:27 +01:00
renovate[bot] a566479ddc Update typescript-eslint monorepo to v6.19.1 (#19529)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-25 17:35:14 +00:00
Cody C 44e62fbb04 Fix text alignment on mobile devices for zha-add-devices-page.ts (#19517)
discovery_text ("Make sure your devices are in pairing mode. Check the instructions of your device on how to do this.") is showing left aligned on mobile, which is inconsistent with the discovered_text ("Devices will show up here once discovered.") underneath.
2024-01-25 18:23:23 +01:00
Michael 1f9e919762 Add info about removing of unused tokens (#19479)
add info about removing of unused tokens
2024-01-25 18:21:52 +01:00
Paulus Schoutsen 973752b974 Refactor suggest card function (#19528) 2024-01-25 18:21:30 +01:00
Bram Kragten 75bbc33fa2 Bumped version to 20240125.0 2024-01-25 13:32:28 +01:00
Bram Kragten 59a3a35b19 Handle cast connect different instance better (#19526) 2024-01-25 13:00:55 +01:00
Bram Kragten b224ec50e4 Add automation/editor/show command to external bus (#19524) 2024-01-25 00:01:10 +01:00
Bram KragtenandPaul Bottein 2925ef3db0 Add support for service icons (#19507)
* Add service icons

* Fix lint

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-01-24 19:21:08 +00:00
Erik Montnemery c2d71ac789 Allow inverting switch_as_x cover, lock, valve (#19324)
* Allow inverting switch_as_x cover, lock, valve

* Reconfigure invert option via options flow

* Don't reopen dialog

* Add explanation for invert option

* Address review comments

* Hide switch_as_x options flow
2024-01-24 18:32:35 +01:00
Paul BotteinandBram Kragten 85f086d02e Improve icon translations support (#19516)
* Use slot for icon picker

* Use icon translations for disabled entities in device page

* Don't use fallback for light effect

* Fix device class

* Fix climate hvac mode

* Migrate fan direction to icon translations

* Remove attribute fallback

* Rename variable

* Update src/panels/lovelace/card-features/hui-climate-hvac-modes-card-feature.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-01-24 18:31:06 +01:00
Paul Bottein beb3454f8d Hide fallback when dragging items in sidebar (#19521) 2024-01-24 18:16:59 +01:00
renovate[bot] 807d08d8eb Update dependency core-js to v3.35.1 (#19519) 2024-01-23 21:11:52 -05:00
Bram Kragten cc4cfe1b5c Add set_conversation_response action (#19512) 2024-01-23 13:16:49 +01:00
G Johansson 88f67230fc Preview for time_date helper (#19476) 2024-01-23 12:04:23 +01:00
renovate[bot] d335dd4b83 Update dependency @types/luxon to v3.4.2 (#19514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-22 19:43:05 -05:00
renovate[bot] 98e3dbceb5 Update dependency @bundle-stats/plugin-webpack-filter to v4.9.1 (#19513)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-22 20:15:44 +01:00
Paul Bottein 1c9ea0a9d9 Add stateValue parameter to ha-state-icon (#19508)
* Add state value option to entityIcon

* Migrate lock, valve and cover more info to icon translations

* Migrate tile card

* Remove domain icon from area card

* Use attribute
2024-01-22 20:10:08 +01:00
Paulus Schoutsen f6af73b222 Allow expanding a history graph card (#19481)
* Allow expanding a history graph card

* Update styling
2024-01-22 12:53:04 -05:00
Simon Lamon 9354ed927b Localize sun condition in automation editor (#19473)
Sun condition
2024-01-22 18:17:20 +01:00
karwosts 545d140dcf Various leaflet map bugfixes (#19475)
* Various leaflet map bugfixes

* move pan to updated
2024-01-22 18:12:25 +01:00
Steve Repsher 634122657c Fix incompatible object/array property types (3 of 3) (#19510) 2024-01-22 18:03:42 +01:00
Steve Repsher 349344161a Fix incompatible object/array property types (2 of 3) (#19482) 2024-01-22 16:04:58 +01:00
Joakim Sørensen 28a8863f45 Allow for lists inside GitHub alerts when redered in markdown (#19505)
* Allow for lists inside GitHub alerts when redered in markdown

* simplify
2024-01-22 16:03:07 +01:00
karwosts 5c72c38c0d Revert "Add a button to delete all refresh tokens" (#19480) 2024-01-22 15:57:06 +01:00
renovate[bot] fffed0f5e1 Update vaadinWebComponents monorepo to v24.3.4 (#19506)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-22 08:21:23 -05:00
Bram Kragten bf4b76864d Adjust check focus behaviour for todo list (#19472)
* Adjust check focus behaviour for todo list

* improve aria
2024-01-22 13:58:35 +01:00
dependabot[bot] 10ad0010cf Bump actions/cache from 3.3.3 to 4.0.0 (#19502)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-22 09:04:58 +01:00
dependabot[bot] 3a99a7de78 Bump actions/upload-artifact from 4.1.0 to 4.2.0 (#19503)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-22 08:59:58 +01:00
Franck Nijhof 69139b35e1 Clean up updater remains (#19501) 2024-01-21 23:07:40 +01:00
renovate[bot] 55a5739e77 Update dependency @babel/helper-define-polyfill-provider to v0.5.0 (#19496)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-21 15:26:07 -05:00
renovate[bot]andSteve Repsher a8b48b4619 Update dependency prettier to v3.2.4 (#19483)
* Update dependency prettier to v3.2.4

* Reformat

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2024-01-21 06:09:59 +00:00
Steve Repsher dcb3accdb8 Fix incompatible object/array property types (1 of 3) (#19450) 2024-01-19 20:16:15 +00:00
Cody C 45398f84cb Update hassio-addon-dashboard.ts to fix back button issue (#19477) 2024-01-19 21:06:29 +01:00
Joakim Sørensen 319cf64977 Do not "load" forever if null is returned for release notes (#19478) 2024-01-19 21:05:11 +01:00
Bram Kragten 646c02d855 Implement more attribute icons (#19469) 2024-01-19 20:55:16 +01:00
renovate[bot] 77dd2a87d9 Update formatjs monorepo (#19471)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-19 17:58:51 +01:00
Joakim Sørensen 51059e99a5 Add support for new GitHub alerts (#19470) 2024-01-19 17:10:46 +01:00
Bram Kragten 809df848ef Use entity registry icon directly (#19466) 2024-01-19 14:42:20 +00:00
Paul Bottein 619675318c Remove wrong usage of aria-hidden (#19454) 2024-01-19 15:28:46 +01:00
Bram Kragten 081636b3e7 Add support for icon translations (#19406)
* Add support for icon translations

* Use slot for icons

* Update more-info-climate.ts

* Review and fixes

* Update entity-registry-settings-editor.ts
2024-01-19 14:55:02 +01:00
Steve Repsher b969144f50 Initialize more boolean properties (#19452) 2024-01-19 09:43:00 +01:00
Steve Repsher 24bfa4919a Fix property visibility mismatches (2 of 2) (#19448) 2024-01-19 09:39:41 +01:00
renovate[bot] fcc9a80103 Update formatjs monorepo (#19453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-19 01:08:10 -05:00
renovate[bot] 99a365fb49 Lock file maintenance (#19451)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-19 00:45:56 -05:00
renovate[bot] 6a95177b32 Update typescript-eslint monorepo to v6.19.0 (#19447)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 14:56:50 -05:00
Bram Kragten ca68eaab38 Update cast idle logo (#19443) 2024-01-18 17:05:25 +01:00
Steve Repsher 6234f7b7d2 Initialize boolean properties (#19445) 2024-01-18 16:39:33 +01:00
Paul Bottein 04f6a01c3d Avoid thermostat card interaction on scroll on touch devices (#19423)
* Avoid thermostat card interaction on scroll on touch devices

* Fix background interaction on safari

* Fix interaction in Safari

* Make listeners private
2024-01-18 14:31:44 +01:00
Steve Repsher 9bad3c8101 Lint for unknown tags and turn off unknow attribute check (#19439) 2024-01-18 14:30:59 +01:00
Paul BotteinandBram Kragten 7398c6ab3e Automation nested drag and drop (#19338)
* Add nested drag and drop for actions

* Add nested drag and drop for triggers, conditions and options

* Update src/panels/config/automation/action/types/ha-automation-action-choose.ts

Co-authored-by: Bram Kragten <[email protected]>

* Move object at the root level

* Add support for choose option

* Fix undefined container (e.g else action)

* Add common nested array move function

* Move item at root level for manual automation

* Fix array move

* Don't fallback on body

* migrate blueprint and script

* Add drag and drop to service control

* Use context for reorder mode

* Rename reorder mode functions

* Fix hide menu props

* Fix drag and drop for choose action

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-01-18 14:26:17 +01:00
Steve Repsher 4046534fa8 Compress static HTML/XML (#19437) 2024-01-17 17:58:32 -05:00
renovate[bot] 8f43caee2e Update dependency @types/luxon to v3.4.1 (#19438)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 17:57:31 -05:00
karwosts 83c5408f8f Minor form localizations (#19434)
* Minor form localizations

* missing imports
2024-01-17 14:40:58 -05:00
karwosts 7d4284d409 Custom device_classes for Area Card sensors (#19421)
* Custom device_classes for Area Card sensors

* no sensor DOMAIN_ICONS
2024-01-17 13:22:08 +01:00
Steve Repsher 58c4bf081b Fix boolean and nullable attribute bindings (#19432) 2024-01-17 12:45:21 +01:00
Paulus SchoutsenandBram Kragten d1478567f0 Add title to grid card editor (#19429)
* Add title to grid card editor

* Update src/panels/lovelace/editor/config-elements/hui-grid-card-editor.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-01-17 12:43:25 +01:00
Paulus Schoutsen d85c729fa5 Add a download button to history panel (#19428) 2024-01-17 11:47:45 +01:00
renovate[bot] c65fadbd8a Update dependency sortablejs to v1.15.2 (#19426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-16 23:47:21 -05:00
renovate[bot] 4326007022 Update dependency prettier to v3.2.2 (#19431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 04:41:16 +00:00
Paulus Schoutsen 38b01e9335 Add a download button to history panel 2024-01-16 21:35:07 -05:00
karwosts 22625a805d Don't show duplicates in statistics picker (#19422)
* Filter duplicates from ha-statistics-picker

* use repeat
2024-01-16 22:40:27 +01:00
karwosts a06c9d0cc6 Localize show_password in auth form (#19300)
* Localize show_password in auth form

* changes from review
2024-01-16 22:39:35 +01:00
Paul Bottein 490ed86e86 Add per domain style for tile card image (#19419) 2024-01-16 15:04:18 +01:00
Paul Bottein df2514d79f Use new mdi oscillating icon (#19410) 2024-01-16 15:02:27 +01:00
Matthew Grove 13a8b10f5c Fix incorrect padding on bottom of empty list (#19414) 2024-01-16 15:02:06 +01:00
Steve Repsher bb4f09ad9a Fix missing imports (2 of 2) (#19417) 2024-01-16 15:01:34 +01:00
Bram Kragten 1f2683dd56 Restrict adding todo list and calendars to admin users (#19408) 2024-01-16 10:44:28 +01:00
renovate[bot] 0ba8babd87 Update dependency prettier to v3.2.1 (#19415)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 22:00:08 +00:00
renovate[bot] 65d4d44f06 Update dependency @codemirror/autocomplete to v6.12.0 (#19412)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 16:52:48 -05:00
renovate[bot]andSteve Repsher 6f8c366bad Update dependency prettier to v3.2.0 (#19411)
* Update dependency prettier to v3.2.0

* Reformat

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2024-01-15 16:49:22 -05:00
Simon LamonandBram Kragten 3842e8e3a7 Wrap descriptions in automation list descriptions (#19367)
* Wrapped automation descriptions

* Fix

* Fixes

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-01-15 14:59:46 +00:00
Steve Repsher b881a2a88a Fix complex attribute and expressionless property bindings (#19348) 2024-01-15 15:52:48 +01:00
Steve Repsher 70fcea0c2b Disable attributes for hass, stateObj, selector, and route properties (#19362)
* Disable attribute for hass properties

* Disable attribute for stateObj properties

* Disable attribute for selector properties

* Disable attribute for route properties

* Switch from Object type to no attribute for same properties
2024-01-15 15:52:10 +01:00
karwostsandBram Kragten 9f26bedf51 Custom device_classes for alert icons in Area Card (#19131)
* Custom device_classes for alerts in Area Card

* small refactor

* drop more-info feature

* Update src/panels/lovelace/editor/config-elements/hui-area-card-editor.ts

Co-authored-by: Bram Kragten <[email protected]>

* localization and css updates

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-01-15 15:51:19 +01:00
Simon Lamon 2053cf23c2 Replace some paper-items by list-item (#19314)
* system log card

* cloud login

* cloud account

* ha config voice assistants assistants

* ha config person

* ha-device-entities-card

* cloud login

* change --paper-item-icon-color into --state-icon-color

* Apply code review

* Revert "change --paper-item-icon-color into --state-icon-color"

This reverts commit b91ef0017e.

* Remove unneeded mwc-lists
2024-01-15 15:41:05 +01:00
Steve Repsher b801441201 Fix property visibility mismatches (1 of 2) (#19376) 2024-01-15 15:40:03 +01:00
AlexandrErohin 7209ed055a fix not showing base error bug (#19340) 2024-01-15 14:38:51 +00:00
Joakim Plate 894205eff7 Display that entity is disabled in more info (#19378)
* Display that entity is disabled in more info

* Correct formatting
2024-01-15 15:37:59 +01:00
Steve Repsher 64b0b64468 Cache Typescript runs for faster checks (#19381) 2024-01-15 15:36:26 +01:00
Steve Repsher 920df03cc1 Fix missing imports (1 of 2) (#19363) 2024-01-15 15:34:46 +01:00
karwosts 5a91f613ca Remove fire-dom-event from action struct (#19390) 2024-01-15 15:34:19 +01:00
karwosts 61eaa07b25 Honor display_precision over duration-type format (#19396) 2024-01-15 15:33:00 +01:00
Cody C 62f6766e1b Fix onboarding state exception following restore (#19389)
Fixes #19388
2024-01-15 15:31:37 +01:00
renovate[bot] f5994d2ae5 Update vaadinWebComponents monorepo to v24.3.3 (#19403)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 14:12:11 +01:00
Yosi Levy 7e93367394 RTL stack card fix (#19394) 2024-01-15 13:55:11 +01:00
dependabot[bot] 6256192c0c Bump actions/upload-artifact from 3.1.3 to 4.1.0 (#19401)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-15 09:20:26 +01:00
dependabot[bot] 08fb3ced5f Bump actions/cache from 3.3.2 to 3.3.3 (#19400) 2024-01-15 07:56:19 +01:00
karwosts 5aa5ce8b5e Fix blank_before_percent (#19397)
* Fix blank_before_percent

* types n stuff
2024-01-14 15:23:42 -05:00
Steve Repsher 7c389a6cf0 Fix dependencies labeler (#19391) 2024-01-14 09:32:28 +01:00
renovate[bot] f63ba0c20a Update dependency hls.js to v1.5.1 (#19387) 2024-01-13 22:36:10 -05:00
Simon Lamon 01e80108d7 Fix nightly builds (#19386) 2024-01-13 17:30:47 -05:00
renovate[bot] 148c0c98d3 Update dependency hls.js to v1.5.0 (#19377)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-13 14:39:08 -05:00
renovate[bot] 11a9a2f56b Update dependency @lit-labs/virtualizer to v2.0.12 (#19380)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-13 14:38:05 -05:00
Bram Kragten 6cdf1c1689 Bumped version to 20240112.0 2024-01-12 16:25:34 +01:00
renovate[bot] 2cfaa4f261 Update typescript-eslint monorepo to v6.18.1 (#19371)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-12 05:11:37 +00:00
renovate[bot] d3b0d03e70 Update dependency lit-analyzer to v2.0.3 (#19369)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-11 23:59:13 -05:00
renovate[bot] 08b8978ee8 Update dependency ts-lit-plugin to v2.0.2 (#19370)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-11 23:57:25 -05:00
renovate[bot]andSteve Repsher d2019c2315 Update babel monorepo to v7.23.8 (#19368)
* Update babel monorepo to v7.23.8

* bump @babel/helpers

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2024-01-11 23:52:37 -05:00
Bram Kragten 02a7d0e797 Clean up local auth flow, preselect remember me (#19354) 2024-01-11 11:03:32 +01:00
Bram Kragten 03751d2581 Load registries in core, wait them to be loaded before generating das… (#19356)
* load registries in core, wait them to be loaded before generating dashboard

* import

* improve

* Split out subscribe functions
2024-01-11 09:48:20 +01:00
Bram Kragten b9069b25ad Assist devices: Move logic from column to data (#19359)
* Move logic from column to data

* Type
2024-01-11 09:48:10 +01:00
Paulus Schoutsen a136fa687f Add page to list assist devices (#19301)
* Add page to list assist devices

* Translate title too
2024-01-10 15:22:59 +01:00
Bram Kragten de35e89c58 Update ha-config-logs.ts 2024-01-10 15:21:54 +01:00
Bram Kragten 85beefec4c Fix logs, dont require advanced mode, allow provider in url and my (#19355)
* Fix logs, dont require advanced mode, allow provider in url and my

* Add params to my link with quick key `m`
2024-01-10 13:50:07 +01:00
renovate[bot] 877c9b007b Update dependency open to v10.0.3 (#19351) 2024-01-10 07:33:15 -05:00
Steve Repsher adb851a2b4 Fix unclosed HTML tags (#19343)
* Fix unclosed HTML tags

* Add missing import and remove unused class for debug tools

* Remove div from debug page
2024-01-10 10:53:03 +01:00
Steve Repsher 6ab5116c34 Fix incompatible number property types (#19349) 2024-01-10 10:49:35 +01:00
Paul Bottein a5630a4a7d Use switch for valve in entity row (#19342) 2024-01-09 16:15:33 +01:00
renovate[bot] e8c1a34f3b Update typescript-eslint monorepo to v6.18.0 (#19341)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-09 15:20:51 +01:00
Steve Repsher 88abeada44 Remove Intl polyfill on connection and consistently resolve time zone (#19326) 2024-01-09 15:06:50 +01:00
Steve Repsher 96a41704ea Fix incompatible boolean property types (#19337) 2024-01-09 15:02:15 +01:00
Steve Repsher 8583c879f2 Fix invalid directive bindings (#19330) 2024-01-09 15:00:59 +01:00
Steve Repsher 3edc77c978 Fix missing element tag definitions (#19329) 2024-01-09 15:00:30 +01:00
dependabot[bot] 03a1c21f34 Bump follow-redirects from 1.15.3 to 1.15.4 (#19336) 2024-01-08 21:14:38 -05:00
renovate[bot] 80b1a6297b Update dependency @types/luxon to v3.4.0 (#19333) 2024-01-08 20:57:22 -05:00
renovate[bot] 056eb888f3 Update dependency @types/chromecast-caf-receiver to v6.0.13 (#19332) 2024-01-08 20:56:32 -05:00
Steve Repsher d4ec608123 Fix invalid media queries in calendar and todo editors (#19295) 2024-01-08 15:45:24 +01:00
Steve Repsher 2451cf77f9 Fix various missing component imports (#19296) 2024-01-08 15:43:53 +01:00
Simon Lamon 3b6b77c75b Localize time pattern trigger in automation editor (#19173) 2024-01-08 15:24:37 +01:00
Steve Repsher e0f578c135 Start linting with lit-analyzer (#19302) 2024-01-08 14:26:25 +01:00
karwosts ec2ae15e3f Cleanup else/default block when deleting all actions (#19298) 2024-01-08 14:10:23 +01:00
Steve Repsher f5fc66f47e Better restrict applying dependencies label (#19319) 2024-01-08 14:08:21 +01:00
Steve Repsher ae79df8c55 Allow TLA for legacy build and remove static Intl polyfills (#19207) 2024-01-08 14:07:08 +01:00
Paul Bottein 104aef3dec Add ha-sortable component (#19294) 2024-01-08 14:02:41 +01:00
dependabot[bot] 17e62c10d4 Bump home-assistant/wheels from 2023.10.5 to 2024.01.0 (#19321) 2024-01-08 08:17:13 +01:00
karwosts 90965a4f4d Localize statistics datatable string (#19289) 2024-01-06 23:19:44 -05:00
renovate[bot] 8960f5fef9 Update dependency @types/luxon to v3.3.8 (#19308) 2024-01-06 20:50:10 -05:00
Yosi Levy 783a8242e1 Fix for RTL in Supervisor dashboards (#19290) 2024-01-05 14:56:15 +01:00
Simon Lamon 7a8f5c0cc9 Replace remaining paper inputs (#19292) 2024-01-05 14:31:58 +01:00
renovate[bot] 53be012b34 Update CodeMirror (#19214) 2024-01-04 20:42:11 -05:00
renovate[bot] be7b3a56f9 Update dependency core-js to v3.35.0 (#19215) 2024-01-04 20:36:13 -05:00
renovate[bot] 554e5b7be5 Update typescript-eslint monorepo to v6.17.0 (#19286) 2024-01-04 19:48:57 -05:00
renovate[bot] 249c89669e Update dependency systemjs to v6.14.3 (#19282)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-04 13:11:06 -05:00
Bram Kragten 7ce9a937b1 20240104.0 (#19284) 2024-01-04 17:48:13 +01:00
Paul Bottein 456c011f3e Fix thermostat and humidifier card rendering when off (#19281)
* Fix thermostat and humidifier card rendering when off

* Fix action color
2024-01-04 17:44:58 +01:00
Bram Kragten a31b9f1b4d Fix due date when no time in certain timezones (#19280)
* Fix due date when no time in certain timezones

* Update dialog-todo-item-editor.ts
2024-01-04 17:44:57 +01:00
Bram Kragten a1cf18468b Remove overflow hidden from profile (#19279) 2024-01-04 17:44:56 +01:00
Bram Kragten f147a5e909 fix valve entities row (#19278) 2024-01-04 17:44:55 +01:00
Franck Nijhof 8d541595b8 Update getStates to support valves (#19277) 2024-01-04 17:44:54 +01:00
Bram Kragten 32fd8270d7 Fix turning valve on/off (#19269) 2024-01-04 17:44:53 +01:00
Bram Kragten efddbfcfa0 Fix circular progress size + fix bug in assist pipeline debug (#19268) 2024-01-04 17:44:53 +01:00
karwosts 0b20725f5f Fix select view dialog (#19267)
* Fix select view dialog

* add import
2024-01-04 17:44:52 +01:00
renovate[bot] 030566c1e8 Update dependency marked to v11.1.1 (#19254) 2024-01-04 17:44:51 +01:00
Bram Kragten fef2c44cb8 Bumped version to 20240104.0 2024-01-04 17:44:16 +01:00
Bram Kragten fe5431976d Bumped version to 20240104.0 2024-01-04 17:43:37 +01:00
Paul Bottein 72dedc7596 Fix thermostat and humidifier card rendering when off (#19281)
* Fix thermostat and humidifier card rendering when off

* Fix action color
2024-01-04 16:18:16 +01:00
Bram Kragten 8615b799c6 Fix due date when no time in certain timezones (#19280)
* Fix due date when no time in certain timezones

* Update dialog-todo-item-editor.ts
2024-01-04 14:24:33 +01:00
Bram Kragten fd6cae48b7 Remove overflow hidden from profile (#19279) 2024-01-04 13:20:35 +01:00
Bram Kragten ecadc06b45 fix valve entities row (#19278) 2024-01-04 11:52:38 +01:00
Franck Nijhof e5d31d85dd Update getStates to support valves (#19277) 2024-01-04 10:54:20 +01:00
Bram Kragten e427ffca5f Fix turning valve on/off (#19269) 2024-01-03 21:27:30 -05:00
Bram Kragten 4f05bd9e22 Fix circular progress size + fix bug in assist pipeline debug (#19268) 2024-01-03 21:21:42 -05:00
renovate[bot] 0d8c0ac1a0 Update dependency marked to v11.1.1 (#19254) 2024-01-03 17:45:46 -05:00
karwosts 3984702d3e Fix select view dialog (#19267)
* Fix select view dialog

* add import
2024-01-03 20:36:59 +01:00
Bram Kragten 979085a9de Fix supervisor dev build (#19266) 2024-01-03 20:35:54 +01:00
Bram Kragten 7a6fc573c2 Fix version bump script (#19264) 2024-01-03 14:19:30 +00:00
Bram Kragten b99b13251f 20240103.3 (#19263) 2024-01-03 15:03:00 +01:00
Bram Kragten 288d173a4d Bumped version to 20240103.3 2024-01-03 15:02:14 +01:00
Bram Kragten 2c69fe8c53 Fix checking todo item that dont support due date (#19262)
* Fix checking todo item that dont support due date

* make cleaner

* Revert "make cleaner"

This reverts commit fa33b33614.

* Update dialog-todo-item-editor.ts

* do check in 1 place
2024-01-03 15:00:24 +01:00
Paul Bottein 62dafac72b Display edit button for climate fan mode feature (#19259) 2024-01-03 15:00:23 +01:00
karwostsandPaul Bottein 22929672a0 Remove tile pointer/ripple/index when it has no action (#19137)
* Remove tile pointer/ripple/index when it has no action

* update

* Apply suggestions from code review

Co-authored-by: Paul Bottein <[email protected]>

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-01-03 15:00:22 +01:00
Bram Kragten ae0eac3415 Bumped version to 20240103.0 2024-01-03 15:00:06 +01:00
Bram Kragten 6929a9c603 Bumped version to 20240103.0 2024-01-03 14:59:45 +01:00
karwostsandPaul Bottein 41bb677ebe Remove tile pointer/ripple/index when it has no action (#19137)
* Remove tile pointer/ripple/index when it has no action

* update

* Apply suggestions from code review

Co-authored-by: Paul Bottein <[email protected]>

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-01-03 14:58:59 +01:00
Bram Kragten 8368fb4408 Fix checking todo item that dont support due date (#19262)
* Fix checking todo item that dont support due date

* make cleaner

* Revert "make cleaner"

This reverts commit fa33b33614.

* Update dialog-todo-item-editor.ts

* do check in 1 place
2024-01-03 13:58:36 +00:00
Paul Bottein acbb7e0453 Display edit button for climate fan mode feature (#19259) 2024-01-03 14:26:40 +01:00
Bram Kragten 4ea7d826bc 20240103.1 (#19258) 2024-01-03 12:37:44 +01:00
Bram Kragten 336214d97f Revert conditional rendering of condition (#19257)
* Fix conditionally showing `triggered by`

* revert conditional rendering

* Update add-automation-element-dialog.ts

* Update add-automation-element-dialog.ts
2024-01-03 12:29:30 +01:00
Bram Kragten c9a0ae6e2d Bumped version to 20240103.1 2024-01-03 12:29:10 +01:00
Bram Kragten 6224cb6994 Bumped version to 20240103.1 2024-01-03 12:28:46 +01:00
Bram Kragten 29fefa1d60 Revert conditional rendering of condition (#19257)
* Fix conditionally showing `triggered by`

* revert conditional rendering

* Update add-automation-element-dialog.ts

* Update add-automation-element-dialog.ts
2024-01-03 11:20:11 +00:00
Bram Kragten 0bc69fb9b3 20240103.0 (#19256) 2024-01-03 10:55:23 +01:00
Bram Kragten 6e7366bf69 Calculate used domains on open of action dialog (#19255) 2024-01-03 10:38:51 +01:00
Bram Kragten 8ee4aa9e63 Bumped version to 20240103.0 2024-01-03 10:38:30 +01:00
Bram Kragten c7a98fa5a1 Bumped version to 20240103.0 2024-01-03 10:37:59 +01:00
Bram Kragten 46565715c9 Calculate used domains on open of action dialog (#19255) 2024-01-03 10:37:30 +01:00
Bram Kragten 386c3ea1ca 20240102.0 (#19234) 2024-01-02 20:02:03 +01:00
Simon Lamon c2f3e43ee5 Set default values for required and disabled for labeled slider (#19246)
Set default values
2024-01-02 20:01:15 +01:00
Bram Kragten 7354988ec9 Move notification services to main list (#19235) 2024-01-02 20:01:14 +01:00
Simon Lamon 8a8b04ed00 Set default values for required and disabled for labeled slider (#19246)
Set default values
2024-01-02 20:00:19 +01:00
Bram Kragten e721481757 Move notification services to main list (#19235) 2024-01-02 19:58:37 +01:00
renovate[bot] 2933d642ed Update dependency @bundle-stats/plugin-webpack-filter to v4.8.4 (#19230)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-02 13:55:44 -05:00
Bram Kragten 53dedc6c65 Bumped version to 20240102.0 2024-01-02 18:49:50 +01:00
Bram Kragten 7d412a9913 Bumped version to 20240102.0 2024-01-02 18:49:31 +01:00
Bram Kragten de3b9a5bb2 Give todo and calendar edit static header (#19233) 2024-01-02 18:48:59 +01:00
Bram Kragten 5eaa6dafd9 Give todo and calendar edit static header (#19233) 2024-01-02 18:48:34 +01:00
Bram Kragten 8d496e1511 Update add-automation-element-dialog.ts 2024-01-02 18:48:06 +01:00
Bram Kragten f994b378f1 Update add-automation-element-dialog.ts 2024-01-02 18:47:39 +01:00
JLo 01bd88ce10 New copy for device trigger in automation editor (#19232)
New copy for device trigger in automation editor: 
"Set of conditions provided by your device. Great way to start."
2024-01-02 18:44:33 +01:00
Josh McCarty 18b5fd59a6 Add missing device classes for entity-registry-settings-editor (#19231)
* Add connectivity device class for binary sensors

* Add update device class

* Separate connectivity and update
2024-01-02 18:44:32 +01:00
Bram Kragten 750c1d5013 Change format of service description (#19229) 2024-01-02 18:44:31 +01:00
Bram Kragten f2226cdec2 Use brand icons in actions (#19227) 2024-01-02 18:44:30 +01:00
Bram Kragten c125ec087a Remove references to "service call" from actions (#19226) 2024-01-02 18:44:29 +01:00
Bram Kragten f099f66065 Automation editor tweaks (#19225)
* Automation editor tweaks

* fix styling
2024-01-02 18:44:28 +01:00
JLo 4fcf99faa7 Review on automation editor text (#19223)
- Added `.` to bloc descriptions
- Changed "Other" into "OTher triggers" "Other conditions" and "Other actions"
- Adapted a few descriptions
2024-01-02 18:44:28 +01:00
karwosts 2add88ccc2 Localize a device action string (#19203) 2024-01-02 18:44:27 +01:00
JLo 7d6dfaad15 New copy for device trigger in automation editor (#19232)
New copy for device trigger in automation editor: 
"Set of conditions provided by your device. Great way to start."
2024-01-02 17:39:55 +00:00
Josh McCarty def2eadc24 Add missing device classes for entity-registry-settings-editor (#19231)
* Add connectivity device class for binary sensors

* Add update device class

* Separate connectivity and update
2024-01-02 17:35:08 +00:00
Bram Kragten 53a25dde26 Change format of service description (#19229) 2024-01-02 18:31:18 +01:00
Bram Kragten 6f7da16d1d Use brand icons in actions (#19227) 2024-01-02 18:11:34 +01:00
Bram Kragten 5ac0360494 Remove references to "service call" from actions (#19226) 2024-01-02 16:08:26 +01:00
karwosts 1b6def4875 Localize a device action string (#19203) 2024-01-02 14:07:34 +01:00
Bram Kragten 52fcf64cfd Automation editor tweaks (#19225)
* Automation editor tweaks

* fix styling
2024-01-02 13:36:06 +01:00
JLo c650e23432 Review on automation editor text (#19223)
- Added `.` to bloc descriptions
- Changed "Other" into "OTher triggers" "Other conditions" and "Other actions"
- Adapted a few descriptions
2024-01-02 11:08:05 +00:00
renovate[bot] 428604d91d Update babel monorepo to v7.23.7 (#19220) 2024-01-01 20:15:34 -05:00
Bram Kragten aa94ec7949 20240101.0 (#19217) 2024-01-01 14:08:07 +01:00
Bram Kragten d0c1481f76 Bumped version to 20240101.0 2024-01-01 13:58:47 +01:00
renovate[bot] 6cc9a99b77 Update dependency terser-webpack-plugin to v5.3.10 (#19211)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-31 13:47:55 -05:00
renovate[bot] d25f49b694 Update dependency chai to v5 (#19208)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-31 13:46:23 -05:00
renovate[bot] b92d25e28a Update Material Design Icons to v7.4.47 (#19192) 2023-12-30 21:08:13 -05:00
renovate[bot] bf5c5bc46f Update dependency open to v10.0.2 (#19206) 2023-12-30 21:06:30 -05:00
renovate[bot] e7cc842be4 Update dependency rollup-plugin-visualizer to v5.12.0 (#19204) 2023-12-30 21:05:23 -05:00
Bram Kragten cb29d35949 Allow to clear due date (#19201) 2023-12-30 20:21:33 +01:00
Bram Kragten fe18f70e51 Only make count field template (#19198) 2023-12-30 18:40:01 +01:00
Bram Kragten ee57f26415 Sort domains correctly, scroll to top on back (#19197) 2023-12-30 18:39:21 +01:00
karwosts 721ec8e559 Localize some strings in integration panel (#19200) 2023-12-30 18:37:50 +01:00
Erik MontnemeryandBram Kragten c584f83071 Fix display of variables tab when automation step not executed (#19186)
Co-authored-by: Bram Kragten <[email protected]>
2023-12-30 17:16:54 +00:00
Erik Montnemery 3c2fed5041 Improve message when an automation step was not executed (#19185)
* Improve message when an automation step was not executed

* Use step instead of node
2023-12-30 18:08:24 +01:00
Erik Montnemery 7e6d974438 Fix iteration index when displaying changed variables (#19184) 2023-12-30 14:08:01 +01:00
Bram Kragten c95a30c837 Use username in example on empty automation page (#19189) 2023-12-29 20:45:51 +01:00
Bram Kragten cb568d005e dont allow UI editor when templates are used in repeat (#19188) 2023-12-29 17:59:11 +00:00
Bram Kragten 442cce1574 Fix play media action not shown (#19187) 2023-12-29 18:56:15 +01:00
Erik Montnemery c25baf25ad Exclude hidden entities from scenes (#19179) 2023-12-29 18:41:10 +01:00
renovate[bot] 5e279405c7 Update typescript-eslint monorepo to v6.16.0 (#19174) 2023-12-28 20:32:43 -05:00
Bram Kragten 7b4ecfd30a 20231228.0 (#19170) 2023-12-28 15:34:42 +01:00
Bram Kragten e5707b423f Bumped version to 20231228.0 2023-12-28 15:33:39 +01:00
Bram Kragten 7983556f98 Update sortable styling (#19169) 2023-12-28 15:32:49 +01:00
Bram Kragten 1916dff57b Keep todo item selected when checked/unchecked (#19168)
* Keep todo item selected when checked/unchecked

* update label when in reoder mode
2023-12-28 15:32:40 +01:00
Bram Kragten b11563d618 Small automation editor fixes (#19160) 2023-12-28 15:32:31 +01:00
Bram Kragten b180a587bf Address feedback of automation editor (#19167) 2023-12-28 14:18:18 +01:00
Simon Lamon 5b11e0ce29 Fix self referencing translation (#19159) 2023-12-27 20:26:17 +01:00
Bram Kragten d6684c5806 Revert hide automation desc in advanced mode (#19158) 2023-12-27 17:46:17 +01:00
Bram Kragten 9d9e789f4b 20231227.0 (#19157) 2023-12-27 17:29:11 +01:00
Bram Kragten 1a0e3890f4 Bumped version to 20231227.0 2023-12-27 17:22:34 +01:00
Bram Kragten caece9d6ad Add QR code element (#19155)
* Add QR code element

* fixes

* move to workflow

* limit webpack imports
2023-12-27 17:22:09 +01:00
renovate[bot] 953a3793c4 Update dependency vue to v2.7.16 (#19156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-27 17:19:27 +01:00
Jan-Philipp BeneckeandBram Kragten 8bfae3b4cf Fix ha-combo-box helper text not displaying text (#19154)
* Fix ha-combo-box helper text

* Update src/components/ha-combo-box.ts

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-12-27 15:22:19 +00:00
Bram Kragten 6911685bd0 Only focus search when not in fullscreen dialog (#19153) 2023-12-27 12:45:49 +00:00
Bram Kragten 71025eaf4d Fix dialog headers (#19152)
* Fix dialog headers

* increase padding
2023-12-27 13:45:36 +01:00
Bram Kragten 3aa612b766 Todo list layout fixes (#19150) 2023-12-27 13:22:36 +01:00
Simon Lamon a2ffd0ae83 Circular progress improvement in update area (#18983)
* Fixes

* Add aria label again
2023-12-27 11:07:40 +01:00
Simon Lamon c399da586e Increase battery column width (#19143) 2023-12-27 11:00:48 +01:00
Erik Montnemery d7826e4e6c Show +/- volume buttons for media players which support VOLUME_SET (#19111)
* Show +/- volume buttons for media players which support VOLUME_SET

* Fixup
2023-12-27 11:00:12 +01:00
Yosi Levy f5d13c9079 Various RTL fixes (#19134)
* Various RTL fixes

* Various RTL fixes
2023-12-27 10:59:28 +01:00
Paul Bottein 01a142790f Add update actions card feature (#19110)
* Add update tile feature

* Fix translations

* Add confirmation dialog

* Remove unused styles

* Fix gallery

* Update wording

* Update src/translations/en.json
2023-12-27 10:55:14 +01:00
karwostsandTill Fleisch df54687de1 Fix trailing energy gaps, refactor chart options (#19117)
* Fix trailing gap on energy graph cards

* Use date methods instead of unix time calculation

* Fix trailing energy gaps, refactor chart options

---------

Co-authored-by: Till Fleisch <[email protected]>
2023-12-27 10:53:16 +01:00
karwosts bded31b311 Fix entities sort for hidden/readonly (#19124) 2023-12-27 10:51:36 +01:00
c0ffeeca7 67e573aff7 HVAC in demo - fix typo (#19132) 2023-12-27 10:25:30 +01:00
c0ffeeca7 6295c4ac76 Add Oxford comma (#19133) 2023-12-27 10:24:57 +01:00
renovate[bot] 469811847f Lock file maintenance (#19084)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-26 11:53:07 -05:00
renovate[bot] 8a1aefefca Update vaadinWebComponents monorepo to v24.3.2 (#19141)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-25 15:39:49 -05:00
renovate[bot] bea16028a1 Update dependency open to v10.0.1 (#19145)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-25 15:38:06 -05:00
dependabot[bot] bedb7d1d9e Bump actions/setup-node from 4.0.0 to 4.0.1 (#19140)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4.0.0...v4.0.1)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 15:37:25 -05:00
renovate[bot] 1a3a20f478 Update dependency element-internals-polyfill to v1.3.10 (#19136) 2023-12-24 23:25:00 -05:00
Bram Kragten 68ecb7c219 Store height and width of dialog, autofocus searchbar (#19122) 2023-12-23 00:03:52 +01:00
renovate[bot]andSteve Repsher 61b04a882b Update dependency core-js to v3.34.0 (#18974)
* Update dependency core-js to v3.34.0

* Update Babel setting with package.json version

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-12-22 15:41:33 -05:00
renovate[bot] f8e621c5b9 Update dependency open to v10 (#19116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-22 14:16:41 -05:00
Bram Kragten 2f2209682e Update learn more URLs to just "Learn more" 2023-12-22 16:40:20 +01:00
Bram Kragten f4f361b51a Add automation picker descriptions (#19121) 2023-12-22 16:35:41 +01:00
Erik Montnemery 55e59f8cb0 Add valve to switch_as_x domains (#19118) 2023-12-22 11:34:09 +01:00
renovate[bot] 6d20ed0a22 Update dependency hls.js to v1.4.14 (#19112) 2023-12-21 20:22:36 -05:00
renovate[bot] 874f604295 Update typescript-eslint monorepo to v6.15.0 (#19113) 2023-12-21 20:21:23 -05:00
renovate[bot] 30d36a11c1 Update dependency eslint-plugin-lit to v1.11.0 (#19103) 2023-12-21 20:19:36 -05:00
Bram Kragten 09dcc29175 Add description and due support to todo lists (#19107) 2023-12-21 21:30:24 +01:00
Bram Kragten 8f07e6f141 Group add automation elements in dialog (#19086)
* Group add automation elements in dialog

* Add search

* clear filter on close

* Split out services

* group services by integration type

* Update add-automation-element-dialog.ts

* fix typing

* clear filter on back

* Update add-automation-element-dialog.ts

* Fix search

* scroll to top

* Add service descriptions

* fix clipboard

* Move play media, sort services

* use helpers

* move to data

* Move building blocks to a group

* fix search

* Update add-automation-element-dialog.ts

* Update en.json

* fix alignment of single line and multi line items

* use repeat instead of map
2023-12-21 21:01:27 +01:00
Bram Kragten 7b6b5724e1 Add descriptions to automation page sections (#19081)
* Add descriptions to automation page sections

* add name key

* Update manual-automation-editor.ts

* hide explanation if there is content

* Update src/translations/en.json

* hide when advanced
2023-12-21 21:01:11 +01:00
Quentame 521c0b58c8 Add climate fan mode feature to thermostat & tile cards (#19094)
* climate: Add fan_only exemple

* climate: add fan_mode feature to thermostat & tile cards

* review: update dropdown icon
2023-12-21 15:49:08 +01:00
Bram Kragten 53839ab7b1 Update text on empty automation/script/scene pages (#19095) 2023-12-21 15:36:56 +01:00
Chris Roberts dcfe9617b3 Make disabled sliders properly visible (#19102)
Followed similar variable usage by ha-*-chip components.

Fixes #19101
2023-12-20 21:26:48 +00:00
Matthias Alphart 58eebf2dbd Clear Area picker when "Add new area" was canceled (#19088) 2023-12-20 22:17:31 +01:00
Paul Bottein af9b64c6f0 Add option to show current temperature on thermostat card (#19049)
* Fix unit position when no decimal

* Add option to switch between current and target for thermostat card

* Refactor code

* Clean label code

* Rename config name
2023-12-20 14:41:22 +01:00
Paul Bottein 2b18ac8d4e Add option to show current humidity on humidifier card (#19079) 2023-12-20 14:12:59 +01:00
karwosts 2306234063 Localize date-range-picker (#18945) 2023-12-19 09:25:56 +01:00
renovate[bot] 883a9e422e Update dependency eslint to v8.56.0 (#19083) 2023-12-18 21:24:47 -05:00
Dmitry TsydzikandBram Kragten d77ce721e3 Add possibility to define group id manually for ZHA (#18932)
Co-authored-by: Bram Kragten <[email protected]>
2023-12-18 15:37:57 +01:00
Bram Kragten 325ad6f721 Fix step any in number selector (#19077) 2023-12-18 15:24:46 +01:00
Simon Lamon d762a9365f Automation traces localization (#18862) 2023-12-18 15:06:41 +01:00
Paul Bottein ce983f043e Fix empty classmap for thermostat card (#19078) 2023-12-18 14:00:37 +01:00
Bram Kragten 45b7ebbe46 Add empty page to automation/script/scene config (#19075) 2023-12-18 13:59:36 +01:00
Paul Bottein 3e7fa66790 Add valve entity (#19024)
* Add valve entity

* Update icon based on device class

* Check assumed state first

* Reset mode if entity id changes
2023-12-18 13:53:52 +01:00
renovate[bot] ad543dbffb Update dependency webpackbar to v6 (#19076)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 12:31:13 +00:00
karwosts cdd2c7be9a Fix date-range-picker overflow on energy dashboard small screen (#19026) 2023-12-18 13:20:21 +01:00
Simon LamonandBram Kragten ddf6945190 Localize state condition in automation editor (#18864)
Co-authored-by: Bram Kragten <[email protected]>
2023-12-18 13:19:19 +01:00
Simon Lamon f2745747ba Replace more polymer paper inputs and remove paper-input style attributes (#18929) 2023-12-18 13:05:56 +01:00
Charles Garwood ff9d179c13 Minor tweak to Z-Wave JS Config Dashboard layout (#19032) 2023-12-18 12:56:30 +01:00
karwosts e813108c66 Optional boolean service field defaults to false (#19043) 2023-12-18 12:56:01 +01:00
karwosts 62d8cdfcf9 Fix missing tooltips in energy-usage-graph (#19031) 2023-12-18 12:52:52 +01:00
karwosts 5b9d46e350 Add a safe mode item to the github issue template checkist (#19022) 2023-12-18 12:49:03 +01:00
renovate[bot] e5db95b2d2 Update vaadinWebComponents monorepo to v24.3.1 (#19052)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 12:08:21 +01:00
karwosts a8f7c7c999 Fix hide legend toggle in stats graph editor (#19021) 2023-12-18 11:55:50 +01:00
c0ffeeca7 8a423fb775 Assist, no wake word: point docs link to wake word installation proce… (#19040)
Assist, no wake word: point docs link to wake word installation procedure
2023-12-18 11:47:32 +01:00
c0ffeeca7 90c3d69af6 No supervisor message: fix typo (#19041) 2023-12-18 11:46:44 +01:00
renovate[bot] bcb2d73c5c Update dependency @material/web to v1.1.1 (#19064)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 11:44:20 +01:00
dependabot[bot] 8a6cea12e1 Bump github/codeql-action from 2 to 3 (#19072)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-18 09:23:52 +01:00
renovate[bot] 0056de146a Update dependency @codemirror/view to v6.22.3 (#19063)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-17 19:04:01 -05:00
renovate[bot] 0bcdbef11e Update dependency eslint-plugin-import to v2.29.1 (#19070)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-17 19:02:58 -05:00
renovate[bot] 1b208cb531 Update dependency marked to v11.1.0 (#19054) 2023-12-15 21:12:42 -05:00
renovate[bot] 6a975e260c Update dependency @rollup/plugin-json to v6.1.0 (#19057) 2023-12-15 21:10:09 -05:00
renovate[bot] 02d2bde269 Update dependency @babel/helper-define-polyfill-provider to v0.4.4 (#19047) 2023-12-15 01:52:14 +00:00
renovate[bot] 70cfa7f48a Update babel monorepo to v7.23.6 (#19046) 2023-12-14 20:41:13 -05:00
renovate[bot] b7d4b9c21b Update typescript-eslint monorepo to v6.14.0 (#19051) 2023-12-14 20:35:42 -05:00
renovate[bot] 673c947c11 Update dependency lit-analyzer to v2.0.2 (#19053) 2023-12-14 20:34:40 -05:00
Arno 2682a55148 Fixing issue #10581 Automation Debug Trace Graph not displaying right in Safari (#19036) 2023-12-14 11:53:53 +01:00
renovate[bot] 616f6ddf5f Update dependency @koa/cors to v5 [SECURITY] (#19018) 2023-12-14 02:38:00 +00:00
renovate[bot] 29769813bc Update dependency @codemirror/view to v6.22.2 (#19016) 2023-12-14 01:58:39 +00:00
renovate[bot] 221c46344a Update dependency rollup-plugin-visualizer to v5.11.0 (#19025) 2023-12-13 20:46:12 -05:00
renovate[bot] a33eb25c92 Update dependency prettier to v3.1.1 (#19027) 2023-12-13 20:45:00 -05:00
Simon Lamon 1dc61320a6 Fix Github Action labeler configuration (#19023) 2023-12-12 20:35:21 +01:00
karwosts ad556a43f9 Sort default dashboard area cards by alphabetical order if no order specified (#18989) 2023-12-12 14:25:12 +01:00
renovate[bot] 12e6701ffa Update dependency marked to v11.0.1 (#19007) 2023-12-11 20:56:46 -05:00
karwosts 7167b66719 Don't leave empty arrays in the service control target (#18986) 2023-12-11 11:19:28 +01:00
dependabot[bot] a52ba5fbd1 Bump actions/stale from 8.0.0 to 9.0.0 (#19004) 2023-12-11 08:06:47 +01:00
dependabot[bot] 22cf903656 Bump actions/setup-python from 4 to 5 (#19005) 2023-12-11 08:05:40 +01:00
dependabot[bot] d77b657036 Bump actions/labeler from 4.3.0 to 5.0.0 (#19003) 2023-12-11 07:46:59 +01:00
renovate[bot] 4a3038c12c Update dependency hls.js to v1.4.13 (#18994) 2023-12-10 22:02:24 -05:00
renovate[bot] 3ac7cd5d4a Update dependency @codemirror/state to v6.3.3 (#18984) 2023-12-09 20:57:44 -05:00
renovate[bot] 58eddd2b42 Update dependency typescript to v5.3.3 (#18993) 2023-12-09 16:44:38 -05:00
renovate[bot] d808da68bd Update dependency @lokalise/node-api to v12.1.0 (#18973) 2023-12-08 22:09:23 -05:00
renovate[bot] 2ed4d1efa0 Update dependency @braintree/sanitize-url to v7 (#18975) 2023-12-08 22:00:36 -05:00
Paul Bottein 6ce613acd2 20231208.2 (#18971) 2023-12-08 14:50:28 +01:00
Paul Bottein fcb9e13a84 Bumped version to 20231208.2 2023-12-08 14:49:04 +01:00
Bram Kragten 3ada2f3279 Fix label when there is no target (#18969) 2023-12-08 13:38:01 +00:00
Paul Bottein 8d2d45ae4e Add dropdown style to hvac_modes feature (#18963) 2023-12-08 13:43:59 +01:00
Simon LamonandBram Kragten c9e6963387 Fix todo url (#18954)
* Fix todo url

* Move searchParams

* Update src/panels/todo/ha-panel-todo.ts

* check if saved entity exists

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-12-08 13:35:57 +01:00
Paul Bottein 6d36b0e28c Hide climate mode control on default dashboard if there is only one hvac mode (#18964)
Hide hvac mode on default dashboard if there is only one hvac mode
2023-12-08 10:58:08 +00:00
Paul Bottein aa38e2d409 20231208.1 (#18962) 2023-12-08 10:36:45 +01:00
Paul Bottein 61117bb34f Bumped version to 20231208.1 2023-12-08 10:30:33 +01:00
Simon LamonandBram Kragten 86a3c32844 Fix area in device picker (#18955)
Co-authored-by: Bram Kragten <[email protected]>
2023-12-08 09:17:40 +00:00
Paul Bottein b855b3e103 Format number attribute for media player (#18949) 2023-12-08 10:14:55 +01:00
renovate[bot] 80edeebab9 Update dependency chart.js to v4.4.1 (#18957) 2023-12-07 20:38:49 -05:00
renovate[bot] f366e287b1 Update typescript-eslint monorepo to v6.13.2 (#18953) 2023-12-07 20:34:08 -05:00
renovate[bot] 9ce8684aba Update dependency lint-staged to v15.2.0 (#18930) 2023-12-07 20:32:47 -05:00
renovate[bot] caa6ea531c Update dependency @types/luxon to v3.3.7 (#18956) 2023-12-07 20:28:26 -05:00
Paul Bottein cca1183ee3 Revert "Remove card features for humidifier and climate on default dashboard" (#18944)
* Revert "Remove card features for humidifier and climate on default dashboard (#18747)"

This reverts commit 2afd2788e2.

* Rename humidifier feature
2023-12-07 16:53:07 +01:00
Paul Bottein 0f9c97aea0 Center login content for every screen size (#18943) 2023-12-07 13:45:05 +00:00
Paul Bottein 8d08aa8c79 Fix tile card interaction when border width is set to 0 (#18941) 2023-12-07 14:40:23 +01:00
renovate[bot] eebcab435d Update dependency rollup-plugin-visualizer to v5.10.0 (#18936)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-07 11:15:26 +01:00
Bram Kragten 76d3c6e237 Revert fetching config flow after subscribe for progress (#18939) 2023-12-07 09:31:34 +01:00
karwosts a820ca1e90 Fix number selector display for 0 (#18927) 2023-12-06 17:03:44 +01:00
Paul Bottein fce4e5e382 20231206.0 (#18925) 2023-12-06 14:24:48 +01:00
Paul Bottein 39260d172f Bumped version to 20231206.0 2023-12-06 14:23:09 +01:00
Paul Bottein e646528b86 Fix empty classmap in state control (#18922)
* Fix empy classmap in state control

* Don't use class map
2023-12-06 14:22:32 +01:00
Bram Kragten 86726102fb Fix issues with circular progress (#18920) 2023-12-06 14:21:28 +01:00
Bram Kragten 1330558819 Force media player browser dialog re-layout after open animation (#18910) 2023-12-06 14:14:14 +01:00
Paul Bottein b4ab0fc10b Reduce sensitivity of the circular slider on touch devices (#18921) 2023-12-06 14:13:19 +01:00
Paul Bottein 15becf9ef6 Add ellipsis to thermostat and humidifier card title (#18924) 2023-12-06 13:28:03 +01:00
Paul Bottein ef3785ce9f Fix particles over alert in login screen (#18923) 2023-12-06 13:16:47 +01:00
renovate[bot] 134e13005d Update dependency eslint-config-prettier to v9.1.0 (#18909) 2023-12-05 18:18:46 -05:00
Bram Kragten eb5e7ba3f3 20231205.0 (#18916) 2023-12-05 18:10:37 +01:00
Bram Kragten dccd9b2541 Bumped version to 20231205.0 2023-12-05 18:07:59 +01:00
Paul BotteinandBram Kragten de83ad7a7a Reduce circular slider sensitivity when used in card (#18908)
Co-authored-by: Bram Kragten <[email protected]>
2023-12-05 18:06:29 +01:00
Paul Bottein 7e55b9e6b8 Add humidifier modes and toggle feature (#18912) 2023-12-05 18:06:03 +01:00
Paul Bottein 1b74ca47bf Add target humidity feature (#18913) 2023-12-05 16:42:07 +01:00
Bram Kragten c3d4be9ceb wrap config validation (#18914) 2023-12-05 14:32:35 +00:00
karwosts b8d0c7f7c7 Consistent sortable cursor (#18897) 2023-12-05 10:45:20 +01:00
karwosts 92bce4078f Confirmation dialog for todo clear checked items (#18905) 2023-12-05 10:44:40 +01:00
Bram Kragten ff8f0697c2 Fix media control card background image (#18891) 2023-12-05 09:15:04 +01:00
renovate[bot] dddba7af00 Update dependency eslint to v8.55.0 (#18904) 2023-12-05 02:19:03 +00:00
karwosts 14a49d6664 Copy to clipboard button for service response (#18872) 2023-12-04 14:24:35 +00:00
Bram Kragten 22da402d56 Fix border radius for outlined icon button old browsers (#18888) 2023-12-04 15:17:43 +01:00
Bram Kragten aa4acc6572 Use resize polyfill from lit virtualizer (#18886) 2023-12-04 08:34:31 -05:00
Simon Lamon 4d432fba57 Hide battery level and battery icon in tile card (#18826) 2023-12-04 14:26:45 +01:00
G JohanssonandBram Kragten 97b71c785b Fix use of "" on lock entity more info (use default code) (#18706)
Co-authored-by: Bram Kragten <[email protected]>
2023-12-04 13:23:11 +00:00
Paul Bottein 8a93284bb3 Use resize-controller instead of container queries (#18885) 2023-12-04 14:16:10 +01:00
renovate[bot]andBram Kragten bb2abe4efc Update dependency marked to v11 (#18860)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <[email protected]>
2023-12-04 13:11:51 +00:00
Simon Lamon ccada33caf Accessibility improvements for circular progress indicators (#18506) 2023-12-04 14:06:25 +01:00
ildar170975 c5f15ee6ba Update ha-chart-base.ts: fix "Tooltip: a long name may overflow" (#18849) 2023-12-04 14:05:02 +01:00
renovate[bot] 6f240ec681 Update vaadinWebComponents monorepo to v24.2.5 (#18887)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 12:59:01 +00:00
renovate[bot] fc6aef138d Update dependency fs-extra to v11.2.0 (#18848)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 13:57:40 +01:00
Bram Kragten ae2e8e7402 20231204.0 (#18882) 2023-12-04 12:10:33 +01:00
Bram Kragten 6d0eb05954 Bumped version to 20231204.0 2023-12-04 12:08:11 +01:00
Bram Kragten 96fbbc55e1 Make history split by device class option in history card (#18871) 2023-12-04 12:06:26 +01:00
Bram Kragten 7e74502ba3 Add particles to login, move forgot password link (#18868) 2023-12-04 11:34:42 +01:00
Paul Bottein b273b31b03 Don't allow yaml dashboard to be in edit mode (#18879) 2023-12-04 10:17:52 +01:00
renovate[bot] cf00ac74c6 Update dependency sortablejs to v1.15.1 (#18876)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 00:57:31 -05:00
renovate[bot] cc702f0fb3 Update dependency @types/luxon to v3.3.6 (#18875)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 00:53:54 -05:00
renovate[bot] cc6eb5789d Update dependency clean-css to v5.3.3 (#18870) 2023-12-03 11:28:51 -05:00
renovate[bot] 669b80a9e1 Update babel monorepo to v7.23.5 (#18865) 2023-12-02 19:41:02 -05:00
karwosts 4c4fddee94 Fix for energy cards not refreshing hourly (#18854) 2023-12-02 23:33:04 +01:00
renovate[bot] b28a4e6b50 Update fullcalendar monorepo to v6.1.10 (#18859) 2023-12-02 03:26:39 +00:00
renovate[bot] bdd6a55a84 Update dependency @codemirror/commands to v6.3.2 (#18857) 2023-12-01 22:16:38 -05:00
renovate[bot] d1ebc06994 Update typescript-eslint monorepo to v6.13.1 (#18853) 2023-12-01 22:15:42 -05:00
renovate[bot] 2a150788b4 Update typescript-eslint monorepo to v6.13.0 (#18845)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-30 15:06:07 -05:00
Bram Kragten b854d23431 20231130.0 (#18843) 2023-11-30 17:19:47 +01:00
Bram Kragten 72caf72e80 Bumped version to 20231130.0 2023-11-30 17:18:58 +01:00
Bram Kragten a6ff1899df Prevent double quick action (#18842) 2023-11-30 16:18:04 +00:00
Paul Bottein 6a999597df Rename number feature to number value feature (#18836) 2023-11-30 16:17:54 +00:00
Bram Kragten 219fc9e53a Group history by device class (#18841) 2023-11-30 17:17:26 +01:00
Bram Kragten 861959ed2d add previous button to login screen (#18837) 2023-11-30 17:06:22 +01:00
Damian Sypniewski f7f50294e7 Added hold and double tap actions for tile card (#18345) 2023-11-30 16:03:07 +01:00
Bram Kragten a226333c1e Update area-filter-dialog.ts 2023-11-30 15:16:01 +01:00
Bram KragtenandPaul Bottein 75f18aa69b Move disabled items always to the bottom, only change color of text, … (#18814)
* Move disabled items always to the bottom, only change color of text, dont drag disabled items

* Don't allow to drag hidden items

---------

Co-authored-by: Paul Bottein <[email protected]>
2023-11-30 14:37:10 +01:00
Simon Lamon 60ff4fdc1f Ensure helper type is always localized (#18825)
* Ensure helper type is always localized

* Remove the check
2023-11-30 14:14:13 +01:00
renovate[bot] 8d14cb0ab7 Update vaadinWebComponents monorepo to v24.2.4 (#18835)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-30 08:12:43 -05:00
Bram Kragten 606c809880 Update size of icon on launch screen (#18833) 2023-11-30 12:34:46 +01:00
Simon LamonandBram Kragten f1692038f8 Fix developer tools set state for unexisting entity (#18827)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-30 10:59:51 +00:00
Paul Bottein 79f5ec0cd5 Fix dashboard crashed when deleting hidden area (#18832) 2023-11-30 10:59:31 +00:00
renovate[bot] 416a2a080d Update CodeMirror (#18829)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-30 10:58:49 +00:00
Paul Bottein 92dc8b1561 Fix map dark mode (#18830) 2023-11-30 11:47:44 +01:00
karwosts 07b807adfc Fit map on load (#18819) 2023-11-30 10:49:40 +01:00
Simon Lamon 843430ef41 Cleanup iron resize event (#18813) 2023-11-29 21:02:57 +01:00
Bram Kragten b5b2392dd2 Guard for no person for user (#18812) 2023-11-29 20:59:06 +01:00
Bram Kragten ef735d65cf 20231129.1 (#18811) 2023-11-29 15:31:24 +01:00
karwosts bf24740c7b Fix non-hass shouldUpdate regressions (#18810) 2023-11-29 14:28:38 +00:00
Bram Kragten 4ec11c7cf6 Bumped version to 20231129.1 2023-11-29 15:25:35 +01:00
Bram Kragten 2803e6aa95 20231129.0 (#18809) 2023-11-29 12:53:12 +01:00
Bram Kragten 8ff36d0ccf Merge branch 'master' into dev 2023-11-29 12:39:58 +01:00
Bram Kragten e7e465df69 Bumped version to 20231129.0 2023-11-29 12:38:24 +01:00
karwostsandBram Kragten 0c042079ed ha-selector-selector implementation (#18421)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-29 11:09:49 +00:00
lunmay a5a9bcafa7 Typo fixes: "url" -> "URL" in blueprint (#18808) 2023-11-29 11:48:20 +01:00
Bram Kragten 867f625b0a Fix has changed for when hass is not changed (#18778) 2023-11-29 11:20:04 +01:00
Jan BouwhuisandBram Kragten 3876c67588 Add translation support for script errors (#18786)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-29 11:14:29 +01:00
Paul Bottein 93158bb3af Add re-import blueprint (#18807)
* Add re-import blueprint

* Add disabled color to icon
2023-11-29 10:56:52 +01:00
schelv 5c47d8652d Add Option For Kelvin Unit To Color Temperature Selector (#18627) 2023-11-29 10:56:44 +01:00
Josh McCartyandBram Kragten eda0d12867 Dev tools events layout (#18389)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-29 09:51:33 +00:00
Bram Kragten 4a53de4466 Lazy load language picker in auth and onboarding (#18806) 2023-11-29 10:50:05 +01:00
karwosts e730649a8d Fix condition key function for template shorthand notation (#18107) 2023-11-29 10:46:22 +01:00
Steve Repsher 3a94deef69 Fix minifying templates from dependencies (#18795) 2023-11-29 10:35:53 +01:00
Bram Kragten c1c186d279 Cleanup event listeners (#18803) 2023-11-29 10:21:12 +01:00
Matthias Alphart 7356db919a Default to ltr for reading direction (#18767) 2023-11-29 10:17:31 +01:00
Amit Finkelstein 44157a5df3 Fix map auto-fit (#18801) 2023-11-29 10:16:34 +01:00
Paul Bottein 2acd1ff5e8 Refactor and cleanup device picker (#18804) 2023-11-29 10:01:54 +01:00
Bram Kragten 150a5571cf Refactor and cleanup entity config page (#18797) 2023-11-29 09:19:53 +01:00
Bram Kragten 1eb25f4829 Add import thread credentials to external bus (#18777) 2023-11-29 09:01:33 +01:00
Bram Kragten d8d4ecf79f Refactor and clean up of device pages (#18796) 2023-11-29 09:01:11 +01:00
karwosts 081bd98e98 Fix map autofit (#18799) 2023-11-29 00:29:52 +01:00
Robert Van Gorkom 6134f415e9 Fix race condition with picture-elements card custom elements (#18765) 2023-11-28 21:23:06 +00:00
karwostsandBram Kragten b6a7581eca Augment history panel with Long Term Statistics (#18213)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-28 22:14:05 +01:00
Paul BotteinandBram Kragten 7727f34e8f Add area filter selector for default dashboard (#18779)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-28 21:43:34 +01:00
Amit Finkelstein 9b20e1cf56 Avoid re-rendering map with "sources" (#18635) 2023-11-28 20:30:28 +01:00
Steve Repsher b901ecacca Add missing Intl polyfills to modern build (#18794) 2023-11-28 19:28:10 +00:00
Simon Lamon 7691f7eb05 PolymerElement cleanup (#18793) 2023-11-28 20:25:12 +01:00
Bram Kragten 8c0c56b954 Login page feedback (#18791) 2023-11-28 20:21:10 +01:00
karwosts d968a20862 More disconnected callback errors (#18792) 2023-11-28 20:19:49 +01:00
karwostsandBram Kragten 9f1cd80a31 Add a Grid/List toggle for Media Browser (#18256)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-28 16:34:34 +00:00
Paul Bottein 5a9ccc5ae7 Fix humidifier more info (#18789) 2023-11-28 17:30:39 +01:00
Paul Bottein 6d7b0c5626 Fix tile features colors (#18788) 2023-11-28 17:30:23 +01:00
karwosts 400b8034e1 missing disconnectedCallback in energy-period-selector (#18790) 2023-11-28 17:27:08 +01:00
Bram Kragten 05a22e3271 Keep targets when switching services (#18772) 2023-11-28 14:42:40 +01:00
Bram Kragten c1f76e0565 Update ha-authorize.ts 2023-11-28 13:44:23 +01:00
Simon Lamon 4582c3ba0a Migrate state cards from Polymer to Lit (#18257) 2023-11-28 13:30:39 +01:00
Kendell RandBram Kragten f4ee734ea3 Use new localize format (#18574)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-28 12:29:41 +00:00
Bram Kragten 2087028c47 Update home.markdown 2023-11-28 13:24:09 +01:00
Paul BotteinandBram Kragten 37a56b250a Add multiple option to text selector (#18785)
* Add multiple option to text selector

* Make multiple optional

* Update src/components/ha-selector/ha-selector-text.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-11-28 11:28:29 +01:00
Márton Braun 71a41be20a Add fit_zones parameter to map card (#18760) 2023-11-28 11:04:43 +01:00
Bram Kragten ffb19b31a5 Use subscribe for todo items (#18776) 2023-11-28 08:28:13 +01:00
Bram Kragten db68c7faa9 Log errors when downloading lokalise translations (#18781) 2023-11-28 08:21:19 +01:00
renovate[bot] 07ae958eb0 Update dependency vis-data to v7.1.9 (#18783)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-27 19:16:43 -05:00
renovate[bot] b62b5f6575 Update dependency rollup-plugin-visualizer to v5.9.3 (#18782)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-27 19:15:00 -05:00
Bram Kragten 2e1fb9df66 Update design of login page (#18770) 2023-11-27 23:06:51 +01:00
Bram Kragten 31c91cea9a Update translations_upload_base 2023-11-27 17:59:13 +01:00
Bram Kragten 9dc844ca28 Dont change pipeline if local storage changes (#18773) 2023-11-27 15:42:07 +01:00
karwostsandBram Kragten 02ebc028c8 Add custom card names to the edit card dialog header (#18750)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-27 15:30:39 +01:00
karwosts 5d35605b82 Filter energy card updates with shouldUpdate (#18763) 2023-11-27 15:29:15 +01:00
Bram Kragten 22e86af5b3 Fix race condition with Data Entry Flow Progress (#18775) 2023-11-27 11:28:49 +01:00
dependabot[bot] 8c39ed46a8 Bump dessant/lock-threads from 5.0.0 to 5.0.1 (#18769) 2023-11-27 07:40:59 +01:00
Raman Gupta 5965c3fdaa Add alert to zwave_js device info page for custom device config (#18686) 2023-11-26 11:09:02 +01:00
renovate[bot] 15a5d2bc38 Update dependency @bundle-stats/plugin-webpack-filter to v4.8.3 (#18761) 2023-11-25 22:22:03 -05:00
Paul Bottein 0432cc95fc Allow overriding blueprints (#18718) 2023-11-25 11:49:58 +01:00
renovate[bot] 6dafaac021 Update dependency @types/sortablejs to v1.15.7 (#18756)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-25 00:03:20 -05:00
renovate[bot] d8929c9252 Update dependency @types/mocha to v10.0.6 (#18755)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-25 00:02:42 -05:00
renovate[bot] 5fa3a720b3 Update dependency @bundle-stats/plugin-webpack-filter to v4.8.2 (#18752) 2023-11-24 23:34:03 -05:00
renovate[bot] 6d3b838b6a Update dependency @types/leaflet-draw to v1.0.11 (#18753) 2023-11-24 23:33:03 -05:00
Bram Kragten 58e0179321 Add local login flow (#18717) 2023-11-24 17:22:05 +01:00
Paul Bottein eaf7e29b8a Fix thermostat humidifier card size (#18749) 2023-11-24 16:27:01 +01:00
renovate[bot] 260f1df1b9 Update babel monorepo to v7.23.4 (#18730)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-24 15:58:57 +01:00
renovate[bot] a88a4ef82c Update dependency typescript to v5.3.2 (#18736)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-24 15:57:57 +01:00
Steve Repsher 075cca5991 Inject polyfills where used (#18719) 2023-11-24 15:57:21 +01:00
Simon Lamon 1d2dc37f75 Migrate push notification toggle from Polymer to Lit (#18565) 2023-11-24 15:47:09 +01:00
Paul Bottein 3da7025d78 Improve search for single character (#18748) 2023-11-24 14:37:59 +00:00
Paul Bottein 15b1d8ee14 Move more info control component to state control (#18745) 2023-11-24 14:33:11 +00:00
239d8fa948 Fix card-picker search for single character (#18733)
* Fix card-picker search for single character

* Update src/panels/lovelace/editor/card-editor/hui-card-picker.ts

Co-authored-by: Paul Bottein <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: Paul Bottein <[email protected]>
2023-11-24 15:23:27 +01:00
Bram Kragten 1de2e6161d Make thermostat centered in panel or grid view (#18731)
* Make thermostat centered in panel or grid view

* Update hui-humidifier-card.ts
2023-11-24 14:17:06 +01:00
Paul Bottein 3e7f008277 Rename tile features to card features (#18732) 2023-11-24 13:36:58 +01:00
G Johansson 31a93d360d Make lock default code a password field (#18722) 2023-11-24 13:11:18 +01:00
Paul Bottein 2afd2788e2 Remove card features for humidifier and climate on default dashboard (#18747) 2023-11-24 12:53:41 +01:00
renovate[bot] 322fa99147 Update dependency @types/tar to v6.1.10 (#18742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-24 11:13:49 +00:00
renovate[bot] c43ad52ff1 Update dependency @types/sortablejs to v1.15.6 (#18741)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-24 12:03:01 +01:00
Paul Bottein 6aa9737481 Fix ha control select option size (#18746) 2023-11-24 12:02:44 +01:00
renovate[bot] 7d9d6b99d9 Update dependency @types/luxon to v3.3.5 (#18739) 2023-11-24 03:46:28 +00:00
renovate[bot] 9c69e6f87c Update dependency @types/mocha to v10.0.5 (#18740) 2023-11-23 22:36:00 -05:00
renovate[bot] 0c90021895 Update typescript-eslint monorepo to v6.12.0 (#18734) 2023-11-23 21:59:42 -05:00
Paul Bottein 9163b9c124 Add new design to humidifier card (#18711) 2023-11-23 00:37:19 +01:00
renovate[bot] 61717e1529 Update dependency core-js to v3.33.3 (#18721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-22 13:38:08 -05:00
renovate[bot] 168d418c27 Update dependency @bundle-stats/plugin-webpack-filter to v4.8.1 (#18720)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-22 13:36:11 -05:00
Paul Bottein c787c920fc Add new design to thermostat card (#18709)
* Add new design for thermostat card

* Add feature to thermostat card

* Fix margin

* Add current

* use big number component

* Add current

* Fix translations

* Add theme and name options

* Reduce margin on small card

* Fix types

* Add hvac mode to default dashboard

* Don't put feature full size

* Full width for features

* Improve design on small screen
2023-11-22 14:42:42 +01:00
Steve Repsher 1526209f82 Adjust bundle filenames for stats and debugging (#18677) 2023-11-22 14:11:23 +01:00
Steve Repsher cf355c419d Fix Babel runtime helper injections (#18698) 2023-11-22 14:10:28 +01:00
Paul Bottein eef024587b Use entity component translations for update entity (#18608) 2023-11-22 12:43:33 +01:00
Paul BotteinandSimon Lamon 270d463d02 Add configuration to default dashboard (#18658)
Co-authored-by: Simon Lamon <[email protected]>
2023-11-22 12:40:17 +01:00
renovate[bot] 0735705dd3 Update dependency eslint to v8.54.0 (#18707) 2023-11-20 19:21:17 -05:00
dependabot[bot]andFranck Nijhof 0a1dbe6d9d Bump dessant/lock-threads from 4.0.1 to 5.0.0 (#18699)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Franck Nijhof <[email protected]>
2023-11-20 08:47:54 +01:00
renovate[bot]andSteve Repsher 15395275ba Update dependency prettier to v3.1.0 (#18675)
* Update dependency prettier to v3.1.0

* Reformat

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-11-19 23:31:56 -05:00
karwostsandBram Kragten 6e66ba202f Add a button to delete all refresh tokens (#18680)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-19 13:32:25 +01:00
karwosts 5ebe1e0369 Add shortcut from energy dashboard to energy settings (#18596) 2023-11-19 13:31:55 +01:00
renovate[bot] 860ab7a3ba Lock file maintenance (#18696)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 22:50:36 -05:00
renovate[bot] d499640304 Update dependency @lezer/highlight to v1.2.0 (#18672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 22:28:46 -05:00
renovate[bot] 4f3f516767 Update dependency rrule to v2.8.1 (#18648)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 21:06:30 -05:00
renovate[bot] 0996dbf2a1 Update formatjs monorepo (#18684)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 21:37:37 +00:00
renovate[bot] bc59e52cea Update dependency marked to v10 (#18651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 16:33:31 -05:00
wittypluck b8d4e957e2 Add logarithmic scale option to Statistics and History graph cards (#18637) 2023-11-18 17:31:29 +01:00
karwosts 8002ec75bc Temporarily filter cleared statistics from devtools table (#18694) 2023-11-18 17:30:48 +01:00
karwosts a45eefa742 Add live camera & custom AR to Area card (#18643) 2023-11-18 17:26:21 +01:00
Jan Bouwhuis a1236924aa Ensure websocket_api error messages shows longer (#18690) 2023-11-17 20:35:08 +01:00
renovate[bot] 9320e8c1a3 Update Yarn to v4.0.2 (#18687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-17 11:35:32 -05:00
karwosts addcd3a983 Typo in bug_report.yml (#18681)
Update bug_report.yml
2023-11-17 15:53:12 +01:00
Paul Bottein e1dc73e992 Fix yaml editor lovelace (#18664) 2023-11-16 18:55:09 +01:00
renovate[bot] ba8849ed4d Update typescript-eslint monorepo to v6.11.0 (#18679)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 12:48:12 -05:00
Thomas Lovén 36bca04341 Polyfill ElementInternals for material-web components. Fix #18600 (#18638) 2023-11-16 18:17:41 +01:00
Simon Lamon fb95de1f73 Add translations for the developer tools statistic issues (#18646) 2023-11-16 18:16:51 +01:00
karwosts 3addfc3548 Localization bugfixes in config devices/entities/helpers (#18645) 2023-11-16 18:13:31 +01:00
renovate[bot] e2e80d1f49 Update vaadinWebComponents monorepo to v24.2.3 (#18678)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 12:03:38 -05:00
renovate[bot] a96eba2637 Update dependency @lit-labs/virtualizer to v2.0.11 (#18583)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 11:55:24 -05:00
renovate[bot] 274810b954 Update dependency luxon to v3.4.4 (#18674)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 11:40:03 -05:00
Paul Bottein 842df983c3 Add new dashboard dialog (#18657)
* Add new dashboard dialog

* Update default dashboard wording
2023-11-16 13:43:55 +01:00
Simon Lamon 0eeadcd31a Replace paper-input in cast (#18647) 2023-11-16 12:39:54 +01:00
Josh McCarty 8d37c5612b Move attribute pre styles to ha-attribute-value component (#18649) 2023-11-16 12:28:45 +01:00
dnikles e94461f7fe Update dialog-add-integration.ts (#18615) 2023-11-16 12:18:18 +01:00
Bram Kragten f5edee1e91 Add support for warnings in check_config (#18489) 2023-11-16 12:17:14 +01:00
Paul Bottein 98cdbb4559 Add minimal UI for climate and water entity without target (#18666) 2023-11-16 12:16:37 +01:00
Paul Bottein f3f63d95b5 Restore map filter theme (#18667) 2023-11-16 12:12:17 +01:00
karwosts 244340f211 Allow search for integration name in log search (#18668) 2023-11-16 12:08:10 +01:00
Paul Bottein 75626431b1 Improve ripple background color for tile card (#18579) 2023-11-16 10:57:24 +01:00
Allen Porter 244868348b Delete To-do items in a batched single request (#18662) 2023-11-16 09:52:03 +01:00
renovate[bot] a909c6d905 Update formatjs monorepo (#18663) 2023-11-15 20:49:16 -05:00
Michael Hansen f2efff9d71 Use stt-vad-end event in assist debug panel (#18671)
* Use stt-vad-end event in assist debug panel

* Remove end_suffix
2023-11-15 21:36:49 +00:00
karwosts 08a7a10e1c Don't save new automation when save dialog is cancelled (#18655) 2023-11-15 18:03:47 +01:00
Simon Lamon b35e5abd83 Fix Edit Area dialog doesn't save area (#18659)
secondary action
2023-11-15 18:00:35 +01:00
karwosts 291e9fc0a2 Fix onboarding password form (#18665) 2023-11-15 17:58:22 +01:00
Paul Bottein de370d6384 Add todo entity_id in URL (#18653) 2023-11-15 11:26:03 +01:00
Paul Bottein 1cf928b425 Improve Lovelace types (#18652) 2023-11-15 11:13:49 +01:00
renovate[bot] b9c62c34a0 Update dependency lint-staged to v15.1.0 (#18660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 10:49:33 +01:00
renovate[bot] 37554213dc Update dependency @bundle-stats/plugin-webpack-filter to v4.8.0 (#18654) 2023-11-14 20:37:44 -05:00
renovate[bot] 3845fd2ef9 Update dependency @types/tar to v6.1.9 (#18650) 2023-11-14 20:35:55 -05:00
renovate[bot] 837b36a430 Update dependency marked to v9.1.6 (#18644)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 19:46:13 +01:00
karwosts bff09a7a36 Fix login password form (#18619) 2023-11-13 19:45:34 +01:00
renovate[bot] a5e5efa526 Update dependency @codemirror/autocomplete to v6.11.0 (#18633)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-12 22:29:54 -05:00
renovate[bot] 1cd5b9ff37 Update babel monorepo to v7.23.3 (#18632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-12 21:16:45 -05:00
renovate[bot] 6a11155dd7 Update dependency vis-data to v7.1.8 (#18625) 2023-11-11 21:09:28 -05:00
renovate[bot] 1acb76d2f0 Update dependency @types/leaflet to v1.9.8 (#18622) 2023-11-12 02:07:18 +00:00
renovate[bot] 2e8a40efd5 Update dependency @types/ua-parser-js to v0.7.39 (#18616) 2023-11-11 20:58:50 -05:00
renovate[bot] 845a0e4e39 Update dependency @types/js-yaml to v4.0.9 (#18621) 2023-11-11 20:56:30 -05:00
Paul Bottein 9417f13cc9 Add unit for number tile feature (#18602) 2023-11-10 19:30:07 +01:00
renovate[bot] d3f52f3bc0 Update dependency @types/tar to v6.1.8 (#18614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 18:17:57 +00:00
renovate[bot] 7d0ec00fde Update dependency @types/sortablejs to v1.15.5 (#18613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 13:06:13 -05:00
renovate[bot] 6dbb5dd4be Update dependency @types/qrcode to v1.5.5 (#18610)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 13:05:36 -05:00
renovate[bot] f30e7948cb Update dependency @types/luxon to v3.3.4 (#18605)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 13:04:49 -05:00
renovate[bot] 41472d8160 Update dependency @types/serve-handler to v6.1.4 (#18612)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 12:43:05 -05:00
renovate[bot] e596d32426 Update dependency @types/mocha to v10.0.4 (#18606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 12:41:33 -05:00
renovate[bot] 89de62812f Update dependency @types/leaflet-draw to v1.0.10 (#18603)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 12:39:56 -05:00
renovate[bot] 3e391fcbe6 Update dependency @types/html-minifier-terser to v7.0.2 (#18601)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 12:37:31 -05:00
karwosts 708ab2ed69 Localize hide/show password (#18607) 2023-11-10 18:12:36 +01:00
Paul Bottein 1d45cb78fe Rename tooltipUnit to unit for slider (#18599) 2023-11-10 18:08:12 +01:00
Philip AllgaierandPaul Bottein d3f6ebd1d0 Add unit to temperature tile number button group (#17841)
* Add unit to temperature tile number button group

* Update gallery

* Use blank before unit

* Hide unit if no space

* Fix build

---------

Co-authored-by: Paul Bottein <[email protected]>
2023-11-10 14:22:10 +01:00
Joseph AbbeyandPaul Bottein 21644c70b3 Add number tile feature (#18562)
* hui-number-tile-feature

* Added support for number domain

* Apply suggestions from code review (thanks @piitaya)

Co-authored-by: Paul Bottein <[email protected]>

* Fixed the callback to use the correct service

* fix formatting

---------

Co-authored-by: Paul Bottein <[email protected]>
2023-11-10 08:34:29 +00:00
karwosts eb75389cac Localize clear in entity filter (#18598)
Localize  in entity filter
2023-11-10 08:27:36 +01:00
Bram Kragten cd4f3a091b Fix add device dialog (#18591) 2023-11-10 08:27:02 +01:00
renovate[bot] 19c1973ec1 Update dependency @types/chromecast-caf-sender to v1.0.8 (#18597)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 03:35:04 +00:00
renovate[bot] a8efbe5b06 Update dependency @types/chromecast-caf-receiver to v6.0.12 (#18595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 03:22:14 +00:00
renovate[bot] 44b5c66c19 Update dependency @types/babel__plugin-transform-runtime to v7.9.5 (#18594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 22:08:58 -05:00
renovate[bot] 3fa3bba4d8 Update formatjs monorepo (#18592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 22:07:01 -05:00
renovate[bot] ab09c821a2 Update typescript-eslint monorepo to v6.10.0 (#18586)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 22:05:26 -05:00
Paul BotteinandSimon Lamon 18b5215ce6 Only update dev tools yaml editor on entity change or submit (#18575)
Co-authored-by: Simon Lamon <[email protected]>
2023-11-09 18:24:45 +01:00
Bram Kragten 00a311bd63 Bumped version to 20231030.2 2023-11-09 18:23:17 +01:00
tzagim 749c2ab8ac Fix for RTL (#18509) 2023-11-09 18:22:27 +01:00
Kendell R d06fdeb265 Fix "ttme" typo on the demo page (#18543) 2023-11-09 18:22:12 +01:00
Simon Lamon 06d76be2c2 Fix refresh in developer state tools (#18532) 2023-11-09 18:21:50 +01:00
David Bell 6728e8d107 Don't display hidden/non-visible calendars on the Calendar panel (#18541) 2023-11-09 18:21:32 +01:00
Kendell R 533e2bed8a Properly set direction styles (#18483) 2023-11-09 18:20:44 +01:00
karwosts 310a08f3e6 Fix choose add option (#18493) 2023-11-09 18:19:19 +01:00
Paul Bottein 0566889a1e Use strict comparison for above condition in conditional card (#18560) 2023-11-09 18:18:37 +01:00
Paul Bottein 37b7395986 Migrate chips to Material 3 chips. (#18513) 2023-11-09 17:57:37 +01:00
Bram Kragten 4933413140 Fix virtualizer with v2.0.10 (#18584) 2023-11-09 11:53:35 -05:00
Bram Kragten 1c16bd5ab2 rollback lit-labs/virtualizer to 2.0.8 (#18580) 2023-11-09 16:26:09 +01:00
Paul Bottein 3a926c6f83 Add pointer-events none to slider tooltip (#18577) 2023-11-09 14:57:23 +01:00
Paul BotteinandSimon Lamon 7a619ad55a Only update dev tools yaml editor on entity change or submit (#18575)
Co-authored-by: Simon Lamon <[email protected]>
2023-11-09 10:00:24 +01:00
Paul Bottein bc21425981 Add tooltip to tile sliders and more info sliders (#18567) 2023-11-08 12:47:55 +01:00
renovate[bot] f2505c0798 Update dependency eslint to v8.53.0 (#18558)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-08 11:48:22 +01:00
Steve Repsher cee8c756fc Remove dependency esprima (#18564) 2023-11-08 11:24:03 +01:00
renovate[bot] 396b3aace9 Update dependency @codemirror/view to v6.22.0 (#18553)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 18:02:11 -05:00
renovate[bot] 28dc1e4da9 Update vaadinWebComponents monorepo to v24.2.2 (#18552)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 17:59:54 -05:00
Kendell R aa0419e783 Minify logos (#18542) 2023-11-07 13:39:38 +01:00
Jan Bouwhuis fd9c24d05e Add localization to service call exceptions (#18447) 2023-11-07 12:04:53 +01:00
Paul Bottein 8bdbe8c6a6 Use strict comparison for above condition in conditional card (#18560) 2023-11-07 12:04:04 +01:00
Steve Repsher 39550cefa0 Add some Renovate groups and enable NVM updates (#18559) 2023-11-07 11:53:47 +01:00
David Bell 589e3b63c7 Don't display hidden/non-visible calendars on the Calendar panel (#18541) 2023-11-06 15:09:54 +00:00
renovate[bot] 0cc38278b9 Update dependency @lit-labs/virtualizer to v2.0.10 (#18547)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-06 15:56:45 +01:00
renovate[bot] aafdf7bed7 Update dependency vis-network to v9.1.9 (#18548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-06 15:55:24 +01:00
Simon Lamon a7f6ce3079 Fix refresh in developer state tools (#18532) 2023-11-06 15:53:23 +01:00
karwosts 3d03f74d66 Improve template trigger/condition descriptions (#18504) 2023-11-06 10:04:58 +01:00
tzagim e09a6a23fc Fix for RTL (#18509) 2023-11-06 10:02:44 +01:00
Kendell R 9e4bb6ed0c Fix "ttme" typo on the demo page (#18543) 2023-11-06 10:02:00 +01:00
renovate[bot] c45c8ab5c0 Update dependency sinon to v17.0.1 (#18535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-05 14:16:21 -05:00
renovate[bot] 5ef6973933 Update dependency marked to v9.1.5 (#18523)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-05 14:14:50 -05:00
renovate[bot] 1df344580a Update dependency eslint-plugin-lit-a11y to v4.1.1 (#18534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-05 14:13:25 -05:00
renovate[bot] 25acc479b9 Update dependency core-js to v3.33.2 (#18515) 2023-11-02 20:54:59 -04:00
renovate[bot] c9f051374b Update dependency punycode to v2.3.1 (#18516) 2023-11-02 20:50:03 -04:00
renovate[bot] bf5116fc0b Update typescript-eslint monorepo to v6.9.1 (#18518) 2023-11-02 20:47:03 -04:00
renovate[bot] edc8cb1d2e Update dependency @rollup/plugin-replace to v5.0.5 (#18505) 2023-11-02 20:42:05 -04:00
Bram Kragten a60bb3ae0a Clean up auth flow translation placeholders (#18502) 2023-11-02 21:02:42 +01:00
Paul Bottein 784f753f07 Display default action label in action selector (#18398) 2023-11-02 16:10:15 +01:00
Paul Bottein e63c7e3763 Add trigger selector for blueprint (#18469) 2023-11-02 16:01:59 +01:00
karwosts cfa522068c Localize trigger condition and add list formatting (#18488) 2023-11-01 15:42:43 +01:00
schelv 5f2375fe84 feat: Dynamically adjust gradient percentages based on min/max values (#18479) 2023-11-01 15:41:26 +01:00
Kendell R a9e34d7590 Stop using ha-markdown on the auth page (#18480) 2023-11-01 15:36:17 +01:00
Paul Bottein 463cfb869f Add and and or condition to conditional card (#18409) 2023-11-01 15:28:37 +01:00
Paul Bottein acb5a2b283 Add test button to conditional card (#18411) 2023-11-01 15:25:56 +01:00
Bram Kragten 08597d6e91 Bump node to v20 (#18497) 2023-11-01 15:22:23 +01:00
9478485268 Update Yarn to v4 (#18414)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2023-11-01 10:16:46 +00:00
renovate[bot] 0af9ec2fff Pin dependencies (#18498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-01 09:51:15 +00:00
Kendell R f6e74de05e Properly set direction styles (#18483) 2023-11-01 10:38:02 +01:00
Bram Kragten 8b0373d5c0 Revert bump to @lit/[email protected] (#18496) 2023-11-01 10:35:50 +01:00
Bram Kragten ddca7584ef Bumped version to 20231030.1 2023-11-01 10:21:08 +01:00
karwosts e6cfe74cac Fix choose add option (#18493) 2023-11-01 10:20:25 +01:00
karwosts d4218250af Fix choose add option (#18493) 2023-11-01 09:37:26 +01:00
renovate[bot]andSteve Repsher 78783942be Update dependency @lit-labs/observers to v2.0.2 (#18484)
* Update dependency @lit-labs/observers to v2.0.2

* Resolve @lit/reactive-element to v1

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-10-31 14:42:28 -04:00
renovate[bot]andSteve Repsher 17ad8013ca Update dependency @lit-labs/context to v0.5.1 (#18208)
* Update dependency @lit-labs/context to v0.5.1

* Switch to @lit/context and resolve reactive-element to v1

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-10-31 13:53:53 -04:00
renovate[bot]andSteve Repsher f70767f084 Update dependency @lit-labs/motion to v1.0.6 (#18205)
* Update dependency @lit-labs/motion to v1.0.6

* Resolve to lit v2

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-10-31 14:31:42 +00:00
renovate[bot]andSteve Repsher 3972394d82 Update dependency @lit-labs/virtualizer to v2.0.9 (#18206)
* Update dependency @lit-labs/virtualizer to v2.0.9

* Resolve to lit v2

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-10-31 13:22:54 +00:00
renovate[bot] 5331fb4f5f Update dependency marked to v9.1.3 (#18485)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 08:44:18 -04:00
Matthias de Baat 16df352ba8 Update ha-dialogs.markdown (#18487) 2023-10-31 12:27:46 +00:00
Bram Kragten 3b553a3a4b 20231030.0 (#18478) 2023-10-30 21:45:08 +01:00
Bram Kragten 8e1e75dee1 Bumped version to 20231030.0 2023-10-30 21:44:17 +01:00
Bram Kragten d27b4e04a9 Adapt to new todo services (#18477) 2023-10-30 20:32:32 +00:00
Simon LamonandBram Kragten 36f7b34ac5 Use trigger and condition type translation labels (#18413)
Co-authored-by: Bram Kragten <[email protected]>
2023-10-30 20:54:30 +01:00
renovate[bot] c0ff24bf1b Update dependency ua-parser-js to v1.0.37 (#18473)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-30 12:29:17 -04:00
Duco SebelandBram Kragten abb5aa348f Allow individual item deletion in To-do list (#18464)
Co-authored-by: Bram Kragten <[email protected]>
2023-10-30 14:21:29 +00:00
renovate[bot]andBram Kragten 37ab5cbdc3 Update dependency fuse.js to v7 (#18462)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <[email protected]>
2023-10-30 15:09:12 +01:00
Bram Kragten 42be3b331c Fix buttons (#18472) 2023-10-30 13:56:48 +01:00
Paul Bottein 71e05f79c2 Update ts-lit-plugin to 2.0.1 (#18471) 2023-10-30 13:40:07 +01:00
karwosts c5a0a5bbbf Fix statistics bar chart time axis (#18450) 2023-10-30 13:39:15 +01:00
dependabot[bot] c3d809fcf3 Bump actions/setup-node from 3.8.1 to 4.0.0 (#18468)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-30 11:18:14 +01:00
renovate[bot] cbd0c39091 Update formatjs monorepo (#18423) 2023-10-29 22:05:19 -04:00
renovate[bot] 113eb5be24 Update dependency eslint-plugin-lit to v1.10.1 (#18460) 2023-10-28 21:45:57 -04:00
renovate[bot] c497669fd3 Update dependency ts-lit-plugin to v2.0.0 (#18459) 2023-10-29 01:39:04 +00:00
renovate[bot] c32ca5885b Update dependency lit-analyzer to v2.0.1 (#18458) 2023-10-28 21:28:01 -04:00
renovate[bot] 3c792c4019 Update dependency @bundle-stats/plugin-webpack-filter to v4.7.8 (#18457) 2023-10-28 21:23:43 -04:00
renovate[bot] 9762e61ee2 Update vaadinWebComponents monorepo to v24.2.1 (#18454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-28 20:36:52 +00:00
renovate[bot] c09c39998b Update dependency vue to v2.7.15 (#18424)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-28 16:22:32 -04:00
renovate[bot] d37e29c247 Update CodeMirror (#18453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-28 16:20:45 -04:00
renovate[bot] 51f22cd74a Update dependency eslint-import-resolver-webpack to v0.13.8 (#18422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-28 16:12:52 -04:00
renovate[bot] b57dc968bd Update dependency eslint-plugin-import to v2.29.0 (#18425)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-28 16:07:23 -04:00
renovate[bot] e2e8cb785a Update typescript-eslint monorepo to v6.9.0 (#18433)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-28 16:06:02 -04:00
Bram Kragten 3d674cf237 20231027.0 (#18448) 2023-10-27 16:55:37 +02:00
Bram Kragten 9961a4ae3f Bumped version to 20231027.0 2023-10-27 16:33:32 +02:00
Bram Kragten c25755bfcd Translate todo panel title, update assist title/icon (#18442) 2023-10-27 16:33:02 +02:00
Bram Kragten 40983619d6 Reload when entering safe mode (#18443) 2023-10-27 15:48:01 +02:00
Bram Kragten 54758b5962 Don't override ranges provided by parent (#18444) 2023-10-27 15:47:47 +02:00
Bram Kragten 4f09485b20 Update todo list items when entity changes, only refresh on shopping … (#18445) 2023-10-27 15:47:37 +02:00
Paul Bottein 9207f6c407 Fix unit of measurement not displayed in entity settings (#18440) 2023-10-27 13:29:41 +02:00
Paul Bottein 1a2312460a Disable resource panel in safe mode (#18437) 2023-10-27 13:29:00 +02:00
Simon Lamon 951b88ab4c Fix change entity in dev tools state (#18441) 2023-10-27 13:27:01 +02:00
Bram Kragten d3cc57d8b4 Don't use lookbehind assertion in slugify (#18438) 2023-10-27 12:53:17 +02:00
karwosts 4e9b118728 Ensure energy card titles always displayed (#18432) 2023-10-27 10:42:01 +02:00
Paul Bottein 4e6e924a40 20231026.0 (#18431) 2023-10-26 15:57:36 +02:00
Paul Bottein f1748e4dd5 Bumped version to 20231026.0 2023-10-26 15:39:36 +02:00
Paul Bottein d491d8f5ac Quick fix for lovelace resources not loaded (#18430) 2023-10-26 15:37:31 +02:00
Bram Kragten cf0fde0f3c Change move item todo API (#18410)
* Change move item todo API

* Handle entity unavailable, add link to more info, allow to delete local todo
2023-10-26 15:37:13 +02:00
Paul Bottein a7dc2cfaa6 Reduce slider handle size (#18427) 2023-10-26 15:25:47 +02:00
Paul Bottein d8c7db6ebf Add translations to tile state content options (#18428) 2023-10-26 10:32:09 +00:00
J. Nick Koston c3743b57ea Speed up first load by preloading recorder info (#18412) 2023-10-25 19:29:44 +00:00
Steve Repsher e16a101de8 Compress service worker (#18407) 2023-10-25 17:17:11 +02:00
Paul Bottein 94ad47c60e Hide reveal icon on edge for text-field (#18408) 2023-10-25 17:15:43 +02:00
Bram Kragten 184ef7b7ff Bar media player fixes (#18402) 2023-10-25 16:04:05 +02:00
karwosts 81053f2e07 Fix an undefined exception in more-info popup for history graph (#18404) 2023-10-25 15:48:05 +02:00
Paul Bottein e8b4eeec67 Allow any number in above and below numeric condition (#18403) 2023-10-25 13:38:39 +00:00
karwosts b0b7e77e28 Fix schedule form rendering after disconnect (#18401) 2023-10-25 13:21:05 +00:00
Bram Kragten 073ead5828 20231025.1 (#18399) 2023-10-25 13:59:53 +02:00
Bram Kragten 763f80b46a Bumped version to 20231025.1 2023-10-25 13:59:11 +02:00
Bram Kragten 0c2531a7ee Update todo list card (#18396) 2023-10-25 13:57:50 +02:00
Paul Bottein 8d2ec8098c Fix state not condition for condition card (#18397) 2023-10-25 11:09:28 +00:00
Bram Kragten fdaefadd18 20231025.0 (#18395) 2023-10-25 12:17:22 +02:00
Bram Kragten d2caed2b68 Merge branch 'master' into dev 2023-10-25 11:51:01 +02:00
Jan-Philipp BeneckeandPaul Bottein 402d443843 Add mac and bluetooth address to the device info card (#18392)
Co-authored-by: Paul Bottein <[email protected]>
2023-10-25 11:47:54 +02:00
Bram Kragten 399f12194a Bumped version to 20231025.0 2023-10-25 11:47:02 +02:00
Bram Kragten a745539c33 fix height issue calendar, make default on mobile list (#18394) 2023-10-25 11:46:28 +02:00
Bram Kragten f6fddbc6ec Add create todo list button (#18387) 2023-10-25 11:38:45 +02:00
Steve Repsher 01f51f3247 Cache brand images (#17840) 2023-10-25 09:28:28 +02:00
karwosts 80112bb662 Add Fields to Script UI (#18250) 2023-10-25 09:23:15 +02:00
7ce7cbb755 Add serial number to the device info card (#18386)
Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: Franck Nijhof <[email protected]>
Co-authored-by: Franck Nijhof <[email protected]>
2023-10-25 06:32:24 +02:00
karwosts 464ecffda7 Fix a crash in trace graph generation for if/else (#18390) 2023-10-24 23:18:21 +00:00
Paul Bottein 33e0c691c7 Use expansion panel for dashboard conditions (#18380) 2023-10-25 00:45:55 +02:00
c0ffeeca7andFranck Nijhof d94f7c90c0 Restart dialog description: consistently use indicative form (#18385)
Co-authored-by: Franck Nijhof <[email protected]>
2023-10-24 23:39:23 +02:00
Raman GuptaandBram Kragten d8d16c4d5f Add Z-Wave controller hard reset device action (certification req) (#18216)
Co-authored-by: Bram Kragten <[email protected]>
2023-10-24 23:16:21 +02:00
Bram Kragten 1cb238ec2a Fixes for todo card (#18388) 2023-10-24 22:53:54 +02:00
karwostsandBram Kragten 3e6ab8b179 Chart updates to improve stability, possible fix for infinite loop (#18329)
Co-authored-by: Bram Kragten <[email protected]>
2023-10-24 20:41:34 +00:00
Bram Kragten 10bcaadcdb center icons in restart dialog 2023-10-24 21:21:02 +02:00
Bram Kragten 67517643ef Add safe mode theme and alert dialog 2023-10-24 21:08:23 +02:00
Paul Bottein eb35eb3de5 Disable dashboard resources in safe mode (#18382) 2023-10-24 20:15:11 +02:00
Paul Bottein 8350d71f6e Add restart in safe mode in restart dialog (#18375) 2023-10-24 20:09:54 +02:00
Paul Bottein c840f1cbb1 Redesign about page (#18383) 2023-10-24 20:07:12 +02:00
Bram Kragten 8efc0816bb Rename shopping-list-card to todo-list-card (#18378) 2023-10-24 20:06:03 +02:00
J. Nick Koston b12e4989db Subscribe to the issue registry as early as possible (#18384) 2023-10-24 19:34:47 +02:00
Bram Kragten 2b67731906 Add resize observer to full calendar, fix missing styles (#18381) 2023-10-24 19:33:15 +02:00
Bram Kragten ccba7a7623 Add button to create local calendar in calendar panel (#18377) 2023-10-24 19:33:03 +02:00
Bram Kragten c0dfc9f73e Performance tweaks in energy dashboard (#18379)
* Remove unneeded refresh from energy panel

* Optimize energy-period-selector
2023-10-24 18:18:29 +02:00
Bram Kragten be1624f66f Convert shopping list card editor to ha-form (#18376)
* Convert shopping list card editor to ha-form

* hide todo from generated dashboard
2023-10-24 18:14:14 +02:00
Steve Repsher 32edbd7b33 Remove js-yaml resource proxy (#18369) 2023-10-24 14:17:25 +02:00
Josh McCarty 18827db9ba Add bottom padding to code editor (#18368) 2023-10-24 12:59:14 +02:00
karwosts 191250a66a Fix complex attribute display in devtools (#18371) 2023-10-24 12:57:36 +02:00
Erik MontnemeryandBram Kragten 1fdf609606 Rename safe mode to recovery mode (#18374)
Co-authored-by: Bram Kragten <[email protected]>
2023-10-24 12:56:27 +02:00
Paul Bottein 6ffc0625d3 Add support for state content customization in tile card (#18180)
* Add support for state content customization

* Add reorder option

* Do not display null attributes

* Always return a value

* Add hide state option

* Add missing attribute unit

* Fix sortable create and destroy
2023-10-24 12:08:11 +02:00
Allen Porter c9f5d16745 Rename status code string for To-do List NEEDS-ACTION status (#18373) 2023-10-24 12:07:36 +02:00
renovate[bot] eb4afedf2e Update dependency eslint to v8.52.0 (#18370) 2023-10-23 20:46:04 -04:00
Bram Kragten 2b9540fe03 Add support for todo component (#18289) 2023-10-23 22:53:09 +02:00
renovate[bot] 53b8d1bb0a Update dependency sinon to v17 (#18346)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 15:18:23 +00:00
Simon Lamon 0ff5bffd0c Make time condition translatable (#18298) 2023-10-23 17:02:51 +02:00
Paul Bottein 82a464f50f Add translation to numeric condition card 2023-10-23 16:37:27 +02:00
Paul Bottein fdddc18291 Add numeric state condition for conditional card (#18288)
* Add numeric state condition for conditional card

* Add validate ui

* Clean entity data

* Check for numeric state
2023-10-23 14:17:23 +00:00
Bram KragtenandPaul Bottein 463a3244cf Add two pane view to calendar panel (#18286)
Co-authored-by: Paul Bottein <[email protected]>
2023-10-23 14:13:38 +00:00
karwosts 6cae11f0a6 Update statistics chart to respect entity display precision, fix precision bug in history chart (#18334) 2023-10-23 16:03:42 +02:00
renovate[bot] 65112b36ce Update dependency @material/web to v1.0.1 (#18335)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 15:53:18 +02:00
renovate[bot] 58625d2a9d Update dependency core-js to v3.33.1 (#18339)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 15:50:55 +02:00
Paul BotteinandBram Kragten 9bafbdd989 Allow multiple states in conditional card (#18273)
* Allow multiple states in conditional card

* Update src/panels/lovelace/editor/conditions/types/ha-card-condition-state.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-10-23 13:49:43 +00:00
Paul Bottein eedb42b2f3 Add user condition to conditional card (#18265)
* Add user condition to conditional card

* Refactor user fetch

* Add validate ui

* Use ha-check-list-item
2023-10-23 13:49:27 +00:00
Paul Bottein 4354ad3807 Move condition editor into its own file (#18340) 2023-10-23 15:31:49 +02:00
Paul BotteinandBram Kragten aeaf091b50 Use sensor device class for graph and precision (#18099)
Co-authored-by: Bram Kragten <[email protected]>
2023-10-23 15:01:24 +02:00
Paul BotteinandBram Kragten c6be4d6f4d Improve warning messages in conditional card (#18272)
* Improve warning messages in conditional card

* Update src/panels/lovelace/editor/conditions/ha-card-condition-editor.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-10-23 14:50:45 +02:00
Caius-Bonus c48b620e03 Fix inconsistencies in slugify between frontend and core implementation (#18297) 2023-10-23 08:37:56 +00:00
Steve Repsher 77e05decdf Remove ondemand methods for CodeMirror and SortableJS (#18336) 2023-10-23 10:29:49 +02:00
Necroneco b24e99c56c Fix oscillating handler in more info fan card (#18305) (#18306) 2023-10-23 10:26:31 +02:00
J. Nick Koston 768344c3f7 Fix double load of lovelace resources (#18332) 2023-10-23 10:05:26 +02:00
Bram Kragten 03a21d5519 Only calculate opening direction when we are opening the datepicker (#18313) 2023-10-23 09:58:20 +02:00
dependabot[bot] 1247a5c8d3 Bump home-assistant/wheels from 2023.10.4 to 2023.10.5 (#18338)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 09:54:53 +02:00
dependabot[bot] db8287df89 Bump actions/checkout from 4.1.0 to 4.1.1 (#18337)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 09:03:17 +02:00
renovate[bot] 71edbd6352 Update dependency sinon to v16.1.3 (#18325)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-22 13:05:20 -04:00
renovate[bot] 9d87a66908 Update dependency lint-staged to v15.0.2 (#18326)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-22 13:03:45 -04:00
renovate[bot]andSteve Repsher 11d62cece2 Lock file maintenance (#18284)
* Lock file maintenance

* Add resolution to keep lit at v2

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-10-22 03:34:14 +00:00
renovate[bot] f15a65f5a6 Update dependency sinon to v16.1.1 (#18322)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 22:41:15 -04:00
renovate[bot] a03d3f796b Update dependency @types/ua-parser-js to v0.7.38 (#18321) 2023-10-21 22:26:22 -04:00
renovate[bot] d0f5b0e864 Update dependency @types/tar to v6.1.7 (#18320) 2023-10-21 23:43:59 +00:00
renovate[bot] e4a67dd555 Update dependency @types/sortablejs to v1.15.4 (#18319) 2023-10-21 19:33:02 -04:00
renovate[bot] f72ab94742 Update dependency @types/qrcode to v1.5.4 (#18317)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 23:22:48 +00:00
renovate[bot] b521be6d3b Update dependency @types/serve-handler to v6.1.3 (#18318)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 19:11:27 -04:00
renovate[bot] 3fa7001be6 Update dependency @types/mocha to v10.0.3 (#18316)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 20:37:21 +00:00
renovate[bot] b45226509b Update dependency @types/js-yaml to v4.0.8 (#18309)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 20:31:43 +00:00
renovate[bot] 2a5f8097bc Update dependency @types/luxon to v3.3.3 (#18315)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 16:24:47 -04:00
renovate[bot] 0ffe0f38e1 Update dependency @types/leaflet to v1.9.7 (#18310)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 20:19:23 +00:00
renovate[bot] c48491088e Update dependency @codemirror/state to v6.3.1 (#18307)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 16:15:23 -04:00
renovate[bot] f115e4025d Update dependency @types/html-minifier-terser to v7.0.1 (#18308)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 16:06:07 -04:00
renovate[bot] 7be8a799aa Update dependency @types/leaflet-draw to v1.0.9 (#18311)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 16:04:54 -04:00
karwostsandBram Kragten d992b2d40b Fix missing range labels in date-range-picker (#18274)
Co-authored-by: Bram Kragten <[email protected]>
2023-10-21 15:40:38 +00:00
karwosts 96fbd8aefb Don't round statistic values before plotting (#18312) 2023-10-21 17:19:03 +02:00
renovate[bot] 17df761a1b Update dependency @types/esprima to v4.0.5 (#18304) 2023-10-20 23:44:38 -04:00
renovate[bot] 79b2fa96ed Update dependency @types/chromecast-caf-receiver to v6.0.11 (#18302) 2023-10-21 03:08:33 +00:00
renovate[bot] c14e3333cf Update dependency @types/chromecast-caf-sender to v1.0.7 (#18303) 2023-10-20 22:56:56 -04:00
renovate[bot] 4af0ecbaa8 Update dependency @types/babel__plugin-transform-runtime to v7.9.4 (#18301) 2023-10-20 22:50:11 -04:00
Bram Kragten ce11301516 Fix initial theming (#18296) 2023-10-20 20:44:53 +02:00
Josh McCarty 16766f8878 Wrap dict attributes (#18290) 2023-10-20 17:07:14 +02:00
renovate[bot] 5e933e8e15 Update typescript-eslint monorepo to v6.8.0 (#18292)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 23:28:11 -04:00
renovate[bot] 7eb92be84a Update formatjs monorepo (#18285)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 23:26:56 -04:00
Kendell R 60ec4d31db Fix some minor inconsistencies/duplications (#18071) 2023-10-19 17:29:05 +02:00
Steve Repsher 3526ba308f Remove unused imports from ZHA card and alias editor (#18282) 2023-10-19 17:17:27 +02:00
Steve Repsher 02a212a47d Load and set Polymer settings asynchronously (#18278) 2023-10-19 17:09:35 +02:00
Simon Vallières 49f88a98a5 Add multi-path icon support and path attributes (#18189) 2023-10-19 15:35:50 +02:00
Steve Repsher feb371839c Fix yarn lock file (#18283) 2023-10-19 01:27:57 +02:00
renovate[bot] 24c37f5293 Update dependency @rollup/plugin-replace to v5.0.4 (#18280)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 18:25:15 -04:00
renovate[bot] 8f3fea5a33 Update dependency vis-network to v9.1.8 (#18281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 18:24:28 -04:00
renovate[bot] b2bc529d7b Update dependency @rollup/plugin-commonjs to v25.0.7 (#18279)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 18:23:24 -04:00
Jonas Lang ad68782b79 Typo automation (#18266) 2023-10-18 13:42:30 +00:00
renovate[bot] f432528388 Update dependency lint-staged to v15 (#18267)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 15:29:38 +02:00
Kendell R f98c0769b0 Fix "No visual editor support for action: " (#18271) 2023-10-18 15:24:36 +02:00
Josh McCarty b2cb0d8e0f Fixes alarm dialog inputmode for code input (#18263) 2023-10-17 12:23:40 +02:00
renovate[bot] 4c7c04bdc0 Update dependency marked to v9.1.2 (#18259) 2023-10-16 21:46:43 -04:00
renovate[bot] ffb7469a7e Update dependency webpack to v5.89.0 (#18260) 2023-10-16 21:44:07 -04:00
Steve Repsher d88831b719 Enable CORS for legacy bundle loading (#18248) 2023-10-16 20:40:15 +02:00
Steve Repsher 3b2f6d71f5 Minify ha-style/Roboto and load asynchronously (#18226) 2023-10-16 20:37:50 +02:00
Simon LamonandSteve Repsher a08185a1a5 Migrate developer state tools to LitElement (#18134)
Co-authored-by: Steve Repsher <[email protected]>
2023-10-16 20:37:04 +02:00
renovate[bot] 7ee91ca8fc Update vaadinWebComponents monorepo to v24.2.0 (#18255)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-16 15:54:20 +02:00
Simon LamonandBram Kragten b6fe0cfa1b Replace internal material/web usages (#18219)
Co-authored-by: Bram Kragten <[email protected]>
2023-10-16 15:42:59 +02:00
karwosts c3a9682861 An alias editor and overflow menu for choose options (#18183) 2023-10-16 14:02:34 +02:00
Simon LamonandBram Kragten 62d21bea4f Replace polymer paper-slider (#18168)
Co-authored-by: Bram Kragten <[email protected]>
2023-10-16 13:35:13 +02:00
Steve Repsher 434b9595c0 Remove SystemJS loader from Webpack builds (#18249) 2023-10-16 12:42:46 +02:00
renovate[bot] a0f1b7f365 Update dependency @codemirror/autocomplete to v6.10.2 (#18253)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-16 12:40:37 +02:00
dependabot[bot] 628c2c39cf Bump relative-ci/agent-action from 2.1.8 to 2.1.10 (#18252)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-16 09:04:34 +02:00
Bram Kragten 4b885cbd93 Remove narrow from strategies (#18201) 2023-10-16 00:20:36 -04:00
Simon Lamon 02d9786f8c Fix lokalise translation upload (#18221)
Fix translation upload
2023-10-15 23:52:12 -04:00
renovate[bot] 88d14cd7b5 Update dependency magic-string to v0.30.5 (#18238)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-15 16:53:32 -04:00
renovate[bot] 4ea8f599cf Update dependency @codemirror/state to v6.3.0 (#18228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-15 16:52:50 -04:00
renovate[bot] 37ef444180 Update babel monorepo to v7.23.2 (#18223)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-15 01:10:47 +00:00
renovate[bot] 4253feb8a2 Update dependency marked to v9.1.1 (#18224)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-14 21:00:11 -04:00
renovate[bot] ce33cf7ff3 Update dependency @codemirror/autocomplete to v6.10.1 (#18218)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-14 20:59:07 -04:00
renovate[bot] faa4455951 Update dependency @bundle-stats/plugin-webpack-filter to v4.7.7 (#18220)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-14 15:57:36 -04:00
renovate[bot] 08d8b43f44 Update dependency @types/js-yaml to v4.0.7 (#18212) 2023-10-13 20:59:48 -04:00
Paul Bottein 15c67fe299 Improve state and name display on state-card-display (#18207) 2023-10-13 10:38:19 +02:00
renovate[bot] a10ec1f53c Update typescript-eslint monorepo to v6.7.5 (#18203)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-12 15:47:12 -04:00
Bram Kragten 1b220abf70 run on all branches 2023-10-12 19:09:33 +02:00
Till 607175706b Add date range picker to energy period selector (#14337) 2023-10-12 18:29:04 +02:00
Bram Kragten f8966a2114 Slug not needed for reactive ci (#18200) 2023-10-12 17:00:29 +02:00
G Johansson 4c94ac5dda CountrySelector (#18035) 2023-10-12 16:47:28 +02:00
Bram Kragten 6d1e923b83 Voice assistant dev: fix wake word continue (#18181)
Start wake word when continue when wake word was used the previous run
2023-10-12 16:10:14 +02:00
Bram Kragten 2c743b7b56 Update relative-ci.yaml (#18197) 2023-10-12 15:26:33 +02:00
tzagim 6686da1f24 Fix for RTL languages - Profile panel + weather forecast card (#18191) 2023-10-12 14:27:01 +02:00
renovate[bot] 6bdeb45f6b Update vaadinWebComponents monorepo to v24.1.11 (#18195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-12 14:25:06 +02:00
Simon Lamon 9f05a9679b Fix RelativeCI input issues (#18196) 2023-10-12 14:17:13 +02:00
Simon Lamon 51a6376991 Fix RelativeCI format issues (#18194) 2023-10-12 12:35:11 +02:00
Simon Lamon c5056eb4d2 Allow Multiple Entities for Numeric State Trigger (#18064) 2023-10-12 09:37:19 +02:00
Steve Repsher 79f3759756 Create webpack bundle stats for Relative CI (#18178) 2023-10-12 09:28:34 +02:00
renovate[bot] 6c3b748279 Update dependency @rollup/plugin-node-resolve to v15.2.3 (#18193) 2023-10-11 16:52:28 -04:00
Bram Kragten 4293192e74 Use progress button when adding/updating mount (#18182) 2023-10-11 13:22:56 +02:00
Bram Kragten ceaceaf47b Move select clearing to ha-select (#18190) 2023-10-11 13:22:17 +02:00
PieroandBram Kragten 479a625662 Update url on tab reorder (#18169)
Co-authored-by: Bram Kragten <[email protected]>
2023-10-11 12:49:08 +02:00
fustom 095d171a61 Tile card current temperature for climate entity (#18143) 2023-10-11 09:01:34 +02:00
renovate[bot] 8c3a7de6d9 Update dependency @mdi/js to v7.3.67 (#18185)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-10 23:42:48 -04:00
renovate[bot] 84e743c4c0 Update dependency @mdi/svg to v7.3.67 (#18186)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-10 23:26:46 -04:00
Paul Bottein 51f8d91ddf Fix user name in config page (#18187) 2023-10-10 23:25:21 -04:00
Kendell R 8f1a6ef1b1 Improve password show/hide buttons (#18176) 2023-10-10 13:26:54 +00:00
Kendell R b3f1783269 Say "log in" instead of "login" on the authorize page (#18175) 2023-10-10 12:47:31 +02:00
renovate[bot] 7e630d0fc5 Update dependency eslint to v8.51.0 (#18172) 2023-10-09 21:38:05 -04:00
renovate[bot] a4533251a1 Update dependency vis-network to v9.1.7 (#18167)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 15:32:45 -04:00
renovate[bot] 659db109aa Update CodeMirror (#18166)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 15:31:34 -04:00
Kendell R d3fd27910a Separate outline color (#18109) 2023-10-09 18:29:25 +02:00
Simon Lamon eae3c1309f Localize durations using Intl.NumberFormat (#18067) 2023-10-09 18:28:08 +02:00
Thomas Konrad 4a5b67e320 Add 'max devices' config to Energy Devices Graph (#17553) 2023-10-09 17:27:22 +02:00
Paul Bottein 86c014b677 Add screen condition to conditional card. (#18041) 2023-10-09 15:06:58 +02:00
karwosts 5a6d6dc7d3 Fix period selector in statistic card (#18131) 2023-10-09 14:41:27 +02:00
Steve Repsher 294df396f4 Remove test language from production (really) (#18137) 2023-10-09 14:40:06 +02:00
renovate[bot]andSteve Repsher cc01e8d6a8 Update dependency core-js to v3.33.0 (#18119)
* Update dependency core-js to v3.33.0

* Update babel setting

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-10-09 12:38:31 +00:00
Michael a3532a41da Add before offset to sun condition description (#18152) 2023-10-09 14:36:16 +02:00
karwosts ae35fd1eb8 Fix handling of negative zero in number selectors (#17127) 2023-10-09 14:34:16 +02:00
Simon Lamon 63095f1501 Replace paper-items in Scene Editor (#18101) 2023-10-09 14:29:58 +02:00
Steve Repsher bf9e2cd404 Move polyfill time zone data out of bundles (#18142) 2023-10-09 14:28:16 +02:00
Bram Kragten 5b7ef941e4 Make it possible to clear an optional select (#18047) 2023-10-09 14:24:18 +02:00
ildar170975 352e721d0c Update state-badge.ts: change border-radius for media_player (#18066) 2023-10-09 14:11:29 +02:00
ildar170975 220b4794c5 Update developer-tools-state.js: fix alignment for ha-tips (#17608) 2023-10-09 13:59:09 +02:00
karwosts 811ebde42a Add per-set theme coloring to remainder of energy dashboard (#17826) 2023-10-09 13:55:21 +02:00
ildar170975 bfeee618f4 more-info: make long states "multilined" (#17649)
* align info when a state is multiline

* Enable multiline for long states

* Update state-info.ts

* Update state-card-display.ts
2023-10-09 13:52:03 +02:00
karwosts db9b16e9f5 Change help link in statistics pickers in energy dashboard (#18138) 2023-10-09 13:47:46 +02:00
Philip AllgaierandBram Kragten 7861d813b1 Add translations for voice assistant debug page (#17843)
* Add translations for voice assistant debug page

* Apply suggestions from code review

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-10-09 11:46:59 +00:00
breakthestatic d7760c4b7a Expose history replace in action editor (#17740)
* Expose existing navigation history replace to the UI

* Remove navigation_replace from GUI editor

* Restore default value
2023-10-09 12:02:30 +02:00
dependabot[bot] a60a721ea5 Bump home-assistant/wheels from 2023.10.1 to 2023.10.4 (#18162)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-09 08:40:14 +02:00
renovate[bot] 36219e1cb4 Update dependency marked to v9.1.0 (#18148)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 13:33:17 -04:00
renovate[bot] 7fdbc9dd32 Update dependency sinon to v16.1.0 (#18158)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 13:31:05 -04:00
renovate[bot] 334be93254 Update dependency @rollup/plugin-commonjs to v25.0.5 (#18154)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 17:28:14 +00:00
renovate[bot] c14a6d59e2 Update dependency @rollup/plugin-replace to v5.0.3 (#18157)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 13:19:25 -04:00
renovate[bot] 7a8139b650 Update dependency @rollup/plugin-json to v6.0.1 (#18155)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 17:16:16 +00:00
renovate[bot] 9d2a443217 Update dependency @rollup/plugin-babel to v6.0.4 (#18153)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 13:07:16 -04:00
renovate[bot] 484b166233 Update dependency @rollup/plugin-node-resolve to v15.2.2 (#18156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 13:04:52 -04:00
renovate[bot] 530208cb6a Update Yarn to v3.6.4 (#18139)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-07 00:01:49 -04:00
renovate[bot] b534ff8ca3 Update dependency @codemirror/view to v6.21.2 (#18132) 2023-10-05 20:17:36 -04:00
renovate[bot] 02bd50c434 Update typescript-eslint monorepo to v6.7.4 (#18128) 2023-10-05 20:14:53 -04:00
9a84ce7b81 20231005.0 (#18126)
* Update dependency @material/web to v1.0.0 (#18070)

* Update dependency @material/web to v1.0.0

* Fix icon button size

* Remove unused ios override

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Paul Bottein <[email protected]>

* Update dependency magic-string to v0.30.4 (#18089)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Bump postcss from 8.4.30 to 8.4.31 (#18110)

Bumps [postcss](https://github.com/postcss/postcss) from 8.4.30 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.30...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update CodeMirror (#18096)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update vaadinWebComponents monorepo to v24.1.10 (#18092)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Make the "icon next/prev" series load faster (#18087)

* Preserve ancillary fields in a repeat action when modifying the form (#18068)

* Do not clear alias when editing automation action, condition or trigger (#18114)

* Use restart dialog confirmation for quick command (#18113)

* Add translations for restore backup dialogs (#18112)

Co-authored-by: c0ffeeca7 <[email protected]>

* Hide tooltip after clicking on a chart to display more info (cosmetic change) (#18103)

* fix setting wake word to first option everytime (#18121)

* Fix class field for ha-icon-next/prev (#18118)

* Set border-radius to 0 for img in thread panel (#18124)

* Load Intl locale data in parallel (#18120)

* Load Intl locale data in parallel

* Switch to check result.ok

* Update dependency @codemirror/view to v6.21.1 (#18125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Bumped version to 20231005.0

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kendell R <[email protected]>
Co-authored-by: karwosts <[email protected]>
Co-authored-by: c0ffeeca7 <[email protected]>
Co-authored-by: K3A <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: Steve Repsher <[email protected]>
2023-10-05 18:29:15 +02:00
Paul Bottein 6e00be6684 Bumped version to 20231005.0 2023-10-05 18:28:19 +02:00
renovate[bot] 91ec43b9bc Update dependency @codemirror/view to v6.21.1 (#18125)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-05 18:19:22 +02:00
Steve Repsher 4a4d9a08d5 Load Intl locale data in parallel (#18120)
* Load Intl locale data in parallel

* Switch to check result.ok
2023-10-05 10:26:15 -04:00
Paul Bottein 0c32d1eb4e Set border-radius to 0 for img in thread panel (#18124) 2023-10-05 15:48:18 +02:00
Steve Repsher f43171f91c Fix class field for ha-icon-next/prev (#18118) 2023-10-05 12:52:31 +00:00
Bram Kragten 48593eee0d fix setting wake word to first option everytime (#18121) 2023-10-05 11:30:05 +02:00
K3A c106a0ac85 Hide tooltip after clicking on a chart to display more info (cosmetic change) (#18103) 2023-10-05 11:28:07 +02:00
Paul Botteinandc0ffeeca7 e1a71fbfaa Add translations for restore backup dialogs (#18112)
Co-authored-by: c0ffeeca7 <[email protected]>
2023-10-05 11:26:50 +02:00
Paul Bottein 0489d8922e Use restart dialog confirmation for quick command (#18113) 2023-10-05 11:24:43 +02:00
Paul Bottein d7f1e9d091 Do not clear alias when editing automation action, condition or trigger (#18114) 2023-10-05 11:23:44 +02:00
karwosts 32bc8bd01d Preserve ancillary fields in a repeat action when modifying the form (#18068) 2023-10-04 14:36:58 +02:00
Kendell R 242b018ece Make the "icon next/prev" series load faster (#18087) 2023-10-04 13:59:51 +02:00
renovate[bot] c25447d001 Update vaadinWebComponents monorepo to v24.1.10 (#18092)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-04 13:57:42 +02:00
renovate[bot] d2d718475f Update CodeMirror (#18096)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-04 13:56:13 +02:00
dependabot[bot] 8e1e42cd50 Bump postcss from 8.4.30 to 8.4.31 (#18110)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.30 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.30...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-04 03:29:36 +00:00
renovate[bot] 014f9b8b73 Update dependency magic-string to v0.30.4 (#18089)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-03 23:15:36 -04:00
renovate[bot]andPaul Bottein 774c7e275c Update dependency @material/web to v1.0.0 (#18070)
* Update dependency @material/web to v1.0.0

* Fix icon button size

* Remove unused ios override

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Paul Bottein <[email protected]>
2023-10-03 09:48:27 +00:00
Bram Kragten 75c43d15e1 20231002.0 (#18102) 2023-10-02 21:43:12 +02:00
Bram Kragten e288b003d8 Bumped version to 20231002.0 2023-10-02 21:41:37 +02:00
yousaf465andkarwosts 4aa8518ed6 Change Urdu language to RTL (#18063)
Co-authored-by: karwosts <[email protected]>
2023-10-02 21:26:07 +02:00
Bram Kragten 6acbf6395c Ignore prettier styling for tooltip of disk life time (#18097) 2023-10-02 21:23:13 +02:00
Bram Kragten 2030feabf7 Only set wakeword when not in new wakewords (#18095) 2023-10-02 21:23:02 +02:00
Bram Kragten 46d1dbcb47 Dont continue debug assist run when disconnected (#18098) 2023-10-02 21:22:50 +02:00
Bram Kragten 2f6297ec17 Always deduplicate found integrations in onboarding (#18091)
always deduplicate found integrations in onboarding
2023-10-02 14:30:28 +02:00
Paul Bottein a3400a2f9c Prevent ha-form data lost if quick data updates (#18094) 2023-10-02 11:44:43 +02:00
Kendell R c345f41416 Factor out style data to reduce bundle size (#18077) 2023-10-02 11:18:44 +02:00
Kendell R 292cdc7621 Fix clicking on radio buttons (and improve code) (#18078) 2023-10-02 10:58:10 +02:00
dependabot[bot] c5ba74e0b4 Bump home-assistant/wheels from 2023.09.1 to 2023.10.1 (#18088)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 08:54:53 +02:00
renovate[bot] 41b24de559 Update dependency chai to v4.3.10 (#18082) 2023-10-01 20:24:14 -04:00
renovate[bot] 4fe7b18161 Update dependency chai to v4.3.9 (#18074)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-30 16:17:27 -04:00
renovate[bot] 399a979c33 Update dependency glob to v10.3.10 (#18072)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-30 16:16:20 -04:00
renovate[bot] 03c5482860 Update dependency @types/mocha to v10.0.2 (#18075)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-30 16:15:30 -04:00
Franck Nijhof a116a50604 Hide shopping list from discovered onboarding integrations (#18069) 2023-09-29 22:39:57 +02:00
renovate[bot] 0dfa292c40 Update dependency glob to v10.3.9 (#18060)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-29 13:30:08 -04:00
Bram Kragten 5914a6c1a4 Clear wake word when new engine is picked, select first wake word. by… (#18058)
* Clear wake word when new engine is picked, select first wake word. by default

* Update assist-pipeline-detail-wakeword.ts
2023-09-29 12:38:11 +02:00
Bram Kragten 8daff17d6a Change linear-progress bar background color for dark mode (#18059) 2023-09-29 10:33:26 +02:00
renovate[bot] 59bd852e7a Update dependency @octokit/rest to v20.0.2 (#18053)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 22:51:10 -04:00
renovate[bot] 246fe2861e Update dependency eslint-plugin-wc to v2.0.4 (#18050)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 14:18:22 -04:00
renovate[bot] dbf623ada2 Update typescript-eslint monorepo to v6.7.3 (#18051)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 14:17:33 -04:00
renovate[bot] c848356a6d Update dependency @types/sortablejs to v1.15.3 (#18049)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 14:16:08 -04:00
Paul Bottein 47022d3a04 20230928.0 (#18052) 2023-09-28 20:15:04 +02:00
Paul Bottein d732bd4776 Bumped version to 20230928.0 2023-09-28 20:12:59 +02:00
Raman Gupta 5a5265723c Handle breaking changes as result of zwave_js lib upgrade (#18009)
* Handle breaking changes as result of zwave_js lib upgrade

* fix capitalization
2023-09-28 20:00:21 +02:00
Bram Kragten 30c6e4e35e Link to docs when no wake word engines (#18046) 2023-09-28 19:34:31 +02:00
renovate[bot] c5f909d89f Update dependency @types/serve-handler to v6.1.2 (#18048)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 13:19:14 -04:00
Simon Lamon 13a691606f Migrate developer events tools to LitElement (#17869) 2023-09-28 14:58:16 +00:00
Simon Lamon 44748df3ac Make numeric_state trigger and condition translatable (#18017) 2023-09-28 14:39:57 +02:00
dependabot[bot] 4f3dc82fd9 Bump get-func-name from 2.0.0 to 2.0.2 (#18043)
Bumps [get-func-name](https://github.com/chaijs/get-func-name) from 2.0.0 to 2.0.2.
- [Release notes](https://github.com/chaijs/get-func-name/releases)
- [Commits](https://github.com/chaijs/get-func-name/commits/v2.0.2)

---
updated-dependencies:
- dependency-name: get-func-name
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-27 23:26:34 -04:00
Paul Bottein b2e260d6ba Use initial color param for favorite color dialog (#18039)
* Use initial color param for favorite color dialog

* Select right mode if light is off
2023-09-27 16:26:16 +02:00
imgbot[bot]andImgBotApp 7111a21173 [ImgBot] Optimize images (#18038)
Co-authored-by: ImgBotApp <[email protected]>
2023-09-27 14:31:05 +02:00
karwosts ad51d313a1 Debug option to enable logging server calls (#17956) 2023-09-27 14:26:25 +02:00
Bram Kragten 60345f3fe8 20230926.0 (#18037) 2023-09-26 23:56:14 +02:00
Bram Kragten 956723cf15 Bumped version to 20230926.0 2023-09-26 23:51:50 +02:00
K3A dd6a69ea03 State History Charts - Handle click to chart to open More Info for the clicked entity (#18036) 2023-09-26 21:19:11 +00:00
Bram Kragten 98bd08c9dd Update layout of hardware info (#18034) 2023-09-26 23:09:14 +02:00
karwosts 6b31c07459 Add an image fit mode to hui-image and picture-entity-card (#17959) 2023-09-26 23:08:56 +02:00
renovate[bot] c3b41afb68 Update dependency @types/esprima to v4.0.4 (#18031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 23:07:07 +02:00
renovate[bot] 46d8f2eefb Update dependency @lokalise/node-api to v12 (#18029)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 23:05:51 +02:00
karwosts 0ffc7b59d6 Prevent creating views with duplicate URL (#17871) 2023-09-26 22:54:27 +02:00
karwosts 74be4ae20a Enable reorder mode for choose options (#17422) 2023-09-26 22:52:20 +02:00
karwosts 5455ce2e0f Display an error message when disabling the button in devtools/service (#17519) 2023-09-26 22:49:57 +02:00
karwosts 01405d96b6 Fix too wide energy chart bars (#17787) 2023-09-26 22:49:04 +02:00
renovate[bot] 965f893a65 Update dependency @octokit/auth-oauth-device to v6.0.1 (#18033)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 22:44:02 +02:00
Simon Lamon 0b6813d9dc Update Add and Edit area dialog (#17711) 2023-09-26 22:41:02 +02:00
Paul Bottein cbd424ff5a Fix aria label auth page (#18032) 2023-09-26 22:39:25 +02:00
Bram Kragten b899e39a9e Fix markdown card template handling (#17851) 2023-09-26 22:37:27 +02:00
karwosts 49a66961e2 Fix adjust statistic dialog after a period of sensor unavailability (#17934)
* Fix adjust statistic dialog after a period of sensor unavailability

* Remove fetching an unnecessary datapoint
2023-09-26 22:00:39 +02:00
karwosts c69fb77b62 Fix choose description when a non-list form of conditions is used (#18023) 2023-09-26 21:54:40 +02:00
Bram Kragten d794ec3408 Update assist-pipeline-detail-wakeword.ts 2023-09-26 21:27:27 +02:00
Paul Bottein d8c98d8f96 Move auth components from shadow DOM to light DOM (#18015) 2023-09-26 20:17:03 +02:00
karwosts acb32ae5c8 Allow saving the light current color as a favorite (#17992) 2023-09-26 18:59:59 +02:00
Bram Kragten c567a61dd7 Add wake word to assist pipeline settings (#18019)
* Add wake word to assist pipeline settings

* Update assist-pipeline-detail-wakeword.ts

* Add icon for wake word domain

* format state

* implement `wake_word/info` command
2023-09-26 12:17:45 -04:00
Bram Kragten 2a8d98307e Fix chart not able to setup because canvas in use (#18018)
* Fix chart not able to setup because canvas in use

* Update ha-chart-base.ts
2023-09-26 17:58:02 +02:00
Bram Kragten 5aaf0cd579 Update logo (#17964) 2023-09-26 15:33:40 +02:00
renovate[bot] f38e4dcf54 Update dependency @octokit/plugin-retry to v6.0.1 (#18026)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 12:54:40 +00:00
Steve Repsher 1df1ce5423 Stop notifications for errors writing to system log (#18022) 2023-09-26 14:43:27 +02:00
Paul Bottein a68381a4d9 Clear quick bar items with closing the quick bar dialog (#18025) 2023-09-26 14:27:27 +02:00
renovate[bot] f7604b136e Update dependency eslint to v8.50.0 (#18021)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 18:35:42 -04:00
karwosts 362d950515 Ensure computeStateName returns a string type (#17928) 2023-09-25 18:11:02 +02:00
Bram Kragten 22f9dbd65d Add wake word to assist pipeline debug (#17897) 2023-09-25 17:51:12 +02:00
karwosts 579050bfc7 Add new config options for map entity markers (#17938) 2023-09-25 17:26:53 +02:00
Joost LekkerkerkerandBram Kragten 6b33b4e656 Add label to location selector (#17402)
Co-authored-by: Bram Kragten <[email protected]>
2023-09-25 13:38:47 +00:00
renovate[bot]andBram Kragten dac7c0f5fd Lock file maintenance (#17960)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <[email protected]>
2023-09-25 12:43:17 +00:00
renovate[bot] aaceff0d23 Update dependency marked to v9 (#17914)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 14:13:27 +02:00
48e5cc6b63 Update dependency eslint-plugin-lit-a11y to v4 (#17143)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
Co-authored-by: Paul Bottein <[email protected]>
2023-09-25 14:11:42 +02:00
renovate[bot] 799a0933ba Update dependency chart.js to v4.4.0 (#17736)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 14:11:18 +02:00
dependabot[bot] 940618f72d Bump home-assistant/wheels from 2023.04.0 to 2023.09.1 (#18011)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 14:10:42 +02:00
renovate[bot] d8ff69b65d Update fullcalendar monorepo to v6.1.9 (#18007)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 14:08:54 +02:00
Steve Repsher 391aca6388 Improve core script and default to upgrade (#17915) 2023-09-25 14:08:30 +02:00
Simon Lamon 071d078e84 Make some triggers translatable (#17692) 2023-09-25 14:07:31 +02:00
renovate[bot] 61982bcb77 Update CodeMirror (#17996)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 13:23:51 +02:00
Bram Kragten 1c79fcc244 Fix translations onboarding integration (#17980) 2023-09-25 12:58:54 +02:00
dependabot[bot] f3513e3e52 Bump actions/checkout from 4.0.0 to 4.1.0 (#18010)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 11:20:50 +02:00
renovate[bot] b3b10fa2ef Update dependency eslint-plugin-wc to v2.0.3 (#17999)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-24 16:48:26 -04:00
renovate[bot] 0ffabcc055 Update dependency glob to v10.3.5 (#18000)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-24 16:44:03 -04:00
renovate[bot] 9da8499004 Update dependency eslint-plugin-wc to v2 (#17966)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-23 00:50:32 -04:00
renovate[bot] 04d1fccb87 Update formatjs monorepo (#17975)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-23 00:27:33 -04:00
renovate[bot] fdf1eb5170 Update dependency @lokalise/node-api to v11.1.0 (#17995)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-23 00:24:25 -04:00
renovate[bot] 4e2877b035 Update vaadinWebComponents monorepo to v24.1.9 (#17976) 2023-09-22 00:45:15 +00:00
renovate[bot] 467059f515 Update dependency cropperjs to v1.6.1 (#17968) 2023-09-21 20:38:02 -04:00
renovate[bot] e6db63bb63 Update typescript-eslint monorepo to v6.7.2 (#17982) 2023-09-21 20:33:43 -04:00
Paul Bottein 78ddec2c8c Small fixes for tile features (#17983)
* Add missing translations

* Remove unused import
2023-09-21 21:33:32 +02:00
Paul Bottein 9217d5bf40 Refactor strategy foundation (#17921) 2023-09-21 20:22:52 +02:00
Paul Bottein 90d01e4b63 Add style and preset modes options to climate preset tile feature (#17977) 2023-09-21 18:41:09 +02:00
Joost Lekkerkerker e7960bf8c0 Make pull request template more in line with core (#17441) 2023-09-21 17:23:31 +02:00
Thomas AldrianandPaul Bottein bf12eaa1b3 Add climate preset tile feature (#17946)
* Add climate preset tile feature

* Minor fixes

* Formatting fixes

* Update src/panels/lovelace/create-element/create-tile-feature-element.ts

* Update src/panels/lovelace/editor/config-elements/hui-tile-card-features-editor.ts

---------

Co-authored-by: Paul Bottein <[email protected]>
2023-09-21 12:27:41 +02:00
Bram Kragten 6179c75182 don't round update entity images (#17972) 2023-09-20 20:39:54 +02:00
Paul Bottein 4b5c7021ff Add select option tile feature (#17971) 2023-09-20 12:43:21 +02:00
Paul Bottein 3349031cbd Simplify data table template (#17825)
* Simplify data table template

* Fix backup and gallery
2023-09-20 12:09:44 +02:00
renovate[bot] 5e107d43d7 Update babel monorepo to v7.22.20 (#17965)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-19 14:36:07 -04:00
Steve Repsher e46f2cd9bf Adjust password manager polyfill for form injections (#17830) 2023-09-19 14:51:38 +02:00
Steve Repsher 713ebfcc22 Enable shipped proposals in Babel (#17909) 2023-09-19 13:56:55 +02:00
renovate[bot] 46e4eafe95 Update dependency @types/babel__plugin-transform-runtime to v7.9.3 (#17957) 2023-09-19 07:45:50 -04:00
renovate[bot] e6fd18e23b Update dependency @types/js-yaml to v4.0.6 (#17958) 2023-09-19 07:43:55 -04:00
renovate[bot] 71cd71dfd5 Update formatjs monorepo (#17890)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-18 12:50:43 -04:00
renovate[bot] 1019ccfd26 Update dependency @lrnwebcomponents/simple-tooltip to v7.0.18 (#17905)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-18 12:41:29 -04:00
renovate[bot] 577c1d8522 Update dependency @lit-labs/context to v0.4.1 (#17935)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-18 12:35:46 -04:00
renovate[bot] 63f0b469cc Update dependency vis-data to v7.1.7 (#17939) 2023-09-18 12:25:23 -04:00
renovate[bot] e688417863 Update dependency @babel/core to v7.22.19 (#17948) 2023-09-18 08:27:41 -04:00
renovate[bot] a19633e2d4 Update CodeMirror (#17944) 2023-09-18 08:21:31 -04:00
renovate[bot] 8797142cca Update dependency sinon to v16 (#17940) 2023-09-18 08:15:40 -04:00
Madelena MakandFranck Nijhof 2a7403b6fd Added new logo design guidelines (#17951)
Co-authored-by: Franck Nijhof <[email protected]>
2023-09-17 22:29:53 +02:00
renovate[bot] 22efe14149 Update dependency @types/tar to v6.1.6 (#17931)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-15 18:57:25 -04:00
renovate[bot] 7cce24bcd1 Update typescript-eslint monorepo to v6.7.0 (#17923) 2023-09-14 20:25:46 -04:00
renovate[bot] b8f0bb66cd Update dependency @codemirror/view to v6.18.1 (#17922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-14 13:11:12 -04:00
renovate[bot] b950f990b4 Update dependency @material/web to v1.0.0-pre.17 (#17882)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 10:11:13 +02:00
renovate[bot] b511e7a37d Update vaadinWebComponents monorepo to v24.1.7 (#17894) 2023-09-12 20:38:23 -04:00
renovate[bot] 50f4b78f2e Update dependency ua-parser-js to v1.0.36 (#17912)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-12 11:45:17 -04:00
renovate[bot] 7b0b4cdfe4 Update dependency @codemirror/view to v6.18.0 (#17865) 2023-09-11 20:59:49 -04:00
renovate[bot] c60e5c4c61 Update dependency eslint to v8.49.0 (#17904) 2023-09-11 20:41:20 -04:00
karwosts 709a63e6da Fix schedule helper form when resizing or dragging to or past midnight (#17900) 2023-09-11 22:54:45 +02:00
dependabot[bot] f689eed073 Bump actions/checkout from 3.6.0 to 4.0.0 (#17891)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0 to 4.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.6.0...v4.0.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 15:22:18 -04:00
renovate[bot] cd55eee2fc Update dependency @babel/core to v7.22.17 (#17899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 15:19:05 -04:00
Bram Kragten 40bb6566b8 20230911.0 (#17901) 2023-09-11 18:30:42 +02:00
dependabot[bot] cf27e68748 Bump actions/cache from 3.3.1 to 3.3.2 (#17892)
Bumps [actions/cache](https://github.com/actions/cache) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.3.1...v3.3.2)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 12:24:36 -04:00
Bram Kragten 472ed2fe82 Bumped version to 20230911.0 2023-09-11 18:19:34 +02:00
Paul Bottein d0a60984ed Allow user to theme all cover states in tile card and more info. (#17898) 2023-09-11 18:18:39 +02:00
Bram Kragten 24d401061c Show error when set state fails (#17850) 2023-09-11 18:13:36 +02:00
Bram Kragten 2352d05573 Ignore errors during logging (#17893) 2023-09-11 13:24:08 +02:00
renovate[bot] 87d53e38c4 Update dependency tar to v6.2.0 (#17861)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 19:21:53 -04:00
renovate[bot] db3c535884 Update dependency core-js to v3.32.2 (#17887)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 19:18:23 -04:00
renovate[bot] 158b24f902 Update dependency luxon to v3.4.3 (#17872)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 19:16:40 -04:00
Joakim Sørensen 19c4ed4690 Show alternative names in certificate dialog (#17839) 2023-09-08 19:55:27 +02:00
Bram Kragten eae4ca1271 if select has multiple, make init value an array (#17868)
if multiple, make it an array
2023-09-08 19:46:40 +02:00
Bram Kragten db272e3e18 20230908.0 (#17866) 2023-09-08 15:56:12 +02:00
Bram Kragten 0276430ab5 Bumped version to 20230908.0 2023-09-08 15:55:22 +02:00
karwosts db7caf1c32 Fix default formatEntityState function (#17852) 2023-09-08 15:54:54 +02:00
karwosts 7176a51fec update hasChanged for formatEntityState, fix glance card shouldUpdate (#17854) 2023-09-08 15:54:11 +02:00
Bram Kragten 4a6539d75b Clear template result when template changes (#17849) 2023-09-07 20:48:57 -04:00
renovate[bot] 850699ea70 Update dependency @types/chromecast-caf-sender to v1.0.6 (#17857) 2023-09-08 00:01:27 +00:00
renovate[bot] c17cc22f88 Update typescript-eslint monorepo to v6.6.0 (#17858) 2023-09-07 19:59:46 -04:00
renovate[bot] 9e3f2d5cb7 Update babel monorepo to v7.22.15 (#17853) 2023-09-07 19:56:59 -04:00
renovate[bot] 0677c9c7b0 Update dependency @types/chromecast-caf-receiver to v6.0.10 (#17856) 2023-09-07 19:47:22 -04:00
Bram Kragten af7e385884 Fix tooltip graph overflow (#17848) 2023-09-07 19:12:35 +02:00
Bram Kragten 35496ead23 20230906.1 (#17838) 2023-09-06 13:47:02 +02:00
Bram Kragten ba88fef09b Bumped version to 20230906.1 2023-09-06 13:41:40 +02:00
Paul Bottein ad0e59c8f4 Fix no listener margin in flow preview template (#17837) 2023-09-06 13:41:16 +02:00
Bram Kragten 14e6f5e8ca Subscribe to config entries in helper config (#17835) 2023-09-06 13:39:20 +02:00
Bram Kragten 41403a5d35 20230906.0 (#17834) 2023-09-06 09:54:26 +02:00
Bram Kragten 3c48157793 Use report errors instead of strict for template subscription (#17824) 2023-09-06 09:53:54 +02:00
Bram Kragten 3a07af6ad2 Bumped version to 20230906.0 2023-09-06 09:42:29 +02:00
Bram Kragten c1c05f8d22 Add listeners to template helper preview (#17833) 2023-09-06 09:37:38 +02:00
Bram Kragten 29aed5371c Move translation fetching to gulp action (#17827) 2023-09-06 00:28:26 +02:00
Bram Kragten 76c878df57 Report Unhandled promise rejection as debug for now (#17831) 2023-09-05 16:39:40 -04:00
Bram Kragten 8acf557137 20230905.0 (#17828) 2023-09-05 18:11:08 +02:00
Bram Kragten d6e7ebe71d Bumped version to 20230905.0 2023-09-05 18:07:59 +02:00
Erik Montnemery 085b26d5ea Simplify entity sources (#17770) 2023-09-05 14:45:22 +02:00
Bram Kragten 32472ca627 Add weather forecast options to more info (#17823) 2023-09-05 13:29:56 +02:00
Bram Kragten c3c4bb4421 Fix initial value of select selector (#17822) 2023-09-05 13:29:47 +02:00
Paul BotteinandBram Kragten f7f1a0c32d Add better localize keys typings for config pages (#17815)
Co-authored-by: Bram Kragten <[email protected]>
2023-09-05 11:39:03 +02:00
Bram Kragten d4872b177f Start improve restore backup in onboarding (#17813) 2023-09-04 20:08:33 +02:00
Simon Lamon 5bb8c51d25 Guard against empty application credential domain (#17786) 2023-09-04 19:21:56 +02:00
Bram Kragten 4e62370d18 20230904.0 (#17819) 2023-09-04 19:18:58 +02:00
Bram Kragten 77c08fd00f Bumped version to 20230904.0 2023-09-04 19:18:08 +02:00
Bram Kragten d8894a0078 Don't report errors while not connected (#17818) 2023-09-04 19:16:11 +02:00
renovate[bot] 4fd9c63633 Update dependency hls.js to v1.4.12 (#17817)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-04 15:31:48 +00:00
Paul Bottein 5e1583f925 Add keyboard support to onboarding links (#17816) 2023-09-04 17:20:51 +02:00
renovate[bot] 5d5894cae6 Update dependency @babel/preset-env to v7.22.14 (#17791)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-04 14:59:44 +02:00
renovate[bot] 5417513f49 Update dependency hls.js to v1.4.11 (#17809)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-04 14:59:07 +02:00
renovate[bot] 546ba8f12f Update dependency @codemirror/view to v6.17.1 (#17760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-04 14:58:32 +02:00
Bram Kragten a398b37380 Fix combobox selecting wrong item on iOS (#17812) 2023-09-04 12:39:22 +02:00
Kendell R 321f35f30e Fix hide disabled entities button (#17806)
fix hide disabled entities button
2023-09-04 11:49:05 +02:00
renovate[bot] 82dfb06a04 Update dependency @lit-labs/virtualizer to v2.0.7 (#17794)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-03 16:27:39 -04:00
c0ffeeca7 e666aac1bd Fix typo (#17803) 2023-09-03 11:34:54 -04:00
renovate[bot] 9e9a0e377e Update dependency glob to v10.3.4 (#17802) 2023-09-03 11:19:50 -04:00
renovate[bot] ba3f9a318b Update dependency @types/qrcode to v1.5.2 (#17799) 2023-09-03 11:14:41 -04:00
renovate[bot] f3b4eefb72 Update dependency @types/luxon to v3.3.2 (#17798) 2023-09-03 15:02:08 +00:00
renovate[bot] 6ac1db6953 Update dependency @types/ua-parser-js to v0.7.37 (#17800) 2023-09-03 10:54:11 -04:00
renovate[bot] 1b42189dd6 Update dependency @types/leaflet-draw to v1.0.8 (#17797) 2023-09-03 10:51:01 -04:00
renovate[bot] 0d893b3d2b Update dependency del to v7.1.0 (#17792) 2023-09-02 18:29:33 -04:00
renovate[bot] 7b167a4d7e Update dependency @types/leaflet to v1.9.4 (#17795) 2023-09-02 18:26:28 -04:00
renovate[bot] 8e2f1026e7 Update dependency prettier to v3.0.3 (#17776)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-01 14:22:35 -04:00
Paul Bottein fe3a63af80 Sort data using locale in data tables (#17781)
* Sort data using locale in data tables

* Only use string compare is both values are string
2023-09-01 17:33:41 +02:00
Bram Kragten f90ab60354 20230901.0 (#17782) 2023-09-01 17:02:38 +02:00
Bram Kragten 5da4e1860a Rename CO2 signal -> Electricity Map 2023-09-01 17:02:14 +02:00
Bram Kragten 6dcb7f2273 Hide google translate in onboarding 2023-09-01 16:53:14 +02:00
Bram Kragten 53ae7e5a0c Bumped version to 20230901.0 2023-09-01 16:42:30 +02:00
Bram Kragten 56381f9914 Show helper config entries without entities (#17780) 2023-09-01 14:38:56 +00:00
Paul Bottein be31aecf00 Use right supported features for tilt position in editor (#17779) 2023-09-01 15:54:35 +02:00
Paul Bottein cc5fffc174 Use state icon for helpers (#17777) 2023-09-01 15:54:19 +02:00
Bram Kragten dd8a50af31 Add state color to preview row (#17778) 2023-09-01 15:45:32 +02:00
Paul Bottein c8feded4f2 Use format entity state helpers everywhere (#17757) 2023-09-01 15:26:46 +02:00
Paul Bottein 0d0fe75f4e Use slider for color temp instead of wheel (#17771) 2023-09-01 15:25:27 +02:00
Paul Bottein fb69deb617 Fix target range temperature in tile feature (#17772) 2023-09-01 15:24:36 +02:00
Paul Bottein c291af5d97 Improve disabled state for select and number button control (#17773) 2023-09-01 15:19:28 +02:00
Paul Bottein 6d63028406 Move tile card features logic into its own file (#17775) 2023-09-01 15:18:47 +02:00
karwosts 3917739ad2 Fix chart tooltip crash for disabled entity (#17767) 2023-09-01 11:36:43 +02:00
renovate[bot] e98e59a265 Update typescript-eslint monorepo to v6.5.0 (#17762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-31 19:40:36 -04:00
renovate[bot] 16ed60902d Update dependency @types/sortablejs to v1.15.2 (#17761)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-31 19:35:19 -04:00
Paul Bottein 6c7efc17c2 Fix more info type test (#17758) 2023-08-31 22:37:25 +02:00
Bram Kragten d187aa0ac6 20230831.0 (#17756) 2023-08-31 14:38:24 +02:00
Bram Kragten 9c60a047c1 Bumped version to 20230831.0 2023-08-31 14:33:00 +02:00
Bram Kragten 1825749036 Get forecasts from large to small (#17755) 2023-08-31 14:32:30 +02:00
Bram Kragten 93846a2867 Fix unit and currency, always select first result of search (#17753)
* Fix unit and currency, always select first result of search

* Update onboarding-location.ts
2023-08-31 14:23:33 +02:00
Bram Kragten f3ed0160af Fix tooltip error for climate charts (#17752) 2023-08-31 14:22:39 +02:00
Bram Kragten 38b275f7f9 Dont resize chart-timeline (#17751) 2023-08-31 14:21:35 +02:00
Bram Kragten c3a36efaa4 Fix device energy graphs (#17754) 2023-08-31 14:20:57 +02:00
Paul Bottein 68fa67e77a Use entity translation for away mode (#17750)
* Use entity translation for away mode

* Remove keys
2023-08-31 14:19:40 +02:00
Paul Bottein 806cebb024 Fix more info translation keys (#17749) 2023-08-31 11:06:29 +00:00
Paul Bottein fa788a8223 Use heat or cool slider mode for auto if there is only one mode (#17748) 2023-08-31 13:00:58 +02:00
Paul Bottein dfbaee1649 Fix margin between buttons row and attributes in more info (#17738) 2023-08-31 11:02:04 +02:00
karwosts cfb698d0a6 Fix more info weather forecast (#17747) 2023-08-31 09:42:57 +02:00
Simon Lamon 63c3d6406d Remove Polymer app layout (#17739)
* Remove legacy app layout

* Remove left over ha-app-layout import
2023-08-30 12:24:31 -04:00
Raman Gupta d817e92a57 Remove node status from zwave_js device info card (#17732) 2023-08-30 15:52:11 +02:00
Bram Kragten 96597b3963 20230830.0 (#17737) 2023-08-30 15:48:10 +02:00
Bram Kragten 40c7bc08d9 Merge branch 'master' into dev 2023-08-30 15:29:55 +02:00
Bram Kragten b8cd1760f7 Bumped version to 20230830.0 2023-08-30 15:27:57 +02:00
Bram Kragten 24dd45c8cd Bump ChartJS to version 4 (#15531) 2023-08-30 15:27:24 +02:00
Simon Lamon e06bd41b5e Migrate mailbox to LitElement (#17690)
* migrate mailbox to lit

* Make some methods private

* Clean up
2023-08-30 15:21:20 +02:00
Bram Kragten c0793fad83 Listen to change event on string form too for autofill (#17733)
* Listen to change event on string form too for autofill

* Update ha-password-manager-polyfill.ts
2023-08-30 14:58:38 +02:00
karwostsandBram Kragten e002c5d96c Allow theme colors for individual sets in energy-usage-graph-card (#17527)
Co-authored-by: Bram Kragten <[email protected]>
2023-08-30 13:38:38 +02:00
karwosts 099e317d17 Fix zone dialog rendering wider than the window (#17642) 2023-08-30 13:37:50 +02:00
dependabot[bot] ca1a183512 Bump actions/checkout from 3.5.3 to 3.6.0 (#17723)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-30 13:31:09 +02:00
renovate[bot] c1cacf735e Update dependency eslint to v8.48.0 (#17726)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-30 13:30:23 +02:00
renovate[bot] 515cfdb6d1 Update dependency cropperjs to v1.6.0 (#17728)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-30 13:29:56 +02:00
renovate[bot] 3a6cffd6c1 Update CodeMirror (#17730)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-30 13:29:02 +02:00
renovate[bot] c84a826937 Update dependency marked to v7.0.5 (#17731)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-30 13:28:35 +02:00
Bram KragtenandPaul Bottein c485e8d03e Update onboarding (#17734)
Co-authored-by: Paul Bottein <[email protected]>
2023-08-30 13:24:25 +02:00
Bram Kragten 2ab67328d4 Update upload element (#17654) 2023-08-30 13:24:11 +02:00
Bram Kragten d350c35c4e Add preview for template (#17699) 2023-08-30 12:56:53 +02:00
karwosts 034ce56da5 Updates to alarm panel card configuration (#17598)
* Updates to alarm panel card configuration

* changes from feedback
2023-08-30 11:42:51 +02:00
karwostsandPaul Bottein ae9fcebfd5 Add sortable options to input_select settings menu (#17706)
* Sortable options in input_select settings menu

* fix lint

* no ripple, default cursor

* Update src/panels/config/helpers/forms/ha-input_select-form.ts

Co-authored-by: Paul Bottein <[email protected]>

* sortableStyles

* Use ha-list-item and mwc-list

---------

Co-authored-by: Paul Bottein <[email protected]>
2023-08-30 07:59:06 +00:00
renovate[bot] 6197b55da8 Update dependency luxon to v3.4.2 (#17710)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-30 09:54:39 +02:00
Bram Kragten 4e5d57b5f3 Ask user to logout all devices when changing password (#17523)
* Ask user to logout all devices when changing password

* missing import

* use core command
2023-08-29 17:09:17 +02:00
Paul Bottein 7040c6d469 Add target temperature tile feature for climate and water heater (#17697) 2023-08-29 16:36:07 +02:00
Paul Bottein 6f99a39b55 Adapt more info button layout depending of number of items and screen (#17691) 2023-08-29 15:13:08 +02:00
Paul Bottein 7483833dcd Use active color for position cover tile feature even if it's closed (#17685) 2023-08-29 15:11:30 +02:00
Sam Reed 38fb48b231 Add trailing full stop to visit_addon_page message (#17719) 2023-08-29 14:38:15 +02:00
karwosts 166acee1c6 Fix language picker in profile displaying wrong language (#17725)
* fix language picker when changing language sort order #16642

* alternative fix
2023-08-29 09:45:54 +02:00
renovate[bot] 916a6df39b Update vaadinWebComponents monorepo to v24.1.6 (#17724)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-28 18:03:02 +02:00
renovate[bot] 70f37158fb Update dependency @material/web to v1.0.0-pre.16 (#17703)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-28 18:01:28 +02:00
renovate[bot]andSteve Repsher 5011bba20e Update dependency typescript to v5.2.2 (#17720)
* Update dependency typescript to v5.2.2

* Remove expect error for URL.canParse

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-08-27 17:43:49 +00:00
renovate[bot] 8897bc703d Update babel monorepo to v7.22.11 (#17717)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-27 13:15:40 -04:00
renovate[bot] ea6e7d441a Update dependency chai to v4.3.8 (#17718)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-27 13:10:52 -04:00
renovate[bot] f91396c986 Update Yarn to v3.6.3 (#17715)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-27 13:09:28 -04:00
renovate[bot] 4598b530af Update dependency @lit-labs/virtualizer to v2.0.6 (#17702)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-26 13:14:25 -04:00
renovate[bot] dfabb4bc36 Update dependency @rollup/plugin-node-resolve to v15.2.1 (#17704) 2023-08-25 21:18:32 -04:00
Bram Kragten 66e0100c95 Fix combobox picking first item with label on blur (#17701) 2023-08-24 16:22:26 -04:00
renovate[bot] a08a989ef5 Update dependency lint-staged to v14.0.1 (#17694)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 15:18:37 -04:00
renovate[bot] 000c28abf9 Update dependency magic-string to v0.30.3 (#17695)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 15:16:40 -04:00
renovate[bot] 6b67397c83 Update typescript-eslint monorepo to v6.4.1 (#17700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 15:15:50 -04:00
karwosts f68823a09e Add for_each to repeat action UI. Convert repeat to ha-form (#17688)
* Add for_each to repeat action UI. Convert repeat to ha-form

* reordermode as a selector option

* css styling
2023-08-24 18:13:10 +02:00
Bram Kragten fc1782e676 Use 1 element for all group previews (#17693) 2023-08-24 10:14:30 +00:00
Simon Lamon b4975344a1 Don't show a battery if the entity domain is Number (#17631) 2023-08-24 11:56:03 +02:00
Joakim Sørensen 2dc08d782f Hide STT and TTS entities from generated dashboard (#17689) 2023-08-24 08:59:41 +02:00
Erik Montnemery ed92958735 Add preview support to binary sensor group (#17682) 2023-08-23 14:52:45 +02:00
Paul Bottein 5ce31f3177 Adapt circular slider style for climate, water_heater and humidifier (#17677)
* Add more rendering mode for circular slider

* Improve transitions
2023-08-23 14:35:54 +02:00
Bram Kragten 370ec9cd98 Revert "Simplify onboarding integrations page (#17671)" (#17683) 2023-08-23 14:28:34 +02:00
Bram Kragten 52c12b5659 Simplify onboarding integrations page (#17671) 2023-08-23 10:52:44 +02:00
renovate[bot] 3de4cfbc00 Update dependency marked to v7.0.4 (#17680)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-23 10:14:39 +02:00
renovate[bot] 4215854414 Update dependency eslint-import-resolver-webpack to v0.13.7 (#17675)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-23 10:14:12 +02:00
Simon Lamon 88eba92f57 Migrate ha-service-call-button to LitElement (#17666) 2023-08-22 19:49:30 +02:00
Matthias Alphart f773c968f9 Clear input element value of ha-file-upload (#17663) 2023-08-22 17:21:06 +02:00
Simon Lamon bbb6fccaec Clean system health subscription after data is collected (#17665) 2023-08-22 17:20:13 +02:00
karwosts aa2b2b0d16 Typo: lates -> latest (#17673) 2023-08-22 17:14:10 +02:00
Simon Lamon 5cc06ebf0b Migrate gallery pages to LitElement (#17667) 2023-08-22 17:10:26 +02:00
Paul Bottein 85977e505b Add cover tilt position to tile card (#17619)
Add cover tilt to tile card
2023-08-22 16:55:12 +02:00
Bram Kragten 3249a5225f Keep user signed in during onboarding (#17669) 2023-08-22 15:26:46 +02:00
Paul Bottein 7e7205627a Update return home and dock icon (#17672)
Update return home and docker icon
2023-08-22 15:24:30 +02:00
Paul Bottein d33430e53f Reduce ha-icon-button-group height (#17664) 2023-08-22 11:09:18 +02:00
Bram Kragten e3f53e90e2 Fix not showing multi day events on mobile (#17660) 2023-08-22 11:07:46 +02:00
Bram Kragten 811edfcc0f Add support for previews in data flows (#17533) 2023-08-22 10:30:31 +02:00
renovate[bot] 2483249b5f Update dependency eslint-plugin-import to v2.28.1 (#17661)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 18:57:19 -04:00
Bram Kragten 3534617f81 Fix initial data for select selector without labels (#17659) 2023-08-21 21:46:08 +02:00
renovate[bot] 216a3c4c7e Update dependency core-js to v3.32.1 (#17658)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 20:08:43 +02:00
Paul Bottein 567bd9831f Reduce control select menu component size (#17657) 2023-08-21 16:15:29 +02:00
Bram Kragten 98d1a55d35 fix tabindex for glance card (#17656) 2023-08-21 16:15:08 +02:00
karwosts 92358b4859 Don't show pointer for glance entity when there is no action (#17625) 2023-08-21 15:51:33 +02:00
Paul Bottein eca3ec7f98 Tile feature lawn mower (#17655)
* Add lawn mower commands to tile card

* Rename state to action button
2023-08-21 15:49:33 +02:00
Simon Lamon bfcdbbd70b Form fields should not init in the error state (#17615) 2023-08-21 15:49:27 +02:00
karwosts e764076b1a Fix blueprint editor behavior for number and text with defaults (#17646) 2023-08-21 15:48:10 +02:00
Virenbar 693c77ce1c Fix AND condition description (#17630) 2023-08-21 13:41:26 +00:00
Simon Lamon a725b6c9de Clear entityId before duplicate script (#17624) 2023-08-21 15:27:54 +02:00
ildar170975 014bbf12ce Update ha-config-person.ts: fix misaligned text (#17637) 2023-08-21 15:12:58 +02:00
ildar170975 07dceb8e6d Update ha-sidebar.ts: fix notification badge clipped (#17638) 2023-08-21 15:12:13 +02:00
karwosts 53f18bec53 Respect sensor precision setting when rendering line chart tooltips (#17648) 2023-08-21 15:04:23 +02:00
renovate[bot] ac3e858738 Update dependency eslint-plugin-lit to v1.9.1 (#17556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 13:46:07 +02:00
c76b2fb357 Fix reselecting forecast type in weather forecast card editor (#17652)
Co-authored-by: Simon Lamon <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2023-08-21 11:22:01 +00:00
Paul Bottein 5f015ac9af Add basic more info for lawn mower (#17601)
* Add basic more info for lawn mower

* Change buttons layout
2023-08-21 13:17:11 +02:00
renovate[bot] ac7c354bfc Update dependency @lrnwebcomponents/simple-tooltip to v7.0.16 (#17651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 13:12:02 +02:00
Paul Bottein dddee87de3 Use gradient based on min/max color temp for tile card feature (#17612) 2023-08-21 13:03:20 +02:00
Paul Bottein e8bd77a84e Add water heater more info to gallery (#17621) 2023-08-21 13:02:36 +02:00
Steve Repsher 46a036ddbe Improve frontend error messages written to system log (#17616) 2023-08-21 13:01:42 +02:00
Steve Repsher bf912f7bd3 Add missing super calls to disconnectedCallback (#17641) 2023-08-21 12:57:38 +02:00
Michael Arthur 196c15ff3e 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
2023-08-21 12:19:15 +02:00
dependabot[bot] d0a6e727f2 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>
2023-08-21 10:58:07 +02:00
renovate[bot] 09697148cf Update Yarn to v3.6.2 (#17647)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-20 21:46:00 -04:00
Franck Nijhof 76093d898d Fix template selector usage in config flows (#17643) 2023-08-20 12:45:39 -04:00
renovate[bot]andSteve Repsher 00c69c0fc3 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 <[email protected]>
2023-08-20 02:11:09 +00:00
renovate[bot] 93dd119ce5 Update dependency @rollup/plugin-node-resolve to v15.2.0 (#17640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-20 02:10:29 +00:00
renovate[bot]andSteve Repsher e4f3211e9f 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 <[email protected]>
2023-08-19 20:41:39 +00:00
renovate[bot] c6ecdc9d5d Lock file maintenance (#17627)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-19 16:06:31 -04:00
renovate[bot] 6bdd2d234d Update dependency @codemirror/language to v6.9.0 (#17632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-19 15:39:44 -04:00
renovate[bot] 9d169bcbeb Update dependency systemjs to v6.14.2 (#17629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-19 15:36:45 -04:00
renovate[bot] 5c06ec1084 Update dependency eslint-import-resolver-webpack to v0.13.6 (#17628)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-19 15:35:05 -04:00
RoboMagus 38a317b7e7 Fix ha-tabs chevrons bug (#17620) 2023-08-18 13:01:13 +00:00
Bram Kragten 593b176ab8 Bump version to 20230802.1 2023-08-18 11:18:24 +02:00
karwosts 1a15c8da8c Fix default precision display in entity settings (#17491) 2023-08-18 11:15:18 +02:00
Bram Kragten 060e67397a Prevent voice settings to override entity registry settings dialog (#17485) 2023-08-18 11:14:42 +02:00
Bram Kragten d6de29ca8a Change logic to determine if forecast is hourly (#17486) 2023-08-18 11:14:15 +02:00
Bram Kragten 220767b347 Use service translations in logbook (#17461) 2023-08-18 11:13:57 +02:00
karwosts 79e1fbe076 Fix device config dialog when disabled (#17464) 2023-08-18 11:13:38 +02:00
renovate[bot] cd19894ab0 Update dependency @lit-labs/context to v0.4.0 (#17613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-18 11:11:25 +02:00
TomaszandPaul Bottein 705b6aeb4b 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 <[email protected]>
2023-08-18 08:40:41 +00:00
Paul Bottein 6e27fbe10f Add unit when formatting attribute for display (#17607) 2023-08-18 10:28:27 +02:00
renovate[bot] bbb99a6eee Update typescript-eslint monorepo to v6.4.0 (#17611)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 17:53:39 -04:00
renovate[bot] 8411efc1c3 Update dependency marked to v7.0.3 (#17539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 16:09:16 +00:00
Bram Kragten 88721df637 Bump marked (#17609) 2023-08-17 15:56:31 +00:00
renovate[bot] 265faddfa9 Update dependency @lit-labs/virtualizer to v2.0.5 (#17499)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 15:51:59 +00:00
PaoloTKandPaul Bottein 6584dc70b7 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 <[email protected]>
2023-08-17 17:45:42 +02:00
renovate[bot] d6b4dbe6a2 Update dependency @lit-labs/motion to v1.0.4 (#17498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 15:37:03 +00:00
ildar170975 d579f93aa7 Update developer-tools-state.js: widen "Set state" controls (#17500) 2023-08-17 15:30:18 +00:00
renovate[bot] b91261a789 Update dependency @lrnwebcomponents/simple-tooltip to v7.0.15 (#17324)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 17:27:22 +02:00
renovate[bot] 872128d9a8 Update dependency luxon to v3.4.0 (#17559)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 17:26:30 +02:00
renovate[bot] 4972db4648 Update dependency lint-staged to v14 (#17604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 17:26:03 +02:00
Paul Bottein 821cd7fe05 Add operation modes to tile card (#17597) 2023-08-17 17:19:46 +02:00
Paul Bottein 8c24ffa710 Add water heater state colors to gallery (#17606) 2023-08-17 15:51:49 +02:00
karwosts d50a130345 Add show_name to state label badge (#17603) 2023-08-17 08:56:51 +02:00
renovate[bot] ee8997fbd2 Update dependency lint-staged to v13.3.0 (#17602) 2023-08-16 17:01:00 -04:00
Bram Kragten 613cf932b5 Delay showing connection message (#17595) 2023-08-16 12:56:44 +00:00
Paul Bottein 12b61aea2f Add hvac modes to tile card (#17592) 2023-08-16 14:56:24 +02:00
Bram Kragten 51d9271c83 Change wording and icon for default thread router (#17593) 2023-08-16 14:25:29 +02:00
Paul Bottein bd5264308f Sync selected icon with selected value in new select component (#17573) 2023-08-16 12:47:35 +02:00
Bram Kragten 2c17d2fead Allow to set default router for thread network (#17584)
* Allow to set default router for thread network

* Update thread-config-panel.ts
2023-08-16 11:52:42 +02:00
Bram Kragten 9f0b9782a0 Round altitude from GPS result (#17591) 2023-08-16 11:49:53 +02:00
Steve Repsher 88ff4c2fa8 Fix synchronous loading for ES5 build (#17174) 2023-08-15 19:48:51 +02:00
Steve Repsher cba246fc7f Fix source URLs in source maps (#17585) 2023-08-15 15:10:12 +00:00
Bruce Fitzsimons f4d575f456 Improve grammar for single periodic second/minute/hour (#17572) 2023-08-15 14:20:35 +02:00
karwosts 6dff2f691e Hide alert toggle when idle in more-info (#17563) 2023-08-15 14:18:35 +02:00
Simon Lamon 917b7bd1dd Fix the mailbox (#17582) 2023-08-15 14:04:23 +02:00
karwosts 54a9f4592c Fix sort/filter on statistics issues (#17545) 2023-08-15 14:03:50 +02:00
Paul Bottein baba02f563 Improve disabled state in more info (#17570) 2023-08-15 13:50:44 +02:00
Erik Montnemery f6087f3805 Adjust to otbr info including extended address (#17581) 2023-08-15 07:51:13 +00:00
Erik Montnemery 4979e89251 Update some thread related types (#17574) 2023-08-15 07:45:44 +00:00
renovate[bot] b1c826326b Update vaadinWebComponents monorepo to v24.1.5 (#17569) 2023-08-14 22:11:04 -04:00
renovate[bot] 961e8bc149 Update dependency @rollup/plugin-commonjs to v25.0.4 (#17577) 2023-08-14 22:07:33 -04:00
renovate[bot] 3b3a37dc81 Update dependency eslint to v8.47.0 (#17576) 2023-08-14 20:11:09 -04:00
Bram Kragten c98cdb91e2 Fix cleanup of logbook when switching entities (#17575) 2023-08-14 18:10:22 +02:00
renovate[bot] 255137992b Update dependency @material/web to v1.0.0-pre.15 (#17567)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-14 15:57:07 +02:00
Raman Gupta b8fcb9272a Update zwave_js config parameters page (#17529) 2023-08-14 09:59:51 +02:00
karwosts fa3625985c Show statistics bands when charting min/max only (#17549) 2023-08-14 09:52:38 +02:00
Simon Lamon 3f05712c18 Make some conditions translatable (#17234) 2023-08-14 09:48:53 +02:00
Simon Lamon 67441a63b4 Replace paper-items from ha-config-area-page (#17550) 2023-08-14 09:44:13 +02:00
karwosts c561df70dd Fix multiline select text in zwave info (#17564) 2023-08-14 09:39:25 +02:00
Paul Bottein aa85b87e11 Update water heater more info (#17544) 2023-08-14 09:31:06 +02:00
Paul Bottein 25b4d91d72 Use new select component for effect for more info light (#17542) 2023-08-14 09:29:58 +02:00
Paul Bottein 134d1978f8 Use new select component for direction for more info fan (#17540) 2023-08-14 09:29:04 +02:00
Paul Bottein 43ac8f9a27 Update Material web to 1.0.0-pre.14 (#17543) 2023-08-14 09:26:52 +02:00
renovate[bot] bfad8a07c5 Update dependency eslint-import-resolver-webpack to v0.13.4 (#17520)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-11 12:27:37 -04:00
renovate[bot] d5cc5bd6c2 Update babel monorepo to v7.22.10 (#17546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-10 16:06:26 -04:00
renovate[bot] 2af3a68f94 Update typescript-eslint monorepo to v6.3.0 (#17547)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-10 16:02:35 -04:00
renovate[bot] 14c84c3d75 Update tsparticles to v2.12.0 (#17510)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-10 16:00:45 +02:00
Paul Bottein 4992007f13 Drop aux heat from more info climate (#17541) 2023-08-10 14:12:07 +02:00
karwosts 9e31b2bb29 Filter duplicate entries in energy solar/battery/gas/water/devices (#17538) 2023-08-10 10:59:07 +02:00
Paul Bottein 5dee92b214 Redesign mode buttons for fan more-info (#17537) 2023-08-10 09:59:06 +02:00
Paul Bottein ebee8f670e Add format state/attribute to hass (#17249) 2023-08-10 09:57:56 +02:00
Paul Bottein 023f13cd12 Redesign mode buttons for climate more-info (#17535) 2023-08-10 09:57:03 +02:00
karwosts 416661f3d1 Filter energy grid sources to not allow duplicates (#17381) 2023-08-09 16:18:57 +02:00
Paul Bottein a2b1be754f Redesign mode buttons for humidifier more-info (#17530) 2023-08-09 14:35:59 +02:00
Paul Bottein ade430f326 Update target humidity control for climate more info (#17531) 2023-08-09 14:35:00 +02:00
renovate[bot] 782e41dcda Update dependency eslint-config-prettier to v9 (#17528)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-09 00:28:16 -04:00
Bram Kragten ac20cf292a Auth: Make it clearer where you are logging in to (#17459) 2023-08-08 14:43:55 +02:00
Paul BotteinandBram Kragten 4986b013a2 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 <[email protected]>

* Use climate translation

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-08-08 11:07:46 +00:00
Paul BotteinandBram Kragten 89e96e4681 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 <[email protected]>

* Update src/panels/lovelace/cards/hui-thermostat-card.ts

Co-authored-by: Bram Kragten <[email protected]>

* Update src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-08-08 12:50:21 +02:00
85733655c2 Localize developer-tools/assist (#17489)
Co-authored-by: Joost Lekkerkerker <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2023-08-08 12:11:02 +02:00
G Johansson 7a446ba2ad Prefer modern weather forecast over legacy (#17518)
weather entity select modern types
2023-08-08 08:27:11 +02:00
renovate[bot] e40bdd5d91 Update dependency @codemirror/search to v6.5.1 (#17514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 12:29:08 -04:00
karwosts accc8bc644 Disable ?edit=1 for non-admin users (#17493) 2023-08-07 12:01:46 +02:00
karwosts 4884108123 Fix default precision display in entity settings (#17491) 2023-08-07 12:01:04 +02:00
karwosts 827a57499b Fix unit label for static grid energy price (#17508) 2023-08-07 12:00:04 +02:00
Steve Repsher 945c8e0320 Minify and compress Intl locale data (#17506) 2023-08-07 11:59:02 +02:00
Steve Repsher edcdc865c4 Remove test language from production (#17507) 2023-08-07 11:54:40 +02:00
karwosts c2123a0a90 Dismiss configuration check result on leaving page (#17466) 2023-08-07 11:53:31 +02:00
Paul Bottein e9e31d51ec Update circular slider design (#17490) 2023-08-07 11:00:43 +02:00
renovate[bot] 2bbce135bb Update dependency lit to v2.8.0 (#17501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 00:08:17 -04:00
renovate[bot] 27e93d63fe Update dependency @braintree/sanitize-url to v6.0.4 (#17509) 2023-08-06 18:23:44 -04:00
renovate[bot] 068708578e Update dependency prettier to v3.0.1 (#17504)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-06 11:28:31 -04:00
renovate[bot] 8da7eef88d Update dependency eslint-config-prettier to v8.10.0 (#17505)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-06 11:26:25 -04:00
renovate[bot] e3da4d7c39 Update dependency @braintree/sanitize-url to v6.0.3 (#17492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-05 13:49:01 -04:00
renovate[bot] ccfa5c782d Update dependency @codemirror/view to v6.16.0 (#17477) 2023-08-04 11:56:47 -04:00
Steve RepsherandPaul Bottein 716e68fc5e 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 <[email protected]>
2023-08-04 09:16:37 -04:00
Bram Kragten 0d630aa5f5 Prevent voice settings to override entity registry settings dialog (#17485) 2023-08-04 15:09:20 +02:00
Bram Kragten 7b6d9106d4 Change logic to determine if forecast is hourly (#17486) 2023-08-04 15:06:41 +02:00
Paul Bottein 7dbae75e50 Remove hot reload for gallery (#17484) 2023-08-04 09:45:32 +00:00
Bram Kragten 40141923b6 Use service translations in logbook (#17461) 2023-08-04 11:11:54 +02:00
renovate[bot]andSteve Repsher 725c8685fd 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 <[email protected]>
2023-08-04 03:54:58 +00:00
renovate[bot] e01dda4379 Update dependency instant-mocha to v1.5.2 (#17480)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-04 03:21:13 +00:00
renovate[bot] 052ffbb1d6 Update dependency magic-string to v0.30.2 (#17434)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-03 23:09:44 -04:00
renovate[bot] bfb439c776 Update dependency tsparticles-engine to v2.11.1 (#17424)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-03 23:08:34 -04:00
renovate[bot] 2fdd1464f8 Update typescript-eslint monorepo to v6.2.1 (#17476)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-03 23:05:44 -04:00
Paul Bottein b4e2f4b0f5 Allow to sort options in select selector (#17468) 2023-08-03 21:49:31 +02:00
c0ffeeca7 a8debb8daa Strings: apply sentence-style capitalization (#17469) 2023-08-03 11:32:01 +02:00
karwosts a81050182e Fix device config dialog when disabled (#17464) 2023-08-03 09:58:06 +02:00
c0ffeeca7 f49e103f17 Onboarding strings: fix capitalization (#17467) 2023-08-03 09:57:17 +02:00
Bram Kragten 7d80eb06b0 20230802.0 (#17457) 2023-08-02 14:12:28 +02:00
karwosts 6653a8f634 Fix some minor issues with cost display in energy sources table (#17452) 2023-08-02 13:55:51 +02:00
karwosts bde93c44bd Fix statistic-picker filter behavior (#17453) 2023-08-02 13:53:05 +02:00
Bram Kragten 788e48a5a6 Bumped version to 20230802.0 2023-08-02 13:52:27 +02:00
Bram Kragten 0f56e8f985 Update ha-panel-shopping-list.ts 2023-08-02 13:52:03 +02:00
Bram Kragten 5f95968c8f Make event entity row show time as relative by default, hide in gener… (#17456) 2023-08-02 13:48:48 +02:00
Simon Lamon e8aa08b717 Replace paper-input elements in supervisor network dialog (#17387) 2023-08-02 10:39:51 +02:00
Bram Kragten a181189a49 20230801.0 (#17450) 2023-08-01 11:16:30 +02:00
Bram Kragten f792e708a3 Bumped version to 20230801.0 2023-08-01 11:12:56 +02:00
Bram Kragten 41643b20e7 Change event logbook message (#17449) 2023-08-01 10:44:15 +02:00
Joost Lekkerkerker ece676e3dc Make required asterisk consistent (#17403) 2023-08-01 09:41:34 +02:00
karwosts 85c3d8ecd8 Add missing states in media_player state picker (#17418) 2023-08-01 09:41:00 +02:00
karwosts 3c62f5597a Display choose option alias if configured (#17429) 2023-08-01 09:39:32 +02:00
renovate[bot] 76388114aa Update dependency eslint to v8.46.0 (#17443) 2023-07-31 20:08:49 -04:00
Bram Kragten 3e60d2e850 Don't show wrong info in logbook (#17439) 2023-07-31 20:25:57 +02:00
Bram Kragten 2a9ef7d91f Align event state display (#17442) 2023-07-31 18:27:35 +02:00
Bram Kragten 4612099e88 Fix weather more info date display (#17440) 2023-07-31 17:54:39 +02:00
renovate[bot] f953ec6e1c Update dependency eslint-plugin-import to v2.28.0 (#17437)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-31 09:34:48 -04:00
Joost LekkerkerkerandBram Kragten a5cd350d25 Fix unknown event type bug (#17426)
* Fix unknown event type bug

* Update src/data/logbook.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-07-31 13:31:39 +02:00
Bram Kragten 0ee231ee85 Fix demo (#17438)
* Fix demo

Fix energy and notification in demo

* Update config_entries.ts
2023-07-31 06:16:46 -04:00
renovate[bot] b154607552 Update dependency eslint-config-prettier to v8.9.0 (#17432) 2023-07-30 10:47:55 -04:00
renovate[bot] d3ba19b0e0 Update typescript-eslint monorepo to v6.2.0 (#17419) 2023-07-27 21:20:44 -04:00
Franck Nijhof 626b51112f 20230725.0 (#17407) 2023-07-25 18:02:12 +02:00
Franck Nijhof de4d517918 Bumped version to 20230725.0 2023-07-25 17:35:49 +02:00
renovate[bot] 89b5a082e5 Update CodeMirror (#17376)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-24 11:54:57 -04:00
Franck Nijhof 5ed767804c Complete service translation support in service dev tools (#17399) 2023-07-24 17:43:31 +02:00
Franck Nijhof 17c9e91092 Adjust default icon of event entity (#17401) 2023-07-24 17:43:20 +02:00
renovate[bot] 02f01aba0e Update vaadinWebComponents monorepo to v24.1.4 (#17397) 2023-07-24 10:35:43 -04:00
Franck Nijhof 4fd5dfd6ae Add My support for companion app settings (#17398) 2023-07-24 15:57:13 +02:00
renovate[bot] 2c7e17ce89 Update dependency @types/luxon to v3.3.1 (#17396) 2023-07-24 01:17:23 -04:00
Miguel Camba d6e279e8f4 Add device_class PH, including default icon (#17385) 2023-07-23 18:50:40 +02:00
Steve Repsher e21f951368 Enable cache in CI and locally for ESLint and Prettier (#17384) 2023-07-22 19:52:57 +02:00
renovate[bot] c7cf49de05 Update dependency hls.js to v1.4.10 (#17383)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-21 23:25:23 -04:00
ec58862f3e Implement forecast types for Weather (#15028)
* Implement forecast types

* editor

* Fix twice_daily

* All cards

* Review comments

* hasforecast

* card-editor

* forecast default

* Review comments

* fix entity row

* Remove legacy option

* Check if selected forecast is supported when picking entity

* Always show weather_to_show selector

* comments

* Update types.ts

* Hourly before twice-daily

* Expose forecast via WS instead of as state attributes

* Unsubscribe on disconnect

* lint

* prettier

* Fix _forecastSupported

* Improve conditions for subscribing to forecast updates

* Teach weather entity row and more info to subscribe

* Fix subscribing

* Deduplicate code in getForecast

* Simplify

* Tweak subscribe logic

* Address review comments

---------

Co-authored-by: Erik <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2023-07-21 17:30:59 +02:00
Franck Nijhof 0eebc9095c Add event entity (#17332) 2023-07-21 12:18:32 +02:00
karwosts 3189ef0701 Fix dialog-edit-view yaml editor (#17374) 2023-07-21 08:51:41 +02:00
karwosts 308d4b0a62 Fix Options flow missing submit button & finish button. (#17361)
* Fix missing submit button in options flow

* Fix missing header and finish button at end of options flow

* load config translations for options flow

* one more revert
2023-07-20 21:02:08 -04:00
renovate[bot] 795831d4cf Update typescript-eslint monorepo to v6.1.0 (#17370) 2023-07-20 20:47:12 -04:00
renovate[bot] 406f868642 Update dependency webpack to v5.88.2 (#17372) 2023-07-20 20:36:44 -04:00
karwosts a1748260d3 Always show translated labels for ha-form-multi_select (#17360) 2023-07-20 16:15:59 +02:00
karwosts 09e26c8fd7 Missing translation in data-table (#17356) 2023-07-20 16:15:19 +02:00
karwosts 11fa9d1ed8 Fix guiMode toggle bugs in element-editor (#17282) 2023-07-20 16:14:32 +02:00
renovate[bot] 38ea25cf5a Lock file maintenance (#17357)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 23:10:47 -04:00
Franck Nijhof 3ce0fc0a2a Add My support for Assist dev tools (#17342) 2023-07-19 17:45:38 -04:00
karwosts e6a3bd4b8c Add a missing translation (#17351) 2023-07-19 18:11:20 +02:00
renovate[bot] f8fcf304d4 Lock file maintenance (#17344)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 13:35:47 +02:00
renovate[bot] efc442da5b Lock file maintenance (#17341)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 13:08:09 +02:00
Erik Montnemery 8171b02b75 Allow changing channel from the thread configuration panel (#17285) 2023-07-19 10:48:43 +02:00
renovate[bot] 88259c8de0 Update dependency @rollup/plugin-commonjs to v25.0.3 (#17337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-18 13:42:30 -04:00
Paul Bottein 61ab08519f Use device battery entity for vacuum more info (#17328) 2023-07-18 17:21:03 +02:00
Paul Bottein 1250eac11b Use ha-outlined icon button in lock more info (#17339) 2023-07-18 17:18:05 +02:00
Will Adler d323db8479 Update self-sufficiency card title and tooltip (#17241) 2023-07-18 17:17:31 +02:00
Steve Repsher c71fd055a4 Expand use of prettier to all tracked files (#17311) 2023-07-18 17:16:33 +02:00
renovate[bot] 493f1d1b50 Update dependency @material/web to v1.0.0-pre.13 (#17303)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-18 16:45:10 +02:00
Paul Bottein 38b68bffa6 Hide no theme option when required (#17338) 2023-07-18 16:08:04 +02:00
puddly 11b2cf9e22 Use the user-provided name when sorting devices (#17297) 2023-07-18 15:23:39 +02:00
Paul Bottein 4a044fc40e Improve default theme wording (#17336)
* Improve default theme wording

* Remove home assistant translation
2023-07-18 13:22:20 +00:00
Paul Bottein 000288aecb Change button to plus and minus to inc/dec position (#17194) 2023-07-18 15:01:00 +02:00
d56273ec25 Use nominatim from openstreetmap for location search in onboarding (#17287)
* Use nominatim from openstreetmap for location search in onboarding

* Update text, add user agent

* Handle errors better, add email address

* remove detect text

* Use `ui.common.search`

* Update attribution location

* Apply suggestions from code review

Co-authored-by: c0ffeeca7 <[email protected]>

* Update src/translations/en.json

Co-authored-by: c0ffeeca7 <[email protected]>

* Remove unused style

* Increase line-height

* Apply suggestions

---------

Co-authored-by: Paul Bottein <[email protected]>
Co-authored-by: c0ffeeca7 <[email protected]>
2023-07-18 15:00:41 +02:00
Franck Nijhof bc3295d851 Add prefix support to text selector (#17335) 2023-07-18 11:57:20 +02:00
Bram Kragten d7e58a00ca Add support for registering config panels (#17296) 2023-07-18 09:56:07 +02:00
renovate[bot]andSteve Repsher 0ce93263e9 Update typescript-eslint monorepo to v6 (major) (#17299)
* Update typescript-eslint monorepo to v6

* Remove duplicate values from log severity enum

* Rename ActionHandler interface to avoid class conflict

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-07-17 20:26:40 +00:00
Paul Bottein 4946c00d34 Add last_used option for pipeline and explicit default (#17329)
* Add last-used option for pipeline and explicit default

* Default to last used
2023-07-17 12:57:43 -04:00
renovate[bot] 4c9066a4b0 Update dependency eslint to v8.45.0 (#17330)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-17 12:37:31 -04:00
renovate[bot] 486cfd1d91 Update dependency hls.js to v1.4.9 (#17326)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-17 09:37:41 -04:00
dependabot[bot] 2564fb91db Bump actions/labeler from 4.2.0 to 4.3.0 (#17327) 2023-07-17 07:55:20 -04:00
renovate[bot] 4b40405cc4 Update tsparticles to v2.11.0 (#17318) 2023-07-16 20:52:13 -04:00
Skyler Carlson 3d0f2adf9f Update wording in UI when restoring partial backup (#17319) 2023-07-16 18:09:48 +00:00
renovate[bot] bcfdb27e25 Update dependency eslint-config-airbnb-typescript to v17.1.0 (#17320) 2023-07-16 12:43:16 -04:00
renovate[bot] c173ffd181 Update dependency google-timezones-json to v1.2.0 (#17321) 2023-07-16 12:41:06 -04:00
renovate[bot] e81cac0d03 Update babel monorepo to v7.22.9 (#17317) 2023-07-15 16:08:15 -04:00
renovate[bot] d756daded4 Update dependency eslint-plugin-unused-imports to v3 (#17312)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-14 22:21:56 -04:00
renovate[bot]andSteve Repsher cb0bc762b1 Update dependency prettier to v3 (#17215)
* Update dependency prettier to v3

* Update config and remove .prettierignore

* Reformat

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-07-14 17:40:17 +00:00
renovate[bot] 9bf76a07b8 Update dependency @octokit/rest to v20 (#17307)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-14 12:10:52 -04:00
karwosts 7546d1950e Make action-choose options collapsible (#17239)
* Make action-choose options collapsible

* padding changes
2023-07-14 10:01:00 +02:00
renovate[bot] 5e197334f6 Update octokit monorepo to v6 (major) (#17269)
Update octokit monorepo to v6

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-14 04:57:20 +00:00
renovate[bot] 27bfa130f3 Update typescript-eslint monorepo to v5.62.0 (#17298) 2023-07-13 18:56:45 -04:00
Simon Lamon 9b3710f8bd Use translation keys for Network configuration pages (#17261)
* Network labels

* Remove quotes

* Update translations to include data and linting

* IPV6 => IPv6
2023-07-13 18:32:36 +02:00
Denis Shulyaka 1fe02e8d6c Add current humidity to humidifier history chart (#17288)
* Add current humidity to humidifier history chart

* state-humidifier-on-color
2023-07-13 17:04:04 +02:00
Paul Bottein 8bb2cbe767 Refactor lock and alarm panel code dialog (#17254) 2023-07-13 16:42:08 +02:00
Paul Bottein 510f9dbb12 Don't show paste from clipboard card when user search for a card (#17295) 2023-07-13 16:36:18 +02:00
Paul Bottein df765515ec Use icon button to switch between code and editor (#17294) 2023-07-13 16:35:53 +02:00
Paul Bottein 56e82eab03 Add icon to edit card overflow menu (#17293) 2023-07-13 16:34:42 +02:00
Paul Bottein efc8ed5c94 Add condition selector for blueprint (#17278) 2023-07-13 16:33:56 +02:00
Paul Bottein e2ec3b63ce Fix autocorrect and spellcheck for ha-textfield (#17274) 2023-07-13 16:33:12 +02:00
karwosts 158a816f7a Consistently treat standby as a non-active state for media_player (#17289)
Consistently treat standby as an off state for media_player
2023-07-13 13:20:51 +02:00
Domantas Petrauskas 3a4d2db8ff Fix overflow on sensor card (#17284) 2023-07-13 09:34:20 +02:00
Paulus Schoutsen 5ed348aa56 Add download button to assist sentence parser dev tool (#17265)
* Add download button to assist sentence parser dev tool

* Use outlined button

* BLOCK
2023-07-12 11:54:33 -04:00
renovate[bot] 52d717a86b Update dependency glob to v10.3.3 (#17281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-12 09:10:21 -04:00
Paul Bottein 606b96f6fd Fix history issue when closing more info dialog by clicking update (#17257)
* Fix history issue when closing more info dialog by clicking update

* Remove hideMoreInfoDialog function
2023-07-11 13:00:12 +00:00
Bram Kragten 33b9786ae7 start_pause is only supported on entities that don't have STATE sup… (#17147)
* `start_pause` is only support on entities that don't have `STATE` support

* Update hui-vacuum-commands-tile-feature.ts

* Add comment
2023-07-11 14:54:38 +02:00
karwosts 04ec380ce0 Prune empty value_template field from numeric_state (#17272) 2023-07-11 14:38:36 +02:00
Paul Bottein 9866a3217e Prevent items in add integration dialog from flickering (#17260) 2023-07-11 14:35:37 +02:00
renovate[bot] 9f55c06dfc Update dependency glob to v10.3.2 (#17270)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 21:44:18 -04:00
dependabot[bot] 2298d2b7ca Bump semver from 5.7.1 to 5.7.2 (#17271)
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 21:42:49 -04:00
Bram Kragten e46f0224c6 Add support for service translations (#17264)
* Add support for service translations

* Add selector translation support
2023-07-10 20:37:04 -04:00
Paulus Schoutsen bf4cf310f3 Bump HAWS to 8.2.0 (#17263) 2023-07-10 18:37:15 +00:00
renovate[bot] b1a909d302 Update dependency babel-loader to v9.1.3 (#17262)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 14:09:07 -04:00
Paul Bottein bffdfcf61c Fix notification error when calling service (#17255) 2023-07-10 15:01:16 +02:00
Paul Bottein 228b75ae83 Simplify script/automation action description with nested conditions/triggers (#17252) 2023-07-10 13:33:50 +02:00
Bram Kragten 35a427afad Update download-translations.js 2023-07-10 13:17:35 +02:00
Bram Kragten 1f5a8b4e7e Merge branch 'master' into dev 2023-07-10 13:16:32 +02:00
renovate[bot] f98eaf0c2d Update vaadinWebComponents monorepo to v24.1.3 (#17250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 13:15:43 +02:00
karwosts d66a8a65b6 Fix a browser hang with charts in grids (#17244) 2023-07-10 13:13:46 +02:00
Till 3bf8739a7c Fix missing autocomplete in energy settings (#17218) 2023-07-10 13:12:15 +02:00
Steve Repsher 456eba1d88 Add pull request labeler (#17199) 2023-07-10 13:08:46 +02:00
Philip Allgaier a1771cc919 Clearly show if there are no ignored or disabled integrations (#17251) 2023-07-10 13:08:15 +02:00
Paul Bottein 289c380a6a Remove unused device class translations (#17253) 2023-07-10 10:30:03 +00:00
Denis Shulyaka f35b493d2e humidifier cards: support null target humidity (#17240)
remove target humidity if not provided
2023-07-10 11:15:27 +02:00
dependabot[bot] e01ad86da9 Bump actions/setup-node from 3.6.0 to 3.7.0 (#17246)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 09:51:30 +02:00
renovate[bot] f8e09921c3 Update dependency @lit-labs/virtualizer to v2.0.4 (#17219)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-09 19:40:21 -04:00
karwosts 0974d86bfd Localize the statistics search label (#17223)
* Localize the statistics search label

* switch to common search
2023-07-09 18:39:51 -04:00
renovate[bot] fdf5abd0f9 Update dependency @codemirror/view to v6.14.1 (#17225)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-09 17:37:14 -04:00
renovate[bot] 487ff4afcf Update babel monorepo (#17233)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-09 17:35:21 -04:00
renovate[bot] 13d686bd67 Update dependency core-js to v3.31.1 (#17224) 2023-07-09 00:09:31 -04:00
renovate[bot] 4ea88613bd Update dependency lit to v2.7.6 (#17220) 2023-07-08 20:22:26 -04:00
karwosts e8c7f8cffc Don't automatically capitalize climate states (#17217)
* Don't auto-capitalize climate states

* more states
2023-07-08 14:03:21 -04:00
Franck Nijhof 1beab0449f Fix missing translations of password field in cloud signup (#17213) 2023-07-08 13:23:30 -04:00
renovate[bot] 3191801fa7 Update babel monorepo to v7.22.6 (#17201)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-07 11:04:15 -04:00
renovate[bot] 6a22503285 Update dependency magic-string to v0.30.1 (#17202)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-07 11:00:31 -04:00
renovate[bot] 6b66b7f1fa Update dependency hls.js to v1.4.8 (#17197) 2023-07-06 19:57:08 -04:00
renovate[bot] 0b31d9b943 Update dependency @octokit/plugin-retry to v5.0.5 (#17196) 2023-07-06 19:51:37 -04:00
renovate[bot] e1be4751a1 Update typescript-eslint monorepo to v5.61.0 (#17195) 2023-07-06 16:07:56 -04:00
puddly 155e9d9e95 Default the ZHA channel change dialog's preferred channel to auto (#17178) 2023-07-06 09:55:31 +02:00
karwosts 3d2734eb88 Fix sensor card to not crash when it finds no state history (#17181) 2023-07-06 09:46:42 +02:00
Philip Allgaier 9ac3f745b3 Show "Configured" header on integrations dashboard for clarity (#17115) 2023-07-06 09:42:15 +02:00
Bram Kragten 9f74af56ed Update download-translations.js 2023-07-05 17:32:08 +02:00
Bram Kragten b1f5776eb3 Merge branch 'dev' 2023-07-05 17:23:55 +02:00
Bram Kragten c95232fecb Update download-translations.js 2023-07-05 17:23:24 +02:00
Bram Kragten c60a235ad2 Merge branch 'dev' 2023-07-05 17:08:21 +02:00
Bram Kragten cc8ab184e3 Update download-translations.js 2023-07-05 17:05:13 +02:00
Bram Kragten ad8d3c7fa8 Fix non optional response service, variable field disabled (#17171) 2023-07-05 14:53:19 +00:00
Bram Kragten 507f22a5cd Update of core or OS will disconnect (#17170) 2023-07-05 16:49:35 +02:00
Bram Kragten d7e0dac4e7 20230705.1 (#17169) 2023-07-05 15:47:43 +02:00
Bram Kragten 1b0423eb42 Bumped version to 20230705.1 2023-07-05 15:36:47 +02:00
Bram Kragten 9125520d8f Patch leaflet draw (#17168) 2023-07-05 15:22:50 +02:00
Bram Kragten 3390dda7be Fix integration card design gallery (#17167) 2023-07-05 15:22:22 +02:00
renovate[bot] dcae8b9790 Pin dependency @types/luxon to 3.3.0 (#17164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 11:43:13 +00:00
Bram Kragten 1b503a6af1 Convert and filter backend translations to old format (#17161) 2023-07-05 13:29:42 +02:00
Bram Kragten 8bd09edec0 Fix automation translations + gallery (#17166) 2023-07-05 13:27:38 +02:00
Bram Kragten c8de1ff74c 20230705.0 (#17165) 2023-07-05 09:18:17 +02:00
Bram Kragten 44aca9688d Bumped version to 20230705.0 2023-07-05 09:11:23 +02:00
Bram Kragten 9d457d52e8 Fix schedule and calendar timezone handling (#17157) 2023-07-05 09:10:01 +02:00
Bram Kragten 72dbe8e7ab Guard for missing translations (#17160) 2023-07-05 09:01:02 +02:00
renovate[bot] 371dadfeeb Update vaadinWebComponents monorepo to v24.1.2 (#17142)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 00:05:38 -04:00
Simon Lamon 9cf8ec4cbb Make voice assistant translatable in dialog (#17163) 2023-07-04 20:42:36 +02:00
Bram Kragten 7584404d31 Fix cast build (#17162) 2023-07-04 20:41:40 +02:00
Bram Kragten 75b6b9cfd9 Ask confirmation before deleting a schedule item (#17158) 2023-07-04 12:13:26 +02:00
renovate[bot] 94808b75b3 Update Yarn to v3.6.1 (#17153)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 09:37:59 +02:00
renovate[bot] dc19f94bfa Update dependency @types/qrcode to v1.5.1 (#17154)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 09:37:00 +02:00
renovate[bot] 9374e38db2 Update dependency eslint to v8.44.0 (#17156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 09:36:13 +02:00
Bram Kragten b309c64d7b 20230703.0 (#17150) 2023-07-03 19:05:09 +02:00
Bram Kragten db78dd8762 Bumped version to 20230703.0 2023-07-03 19:03:32 +02:00
Joakim Sørensen 4588eb3b75 Send undefined as version if auto is selected (#17148) 2023-07-03 17:04:36 +02:00
Bram KragtenandPaul Bottein d427d9e7f6 Integrations header: center warning/error text (#17141)
Co-authored-by: Paul Bottein <[email protected]>
2023-07-03 13:36:29 +00:00
Bram Kragten a3b87a6e7b Fix supervisor not loading Firefox (#17146) 2023-07-03 13:25:59 +00:00
Bram Kragten 6a2cad1af3 Fix device automations from device page (#17145) 2023-07-03 15:24:19 +02:00
Bram Kragten 21caac4240 Don't show fractions in energy percentage gauges (#17140) 2023-07-03 10:56:40 +02:00
renovate[bot] 0735b6475a Update dependency @material/web to v1.0.0-pre.12 (#17138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-02 14:42:59 +02:00
Simon Lamon 7dbb419c30 Make automation editor card headers translateable (actions) (#17027) 2023-07-02 14:29:54 +02:00
renovate[bot] a477120f13 Update dependency typescript to v5.1.6 (#17139)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 23:30:29 -04:00
renovate[bot] a7ed71d404 Update dependency @lrnwebcomponents/simple-tooltip to v7.0.11 (#17124) 2023-07-01 18:31:58 -04:00
karwosts 08716c8e11 Gauge card form fields can be decimal (#17123) 2023-07-01 16:02:20 -04:00
Bram Kragten 4b8d7b27e3 Fix device automation description (#17133) 2023-07-01 15:54:30 -04:00
renovate[bot] c29a2f35c3 Update dependency typescript to v5.1.5 (#17129)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 15:41:06 -04:00
renovate[bot] f8b9888636 Update dependency webpack to v5.88.1 (#17135)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 15:40:16 -04:00
renovate[bot] 2d45532707 Update dependency glob to v10.3.1 (#17128)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 15:36:58 -04:00
renovate[bot] 5d4402a53b Update dependency hls.js to v1.4.7 (#17130)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 15:36:15 -04:00
renovate[bot] 60af8c7303 Update dependency lint-staged to v13.2.3 (#17131)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 15:34:42 -04:00
Bram Kragten 8f3d89da4f 20230630.0 (#17120) 2023-06-30 17:18:39 +02:00
Bram Kragten ff59e31530 Bumped version to 20230630.0 2023-06-30 17:16:29 +02:00
Paul Bottein 23ac7501b3 Reorder config entries in device pages (#17105) 2023-06-30 17:15:49 +02:00
Bram Kragten d6f8941098 Warn when punctuation is used in conversation trigger (#17119) 2023-06-30 17:14:58 +02:00
Philip Allgaier e5146512d5 Fix disabled domain text color in entity settings (#17114) 2023-06-30 17:14:04 +02:00
Allen Porter b43c6f9fa3 Allow changing a single event to recurring event (#17112) 2023-06-30 17:13:21 +02:00
renovate[bot] 5579713ed5 Update typescript-eslint monorepo to v5.60.1 (#17109)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-30 17:12:38 +02:00
karwosts e7c47ef65c Name field in helper forms should not init in the error state (#17111) 2023-06-30 17:06:46 +02:00
renovate[bot] ede7daad1a Update dependency @lrnwebcomponents/simple-tooltip to v7.0.10 (#17116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-30 17:05:44 +02:00
Bram Kragten 5e84f2a173 Fix ignoring config flow (#17118) 2023-06-30 16:37:53 +02:00
Kevin 90df43c205 Fix ignoring dicovered devices (#17117) 2023-06-30 16:15:32 +02:00
Bram Kragten 3563541f8f 20230629.0 (#17108) 2023-06-29 18:50:03 +02:00
Bram Kragten a09d71291b Update discovered/disabled/ignored integrations (#17107) 2023-06-29 18:47:24 +02:00
Bram Kragten a7100b9678 Bumped version to 20230629.0 2023-06-29 18:33:59 +02:00
Bram Kragten 42d6e6dc51 Replace integration error/warning banner with subtitle (#17103) 2023-06-29 17:26:51 +02:00
Bram Kragten a5c7f261c8 dont split a string 2023-06-29 17:14:05 +02:00
Bram Kragten f712b76ccf Update compute_state_display.ts 2023-06-29 16:56:24 +02:00
Paul Bottein 82a8b8fd5d Same order in device dashboard and device page for config entries (#17104) 2023-06-29 16:09:27 +02:00
Bram Kragten a227d7a2cf Fix ha-menu-button not hidden (#17102) 2023-06-29 15:09:58 +02:00
Philip Allgaier b5eb18e163 Ensure domain titles are loaded for quick reload items (#17100) 2023-06-29 14:53:08 +02:00
Bram Kragten 82ae04e070 Integration dashboard: don't stretch items (#17099) 2023-06-29 10:51:14 +00:00
Paul Bottein 8f617fe754 Allow to search statistic by statistics id and name (#17098) 2023-06-29 12:51:00 +02:00
Paul Bottein 77d24f4129 Show position on sidebar card and hide arrow on panel card (#17092) 2023-06-29 09:27:49 +00:00
Bram Kragten 6cc207752f Empty response when changing service (#17091) 2023-06-29 10:31:16 +02:00
karwosts b96ad65f48 Add summations to gas/solar/water energy graph tooltips (#17084) 2023-06-29 09:57:37 +02:00
karwosts ab1759f11d Clear template-not-supported error when switching services in devtools (#17090) 2023-06-29 09:54:18 +02:00
Philip Allgaier b539a939b4 Pass missing time zone info to dev tool state (#17087) 2023-06-29 09:48:53 +02:00
Philip Allgaier 82cc667012 Add min/max support for prompt dialog (e.g. used for card moving) (#17085) 2023-06-29 09:40:55 +02:00
Philip Allgaier fc86c82540 Remove weird colon from integration setup error text (#17086) 2023-06-29 09:40:09 +02:00
karwosts 6d1ea41449 Fab spacer for zha table (#17082) 2023-06-28 15:50:25 +00:00
Bram Kragten 50f4a1abc5 20230628.0 (#17080) 2023-06-28 17:30:13 +02:00
Bram Kragten f6d06f5e26 Remove time from assist dev tools (#17079) 2023-06-28 17:19:47 +02:00
Bram Kragten de7f055419 Bumped version to 20230628.0 2023-06-28 17:19:04 +02:00
Paul Bottein c3c6c63169 Add move card to position on dashboard editor (#17077)
* Add move card to position on dashboard editor

* Feedbacks
2023-06-28 15:14:10 +00:00
Bram Kragten 6fea7a7106 Move integration sections into their own container (#17078) 2023-06-28 14:58:32 +00:00
Bram Kragten ce88c594b7 Submit assist dev tools on enter (#17073) 2023-06-28 16:48:32 +02:00
Bram Kragten e2daa89941 Add space for FAB on addon page (#17076) 2023-06-28 16:48:06 +02:00
Denis ShulyakaandBram Kragten 81bd4a247b Humidifier action (#17056)
* Add action attribute to humidifier

* Humidifier: Use action instead of state if that is available

* rebase

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-06-28 16:47:39 +02:00
karwosts 345aef8d65 Add fab spacer for backups table (#17075) 2023-06-28 14:37:18 +00:00
Paul Bottein eaeb37da4d Update humidifier Ui with current humidity and action (#17072) 2023-06-28 16:14:18 +02:00
Bram Kragten c0613545e7 Make helper forms lazy load (#17068) 2023-06-28 15:55:46 +02:00
Bram Kragten e6d77af438 Make space for fab (#17070) 2023-06-28 15:55:12 +02:00
Bram Kragten 625da46da9 Fix assist devtools default language (#17071) 2023-06-28 15:50:43 +02:00
Bram Kragten 7727bf7901 Tweak lovelace editor position badge (#17069) 2023-06-28 15:10:33 +02:00
Philip Allgaier 24e531a16c Catch exception if diagnostics are not supported for domain (#17067) 2023-06-28 12:48:37 +00:00
Philip Allgaier 32a9b13af0 Translate message that script/automation is unavailable (#17066) 2023-06-28 12:38:10 +00:00
Bram Kragten c90c4d88af Fix discovery flow title (#17065) 2023-06-28 14:29:35 +02:00
Bram Kragten cd3bec08f7 Refactor integration card (#17061) 2023-06-28 14:09:02 +02:00
karwosts 8945650b62 Show card positions in edit dashboard mode (#17055) 2023-06-28 14:01:21 +02:00
karwosts 5ac9a6c9cc Sort tooltips in energy graphs and filter zeros (#17057) 2023-06-28 14:00:10 +02:00
Bram Kragten ce9380e4d7 Fix menu button when sidebar is always_hidden (#17059) 2023-06-28 13:34:48 +02:00
Bram Kragten 927c6dd778 Fix state display in vacuum more info (#17063) 2023-06-28 13:31:26 +02:00
Philip Allgaier 952bcff8c8 Handle "unknown" for date, time and datetime entities (#17043) 2023-06-28 10:45:34 +00:00
Paul Bottein 73e1b4b1d1 Add basic assist dev tools (#17062) 2023-06-28 10:40:59 +00:00
Bram Kragten cbe8be1573 Add response variable support to service action (#17046) 2023-06-27 17:12:38 +00:00
Bram Kragten 6b4300950d Add response UI to stop action (#17045) 2023-06-27 19:02:05 +02:00
Bram Kragten c3c062cc29 Unsubscribe from supervisor collection immediately (#17047)
* Unsubscribe from supervisor collection immediately

* bump home-assistant-js-websocket
2023-06-27 18:57:08 +02:00
Bram KragtenandJoakim Sørensen b15754a6a7 Ingress: offer to start addon on ingress page (#16458)
Co-authored-by: Joakim Sørensen <[email protected]>
2023-06-27 18:49:24 +02:00
Paul Bottein 343708cdaa Align humidifier thermostat card (#17054) 2023-06-27 18:36:56 +02:00
Bram Kragten 3b8ea5edbe Add keyfunction to datatable virtualizer (#17049) 2023-06-27 18:29:37 +02:00
Bram Kragten 4761036816 Show if script is unavailable and why (#17051) 2023-06-27 18:28:53 +02:00
Bram Kragten 3bb5e95c50 Show if automation is unavailable and why (#17048) 2023-06-27 18:28:20 +02:00
Bram Kragten 9e5774525f Add service response support to dev tools (#17044)
* Add service response support to dev tools

* Change to `response_variable`
2023-06-27 18:22:02 +02:00
Denis Shulyaka 349311a18d humidifier card: display the current humidity (#14645)
* humidifier card: display the value of current humidity sensor

Signed-off-by: Denis Shulyaka <[email protected]>

* rename set-values and current-humidity to main-humidity and secondary-humidity

* removed more-info dialog for current-humidity

* swap target and current humidity

* remove current humidity rounding

* use current_humidity attribute

* Add current_humidity attribute

* prettier

* Revert hui-humidifier-card-editor.ts

* Revert types.ts

* Revert en.json

* Update hui-humidifier-card.ts

* Update hui-humidifier-card.ts

* prettier

* Use formatNumber

* Apply suggestions from code review

* Swap back current humidity and target humidity

---------

Signed-off-by: Denis Shulyaka <[email protected]>
2023-06-27 17:24:45 +02:00
Paul Bottein 48b6c2a925 Add animation for locking and unlocking state (#17053) 2023-06-27 15:23:46 +00:00
karwosts 381c9f97d6 Bar chart should start from zero (#16815) 2023-06-27 17:21:23 +02:00
Simon Lamon 9a116d4022 Update dialog-add-user input fields (#17039) 2023-06-27 17:19:56 +02:00
Simon Lamon d63d3a681c Fix split area into separate devices and entities (#17017) 2023-06-27 17:19:19 +02:00
karwosts 3111c29049 Fix group more-info to show the state of the group entity (#17052) 2023-06-27 16:54:18 +02:00
Bram Kragten 87aad75cc7 Add UI for conversation trigger (#17037) 2023-06-27 10:58:27 +02:00
Paulus Schoutsen d656269d75 Remove attribution from Assist dialog (#17038) 2023-06-26 23:18:57 +02:00
Marc Mueller d169ff6a96 Update build system (#17040) 2023-06-26 19:24:03 +00:00
Franck Nijhof 06d9517e27 Add identify device class to button (#17036) 2023-06-26 15:47:06 +02:00
Paulus Schoutsen a637b7db75 Automatically refresh when showing debug for a pipeline in progress (#17030) 2023-06-26 13:15:20 +00:00
Philip Allgaier 96a6261a09 Automatic casing of nouns based on language (#17035) 2023-06-26 14:58:14 +02:00
ildar170975andBram Kragten a3f0c428f8 Update hui-glance-card.ts: fix padding & margin for a focused entity (#17005)
Co-authored-by: Bram Kragten <[email protected]>
2023-06-26 12:25:14 +00:00
Philip Allgaier b40a3224fc Add "Clear" button to template editor + confirmation dialog (#17020) 2023-06-26 12:21:08 +00:00
Philip Allgaier 68fb98454f Fix logbook for binary sensor (missing device class) (#17034) 2023-06-26 10:50:51 +00:00
Philip Allgaier 3803bdc8da Add missing aria-label to integration configure button (#17033) 2023-06-26 10:33:05 +00:00
Paul Bottein 1dfd859a2d Circular slider improvements (#17008) 2023-06-26 11:49:11 +02:00
karwosts f77f7b3c36 Catch errors when describeTrigger throws an exception (#17022) 2023-06-26 11:47:22 +02:00
karwosts 82463c2ef6 Fix overview failing to render in some cases with toUpperCase exception (#17021) 2023-06-26 11:42:32 +02:00
karwosts e53ae0b333 Add plant domain to enumerated states list (#17026) 2023-06-26 11:39:13 +02:00
karwosts b6ed8acd02 Dont mark blueprint fields with defaults as required (#16785) 2023-06-26 11:38:39 +02:00
renovate[bot] 897f118547 Update dependency @material/web to v1.0.0-pre.11 (#17012)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 11:35:13 +02:00
renovate[bot] d961f5be5f Update typescript-eslint monorepo to v5.60.0 (#17004)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 11:34:30 +02:00
renovate[bot] 96d6687724 Update dependency sinon to v15.2.0 (#17013)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 11:33:39 +02:00
renovate[bot] a77167e9d9 Update dependency @lrnwebcomponents/simple-tooltip to v7.0.5 (#17014)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 11:32:51 +02:00
renovate[bot] d2199dfa34 Update dependency webpack to v5.88.0 (#17025)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 11:29:07 +02:00
renovate[bot] 0f0d1d6e6f Update dependency glob to v10.3.0 (#17024)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 11:26:52 +02:00
karwosts 9bcbb6f914 Support cut/copy/paste in dashboard UI editor (#16707) 2023-06-26 11:14:14 +02:00
renovate[bot] 2929bf5b1a Update CodeMirror (#17031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 08:50:53 +00:00
karwosts 976fcab146 Don't apply brightness filter to plant icons (#17029) 2023-06-26 10:02:41 +02:00
karwosts 655cf053c7 Include blueprint type in row id key (#16998) 2023-06-26 09:59:43 +02:00
Philip Allgaier 152ca75499 Adjust codemirror gutter background color (#17018) 2023-06-26 09:58:59 +02:00
Joakim Sørensen 1645208f62 Export base create config functions (#17007) 2023-06-26 09:50:43 +02:00
karwosts 3528f5c7aa Fix dialog-device-registry-detail missing labels (#17001) 2023-06-26 09:50:21 +02:00
J. Nick Koston 76490cc690 Fix media player list when there are entities not in the registry (#17015) 2023-06-24 08:37:38 +02:00
renovate[bot] bf18deb83c Update dependency @rollup/plugin-commonjs to v25.0.2 (#17000)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-23 00:28:22 +02:00
Petro31 f19dcba1ce Update _dismissAll to use persistent_notification.dismiss_all service (#16997) 2023-06-22 14:28:07 +02:00
Bram Kragten b3fa134198 Add haStyleScrollbar to hass-tabs-subpage (#16993) 2023-06-22 09:53:06 +00:00
Bram Kragten 80c57fa326 Don't allow to change the domain in entity registry settings (#16800) 2023-06-22 11:09:02 +02:00
Joakim Sørensen b748fee321 Allow selecting CIFS version in mount dialog (#16833) 2023-06-22 10:58:26 +02:00
Paul Bottein 1ee67937ec Simplify usage on clipboard for automations and scripts (#16989) 2023-06-22 10:55:39 +02:00
Bram Kragten eb552530e2 Add support for image entity (#16877) 2023-06-21 17:46:40 +02:00
Paul BotteinandBram Kragten 1fe5d66a68 Allow cards and tile features to provide a schema to create the editor (#16142)
Co-authored-by: Bram Kragten <[email protected]>
2023-06-21 17:22:33 +02:00
Bram Kragten 7faa165558 Refactor Storage decorator (#16987) 2023-06-21 17:22:10 +02:00
karwosts 752bc192cd Fix types selection for statistics-graph-card (#16988) 2023-06-21 15:10:00 +00:00
Paul Bottein e9961b93f9 Add circular slider (#16981)
* WIP Create round slider

* Fix interaction on iOS

* Add dual and simple gauge

* Add events

* Rename events

* Use low and high

* Improve dual slider selection

* Add min and max

* Rename component

* Prevents setting a high value lower than low and vice versa

* Add keyboard support

* Fix typings

* Use html

* Update current indicator

* Improve doc

* Fix keyboard focus after mouse interaction

* Don't fallback to value
2023-06-21 15:01:45 +00:00
c0ffeeca7 bbdcc021d4 TTS and STT: standardize spelling (#16685) 2023-06-21 13:46:08 +02:00
Vasilis KoulisandBram Kragten 3d6cfc4037 open option for lock (#14852)
Co-authored-by: Bram Kragten <[email protected]>
2023-06-21 09:59:28 +00:00
RoboMagusandJ. Nick Koston 9b35c06eef Add persistent_notification trigger (#16967)
Co-authored-by: J. Nick Koston <[email protected]>
2023-06-21 11:55:55 +02:00
Joakim Sørensen b46c74fe76 Add haStyleScrollbar to hass-subpage (#16745) 2023-06-21 11:35:17 +02:00
Joakim Sørensen 5aa6ffe2e4 Map GitHub block quotes to our ha-alert component (#16757) 2023-06-21 11:35:02 +02:00
karwosts 07d37dd89f Handle multiple triggers in trigger condition UI (#16983) 2023-06-21 08:50:01 +02:00
Lasse Bang Mikkelsen 33d6ad1b0b Add copy-to-clipboard button for long-lived tokens (#16956) 2023-06-21 06:19:25 +00:00
Simon Lamon 386ed2167f Make automation editor card headers translateable (triggers partly) (#16969) 2023-06-21 08:12:04 +02:00
karwosts 221f4f34a7 Use new automation dialog for new scripts (#16933) 2023-06-21 08:04:39 +02:00
karwosts c63c717d9f Add 'Default' option to theme-picker (#16915) 2023-06-21 08:03:17 +02:00
Paul Bottein 1cb1bcf274 Open assist from dashboard (#16829) 2023-06-21 08:02:09 +02:00
karwosts 1cf24ffc8d Allow continue_on_error in the UI action editor (#16834) 2023-06-20 14:53:13 +00:00
Paul Bottein 13b864e261 Use ha-icon-button-group in more info cover (#16911) 2023-06-20 16:45:45 +02:00
Paul Bottein 7bc2ca3b65 Add more info lock (#15995)
* Add more info lock

* Use same height for pending state

* Fix attributes

* Add unlocking/locking to switch

* Improve code support
2023-06-20 15:25:26 +02:00
Christoph Wen, B.Sc 922e95b895 Fix time and date-time 12h formats (#16692) (#16805)
* Fix time and date-time 12h formats  (#16692)

- am/pm check possible for other languages
- adjusted date format gallery page for consistency
- added gallery pages for date-time and time formats

* Fix typo in am/pm check (#16692)
2023-06-20 12:52:53 +02:00
renovate[bot] baaa012101 Update octokit monorepo (#16979)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-20 12:07:01 +02:00
breakthestatic 3888b1c48b Use fuzzy filter/sort for target pickers (#16912)
* Use fuzzy filter/sort for target pickers

* PR suggestions

* Restore missed sort
2023-06-20 12:03:55 +02:00
karwosts 332af4003e History graph should start at requested time even if sensor is unavailable (#16850)
History graph should start at consistent time if sensor is unavailable
2023-06-20 12:00:33 +02:00
renovate[bot] 044a44e114 Update dependency @lit-labs/context to v0.3.3 (#16975)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-20 11:56:05 +02:00
c0ffeeca7 13c932a8f8 Thread: Rename "My network" to "Preferred network" (#16980)
- All networks in my household are my networks. Otherwise they are my neighbor's.
- within my networks, this one is my preferred one (as opposed to other networks)
2023-06-20 10:43:28 +02:00
renovate[bot] be1089302f Update dependency @octokit/rest to v19.0.12 (#16973)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-19 17:52:51 +00:00
Steve Repsher 540df024d9 Upgrade to python 3.11 (#16948) 2023-06-19 19:50:45 +02:00
Bram Kragten e7c8bd4c41 Bump Vaadin (#16971) 2023-06-19 13:48:54 -04:00
renovate[bot]andBram Kragten 7c15a65bba Update dependency @lit-labs/virtualizer to v2.0.3 (#16761)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <[email protected]>
2023-06-19 14:21:08 +00:00
karwosts 5381a467e5 Fix blueprint script editor erroneously setting mode field (#16934) 2023-06-19 13:43:04 +00:00
renovate[bot]andBram Kragten a96d3594ba Update dependency typescript to v5 (#15877)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <[email protected]>
2023-06-19 13:03:48 +00:00
Steve Repsher 1d0d4755d0 Update lit-analyzer and ts-lit-plugin to version 2 (#16954) 2023-06-19 14:30:16 +02:00
TillandBram Kragten fa75b18a6b Add self-sufficiency gauge card (#15704)
Co-authored-by: Bram Kragten <[email protected]>
2023-06-19 13:59:20 +02:00
Joakim Sørensen cdd29c8bf7 Add help button to get documentation from mount dialog (#16932) 2023-06-19 11:54:47 +00:00
Paul Bottein 215f5e341a Put color wheel at the root level for more info light (#16909) 2023-06-19 13:50:37 +02:00
Franck Nijhof 8abb58ae7d Add preheating HVAC action to climate (#16922) 2023-06-19 13:36:19 +02:00
karwosts 40c8301df0 Allow templates in service template/object selector (#16925) 2023-06-19 13:33:28 +02:00
Simon Lamon 80f3d6aacb Change all occurrences to use Intl.ListFormat (#16897) 2023-06-19 12:52:28 +02:00
dependabot[bot] 41310007fe Bump dessant/lock-threads from 4.0.0 to 4.0.1 (#16962)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-19 09:39:22 +02:00
renovate[bot] 195b1eef02 Lock file maintenance (#16961)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-19 05:26:18 +00:00
renovate[bot]andSteve Repsher 8e9b5ea66b Update dependency tsparticles-preset-links to v2.10.1 (#16802)
* Update dependency tsparticles-preset-links to v2.10.1

* Group future tsparticles updates

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-06-19 05:10:21 +00:00
renovate[bot] 827d89628d Update dependency tsparticles-engine to v2.10.1 (#16790)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-18 23:52:23 -04:00
renovate[bot] cac341a938 Update dependency hls.js to v1.4.6 (#16960)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-18 23:31:13 -04:00
J. Nick Koston 2b51228665 Fix notifications subscription leak when in narrow mode (#16953)
Fix persistent notifications subscription leak on mobile/narrow
2023-06-17 20:41:41 -04:00
renovate[bot] 79c010eb7b Update dependency webpack to v5.87.0 (#16949) 2023-06-17 20:34:43 -04:00
renovate[bot] 2a4356ce86 Update dependency tinykeys to v2.1.0 (#16951) 2023-06-17 20:33:36 -04:00
renovate[bot] afdeb36258 Update vaadinWebComponents monorepo to v24.1.0 (#16844)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 14:56:35 -04:00
renovate[bot]andSteve Repsher d4f4ee1e59 Update dependency tinykeys to v2 (#16873)
* Update dependency tinykeys to v2

* Switch to named import

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-06-17 16:53:36 +00:00
renovate[bot] bcceef30bb Update dependency @octokit/auth-oauth-device to v5 (#16947)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 12:46:30 -04:00
renovate[bot] 356935fefc Update formatjs monorepo (#16945)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 15:28:29 +00:00
renovate[bot] 49f59d7162 Update CodeMirror (#16942)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 11:17:37 -04:00
renovate[bot] 67e8357bb9 Update dependency sinon to v15.1.2 (#16940)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 11:15:05 -04:00
renovate[bot] b8da712186 Update typescript-eslint monorepo to v5.59.11 (#16941)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 11:13:30 -04:00
renovate[bot] a409f494a2 Update dependency @types/leaflet-draw to v1.0.7 (#16939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 05:55:36 +00:00
renovate[bot] 3b32825e2a Update dependency @octokit/plugin-retry to v5.0.3 (#16938)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 05:47:46 +00:00
renovate[bot]andSteve Repsher 12b7b903bc Update dependency core-js to v3.31.0 (#16913)
* Update dependency core-js to v3.31.0

* Update babel setting

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-06-17 05:40:10 +00:00
Joakim Sørensen 3be601a3b9 Add location to backups table (#16813) 2023-06-15 16:08:32 +02:00
renovate[bot] d0641d64bd Update dependency eslint-plugin-lit-a11y to v3 (#16910)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-14 16:03:53 -04:00
renovate[bot] 3a64f64894 Update dependency @material/web to v1.0.0-pre.10 (#16841)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-14 18:08:19 +02:00
karwosts 7182abfec5 Fix history chart when final sensor state is unavailable (#16852) 2023-06-14 17:45:57 +02:00
JakobDNS 2076a083d3 en.json: Fix typo "recieved" -> "received" (#16903) 2023-06-14 16:18:02 +02:00
renovate[bot] 73317a48ee Update dependency rollup-plugin-visualizer to v5.9.2 (#16899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-13 17:27:30 -04:00
renovate[bot] b891c53994 Update dependency webpack-dev-server to v4.15.1 (#16900)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-13 17:26:26 -04:00
renovate[bot] c1c18affbc Update dependency webpack to v5.86.0 (#16749)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-13 16:09:57 -04:00
renovate[bot] 3bea2cf7f9 Update dependency @rollup/plugin-commonjs to v25.0.1 (#16892)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-13 15:28:58 -04:00
Steve Repsher fa1a6affa7 Use ES modules and dynamic import for Webpack latest builds (#16849) 2023-06-13 18:12:44 +02:00
Bram Kragten 197638b282 Fix date demo in gallery (#16894) 2023-06-13 15:27:21 +00:00
karwosts 6e3cf0975b Fix mqtt debug info dialog too big (#16893) 2023-06-13 17:22:45 +02:00
Paul Bottein 9875cb2723 Only catch event inside color wheel (#16890) 2023-06-13 17:21:01 +02:00
Paul Bottein f8ea7e0ef2 Make actions available as event (#16839) 2023-06-13 15:24:36 +02:00
renovate[bot] c821f4296e Update dependency @octokit/auth-oauth-device to v4.0.5 (#16891)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-13 09:23:14 -04:00
5fc4e7a95d Introduce Intl.ListFormat (#16857)
Co-authored-by: Steve Repsher <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2023-06-13 15:22:23 +02:00
Paul Bottein 49fa7ec4ed Clear more info content when switching entity (#16846) 2023-06-13 12:20:02 +02:00
Bram Kragten 780de42e4b Allow to show times in the UI in the timezone of the server (#16799) 2023-06-13 12:12:13 +02:00
Paul Bottein f7722a270f Add safe zone to reach min and max temperature easily with temperature (#16880)
Add safe zone to reach min and max temperature easily with temperature picker
2023-06-13 11:55:52 +02:00
Paul Bottein e3faa618bf Use esm module for hls.js (#16878) 2023-06-12 07:49:39 -04:00
dependabot[bot] 655b630fa5 Bump actions/checkout from 3.5.2 to 3.5.3 (#16876)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 11:46:54 +02:00
renovate[bot] 983bba357a Update babel monorepo to v7.22.5 (#16872)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-11 17:42:06 -04:00
renovate[bot] 17a2560d94 Update dependency webpack-cli to v5.1.4 (#16862)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-11 13:28:12 -04:00
renovate[bot] eaffed9ff8 Update dependency @octokit/plugin-retry to v5.0.2 (#16861)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-11 13:27:10 -04:00
Matthias Alphart 273992c8e9 Consolidate dependency updates in release-drafter (#16856) 2023-06-10 16:39:43 +02:00
renovate[bot] c77905bd22 Update dependency glob to v10.2.7 (#16851) 2023-06-09 20:45:14 -04:00
renovate[bot] 15132783d4 Update formatjs monorepo (#16843)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 10:49:59 -04:00
Paul Bottein 2b6cf55638 Add paste to else automation action (#16840) 2023-06-09 16:38:01 +02:00
renovate[bot] e4eaa52d53 Update dependency webpack-cli to v5.1.3 (#16809)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 09:04:55 -04:00
renovate[bot] e1f73dac02 Update dependency hls.js to v1.4.5 (#16842)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 13:02:14 +00:00
renovate[bot] 36de0e5c8c Update CodeMirror (#16820)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 08:55:19 -04:00
renovate[bot] 549e4e7fb3 Update typescript-eslint monorepo to v5.59.9 (#16832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 08:48:34 -04:00
renovate[bot] dd9c4e35bf Update dependency @octokit/plugin-retry to v5.0.1 (#16835)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 08:46:50 -04:00
Paul Bottein cc41dbcb0b 20230608.0 (#16825) 2023-06-08 15:09:26 +02:00
Paul Bottein 8580d3f9bf Bumped version to 20230608.0 2023-06-08 15:08:18 +02:00
Bram Kragten 6d29b764d3 Integration page fixes (#16822) 2023-06-08 14:11:52 +02:00
Joakim Sørensen 78cff3a921 Use menu_options instead of menu_issues for translation (#16823) 2023-06-08 11:13:12 +00:00
Paul Bottein e3c312feaf Sort related entities by name (#16821) 2023-06-08 13:01:46 +02:00
Paul Bottein 31e4166248 Make to full integration card header clickable (#16819) 2023-06-08 10:42:26 +02:00
Bram Kragten fcffa1a750 20230607.0 (#16812) 2023-06-07 12:17:34 +02:00
Bram Kragten 0442e3e06e Bumped version to 20230607.0 2023-06-07 12:15:32 +02:00
english-ra 0a8252c16a Fixed issue where the cursor would not change to grabbing when a user… (#16808) 2023-06-07 09:44:54 +00:00
puddly 0a62d711f2 Allow the ZHA serial port path to wrap if it is too long (#16806)
Allow the serial port path to wrap if it is too long
2023-06-07 11:34:17 +02:00
karwosts d7c3ff3e9d Fix cancel button in automation row alias rename dialog (#16810) 2023-06-07 11:27:50 +02:00
renovate[bot] 2767f866f3 Update dependency @octokit/plugin-retry to v5 (#16803)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 19:53:57 +00:00
renovate[bot]andBram Kragten 040d5af0aa Update dependency eslint to v8.42.0 (#16789)
* Update dependency eslint to v8.42.0

* Update resize-observer.polyfill.ts

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <[email protected]>
2023-06-06 19:44:54 +00:00
renovate[bot] 06c6e312b0 Update workbox monorepo to v7 (major) (#16747)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 21:41:04 +02:00
renovate[bot] 841dffe563 Update Yarn to v3.6.0 (#16759)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 21:39:10 +02:00
renovate[bot] a41e0d446f Update vaadinWebComponents monorepo to v24.0.8 (#16768)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 21:38:08 +02:00
renovate[bot] 9a0f24cd8b Update dependency @lrnwebcomponents/simple-tooltip to v7.0.2 (#16758)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 21:37:20 +02:00
puddly 2e531a9006 Add channel 26 to ZHA channel changing dialog dropdown (#16801)
Add 26 to list of valid ZHA network channels
2023-06-06 19:31:50 +00:00
karwosts 76255f2efb Fix ha-devices-picker when changing or deleting devices (#16739) 2023-06-06 21:28:07 +02:00
Bram Kragten e3ee8f307a 20230606.0 (#16798) 2023-06-06 16:40:21 +02:00
karwosts 19fc92419a Add miscellaneous UI elements for translation (#16797) 2023-06-06 16:37:58 +02:00
Bram Kragten e7c2625cf1 Bumped version to 20230606.0 2023-06-06 16:32:45 +02:00
Bram Kragten c39fdcda6e Fix 403 on state-badge connect (#16795) 2023-06-06 13:42:45 +02:00
Paul Bottein fd1381ab3b Update history chart when entity change in the more info dialog (#16794) 2023-06-06 11:14:11 +02:00
Paul Bottein 7b8f4d1e72 Fix label for cover button mode (#16791) 2023-06-06 09:07:53 +02:00
renovate[bot] b0a278df97 Update dependency @octokit/plugin-retry to v4.1.6 (#16788)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 01:25:59 -04:00
Bram Kragten 871f0f9e0d 20230605.0 (#16787) 2023-06-05 19:19:02 +02:00
Bram Kragten 93e31df106 Use integration_type as header for config entries (#16786) 2023-06-05 19:18:42 +02:00
Bram Kragten 47fdae764f Improve display of disabled config entries (#16784) 2023-06-05 19:00:06 +02:00
Bram Kragten b8efc06caa Bumped version to 20230605.0 2023-06-05 18:22:38 +02:00
Bram Kragten fcacdf6534 Add all devices and entities link to integration page (#16781) 2023-06-05 15:52:11 +00:00
Paul Bottein 45d260f0ce Move add config entry button to card (#16783) 2023-06-05 15:49:05 +00:00
renovate[bot] d5f46a69b0 Update dependency @octokit/plugin-retry to v4.1.5 (#16782)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 17:45:44 +02:00
Bram Kragten fe8eb333b9 Limit integration card to 1 action row (#16780) 2023-06-05 17:23:28 +02:00
Paul BotteinandBram Kragten 677cd2de10 Fix integration card tooltip (#16779)
* Fix integration card tooltip

* Update src/panels/config/integrations/ha-integration-header.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-06-05 14:13:27 +00:00
Bram Kragten 1470eb484f Add more info controls for date/time/datetime (#16775)
* Add more info controls for date/time/datetime

* Discard changes to src/panels/lovelace/entity-rows/hui-date-entity-row.ts

* handle unavailable
2023-06-05 16:10:38 +02:00
Bram Kragten 10ee8fda5b Improve protocol integration add device / integration (#16767) 2023-06-05 14:08:55 +00:00
Bram Kragten e044ddcb57 Align+fix date time entity rows (#16774) 2023-06-05 13:55:15 +00:00
Bram Kragten 29c564bb69 Fix maps card with location sources (#16778) 2023-06-05 15:53:57 +02:00
Bram Kragten 1bf03f020e Fix closing notification drawer (#16769) 2023-06-05 14:26:51 +02:00
Bram Kragten 6c684fd8ee Show number config entries when no devices/entities (#16766) 2023-06-05 14:17:03 +02:00
Simon Lamon ddaf403378 Fix dropdown selection in General Settings (#16754) 2023-06-05 11:57:20 +00:00
Paul Bottein b337074758 Fix collapsed masonry view in safari (#16772) 2023-06-05 13:48:16 +02:00
Bram Kragten a96eff4d25 Fix padding on thread config panel (#16770) 2023-06-05 13:06:54 +02:00
puddlyandBram Kragten e6bdc3a15e Disable ZHA channel changing when multi-PAN is in use (#16731)
* Show baudrate and port in the ZHA network info

* Do not allow changing the Zigbee channel with the multiprotocol addon

* Include translations as well

* Update src/translations/en.json

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-06-05 10:27:36 +00:00
renovate[bot] 33e15eec22 Update dependency @lit-labs/context to v0.3.2 (#16760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 09:50:00 +02:00
renovate[bot] 3c0afd6cde Update dependency lit to v2.7.5 (#16763)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 09:48:45 +02:00
Joakim Sørensen 31a3fa02d9 Allow for lazy loading images in markdown (#16746) 2023-06-05 09:46:38 +02:00
Paul Bottein 71954f545c Fix white brightness effect on color wheel (#16738) 2023-06-05 09:39:53 +02:00
Paul Bottein 9f3e8abe69 Don't show edit favorite colors button if the light doesn't support it (#16750) 2023-06-05 09:39:36 +02:00
renovate[bot] 21f983572c Update dependency @octokit/plugin-retry to v4.1.4 (#16762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 01:20:24 -04:00
renovate[bot] 5667d71b02 Update dependency @rollup/plugin-node-resolve to v15.1.0 (#16741)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-02 23:40:50 -04:00
Bram Kragten 0d0e5fdaaa Hide ignored entries (#16737) 2023-06-02 12:08:02 +02:00
karwosts b1f5ff26d9 Fix device selector when picking devices with no entities (#16734) 2023-06-02 11:26:07 +02:00
renovate[bot] 27451ca30e Update typescript-eslint monorepo to v5.59.8 (#16730) 2023-06-01 22:09:45 -04:00
Paul Bottein 928b4e6f1e Add native color picker option (fix for firefox) (#16729) 2023-06-01 16:31:18 +00:00
Bram Kragten 82fd56efe7 20230601.1 (#16728) 2023-06-01 18:07:46 +02:00
Paul Bottein b63a32109e Add native color picker option (#16726) 2023-06-01 18:06:26 +02:00
Bram Kragten efb0098eac Merge branch 'master' into dev 2023-06-01 18:04:54 +02:00
Bram Kragten a67b845812 Bumped version to 20230601.1 2023-06-01 18:01:55 +02:00
renovate[bot] d29b7626f3 Update babel monorepo to v7.22.4 (#16724) 2023-06-01 17:13:30 +02:00
Paul Bottein 47ac7062dc Increase size of color wheel cursor on mobile (#16723) 2023-06-01 16:36:32 +02:00
Paul Bottein e7f5d927b1 Open right mode when editing favorite color (#16719)
* Open right mode when editing favorite color

* Add missing type
2023-06-01 16:35:24 +02:00
Paul Bottein 6b06393559 Fix outlined button margin on iOS app (#16717) 2023-06-01 14:20:56 +02:00
Paul Bottein efa02c309b Put button menu above toolbar in automation editor (#16716) 2023-06-01 13:35:23 +02:00
Bram Kragten 9b2e77e781 Align integration card, limit height of logo (#16714) 2023-06-01 12:01:09 +02:00
Joakim Sørensen 24b4060c97 Add missing imports in backup dialogs (#16715) 2023-06-01 09:54:53 +00:00
Paul Bottein 5e4c1ab4fc Share clipboard between automation and script (#16713) 2023-06-01 09:40:02 +00:00
Paul Bottein 287e6dbb60 Fix define variables action (#16712) 2023-06-01 11:38:59 +02:00
Paul Bottein 40c9292e16 Improve padding on integration logo (#16711) 2023-06-01 11:35:42 +02:00
Paul Bottein d51dd00ec7 Add domain icon for time and datetime (#16710) 2023-06-01 09:07:18 +00:00
Paul Bottein 0db50d13d3 Clean helper config entry fetching in settings (#16709) 2023-06-01 10:37:34 +02:00
Paulus SchoutsenandBram Kragten 9eb3618d97 20230601.0 (#16705)
* Fix fetching helper config entry (#16704)

* Fix fetching helper config entry

* willUpdate

* Bumped version to 20230601.0

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-05-31 20:54:02 -04:00
Paulus Schoutsen 03eee9c7d5 Bumped version to 20230601.0 2023-05-31 20:49:41 -04:00
Bram Kragten a49d59f4c6 Fix fetching helper config entry (#16704)
* Fix fetching helper config entry

* willUpdate
2023-06-01 00:58:03 +02:00
Bram Kragten 990ade4294 20230531.0 (#16697) 2023-05-31 15:45:11 +02:00
Patrick ZAJDA a4c57f09ad Set alt attribute to Assistant name in the exposed entities settings (#16698) 2023-05-31 13:36:16 +00:00
Bram Kragten c1fa6d6f8c Merge branch 'master' into dev 2023-05-31 15:20:23 +02:00
Bram Kragten 3bfcb808f5 Bumped version to 20230531.0 2023-05-31 15:17:21 +02:00
Paul Bottein 9a30fe81c6 Use delete instead of remove for favorite colors (#16696) 2023-05-31 13:16:00 +00:00
Paul Bottein c864edee72 Reset edit mode when closing more info dialog (#16695) 2023-05-31 13:11:10 +00:00
Bram Kragten 36268d5048 fix error messages of addon mount picker (#16694) 2023-05-31 15:00:32 +02:00
karwostsandBram Kragten 5217d427e9 Support to|from null in UI for ha-automation-trigger-state (#15071)
Co-authored-by: Bram Kragten <[email protected]>
2023-05-31 12:28:16 +00:00
karwostsandBram Kragten aea668e754 Minor UI bugfixes for selector-datetime and dialog-date-picker (#15759)
Co-authored-by: Bram Kragten <[email protected]>
2023-05-31 12:26:01 +00:00
Bram Kragten 2219c9bbd3 Throttle replace state in restore scroll (#16693) 2023-05-31 12:18:48 +00:00
Bram Kragten 9b896c63b6 Fix my link for config flow start (#16689) 2023-05-31 14:05:11 +02:00
Bram Kragten 30af576ff5 Remove unused old code (#16691) 2023-05-31 12:04:45 +00:00
Bram Kragten 585db6ab3f Close dialog when clicked on link (#16690) 2023-05-31 14:01:47 +02:00
karwosts 046475e7ac Fix blueprint script editor defaults handling (#16196) 2023-05-31 12:58:22 +02:00
karwosts 648383addd Fix ha-combo-box open direction (#16119) 2023-05-31 12:55:44 +02:00
Paul Bottein 10018b4c32 Update default colors for more info light favorite colors (#16688)
Update default favorite color for more-info-light
2023-05-31 12:48:49 +02:00
Philip Allgaier 872d3e4875 Make badge colors use the generic error/warning/success/info colors (#14728) 2023-05-31 12:44:48 +02:00
Bram Kragten 881f5e5012 Fix energy compare (#16687) 2023-05-31 12:42:03 +02:00
Bram Kragten 9797950f32 Use memoize in formatDateNumeric (#16686) 2023-05-31 12:36:52 +02:00
Bram Kragten 25986f239e Blueprints: show error in alert dialog when clicked (#16684) 2023-05-31 12:35:38 +02:00
Raman GuptaandBram Kragten b586210ff1 Support zwave config parameters not on endpoint 0 (#16597)
Co-authored-by: Bram Kragten <[email protected]>
2023-05-31 12:11:26 +02:00
karwosts 748925ede9 Localize time string in time trigger and condition (#16681) 2023-05-31 12:07:30 +02:00
Paul Bottein a9f1c4a198 Add button bar for light modes (#16683)
* Add button bar for light modes

* Add disabled style

* Fix favorite colors display condition

* Fix color temp button
2023-05-31 11:48:22 +02:00
Bram Kragten d914fb0cfc Revert "Use ES modules and dynamic import for Webpack latest builds (… (#16679)
Revert "Use ES modules and dynamic import for Webpack latest builds (#16620)"

This reverts commit 7b350e31dd.
2023-05-30 17:56:38 -04:00
Bram Kragten 5218e1352e async cleanup 2023-05-30 23:43:13 +02:00
Bram Kragten eb0759a3b3 Fix integration translations (#16678) 2023-05-30 23:20:12 +02:00
Bram Kragten 88522ed155 change order 2023-05-30 22:59:34 +02:00
Bram Kragten 64e7fc6591 Fix my link for integration (#16676) 2023-05-30 22:02:52 +02:00
Christoph Wen, B.Sc 2ad6253b72 Add setting to localize numeric dates independent from language (#15770) (#16489) 2023-05-30 19:39:27 +00:00
Bram Kragten 7e5a85dbe7 Allow to change switch as x (#16671) 2023-05-30 21:32:06 +02:00
Paul BotteinandBram Kragten 0771a780d9 Light more info enhancement (#16673)
Co-authored-by: Bram Kragten <[email protected]>
2023-05-30 18:41:12 +00:00
Steve Repsher 7b350e31dd Use ES modules and dynamic import for Webpack latest builds (#16620) 2023-05-30 18:27:49 +00:00
Bram KragtenandPaul Bottein 70fbf68603 Overhaul Integrations page, add integration page (#16640)
Co-authored-by: Paul Bottein <[email protected]>
2023-05-30 20:09:26 +02:00
Bram Kragten 2b4f199337 Tweak style of related items (#16672) 2023-05-30 16:12:41 +00:00
Bram Kragten a70d7d8de3 Related blueprints (#16618) 2023-05-30 15:04:45 +02:00
renovate[bot] e0c1f98803 Update babel monorepo to v7.22.3 (#16668)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-30 10:40:14 +00:00
Bram Kragten 4b7a517d98 Fix async update localize (#16667) 2023-05-30 10:25:21 +00:00
26d4839dfd Update dependency @types/chromecast-caf-receiver to v6 (#15724)
* Update dependency @types/chromecast-caf-receiver to v6

* Import cast namespace from receiver for receiver/media entry

* Use sender event types in manager and remove anonymous listeners

* Apply suggestions from code review

* prettier

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2023-05-30 09:30:04 +00:00
Jonas BerglerandBram Kragten c358d724a7 update hidden_description to explain the behavior of the visible setting more clearly. (#16662)
Co-authored-by: Bram Kragten <[email protected]>
2023-05-30 09:27:22 +00:00
Allen Porter 0ab7934c09 Add a vertical scrollbar for the calendar list (#16657) 2023-05-30 10:49:14 +02:00
Allen Porter 6eac229901 Disable calendar selection when editing existing Calendar Events (#16656) 2023-05-30 10:48:34 +02:00
Joakim Sørensen 5006dfc138 Use __STATIC_PATH__ in more places so the supervisor panel can reach paths (#16665)
Use __STATIC_PATH__ in more places so the supervisor panel can reach paths
2023-05-30 10:45:58 +02:00
renovate[bot] d9d38efd93 Update babel monorepo (#16658)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-30 00:40:11 -04:00
renovate[bot] 9fe3a500d5 Update workbox monorepo to v6.6.0 (#16659)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-30 00:29:12 -04:00
Raman GuptaandBram Kragten 3df7c50690 Add frontend support for datetime platform (#14391)
Co-authored-by: Bram Kragten <[email protected]>
2023-05-29 23:32:57 +02:00
Bram Kragten 38cf774a0d Use ESM version of hls.js (#16655) 2023-05-29 20:38:21 +02:00
renovate[bot] 98d22d38c3 Update vaadinWebComponents monorepo to v24.0.7 (#16653)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-29 16:30:29 +02:00
renovate[bot] 357dbb591b Update babel monorepo to v7.22.0 (#16654)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-29 16:29:54 +02:00
renovate[bot] aa5df06bc3 Update dependency @lezer/highlight to v1.1.6 (#16652)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-29 16:28:24 +02:00
rtm516 07a66b4bff Fix topbar overflowing card for add-on store (#16637) 2023-05-29 14:22:03 +00:00
renovate[bot] f466196fa8 Update dependency hls.js to v1.4.4 (#16651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-29 16:10:15 +02:00
Marvin Wichmann 04ae0b34af Update WS commands for config entries (#16647) 2023-05-29 16:08:25 +02:00
Joakim Sørensen 6f48267dae Include share as mount usage option (#16636) 2023-05-29 11:43:12 +02:00
renovate[bot] be1f5d99c8 Update dependency webpack to v5.84.1 (#16649) 2023-05-28 20:46:25 +00:00
renovate[bot] 27b9b4dcc5 Update fullcalendar monorepo to v6.1.8 (#16644)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-28 13:48:53 -04:00
renovate[bot] 08b57d6168 Update dependency webpack to v5.84.0 (#16641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-28 13:46:32 -04:00
renovate[bot] 3e474daa32 Update dependency @lezer/highlight to v1.1.5 (#16638) 2023-05-27 13:11:42 -04:00
renovate[bot] 48c1e8b56c Update dependency @codemirror/state to v6.2.1 (#16632) 2023-05-27 13:09:19 -04:00
karwosts fd0c0a95ca Add a description for time condition (#16499) 2023-05-27 18:27:24 +02:00
Paul Bottein 83570f2419 Add missing translations for effect and preset translation in more info (#16634) 2023-05-26 23:01:52 +02:00
Paul Bottein 633c6cfc9b Use colored slider background for more info (#16633) 2023-05-26 17:45:57 +02:00
Paul Bottein 54b4c9f347 Add favorite colors to more info light (#16592)
* Add default favorite colors

* Don't show favorite colors if no entity registry entry

* Move color picker in its own component

* Fix more info dialog width

* Make favorite color editable

* Don't include white mode as favorite

* Add label for favorite color button

* Add support for hs, rgbw and rgbww colors

* Adapt color wheel color according to white value

* Add translation

* Add keyboard control to color temp wheel

* Use bottom sheet style for edit favorite dialog

* Fix listener

* Edit color temp icon

* Disable favorite color when available

* Only admin can edit a color

* Refactor close action

* Clean css

* Use ha button

* Fix ha-border-radius for bottom sheet
2023-05-26 17:23:49 +02:00
starkillerOGandBram Kragten 85e7986b44 Always show "polling for updates" switch (#16629)
Co-authored-by: Bram Kragten <[email protected]>
2023-05-26 15:52:57 +02:00
Paul Bottein da0cf9d950 Create outlined button component (#16631)
* Create outlined button component

* Fix css comment

* Don't use Md classes

* Simplify
2023-05-26 15:28:49 +02:00
Bram Kragten ef51336770 Don't set name for entities that use device name already (#16613) 2023-05-26 14:54:49 +02:00
Bram Kragten a09db75980 Bumped version to 20230526.0 2023-05-26 09:00:02 +02:00
J. Nick Koston 77d1b19ecb Complete persistent notifications migration (#16476)
* Complete migration of persistent notifications

* Complete migration of persistent notifications

* revert
2023-05-25 23:09:04 -04:00
renovate[bot] fba12f35ac Update typescript-eslint monorepo to v5.59.7 (#16627) 2023-05-25 22:50:21 +00:00
renovate[bot] 00198c6937 Update vaadinWebComponents monorepo to v24.0.6 (#16621) 2023-05-25 18:35:51 -04:00
Paul Bottein 71bb540352 Use key instead of keycode for key event (#16625) 2023-05-25 18:47:57 +02:00
Bram Kragten c4ff1a8646 fix keypress in code editor causing flow to submit (#16623) 2023-05-25 18:01:46 +02:00
Bram Kragten a9c27ad8dd Save automation clipboard in session storage (#16624) 2023-05-25 17:58:05 +02:00
Joakim Sørensen dacdc62672 Change OS version for mounts to placeholder (#16607) 2023-05-25 09:51:09 +02:00
karwosts cccce5711c Fix displayed unit for fixed water price (#16616) 2023-05-24 18:21:41 +02:00
Joakim Sørensen 50bd9da94c Att tip to manage media dialog about network storage (#16612) 2023-05-24 17:18:46 +02:00
Bram Kragten dde27c3524 Support entity reg id in device automations (#15387) 2023-05-24 14:37:45 +02:00
Joakim Sørensen 85acafe8a8 Fix reload mounts callback when doing changes in dialog (#16615) 2023-05-24 12:31:41 +00:00
Bram Kragten c1748138a8 fix links to scripts from device and area pages (#16611)
Fixes #16602
2023-05-24 14:20:36 +02:00
Joakim SørensenandBram Kragten 9111f58e52 Add dialog to change default backup location (#16610)
* Add dialog to change default backup location

* Add guard

* Update src/components/ha-mount-picker.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-05-24 12:03:14 +02:00
karwosts cefaaadf95 Fix line chart tooltips to use XY mode (#16605) 2023-05-24 11:52:26 +02:00
karwosts 29846a168e Add cut / copy / paste support to automation & script editor (#16488) 2023-05-24 11:47:33 +02:00
renovate[bot] 31c89d70c5 Update dependency @octokit/rest to v19.0.11 (#16606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-23 22:37:51 -04:00
renovate[bot] d5cea75fe4 Update dependency glob to v10.2.6 (#16608)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-23 22:36:12 -04:00
renovate[bot] 35d212e850 Update dependency @octokit/rest to v19.0.9 (#16598) 2023-05-23 12:07:01 -04:00
karwosts aea098ff17 Fix compare button for energy cards on manual dashboard (#16579) 2023-05-23 14:55:12 +02:00
karwosts c5205ae8db Add a description for time pattern trigger (#16520) 2023-05-23 14:47:41 +02:00
Paul Bottein 303087d049 Fix documentation form (#16601) 2023-05-23 14:45:53 +02:00
Paul BotteinandBram Kragten e9d9d89d79 New color picker for HS and color temp (#16549)
Co-authored-by: Bram Kragten <[email protected]>
2023-05-23 14:45:23 +02:00
Bram KragtenandPaul Bottein a5b5e61ed4 Add backup location selector (#16567)
Co-authored-by: Paul Bottein <[email protected]>
2023-05-23 13:35:31 +02:00
Joakim Sørensen 22dc757382 Add guards for network storage (#16591) 2023-05-23 12:33:12 +02:00
Bram Kragten 4ccfd6a3fc Add options flow button to conversation agent in assist pipeline dialog (#16595) 2023-05-23 12:32:18 +02:00
Erik Montnemery 5a36f100a9 Add WS command for getting a config entry (#16600)
* Add WS command for getting a config entry

* Correct typing
2023-05-23 10:43:53 +02:00
renovate[bot] 847c8407de Update dependency eslint to v8.41.0 (#16596) 2023-05-22 20:21:48 -04:00
J. Nick Koston ed1784b70f Avoid entity registry subscribe for the media browser (#16537) 2023-05-22 19:43:01 +02:00
Trevor North e8521c59eb Add sensor device class volatile_organic_compounds_parts (#16576)
Add support for volatile_organic_compounds_parts
2023-05-22 08:42:15 +00:00
Bram Kragten 34e59e543b Add support for offline db migration (#16566) 2023-05-22 10:39:06 +02:00
Steve Repsher 330aa23801 Use .nvmrc for GitHub actions (#16569) 2023-05-22 10:38:54 +02:00
Steve Repsher 06db338a15 Upgrade node to v18 (LTS) (#16589) 2023-05-22 10:38:24 +02:00
renovate[bot] 8cff4cda47 Update dependency sinon to v15.1.0 (#16587)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-21 22:25:40 -04:00
renovate[bot] f7e7c916ba Update dependency @types/marked to v4.3.1 (#16588)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-21 22:24:02 -04:00
renovate[bot] 13ab5ab70a Update dependency leaflet to v1.9.4 (#16586)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-21 22:22:56 -04:00
renovate[bot]andSteve Repsher cc61131e4b Lock file maintenance (#16578)
* Lock file maintenance

* Update @codemirror/language to eliminate issue with duplicate

* Update @codemirror/view to eliminate issue with duplicate

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-05-21 04:15:17 +00:00
Bram Kragten 099aa54b80 Add support for external assist (#16556)
* Add support for external assist

* Update hui-root.ts
2023-05-20 21:37:08 -04:00
renovate[bot] e35d795ba8 Update dependency terser-webpack-plugin to v5.3.9 (#16585) 2023-05-21 00:58:31 +00:00
renovate[bot] 39de8cd6ba Update dependency webpack to v5.83.1 (#16583) 2023-05-20 18:26:53 -04:00
renovate[bot] fdddf27162 Update dependency glob to v10.2.5 (#16584) 2023-05-20 18:23:33 -04:00
renovate[bot] cec7a24234 Update dependency @lrnwebcomponents/simple-tooltip to v7 (#16548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-20 18:10:19 +02:00
renovate[bot] ea2e9de37a Update dependency @codemirror/view to v6.11.3 (#16582) 2023-05-20 11:52:58 -04:00
renovate[bot] d9cb288c1d Update dependency tar to v6.1.15 (#16581) 2023-05-20 10:48:03 -04:00
renovate[bot] 53bd4298e7 Update typescript-eslint monorepo to v5.59.6 (#16577) 2023-05-18 17:08:14 -04:00
renovate[bot] 5bea929c1e Update dependency glob to v10.2.4 (#16573)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-18 08:39:40 -04:00
Bram Kragten eb220fa1a0 Fix overflow menu being above dialogs (#16558)
Fix device actions being above dialogs
2023-05-17 10:23:30 -04:00
Franck Nijhof 67b64b2d5c Add entity attribute value translations for media_player (#16559)
Add entity attribute translations for media_player
2023-05-17 15:27:32 +02:00
Franck Nijhof 42aa4ab7c2 Add entity attribute value translations for vacuum (#16564) 2023-05-17 15:27:05 +02:00
Franck Nijhof d873f26db3 Add entity attribute value translations for humidifier (#16565) 2023-05-17 15:26:16 +02:00
Franck Nijhof e354f5de12 Add entity attribute value translations for remote (#16563) 2023-05-17 15:25:21 +02:00
Bram Kragten 92ed62985d Focus pin input when adding zwave device (#16557) 2023-05-17 12:53:01 +02:00
Bram Kragten cbcca6e190 Increase weight of name and domain in add integration search (#16562) 2023-05-17 12:51:31 +02:00
Franck Nijhof 2ed48d67c6 Exclude device trackers from person more info (#16554) 2023-05-17 08:33:19 +02:00
renovate[bot] 8fb2bf472a Update dependency @octokit/rest to v19.0.8 (#16555)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 23:47:09 -04:00
renovate[bot] 51bdf85642 Update dependency @codemirror/view to v6.11.2 (#16553)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 21:39:30 +00:00
renovate[bot] b7a4eb33cf Update dependency @rollup/plugin-commonjs to v25 (#16551) 2023-05-16 09:53:59 -04:00
renovate[bot] 3c2d326b54 Update dependency @codemirror/autocomplete to v6.7.1 (#16547) 2023-05-16 07:51:05 -04:00
renovate[bot] 24e6d19e18 Update vaadinWebComponents monorepo to v24.0.5 (#16544)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 02:22:28 +00:00
renovate[bot] 9370411019 Update CodeMirror (#16545)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 02:22:09 +00:00
renovate[bot] d5c7e7849e Update fullcalendar monorepo to v6.1.7 (#16542) 2023-05-15 22:09:45 -04:00
renovate[bot] c5e62248b9 Update typescript-eslint monorepo to v5.59.5 (#16543) 2023-05-15 22:07:29 -04:00
renovate[bot] c5e0efb8e0 Update dependency webpack to v5.82.1 (#16540) 2023-05-16 01:53:51 +00:00
renovate[bot] 82f88ca7d7 Update dependency webpack-cli to v5.1.1 (#16541) 2023-05-15 21:38:39 -04:00
renovate[bot] c676cddb13 Update dependency glob to v10.2.3 (#16538) 2023-05-15 19:53:55 -04:00
renovate[bot] 036e2a9e46 Update dependency hls.js to v1.4.3 (#16539) 2023-05-15 19:51:44 -04:00
renovate[bot] 319d8bec29 Update dependency @types/tar to v6.1.5 (#16535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-15 21:35:46 +00:00
renovate[bot] aa864cf0b6 Update dependency @lit-labs/virtualizer to v2.0.2 (#16534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-15 21:22:52 +00:00
Steve Repsher eabd8b54f4 Correct Terser ECMA option (#16518) 2023-05-15 09:54:59 +02:00
Bram Kragten aa063d0a3e Replace onboarding inputs with default inputs (#16514) 2023-05-12 13:15:28 +02:00
Paul Bottein 75f080ee85 Add last-changed date to more-info (#16509) 2023-05-12 10:58:52 +00:00
Bruno Luvizotto 557fe33807 Add interval duration to history tooltip (#16486) 2023-05-12 12:50:34 +02:00
Paul Bottein 5bd49c18d1 Update more info light actions (#16512) 2023-05-12 00:17:02 +02:00
Paul Bottein a461d58df2 Fix more info dialog margin for material web button (#16513) 2023-05-11 17:16:15 +02:00
karwosts ae8eafe8f9 Honor entity ordering in statistics graph card (#16504) 2023-05-11 11:21:18 +02:00
Paul Bottein 450565799e Allow adding variable action in the automation UI (#16502) 2023-05-11 11:19:36 +02:00
Erik Montnemery 72403f4276 Remove calculation of change from frontend (#16477) 2023-05-11 10:17:12 +02:00
renovate[bot] d66ca0467e Update dependency webpack-dev-server to v4.15.0 (#16501) 2023-05-10 18:12:00 -04:00
Bram Kragten d46201ebd8 fix supervisor ingress routing (#16474) 2023-05-10 16:03:19 +02:00
Bram Kragten 689d123890 Add search to add-ons page (#16459) 2023-05-10 14:59:24 +02:00
Bram KragtenandPaul Bottein bcdb24849d Add support for filtering service fields (#16004)
Co-authored-by: Paul Bottein <[email protected]>
2023-05-10 14:59:13 +02:00
Paul Bottein 3838d76094 Ha dialog header (#16485) 2023-05-10 14:34:19 +02:00
Bram Kragten 3325cbfa28 Use entity id as label in entity picker dev tools (#16484) 2023-05-10 10:23:33 +02:00
renovate[bot] 24fc2a0ccc Update dependency webpack-cli to v5.1.0 (#16495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-10 00:29:02 -04:00
renovate[bot] d6ea6f8041 Update dependency terser-webpack-plugin to v5.3.8 (#16493) 2023-05-09 22:11:35 -04:00
renovate[bot] 8384ef7a5c Update dependency webpack-dev-server to v4.14.0 (#16494) 2023-05-09 22:09:49 -04:00
renovate[bot] 2869c5f26b Update dependency core-js to v3.30.2 (#16490) 2023-05-09 20:04:47 -04:00
renovate[bot] c098c55b8f Update dependency idb-keyval to v6.2.1 (#16487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-09 16:20:53 -04:00
Bram Kragten fec974712f Add any to number selector step typing (#16483) 2023-05-09 14:30:52 +02:00
Bruno Luvizotto 0be5aa108c Fix history redraw timer (#16472) 2023-05-09 12:32:13 +02:00
Joakim Sørensen ec36d4a381 Use "any" as step for add-on configuration floats (#16478) 2023-05-09 12:22:17 +02:00
Joakim Sørensen ccf3238318 Fix link to new automation (#16479) 2023-05-09 11:12:00 +02:00
renovate[bot] bcfa6c5a4b Update dependency eslint to v8.40.0 (#16475) 2023-05-08 18:51:17 -04:00
G Johansson e371f5d406 Lock entity options (#16344) 2023-05-08 22:06:21 +02:00
Bram Kragten 6d4e3a0de3 Allow supervisor panel to unsubscribe, cleanup (#16470) 2023-05-08 15:56:05 -04:00
renovate[bot] b845c54948 Update dependency open to v9 (#15909)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-08 16:11:05 +00:00
renovate[bot] 87951ebf82 Pin dependency @types/babel__plugin-transform-runtime to 7.9.2 (#16471)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-08 16:10:15 +00:00
Steve Repsher 586079917d Convert remaining gulp modules to ESM (#16430) 2023-05-08 17:43:29 +02:00
Steve Repsher aa3fd70966 Use Babel runtime for helpers and regenerator (33%+ bundle reduction) (#16466) 2023-05-08 14:47:53 +02:00
bikeshop45 a5ba2499c0 Fix attribute url links (#16462) 2023-05-08 09:13:35 +00:00
Joakim SørensenandFranck Nijhof 36a87da1fe Add UI for network mounts (#16357)
Co-authored-by: Franck Nijhof <[email protected]>
2023-05-08 10:18:09 +02:00
Bram Kragten 8f75c314f5 Fix supervisor loading race (#16460) 2023-05-07 22:48:16 -04:00
renovate[bot] d04fc53f08 Update dependency hls.js to v1.4.1 (#16461) 2023-05-07 17:36:26 -04:00
renovate[bot] c65c6f8767 Update dependency lit to v2.7.4 (#16464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-07 21:59:44 +02:00
renovate[bot] b81668fbce Update dependency @codemirror/autocomplete to v6.6.1 (#16452)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-06 14:17:03 -04:00
renovate[bot] 2d8e23ba48 Update dependency eslint-plugin-wc to v1.5.0 (#16448) 2023-05-06 13:20:54 -04:00
renovate[bot] e947f8120c Update dependency eslint to v8.39.0 (#16447) 2023-05-06 13:14:16 -04:00
renovate[bot] 6424020f64 Update dependency date-fns to v2.30.0 (#16446) 2023-05-06 17:06:08 +02:00
renovate[bot] a611930fa7 Update formatjs monorepo (#16449) 2023-05-06 17:05:17 +02:00
renovate[bot] f0e990f330 Update CodeMirror (#16443) 2023-05-06 10:13:27 -04:00
renovate[bot] 8c1d2362a4 Update CodeMirror (#16441) 2023-05-06 02:37:14 -04:00
renovate[bot] 69067010a3 Update dependency @types/marked to v4.3.0 (#16442) 2023-05-06 06:32:32 +00:00
renovate[bot] 0b0ba97aee Update fullcalendar monorepo to v6.1.6 (#16439) 2023-05-06 03:22:08 +00:00
renovate[bot] 792fe15dac Update typescript-eslint monorepo to v5.59.2 (#16440) 2023-05-06 03:21:24 +00:00
renovate[bot] d5b8fa482c Update dependency lit to v2.7.3 (#16435) 2023-05-05 23:11:04 -04:00
renovate[bot] 2fefbbfe24 Update dependency tar to v6.1.14 (#16438) 2023-05-06 03:05:58 +00:00
renovate[bot] 22c509533a Update dependency qrcode to v1.5.3 (#16437) 2023-05-05 23:02:41 -04:00
renovate[bot] 544dfa0973 Update dependency @babel/core to v7.21.8 (#16432) 2023-05-05 22:56:07 -04:00
renovate[bot] aac3ec353b Update dependency prettier to v2.8.8 (#16436) 2023-05-05 22:45:35 -04:00
renovate[bot] efbc6d9069 Update dependency lint-staged to v13.2.2 (#16433) 2023-05-05 22:44:19 -04:00
renovate[bot]andBram Kragten 4e390b4c57 Update dependency @lit-labs/virtualizer to v2 (#15932)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <[email protected]>
2023-05-05 15:51:12 +00:00
renovate[bot] 849e65a2b3 Update dependency @lit-labs/context to v0.3.1 (#16428)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 17:35:27 +02:00
renovate[bot] a6fdb54697 Update dependency glob to v10.2.2 (#16429)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 15:32:34 +00:00
Sven Serlier aa196704b7 Update URL (#16427) 2023-05-05 15:16:49 +00:00
renovate[bot]andBram Kragten c93fcb8a2a Update dependency @material/web to v1.0.0-pre.7 (#15940)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <[email protected]>
2023-05-05 15:13:25 +00:00
renovate[bot] 5768764282 Update babel monorepo to v7.21.5 (#16426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 14:55:01 +00:00
renovate[bot] e6c8881b21 Update Yarn to v3.5.1 (#16425)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 14:48:45 +00:00
renovate[bot] ac30335fc2 Update vaadinWebComponents monorepo to v24 (major) (#15778)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 16:33:29 +02:00
renovate[bot] 1e5c30a259 Update dependency @lrnwebcomponents/simple-tooltip to v4.2.0 (#16024)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 16:32:06 +02:00
renovate[bot] 1da009b473 Update dependency hls.js to v1.4.0 (#16191)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 16:31:07 +02:00
Bram Kragten bc81499e7c Bumped version to 20230503.3 2023-05-05 16:26:53 +02:00
Paul Bottein c31378ad75 Fetch entries integration onboarding (#16424)
* Fetch loaded entries in integration onboarding

* Proper fix
2023-05-05 16:26:44 +02:00
Paul Bottein 02542e528e Fetch entries integration onboarding (#16424)
* Fetch loaded entries in integration onboarding

* Proper fix
2023-05-05 14:24:32 +00:00
Paul Bottein 8ce8b63cfc Adapt unsupported microphone message (#16419) 2023-05-05 16:15:23 +02:00
puddly c7ec6903fe ZHA channel changing dialog and settings redesign (#16381) 2023-05-05 15:05:08 +02:00
Raman GuptaandBram Kragten ecb2a73e2b Add frontend support for date platform (#14389)
Co-authored-by: Bram Kragten <[email protected]>
2023-05-05 15:01:47 +02:00
Raman Gupta 59db31cdb5 Remove CSS component from time entity row (#16416) 2023-05-05 15:01:13 +02:00
Paul Bottein 643556ded3 Adapt unsupported microphone message (#16419) 2023-05-05 00:18:18 +02:00
Bram Kragten 4e5a18d272 Remove polymer types, cleanups (#16385)
* Remove polymer types, cleanups

* Delete updated.ts
2023-05-04 15:24:24 +00:00
Raman Gupta ab237f19c0 Add frontend support for time platform (#14390) 2023-05-04 17:05:30 +02:00
Joe 3fa3d333c4 Collapse empty Masonry columns (#5315, #6632) (#16351) 2023-05-04 17:04:03 +02:00
Bram Kragten 1cb7e798da Bump webpack to 5.82 (#16412) 2023-05-04 11:02:31 -04:00
Bram Kragten 11640b31f6 Update tts media browser to use voices (#16362) 2023-05-04 16:33:52 +02:00
Steve Repsher 4740ce685f Redefine browser requirements for legacy (ES5) builds (#16384) 2023-05-04 16:33:13 +02:00
Steve Repsher d2321b535c Refactor Intl polyfills and remove from ES5 entrypoints (#16349) 2023-05-04 15:49:56 +02:00
Steve Repsher f185e886c3 Convert top gulp modules to ESM (#16387) 2023-05-04 15:49:41 +02:00
Bram Kragten 8695bbc490 Move globalThis polyfill to compatibility, add more compatibility (#16386) 2023-05-04 15:49:28 +02:00
Bram Kragten 11f77b09e6 Bumped version to 20230503.2 2023-05-04 15:46:34 +02:00
Bram Kragten ba7d7556a8 fix expose view for yaml config (#16408) 2023-05-04 15:42:14 +02:00
Bram Kragten 31da0d8678 Fix codemirror selection color (#16409) 2023-05-04 15:41:57 +02:00
Bram Kragten 9f195534b5 Fix entity areas in expose (#16402) 2023-05-04 15:41:40 +02:00
Bram Kragten 060f6ce3d8 fix expose view for yaml config (#16408) 2023-05-04 15:30:47 +02:00
Bram Kragten ed19cfeaaa Fix codemirror selection color (#16409) 2023-05-04 15:13:32 +02:00
Paul Bottein 79d6453c7e Don't hide battery entities in compute card function (#16373) 2023-05-03 19:44:01 +02:00
Bram Kragten 694fc7d4ba Fix entity areas in expose (#16402) 2023-05-03 19:02:20 +02:00
Bram Kragten a293e7b91c 20230503.1 (#16399) 2023-05-03 16:15:27 +02:00
Bram Kragten 8205a30baf Bumped version to 20230503.1 2023-05-03 16:14:23 +02:00
Bram Kragten 25af9a9770 Enable Google assistant no 2fa for all entities (#16397) 2023-05-03 16:12:49 +02:00
Paul Bottein 6c25e23ad2 RTL fixes for voice assistant page (#16398) 2023-05-03 13:14:02 +00:00
Paul Bottein a39c2a314a Branding adjustment for cloud discover (#16396)
* Branding adjustment for cloud discover

* Amazing
2023-05-03 14:59:35 +02:00
Bram Kragten 1ea70f3191 20230503.0 (#16395) 2023-05-03 14:14:02 +02:00
Bram Kragten 02a94c04af Bumped version to 20230503.0 2023-05-03 14:13:12 +02:00
Bram Kragten fc97ca324c Add support for native names for other languages than HA has (#16393)
* Add support for native names for other languages than HA has

* catch unsupported locales
2023-05-03 13:54:59 +02:00
Paul Bottein 4a0d84d2f6 Open more info from voice settings (#16392)
* Open more info from voice settings

* review
2023-05-03 10:58:43 +00:00
Bram Kragten b550c67a9f Fetch supported items when startup is done (#16390) 2023-05-03 12:36:16 +02:00
Bram Kragten a3ec83a684 Only count exposed entities with a state (#16391)
Only count entities with a state
2023-05-03 11:47:58 +02:00
Bram Kragten 822f47143b keep expose entity dialog modal longer (#16389) 2023-05-03 10:59:36 +02:00
c0ffeeca7 da1df9d8cc Fix minor typo on expose entities dialog (#16388)
- slight rephrasing suggestion.
2023-05-03 10:38:26 +02:00
Bram Kragten aa155261f5 Update ha-integration-card.ts 2023-05-02 22:39:56 +02:00
Bram Kragten 29aa762f7c 20230502.0 (#16382) 2023-05-02 22:01:32 +02:00
Bram Kragten d56e4afe92 Bumped version to 20230502.0 2023-05-02 21:58:23 +02:00
Bram Kragten e766c277f5 Update expose for entities not in the entity registry (#16377) 2023-05-02 21:57:51 +02:00
Bram Kragten 6c0011fb45 fix race in assist pipeline dialog (#16380) 2023-05-02 21:41:44 +02:00
Bram Kragten a6e71f4c0a Optimise supervisor entrypoint (#16379) 2023-05-02 20:45:35 +02:00
Bram Kragten d6382e59c6 Add name for google translate tts (#16378) 2023-05-02 20:34:52 +02:00
Paul Bottein ab308af61f Improve assist dialog (#16371)
* Improve RTL, style and interaction

* Add message for microphone not supported

* Fix style

* Add explanation as a message

* Update message

* Update translation variable
2023-05-02 16:54:25 +00:00
Paul Bottein 15eab18e07 Reduce height for config entry list in integration page (#16370) 2023-05-02 11:12:13 +02:00
Paul Bottein c8e0227a5c Fix dashboard theme background (#16368) 2023-05-02 11:11:44 +02:00
Bram Kragten f2a8528429 Use language picker for cloud tts language (#16363)
* Use language picker for cloud tts language

* Update ha-browse-media-tts.ts
2023-05-02 10:49:01 +02:00
Steve Repsher 3ed3dab0a1 Clean up imports for some layouts (#16365) 2023-05-01 20:34:21 +02:00
Bram Kragten d0c7f65256 20230501.0 (#16364) 2023-05-01 19:55:38 +02:00
Bram Kragten f99f554f19 Bumped version to 20230501.0 2023-05-01 19:54:40 +02:00
Bram Kragten e069b5eed1 Update en.json 2023-05-01 17:15:26 +02:00
Allen Porter 3a481ebb1a Fix edits for single instance of all day recurring event (#16354) 2023-05-01 14:48:57 +02:00
Steve Repsher a209fadf18 List Core JS polyfills for browserslist environments (#16356) 2023-05-01 14:47:57 +02:00
Bram Kragten 9f1bd1e085 Fix unused entities (#16359) 2023-05-01 14:46:54 +02:00
Bram Kragten edc6da04f7 Make sure stt_binary_handler_id is reset (#16360) 2023-05-01 14:46:44 +02:00
Bram Kragten 2fb1dd0ec1 Add icon at unsupported message in voice settings (#16358) 2023-05-01 14:28:26 +02:00
Paul Bottein 3f2aac0842 Fix cloud subscription message in pipeline creation (#16348) 2023-04-28 17:03:34 -04:00
Paul Bottein 71dd822978 20230428.0 (#16347) 2023-04-28 17:40:58 +02:00
Paul Bottein d1877595a5 Bumped version to 20230428.0 2023-04-28 17:19:43 +02:00
Paul Bottein 6379713f57 Fix drag and drop with sortablejs (#16343) 2023-04-28 14:40:01 +02:00
Paul Bottein 3b33195ff6 Add camera view support to image element (#16346) 2023-04-28 14:17:33 +02:00
c0ffeeca7 c7f1f1bcd1 Fix typo (#16341)
* Fix typo

* Fix typo
2023-04-28 08:01:24 +00:00
Paul Bottein c50aad8403 20230427.0 (#16338) 2023-04-27 17:31:29 +02:00
Paul Bottein fac4795f14 Bumped version to 20230427.0 2023-04-27 17:16:04 +02:00
Bram KragtenandPaul Bottein 062e402ef1 Show if entity is supported in expose list (#16335)
* Show if entity is supported in expose list

* Add translations and refactor code

---------

Co-authored-by: Paul Bottein <[email protected]>
2023-04-27 17:12:12 +02:00
Bram KragtenandPaul Bottein 29be64a858 Add not supported warning in entity voice settings (#16336)
* Add not supported warning in entity voice settings

* Add alexa support and improve style

* Only toggle supported

---------

Co-authored-by: Paul Bottein <[email protected]>
2023-04-27 17:11:49 +02:00
Paul Bottein b3b74b8328 Move debug and preferred button to top (#16337) 2023-04-27 15:02:57 +02:00
Paul Bottein 37ba34cb0d Virtualize the add exposed entity list (#16333) 2023-04-27 13:22:37 +02:00
dependabot[bot] 8ecdde3507 Bump yaml from 2.2.1 to 2.2.2 (#16310) 2023-04-27 10:12:03 +02:00
Paul Bottein 04d34aa80c Improve search and filtering in expose entity page (#16330) 2023-04-27 09:50:19 +02:00
J. Nick Koston 26bb1ba146 Revert "Avoid fetching unused stats state column for more info" (#16328)
Revert "Avoid fetching unused stats state column for more info (#16141)"

This reverts commit 49a14a7265.
2023-04-27 09:31:06 +02:00
Bram Kragten b7667d2cbf 20230426.0 (#16327) 2023-04-26 18:31:51 +02:00
Bram Kragten 0c36600a81 Merge branch 'master' into dev 2023-04-26 18:17:33 +02:00
Bram Kragten feaf61a0ae Bumped version to 20230426.0 2023-04-26 18:15:53 +02:00
Bram Kragten 3e2844a65a Only show assistants that are active (#16325)
* Only show assistants that are active

* also use in texts

* Add entity id

* Update ha-config-voice-assistants-expose.ts

* remove voiceAssistantKeys

* Update entity-voice-settings.ts

* update styling

* search case
2023-04-26 18:15:10 +02:00
Paul Bottein 3a2d7baa25 Fix empty translation (#16326) 2023-04-26 18:14:57 +02:00
Paul Bottein 349cca5ff2 Update icons to expose/unexpose entity (#16323) 2023-04-26 17:08:15 +02:00
Paul Bottein 5cd3ce66f6 Keep area field next to use device area field (#16324) 2023-04-26 14:54:59 +00:00
Bram Kragten 8cf8c41698 Show number of exposed entities (#16321) 2023-04-26 14:23:23 +00:00
Bram Kragten ff4c01e15c Replace paper-item in integration card (#16317) 2023-04-26 16:11:54 +02:00
Paul Bottein addb66f21d Inform user that subscription is needed for cloud services (#16318) 2023-04-26 13:42:44 +00:00
Bram Kragten a5759e36b2 Fix helper entity settings (removing) (#16320) 2023-04-26 15:29:59 +02:00
Bram Kragten 9852186ff7 Update my link for voice assistants (#16319
Making it consistant with others and match

https://github.com/home-assistant/my.home-assistant.io/pull/353
2023-04-26 14:51:31 +02:00
Bram Kragten 19c9486351 Update entity settings, combine basic editor with normal editor (#16297) 2023-04-26 12:23:53 +02:00
Bram Kragten 8c06712ab7 Allow to select a pipeline in voice command dialog (#16291) 2023-04-26 12:10:17 +02:00
Bram Kragten 63de324224 Fix my link add integration: search for discovered items (#16315)
* fix my link add integration

* add confirm back

* Update dialog-add-integration.ts
2023-04-26 12:02:50 +02:00
Bram Kragten 10d476195d Ask to use cloud pipeline as preferred (#16286)
* Ask to use cloud pipeline as preferred

* Update
2023-04-26 00:36:51 -04:00
Johan Frick e0c4b85ef1 Fix options typo for ha-form in gallery (#16305) 2023-04-25 19:59:58 +00:00
Bram Kragten 3441a86613 Update general step description of pipeline dialog (#16307)
update general step description of pipeline dialog
2023-04-25 21:44:51 +02:00
Paul Bottein 643b168c69 Add icon and state formatting for tts and stt domain (#16304) 2023-04-25 21:40:22 +02:00
Paul Bottein db0e5a8a41 Add translations to pipeline UI (#16303) 2023-04-25 20:01:48 +02:00
Ben RandallandBram Kragten 64a693332b Fix height of main automation trace element (#16283)
Co-authored-by: Bram Kragten <[email protected]>
2023-04-25 13:46:15 +00:00
Bram Kragten 327927baa7 Update expose mobile view (#16302) 2023-04-25 13:33:21 +00:00
karwosts ce8fc17ef8 Markdown feature parity for blueprint scripts vs automations (#16250) 2023-04-25 15:31:52 +02:00
Paul Bottein 62ed1d54b0 Voice assistant cloud upsell (#16299) 2023-04-25 12:41:53 +02:00
Bram Kragten 2498f1db41 Fix tts in voice command for iOS (#16300) 2023-04-25 10:02:31 +00:00
Bram Kragten 8a50bb058d Fix audio playing on iOS (#16298) 2023-04-25 09:38:14 +00:00
Bram Kragten e793675c47 Fix dialog text colors theme (#16296)
* Fix dialog text colors theme

* fix drawer border
2023-04-25 00:23:08 +02:00
Paul Bottein 07cef18918 Try TTS in pipeline form (#16292) 2023-04-24 19:39:16 +02:00
Bram Kragten a0263f25c4 Improve tts playback in voice command dialog (#16288) 2023-04-24 18:45:00 +02:00
Paul Bottein 52546ab567 Fix media browser bar position (#16293)
Fixes media browser bar position
2023-04-24 18:09:21 +02:00
Bram Kragten c0ec7e4f09 Remove wrong language from stt event (#16285) 2023-04-24 18:08:36 +02:00
renovate[bot] 8b61390e19 Update vaadinWebComponents monorepo to v23.3.11 (#16289) 2023-04-24 11:55:11 +00:00
Steve Repsher 9ba114777e Add browserslist config and use for Babel preset environment (#16267) 2023-04-24 11:28:27 +02:00
Steve Repsher 4e1e76ccc2 Add module preload to demo page (#16274) 2023-04-24 11:27:40 +02:00
dependabot[bot] 609300f40b Bump home-assistant/wheels from 2022.10.1 to 2023.04.0 (#16284)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-24 11:10:41 +02:00
renovate[bot] eac9ac4757 Update dependency google-timezones-json to v1.1.0 (#16282) 2023-04-23 19:37:23 -04:00
Bram Kragten 708d1b81da Mark lang and country required in onboarding (#16277) 2023-04-23 19:33:44 -04:00
Bram Kragten 35baf4c779 Fix audio recorder (#16280)
FIx audio recorder
2023-04-23 13:48:46 -04:00
renovate[bot] 8d1ae71741 Update dependency sinon to v15.0.4 (#16278)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-23 13:20:24 -04:00
Bram KragtenandPaulus Schoutsen 9b32c9c6b4 Voice picker: Guard for select undefined, update debug pipelines (#16279)
* Voice picker: Guard for select undefined

* Update types, make debug a little nicer

* Add type to stt-start event

* Add language to STT data in render pipeline

---------

Co-authored-by: Paulus Schoutsen <[email protected]>
2023-04-23 17:04:43 +00:00
renovate[bot] 439f34f724 Update dependency @codemirror/commands to v6.2.3 (#16276) 2023-04-22 16:50:59 +00:00
Bram Kragten cef3b99e16 fix add assist dialog (#16275) 2023-04-22 12:43:04 -04:00
renovate[bot] 9dbdf611c5 Update formatjs monorepo (#16273) 2023-04-22 12:31:03 -04:00
Bram Kragten 86f8d2d737 remove underline, format language 2023-04-22 15:42:46 +02:00
Bram KragtenandPaul Bottein 1ded47d368 Use assist_pipeline in voice command dialog (#16257)
* Remove speech recognition, add basic pipeline support

* Add basic voice support

* cleanup

* only use tts if pipeline supports it

* Update ha-voice-command-dialog.ts

* Fix types

* handle stop during stt

* Revert "Fix types"

This reverts commit 741781e392.

* active read only

* Update ha-voice-command-dialog.ts

---------

Co-authored-by: Paul Bottein <[email protected]>
2023-04-21 21:50:30 -04:00
Bram Kragten 85a27e8bb1 Update add assistant dialog (#16266)
* Update add assistant dialog

* fix default agent to ha when no supported

* Update ha-tts-voice-picker.ts

* Update assist-pipeline-detail-conversation.ts

* Update ha-dialog.ts

* dont override config

* Update ha-language-picker.ts
2023-04-21 20:41:30 -04:00
renovate[bot] 878f3b8df4 Update typescript-eslint monorepo to v5.59.0 (#16271)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-21 23:26:24 +00:00
renovate[bot] 50c25a8276 Update dependency glob to v10.2.1 (#16268)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-21 19:07:25 -04:00
renovate[bot] c0de3b8269 Update formatjs monorepo (#16254)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-21 13:15:18 -04:00
Bram Kragten 09f4e19d4c Pipelines: Add voice selector, implement supported languages (#16261) 2023-04-20 22:53:05 +02:00
Bram Kragten 6e91ac2a34 fix css selector 2023-04-20 18:53:28 +02:00
Paul Bottein 49b0c7c3d1 Move error outside ha form for assist pipeline form (#16258) 2023-04-20 18:49:27 +02:00
Paul Bottein be1867900e Use supported_languages for stt, tts and conversation (#16256)
* Use supported_languages for stt, tts and conversation

* Fix disabled condition
2023-04-20 18:01:42 +02:00
Yosi Levy a43f49f4af Fix some RTL aligments (#16252) 2023-04-20 17:05:24 +02:00
Paul Bottein ea0f29782d Assist pipeline language voice (#16255)
* Update types

* Split form into multiple components

* Improve design

* Send all data

* Update wording
2023-04-20 11:02:48 -04:00
Paul Bottein 65161ce581 Language selector (#16253)
* Add language selector

* Use intl display names

* Use language picker in general settings and profile

* Add nativeName option

* Add format language util

* Add display-name polyfill

* Add native name to selector

* Rename variable
2023-04-20 10:12:49 -04:00
Bram KragtenandPaul Bottein 088cc69083 Add pipeline picker/selector (#16224)
Co-authored-by: Paul Bottein <[email protected]>
2023-04-20 09:41:47 +00:00
Bram Kragten be005b4c88 Add language to conversation agent picker (#16244) 2023-04-20 11:26:42 +02:00
Steve Repsher aac28efd32 Streamline HTML generation and consolidate templates (#16117) 2023-04-20 11:10:12 +02:00
Bram Kragten 0d020e0300 Fix stt/tts pickers (#16241) 2023-04-20 11:03:47 +02:00
Steve Repsher eeb84f65b9 Remove unnecessary Babel plugins from dependencies (#16251) 2023-04-20 11:00:04 +02:00
Steve Repsher 22f5d6cacb Migrate Babel loose options to assumptions (#16245) 2023-04-20 10:59:08 +02:00
renovate[bot] 52a7b41096 Lock file maintenance (#16248)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-20 03:18:13 +00:00
renovate[bot] f9f87d1147 Lock file maintenance (#16246) 2023-04-19 19:00:16 -04:00
Paul Bottein 0b3dff00df Revert "Add language selector" (#16247)
Revert "Add language selector (#16242)"

This reverts commit d89ac0f30d.
2023-04-19 23:58:58 +02:00
renovate[bot]andSteve Repsher d48a4ab00a Lock file maintenance (#16231)
* Lock file maintenance

* bump @codemirror/view and eslint-plugin-lit to remove duplicates

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-04-19 21:08:48 +00:00
Paul Bottein d89ac0f30d Add language selector (#16242) 2023-04-19 21:21:27 +02:00
Paul Bottein 3cb3f8d352 Add aliases description in voice dialog (#16233)
* Add aliases description in voice dialog

* Update style

* Remove duplicate margin
2023-04-19 13:52:55 +00:00
Bram Kragten f507a7b8b3 Use yaml to show raw pipeline debug data (#16234) 2023-04-19 15:27:01 +02:00
Paul Bottein 910244f751 Fix sidebar tooltip (#16238) 2023-04-19 14:23:04 +02:00
Bram Kragten 0ce3757b80 Remove default options from tts/stt/conversation agent (#16236) 2023-04-19 14:05:25 +02:00
Paul Bottein c470ced308 Use right naming convention for ui_action and ui_color selector (#16235) 2023-04-19 12:13:19 +02:00
Bram Kragten d8cb5a6a42 Prevent delete pipeline if preferred (#16237) 2023-04-19 12:12:47 +02:00
karwosts afa071465c ha-selector-select fires spurious valueChanged on initialization (#16216) 2023-04-19 08:58:18 +02:00
renovate[bot] 4ff450c5c3 Update dependency webpack-dev-server to v4.13.3 (#16228) 2023-04-18 20:22:42 -04:00
Bram Kragten 790faa9c31 Display historic pipeline events in assist-render-pipeline-run (#16225)
* Display historic pipeline events in `assist-render-pipeline-run`

* Add debug pipeline page

* Update assist-pipeline-run-debug.ts

* dont show alert

* Update assist-pipeline-debug.ts

* simplify

* link to run debug pipeline
2023-04-18 10:45:33 -04:00
Stefan Agner 52f609f742 Write data disk with space everywhere (#16223) 2023-04-18 10:45:23 +02:00
renovate[bot] 51157caf22 Update dependency glob to v10.1.0 (#16221)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-17 22:35:22 -04:00
Bram Kragten 8edb48eedc Fetch latest pipeline run (#16220)
* Fetch latest pipeline run

very basic debug, showing raw event data

* Update dialog-voice-assistant-pipeline-detail.ts

* last one, not first
2023-04-17 19:13:05 -04:00
Bram Kragten e32771fb14 Add tts selector (#16213
* Add tts selector

* Update selector.ts

* Update ha-selector-tts.ts

* Add default

* Update ha-tts-picker.ts

* Update ha-tts-picker.ts

* Not required
2023-04-17 22:52:35 +02:00
Bram Kragten b2f66aa51c Add stt selector (#16215
* Add stt selector

* Update ha-stt-picker.ts

* Add default

* Update ha-stt-picker.ts

* Update ha-stt-picker.ts
2023-04-17 22:09:46 +02:00
Bram Kragten bf70427760 Add conversation agent selector (#16212
* Add conversation agent selector

* Add default option

* Update ha-conversation-agent-picker.ts

* Update ha-conversation-agent-picker.ts
2023-04-17 20:54:30 +02:00
Stefan Agner ac1e6b87ae Change dhcp to auto in network config (#16185) 2023-04-17 18:04:09 +02:00
Bram Kragten 7fa4a75009 Pipeline debug, set pipeline instead of lang (#16217) 2023-04-17 11:35:51 -04:00
Bram Kragten 0f622589a3 Allow to set a default pipeline (#16209) 2023-04-17 10:51:17 -04:00
karwosts dae107d3e3 Fix ha-selector-select filter for multiple values case (#16093) 2023-04-17 11:16:16 +02:00
dependabot[bot] 09ff5cdb58 Bump actions/checkout from 3.5.0 to 3.5.2 (#16208)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-17 09:23:16 +02:00
renovate[bot] 1d42821ff5 Update dependency core-js to v3.30.1 (#16206) 2023-04-17 01:13:53 +00:00
renovate[bot] 6d0a468e09 Update dependency @codemirror/autocomplete to v6.5.1 (#16200) 2023-04-16 20:54:52 -04:00
renovate[bot] 6df02130d9 Update dependency @rollup/plugin-commonjs to v24.1.0 (#16189) 2023-04-15 16:31:40 -04:00
renovate[bot] f9c790e0bb Update dependency html-minifier-terser to v7.2.0 (#16181)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-14 18:13:39 -04:00
renovate[bot] 9d46f0cecd Update dependency @codemirror/view to v6.9.4 (#16183)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-14 17:58:37 -04:00
Bram Kragten e4302a0bb5 Fix onboarding add integration (#16163) 2023-04-14 14:38:34 -04:00
Eric SeveranceandBram Kragten b1f9469002 Add webhook trigger allowed_methods/local_only options (#11680)
Co-authored-by: Bram Kragten <[email protected]>
2023-04-14 16:33:21 +02:00
Joakim Sørensen 0478aed28c Remove ha-call-api-button (#16182) 2023-04-14 14:35:25 +02:00
Joakim Sørensen 3a1fff81b8 Move add-on rebuild over to WS for newer core versions (#16180) 2023-04-14 07:33:03 -04:00
renovate[bot] fa4550a848 Update typescript-eslint monorepo to v5.58.0 (#16176)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-13 23:49:20 -04:00
Bram Kragten 689bc48f31 Rename voice_assistant to assist_pipeline (#16177) 2023-04-13 17:25:32 -04:00
Bram Kragten a998465600 Fix demo deployment (#16178
Update demo_deployment.yaml
2023-04-13 21:37:03 +02:00
Bram Kragten b21605e260 Fix demo deployment (#16178
Update demo_deployment.yaml
2023-04-13 21:34:06 +02:00
Paul Bottein 178ad2dffa Fix back button when directly opening subview (#16145) 2023-04-13 21:16:59 +02:00
Paul Bottein 2e7d973597 Use body scroll with ha-drawer (#16137) 2023-04-13 21:15:01 +02:00
Bram Kragten a741faced1 Update assist config layout a bit (#16170
* Update assist config a bit

* update images

* Update assist-pref.ts
2023-04-13 15:27:17 +02:00
Paul Bottein 5e352f6194 Voice assistants pipeline UI (#16167) 2023-04-13 12:52:10 +00:00
renovate[bot] 639c120b56 Update dependency instant-mocha to v1.5.1 (#16160)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-13 08:42:24 -04:00
J. Nick Koston 7f4dadfc20 Fix energy panel fetching all stats instead of only sum (#16161) 2023-04-13 11:48:14 +02:00
Joakim Sørensen ddb523c133 Use certificate status for better feedback when initialising remote (#16147) 2023-04-13 11:11:47 +02:00
Bram Kragten 21645c2361 Bumped version to 20230411.1 2023-04-13 11:01:42 +02:00
Bram Kragten e781be885d Fix context provider not updated on initializing of hass object (#16159) 2023-04-13 11:01:37 +02:00
akston b15b0e25d6 Fix cropped person image transparency (#16112) 2023-04-13 11:01:18 +02:00
Paul Bottein 2d74873db0 Prevent edit and move view button triggered in the same time (#16143) 2023-04-13 11:00:57 +02:00
Bram Kragten fbb59b1459 Fix context provider not updated on initializing of hass object (#16159) 2023-04-13 08:56:52 +00:00
renovate[bot]andSteve Repsher 1a9b99dd72 Update dependency glob to v10 (#16153)
* Update dependency glob to v10

* Use named export in gallery pages task

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-04-13 03:50:02 +00:00
Bram KragtenandPaul Bottein 442f73b8c5 Add initial expose UI (#16138)
Co-authored-by: Paul Bottein <[email protected]>
2023-04-12 18:33:40 +02:00
Paul Bottein a5edb4caaf Prevent edit and move view button triggered in the same time (#16143) 2023-04-12 14:07:54 +02:00
J. Nick Koston 49a14a7265 Avoid fetching unused stats state column for more info (#16141) 2023-04-12 10:00:03 +02:00
Bram Kragten 6a5568ad4f Optimize app entrypoint (#16048)
* Optimize app entrypoint

* review

* remove legacy support
2023-04-11 13:16:47 +00:00
akston deb53eb180 Fix cropped person image transparency (#16112) 2023-04-11 15:08:29 +02:00
Paul Bottein b076301513 Add sample rate to assist pipeline debug (#16135) 2023-04-11 08:32:18 -04:00
Bram Kragten d50f2bf38c 20230411.0 (#16136) 2023-04-11 10:53:02 +02:00
Bram Kragten a1180b7118 Merge branch 'master' into dev 2023-04-11 10:34:52 +02:00
Bram Kragten 0f45d2e842 Bumped version to 20230411.0 2023-04-11 10:32:24 +02:00
Bram Kragten 770675ab27 Fix button card not updating enough (#16102) 2023-04-11 10:25:54 +02:00
renovate[bot] 8a8da45761 Update dependency eslint to v8.38.0 (#16134) 2023-04-11 01:08:50 +00:00
Paul Bottein 97f983e34a Fix iOS dashboard scroll issue (#16129) 2023-04-10 22:17:37 +02:00
renovate[bot] 45d9b33c75 Update dependency lit to v2.7.2 (#16133)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 15:30:38 -04:00
renovate[bot] f3a1b6763f Update dependency eslint-plugin-lit-a11y to v2.4.1 (#16132)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 15:28:38 -04:00
renovate[bot] 8c6d84e6b0 Update dependency lint-staged to v13.2.1 (#16127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 09:39:07 -04:00
renovate[bot] 2774db1b93 Update dependency @web/dev-server-rollup to v0.4.1 (#16126)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 13:34:31 +00:00
renovate[bot]andSteve Repsher da58aed64c Update dependency core-js to v3.30.0 (#16105)
* Update dependency core-js to v3.30.0

* Update babel preset

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-04-10 13:21:35 +00:00
renovate[bot] 88951a0a70 Update dependency @web/dev-server to v0.1.38 (#16124)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 09:13:42 -04:00
renovate[bot] 54b4efee45 Update dependency @rollup/plugin-node-resolve to v15.0.2 (#16109)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 08:53:07 -04:00
renovate[bot] 43bfe76f63 Update typescript-eslint monorepo to v5.57.1 (#16104) 2023-04-07 12:17:53 -04:00
renovate[bot] 657ae1a7fa Update dependency lit to v2.7.1 (#16103) 2023-04-07 03:05:15 +00:00
renovate[bot] ac95820350 Update dependency glob to v9.3.4 (#16065) 2023-04-06 22:47:04 -04:00
renovate[bot] bd45aa38b4 Update vaadinWebComponents monorepo to v23.3.10 (#16097) 2023-04-06 22:43:36 -04:00
Bram Kragten 494a9f8475 20230406.1 2023-04-06 18:28:17 +02:00
Bram Kragten 067cf19889 Bumped version to 20230406.1 2023-04-06 18:26:01 +02:00
Paul BotteinandBram Kragten cc4e815a58 Fix background and padding on dashboard views (#16098)Co-authored-by: Bram Kragten <[email protected]>
* Fix background and padding on dashboard views

* Clean code

* update fab position clean

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-04-06 18:25:23 +02:00
Paul Bottein de00842f22 Revert "Fix background and padding on dashboard views"
This reverts commit 3d200da438.
2023-04-06 17:40:48 +02:00
Paul Bottein 3d200da438 Fix background and padding on dashboard views 2023-04-06 17:39:21 +02:00
Bram Kragten 0364c5e493 Revert "Fix theme background of view" (#16094
Revert "Fix theme background of view (#16083)"

This reverts commit 723b3844ac.
2023-04-06 17:19:12 +02:00
Bram Kragten 2750837d1e 20230406.0 (#16090) 2023-04-06 15:50:53 +02:00
Bram Kragten d1ad72c6ff Bumped version to 20230406.0 2023-04-06 15:36:29 +02:00
Bram Kragten 723b3844ac Fix theme background of view (#16083) 2023-04-06 15:34:49 +02:00
Bram Kragten 54f8d33b1f Dont show options button for helpers that dont support it (#16089) 2023-04-06 15:32:16 +02:00
Bram Kragten 4c702ac7c2 fix analytics translations in onboarding (#16086) 2023-04-06 12:41:38 +00:00
Bram Kragten c7b3c4df27 fix integration filter menu disappearing (#16088) 2023-04-06 14:40:02 +02:00
Bram Kragten 56cc4e8d4d Fix tooltip being cutoff in history panel (#16087) 2023-04-06 14:39:53 +02:00
Paul Bottein 0e8c280763 Change graph zone unit (#16082) 2023-04-06 14:14:24 +02:00
Paul Bottein ff715c6cb7 Don't check for entity id format for card editors (#16081)
Don't check for entity id format for cards
2023-04-06 14:14:13 +02:00
Bram Kragten d41cf17932 20230405.0 (#16067) 2023-04-05 12:53:45 +02:00
Bram Kragten 81ebdf1448 Bumped version to 20230405.0 2023-04-05 12:29:59 +02:00
Bram Kragten c640d9edf2 update url of pipline-debug (#16066) 2023-04-05 12:29:13 +02:00
Bram Kragten 6d29b1cfb8 Fix chart mouse over in more info dialog (#16060) 2023-04-05 11:35:14 +02:00
Bram Kragten e784205e1e fix panel card height (#16059) 2023-04-05 11:35:06 +02:00
Bram Kragten 1596578f96 Fix automation editor (#16057) 2023-04-05 10:20:21 +02:00
Bram Kragten 28304bb1dc Make deprecation warning instead of error (#16055) 2023-04-04 15:01:33 +02:00
Paul Bottein 32bbc9421b Translate theme settings (#16053) 2023-04-04 14:04:05 +02:00
Paul Bottein 6e35f841cc Fix more info vacuum status (#16051) 2023-04-04 13:36:45 +02:00
Paul Bottein 99e6547807 Fix fan speed for new more info and tile feature (#16050) 2023-04-04 13:36:33 +02:00
renovate[bot] 9764a0f23f Update dependency @webcomponents/webcomponentsjs to v2.8.0 (#16026)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-04 00:35:27 -04:00
renovate[bot] 12918580ac Update dependency webpack-dev-server to v4.13.2 (#16049)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-04 03:48:54 +00:00
renovate[bot] 61a7652ae1 Update dependency @webcomponents/scoped-custom-element-registry to v0.0.9 (#16025)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-03 23:29:49 -04:00
Paulus Schoutsen c885d08a32 Merge runPipeline code and allow picking language (#16018)
* Merge runPipeline code and allow picking language

* Add download button

* Allow to continue audio conversations once stopped
2023-04-03 16:43:59 -04:00
Bram Kragten 322cc26ecc 20230403.0 (#16046) 2023-04-03 21:01:15 +02:00
Paul Bottein 6068d5e5cd Use state as mode for alarm mode tile feature (#16045
* Use state as mode for alarm mode tile feature

* reorder modes
2023-04-03 20:56:54 +02:00
Bram Kragten 890be2c177 Fix drawer in RTL (#16039
* Fix drawer in RTL

* format

* make it update when lang changes

* Update ha-drawer.ts

* Update ha-drawer.ts
2023-04-03 20:55:38 +02:00
Bram Kragten 423709dd23 Add deprecation warning Polymer (#16044) 2023-04-03 20:37:49 +02:00
Bram Kragten 4b73baa098 Bumped version to 20230403.0 2023-04-03 20:18:25 +02:00
Bram Kragten dba16edabc make supported feature selector any instead of all (#16040)
make filterSupportedFeature any instead of all
2023-04-03 13:53:37 -04:00
Bram Kragten 975f371ba8 Add channel to thread network info (#16041) 2023-04-03 13:53:12 -04:00
Bram Kragten 36b2a1bca3 Add swipe to close action to drawer in modal mode (#16042) 2023-04-03 13:52:54 -04:00
Bram Kragten fdf36adc3c Fix elements below scrollbar in Safari (#16037) 2023-04-03 19:44:40 +02:00
Paul Bottein b506791535 Fix history scrollbar (#16036) 2023-04-03 18:41:51 +02:00
renovate[bot] 206574eb9f Update babel monorepo to v7.21.4 (#16029)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-03 12:10:23 -04:00
Bram Kragten 19ab29d130 Handle safe areas (#16032) 2023-04-03 15:52:02 +02:00
Paul Bottein f61f0e4e52 Fix for long translation in alarm more info in ios (#16034) 2023-04-03 13:11:57 +00:00
Bram Kragten a32e6a9ac9 Don't open sidebar when a dialog is open (#16030) 2023-04-03 14:59:42 +02:00
Bram Kragten d7b8823234 Prevent document scroll when modal drawer is open (#16033) 2023-04-03 14:59:31 +02:00
Steve Repsher d9b0d5765a Add automatic retries to translation fetches (#16020) 2023-04-02 21:03:18 +02:00
Joakim Sørensen 6eb3fb1076 Use the name and size from the new disks property (#15954)
* Use the name and size from the new disks property

* Move SN down to secondary
2023-04-02 08:07:08 -04:00
Bram Kragten 8e7fc7b9c5 20230401.0 (#16015) 2023-04-01 18:47:28 +02:00
Bram Kragten ddfe02eb70 Bumped version to 20230401.0 2023-04-01 18:20:48 +02:00
Bram Kragten acaaf25500 Use ha-drawer instead of mwc-drawer (#16013) 2023-04-01 16:18:52 +00:00
renovate[bot] c6c3e63101 Update dependency @web/dev-server to v0.1.37 (#16008) 2023-04-01 10:31:47 -04:00
renovate[bot] e0fe4631f9 Update dependency eslint to v8.37.0 (#16007)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-01 01:56:46 -04:00
Paulus Schoutsen 232f70d44c Allow having conversations (#15961)
* Allow having conversations

* Add timeout to run-start data

* willUpdate
2023-03-31 15:44:32 -04:00
Bram Kragten 273904a6eb Add support for supported_features for entity selector (#16003) 2023-03-31 15:07:41 -04:00
Steve Repsher 91caffc4e1 Improve bundle chunk hashes and names (#15991) 2023-03-31 12:49:25 -04:00
Bram Kragten e302c6c408 20230331.0 (#16001) 2023-03-31 17:16:48 +02:00
Bram Kragten abcb904def Bumped version to 20230331.0 2023-03-31 16:37:33 +02:00
Bram Kragten 36c5d70597 Add sidebar actions to external bus (#15999) 2023-03-31 16:36:11 +02:00
Paul Bottein b0b7998757 Fix for long translation in alarm more info (#16000) 2023-03-31 14:24:03 +00:00
Paul Bottein 33ec1e15a9 Fix labels on new more info (#15983) 2023-03-31 15:57:35 +02:00
Paul Bottein d97ddcd31a Catch alarm control panel errors (#15998) 2023-03-31 15:51:44 +02:00
Paul Bottein 73c286a493 Fix ha header bar height (#15996)
* Fix ha header bar height in more info

* Fix ha header bar height in more places
2023-03-31 15:44:22 +02:00
Franck Nijhof 3e954eef02 Extend get_states (#15985) 2023-03-31 15:29:24 +02:00
Paul Bottein a94b211d3e Fix ha-settings-row overflow (#15993) 2023-03-31 13:02:36 +02:00
renovate[bot] 1293e5f61f Update typescript-eslint monorepo to v5.57.0 (#15986)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-30 15:35:02 -04:00
Bram Kragten 4483a8b9a2 20230330.0 (#15982) 2023-03-30 17:08:04 +02:00
Bram Kragten 287b0b9235 Bumped version to 20230330.0 2023-03-30 16:58:32 +02:00
Bram Kragten 3d6743ae3e Align header paddings (#15981) 2023-03-30 16:57:25 +02:00
Bram Kragten 5193f2c6a4 Fix header when sidebar always hidden (#15980) 2023-03-30 16:46:31 +02:00
Paul Bottein e6772e8b89 Fix fan more info state display (#15979) 2023-03-30 16:20:30 +02:00
Bram Kragten dcac853b71 Improve graph tooltips (#15887
* Improve graph tooltips

* Use xy for state charts

* intersect, bigger hitRadius

* improve energy

* fix position tooltips
2023-03-30 16:12:26 +02:00
Bram Kragten 0df096d68b Fix overflow, change position of action-handler (#15978) 2023-03-30 16:10:54 +02:00
Bram Kragten ef10cc77f7 Fix lovelace background, tweak headers (#15977) 2023-03-30 16:10:43 +02:00
Paul Bottein e52b2c49a6 Fix mouse event for remove icon in ha file upload (#15976) 2023-03-30 11:59:50 +00:00
Paul Bottein 78cc75c57c Fix cover more info state display (#15974) 2023-03-30 09:55:13 +00:00
Bram Kragten 2b38a1ce33 Fix dialogs under sidebar, headers (#15973) 2023-03-30 11:46:34 +02:00
Steve Repsher 1f1898fa46 Make module types explicit and convert some to ESM (#15964) 2023-03-30 11:23:43 +02:00
renovate[bot] fcc95825e3 Update dependency sinon to v15.0.3 (#15972) 2023-03-29 21:03:33 -04:00
Bram Kragten a4e36d6145 20230329.0 (#15971) 2023-03-29 18:09:10 +02:00
Bram Kragten bdfdab439a Merge branch 'master' into dev 2023-03-29 17:54:53 +02:00
Bram Kragten 8c59537032 Bumped version to 20230329.0 2023-03-29 17:48:14 +02:00
Bram Kragten f5a4affdec Use mwc-drawer (#10335
* Use mwc-drawer

* Update home-assistant-main.ts

* Implement top-app-bar

* Update home-assistant-main.ts

* update hui-root

* WIP

tabs don't work yet

* migrate most panels

* fixed

* notifications-drawer

* developer tools

* lovelace

* Update hui-root.ts

* Update hui-root.ts

* Update notification-drawer.ts

* fix dev tools

* Update ha-panel-developer-tools.ts
2023-03-29 17:46:34 +02:00
Bram Kragten f19fdeacba bump @lit-labs/context, fix bug in button card + optimise (#15968) 2023-03-29 12:45:52 +00:00
Paul Bottein e0f7544d2f Alarm mode tile feature (#15967) 2023-03-29 12:27:39 +02:00
Paul Bottein 4d2d7cd125 Use nothing in more lit template (#15966)
* Use nothing in more lit template

* Use nothing in more lit template
2023-03-29 12:20:25 +02:00
Bram Kragten 0f5320c6fb Drop polymer from authorize and onboarding entrypoint (#15760)
* Drop polymer from authorize and onboarding entrypoint

* Update ha-icon.ts

* dedupe
2023-03-29 12:17:42 +02:00
karwosts 4d52913a01 Add missing import for duration selector (#15960) 2023-03-28 20:25:06 -04:00
karwosts 0f97a76428 Fix map card error rendering (#15910) 2023-03-28 16:15:56 +00:00
Paul Bottein f2cf598f98 Fan speed tile feature (#15958)
* Move fan speed rules outside fan more info

* Add fan speed tile feature

* Improve select style
2023-03-28 17:59:07 +02:00
Franck Nijhof a6f9482bf6 Improve/extend description of conditions (#15943) 2023-03-28 16:43:00 +02:00
Paul Bottein 48c74c8660 Add more info alarm control panel (#15893)
* Add more info alarm control panel

* Improve buttons sizes

* Add triggered, arming and pending state

* Add keypad

* Improve alarm code dialog

* Fix code condition

* Clean code

* Fix mode selection with code

* Use nothing
2023-03-28 16:31:25 +02:00
Paul Bottein 3a700aebcc Improve padding to avoid input number overflow (#15888) 2023-03-28 14:40:02 +02:00
Paul Bottein cd6aac85d2 Update oscillating icon (#15948) 2023-03-28 13:28:52 +02:00
renovate[bot] 77b227a7d1 Update vaadinWebComponents monorepo to v23.3.9 (#15951) 2023-03-27 21:11:59 -04:00
Stefan AgnerandFranck Nijhof b785fedef2 Add-on store: Use more formal wording (#15952)
Co-authored-by: Franck Nijhof <[email protected]>
2023-03-27 22:18:18 +02:00
renovate[bot] 66a202be7e Update dependency @lezer/highlight to v1.1.4 (#15949) 2023-03-27 09:31:45 -04:00
renovate[bot] 0ad02013ba Update dependency prettier to v2.8.7 (#15950) 2023-03-27 09:30:40 -04:00
Paul Bottein 1b2eaedba0 Don't wait for slider release to update color temp (#15914) 2023-03-27 10:34:05 +02:00
Paul Bottein 8ea350a488 Add cover new more info (#15694)
* Add cover new  more info

* Improve tilt cover control

* Improve controls

* Better handle group

* Refactor toggle component

* Use deep purple for cover and adjust deep purple color

* Update purple color

* Feedbacks

* Change color

* Improve tilt backgroud constrast
2023-03-27 10:11:28 +02:00
dependabot[bot] 8ff56bd8f5 Bump actions/stale from 7.0.0 to 8.0.0 (#15945)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-27 09:41:03 +02:00
dependabot[bot] dd7ec07f29 Bump actions/checkout from 3.4.0 to 3.5.0 (#15946)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-27 09:29:50 +02:00
Paulus Schoutsen 520f489830 Pipeline updates (#15926)
* Allow using TTS

* Allow streaming audio from frontens to STT

* Improve stop recording

* Even better stop
2023-03-26 22:42:08 -04:00
renovate[bot] 395358b192 Update dependency vis-network to v9.1.6 (#15944)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-26 21:42:10 -04:00
Raman Gupta a19ff5aef5 Add milliseconds support for duration sensors (#15895) 2023-03-26 23:52:18 +02:00
renovate[bot] 34f8b48fbe Update dependency glob to v9.3.2 (#15938) 2023-03-25 19:18:59 +00:00
renovate[bot] 01f8b4e1c4 Update dependency marked to v4.3.0 (#15935) 2023-03-25 19:02:09 +00:00
renovate[bot] 9e1cdf8215 Update dependency vis-data to v7.1.6 (#15929) 2023-03-25 14:41:15 -04:00
renovate[bot] 551127b844 Update dependency vis-network to v9.1.5 (#15925)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-24 14:34:05 -04:00
renovate[bot] afe42629b2 Update dependency systemjs to v6.14.1 (#15924)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-24 14:32:17 -04:00
renovate[bot] 848d12e6fe Update dependency intl-messageformat to v10.3.3 (#15920) 2023-03-24 08:38:44 -04:00
renovate[bot] 65bd373af4 Update dependency glob to v9.3.1 (#15919) 2023-03-24 08:37:01 -04:00
renovate[bot] 91c099632d Update dependency prettier to v2.8.6 (#15921) 2023-03-24 08:35:01 -04:00
Sven Serlier 9053bc7b78 Update URLs (#15915)
* Update URL

* Update URL
2023-03-24 11:27:45 +01:00
renovate[bot] 9c4b0259a8 Update typescript-eslint monorepo to v5.56.0 (#15917) 2023-03-23 19:14:28 -04:00
renovate[bot] 7930f3879d Update dependency eslint-config-prettier to v8.8.0 (#15916) 2023-03-23 19:09:19 -04:00
Paulus Schoutsen d9dbb69e62 Update voice debug for new API (#15913)
* Update voice debug for new API

* Update imports

* Remove wrong key

* Some HTML formatting
2023-03-23 14:44:23 -04:00
Bram Kragten 74cfccaac7 Add context providers and transform decorator (#15902) 2023-03-23 18:31:01 +01:00
Bram Kragten 4ba7e5cf0f Fix css minifying (#15912) 2023-03-23 18:28:23 +01:00
renovate[bot] fc76d8f1cf Update dependency @polymer/polymer to v3.5.1 (#15720)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-23 16:18:31 +00:00
renovate[bot] 3eb07e9bc3 Update dependency fs-extra to v11.1.1 (#15911)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-23 16:58:04 +01:00
karwosts 4e6ed61e2b Add default placeholders for various number fields in cards (#15903) 2023-03-23 15:15:38 +01:00
renovate[bot] ca6d1544d1 Update dependency @mdi/js to v7.2.96 (#15904)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-23 13:00:01 +00:00
renovate[bot] 81e9bc894b Update CodeMirror (#15908)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-23 12:55:38 +00:00
renovate[bot] 173d13ae66 Update dependency @mdi/svg to v7.2.96 (#15905)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-23 08:42:32 -04:00
renovate[bot] 886ae791bc Update dependency prettier to v2.8.5 (#15907)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-23 08:38:30 -04:00
renovate[bot]andBram Kragten 50b7e72688 Lock file maintenance (#15865)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <[email protected]>
2023-03-22 17:24:36 +00:00
karwosts d07ae1cf48 Fix statistics graph days_to_show can't be erased (#15892) 2023-03-22 17:56:04 +01:00
karwosts da2de3c7d2 Fix problems in map card when hours_to_show is 0 (#15900) 2023-03-22 17:55:30 +01:00
karwosts 7c62b08fdd Allow map card to render passive zones (#15901) 2023-03-22 17:51:47 +01:00
renovate[bot] 4f5fca7c60 Update dependency intl-messageformat to v10.3.2 (#15899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-22 10:03:42 -04:00
Paul Bottein 45c153d374 Add fan new more info (#15843)
* Add more info fan

* Change icon

* Use backend translations

* Fix computeAttributeValueDisplay

* Clean code

* Clean code

* Fix some styles

* Improve ha-select rounded style

* Use button instead of select

* Show fan speed percentage
2023-03-22 13:20:14 +01:00
Franck Nijhof cd2996734c Compute (attribute) states in automation trigger descriptions (#15848) 2023-03-22 11:44:43 +01:00
Steve Repsher 4abc2a65cb Migrate to html-minifier-terser and improve some minification (#15864) 2023-03-22 11:42:16 +01:00
karwosts 89decd2f31 Force app-datepicker calendar to render in ltr (#15894) 2023-03-22 11:24:16 +01:00
renovate[bot] 04a16812d3 Update dependency webpack-dev-server to v4.13.1 (#15896) 2023-03-21 19:16:59 -04:00
renovate[bot] cadbc501e2 Update dependency webpack-dev-server to v4.13.0 (#15891)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-20 22:27:15 +00:00
renovate[bot] 0d95d856c1 Update dependency hls.js to v1.3.5 (#15890)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-20 18:11:37 -04:00
Paul Bottein d272783258 Mock history stream for demo (#15886)
* Mock history stream for demo

* Fix type error
2023-03-20 20:39:01 +01:00
Paul Bottein 65d3af6fd6 Add white mode to more info light (#15774) 2023-03-20 20:38:48 +01:00
Bram Kragten 24c3ddb96b Allow reset of otbr network, thread panel fixes (#15815) 2023-03-20 20:06:40 +01:00
dependabot[bot] c9d709152a Bump actions/checkout from 3.3.0 to 3.4.0 (#15883)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-20 09:07:14 +01:00
renovate[bot] d5bc892bae Update Yarn to v3.5.0 (#15879) 2023-03-19 21:40:00 +00:00
Paulus Schoutsen a5ea7b33b0 Add duration for stage (#15857)
* Add duration for stage

* formatNumber
2023-03-19 05:16:31 -04:00
renovate[bot] c29568d164 Update dependency @open-wc/dev-server-hmr to v0.1.4 (#15859)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-18 19:53:39 +00:00
renovate[bot] 57e1769c06 Update dependency @web/dev-server-rollup to v0.4.0 (#15852)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-18 19:39:16 +00:00
renovate[bot] abd2070011 Update dependency eslint-plugin-lit-a11y to v2.4.0 (#15862)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-18 19:34:56 +00:00
renovate[bot] 840450d9e5 Update dependency @web/dev-server to v0.1.36 (#15851)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-18 15:22:27 -04:00
renovate[bot] 178163cbc7 Update dependency @types/sortablejs to v1.15.1 (#15858)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-18 15:19:17 -04:00
renovate[bot] dcca02477a Update dependency webpack-dev-server to v4.12.0 (#15855) 2023-03-17 19:46:43 -04:00
renovate[bot] c06990f309 Update dependency @types/leaflet to v1.9.3 (#15854) 2023-03-17 19:42:41 -04:00
Paulus Schoutsen 1c9e3915e8 Improve pipeline debug styling (#15849) 2023-03-17 13:04:14 -04:00
renovate[bot] 30b8dc258a Update dependency glob to v9.3.0 (#15847)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-17 12:35:09 -04:00
renovate[bot] f31043cfdc Update dependency @babel/core to v7.21.3 (#15850)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-17 12:34:21 -04:00
Paul Bottein c0c83d3721 Add analytics translations (#15821)
* Add analytics translations

* Move translations to panels

* Fix learn more link
2023-03-17 16:26:53 +01:00
Franck Nijhof dd08909fef Show unknown attribute state as Unknown instead of a dash (#15846) 2023-03-17 16:21:23 +01:00
karwosts 952028a7be Only pick entities with location in map card editor (#15839) 2023-03-17 16:19:43 +01:00
Jesse Moody b0f3006c4b Update rollup links (#15835) 2023-03-17 16:17:55 +01:00
Paul Bottein 27098c5f3f Create control select component (#15819) 2023-03-17 16:16:51 +01:00
Franck Nijhof fec061f5d1 Extend attribute to hide from (numeric) state triggers (#15836) 2023-03-17 16:15:34 +01:00
Paulus SchoutsenandPaul Bottein db08c5029b Voice assistant (#15841)
* Add basic debug panel for voice assistant pipelines

* Add more info to start event

* Copy on change

* Use latest data model

* Apply suggestions from code review

Co-authored-by: Paul Bottein <[email protected]>

* Fix CSS

* Also use ha-button

---------

Co-authored-by: Paul Bottein <[email protected]>
2023-03-17 10:38:08 -04:00
renovate[bot]andSteve Repsher c5be2acd46 Update dependency glob to v9 (#15726)
* Update dependency glob to v9

* Adjust to new API

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-03-17 13:28:51 +00:00
Franck Nijhof 0232c11bc2 Translate entity attribute names & attribute states (#15822) 2023-03-17 11:43:59 +01:00
renovate[bot] dfd7acd713 Update typescript-eslint monorepo to v5.55.0 (#15837) 2023-03-17 00:35:13 -04:00
Jesse Moody 24f1677809 Fix can not typo (#15830) 2023-03-16 16:18:31 +01:00
Bram Kragten 7b2afa3df9 Bumped version to 20230309.1 2023-03-16 14:41:03 +01:00
Bram Kragten 13a3db4141 Bump style-mod (#15805) 2023-03-16 14:39:42 +01:00
Steve Repsher aeb7f8ff36 Fix webpack source maps (#15663) 2023-03-16 14:38:55 +01:00
Paul Bottein db62e9f922 Add constant selector (#15783) 2023-03-16 14:22:19 +01:00
renovate[bot] 1861547d9b Update dependency core-js to v3.29.1 (#15833)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-16 13:54:45 +01:00
renovate[bot] 43684795a4 Update dependency @types/leaflet to v1.9.2 (#15831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-16 13:52:23 +01:00
Franck NijhofandBram Kragten 0158d7e3e5 Adjust backend translations for entity components (#15820)
Co-authored-by: Bram Kragten <[email protected]>
2023-03-16 13:51:38 +01:00
Erik Montnemery 77dcace95e Drop unused Google entity settings from cloud (#15832) 2023-03-16 11:08:57 +01:00
renovate[bot] 60d106d9c3 Update dependency sinon to v15.0.2 (#15829) 2023-03-15 20:24:42 -04:00
karwosts 020aab0584 Align charts when show_names: false (#15782)
* Align charts when show_names: false

* fixes per code review
2023-03-15 12:29:45 +01:00
renovate[bot] 27808c9853 Update dependency eslint to v8.36.0 (#15816)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-14 09:02:43 -04:00
renovate[bot] 1a9b9da0db Update dependency @codemirror/commands to v6.2.2 (#15814)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-13 21:23:13 +01:00
renovate[bot] fe19963ea9 Update dependency lint-staged to v13.2.0 (#15810)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-13 20:47:02 +01:00
Paul Bottein 3afe1f83c7 Add back button to history and logbook when coming from more info dialog (#15811) 2023-03-13 20:13:22 +01:00
Paul Bottein 6cb4b5f429 Fix displayed month when opening date range picker (#15808) 2023-03-13 20:12:28 +01:00
Paul Bottein 7b676cbd91 Display cover position in tile card when opening and closing (#15809) 2023-03-13 17:33:14 +01:00
Paul Bottein bf1cabca6e Fix discover blueprint tips not displayed in automation editor (#15812) 2023-03-13 17:19:21 +01:00
Paul Bottein effb4b9f7a Force using history for all entity domains on map card (#15804) 2023-03-13 11:52:27 +01:00
Bram Kragten 1bc7bb0169 Fix suffix in zwave config panel, send config on change instead of input (#15779) 2023-03-13 11:47:44 +01:00
karwosts 3abc5c42d0 Fix long entity names overflowing energy panel settings (#15786) 2023-03-13 11:06:30 +01:00
Bram Kragten cc011a4d47 Bump style-mod (#15805) 2023-03-13 11:05:08 +01:00
renovate[bot] ca0338436c Update dependency @material/web to v1.0.0-pre.4 (#15796)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-13 11:03:45 +01:00
renovate[bot] 84d31cb9d5 Update dependency terser-webpack-plugin to v5.3.7 (#15797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-12 14:33:54 -04:00
renovate[bot] 69264b3448 Update dependency @codemirror/view to v6.9.2 (#15793)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-11 15:24:17 -05:00
renovate[bot] 01a098e5aa Update dependency lint-staged to v13.1.4 (#15790)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-10 13:47:32 -05:00
renovate[bot] 11b1e056dc Update dependency rollup-plugin-terser to v7 (#15767)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-09 16:17:29 -05:00
renovate[bot] 4e99e32ca2 Update typescript-eslint monorepo to v5.54.1 (#15789)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-09 16:03:43 -05:00
Paul Bottein a8d7f8a7fe 20230309.0 (#15784) 2023-03-09 16:32:36 +01:00
Paul Bottein 9602c68640 Bumped version to 20230309.0 2023-03-09 16:22:14 +01:00
renovate[bot] 9a0699ba84 Update dependency eslint-config-prettier to v8.7.0 (#15777) 2023-03-09 09:00:40 -05:00
Joakim Sørensen 47cfc3d27c Move deleting backups to WS (#15773) 2023-03-09 11:32:52 +01:00
renovate[bot] 77d395b0c9 Update dependency @rollup/plugin-node-resolve to v15 (#15722)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-09 00:32:57 -05:00
renovate[bot] baee563bdd Update dependency @rollup/plugin-replace to v5 (#15723)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-08 16:37:10 -05:00
renovate[bot] bc5345af95 Update dependency @rollup/plugin-commonjs to v24 (#15717)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-08 16:05:48 -05:00
renovate[bot] 52e2033f52 Update dependency @rollup/plugin-json to v6 (#15721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-08 13:34:15 -05:00
renovate[bot] dfa26ee7a1 Update dependency @rollup/plugin-babel to v6 (#15716)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-08 13:23:18 -05:00
Bram Kragten 0cde0fc9a9 Remove deprecated and removed icons (#15762) 2023-03-08 12:28:34 +01:00
Paul Bottein 4ab1723c99 Don't assume that effect list is not null (#15764)
* Don't assume that effect list is not null

* Don't assume that rgb, rgbw and rgbww are defined
2023-03-08 10:24:28 +01:00
Yosi Levy 4f1c4bdcb9 Fix RTL & missing translation & misalign hostnam (#15758) 2023-03-07 22:10:21 +01:00
karwosts 55edeb474e Preserve custom names in statistics graph when modifying entity list (#15695) 2023-03-06 17:10:08 +01:00
karwosts 4d19e3ad63 Fix overzealous loading of ha-service-control default values (#15741) 2023-03-06 17:06:38 +01:00
Bram Kragten 0b3e954752 20230306.0 (#15749) 2023-03-06 12:06:01 +01:00
karwostsandBram Kragten f193563649 Disable attribute validation on initial load of ha-selector-attribute (#15697)Co-authored-by: Bram Kragten <[email protected]>
* Disable attribute validation on initial load of ha-selector-attribute

* Update src/components/ha-selector/ha-selector-attribute.ts

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-03-06 11:47:09 +01:00
Bram Kragten 77c3b5b5a5 Bumped version to 20230306.0 2023-03-06 11:46:32 +01:00
Paul Bottein 9bb36e38e6 Fix number format for monetary device class (#15693) 2023-03-06 09:53:53 +01:00
karwostsandBram Kragten 1741b051fc Fix statistics-picker filter when no entity selected (#15659)
Co-authored-by: Bram Kragten <[email protected]>
2023-03-06 09:52:16 +01:00
karwosts 98e21370fd Fix yaml editor behavior of statistics graph card (#15742) 2023-03-06 09:49:42 +01:00
Erik Montnemery 40b9e62a87 Pass placeholders to config and option flow title (#15746) 2023-03-06 09:49:01 +01:00
Steve Repsher 8e8fb4ea13 Reconfigure Renovate (#15743) 2023-03-05 21:23:13 +01:00
Franck Nijhof 6dc7508460 Revert "Configure Renovate" (#15729)
Revert "Configure Renovate (#15618)"

This reverts commit be909d0a9c.
2023-03-05 11:11:06 +01:00
renovate[bot] 9055099a18 Update dependency @web/dev-server-rollup to v0.3.21 (#15713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-05 00:50:22 -05:00
renovate[bot] 6b4e8c1e06 Update dependency rollup-plugin-terser to v5.3.1 (#15718)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-04 23:18:29 -05:00
renovate[bot] cbeee01d75 Update dependency @rollup/plugin-babel to v5.3.1 (#15709)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-04 23:12:12 -05:00
renovate[bot] 76bdf96c6d Update dependency @rollup/plugin-json to v4.1.0 (#15712)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-04 23:07:01 -05:00
renovate[bot] 645eea0bd4 Update vaadinWebComponents monorepo to v23.3.8 (#15719)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-05 04:06:07 +00:00
renovate[bot]andSteve Repsher 7453ea1e40 Pin dependencies (#15708)
* Pin dependencies

* Only pin polymer

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-03-05 03:48:37 +00:00
renovate[bot] b64fc8ec3b Pin dependencies (#15705) 2023-03-05 02:58:29 +00:00
renovate[bot] 3c73fcb0bf Update Yarn to v3.4.1 (#15711) 2023-03-04 21:41:02 -05:00
renovate[bot] c5c668bd7b Pin dependencies (#15707) 2023-03-04 21:35:04 -05:00
renovate[bot] be909d0a9c Configure Renovate (#15618) 2023-03-04 20:52:55 -05:00
Paul Bottein 19efe9dcdd Only show more info settings button for admin users (#15689)
Only show settings button for admin users
2023-03-03 12:24:01 +01:00
Paul Bottein a57609380a 20230302.0 (#15678) 2023-03-02 14:45:40 +01:00
Paul Bottein 84affcce33 Bumped version to 20230302.0 2023-03-02 14:41:47 +01:00
Paul Bottein d113d44d5a Use state color for on and off in more info (#15677) 2023-03-02 14:37:26 +01:00
Paul BotteinandBram Kragten afe1b7ef59 Use display precision for number format none (#15674)
* Use display precision for number format none

* Update src/common/number/format_number.ts

Co-authored-by: Bram Kragten <[email protected]>

* prettier

* Fix 0 value

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-03-02 10:19:27 +00:00
Paul Bottein 000e2ef7fc Add input boolean more info (#15675)
* Add input boolean more info

* Fix typings
2023-03-02 10:11:43 +00:00
dependabot[bot] 15394516af Bump bl from 1.2.2 to 1.2.3 (#15668)
Bumps [bl](https://github.com/rvagg/bl) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/rvagg/bl/releases)
- [Changelog](https://github.com/rvagg/bl/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rvagg/bl/compare/v1.2.2...v1.2.3)

---
updated-dependencies:
- dependency-name: bl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-02 00:01:48 -05:00
Steve Repsher a0033d9112 Fix minification of SVG template literals (#15670) 2023-03-01 23:57:11 -05:00
dependabot[bot] 895ebcdb2d Bump yargs-parser from 5.0.0 to 5.0.1 (#15660) 2023-03-01 19:56:08 -05:00
dependabot[bot] e7044ce40c Bump copy-props from 2.0.4 to 2.0.5 (#15656)
Bumps [copy-props](https://github.com/gulpjs/copy-prop) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/gulpjs/copy-prop/releases)
- [Commits](https://github.com/gulpjs/copy-prop/commits)

---
updated-dependencies:
- dependency-name: copy-props
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-01 14:38:33 -05:00
Brandon Rothweiler a0e71b9478 Change "shutdown" to "shut down" when used as a verb (#15658) 2023-03-01 16:51:09 +01:00
Bram Kragten db1f81e0ef 20230301.0 (#15657) 2023-03-01 16:36:00 +01:00
Bram Kragten 657a74e8ad Bumped version to 20230301.0 2023-03-01 15:32:57 +01:00
Bram Kragten f803bbadc9 Set css optimise level to 0 (#15652) 2023-03-01 14:24:00 +00:00
Paul Bottein 2ab8bba4b0 Sort null and undefined at the bottom in data-table (#15651)
Sort null and undefined at the bottom in datatable
2023-03-01 14:22:57 +00:00
Philip AllgaierandBram Kragten 1a1c00ba62 Add loading info text to hardware config page (#15616)
Co-authored-by: Bram Kragten <[email protected]>
2023-03-01 15:10:14 +01:00
Bram Kragten 7b4850b5d6 Bump core js, replace serve with serve-handler (#15637)
* Bump core js, remove serve from deps

* resplace serve with serve-handler
2023-03-01 09:08:56 -05:00
dependabot[bot] 42688e100c Bump hls.js from 1.3.3 to 1.3.4 (#15644)
Bumps [hls.js](https://github.com/video-dev/hls.js) from 1.3.3 to 1.3.4.
- [Release notes](https://github.com/video-dev/hls.js/releases)
- [Changelog](https://github.com/video-dev/hls.js/blob/master/docs/release-process.md)
- [Commits](https://github.com/video-dev/hls.js/compare/v1.3.3...v1.3.4)

---
updated-dependencies:
- dependency-name: hls.js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-01 09:04:48 -05:00
Bram Kragten d32cde3cf8 Fix more info position (#15650) 2023-03-01 13:42:42 +00:00
Paul Bottein 34c15d96c1 Reduce more-info dialog margin (#15649)
Reduce more-info margin
2023-03-01 13:28:35 +00:00
Paul Bottein 0d869d53e3 Adapt more info control height for small screen (#15647)
* Adapt more info control height for small screen

* Fix light picker sliders
2023-03-01 12:15:12 +01:00
Paul Bottein ccf670465b Fix statistics name sorting in developer tools (#15646) 2023-03-01 10:30:11 +00:00
Erik Montnemery 4a9ec7233d Fetch weather units from core (#15212) 2023-03-01 11:24:48 +01:00
Paul Bottein c747ab7605 Add on/off icon for some domains (#15640) 2023-03-01 11:24:35 +01:00
Paul Bottein 9c703ab469 Add color temperature value to light more info (#15639) 2023-03-01 11:24:01 +01:00
Paul Bottein e3b797e85c Fix more info for disabled entity (#15641) 2023-03-01 10:29:19 +01:00
Bram Kragten a5541996d7 Prevent config menu jump when cloud info loads (#15638)
Prevent config menu jump
2023-02-28 17:21:52 +01:00
Paul BotteinandBram Kragten ea95fb98aa Fix lock more info with attributes (#15622)
* Fix lock more info with attributes

* Update src/dialogs/more-info/controls/more-info-lock.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-02-28 10:34:35 +00:00
karwosts 4b428a60cd Fix a hang in history graph card editor (#15623) 2023-02-28 11:06:51 +01:00
Steve Repsher 9ce4563dd4 Prefer nothing over empty templates (#15633) 2023-02-28 11:02:47 +01:00
J. Nick Koston 4031d9cc78 Avoid loading the whole entity registry for more info (#15627) 2023-02-28 10:58:45 +01:00
J. Nick KostonandBram Kragten 20f2f5b317 Avoid fetching all stats metadata when there are no entities on the energy panel (#15591)
Co-authored-by: Bram Kragten <[email protected]>
2023-02-28 10:57:04 +01:00
Paulus Schoutsen 6af57fa2cd Temp patch to fix Rollup build (#15631) 2023-02-28 10:54:27 +01:00
Steve Repsher 17e6e132d1 Minify HTML and CSS template literals (#15624) 2023-02-28 00:02:04 -05:00
dependabot[bot] 67d064db28 Bump @typescript-eslint/eslint-plugin from 5.53.0 to 5.54.0 (#15629)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.53.0 to 5.54.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.54.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-28 04:37:18 +00:00
dependabot[bot] e0df5e4631 Bump @typescript-eslint/parser from 5.53.0 to 5.54.0 (#15628)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.53.0 to 5.54.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.54.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-28 04:20:49 +00:00
Paul Bottein a8a85a2af6 20230227.0 (#15625) 2023-02-27 21:10:57 +01:00
Paul Bottein 702c24d908 Bumped version to 20230227.0 2023-02-27 21:02:33 +01:00
Bram Kragten df8f46388f 20230224.0 (#15588) 2023-02-24 21:06:33 +01:00
Bram Kragten dd6437376d 20230223.0 (#15575) 2023-02-23 19:01:26 +01:00
Bram Kragten 971d2ff1c2 20230222.0 (#15551)Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Steve Repsher <[email protected]> Co-authored-by: Bram Kragten <[email protected]> Co-authored-by: Paul Bottein <[email protected]> Co-authored-by: Flavien Charlon <[email protected]> Co-authored-by: Raman Gupta <[email protected]> Co-authored-by: karwosts <[email protected]> Co-authored-by: Erik Montnemery <[email protected]> Co-authored-by: J. Nick Koston <[email protected]> Co-authored-by: Yosi Levy <[email protected]> Co-authored-by: lunmay <[email protected]> Co-authored-by: Jc2k <[email protected]> Co-authored-by: chiahsing <[email protected]> Co-authored-by: Paulus Schoutsen <[email protected]> Fix a coloring issue with climate states (#15325) resolver-webpack from 0.13.1 to 0.13.2 (#15355) resolver-webpack](https://github.com/import-js/eslint-plugin-import) from 0.13.1 to 0.13.2. fix some errors (#15334) Fix stats data being fetched for all entities when there are no energy/water stat ids (#15428) Fix custom card documentation url (#15439) fixes (#15446) fix dedupe precommit (#15399) Fix typo from restart dialog (whitch -> which) (#15458) Fix typo in water consumption description (#15464) Fix initial scroll inside more info dialog (#15473) Fix alert padding inside more info dialog (#15477) Fix area name in target picker (#15511) fix history crash) (#15509) Fix promise constructors with returns (#15486) fixes feb23 (#15487) Fix errors in duration data processing in Automation UI Editor (#15422) Fix map sizing in grids and h-stacks (#15290) Fix a typo: Add OpenTread Border Router (#15528) Fix tile card typings (#15529) fix more info history tooltips (#15533) Fix double defined cloud-account (#15537) Fix more info control assumed state color (#15548) Fix a bug in cast launcher that hassURL and path are incorrectly passed (#15546) 2023-02-22 18:16:25 +01:00
Bram Kragten e6de8ec94d 20230202.0 (#15323) 2023-02-02 20:45:17 +01:00
Bram Kragten 0e06267055 20230201.0 (#15307) 2023-02-01 17:17:12 +01:00
Bram Kragten 63a35c9d68 20230130.0 (#15278) 2023-01-30 22:03:34 +01:00
1983 changed files with 156748 additions and 66297 deletions

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
[modern]
# Modern builds target recent browsers supporting the latest features to minimize transpilation, polyfills, etc.
# It is served to browsers meeting the following requirements:
# - released in the last year + current alpha/beta versions
# - Firefox extended support release (ESR)
# - with global utilization at or above 0.5%
# - must support dynamic import of ES modules
# - exclude browsers no longer being maintained
# - exclude KaiOS, QQ, and UC browsers due to lack of sufficient feature support data
unreleased versions
last 1 year
Firefox ESR
>= 0.5% and supports es6-module-dynamic-import
not dead
not KaiOS > 0
not QQAndroid > 0
not UCAndroid > 0
[legacy]
# Legacy builds are served when modern requirements are not met and support browsers:
# - released in the last 7 years + current alpha/beta versionss
# - with global utilization at or above 0.05%
# The lattermost query ensures that support for popular old browsers is not dropped too early
# (e.g. IE 11, Android 4.4, or Samsung 4).
#
# In addition, legacy browsers must support some minimum features that cannot be polyfilled:
# - ES5 (strict mode)
# - web sockets to communicate with backend
# - inline SVG used widely in buttons, widgets, etc.
# - custom events used for most user interactions
# - CSS flexbox used in the majority of the layout
# Nearly all of these are redundant with the above rules.
# As of May 2023, only web sockets must be added to the query.
unreleased versions
last 7 years
>= 0.05% and supports websockets
[legacy-sw]
# Same as legacy plus supports service workers
unreleased versions
last 7 years
>= 0.05% and supports websockets and supports serviceworkers
+1 -7
View File
@@ -1,13 +1,7 @@
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.148.1/containers/python-3/.devcontainer/base.Dockerfile
FROM mcr.microsoft.com/vscode/devcontainers/python:0-3.10
FROM mcr.microsoft.com/devcontainers/python:3.12
ENV \
DEBIAN_FRONTEND=noninteractive \
DEVCONTAINER=true \
PATH=$PATH:./node_modules/.bin
# Install nvm
COPY .nvmrc /tmp/.nvmrc
RUN \
su vscode -c \
"source /usr/local/share/nvm/nvm.sh && nvm install $(cat /tmp/.nvmrc) 2>&1"
+3 -1
View File
@@ -5,8 +5,10 @@
"context": ".."
},
"appPort": "8124:8123",
"postCreateCommand": "script/bootstrap",
"postCreateCommand": "sudo apt update && sudo apt upgrade -y && sudo apt install -y libpcap-dev",
"postStartCommand": "script/bootstrap",
"containerEnv": {
"DEV_CONTAINER": "1",
"WORKSPACE_DIRECTORY": "${containerWorkspaceFolder}"
},
"customizations": {
+3 -4
View File
@@ -20,7 +20,7 @@
"settings": {
"import/resolver": {
"webpack": {
"config": "./webpack.config.js"
"config": "./webpack.config.cjs"
}
}
},
@@ -115,17 +115,16 @@
}
],
"unused-imports/no-unused-imports": "error",
"lit/attribute-names": "warn",
"lit/attribute-value-entities": "off",
"lit/no-template-map": "off",
"lit/no-native-attributes": "warn",
"lit/no-this-assign-in-render": "warn",
"lit/prefer-nothing": "warn",
"lit-a11y/click-events-have-key-events": ["off"],
"lit-a11y/no-autofocus": "off",
"lit-a11y/alt-text": "warn",
"lit-a11y/anchor-is-valid": "warn",
"lit-a11y/role-has-required-aria-attrs": "warn"
},
"plugins": ["disable", "unused-imports"],
"processor": "disable/disable"
"plugins": ["unused-imports"]
}
+2 -1
View File
@@ -9,7 +9,7 @@ body:
If you have a feature or enhancement request for the frontend, please [start an discussion][fr] instead of creating an issue.
**Please not not report issues for custom cards.**
**Please do not report issues for custom cards.**
[fr]: https://github.com/home-assistant/frontend/discussions
[releases]: https://github.com/home-assistant/home-assistant/releases
@@ -24,6 +24,7 @@ body:
required: true
- label: I have tried a different browser to see if it is related to my browser.
required: true
- label: I have tried reproducing the issue in [safe mode](https://www.home-assistant.io/blog/2023/11/01/release-202311/#restarting-into-safe-mode) to rule out problems with unsupported custom resources.
- type: markdown
attributes:
value: |
+2 -7
View File
@@ -2,9 +2,7 @@
You are amazing! Thanks for contributing to our project!
Please, DO NOT DELETE ANY TEXT from this template! (unless instructed).
-->
## Breaking change
<!--
If your PR contains a breaking change for existing users, it is important
to tell them what breaks, how to make it work again and why we did this.
@@ -13,8 +11,8 @@
Note: Remove this section if this PR is NOT a breaking change.
-->
## Proposed change
## Proposed change
<!--
Describe the big picture of your changes here to communicate to the
maintainers why we should accept this pull request. If it fixes a bug
@@ -22,8 +20,8 @@
in the additional information section.
-->
## Type of change
## Type of change
<!--
What type of change does your PR introduce to the Home Assistant frontend?
NOTE: Please, check only 1! box!
@@ -38,7 +36,6 @@
- [ ] Code quality improvements to existing code or addition of tests
## Example configuration
<!--
Supplying a configuration snippet, makes it easier for a maintainer to test
your PR.
@@ -49,7 +46,6 @@
```
## Additional information
<!--
Details are important, and help maintainers processing your PR.
Please be sure to fill out additional details, if applicable.
@@ -60,7 +56,6 @@
- Link to documentation pull request:
## Checklist
<!--
Put an `x` in the boxes that apply. You can also fill these out after
creating the PR. If you're unsure about any of them, don't hesitate to ask.
+2 -12
View File
@@ -6,16 +6,6 @@ updates:
interval: weekly
time: "06:00"
open-pull-requests-limit: 10
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
time: "03:00"
open-pull-requests-limit: 10
labels:
- "dependencies"
ignore:
# Ignore rollup and plugins until everything else is updated
- dependency-name: "*rollup*"
- dependency-name: "@rollup/*"
- dependency-name: "serve"
- Dependencies
- GitHub Actions
+51
View File
@@ -0,0 +1,51 @@
Build:
- changed-files:
- any-glob-to-any-file:
- build-scripts/**
- .browserslistrc
- gulpfile.js
Cast:
- changed-files:
- any-glob-to-any-file:
- cast/src/**
- src/cast/**
Demo:
- changed-files:
- any-glob-to-any-file:
- demo/src/**
- src/fake_data/**
Design:
- changed-files:
- any-glob-to-any-file:
- gallery/src/**
- src/fake_data/**
Dependencies:
- any:
- changed-files:
# Match when only these files are changed (i.e. don't match PRs that happen to add or remove packages)
- any-glob-to-all-files:
- package.json
- renovate.json
- yarn.lock
- .yarn/**
- .yarnrc.yml
- .nvmrc
# Dependabot and Renovate branches always match (i.e. compatibility tweaks by members considered minor)
- head-branch:
- "^renovate/"
- "^dependabot/"
GitHub Actions:
- changed-files:
- any-glob-to-any-file:
- .github/workflows/**
- .github/*.yml
Supervisor:
- changed-files:
- any-glob-to-any-file:
- hassio/src/**
+5
View File
@@ -1,3 +1,8 @@
categories:
- title: "Dependency updates"
collapse-after: 3
labels:
- "Dependencies"
template: |
## What's Changed
+8 -9
View File
@@ -9,7 +9,6 @@ on:
- master
env:
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
jobs:
@@ -22,14 +21,14 @@ jobs:
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.3.0
uses: actions/checkout@v4.2.0
with:
ref: dev
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v4.0.4
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
@@ -58,14 +57,14 @@ jobs:
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.3.0
uses: actions/checkout@v4.2.0
with:
ref: master
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v4.0.4
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
+40 -18
View File
@@ -11,7 +11,6 @@ on:
- master
env:
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -25,11 +24,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.3.0
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
uses: actions/checkout@v4.2.0
- name: Setup Node
uses: actions/setup-node@v4.0.4
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
run: yarn install --immutable
@@ -37,10 +36,21 @@ jobs:
run: yarn dedupe --check
- name: Build resources
run: ./node_modules/.bin/gulp gen-icons-json build-translations build-locale-data gather-gallery-pages
- name: Setup lint cache
uses: actions/[email protected]
with:
path: |
node_modules/.cache/prettier
node_modules/.cache/eslint
node_modules/.cache/typescript
key: lint-${{ github.sha }}
restore-keys: lint-
- name: Run eslint
run: yarn run lint:eslint --quiet
- name: Run tsc
run: yarn run lint:types
- name: Run lit-analyzer
run: yarn run lint:lit --quiet
- name: Run prettier
run: yarn run lint:prettier
test:
@@ -48,16 +58,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.3.0
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
uses: actions/checkout@v4.2.0
- name: Setup Node
uses: actions/setup-node@v4.0.4
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
run: yarn install --immutable
- name: Build resources
run: ./node_modules/.bin/gulp build-translations build-locale-data
run: ./node_modules/.bin/gulp gen-icons-json build-translations build-locale-data
- name: Run Tests
run: yarn run test
build:
@@ -66,11 +76,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.3.0
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
uses: actions/checkout@v4.2.0
- name: Setup Node
uses: actions/setup-node@v4.0.4
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
run: yarn install --immutable
@@ -78,17 +88,23 @@ jobs:
run: ./node_modules/.bin/gulp build-app
env:
IS_TEST: "true"
- name: Upload bundle stats
uses: actions/[email protected]
with:
name: frontend-bundle-stats
path: build/stats/*.json
if-no-files-found: error
supervisor:
name: Build supervisor
needs: [lint, test]
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.3.0
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
uses: actions/checkout@v4.2.0
- name: Setup Node
uses: actions/setup-node@v4.0.4
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
run: yarn install --immutable
@@ -96,3 +112,9 @@ jobs:
run: ./node_modules/.bin/gulp build-hassio
env:
IS_TEST: "true"
- name: Upload bundle stats
uses: actions/[email protected]
with:
name: supervisor-bundle-stats
path: build/stats/*.json
if-no-files-found: error
+30 -30
View File
@@ -17,44 +17,44 @@ jobs:
matrix:
# Override automatic language detection by changing the below list
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
language: ['javascript']
language: ["javascript"]
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
steps:
- name: Checkout repository
uses: actions/checkout@v3.3.0
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
- name: Checkout repository
uses: actions/checkout@v4.2.0
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
+10 -11
View File
@@ -10,27 +10,26 @@ on:
- master
env:
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
jobs:
deploy_dev:
runs-on: ubuntu-latest
name: Demo Development
if: github.event_name != 'push' || github.ref != 'master'
if: github.event_name != 'push' || github.ref_name != 'master'
environment:
name: Demo Development
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.3.0
uses: actions/checkout@v4.2.0
with:
ref: dev
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v4.0.4
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
@@ -53,20 +52,20 @@ jobs:
deploy_master:
runs-on: ubuntu-latest
name: Demo Production
if: github.event_name == 'push' && github.ref == 'master'
if: github.event_name == 'push' && github.ref_name == 'master'
environment:
name: Demo Production
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.3.0
uses: actions/checkout@v4.2.0
with:
ref: master
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v4.0.4
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
+4 -5
View File
@@ -6,7 +6,6 @@ on:
- cron: "0 0 * * *"
env:
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
jobs:
@@ -17,12 +16,12 @@ jobs:
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.3.0
uses: actions/checkout@v4.2.0
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v4.0.4
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
+4 -5
View File
@@ -11,7 +11,6 @@ on:
- dev
env:
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
jobs:
@@ -22,12 +21,12 @@ jobs:
if: github.repository == 'home-assistant/frontend' && contains(github.event.pull_request.labels.*.name, 'needs design preview')
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.3.0
uses: actions/checkout@v4.2.0
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v4.0.4
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
+15
View File
@@ -0,0 +1,15 @@
name: "Pull Request Labeler"
on: pull_request_target
jobs:
triage:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Apply labels
uses: actions/[email protected]
with:
sync-labels: true
+2 -1
View File
@@ -9,9 +9,10 @@ jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v4.0.0
- uses: dessant/lock-threads@v5.0.1
with:
github-token: ${{ github.token }}
process-only: "issues, prs"
issue-lock-inactive-days: "30"
issue-exclude-created-before: "2020-10-01T00:00:00Z"
issue-lock-reason: ""
+8 -9
View File
@@ -6,8 +6,7 @@ on:
- cron: "0 1 * * *"
env:
PYTHON_VERSION: "3.10"
NODE_VERSION: 16
PYTHON_VERSION: "3.12"
NODE_OPTIONS: --max_old_space_size=6144
permissions:
@@ -21,17 +20,17 @@ jobs:
contents: write
steps:
- name: Checkout the repository
uses: actions/checkout@v3.3.0
uses: actions/checkout@v4.2.0
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v4.0.4
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
@@ -58,14 +57,14 @@ jobs:
run: tar -czvf translations.tar.gz translations
- name: Upload build artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4.4.0
with:
name: wheels
path: dist/home_assistant_frontend*.whl
if-no-files-found: error
- name: Upload translations
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4.4.0
with:
name: translations
path: translations.tar.gz
+25
View File
@@ -0,0 +1,25 @@
name: RelativeCI
on:
workflow_run:
workflows: [CI]
types:
- completed
jobs:
upload:
name: Upload stats
if: ${{ github.event.workflow_run.conclusion == 'success' }}
strategy:
matrix:
bundle: [frontend, supervisor]
build: [modern, legacy]
runs-on: ubuntu-latest
steps:
- name: Send bundle stats and build information to RelativeCI
uses: relative-ci/[email protected]
with:
key: ${{ secrets[format('RELATIVE_CI_KEY_{0}_{1}', matrix.bundle, matrix.build)] }}
token: ${{ github.token }}
artifactName: ${{ format('{0}-bundle-stats', matrix.bundle) }}
webpackStatsFile: ${{ format('{0}-{1}.json', matrix.bundle, matrix.build) }}
+10 -1
View File
@@ -5,10 +5,19 @@ on:
branches:
- dev
permissions:
contents: read
jobs:
update_release_draft:
permissions:
# write permission for contents is required to create a github release
contents: write
# write permission for pull-requests is required for autolabeler
# otherwise, read permission is required at least
pull-requests: read
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@v5
- uses: release-drafter/release-drafter@v6.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+9 -10
View File
@@ -6,8 +6,7 @@ on:
- published
env:
PYTHON_VERSION: "3.10"
NODE_VERSION: 16
PYTHON_VERSION: "3.12"
NODE_OPTIONS: --max_old_space_size=6144
# Set default workflow permissions
@@ -24,20 +23,20 @@ jobs:
contents: write # Required to upload release assets
steps:
- name: Checkout the repository
uses: actions/checkout@v3.3.0
uses: actions/checkout@v4.2.0
- name: Verify version
uses: home-assistant/actions/helpers/verify-version@master
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v4.0.4
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
@@ -56,7 +55,7 @@ jobs:
script/release
- name: Upload release assets
uses: softprops/action-gh-release@v0.1.15
uses: softprops/action-gh-release@v2.0.8
with:
files: |
dist/*.whl
@@ -75,9 +74,9 @@ jobs:
echo "home-assistant-frontend==$version" > ./requirements.txt
- name: Build wheels
uses: home-assistant/wheels@2022.10.1
uses: home-assistant/wheels@2024.07.1
with:
abi: cp310
abi: cp312
tag: musllinux_1_2
arch: amd64
wheels-key: ${{ secrets.WHEELS_KEY }}
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: 90 days stale policy
uses: actions/stale@v7.0.0
uses: actions/stale@v9.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 90
+1 -5
View File
@@ -7,19 +7,15 @@ on:
paths:
- src/translations/en.json
env:
NODE_VERSION: 16
jobs:
upload:
name: Upload
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.3.0
uses: actions/checkout@v4.2.0
- name: Upload Translations
run: |
export LOKALISE_TOKEN="${{ secrets.LOKALISE_TOKEN }}"
./script/translations_upload_base
+3
View File
@@ -47,3 +47,6 @@ src/cast/dev_const.ts
# Home Assistant config
/config/
# Jetbrains
/.idea/
-3
View File
@@ -1,4 +1 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
yarn run lint-staged --relative --shell "/bin/bash"
+1 -1
View File
@@ -1 +1 @@
16
lts/iron
+4 -9
View File
@@ -1,9 +1,4 @@
build
translations/*
node_modules/*
hass_frontend/*
pip-selfcheck.json
# vscode
.vscode/*
!.vscode/extensions.json
CLA.md
CODE_OF_CONDUCT.md
LICENSE.md
PULL_REQUEST_TEMPLATE.md
+2 -4
View File
@@ -9,9 +9,7 @@
"webRoot": "${workspaceFolder}/hass_frontend",
"disableNetworkCache": true,
"preLaunchTask": "Develop Frontend",
"outFiles": [
"${workspaceFolder}/hass_frontend/frontend_latest/*.js"
]
"outFiles": ["${workspaceFolder}/hass_frontend/frontend_latest/*.js"]
},
{
"name": "Debug Gallery",
@@ -39,6 +37,6 @@
"webRoot": "${workspaceFolder}/cast/dist",
"disableNetworkCache": true,
"preLaunchTask": "Develop Cast"
},
}
]
}
+1 -1
View File
@@ -197,7 +197,7 @@
"type": "gulp",
"task": "setup-and-fetch-nightly-translations",
"problemMatcher": []
}
}
],
"inputs": [
{
@@ -0,0 +1,18 @@
diff --git a/dist/hls.light.mjs b/dist/hls.light.mjs
index eed9d788fafdb159975e1a2eb08ac88ba9c9ac33..ace881935e6665946f1c8110ebd2f739cde4427e 100644
--- a/dist/hls.light.mjs
+++ b/dist/hls.light.mjs
@@ -20523,9 +20523,9 @@ class Hls {
}
Hls.defaultConfig = void 0;
-var KeySystemFormats = empty.KeySystemFormats;
-var KeySystems = empty.KeySystems;
-var SubtitleStreamController = empty.SubtitleStreamController;
-var TimelineController = empty.TimelineController;
+var KeySystemFormats = empty;
+var KeySystems = empty;
+var SubtitleStreamController = empty;
+var TimelineController = empty;
export { AbrController, AttrList, Cues as AudioStreamController, Cues as AudioTrackController, BasePlaylistController, BaseSegment, BaseStreamController, BufferController, Cues as CMCDController, CapLevelController, ChunkMetadata, ContentSteeringController, DateRange, Cues as EMEController, ErrorActionFlags, ErrorController, ErrorDetails, ErrorTypes, Events, FPSController, Fragment, Hls, HlsSkip, HlsUrlParameters, KeySystemFormats, KeySystems, Level, LevelDetails, LevelKey, LoadStats, MetadataSchema, NetworkErrorAction, Part, PlaylistLevelType, SubtitleStreamController, Cues as SubtitleTrackController, TimelineController, Hls as default, getMediaSource, isMSESupported, isSupported };
//# sourceMappingURL=hls.light.mjs.map
@@ -0,0 +1,13 @@
diff --git a/dist/leaflet.draw.js b/dist/leaflet.draw.js
index 71aeb33b49192dac65f869795716fc3e34969b7e..9be93575809b224c3100fbb9cca72de4bce3faf4 100644
--- a/dist/leaflet.draw.js
+++ b/dist/leaflet.draw.js
@@ -5,6 +5,7 @@
https://github.com/Leaflet/Leaflet.draw
http://leafletjs.com
*/
+var radius;
!function(t,e,i){function o(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}L.drawVersion="1.0.4",L.Draw={},L.drawLocal={draw:{toolbar:{actions:{title:"Cancel drawing",text:"Cancel"},finish:{title:"Finish drawing",text:"Finish"},undo:{title:"Delete last point drawn",text:"Delete last point"},buttons:{polyline:"Draw a polyline",polygon:"Draw a polygon",rectangle:"Draw a rectangle",circle:"Draw a circle",marker:"Draw a marker",circlemarker:"Draw a circlemarker"}},handlers:{circle:{tooltip:{start:"Click and drag to draw circle."},radius:"Radius"},circlemarker:{tooltip:{start:"Click map to place circle marker."}},marker:{tooltip:{start:"Click map to place marker."}},polygon:{tooltip:{start:"Click to start drawing shape.",cont:"Click to continue drawing shape.",end:"Click first point to close this shape."}},polyline:{error:"<strong>Error:</strong> shape edges cannot cross!",tooltip:{start:"Click to start drawing line.",cont:"Click to continue drawing line.",end:"Click last point to finish line."}},rectangle:{tooltip:{start:"Click and drag to draw rectangle."}},simpleshape:{tooltip:{end:"Release mouse to finish drawing."}}}},edit:{toolbar:{actions:{save:{title:"Save changes",text:"Save"},cancel:{title:"Cancel editing, discards all changes",text:"Cancel"},clearAll:{title:"Clear all layers",text:"Clear All"}},buttons:{edit:"Edit layers",editDisabled:"No layers to edit",remove:"Delete layers",removeDisabled:"No layers to delete"}},handlers:{edit:{tooltip:{text:"Drag handles or markers to edit features.",subtext:"Click cancel to undo changes."}},remove:{tooltip:{text:"Click on a feature to remove."}}}}},L.Draw.Event={},L.Draw.Event.CREATED="draw:created",L.Draw.Event.EDITED="draw:edited",L.Draw.Event.DELETED="draw:deleted",L.Draw.Event.DRAWSTART="draw:drawstart",L.Draw.Event.DRAWSTOP="draw:drawstop",L.Draw.Event.DRAWVERTEX="draw:drawvertex",L.Draw.Event.EDITSTART="draw:editstart",L.Draw.Event.EDITMOVE="draw:editmove",L.Draw.Event.EDITRESIZE="draw:editresize",L.Draw.Event.EDITVERTEX="draw:editvertex",L.Draw.Event.EDITSTOP="draw:editstop",L.Draw.Event.DELETESTART="draw:deletestart",L.Draw.Event.DELETESTOP="draw:deletestop",L.Draw.Event.TOOLBAROPENED="draw:toolbaropened",L.Draw.Event.TOOLBARCLOSED="draw:toolbarclosed",L.Draw.Event.MARKERCONTEXT="draw:markercontext",L.Draw=L.Draw||{},L.Draw.Feature=L.Handler.extend({initialize:function(t,e){this._map=t,this._container=t._container,this._overlayPane=t._panes.overlayPane,this._popupPane=t._panes.popupPane,e&&e.shapeOptions&&(e.shapeOptions=L.Util.extend({},this.options.shapeOptions,e.shapeOptions)),L.setOptions(this,e);var i=L.version.split(".");1===parseInt(i[0],10)&&parseInt(i[1],10)>=2?L.Draw.Feature.include(L.Evented.prototype):L.Draw.Feature.include(L.Mixin.Events)},enable:function(){this._enabled||(L.Handler.prototype.enable.call(this),this.fire("enabled",{handler:this.type}),this._map.fire(L.Draw.Event.DRAWSTART,{layerType:this.type}))},disable:function(){this._enabled&&(L.Handler.prototype.disable.call(this),this._map.fire(L.Draw.Event.DRAWSTOP,{layerType:this.type}),this.fire("disabled",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(L.DomUtil.disableTextSelection(),t.getContainer().focus(),this._tooltip=new L.Draw.Tooltip(this._map),L.DomEvent.on(this._container,"keyup",this._cancelDrawing,this))},removeHooks:function(){this._map&&(L.DomUtil.enableTextSelection(),this._tooltip.dispose(),this._tooltip=null,L.DomEvent.off(this._container,"keyup",this._cancelDrawing,this))},setOptions:function(t){L.setOptions(this,t)},_fireCreatedEvent:function(t){this._map.fire(L.Draw.Event.CREATED,{layer:t,layerType:this.type})},_cancelDrawing:function(t){27===t.keyCode&&(this._map.fire("draw:canceled",{layerType:this.type}),this.disable())}}),L.Draw.Polyline=L.Draw.Feature.extend({statics:{TYPE:"polyline"},Poly:L.Polyline,options:{allowIntersection:!0,repeatMode:!1,drawError:{color:"#b00b00",timeout:2500},icon:new L.DivIcon({iconSize:new L.Point(8,8),className:"leaflet-div-icon leaflet-editing-icon"}),touchIcon:new L.DivIcon({iconSize:new L.Point(20,20),className:"leaflet-div-icon leaflet-editing-icon leaflet-touch-icon"}),guidelineDistance:20,maxGuideLineLength:4e3,shapeOptions:{stroke:!0,color:"#3388ff",weight:4,opacity:.5,fill:!1,clickable:!0},metric:!0,feet:!0,nautic:!1,showLength:!0,zIndexOffset:2e3,factor:1,maxPoints:0},initialize:function(t,e){L.Browser.touch&&(this.options.icon=this.options.touchIcon),this.options.drawError.message=L.drawLocal.draw.handlers.polyline.error,e&&e.drawError&&(e.drawError=L.Util.extend({},this.options.drawError,e.drawError)),this.type=L.Draw.Polyline.TYPE,L.Draw.Feature.prototype.initialize.call(this,t,e)},addHooks:function(){L.Draw.Feature.prototype.addHooks.call(this),this._map&&(this._markers=[],this._markerGroup=new L.LayerGroup,this._map.addLayer(this._markerGroup),this._poly=new L.Polyline([],this.options.shapeOptions),this._tooltip.updateContent(this._getTooltipText()),this._mouseMarker||(this._mouseM Line truncated
className:"leaflet-div-icon leaflet-editing-icon leaflet-edit-resize"}),touchMoveIcon:new L.DivIcon({iconSize:new L.Point(20,20),className:"leaflet-div-icon leaflet-editing-icon leaflet-edit-move leaflet-touch-icon"}),touchResizeIcon:new L.DivIcon({iconSize:new L.Point(20,20),className:"leaflet-div-icon leaflet-editing-icon leaflet-edit-resize leaflet-touch-icon"})},initialize:function(t,e){L.Browser.touch&&(this.options.moveIcon=this.options.touchMoveIcon,this.options.resizeIcon=this.options.touchResizeIcon),this._shape=t,L.Util.setOptions(this,e)},addHooks:function(){var t=this._shape;this._shape._map&&(this._map=this._shape._map,t.setStyle(t.options.editing),t._map&&(this._map=t._map,this._markerGroup||this._initMarkers(),this._map.addLayer(this._markerGroup)))},removeHooks:function(){var t=this._shape;if(t.setStyle(t.options.original),t._map){this._unbindMarker(this._moveMarker);for(var e=0,i=this._resizeMarkers.length;e<i;e++)this._unbindMarker(this._resizeMarkers[e]);this._resizeMarkers=null,this._map.removeLayer(this._markerGroup),delete this._markerGroup}this._map=null},updateMarkers:function(){this._markerGroup.clearLayers(),this._initMarkers()},_initMarkers:function(){this._markerGroup||(this._markerGroup=new L.LayerGroup),this._createMoveMarker(),this._createResizeMarker()},_createMoveMarker:function(){},_createResizeMarker:function(){},_createMarker:function(t,e){var i=new L.Marker.Touch(t,{draggable:!0,icon:e,zIndexOffset:10});return this._bindMarker(i),this._markerGroup.addLayer(i),i},_bindMarker:function(t){t.on("dragstart",this._onMarkerDragStart,this).on("drag",this._onMarkerDrag,this).on("dragend",this._onMarkerDragEnd,this).on("touchstart",this._onTouchStart,this).on("touchmove",this._onTouchMove,this).on("MSPointerMove",this._onTouchMove,this).on("touchend",this._onTouchEnd,this).on("MSPointerUp",this._onTouchEnd,this)},_unbindMarker:function(t){t.off("dragstart",this._onMarkerDragStart,this).off("drag",this._onMarkerDrag,this).off("dragend",this._onMarkerDragEnd,this).off("touchstart",this._onTouchStart,this).off("touchmove",this._onTouchMove,this).off("MSPointerMove",this._onTouchMove,this).off("touchend",this._onTouchEnd,this).off("MSPointerUp",this._onTouchEnd,this)},_onMarkerDragStart:function(t){t.target.setOpacity(0),this._shape.fire("editstart")},_fireEdit:function(){this._shape.edited=!0,this._shape.fire("edit")},_onMarkerDrag:function(t){var e=t.target,i=e.getLatLng();e===this._moveMarker?this._move(i):this._resize(i),this._shape.redraw(),this._shape.fire("editdrag")},_onMarkerDragEnd:function(t){t.target.setOpacity(1),this._fireEdit()},_onTouchStart:function(t){if(L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this,t),"function"==typeof this._getCorners){var e=this._getCorners(),i=t.target,o=i._cornerIndex;i.setOpacity(0),this._oppositeCorner=e[(o+2)%4],this._toggleCornerMarkers(0,o)}this._shape.fire("editstart")},_onTouchMove:function(t){var e=this._map.mouseEventToLayerPoint(t.originalEvent.touches[0]),i=this._map.layerPointToLatLng(e);return t.target===this._moveMarker?this._move(i):this._resize(i),this._shape.redraw(),!1},_onTouchEnd:function(t){t.target.setOpacity(1),this.updateMarkers(),this._fireEdit()},_move:function(){},_resize:function(){}}),L.Edit=L.Edit||{},L.Edit.Rectangle=L.Edit.SimpleShape.extend({_createMoveMarker:function(){var t=this._shape.getBounds(),e=t.getCenter();this._moveMarker=this._createMarker(e,this.options.moveIcon)},_createResizeMarker:function(){var t=this._getCorners();this._resizeMarkers=[];for(var e=0,i=t.length;e<i;e++)this._resizeMarkers.push(this._createMarker(t[e],this.options.resizeIcon)),this._resizeMarkers[e]._cornerIndex=e},_onMarkerDragStart:function(t){L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this,t);var e=this._getCorners(),i=t.target,o=i._cornerIndex;this._oppositeCorner=e[(o+2)%4],this._toggleCornerMarkers(0,o)},_onMarkerDragEnd:function(t){var e,i,o=t.target;o===this._moveMarker&&(e=this._shape.getBounds(),i=e.getCenter(),o.setLatLng(i)),this._toggleCornerMarkers(1),this._repositionCornerMarkers(),L.Edit.SimpleShape.prototype._onMarkerDragEnd.call(this,t)},_move:function(t){for(var e,i=this._shape._defaultShape?this._shape._defaultShape():this._shape.getLatLngs(),o=this._shape.getBounds(),a=o.getCenter(),n=[],s=0,r=i.length;s<r;s++)e=[i[s].lat-a.lat,i[s].lng-a.lng],n.push([t.lat+e[0],t.lng+e[1]]);this._shape.setLatLngs(n),this._repositionCornerMarkers(),this._map.fire(L.Draw.Event.EDITMOVE,{layer:this._shape})},_resize:function(t){var e;this._shape.setBounds(L.latLngBounds(t,this._oppositeCorner)),e=this._shape.getBounds(),this._moveMarker.setLatLng(e.getCenter()),this._map.fire(L.Draw.Event.EDITRESIZE,{layer:this._shape})},_getCorners:function(){var t=this._shape.getBounds();return[t.getNorthWest(),t.getNorthEast(),t.getSouthEast(),t.getSouthWest()]},_toggleCornerMarkers:function(t){for(var e=0,i=this._resizeMarkers.length;e<i;e++)this._resizeMarkers[e].setOpacity(t)},_repositionCornerMarkers:function(){for( Line truncated
this._selectedPathOptions&&(e instanceof L.Marker?this._toggleMarkerHighlight(e):(e.setStyle(e.options.previousOptions),delete e.options.previousOptions)),e instanceof L.Marker?(e.dragging.disable(),e.off("dragend",this._onMarkerDragEnd,this).off("touchmove",this._onTouchMove,this).off("MSPointerMove",this._onTouchMove,this).off("touchend",this._onMarkerDragEnd,this).off("MSPointerUp",this._onMarkerDragEnd,this)):e.editing.disable()},_onMouseMove:function(t){this._tooltip.updatePosition(t.latlng)},_onMarkerDragEnd:function(t){var e=t.target;e.edited=!0,this._map.fire(L.Draw.Event.EDITMOVE,{layer:e})},_onTouchMove:function(t){var e=t.originalEvent.changedTouches[0],i=this._map.mouseEventToLayerPoint(e),o=this._map.layerPointToLatLng(i);t.target.setLatLng(o)},_hasAvailableLayers:function(){return 0!==this._featureGroup.getLayers().length}}),L.EditToolbar.Delete=L.Handler.extend({statics:{TYPE:"remove"},initialize:function(t,e){if(L.Handler.prototype.initialize.call(this,t),L.Util.setOptions(this,e),this._deletableLayers=this.options.featureGroup,!(this._deletableLayers instanceof L.FeatureGroup))throw new Error("options.featureGroup must be a L.FeatureGroup");this.type=L.EditToolbar.Delete.TYPE;var i=L.version.split(".");1===parseInt(i[0],10)&&parseInt(i[1],10)>=2?L.EditToolbar.Delete.include(L.Evented.prototype):L.EditToolbar.Delete.include(L.Mixin.Events)},enable:function(){!this._enabled&&this._hasAvailableLayers()&&(this.fire("enabled",{handler:this.type}),this._map.fire(L.Draw.Event.DELETESTART,{handler:this.type}),L.Handler.prototype.enable.call(this),this._deletableLayers.on("layeradd",this._enableLayerDelete,this).on("layerremove",this._disableLayerDelete,this))},disable:function(){this._enabled&&(this._deletableLayers.off("layeradd",this._enableLayerDelete,this).off("layerremove",this._disableLayerDelete,this),L.Handler.prototype.disable.call(this),this._map.fire(L.Draw.Event.DELETESTOP,{handler:this.type}),this.fire("disabled",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(t.getContainer().focus(),this._deletableLayers.eachLayer(this._enableLayerDelete,this),this._deletedLayers=new L.LayerGroup,this._tooltip=new L.Draw.Tooltip(this._map),this._tooltip.updateContent({text:L.drawLocal.edit.handlers.remove.tooltip.text}),this._map.on("mousemove",this._onMouseMove,this))},removeHooks:function(){this._map&&(this._deletableLayers.eachLayer(this._disableLayerDelete,this),this._deletedLayers=null,this._tooltip.dispose(),this._tooltip=null,this._map.off("mousemove",this._onMouseMove,this))},revertLayers:function(){this._deletedLayers.eachLayer(function(t){this._deletableLayers.addLayer(t),t.fire("revert-deleted",{layer:t})},this)},save:function(){this._map.fire(L.Draw.Event.DELETED,{layers:this._deletedLayers})},removeAllLayers:function(){this._deletableLayers.eachLayer(function(t){this._removeLayer({layer:t})},this),this.save()},_enableLayerDelete:function(t){(t.layer||t.target||t).on("click",this._removeLayer,this)},_disableLayerDelete:function(t){var e=t.layer||t.target||t;e.off("click",this._removeLayer,this),this._deletedLayers.removeLayer(e)},_removeLayer:function(t){var e=t.layer||t.target||t;this._deletableLayers.removeLayer(e),this._deletedLayers.addLayer(e),e.fire("deleted")},_onMouseMove:function(t){this._tooltip.updatePosition(t.latlng)},_hasAvailableLayers:function(){return 0!==this._deletableLayers.getLayers().length}})}(window,document);
\ No newline at end of file
@@ -0,0 +1,60 @@
diff --git a/modular/sortable.core.esm.js b/modular/sortable.core.esm.js
index 8b5e49b011713c8859c669069fbe85ce53974e1d..6a0afc92787157b8a31c38cc5f67dfa526090a00 100644
--- a/modular/sortable.core.esm.js
+++ b/modular/sortable.core.esm.js
@@ -1781,11 +1781,16 @@ Sortable.prototype = /** @lends Sortable.prototype */{
}
if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {
capture();
- if (elLastChild && elLastChild.nextSibling) {
- // the last draggable element is not the last node
- el.insertBefore(dragEl, elLastChild.nextSibling);
- } else {
- el.appendChild(dragEl);
+ try {
+ if (elLastChild && elLastChild.nextSibling) {
+ // the last draggable element is not the last node
+ el.insertBefore(dragEl, elLastChild.nextSibling);
+ } else {
+ el.appendChild(dragEl);
+ }
+ }
+ catch(err) {
+ return completed(false);
}
parentEl = el; // actualization
@@ -1802,7 +1807,12 @@ Sortable.prototype = /** @lends Sortable.prototype */{
targetRect = getRect(target);
if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {
capture();
- el.insertBefore(dragEl, firstChild);
+ try {
+ el.insertBefore(dragEl, firstChild);
+ }
+ catch(err) {
+ return completed(false);
+ }
parentEl = el; // actualization
changed();
@@ -1849,10 +1859,15 @@ Sortable.prototype = /** @lends Sortable.prototype */{
_silent = true;
setTimeout(_unsilent, 30);
capture();
- if (after && !nextSibling) {
- el.appendChild(dragEl);
- } else {
- target.parentNode.insertBefore(dragEl, after ? nextSibling : target);
+ try {
+ if (after && !nextSibling) {
+ el.appendChild(dragEl);
+ } else {
+ target.parentNode.insertBefore(dragEl, after ? nextSibling : target);
+ }
+ }
+ catch(err) {
+ return completed(false);
}
// Undo chrome's scroll adjustment (has no effect on other browsers)
@@ -0,0 +1,55 @@
diff --git a/build/inject-manifest.js b/build/inject-manifest.js
index 60e3d2bb51c11a19fbbedbad65e101082ec41c36..fed6026630f43f86e25446383982cf6fb694313b 100644
--- a/build/inject-manifest.js
+++ b/build/inject-manifest.js
@@ -104,7 +104,7 @@ async function injectManifest(config) {
replaceString: manifestString,
searchString: options.injectionPoint,
});
- filesToWrite[options.swDest] = source;
+ filesToWrite[options.swDest] = source.replace(url, encodeURI(upath_1.default.basename(destPath)));
filesToWrite[destPath] = map;
}
else {
diff --git a/build/lib/translate-url-to-sourcemap-paths.js b/build/lib/translate-url-to-sourcemap-paths.js
index 3220c5474eeac6e8a56ca9b2ac2bd9be48529e43..5f003879a904d4840529a42dd056d288fd213771 100644
--- a/build/lib/translate-url-to-sourcemap-paths.js
+++ b/build/lib/translate-url-to-sourcemap-paths.js
@@ -22,7 +22,7 @@ function translateURLToSourcemapPaths(url, swSrc, swDest) {
const possibleSrcPath = upath_1.default.resolve(upath_1.default.dirname(swSrc), url);
if (fs_extra_1.default.existsSync(possibleSrcPath)) {
srcPath = possibleSrcPath;
- destPath = upath_1.default.resolve(upath_1.default.dirname(swDest), url);
+ destPath = `${swDest}.map`;
}
else {
warning = `${errors_1.errors['cant-find-sourcemap']} ${possibleSrcPath}`;
diff --git a/src/inject-manifest.ts b/src/inject-manifest.ts
index 8795ddcaa77aea7b0356417e4bc4b19e2b3f860c..fcdc68342d9ac53936c9ed40a9ccfc2f5070cad3 100644
--- a/src/inject-manifest.ts
+++ b/src/inject-manifest.ts
@@ -129,7 +129,10 @@ export async function injectManifest(
searchString: options.injectionPoint!,
});
- filesToWrite[options.swDest] = source;
+ filesToWrite[options.swDest] = source.replace(
+ url!,
+ encodeURI(upath.basename(destPath)),
+ );
filesToWrite[destPath] = map;
} else {
// If there's no sourcemap associated with swSrc, a simple string
diff --git a/src/lib/translate-url-to-sourcemap-paths.ts b/src/lib/translate-url-to-sourcemap-paths.ts
index 072eac40d4ef5d095a01cb7f7e392a9e034853bd..f0bbe69e88ef3a415de18a7e9cb264daea273d71 100644
--- a/src/lib/translate-url-to-sourcemap-paths.ts
+++ b/src/lib/translate-url-to-sourcemap-paths.ts
@@ -28,7 +28,7 @@ export function translateURLToSourcemapPaths(
const possibleSrcPath = upath.resolve(upath.dirname(swSrc), url);
if (fse.existsSync(possibleSrcPath)) {
srcPath = possibleSrcPath;
- destPath = upath.resolve(upath.dirname(swDest), url);
+ destPath = `${swDest}.map`;
} else {
warning = `${errors['cant-find-sourcemap']} ${possibleSrcPath}`;
}
-541
View File
@@ -1,541 +0,0 @@
/* eslint-disable */
//prettier-ignore
module.exports = {
name: "@yarnpkg/plugin-interactive-tools",
factory: function (require) {
var plugin=(()=>{var jF=Object.create,Ay=Object.defineProperty,zF=Object.defineProperties,HF=Object.getOwnPropertyDescriptor,qF=Object.getOwnPropertyDescriptors,WF=Object.getOwnPropertyNames,__=Object.getOwnPropertySymbols,VF=Object.getPrototypeOf,IE=Object.prototype.hasOwnProperty,O8=Object.prototype.propertyIsEnumerable;var M8=(i,o,a)=>o in i?Ay(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a,Ht=(i,o)=>{for(var a in o||(o={}))IE.call(o,a)&&M8(i,a,o[a]);if(__)for(var a of __(o))O8.call(o,a)&&M8(i,a,o[a]);return i},Zr=(i,o)=>zF(i,qF(o)),GF=i=>Ay(i,"__esModule",{value:!0});var Dl=(i,o)=>{var a={};for(var p in i)IE.call(i,p)&&o.indexOf(p)<0&&(a[p]=i[p]);if(i!=null&&__)for(var p of __(i))o.indexOf(p)<0&&O8.call(i,p)&&(a[p]=i[p]);return a};var tt=(i,o)=>()=>(o||i((o={exports:{}}).exports,o),o.exports),YF=(i,o)=>{for(var a in o)Ay(i,a,{get:o[a],enumerable:!0})},KF=(i,o,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let p of WF(o))!IE.call(i,p)&&p!=="default"&&Ay(i,p,{get:()=>o[p],enumerable:!(a=HF(o,p))||a.enumerable});return i},vu=i=>KF(GF(Ay(i!=null?jF(VF(i)):{},"default",i&&i.__esModule&&"default"in i?{get:()=>i.default,enumerable:!0}:{value:i,enumerable:!0})),i);var Oy=tt((tH,k8)=>{"use strict";var N8=Object.getOwnPropertySymbols,XF=Object.prototype.hasOwnProperty,QF=Object.prototype.propertyIsEnumerable;function JF(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}function ZF(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var o={},a=0;a<10;a++)o["_"+String.fromCharCode(a)]=a;var p=Object.getOwnPropertyNames(o).map(function(t){return o[t]});if(p.join("")!=="0123456789")return!1;var _={};return"abcdefghijklmnopqrst".split("").forEach(function(t){_[t]=t}),Object.keys(Object.assign({},_)).join("")==="abcdefghijklmnopqrst"}catch(t){return!1}}k8.exports=ZF()?Object.assign:function(i,o){for(var a,p=JF(i),_,t=1;t<arguments.length;t++){a=Object(arguments[t]);for(var k in a)XF.call(a,k)&&(p[k]=a[k]);if(N8){_=N8(a);for(var L=0;L<_.length;L++)QF.call(a,_[L])&&(p[_[L]]=a[_[L]])}}return p}});var W8=tt(_u=>{"use strict";var bE=Oy(),Zf=typeof Symbol=="function"&&Symbol.for,My=Zf?Symbol.for("react.element"):60103,$F=Zf?Symbol.for("react.portal"):60106,eP=Zf?Symbol.for("react.fragment"):60107,tP=Zf?Symbol.for("react.strict_mode"):60108,nP=Zf?Symbol.for("react.profiler"):60114,rP=Zf?Symbol.for("react.provider"):60109,iP=Zf?Symbol.for("react.context"):60110,uP=Zf?Symbol.for("react.forward_ref"):60112,oP=Zf?Symbol.for("react.suspense"):60113,lP=Zf?Symbol.for("react.memo"):60115,sP=Zf?Symbol.for("react.lazy"):60116,L8=typeof Symbol=="function"&&Symbol.iterator;function ky(i){for(var o="https://reactjs.org/docs/error-decoder.html?invariant="+i,a=1;a<arguments.length;a++)o+="&args[]="+encodeURIComponent(arguments[a]);return"Minified React error #"+i+"; visit "+o+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var F8={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},P8={};function jv(i,o,a){this.props=i,this.context=o,this.refs=P8,this.updater=a||F8}jv.prototype.isReactComponent={};jv.prototype.setState=function(i,o){if(typeof i!="object"&&typeof i!="function"&&i!=null)throw Error(ky(85));this.updater.enqueueSetState(this,i,o,"setState")};jv.prototype.forceUpdate=function(i){this.updater.enqueueForceUpdate(this,i,"forceUpdate")};function I8(){}I8.prototype=jv.prototype;function BE(i,o,a){this.props=i,this.context=o,this.refs=P8,this.updater=a||F8}var UE=BE.prototype=new I8;UE.constructor=BE;bE(UE,jv.prototype);UE.isPureReactComponent=!0;var jE={current:null},b8=Object.prototype.hasOwnProperty,B8={key:!0,ref:!0,__self:!0,__source:!0};function U8(i,o,a){var p,_={},t=null,k=null;if(o!=null)for(p in o.ref!==void 0&&(k=o.ref),o.key!==void 0&&(t=""+o.key),o)b8.call(o,p)&&!B8.hasOwnProperty(p)&&(_[p]=o[p]);var L=arguments.length-2;if(L===1)_.children=a;else if(1<L){for(var O=Array(L),C=0;C<L;C++)O[C]=arguments[C+2];_.children=O}if(i&&i.defaultProps)for(p in L=i.defaultProps,L)_[p]===void 0&&(_[p]=L[p]);return{$$typeof:My,type:i,key:t,ref:k,props:_,_owner:jE.current}}function aP(i,o){return{$$typeof:My,type:i.type,key:o,ref:i.ref,props:i.props,_owner:i._owner}}function zE(i){return typeof i=="object"&&i!==null&&i.$$typeof===My}function fP(i){var o={"=":"=0",":":"=2"};return"$"+(""+i).replace(/[=:]/g,function(a){return o[a]})}var j8=/\/+/g,E_=[];function z8(i,o,a,p){if(E_.length){var _=E_.pop();return _.result=i,_.keyPrefix=o,_.func=a,_.context=p,_.count=0,_}return{result:i,keyPrefix:o,func:a,context:p,count:0}}function H8(i){i.result=null,i.keyPrefix=null,i.func=null,i.context=null,i.count=0,10>E_.length&&E_.push(i)}function HE(i,o,a,p){var _=typeof i;(_==="undefined"||_==="boolean")&&(i=null);var t=!1;if(i===null)t=!0;else switch(_){case"strinLine truncated
in `+(X||"Unknown")+Ne}var ut=1;function We(X){return X._status===ut?X._result:null}function Ft(X,we,Le){var Ne=we.displayName||we.name||"";return X.displayName||(Ne!==""?Le+"("+Ne+")":Le)}function Jt(X){if(X==null)return null;if(typeof X.tag=="number"&&ct("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof X=="function")return X.displayName||X.name||null;if(typeof X=="string")return X;switch(X){case k:return"Fragment";case t:return"Portal";case O:return"Profiler";case L:return"StrictMode";case ne:return"Suspense";case m:return"SuspenseList"}if(typeof X=="object")switch(X.$$typeof){case U:return"Context.Consumer";case C:return"Context.Provider";case W:return Ft(X,X.render,"ForwardRef");case he:return Jt(X.type);case ve:return Jt(X.render);case Ee:{var we=X,Le=We(we);if(Le)return Jt(Le);break}}return null}var rt={},Q=null;function fe(X){Q=X}rt.getCurrentStack=null,rt.getStackAddendum=function(){var X="";if(Q){var we=Jt(Q.type),Le=Q._owner;X+=Xe(we,Q._source,Le&&Jt(Le.type))}var Ne=rt.getCurrentStack;return Ne&&(X+=Ne()||""),X};var xe={current:!1},oe={ReactCurrentDispatcher:je,ReactCurrentBatchConfig:qe,ReactCurrentOwner:yt,IsSomeRendererActing:xe,assign:i};i(oe,{ReactDebugCurrentFrame:rt,ReactComponentTreeHook:{}});function ze(X){{for(var we=arguments.length,Le=new Array(we>1?we-1:0),Ne=1;Ne<we;Ne++)Le[Ne-1]=arguments[Ne];Rt("warn",X,Le)}}function ct(X){{for(var we=arguments.length,Le=new Array(we>1?we-1:0),Ne=1;Ne<we;Ne++)Le[Ne-1]=arguments[Ne];Rt("error",X,Le)}}function Rt(X,we,Le){{var Ne=Le.length>0&&typeof Le[Le.length-1]=="string"&&Le[Le.length-1].indexOf(`
in`)===0;if(!Ne){var dt=oe.ReactDebugCurrentFrame,Yn=dt.getStackAddendum();Yn!==""&&(we+="%s",Le=Le.concat([Yn]))}var Cn=Le.map(function(Mu){return""+Mu});Cn.unshift("Warning: "+we),Function.prototype.apply.call(console[X],console,Cn);try{var cr=0,Si="Warning: "+we.replace(/%s/g,function(){return Le[cr++]});throw new Error(Si)}catch(Mu){}}}var nn={};function an(X,we){{var Le=X.constructor,Ne=Le&&(Le.displayName||Le.name)||"ReactClass",dt=Ne+"."+we;if(nn[dt])return;ct("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",we,Ne),nn[dt]=!0}}var Mn={isMounted:function(X){return!1},enqueueForceUpdate:function(X,we,Le){an(X,"forceUpdate")},enqueueReplaceState:function(X,we,Le,Ne){an(X,"replaceState")},enqueueSetState:function(X,we,Le,Ne){an(X,"setState")}},lr={};Object.freeze(lr);function ln(X,we,Le){this.props=X,this.context=we,this.refs=lr,this.updater=Le||Mn}ln.prototype.isReactComponent={},ln.prototype.setState=function(X,we){if(!(typeof X=="object"||typeof X=="function"||X==null))throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,X,we,"setState")},ln.prototype.forceUpdate=function(X){this.updater.enqueueForceUpdate(this,X,"forceUpdate")};{var Vt={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},Er=function(X,we){Object.defineProperty(ln.prototype,X,{get:function(){ze("%s(...) is deprecated in plain JavaScript React classes. %s",we[0],we[1])}})};for(var w in Vt)Vt.hasOwnProperty(w)&&Er(w,Vt[w])}function jt(){}jt.prototype=ln.prototype;function Xn(X,we,Le){this.props=X,this.context=we,this.refs=lr,this.updater=Le||Mn}var vr=Xn.prototype=new jt;vr.constructor=Xn,i(vr,ln.prototype),vr.isPureReactComponent=!0;function jr(){var X={current:null};return Object.seal(X),X}var fr=Object.prototype.hasOwnProperty,zr={key:!0,ref:!0,__self:!0,__source:!0},Xt,wu,d0;d0={};function Ro(X){if(fr.call(X,"ref")){var we=Object.getOwnPropertyDescriptor(X,"ref").get;if(we&&we.isReactWarning)return!1}return X.ref!==void 0}function Qo(X){if(fr.call(X,"key")){var we=Object.getOwnPropertyDescriptor(X,"key").get;if(we&&we.isReactWarning)return!1}return X.key!==void 0}function Fs(X,we){var Le=function(){Xt||(Xt=!0,ct("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://fb.me/react-special-props)",we))};Le.isReactWarning=!0,Object.defineProperty(X,"key",{get:Le,configurable:!0})}function Jo(X,we){var Le=function(){wu||(wu=!0,ct("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://fb.me/react-special-props)",we))};Le.isReactWarning=!0,Object.defineProperty(X,"ref",{get:Le,configurable:!0})}function Zo(X){if(typeof X.ref=="string"&&yt.current&&X.__self&&yt.current.stateNode!==X.__self){var we=Jt(yt.current.type);d0[we]||(ct('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://fb.me/react-strict-mode-string-ref',Jt(yt.current.type),X.ref),d0[we]=!0)}}var qt=function(X,we,Le,Ne,dt,Yn,Cn){var cr={$$typeof:_,type:X,key:we,ref:Le,props:Cn,_owner:Yn};return cr._store={},Object.defineProperty(cr._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(cr,"_self",{configurable:!1,enumerable:!1,writable:!1,value:Ne}),Object.defineProperty(cr,"_source",{configurable:!1,enumerable:!1,writable:!1,value:dt}),Object.freeze&&(Object.freeze(cr.props),Object.freeze(cr)),cr};function xi(X,we,Le){var Ne,dt={},Yn=null,Cn=null,cr=null,Si=null;if(we!=null){Ro(we)&&(Cn=we.ref,Zo(we)),Qo(we)&&(Yn=""+we.key),cr=we.__self===void 0?null:we.__self,Si=we.__source===void 0?null:we.__source;for(Ne in we)fr.call(we,Ne)&&!zr.hasOwnProperty(Ne)&&(dt[Ne]=we[Ne])}var Mu=arguments.length-2;if(Mu===1)dt.children=Le;else if(Mu>1){for(var zu=Array(Mu),Hu=0;Hu<Mu;Hu++)zu[Hu]=arguments[Hu+2];Object.freeze&&Object.freeze(zu),dt.children=zu}if(X&&X.defaultProps){var Su=X.defaultProps;for(Ne in Su)dt[Ne]===void 0&&(dt[Ne]=Su[Ne])}if(Yn||Cn){var Ti=typeof X=="function"?X.displayName||X.name||"Unknown":X;Yn&&Fs(dt,Ti),Cn&&Jo(dt,Ti)}return qt(X,Yn,Cn,cr,Si,yt.current,dt)}function lu Line truncated
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.`);return X}function Xl(X,we){var Le=Yi();if(we!==void 0&&ct("useContext() second argument is reserved for future use in React. Passing it is not supported. You passed: %s.%s",we,typeof we=="number"&&Array.isArray(arguments[2])?`
Did you call array.map(useContext)? Calling Hooks inside a loop is not supported. Learn more at https://fb.me/rules-of-hooks`:""),X._context!==void 0){var Ne=X._context;Ne.Consumer===X?ct("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):Ne.Provider===X&&ct("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return Le.useContext(X,we)}function Mo(X){var we=Yi();return we.useState(X)}function ai(X,we,Le){var Ne=Yi();return Ne.useReducer(X,we,Le)}function so(X){var we=Yi();return we.useRef(X)}function Ql(X,we){var Le=Yi();return Le.useEffect(X,we)}function ko(X,we){var Le=Yi();return Le.useLayoutEffect(X,we)}function Is(X,we){var Le=Yi();return Le.useCallback(X,we)}function $n(X,we){var Le=Yi();return Le.useMemo(X,we)}function el(X,we,Le){var Ne=Yi();return Ne.useImperativeHandle(X,we,Le)}function ao(X,we){{var Le=Yi();return Le.useDebugValue(X,we)}}var I0;I0=!1;function wl(){if(yt.current){var X=Jt(yt.current.type);if(X)return`
Check the render method of \``+X+"`."}return""}function No(X){if(X!==void 0){var we=X.fileName.replace(/^.*[\\\/]/,""),Le=X.lineNumber;return`
Check your code at `+we+":"+Le+"."}return""}function wt(X){return X!=null?No(X.__source):""}var bt={};function Hn(X){var we=wl();if(!we){var Le=typeof X=="string"?X:X.displayName||X.name;Le&&(we=`
Check the top-level render call using <`+Le+">.")}return we}function qr(X,we){if(!(!X._store||X._store.validated||X.key!=null)){X._store.validated=!0;var Le=Hn(we);if(!bt[Le]){bt[Le]=!0;var Ne="";X&&X._owner&&X._owner!==yt.current&&(Ne=" It was passed a child from "+Jt(X._owner.type)+"."),fe(X),ct('Each child in a list should have a unique "key" prop.%s%s See https://fb.me/react-warning-keys for more information.',Le,Ne),fe(null)}}}function Ki(X,we){if(typeof X=="object"){if(Array.isArray(X))for(var Le=0;Le<X.length;Le++){var Ne=X[Le];Dr(Ne)&&qr(Ne,we)}else if(Dr(X))X._store&&(X._store.validated=!0);else if(X){var dt=Oe(X);if(typeof dt=="function"&&dt!==X.entries)for(var Yn=dt.call(X),Cn;!(Cn=Yn.next()).done;)Dr(Cn.value)&&qr(Cn.value,we)}}}function Qr(X){{var we=X.type;if(we==null||typeof we=="string")return;var Le=Jt(we),Ne;if(typeof we=="function")Ne=we.propTypes;else if(typeof we=="object"&&(we.$$typeof===W||we.$$typeof===he))Ne=we.propTypes;else return;Ne?(fe(X),o(Ne,X.props,"prop",Le,rt.getStackAddendum),fe(null)):we.PropTypes!==void 0&&!I0&&(I0=!0,ct("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",Le||"Unknown")),typeof we.getDefaultProps=="function"&&!we.getDefaultProps.isReactClassApproved&&ct("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Ou(X){{fe(X);for(var we=Object.keys(X.props),Le=0;Le<we.length;Le++){var Ne=we[Le];if(Ne!=="children"&&Ne!=="key"){ct("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",Ne);break}}X.ref!==null&&ct("Invalid attribute `ref` supplied to `React.Fragment`."),fe(null)}}function h0(X,we,Le){var Ne=eu(X);if(!Ne){var dt="";(X===void 0||typeof X=="object"&&X!==null&&Object.keys(X).length===0)&&(dt+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Yn=wt(we);Yn?dt+=Yn:dt+=wl();var Cn;X===null?Cn="null":Array.isArray(X)?Cn="array":X!==void 0&&X.$$typeof===_?(Cn="<"+(Jt(X.type)||"Unknown")+" />",dt=" Did you accidentally export a JSX literal instead of a component?"):Cn=typeof X,ct("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",Cn,dt)}var cr=xi.apply(this,arguments);if(cr==null)return cr;if(Ne)for(var Si=2;Si<arguments.length;Si++)Ki(arguments[Si],X);return X===k?Ou(cr):Qr(cr),cr}var Ni=!1;function v0(X){var we=h0.bind(null,X);return we.type=X,Ni||(Ni=!0,ze("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.")),Object.defineProperty(we,"type",{enumerable:!1,get:function(){return ze("Factory.type is deprecated. Access the class directly before passing it to createFactory."),Object.defineProperty(this,"type",{value:X}),X}}),we}function hs(X,we,Le){for(var Ne=mi.apply(this,arguments),dt=2;dt<arguments.length;dt++)Ki(arguments[dt],Ne.type);return Qr(Ne),Ne}try{var Tt=Object.freeze({}),fo=new Map([[Tt,null]]),tl=new Set([Tt]);fo.set(0,0),tl.add(0)}catch(X){}var Jl=h0,ju=hs,vs=v0,b0={map:yi,forEach:Hr,count:en,toArray:bn,only:Ai};Eu.Children=b0,Eu.Component=ln,Eu.Fragment=k,Eu.Profiler=O,Eu.PureComponent=Xn,Eu.StrictMode=L,Eu.Suspense=ne,Eu.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=oe,Eu.cloneElement=ju,Eu.createContext=gi,Eu.createElement=Jl,Eu.createFactory=vs,Eu.createRef=jr,Eu.forwardRef=Au,Eu.isValidElement=Dr,Eu.lazy=Wt,Eu.memo=X0,Eu.useCallback=Is,Eu.useContext=Xl,Eu.useDebugValue=ao,Eu.useEffect=Ql,Eu.useImperativeHandle=el,Eu.useLayoutEffect=ko,Eu.useMemo=$n,Eu.useReducer=ai,Eu.useRef=so,Eu.useState=Mo,Eu.version=a}()});var Mi=tt((oH,KE)=>{"use strict";process.env.NODE_ENV==="production"?KE.exports=W8():KE.exports=J8()});var Z8=tt((zv,Ny)=>{(function(){var i,o="4.17.21",a=200,p="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",_="Expected a function",t="Invalid `variable` option passed into `_.template`",k="__lodash_hash_undefined__",L=500,O="__lodash_placeholder__",C=1,U=2,H=4,W=1,ne=2,m=1,he=2,Ee=4,ve=8,se=16,De=32,pe=64,me=128,ie=256,Oe=512,je=30,qe="...",yt=800,gt=16,Xe=1,ut=2,We=3,Ft=1/0,Jt=9007199254740991,rt=17976931348623157e292,Q=0/0,fe=4294967295,xe=fe-1,oe=fe>>>1,ze=[["ary",me],["bind",m],["bindKey",he],["curry",ve],["curryRight",se],["flip",Oe],["partial",De],["partialRight",pe],["rearg",ie]],ct="[object Arguments]",Rt="[object Array]",nn="[object AsyncFunction]",an="[object Boolean]",Mn="[object Date]",lr="[object DOMException]",ln="[object Error]",Vt="[object Function]",Er="[object GeneratorFunction]",w="[object Map]",jt="[object Number]",Xn="[object Null]",vr="[object Object]",jr="[object Promise]",fr="[object Proxy]",zr="[object RegExp]",Xt="[object Set]",wu="[object String]",d0="[object Symbol]",Ro="[object Undefined]",Qo="[object WeakMap]",Fs="[object Wea Line truncated
/* [wrapped with `+v+`] */
`)}function is(d){return tr(d)||dl(d)||!!(ho&&d&&d[ho])}function Eo(d,v){var x=typeof d;return v=v==null?Jt:v,!!v&&(x=="number"||x!="symbol"&&Is.test(d))&&d>-1&&d%1==0&&d<v}function oo(d,v,x){if(!bu(x))return!1;var P=typeof v;return(P=="number"?pl(x)&&Eo(v,x.length):P=="string"&&v in x)?wo(x[v],d):!1}function Ji(d,v){if(tr(d))return!1;var x=typeof d;return x=="number"||x=="symbol"||x=="boolean"||d==null||bl(d)?!0:Ri.test(d)||!Hr.test(d)||v!=null&&d in xn(v)}function Yr(d){var v=typeof d;return v=="string"||v=="number"||v=="symbol"||v=="boolean"?d!=="__proto__":d===null}function kf(d){var v=Ho(d),x=Y[v];if(typeof x!="function"||!(v in at.prototype))return!1;if(d===x)return!0;var P=qn(x);return!!P&&d===P[0]}function om(d){return!!zs&&zs in d}var Nl=x0?xa:Up;function Nf(d){var v=d&&d.constructor,x=typeof v=="function"&&v.prototype||Rn;return d===x}function Lf(d){return d===d&&!bu(d)}function gd(d,v){return function(x){return x==null?!1:x[d]===v&&(v!==i||d in xn(x))}}function _d(d){var v=Rd(d,function(P){return x.size===L&&x.clear(),P}),x=v.cache;return v}function Dc(d,v){var x=d[1],P=v[1],q=x|P,ee=q<(m|he|me),de=P==me&&x==ve||P==me&&x==ie&&d[7].length<=v[8]||P==(me|ie)&&v[7].length<=v[8]&&x==ve;if(!(ee||de))return d;P&m&&(d[2]=v[2],q|=x&m?0:Ee);var _e=v[3];if(_e){var Ie=d[3];d[3]=Ie?Vs(Ie,_e,v[4]):_e,d[4]=Ie?C0(d[3],O):v[4]}return _e=v[5],_e&&(Ie=d[5],d[5]=Ie?ma(Ie,_e,v[6]):_e,d[6]=Ie?C0(d[5],O):v[6]),_e=v[7],_e&&(d[7]=_e),P&me&&(d[8]=d[8]==null?v[8]:Kn(d[8],v[8])),d[9]==null&&(d[9]=v[9]),d[0]=v[0],d[1]=q,d}function r1(d){var v=[];if(d!=null)for(var x in xn(d))v.push(x);return v}function Xa(d){return Vu.call(d)}function F2(d,v,x){return v=ni(v===i?d.length-1:v,0),function(){for(var P=arguments,q=-1,ee=ni(P.length-v,0),de=Ye(ee);++q<ee;)de[q]=P[v+q];q=-1;for(var _e=Ye(v+1);++q<v;)_e[q]=P[q];return _e[v]=x(de),ue(d,this,_e)}}function Ed(d,v){return v.length<2?d:J(d,ll(v,0,-1))}function i1(d,v){for(var x=d.length,P=Kn(v.length,x),q=iu(d);P--;){var ee=v[P];d[P]=Eo(ee,x)?q[ee]:i}return d}function Ff(d,v){if(!(v==="constructor"&&typeof d[v]=="function")&&v!="__proto__")return d[v]}var u1=Dd(Yc),Qa=gf||function(d,v){return ji.setTimeout(d,v)},o1=Dd(C2);function P2(d,v,x){var P=v+"";return o1(d,cn(P,wh(Mf(P),x)))}function Dd(d){var v=0,x=0;return function(){var P=e0(),q=gt-(P-x);if(x=P,q>0){if(++v>=yt)return arguments[0]}else v=0;return d.apply(i,arguments)}}function wc(d,v){var x=-1,P=d.length,q=P-1;for(v=v===i?P:v;++x<v;){var ee=ad(x,q),de=d[ee];d[ee]=d[x],d[x]=de}return d.length=v,d}var l1=_d(function(d){var v=[];return d.charCodeAt(0)===46&&v.push(""),d.replace(K0,function(x,P,q,ee){v.push(q?ee.replace(Yi,"$1"):P||x)}),v});function Ll(d){if(typeof d=="string"||bl(d))return d;var v=d+"";return v=="0"&&1/d==-Ft?"-0":v}function Ea(d){if(d!=null){try{return Fu.call(d)}catch(v){}try{return d+""}catch(v){}}return""}function wh(d,v){return nt(ze,function(x){var P="_."+x[0];v&x[1]&&!sn(d,P)&&d.push(P)}),d.sort()}function I2(d){if(d instanceof at)return d.clone();var v=new Vr(d.__wrapped__,d.__chain__);return v.__actions__=iu(d.__actions__),v.__index__=d.__index__,v.__values__=d.__values__,v}function b2(d,v,x){(x?oo(d,v,x):v===i)?v=1:v=ni(Mr(v),0);var P=d==null?0:d.length;if(!P||v<1)return[];for(var q=0,ee=0,de=Ye($u(P/v));q<P;)de[ee++]=ll(d,q,q+=v);return de}function Sh(d){for(var v=-1,x=d==null?0:d.length,P=0,q=[];++v<x;){var ee=d[v];ee&&(q[P++]=ee)}return q}function wd(){var d=arguments.length;if(!d)return[];for(var v=Ye(d-1),x=arguments[0],P=d;P--;)v[P-1]=arguments[P];return Dn(tr(x)?iu(x):[x],qi(v,1))}var Th=Ir(function(d,v){return l0(d)?Al(d,qi(v,1,l0,!0)):[]}),Fl=Ir(function(d,v){var x=Pl(v);return l0(x)&&(x=i),l0(d)?Al(d,qi(v,1,l0,!0),Vn(x,2)):[]}),us=Ir(function(d,v){var x=Pl(v);return l0(x)&&(x=i),l0(d)?Al(d,qi(v,1,l0,!0),i,x):[]});function xs(d,v,x){var P=d==null?0:d.length;return P?(v=x||v===i?1:Mr(v),ll(d,v<0?0:v,P)):[]}function Gs(d,v,x){var P=d==null?0:d.length;return P?(v=x||v===i?1:Mr(v),v=P-v,ll(d,0,v<0?0:v)):[]}function B2(d,v){return d&&d.length?hc(d,Vn(v,3),!0,!0):[]}function Ch(d,v){return d&&d.length?hc(d,Vn(v,3),!0):[]}function U2(d,v,x,P){var q=d==null?0:d.length;return q?(x&&typeof x!="number"&&oo(d,v,x)&&(x=0,P=q),pc(d,v,x,P)):[]}function j2(d,v,x){var P=d==null?0:d.length;if(!P)return-1;var q=x==null?0:Mr(x);return q<0&&(q=ni(P+q,0)),it(d,Vn(v,3),q)}function s1(d,v,x){var P=d==null?0:d.length;if(!P)return-1;var q=P-1;return x!==i&&(q=Mr(x),q=x<0?ni(P+q,0):Kn(q,P-1)),it(d,Vn(v,3),q,!0)}function a1(d){var v=d==null?0:d.length;return v?qi(d,1):[]}function xh(d){var v=d==null?0:d.length;return v?qi(d,Ft):[]}function z2(d,v){var x=d==null?0:d.length;return x?(v=v===i?1:Mr(v),qi(d,v)):[]}function H2(d){for(var v=-1,x=d==null?0:d.length,P={};++v<x;){var q=d[v];P[q[0]]=q[1]}return P}function Rs(d){return d&&d.length?d[0]:i}function Ja(d,v,x){var P=d==null?0:d.length;if(!P)return-1;var q=x==null?0:Mr(x);return q<0&&(q=ni(P+q,0)),Dt(d,v,q)}function Rh(d){var v=d==null?0:d.length;return v?ll(d,0,-1):[]}va Line truncated
`;d.replace(on,function(ar,ui,di,jl,Zi,lo){return di||(di=jl),At+=d.slice(Et,lo).replace(ao,js),ui&&(_e=!0,At+=`' +
__e(`+ui+`) +
'`),Zi&&(Ie=!0,At+=`';
`+Zi+`;
__p += '`),di&&(At+=`' +
((__t = (`+di+`)) == null ? '' : __t) +
'`),Et=lo+ar.length,ar}),At+=`';
`;var rr=li.call(v,"variable")&&v.variable;if(!rr)At=`with (obj) {
`+At+`
}
`;else if(X0.test(rr))throw new Kt(t);At=(Ie?At.replace(Xr,""):At).replace(Ao,"$1").replace(Oo,"$1;"),At="function("+(rr||"obj")+`) {
`+(rr?"":`obj || (obj = {});
`)+"var __t, __p = ''"+(_e?", __e = _.escape":"")+(Ie?`, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
`:`;
`)+At+`return __p
}`;var br=_v(function(){return pr(ee,kn+"return "+At).apply(i,de)});if(br.source=At,gp(br))throw br;return br}function hv(d){return Ui(d).toLowerCase()}function Yd(d){return Ui(d).toUpperCase()}function Kd(d,v,x){if(d=Ui(d),d&&(x||v===i))return Lu(d);if(!d||!(v=sl(v)))return d;var P=ei(d),q=ei(v),ee=hf(P,q),de=Sl(P,q)+1;return va(P,ee,de).join("")}function Op(d,v,x){if(d=Ui(d),d&&(x||v===i))return d.slice(0,po(d)+1);if(!d||!(v=sl(v)))return d;var P=ei(d),q=Sl(P,ei(v))+1;return va(P,0,q).join("")}function vv(d,v,x){if(d=Ui(d),d&&(x||v===i))return d.replace(bn,"");if(!d||!(v=sl(v)))return d;var P=ei(d),q=hf(P,ei(v));return va(P,q).join("")}function Xd(d,v){var x=je,P=qe;if(bu(v)){var q="separator"in v?v.separator:q;x="length"in v?Mr(v.length):x,P="omission"in v?sl(v.omission):P}d=Ui(d);var ee=d.length;if(bo(d)){var de=ei(d);ee=de.length}if(x>=ee)return d;var _e=x-tu(P);if(_e<1)return P;var Ie=de?va(de,0,_e).join(""):d.slice(0,_e);if(q===i)return Ie+P;if(de&&(_e+=Ie.length-_e),D1(q)){if(d.slice(_e).search(q)){var Et,St=Ie;for(q.global||(q=yu(q.source,Ui(Mo.exec(q))+"g")),q.lastIndex=0;Et=q.exec(St);)var At=Et.index;Ie=Ie.slice(0,At===i?_e:At)}}else if(d.indexOf(sl(q),_e)!=_e){var on=Ie.lastIndexOf(q);on>-1&&(Ie=Ie.slice(0,on))}return Ie+P}function mv(d){return d=Ui(d),d&&ki.test(d)?d.replace(F0,Bi):d}var yv=Cf(function(d,v,x){return d+(x?" ":"")+v.toUpperCase()}),Mp=_h("toUpperCase");function gv(d,v,x){return d=Ui(d),v=x?i:v,v===i?gs(d)?yf(d):g0(d):d.match(v)||[]}var _v=Ir(function(d,v){try{return ue(d,i,v)}catch(x){return gp(x)?x:new Kt(x)}}),Gm=fl(function(d,v){return nt(v,function(x){x=Ll(x),Gu(d,x,E1(d[x],d))}),d});function Ev(d){var v=d==null?0:d.length,x=Vn();return d=v?Lt(d,function(P){if(typeof P[1]!="function")throw new ti(_);return[x(P[0]),P[1]]}):[],Ir(function(P){for(var q=-1;++q<v;){var ee=d[q];if(ue(ee[0],this,P))return ue(ee[1],this,P)}})}function Ym(d){return Df(j0(d,C))}function Qd(d){return function(){return d}}function Dv(d,v){return d==null||d!==d?v:d}var kp=e1(),Km=e1(!0);function s0(d){return d}function Np(d){return Cu(typeof d=="function"?d:j0(d,C))}function Xm(d){return S2(j0(d,C))}function Qm(d,v){return wf(d,j0(v,C))}var Lp=Ir(function(d,v){return function(x){return Ol(x,d,v)}}),tf=Ir(function(d,v){return function(x){return Ol(d,x,v)}});function Fp(d,v,x){var P=N0(v),q=b(v,P);x==null&&!(bu(v)&&(q.length||!P.length))&&(x=v,v=d,d=this,q=b(v,N0(v)));var ee=!(bu(x)&&"chain"in x)||!!x.chain,de=xa(d);return nt(q,function(_e){var Ie=v[_e];d[_e]=Ie,de&&(d.prototype[_e]=function(){var Et=this.__chain__;if(ee||Et){var St=d(this.__wrapped__),At=St.__actions__=iu(this.__actions__);return At.push({func:Ie,args:arguments,thisArg:d}),St.__chain__=Et,St}return Ie.apply(d,Dn([this.value()],arguments))})}),d}function Pp(){return ji._===this&&(ji._=Xi),this}function Ip(){}function Jm(d){return d=Mr(d),Ir(function(v){return Vc(v,d)})}var Zm=Fr(Lt),wv=Fr(Mt),Hf=Fr(Cr);function bp(d){return Ji(d)?fn(Ll(d)):go(d)}function Sv(d){return function(v){return d==null?i:J(d,v)}}var $m=t1(),ey=t1(!0);function Bp(){return[]}function Up(){return!1}function ty(){return{}}function ny(){return""}function Tv(){return!0}function jp(d,v){if(d=Mr(d),d<1||d>Jt)return[];var x=fe,P=Kn(d,fe);v=Vn(v),d-=fe;for(var q=T0(P,v);++x<d;)v(x);return q}function zp(d){return tr(d)?Lt(d,Ll):bl(d)?[d]:iu(l1(Ui(d)))}function Jd(d){var v=++Tl;return Ui(d)+v}var ry=vd(function(d,v){return d+v},0),k1=L2("ceil"),iy=vd(function(d,v){return d/v},1),Cv=L2("floor");function xv(d){return d&&d.length?pa(d,s0,xt):i}function uy(d,v){return d&&d.length?pa(d,Vn(v,2),xt):i}function qf(d){return un(d,s0)}function Hp(d,v){return un(d,Vn(v,2))}function Rv(d){return d&&d.length?pa(d,s0,od):i}function oy(d,v){return d&&d.length?pa(d,Vn(v,2),od):i}var ly=vd(function(d,v){return d*v},1),qp=L2("round"),sy=vd(function(d,v){return d-v},0);function Zs(d){return d&&d.length?Nu(d,s0):0}function ay(d,v){return d&&d.length?Nu(d,Vn(v,2)):0}return Y.after=sp,Y.ary=Yh,Y.assign=Sp,Y.assignIn=bd,Y.assignInWith=So,Y.assignWith=As,Y.at=bf,Y.before=xd,Y.bind=E1,Y.bindAll=Gm,Y.bindKey=Kh,Y.castArray=$h,Y.chain=Bh,Y.chunk=b2,Y.compact=Sh,Y.concat=wd,Y.cond=Ev,Y.conforms=Ym,Y.constant=Qd,Y.countBy=Td,Y.create=Bd,Y.curry=ap,Y.curryRight=Xh,Y.debounce=fp,Y.defaults=Tp,Y.defaultsDeep=T1,Y.defer=Qh,Y.delay=Jh,Y.difference=Th,Y.differenceBy=Fl,Y.differenceWith=us,Y.drop=xs,Y.dropRight=Gs,Y.dropRightWhile=B2,Y.dropWhile=Ch,Y.fill=U2,Y.filter=ep,Y.flatMap=Hh,Y.flatMapDeep=np,Y.flatMapDepth=qh,Y.flatten=a1,Y.flattenDeep=xh,Y.flattenDepth=z2,Y.flip=cp,Y.flow=kp,Y.flowRight=Km,Y.fromPairs=H2,Y.functions=k0,Y.functionsIn=Ud,Y.groupBy=vm,Y.initial=Rh,Y.intersection=du,Y.intersectionBy=f1,Y.intersectionWith=Ah,Y.invert=Rc,Y.invertBy=jd,Y.invokeMap=ym,Y.iteratee=Np,Y.keyBy=Vh,Y.keys=N0,Y.keysIn=dn,Y.map=g1,Y.mapKeys=zd,Y.mapValues=Hd,Y.matches=Xm,Y.matchesProperty=Qm,Y.memoize=Rd,Y.merge=Ac,Y.mergeWith=Oc,Y.method=Lp,Y.methodOf=tf,Y.mixin=Fp,Y.negate=Ad,Y.nthArg=Jm,Y.omit=Mc,Y.omitBy=R1,Y.once Line truncated
`;L!==p&&(p=L,i.write(fS.default.eraseLines(a)+L),a=L.split(`
`).length)};return t.clear=()=>{i.write(fS.default.eraseLines(a)),p="",a=0},t.done=()=>{p="",a=0,o||(cS.default.show(),_=!1)},t};by.default={create:SP}});var hS=tt((vH,pS)=>{pS.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:"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:"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:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{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_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{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"}}]});var yS=tt(Fa=>{"use strict";var vS=hS(),Uc=process.env;Object.defineProperty(Fa,"_vendors",{value:vS.map(function(i){return i.constant})});Fa.name=null;Fa.isPR=null;vS.forEach(function(i){var o=Array.isArray(i.env)?i.env:[i.env],a=o.every(function(p){return mS(p)});if(Fa[i.constant]=a,a)switch(Fa.name=i.name,typeof i.pr){case"string":Fa.isPR=!!Uc[i.pr];break;case"object":"env"in i.pr?Fa.isPR=i.pr.env in Uc&&Uc[i.pr.env]!==i.pr.ne:"any"in i.pr?Fa.isPR=i.pr.any.some(function(p){return!!Uc[p]}):Fa.isPR=mS(i.pr);break;default:Fa.isPR=null}});Fa.isCI=!!(Uc.CI||Uc.CONTINUOUS_INTEGRATION||Uc.BUILD_NUMBER||Uc.RUN_ID||Fa.name);function mS(i){return typeof i=="string"?!!Uc[i]:Object.keys(i).every(function(o){return Uc[o]===i[o]})}});var _S=tt((yH,gS)=>{"use strict";gS.exports=yS().isCI});var DS=tt((gH,ES)=>{"use strict";var TP=i=>{let o=new Set;do for(let a of Reflect.ownKeys(i))o.add([i,a]);while((i=Reflect.getPrototypeOf(i))&&i!==Object.prototype);return o};ES.exports=(i,{include:o,exclude:a}={})=>{let p=_=>{let t=k=>typeof k=="string"?_===k:k.test(_);return o?o.some(t):a?!a.some(t):!0};for(let[_,t]of TP(i.constructor.prototype)){if(t==="constructor"||!p(t))continue;let k=Reflect.getOwnPropertyDescriptor(_,t);k&&typeof k.value=="function"&&(i[t]=i[t].bind(i))}return i}});var AS=tt(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});var Vv,By,A_,O_,rD;typeof window=="undefined"||typeof MessageChannel!="function"?(Gv=null,iD=null,uD=function(){if(Gv!==null)try{var i=ou.unstable_now();Gv(!0,i),Gv=null}catch(o){throw setTimeout(uD,0),o}},wS=Date.now(),ou.unstable_now=function(){return Date.now()-wS},Vv=function(i){Gv!==null?setTimeout(Vv,0,i):(Gv=i,setTimeout(uD,0))},By=function(i,o){iD=setTimeout(i,o)},A_=function(){clearTimeout(iD)},O_=function(){return!1},rD=ou.unstable_forceFrameRate=function(){}):(M_=window.performance,oD=window.Date,SS=window.setTimeout,TS=window.clearTimeout,typeof console!="undefined"&&(CS=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof CS!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof M_=="object"&&typeof M_.now=="function"?ou.unstable_now=function(){return M_.now()}:(xS=oD.now(),ou.unstable_now=function(){return oD.now()-xS}),Uy=!1,jy=null,k_=-1,lD=5,sD=0,O_=function(){return ou.unstable_now()>=sD},rD=function(){},ou.unstable_forceFrameRate=function(i){0>i||125<i?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsup Line truncated
in `+(F||"Unknown")+J}y+=R,g=g.return}while(g);return y}new Set;var Ri=[],K0=-1;function yi(g){0>K0||(g.current=Ri[K0],Ri[K0]=null,K0--)}function en(g,y){K0++,Ri[K0]=g.current,g.current=y}var bn={},Ai={current:bn},gi={current:!1},Wt=bn;function Au(g,y){var R=g.type.contextTypes;if(!R)return bn;var F=g.stateNode;if(F&&F.__reactInternalMemoizedUnmaskedChildContext===y)return F.__reactInternalMemoizedMaskedChildContext;var b={},J;for(J in R)b[J]=y[J];return F&&(g=g.stateNode,g.__reactInternalMemoizedUnmaskedChildContext=y,g.__reactInternalMemoizedMaskedChildContext=b),b}function eu(g){return g=g.childContextTypes,g!=null}function X0(g){yi(gi,g),yi(Ai,g)}function Yi(g){yi(gi,g),yi(Ai,g)}function Xl(g,y,R){if(Ai.current!==bn)throw Error(t(168));en(Ai,y,g),en(gi,R,g)}function Mo(g,y,R){var F=g.stateNode;if(g=y.childContextTypes,typeof F.getChildContext!="function")return R;F=F.getChildContext();for(var b in F)if(!(b in g))throw Error(t(108,je(y)||"Unknown",b));return a({},R,{},F)}function ai(g){var y=g.stateNode;return y=y&&y.__reactInternalMemoizedMergedChildContext||bn,Wt=Ai.current,en(Ai,y,g),en(gi,gi.current,g),!0}function so(g,y,R){var F=g.stateNode;if(!F)throw Error(t(169));R?(y=Mo(g,y,Wt),F.__reactInternalMemoizedMergedChildContext=y,yi(gi,g),yi(Ai,g),en(Ai,y,g)):yi(gi,g),en(gi,R,g)}var Ql=_.unstable_runWithPriority,ko=_.unstable_scheduleCallback,Is=_.unstable_cancelCallback,$n=_.unstable_shouldYield,el=_.unstable_requestPaint,ao=_.unstable_now,I0=_.unstable_getCurrentPriorityLevel,wl=_.unstable_ImmediatePriority,No=_.unstable_UserBlockingPriority,wt=_.unstable_NormalPriority,bt=_.unstable_LowPriority,Hn=_.unstable_IdlePriority,qr={},Ki=el!==void 0?el:function(){},Qr=null,Ou=null,h0=!1,Ni=ao(),v0=1e4>Ni?ao:function(){return ao()-Ni};function hs(){switch(I0()){case wl:return 99;case No:return 98;case wt:return 97;case bt:return 96;case Hn:return 95;default:throw Error(t(332))}}function Tt(g){switch(g){case 99:return wl;case 98:return No;case 97:return wt;case 96:return bt;case 95:return Hn;default:throw Error(t(332))}}function fo(g,y){return g=Tt(g),Ql(g,y)}function tl(g,y,R){return g=Tt(g),ko(g,y,R)}function Jl(g){return Qr===null?(Qr=[g],Ou=ko(wl,vs)):Qr.push(g),qr}function ju(){if(Ou!==null){var g=Ou;Ou=null,Is(g)}vs()}function vs(){if(!h0&&Qr!==null){h0=!0;var g=0;try{var y=Qr;fo(99,function(){for(;g<y.length;g++){var R=y[g];do R=R(!0);while(R!==null)}}),Qr=null}catch(R){throw Qr!==null&&(Qr=Qr.slice(g+1)),ko(wl,ju),R}finally{h0=!1}}}var b0=3;function X(g,y,R){return R/=10,1073741821-(((1073741821-g+y/10)/R|0)+1)*R}function we(g,y){return g===y&&(g!==0||1/g==1/y)||g!==g&&y!==y}var Le=typeof Object.is=="function"?Object.is:we,Ne=Object.prototype.hasOwnProperty;function dt(g,y){if(Le(g,y))return!0;if(typeof g!="object"||g===null||typeof y!="object"||y===null)return!1;var R=Object.keys(g),F=Object.keys(y);if(R.length!==F.length)return!1;for(F=0;F<R.length;F++)if(!Ne.call(y,R[F])||!Le(g[R[F]],y[R[F]]))return!1;return!0}function Yn(g,y){if(g&&g.defaultProps){y=a({},y),g=g.defaultProps;for(var R in g)y[R]===void 0&&(y[R]=g[R])}return y}var Cn={current:null},cr=null,Si=null,Mu=null;function zu(){Mu=Si=cr=null}function Hu(g,y){var R=g.type._context;ln?(en(Cn,R._currentValue,g),R._currentValue=y):(en(Cn,R._currentValue2,g),R._currentValue2=y)}function Su(g){var y=Cn.current;yi(Cn,g),g=g.type._context,ln?g._currentValue=y:g._currentValue2=y}function Ti(g,y){for(;g!==null;){var R=g.alternate;if(g.childExpirationTime<y)g.childExpirationTime=y,R!==null&&R.childExpirationTime<y&&(R.childExpirationTime=y);else if(R!==null&&R.childExpirationTime<y)R.childExpirationTime=y;else break;g=g.return}}function Lo(g,y){cr=g,Mu=Si=null,g=g.dependencies,g!==null&&g.firstContext!==null&&(g.expirationTime>=y&&(po=!0),g.firstContext=null)}function ku(g,y){if(Mu!==g&&y!==!1&&y!==0)if((typeof y!="number"||y===1073741823)&&(Mu=g,y=1073741823),y={context:g,observedBits:y,next:null},Si===null){if(cr===null)throw Error(t(308));Si=y,cr.dependencies={expirationTime:0,firstContext:y,responders:null}}else Si=Si.next=y;return ln?g._currentValue:g._currentValue2}var co=!1;function qu(g){return{baseState:g,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Pa(g){return{baseState:g.baseState,firstUpdate:g.firstUpdate,lastUpdate:g.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function m0(g,y){return{expirationTime:g,suspenseConfig:y,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function ia(g,y){g.lastUpdate===null?g.firstUpdate=g.lastUpdate=y:(g.lastUpdate.next=y,g.lastUpdate=y)}function Q0(g,y){var R=g.alternate;if(R===null){var F=g.updateQueue,b=null;F===null&&(F=g.updateQueue=qu(g.memoizedState))}else F=g.updateQueue,b=R.updateQueue,F===null?b===null?(F=g.updateQueue=qu(g.memoizedState),b=R.updateQueue=qu(R.me Line truncated
Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.`+Hr(b))}Ae!==E0&&(Ae=Kn),J=Tl(J,b),xt=F;do{switch(xt.tag){case 3:ce=J,xt.effectTag|=4096,xt.expirationTime=y;var Ue=_s(xt,ce,y);ua(xt,Ue);break e;case 1:ce=J;var lt=xt.type,$t=xt.stateNode;if((xt.effectTag&64)==0&&(typeof lt.getDerivedStateFromError=="function"||$t!==null&&typeof $t.componentDidCatch=="function"&&(mr===null||!mr.has($t)))){xt.effectTag|=4096,xt.expirationTime=y;var Wn=aa(xt,ce,y);ua(xt,Wn);break e}}xt=xt.return}while(xt!==null)}re=mo(re)}catch(si){y=si;continue}break}while(1)}function U0(){var g=$u.current;return $u.current=Io,g===null?Io:g}function cc(g,y){g<vt&&2<g&&(vt=g),y!==null&&g<Qt&&2<g&&(Qt=g,On=y)}function Ua(g){g>Sn&&(Sn=g)}function E2(){for(;re!==null;)re=rd(re)}function nd(){for(;re!==null&&!$n();)re=rd(re)}function rd(g){var y=Ha(g.alternate,g,Fe);return g.memoizedProps=g.pendingProps,y===null&&(y=mo(g)),Es.current=null,y}function mo(g){re=g;do{var y=re.alternate;if(g=re.return,(re.effectTag&2048)==0){e:{var R=y;y=re;var F=Fe,b=y.pendingProps;switch(y.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:eu(y.type)&&X0(y);break;case 3:Qe(y),Yi(y),b=y.stateNode,b.pendingContext&&(b.context=b.pendingContext,b.pendingContext=null),(R===null||R.child===null)&&$l(y)&&Ju(y),Jr(y);break;case 5:ue(y);var J=Z(Re.current);if(F=y.type,R!==null&&y.stateNode!=null)Wu(R,y,F,b,J),R.ref!==y.ref&&(y.effectTag|=128);else if(b){if(R=Z(Te.current),$l(y)){if(b=y,!w)throw Error(t(175));R=su(b.stateNode,b.type,b.memoizedProps,J,R,b),b.updateQueue=R,R=R!==null,R&&Ju(y)}else{var ce=fe(F,b,J,R,y);ti(ce,y,!1,!1),y.stateNode=ce,oe(ce,F,b,J,R)&&Ju(y)}y.ref!==null&&(y.effectTag|=128)}else if(y.stateNode===null)throw Error(t(166));break;case 6:if(R&&y.stateNode!=null)Rn(R,y,R.memoizedProps,b);else{if(typeof b!="string"&&y.stateNode===null)throw Error(t(166));if(R=Z(Re.current),J=Z(Te.current),$l(y)){if(R=y,!w)throw Error(t(176));(R=ki(R.stateNode,R.memoizedProps,R))&&Ju(y)}else y.stateNode=nn(b,R,J,y)}break;case 11:break;case 13:if(yi(He,y),b=y.memoizedState,(y.effectTag&64)!=0){y.expirationTime=F;break e}b=b!==null,J=!1,R===null?y.memoizedProps.fallback!==void 0&&$l(y):(F=R.memoizedState,J=F!==null,b||F===null||(F=R.child.sibling,F!==null&&(ce=y.firstEffect,ce!==null?(y.firstEffect=F,F.nextEffect=ce):(y.firstEffect=y.lastEffect=F,F.nextEffect=null),F.effectTag=8))),b&&!J&&(y.mode&2)!=0&&(R===null&&y.memoizedProps.unstable_avoidThisFallback!==!0||(He.current&1)!=0?Ae===Li&&(Ae=e0):((Ae===Li||Ae===e0)&&(Ae=_0),Sn!==0&&ae!==null&&(Al(ae,Fe),Ts(ae,Sn)))),Er&&b&&(y.effectTag|=4),Vt&&(b||J)&&(y.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:Qe(y),Jr(y);break;case 10:Su(y);break;case 9:break;case 14:break;case 17:eu(y.type)&&X0(y);break;case 19:if(yi(He,y),b=y.memoizedState,b===null)break;if(J=(y.effectTag&64)!=0,ce=b.rendering,ce===null){if(J)Fu(b,!1);else if(Ae!==Li||R!==null&&(R.effectTag&64)!=0)for(R=y.child;R!==null;){if(ce=nt(R),ce!==null){for(y.effectTag|=64,Fu(b,!1),R=ce.updateQueue,R!==null&&(y.updateQueue=R,y.effectTag|=4),b.lastEffect===null&&(y.firstEffect=null),y.lastEffect=b.lastEffect,R=F,b=y.child;b!==null;)J=b,F=R,J.effectTag&=2,J.nextEffect=null,J.firstEffect=null,J.lastEffect=null,ce=J.alternate,ce===null?(J.childExpirationTime=0,J.expirationTime=F,J.child=null,J.memoizedProps=null,J.memoizedState=null,J.updateQueue=null,J.dependencies=null):(J.childExpirationTime=ce.childExpirationTime,J.expirationTime=ce.expirationTime,J.child=ce.child,J.memoizedProps=ce.memoizedProps,J.memoizedState=ce.memoizedState,J.updateQueue=ce.updateQueue,F=ce.dependencies,J.dependencies=F===null?null:{expirationTime:F.expirationTime,firstContext:F.firstContext,responders:F.responders}),b=b.sibling;en(He,He.current&1|2,y),y=y.child;break e}R=R.sibling}}else{if(!J)if(R=nt(ce),R!==null){if(y.effectTag|=64,J=!0,R=R.updateQueue,R!==null&&(y.updateQueue=R,y.effectTag|=4),Fu(b,!0),b.tail===null&&b.tailMode==="hidden"&&!ce.alternate){y=y.lastEffect=b.lastEffect,y!==null&&(y.nextEffect=null);break}}else v0()>b.tailExpiration&&1<F&&(y.effectTag|=64,J=!0,Fu(b,!1),y.expirationTime=y.childExpirationTime=F-1);b.isBackwards?(ce.sibling=y.child,y.child=ce):(R=b.last,R!==null?R.sibling=ce:y.child=ce,b.last=ce)}if(b.tail!==null){b.tailExpiration===0&&(b.tailExpiration=v0()+500),R=b.tail,b.rendering=R,b.tail=R.sibling,b.lastEffect=y.lastEffect,R.sibling=null,b=He.current,b=J?b&1|2:b&1,en(He,b,y),y=R;break e}break;case 20:break;case 21:break;default:throw Error(t(156,y.tag))}y=null}if(R=re,Fe===1||R.childExpirationTime!==1){for(b=0,J=R.child;J!==null;)F=J.expirationTime,ce=J.childExpirationTime,F>b&&(b=F),ce>b&&(b=ce),J=J.sibling;R.childExpirationTime=b}if(y!==null)return y;g!==null&&(g.effectTag&2048)==0&&(g.firstEffect===null&&(g.firstEffect=re.firstEffect),re.lastEffect!==null&&(g.lastEffect!==null&&(g.lastEffect.nextEffect=re.firstEffect),g.lastEffect=re.lastEffect),1<re.effectTag&&(g.lastEff Line truncated
Your code should look like:
const MyComponent = lazy(() => import('./MyComponent'))`,T),f._status=Ro,f._result=A}},function(T){f._status===d0&&(f._status=Qo,f._result=T)})}}function Zo(f,c,E){var T=c.displayName||c.name||"";return f.displayName||(T!==""?E+"("+T+")":E)}function qt(f){if(f==null)return null;if(typeof f.tag=="number"&&We(!1,"Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof f=="function")return f.displayName||f.name||null;if(typeof f=="string")return f;switch(f){case oe:return"Fragment";case xe:return"Portal";case ct:return"Profiler";case ze:return"StrictMode";case lr:return"Suspense";case ln:return"SuspenseList"}if(typeof f=="object")switch(f.$$typeof){case nn:return"Context.Consumer";case Rt:return"Context.Provider";case Mn:return Zo(f,f.render,"ForwardRef");case Vt:return qt(f.type);case Er:{var c=f,E=Fs(c);if(E)return qt(E);break}}return null}var xi=0,lu=1,mi=2,Dr=4,$o=6,G0=8,Uu=16,Y0=32,Xr=64,Ao=128,Oo=256,F0=512,su=1024,ki=1028,Ps=932,Kl=2047,P0=2048,p0=4096,Hr=!0,Ri=!0,K0=!0,yi=!0,en=!0,bn=!0,Ai=!1,gi=!1,Wt=!1,Au=!1,eu=!1,X0=!0,Yi=!1,Xl=!1,Mo=!1,ai=!1,so=!1,Ql=rt.ReactCurrentOwner;function ko(f){var c=f,E=f;if(f.alternate)for(;c.return;)c=c.return;else{var T=c;do c=T,(c.effectTag&(mi|su))!==xi&&(E=c.return),T=c.return;while(T)}return c.tag===U?E:null}function Is(f){return ko(f)===f}function $n(f){{var c=Ql.current;if(c!==null&&c.tag===O){var E=c,T=E.stateNode;T._warnedAboutRefsInRender||We(!1,"%s is accessing isMounted inside its render() function. render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.",qt(E.type)||"A component"),T._warnedAboutRefsInRender=!0}}var A=Ft(f);return A?ko(A)===A:!1}function el(f){if(ko(f)!==f)throw Error("Unable to find node on an unmounted component.")}function ao(f){var c=f.alternate;if(!c){var E=ko(f);if(E===null)throw Error("Unable to find node on an unmounted component.");return E!==f?null:f}for(var T=f,A=c;;){var j=T.return;if(j===null)break;var V=j.alternate;if(V===null){var te=j.return;if(te!==null){T=A=te;continue}break}if(j.child===V.child){for(var le=j.child;le;){if(le===T)return el(j),f;if(le===A)return el(j),c;le=le.sibling}throw Error("Unable to find node on an unmounted component.")}if(T.return!==A.return)T=j,A=V;else{for(var Be=!1,Ke=j.child;Ke;){if(Ke===T){Be=!0,T=j,A=V;break}if(Ke===A){Be=!0,A=j,T=V;break}Ke=Ke.sibling}if(!Be){for(Ke=V.child;Ke;){if(Ke===T){Be=!0,T=V,A=j;break}if(Ke===A){Be=!0,A=V,T=j;break}Ke=Ke.sibling}if(!Be)throw Error("Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.")}}if(T.alternate!==A)throw Error("Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.")}if(T.tag!==U)throw Error("Unable to find node on an unmounted component.");return T.stateNode.current===T?f:c}function I0(f){var c=ao(f);if(!c)return null;for(var E=c;;){if(E.tag===W||E.tag===ne)return E;if(E.child){E.child.return=E,E=E.child;continue}if(E===c)return null;for(;!E.sibling;){if(!E.return||E.return===c)return null;E=E.return}E.sibling.return=E.return,E=E.sibling}return null}function wl(f){var c=ao(f);if(!c)return null;for(var E=c;;){if(E.tag===W||E.tag===ne||Wt&&E.tag===gt)return E;if(E.child&&E.tag!==H){E.child.return=E,E=E.child;continue}if(E===c)return null;for(;!E.sibling;){if(!E.return||E.return===c)return null;E=E.return}E.sibling.return=E.return,E=E.sibling}return null}var No=o.getPublicInstance,wt=o.getRootHostContext,bt=o.getChildHostContext,Hn=o.prepareForCommit,qr=o.resetAfterCommit,Ki=o.createInstance,Qr=o.appendInitialChild,Ou=o.finalizeInitialChildren,h0=o.prepareUpdate,Ni=o.shouldSetTextContent,v0=o.shouldDeprioritizeSubtree,hs=o.createTextInstance,Tt=o.setTimeout,fo=o.clearTimeout,tl=o.noTimeout,Jl=o.now,ju=o.isPrimaryRenderer,vs=o.warnsIfNotActing,b0=o.supportsMutation,X=o.supportsPersistence,we=o.supportsHydration,Le=o.mountResponderInstance,Ne=o.unmountResponderInstance,dt=o.getFundamentalComponentInstance,Yn=o.mountFundamentalComponent,Cn=o.shouldUpdateFundamentalComponent,cr=o.getInstanceFromNode,Si=o.appendChild,Mu=o.appendChildToContainer,zu=o.commitTextUpdate,Hu=o.commitMount,Su=o.commitUpdate,Ti=o.insertBefore,Lo=o.insertInContainerBefore,ku=o.removeChild,co=o.removeChildFromContainer,qu=o.resetTextContent,Pa=o.hideInstance,m0=o.hideTextInstance,ia=o.unhideInstance,Q0=o.unhideTextInstance,ua=o.updateFundamentalComponent,Ia=o.unmountFundamentalComponent,ms=o.cloneInstance,S0=o.createContainerChildSet,Qn=o.appendChildToContainerChildSet,ac=o.finalizeContainerChildren,fi=o.replaceContainerChildren,$r=o.cloneHiddenInstance,Zl=o.cloneHiddenTextInstance,oa=o.cloneInstance,pf=o.canHydrateInstance,bs=o.canHydrateTextInstance,ba=o.canHydrateSuspenseInstance,Bs=o.isSuspenseInstancePending,y0 Line truncated
in `+(f||"Unknown")+T},dr=rt.ReactDebugCurrentFrame;function er(f){switch(f.tag){case U:case H:case ne:case m:case ve:case Ee:return"";default:var c=f._debugOwner,E=f._debugSource,T=qt(f.type),A=null;return c&&(A=qt(c.type)),Dn(T,E,A)}}function Cr(f){var c="",E=f;do c+=er(E),E=E.return;while(E);return c}var An=null,Nr=null;function g0(){{if(An===null)return null;var f=An._debugOwner;if(f!==null&&typeof f!="undefined")return qt(f.type)}return null}function Lr(){return An===null?"":Cr(An)}function it(){dr.getCurrentStack=null,An=null,Nr=null}function Dt(f){dr.getCurrentStack=Lr,An=f,Nr=null}function $e(f){Nr=f}var Pt="\u269B",un="\u26D4",fn=typeof performance!="undefined"&&typeof performance.mark=="function"&&typeof performance.clearMarks=="function"&&typeof performance.measure=="function"&&typeof performance.clearMeasures=="function",Jn=null,wr=null,au=null,Nu=!1,T0=!1,J0=!1,Lu=0,_i=0,Fo=new Set,nl=function(f){return Pt+" "+f},hf=function(f,c){var E=c?un+" ":Pt+" ",T=c?" Warning: "+c:"";return""+E+f+T},Sl=function(f){performance.mark(nl(f))},vf=function(f){performance.clearMarks(nl(f))},Po=function(f,c,E){var T=nl(c),A=hf(f,E);try{performance.measure(A,T)}catch(j){}performance.clearMarks(T),performance.clearMeasures(A)},ys=function(f,c){return f+" (#"+c+")"},js=function(f,c,E){return E===null?f+" ["+(c?"update":"mount")+"]":f+"."+E},Io=function(f,c){var E=qt(f.type)||"Unknown",T=f._debugID,A=f.alternate!==null,j=js(E,A,c);if(Nu&&Fo.has(j))return!1;Fo.add(j);var V=ys(j,T);return Sl(V),!0},bo=function(f,c){var E=qt(f.type)||"Unknown",T=f._debugID,A=f.alternate!==null,j=js(E,A,c),V=ys(j,T);vf(V)},gs=function(f,c,E){var T=qt(f.type)||"Unknown",A=f._debugID,j=f.alternate!==null,V=js(T,j,c),te=ys(V,A);Po(V,te,E)},Qu=function(f){switch(f.tag){case U:case W:case ne:case H:case m:case ve:case Ee:case he:return!0;default:return!1}},Tu=function(){wr!==null&&au!==null&&bo(au,wr),au=null,wr=null,J0=!1},Ei=function(){for(var f=Jn;f;)f._debugIsCurrentlyTiming&&gs(f,null,null),f=f.return},C0=function(f){f.return!==null&&C0(f.return),f._debugIsCurrentlyTiming&&Io(f,null)},Z0=function(){Jn!==null&&C0(Jn)};function Bo(){Hr&&_i++}function la(){Hr&&(Nu&&(T0=!0),wr!==null&&wr!=="componentWillMount"&&wr!=="componentWillReceiveProps"&&(J0=!0))}function $l(f){if(Hr){if(!fn||Qu(f)||(Jn=f,!Io(f,null)))return;f._debugIsCurrentlyTiming=!0}}function tu(f){if(Hr){if(!fn||Qu(f))return;f._debugIsCurrentlyTiming=!1,bo(f,null)}}function ei(f){if(Hr){if(!fn||Qu(f)||(Jn=f.return,!f._debugIsCurrentlyTiming))return;f._debugIsCurrentlyTiming=!1,gs(f,null,null)}}function po(f){if(Hr){if(!fn||Qu(f)||(Jn=f.return,!f._debugIsCurrentlyTiming))return;f._debugIsCurrentlyTiming=!1;var c=f.tag===pe?"Rendering was suspended":"An error was thrown inside this error boundary";gs(f,null,c)}}function Bi(f,c){if(Hr){if(!fn||(Tu(),!Io(f,c)))return;au=f,wr=c}}function Ci(){if(Hr){if(!fn)return;if(wr!==null&&au!==null){var f=J0?"Scheduled a cascading update":null;gs(au,wr,f)}wr=null,au=null}}function mf(f){if(Hr){if(Jn=f,!fn)return;Lu=0,Sl("(React Tree Reconciliation)"),Z0()}}function yf(f,c){if(Hr){if(!fn)return;var E=null;if(f!==null)if(f.tag===U)E="A top-level update interrupted the previous render";else{var T=qt(f.type)||"Unknown";E="An update to "+T+" interrupted the previous render"}else Lu>1&&(E="There were cascading updates");Lu=0;var A=c?"(React Tree Reconciliation: Completed Root)":"(React Tree Reconciliation: Yielded)";Ei(),Po(A,"(React Tree Reconciliation)",E)}}function $0(){if(Hr){if(!fn)return;Nu=!0,T0=!1,Fo.clear(),Sl("(Committing Changes)")}}function eo(){if(Hr){if(!fn)return;var f=null;T0?f="Lifecycle hook scheduled a cascading update":Lu>0&&(f="Caused by a cascading update in earlier commit"),T0=!1,Lu++,Nu=!1,Fo.clear(),Po("(Committing Changes)","(Committing Changes)",f)}}function Ce(){if(Hr){if(!fn)return;_i=0,Sl("(Committing Snapshot Effects)")}}function et(){if(Hr){if(!fn)return;var f=_i;_i=0,Po("(Committing Snapshot Effects: "+f+" Total)","(Committing Snapshot Effects)",null)}}function Ye(){if(Hr){if(!fn)return;_i=0,Sl("(Committing Host Effects)")}}function Yt(){if(Hr){if(!fn)return;var f=_i;_i=0,Po("(Committing Host Effects: "+f+" Total)","(Committing Host Effects)",null)}}function Kt(){if(Hr){if(!fn)return;_i=0,Sl("(Calling Lifecycle Methods)")}}function pr(){if(Hr){if(!fn)return;var f=_i;_i=0,Po("(Calling Lifecycle Methods: "+f+" Total)","(Calling Lifecycle Methods)",null)}}var Wr=[],xn;xn=[];var yu=-1;function Ju(f){return{current:f}}function ti(f,c){if(yu<0){We(!1,"Unexpected pop.");return}c!==xn[yu]&&We(!1,"Unexpected Fiber popped."),f.current=Wr[yu],Wr[yu]=null,xn[yu]=null,yu--}function Jr(f,c,E){yu++,Wr[yu]=f.current,xn[yu]=E,f.current=c}var Wu;Wu={};var Rn={};Object.freeze(Rn);var x0=Ju(Rn),Fu=Ju(!1),li=Rn;function Tl(f,c,E){return ai?Rn:E&&Xi(c)?li:x0.current}function zs(f,c,E){if(!ai){var T=f.stateNode;T.__reactInternalMemoizedUnmaskedChildContext=c,T.__reactInternalMemoizedMaskedChildContext=E}}function Vu(f,c){if(ai)return Rn; Line truncated
* Move code with side effects to componentDidMount, and set initial state in the constructor.
Please update the following components: %s`,V)}if(T.size>0){var te=jo(T);We(!1,`Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://fb.me/react-unsafe-component-lifecycles for details.
* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state
Please update the following components: %s`,te)}if(j.size>0){var le=jo(j);We(!1,`Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://fb.me/react-unsafe-component-lifecycles for details.
* Move data fetching code or side effects to componentDidUpdate.
Please update the following components: %s`,le)}if(f.size>0){var Be=jo(f);qs(!1,`componentWillMount has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details.
* Move code with side effects to componentDidMount, and set initial state in the constructor.
* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder.
Please update the following components: %s`,Be)}if(E.size>0){var Ke=jo(E);qs(!1,`componentWillReceiveProps has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details.
* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state
* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder.
Please update the following components: %s`,Ke)}if(A.size>0){var pt=jo(A);qs(!1,`componentWillUpdate has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details.
* Move data fetching code or side effects to componentDidUpdate.
* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder.
Please update the following components: %s`,pt)}};var zo=new Map,Ef=new Set;Rl.recordLegacyContextWarning=function(f,c){var E=id(f);if(E===null){We(!1,"Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.");return}if(!Ef.has(f.type)){var T=zo.get(E);(f.type.contextTypes!=null||f.type.childContextTypes!=null||c!==null&&typeof c.getChildContext=="function")&&(T===void 0&&(T=[],zo.set(E,T)),T.push(f))}},Rl.flushLegacyContextWarning=function(){zo.forEach(function(f,c){var E=new Set;f.forEach(function(j){E.add(qt(j.type)||"Component"),Ef.add(j.type)});var T=jo(E),A=Cr(c);We(!1,`Legacy context API has been detected within a strict-mode tree.
The old API will be supported in all 16.x releases, but applications using it should migrate to the new version.
Please update the following components: %s
Learn more about this warning here: https://fb.me/react-legacy-context%s`,T,A)})},Rl.discardPendingWarnings=function(){ja=[],za=[],Ha=[],ca=[],ws=[],Ss=[],zo=new Map}}var ul=null,Gu=null,qa=function(f){ul=f};function r0(f){{if(ul===null)return f;var c=ul(f);return c===void 0?f:c.current}}function j0(f){return r0(f)}function Df(f){{if(ul===null)return f;var c=ul(f);if(c===void 0){if(f!=null&&typeof f.render=="function"){var E=r0(f.render);if(f.render!==E){var T={$$typeof:Mn,render:E};return f.displayName!==void 0&&(T.displayName=f.displayName),T}}return f}return c.current}}function qc(f,c){{if(ul===null)return!1;var E=f.elementType,T=c.type,A=!1,j=typeof T=="object"&&T!==null?T.$$typeof:null;switch(f.tag){case O:{typeof T=="function"&&(A=!0);break}case L:{(typeof T=="function"||j===Er)&&(A=!0);break}case se:{(j===Mn||j===Er)&&(A=!0);break}case me:case ie:{(j===Vt||j===Er)&&(A=!0);break}default:return!1}if(A){var V=ul(E);if(V!==void 0&&V===ul(T))return!0}return!1}}function dc(f){{if(ul===null||typeof WeakSet!="function")return;Gu===null&&(Gu=new WeakSet),Gu.add(f)}}var Al=function(f,c){{if(ul===null)return;var E=c.staleFamilies,T=c.updatedFamilies;tf(),Ap(function(){da(f.current,T,E)})}},Ts=function(f,c){{if(f.context!==Rn)return;tf(),fv(function(){Yg(c,f,null,null)})}};function da(f,c,E){{var T=f.alternate,A=f.child,j=f.sibling,V=f.tag,te=f.type,le=null;switch(V){case L:case ie:case O:le=te;break;case se:le=te.render;break;default:break}if(ul===null)throw new Error("Expected resolveFamily to be set during hot reload.");var Be=!1,Ke=!1;if(le!==null){var pt=ul(le);pt!==void 0&&(E.has(pt)?Ke=!0:c.has(pt)&&(V===O?Ke=!0:Be=!0))}Gu!==null&&(Gu.has(f)||T!==null&&Gu.has(T))&&(Ke=!0),Ke&&(f._debugNeedsRemount=!0),(Ke||Be)&&ml(f,Un),A!==null&&!Ke&&da(A,c,E),j!==null&&da(j,c,E)}}var ud=function(f,c){{var E=new Set,T=new Set(c.map(function(A){return A.current}));return pa(f.current,T,E),E}};function pa(f,c,E){{var T=f.child,A=f.sibling,j=f.tag,V=f.type,te=null;switch(j){case L:case ie:case O:te=V;break;case se:te=V.render;break;default:break}var le=!1;te!==null&&c.has(te)&&(le=!0),le?pc(f,E):T!==null&&pa(T,c,E),A!==null&&pa(A,c,E)}}function pc(f,c){{var E=Wc(f,c);if(E)return;for(var T=f;;){switch(T.tag){case W:c.add(T.stateNode);return;case H:c.add(T.stateNode.containerInfo);return;case U:c.add(T.stateNode.containerInfo);return}if(T.return===null)throw new Error("Expected to reach root first.");T=T.return}}}function Wc(f,c){for(var E=f,T=!1;;){if(E.tag===W)T=!0,c.add(E.stateNode);else if(E.child!==null){E.child.return=E,E=E.child;continue}if(E===f)return T;for(;E.sibling===null;){if(E.return===null||E.return===f)return T;E=E.return}E.sibling.return=E.return,E=E.sibling}return!1}function qi(f,c){if(f&&f.defaultProps){var E=a({},c),T=f.defaultProps;for(var A in T)E[A]===void 0&&(E[A]=T[A]);return E}return c}function g(f){if(Jo(f),f._status!==Ro)throw f._result;return f._result}var y=Ju(null),R;R={};var F=null,b=null,J=null,ce=!1;function mt(){F=null,b=null,J=null,ce=!1}function xt(){ce=!0}function kt(){ce=!1}function xr(f,c){var E=f.type._context;ju?(Jr(y,E._currentValue,f),E._currentValue=c,E._currentRenderer===void 0||E._currentRenderer===null||E._currentRenderer===R||We(!1,"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."),E._currentRenderer=R):(Jr(y,E._currentValue2,f),E._currentValue2=c,E._currentRenderer2===void 0||E._currentRenderer2===null||E._currentRenderer2===R||We(!1,"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."),E._currentRenderer2=R)}function i0(f){var c=y.current;ti(y,f);var E=f.type._context;ju?E._currentValue=c:E._currentValue2=c}function cu(f,c,E){if(mo(E,c))return 0;var T=typeof f._calculateChangedBits=="function"?f._calculateChangedBits(E,c):Vr;return(T&Vr)!==T&&Xt(!1,"calculateChangedBits: Expected the return value to be a 31-bit integer. Instead received: %s",T),T|0}function z0(f,c){for(var E=f;E!==null;){var T=E.alternate;if(E.childExpirationTime<c)E.childExpirationTime=c,T!==null&&T.childExpirationTime<c&&(T.childExpirationTime=c);else if(T!==null&&T.childExpirationTime<c)T.childExpirationTime=c;else break;E=E.return}}function Ol(f,c,E,T){var A=f.child;for(A!==null&&(A.return=f);A!==null;){var j=void 0,V=A.dependencies;if(V!==null){j=A.child;for(var te=V.firstContext;te!==null;){if(te.context===c&&(te.observedBits&E)!=0){if(A.tag===O){var le=Cu(T,null);le.tag=$t,Va(A,le)}A.expirationTime<T&&(A.expirationTime=T);var Be=A.alternate;Be!==null&&Be.expirationTime<T&&(Be.expirationTime=T),z0(A.return,T),V.expirationTime<T&&(V.expirationTime=T);break}te=te.next}}else if(A.tag===ve)j=A.type===f.type?null:A.child;else if(Ai&&A.tag===qe){var Ke=A.return;if(Ke===null)throw Error("We just came from a parent so we must have had a parent. This is a bug in React.");Ke.expirationTime<T&&(Ke.expirationTime=T);var pt=Ke.alternate;pt!==null&&pt.expirationTime<T&&(pt.expirationTime=T),z0(Ke,T) Line truncated
%s uses %s but also contains the following legacy lifecycles:%s%s%s
The above lifecycles should be removed. Learn more about this warning here:
https://fb.me/react-unsafe-component-lifecycles`,oi,Oi,zt!==null?`
`+zt:"",yn!==null?`
`+yn:"",kr!==null?`
`+kr:""))}}}return A&&zs(f,j,V),pt}function R2(f,c){Bi(f,"componentWillMount");var E=c.state;typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount(),Ci(),E!==c.state&&(We(!1,"%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",qt(f.type)||"Component"),Kc.enqueueReplaceState(c,c.state,null))}function A2(f,c,E,T){var A=c.state;if(Bi(f,"componentWillReceiveProps"),typeof c.componentWillReceiveProps=="function"&&c.componentWillReceiveProps(E,T),typeof c.UNSAFE_componentWillReceiveProps=="function"&&c.UNSAFE_componentWillReceiveProps(E,T),Ci(),c.state!==A){{var j=qt(f.type)||"Component";T2.has(j)||(T2.add(j),We(!1,"%s.componentWillReceiveProps(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",j))}Kc.enqueueReplaceState(c,c.state,null)}}function hc(f,c,E,T){vh(f,c,E);var A=f.stateNode;A.props=E,A.state=f.memoizedState,A.refs=ad;var j=c.contextType;if(typeof j=="object"&&j!==null)A.context=Ve(j);else if(ai)A.context=Rn;else{var V=Tl(f,c,!0);A.context=Vu(f,V)}{if(A.state===E){var te=qt(c)||"Component";C2.has(te)||(C2.add(te),We(!1,"%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.",te))}f.mode&mr&&Rl.recordLegacyContextWarning(f,A),yi&&Rl.recordUnsafeLifecycleWarnings(f,A)}var le=f.updateQueue;le!==null&&(wf(f,le,E,A,T),A.state=f.memoizedState);var Be=c.getDerivedStateFromProps;typeof Be=="function"&&(Sf(f,c,Be,E),A.state=f.memoizedState),typeof c.getDerivedStateFromProps!="function"&&typeof A.getSnapshotBeforeUpdate!="function"&&(typeof A.UNSAFE_componentWillMount=="function"||typeof A.componentWillMount=="function")&&(R2(f,A),le=f.updateQueue,le!==null&&(wf(f,le,E,A,T),A.state=f.memoizedState)),typeof A.componentDidMount=="function"&&(f.effectTag|=Dr)}function mh(f,c,E,T){var A=f.stateNode,j=f.memoizedProps;A.props=j;var V=A.context,te=c.contextType,le=Rn;if(typeof te=="object"&&te!==null)le=Ve(te);else if(!ai){var Be=Tl(f,c,!0);le=Vu(f,Be)}var Ke=c.getDerivedStateFromProps,pt=typeof Ke=="function"||typeof A.getSnapshotBeforeUpdate=="function";!pt&&(typeof A.UNSAFE_componentWillReceiveProps=="function"||typeof A.componentWillReceiveProps=="function")&&(j!==E||V!==le)&&A2(f,A,E,le),ch();var Nt=f.memoizedState,Gt=A.state=Nt,zt=f.updateQueue;if(zt!==null&&(wf(f,zt,E,A,T),Gt=f.memoizedState),j===E&&Nt===Gt&&!sa()&&!Vc())return typeof A.componentDidMount=="function"&&(f.effectTag|=Dr),!1;typeof Ke=="function"&&(Sf(f,c,Ke,E),Gt=f.memoizedState);var yn=Vc()||x2(f,c,j,E,Nt,Gt,le);return yn?(!pt&&(typeof A.UNSAFE_componentWillMount=="function"||typeof A.componentWillMount=="function")&&(Bi(f,"componentWillMount"),typeof A.componentWillMount=="function"&&A.componentWillMount(),typeof A.UNSAFE_componentWillMount=="function"&&A.UNSAFE_componentWillMount(),Ci()),typeof A.componentDidMount=="function"&&(f.effectTag|=Dr)):(typeof A.componentDidMount=="function"&&(f.effectTag|=Dr),f.memoizedProps=E,f.memoizedState=Gt),A.props=E,A.state=Gt,A.context=le,yn}function O2(f,c,E,T,A){var j=c.stateNode,V=c.memoizedProps;j.props=c.type===c.elementType?V:qi(c.type,V);var te=j.context,le=E.contextType,Be=Rn;if(typeof le=="object"&&le!==null)Be=Ve(le);else if(!ai){var Ke=Tl(c,E,!0);Be=Vu(c,Ke)}var pt=E.getDerivedStateFromProps,Nt=typeof pt=="function"||typeof j.getSnapshotBeforeUpdate=="function";!Nt&&(typeof j.UNSAFE_componentWillReceiveProps=="function"||typeof j.componentWillReceiveProps=="function")&&(V!==T||te!==Be)&&A2(c,j,T,Be),ch();var Gt=c.memoizedState,zt=j.state=Gt,yn=c.updateQueue;if(yn!==null&&(wf(c,yn,T,j,A),zt=c.memoizedState),V===T&&Gt===zt&&!sa()&&!Vc())return typeof j.componentDidUpdate=="function"&&(V!==f.memoizedProps||Gt!==f.memoizedState)&&(c.effectTag|=Dr),typeof j.getSnapshotBeforeUpdate=="function"&&(V!==f.memoizedProps||Gt!==f.memoizedState)&&(c.effectTag|=Oo),!1;typeof pt=="function"&&(Sf(c,E,pt,T),zt=c.memoizedState);var kr=Vc()||x2(c,E,V,T,Gt,zt,Be);return kr?(!Nt&&(typeof j.UNSAFE_componentWillUpdate=="function"||typeof j.componentWillUpdate=="function")&&(Bi(c,"componentWillUpdate"),typeof j.componentWillUpdate=="function"&&j.componentWillUpdate(T,zt,Be),typeof j.UNSAFE_componentWillUpdate=="function"&&j.UNSAFE_componentWillUpdate(T,zt,Be),Ci()),typeof j.componentDidUpdate=="function"&&(c.effectTag|=Dr),typeof j.getSnapshotBeforeUpdate=="function"&&(c.effectTag|=Oo)):(typeof j.componentDidUpdate=="function"&&(V!==f.memoizedProps||Gt!==f.memoizedState)&&(c.effectTag|=Dr),typeof j.getSnapshotBeforeUpdate=="function"&&(V!==f.memoizedProps||Gt!==f.memoizedState)&&(c.effectTag|=Oo),c.memoizedProps=T,c.memoizedState=zt),j.props=T,j.state=zt,j.context=Be,kr}var dd,Xc,Qc,Ws,M2,va=function(f){};dd=!1,Xc=!1,Qc={},Ws={},M2={},va=function(f){if(!(f===null||typeof f!="objec Line truncated
1. You may be adding a ref to a function component
2. You may be adding a ref to a component that was not created inside a component's render method
3. You have multiple copies of React loaded
See https://fb.me/react-refs-must-have-owner for more information.`)}}return T}function mc(f,c){if(f.type!=="textarea"){var E="";throw E=" If you meant to render a collection of children, use an array instead."+Lr(),Error("Objects are not valid as a React child (found: "+(Object.prototype.toString.call(c)==="[object Object]"?"object with keys {"+Object.keys(c).join(", ")+"}":c)+")."+E)}}function pd(){var f="Functions are not valid as a React child. This may happen if you return a Component instead of <Component /> from render. Or maybe you meant to call this function rather than return it."+Lr();M2[f]||(M2[f]=!0,Xt(!1,"Functions are not valid as a React child. This may happen if you return a Component instead of <Component /> from render. Or maybe you meant to call this function rather than return it."))}function yh(f){function c(ot,Ot){if(!!f){var Ze=ot.lastEffect;Ze!==null?(Ze.nextEffect=Ot,ot.lastEffect=Ot):ot.firstEffect=ot.lastEffect=Ot,Ot.nextEffect=null,Ot.effectTag=G0}}function E(ot,Ot){if(!f)return null;for(var Ze=Ot;Ze!==null;)c(ot,Ze),Ze=Ze.sibling;return null}function T(ot,Ot){for(var Ze=new Map,Ut=Ot;Ut!==null;)Ut.key!==null?Ze.set(Ut.key,Ut):Ze.set(Ut.index,Ut),Ut=Ut.sibling;return Ze}function A(ot,Ot,Ze){var Ut=To(ot,Ot,Ze);return Ut.index=0,Ut.sibling=null,Ut}function j(ot,Ot,Ze){if(ot.index=Ze,!f)return Ot;var Ut=ot.alternate;if(Ut!==null){var Pn=Ut.index;return Pn<Ot?(ot.effectTag=mi,Ot):Pn}else return ot.effectTag=mi,Ot}function V(ot){return f&&ot.alternate===null&&(ot.effectTag=mi),ot}function te(ot,Ot,Ze,Ut){if(Ot===null||Ot.tag!==ne){var Pn=dy(Ze,ot.mode,Ut);return Pn.return=ot,Pn}else{var vn=A(Ot,Ze,Ut);return vn.return=ot,vn}}function le(ot,Ot,Ze,Ut){if(Ot!==null&&(Ot.elementType===Ze.type||qc(Ot,Ze))){var Pn=A(Ot,Ze.props,Ut);return Pn.ref=vc(ot,Ot,Ze),Pn.return=ot,Pn._debugSource=Ze._source,Pn._debugOwner=Ze._owner,Pn}else{var vn=cy(Ze,ot.mode,Ut);return vn.ref=vc(ot,Ot,Ze),vn.return=ot,vn}}function Be(ot,Ot,Ze,Ut){if(Ot===null||Ot.tag!==H||Ot.stateNode.containerInfo!==Ze.containerInfo||Ot.stateNode.implementation!==Ze.implementation){var Pn=py(Ze,ot.mode,Ut);return Pn.return=ot,Pn}else{var vn=A(Ot,Ze.children||[],Ut);return vn.return=ot,vn}}function Ke(ot,Ot,Ze,Ut,Pn){if(Ot===null||Ot.tag!==m){var vn=nf(Ze,ot.mode,Ut,Pn);return vn.return=ot,vn}else{var Wi=A(Ot,Ze,Ut);return Wi.return=ot,Wi}}function pt(ot,Ot,Ze){if(typeof Ot=="string"||typeof Ot=="number"){var Ut=dy(""+Ot,ot.mode,Ze);return Ut.return=ot,Ut}if(typeof Ot=="object"&&Ot!==null){switch(Ot.$$typeof){case fe:{var Pn=cy(Ot,ot.mode,Ze);return Pn.ref=vc(ot,null,Ot),Pn.return=ot,Pn}case xe:{var vn=py(Ot,ot.mode,Ze);return vn.return=ot,vn}}if(Jc(Ot)||fr(Ot)){var Wi=nf(Ot,ot.mode,Ze,null);return Wi.return=ot,Wi}mc(ot,Ot)}return typeof Ot=="function"&&pd(),null}function Nt(ot,Ot,Ze,Ut){var Pn=Ot!==null?Ot.key:null;if(typeof Ze=="string"||typeof Ze=="number")return Pn!==null?null:te(ot,Ot,""+Ze,Ut);if(typeof Ze=="object"&&Ze!==null){switch(Ze.$$typeof){case fe:return Ze.key===Pn?Ze.type===oe?Ke(ot,Ot,Ze.props.children,Ut,Pn):le(ot,Ot,Ze,Ut):null;case xe:return Ze.key===Pn?Be(ot,Ot,Ze,Ut):null}if(Jc(Ze)||fr(Ze))return Pn!==null?null:Ke(ot,Ot,Ze,Ut,null);mc(ot,Ze)}return typeof Ze=="function"&&pd(),null}function Gt(ot,Ot,Ze,Ut,Pn){if(typeof Ut=="string"||typeof Ut=="number"){var vn=ot.get(Ze)||null;return te(Ot,vn,""+Ut,Pn)}if(typeof Ut=="object"&&Ut!==null){switch(Ut.$$typeof){case fe:{var Wi=ot.get(Ut.key===null?Ze:Ut.key)||null;return Ut.type===oe?Ke(Ot,Wi,Ut.props.children,Pn,Ut.key):le(Ot,Wi,Ut,Pn)}case xe:{var pi=ot.get(Ut.key===null?Ze:Ut.key)||null;return Be(Ot,pi,Ut,Pn)}}if(Jc(Ut)||fr(Ut)){var Ku=ot.get(Ze)||null;return Ke(Ot,Ku,Ut,Pn,null)}mc(Ot,Ut)}return typeof Ut=="function"&&pd(),null}function zt(ot,Ot){{if(typeof ot!="object"||ot===null)return Ot;switch(ot.$$typeof){case fe:case xe:va(ot);var Ze=ot.key;if(typeof Ze!="string")break;if(Ot===null){Ot=new Set,Ot.add(Ze);break}if(!Ot.has(Ze)){Ot.add(Ze);break}Xt(!1,"Encountered two children with the same key, `%s`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted \u2014 the behavior is unsupported and could change in a future version.",Ze);break;default:break}}return Ot}function yn(ot,Ot,Ze,Ut){for(var Pn=null,vn=0;vn<Ze.length;vn++){var Wi=Ze[vn];Pn=zt(Wi,Pn)}for(var pi=null,Ku=null,hr=Ot,pu=0,Kr=0,xu=null;hr!==null&&Kr<Ze.length;Kr++){hr.index>Kr?(xu=hr,hr=null):xu=hr.sibling;var w0=Nt(ot,hr,Ze[Kr],Ut);if(w0===null){hr===null&&(hr=xu);break}f&&hr&&w0.alternate===null&&c(ot,hr),pu=j(w0,pu,Kr),Ku===null?pi=w0:Ku.sibling=w0,Ku=w0,hr=xu}if(Kr===Ze.length)return E(ot,hr),pi;if(hr===null){for(;Kr<Ze.length;Kr++){var W0=pt(ot,Ze[Kr],Ut);W0!==null&&(pu=j(W0,pu,Kr),Ku===null?pi=W0:Ku.sibling=W0,Ku=W0)}return pi}for(var Ms=T(ot,hr);Kr<Ze.length;Kr++){var Xu=Gt(Ms,ot,Kr,Ze[Kr],Ut);Xu!==null&&(f&&Xu.alternate!==null&&Ms.delete(Xu.key===null?Kr:Xu.key),pu=j(Xu,pu,Kr),Ku===null?pi=Xu: Line truncated
`,E+=te}Xt(!1,`React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://fb.me/rules-of-hooks
Previous render Next render
------------------------------------------------------
%s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
`,c,E)}}}function Nl(){throw Error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.`)}function Nf(f,c){if(oo)return!1;if(c===null)return Xt(!1,"%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.",cn),!1;f.length!==c.length&&Xt(!1,`The final argument passed to %s changed size between renders. The order and size of this array must remain constant.
Previous: %s
Incoming: %s`,cn,"["+c.join(", ")+"]","["+f.join(", ")+"]");for(var E=0;E<c.length&&E<f.length;E++)if(!mo(f[E],c[E]))return!1;return!0}function Lf(f,c,E,T,A,j){Vn=j,cl=c,_o=f!==null?f.memoizedState:null,is=f!==null?f._debugHookTypes:null,Eo=-1,oo=f!==null&&f.type!==c.type,_o!==null?qn.current=H2:is!==null?qn.current=z2:qn.current=xh;var V=E(T,A);if(_c){do _c=!1,Ec+=1,oo=!1,_o=f!==null?f.memoizedState:null,Ka=gc,jn=null,uo=null,rs=null,Eo=-1,qn.current=H2,V=E(T,A);while(_c);Cs=null,Ec=0}qn.current=a1;var te=cl;te.memoizedState=gc,te.expirationTime=Iu,te.updateQueue=rs,te.effectTag|=Mf,te._debugHookTypes=is;var le=jn!==null&&jn.next!==null;if(Vn=at,cl=null,jn=null,_o=null,gc=null,uo=null,Ka=null,cn=null,is=null,Eo=-1,Iu=at,rs=null,Mf=0,le)throw Error("Rendered fewer hooks than expected. This may be caused by an accidental early return statement.");return V}function gd(f,c,E){c.updateQueue=f.updateQueue,c.effectTag&=~(F0|Dr),f.expirationTime<=E&&(f.expirationTime=at)}function _d(){qn.current=a1,Vn=at,cl=null,jn=null,_o=null,gc=null,uo=null,Ka=null,is=null,Eo=-1,cn=null,Iu=at,rs=null,Mf=0,_c=!1,Cs=null,Ec=0}function Dc(){var f={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return uo===null?gc=uo=f:uo=uo.next=f,uo}function r1(){if(Ka!==null)uo=Ka,Ka=uo.next,jn=_o,_o=jn!==null?jn.next:null;else{if(_o===null)throw Error("Rendered more hooks than during the previous render.");jn=_o;var f={memoizedState:jn.memoizedState,baseState:jn.baseState,queue:jn.queue,baseUpdate:jn.baseUpdate,next:null};uo===null?uo=gc=f:uo=uo.next=f,_o=jn.next}return uo}function Xa(){return{lastEffect:null}}function F2(f,c){return typeof c=="function"?c(f):c}function Ed(f,c,E){var T=Dc(),A;E!==void 0?A=E(c):A=c,T.memoizedState=T.baseState=A;var j=T.queue={last:null,dispatch:null,lastRenderedReducer:f,lastRenderedState:A},V=j.dispatch=s1.bind(null,cl,j);return[T.memoizedState,V]}function i1(f,c,E){var T=r1(),A=T.queue;if(A===null)throw Error("Should have a queue. This is likely a bug in React. Please file an issue.");if(A.lastRenderedReducer=f,Ec>0){var j=A.dispatch;if(Cs!==null){var V=Cs.get(A);if(V!==void 0){Cs.delete(A);var te=T.memoizedState,le=V;do{var Be=le.action;te=f(te,Be),le=le.next}while(le!==null);return mo(te,T.memoizedState)||lp(),T.memoizedState=te,T.baseUpdate===A.last&&(T.baseState=te),A.lastRenderedState=te,[te,j]}}return[T.memoizedState,j]}var Ke=A.last,pt=T.baseUpdate,Nt=T.baseState,Gt;if(pt!==null?(Ke!==null&&(Ke.next=null),Gt=pt.next):Gt=Ke!==null?Ke.next:null,Gt!==null){var zt=Nt,yn=null,kr=null,oi=pt,Oi=Gt,L0=!1;do{var $i=Oi.expirationTime;if($i<Vn)L0||(L0=!0,kr=oi,yn=zt),$i>Iu&&(Iu=$i,Xd(Iu));else if(vv($i,Oi.suspenseConfig),Oi.eagerReducer===f)zt=Oi.eagerState;else{var ot=Oi.action;zt=f(zt,ot)}oi=Oi,Oi=Oi.next}while(Oi!==null&&Oi!==Gt);L0||(kr=oi,yn=zt),mo(zt,T.memoizedState)||lp(),T.memoizedState=zt,T.baseUpdate=kr,T.baseState=yn,A.lastRenderedState=zt}var Ot=A.dispatch;return[T.memoizedState,Ot]}function Ff(f){var c=Dc();typeof f=="function"&&(f=f()),c.memoizedState=c.baseState=f;var E=c.queue={last:null,dispatch:null,lastRenderedReducer:F2,lastRenderedState:f},T=E.dispatch=s1.bind(null,cl,E);return[c.memoizedState,T]}function u1(f){return i1(F2,f)}function Qa(f,c,E,T){var A={tag:f,create:c,destroy:E,deps:T,next:null};if(rs===null)rs=Xa(),rs.lastEffect=A.next=A;else{var j=rs.lastEffect;if(j===null)rs.lastEffect=A.next=A;else{var V=j.next;j.next=A,A.next=V,rs.lastEffect=A}}return A}function o1(f){var c=Dc(),E={current:f};return Object.seal(E),c.memoizedState=E,E}function P2(f){var c=r1();return c.memoizedState}function Dd(f,c,E,T){var A=Dc(),j=T===void 0?null:T;Mf|=f,A.memoizedState=Qa(c,E,void 0,j)}function wc(f,c,E,T){var A=r1(),j=T===void 0?null:T,V=void 0;if(jn!==null){var te=jn.memoizedState;if(V=te.destroy,j!==null){var le=te.deps;if(Nf(j,le)){Qa(Af,E,V,j);return}}}Mf|=f,A.memoizedState=Qa(c,E,V,j)}function l1(f,c){return typeof jest!="undefined"&&Rv(cl),Dd(Dr|F0,sr|n1,f,c)}function Ll(f,c){return typeof jest!="undefined"&&Rv(cl),wc(Dr|F0,sr|n1,f,c)}function Ea(f,c){return Dd(Dr,Of|fl,f,c)}function wh(f,c){return wc(Dr,Of|fl,f,c)}function I2(f,c){if(typeof c=="function"){var E=c,T=f();return E(T),function(){E(null)}}else if(c!=null){var A=c;A.hasOwnProperty("current")||Xt(!1,"Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.","an object with keys {"+Object.keys(A).join(", ")+"}");var j=f();return A.current=j,function(){A.current=null}}}function b2(f,c,E){typeof c!="function"&&Xt(!1,"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",c!==null?typeof c:"null");var T=E!=null?E.concat([f]):null;return Dd(Dr,Of|fl,I2.bind(null,c,f),T)}function Sh(f,c,E){typeof c!="function"&&Xt(!1,"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",c!==null?typeof c:"null");var T=E!=null?E.concat([f]):null;return wc( Line truncated
Check the render method of \``+T+"`.");var A=T||f._debugID||"",j=f._debugSource;j&&(A=j.fileName+":"+j.lineNumber),Q2[A]||(Q2[A]=!0,Xt(!1,"Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?%s",E))}if(Xl&&c.defaultProps!==void 0){var V=qt(c)||"Unknown";J2[V]||(We(!1,"%s: Support for defaultProps will be removed from function components in a future major release. Use JavaScript default parameters instead.",V),J2[V]=!0)}if(typeof c.getDerivedStateFromProps=="function"){var te=qt(c)||"Unknown";Xs[te]||(We(!1,"%s: Function components do not support getDerivedStateFromProps.",te),Xs[te]=!0)}if(typeof c.contextType=="object"&&c.contextType!==null){var le=qt(c)||"Unknown";Ks[le]||(We(!1,"%s: Function components do not support contextType.",le),Ks[le]=!0)}}var Cd={dehydrated:null,retryTime:at};function tp(f,c,E){return e1(f,$c)&&(c===null||c.memoizedState!==null)}function Hh(f,c,E){var T=c.mode,A=c.pendingProps;Xg(c)&&(c.effectTag|=Xr);var j=kl.current,V=!1,te=(c.effectTag&Xr)!==xi;if(te||tp(j,f,c)?(V=!0,c.effectTag&=~Xr):(f===null||f.memoizedState!==null)&&A.fallback!==void 0&&A.unstable_avoidThisFallback!==!0&&(j=vd(j,xf)),j=ya(j),Fr(c,j),"maxDuration"in A&&(m1||(m1=!0,Xt(!1,"maxDuration has been removed from React. Remove the maxDuration prop."))),f===null){if(A.fallback!==void 0&&(Y2(c),Ai)){var le=c.memoizedState;if(le!==null){var Be=le.dehydrated;if(Be!==null)return qh(c,Be,E)}}if(V){var Ke=A.fallback,pt=nf(null,T,at,null);if(pt.return=c,(c.mode&Y)===Ar){var Nt=c.memoizedState,Gt=Nt!==null?c.child.child:c.child;pt.child=Gt;for(var zt=Gt;zt!==null;)zt.return=pt,zt=zt.sibling}var yn=nf(Ke,T,E,null);return yn.return=c,pt.sibling=yn,c.memoizedState=Cd,c.child=pt,yn}else{var kr=A.children;return c.memoizedState=null,c.child=Zc(c,null,kr,E)}}else{var oi=f.memoizedState;if(oi!==null){if(Ai){var Oi=oi.dehydrated;if(Oi!==null)if(te){if(c.memoizedState!==null)return c.child=f.child,c.effectTag|=Xr,null;var L0=A.fallback,$i=nf(null,T,at,null);if($i.return=c,$i.child=null,(c.mode&Y)===Ar)for(var ot=$i.child=c.child;ot!==null;)ot.return=$i,ot=ot.sibling;else Tf(c,f.child,null,E);if(en&&c.mode&ii){for(var Ot=0,Ze=$i.child;Ze!==null;)Ot+=Ze.treeBaseDuration,Ze=Ze.sibling;$i.treeBaseDuration=Ot}var Ut=nf(L0,T,E,null);return Ut.return=c,$i.sibling=Ut,Ut.effectTag|=mi,$i.childExpirationTime=at,c.memoizedState=Cd,c.child=$i,Ut}else return Wh(f,c,Oi,oi,E)}var Pn=f.child,vn=Pn.sibling;if(V){var Wi=A.fallback,pi=To(Pn,Pn.pendingProps,at);if(pi.return=c,(c.mode&Y)===Ar){var Ku=c.memoizedState,hr=Ku!==null?c.child.child:c.child;if(hr!==Pn.child){pi.child=hr;for(var pu=hr;pu!==null;)pu.return=pi,pu=pu.sibling}}if(en&&c.mode&ii){for(var Kr=0,xu=pi.child;xu!==null;)Kr+=xu.treeBaseDuration,xu=xu.sibling;pi.treeBaseDuration=Kr}var w0=To(vn,Wi,vn.expirationTime);return w0.return=c,pi.sibling=w0,pi.childExpirationTime=at,c.memoizedState=Cd,c.child=pi,w0}else{var W0=A.children,Ms=Pn.child,Xu=Tf(c,Ms,W0,E);return c.memoizedState=null,c.child=Xu}}else{var yl=f.child;if(V){var rf=A.fallback,Wo=nf(null,T,at,null);if(Wo.return=c,Wo.child=yl,yl!==null&&(yl.return=Wo),(c.mode&Y)===Ar){var ks=c.memoizedState,Zd=ks!==null?c.child.child:c.child;Wo.child=Zd;for(var Vf=Zd;Vf!==null;)Vf.return=Wo,Vf=Vf.sibling}if(en&&c.mode&ii){for(var Lc=0,zl=Wo.child;zl!==null;)Lc+=zl.treeBaseDuration,zl=zl.sibling;Wo.treeBaseDuration=Lc}var Vo=nf(rf,T,E,null);return Vo.return=c,Wo.sibling=Vo,Vo.effectTag|=mi,Wo.childExpirationTime=at,c.memoizedState=Cd,c.child=Wo,Vo}else{c.memoizedState=null;var N1=A.children;return c.child=Tf(c,yl,N1,E)}}}}function np(f,c,E){c.memoizedState=null;var T=c.pendingProps,A=T.children;return Do(f,c,A,E),c.child}function qh(f,c,E){if((f.mode&Y)===Ar)Xt(!1,"Cannot hydrate Suspense in legacy mode. Switch from ReactDOM.hydrate(element, container) to ReactDOM.createBlockingRoot(container, { hydrate: true }).render(element) or remove the Suspense components from the server rendered components."),f.expirationTime=Un;else if(y0(c)){var T=Ul(),A=Ds(T);bn&&x(A),f.expirationTime=A}else f.expirationTime=Di,bn&&x(Di);return null}function Wh(f,c,E,T,A){if(W2(),(c.mode&Y)===Ar||y0(E))return np(f,c,A);var j=f.childExpirationTime>=A;if(wa||j){if(A<Un&&T.retryTime<=A){var V=A+1;T.retryTime=V,ml(f,V)}return yv(),np(f,c,A)}else{if(Bs(E))return c.effectTag|=Xr,c.child=f.child,Us(E,$m.bind(null,f)),null;lm(c,E);for(var te=c.pendingProps,le=te.children,Be=Zc(c,null,le,A),Ke=Be;Ke;)Ke.effectTag|=su,Ke=Ke.sibling;return c.child=Be,c.child}}function rp(f,c){f.expirationTime<c&&(f.expirationTime=c);var E=f.alternate;E!==null&&E.expirationTime<c&&(E.expirationTime=c),z0(f.return,c)}function vm(f,c,E){for(var T=c;T!==null;){if(T.tag===pe){var A=T.memoizedState;A!==null&&rp(T,E)}else if(T.tag===yt)rp(T,E);else if(T.child!==null){T.child.return=T,T=T.child;continue}if(T===f)return;for(;T.sibling===null;){if(T.return===null||T.return===f)return;T=T.return}T.sibling.return=T.return,T=T.sibling}}functioLine truncated
Recreating the tree from scratch failed so React will unmount the tree.`:Be=`Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://fb.me/react-error-boundaries to learn more about error boundaries.`;var Ke=""+le+A+`
`+(""+Be);console.error(Ke)}}}var ev=null;ev=new Set;var Js=typeof WeakSet=="function"?WeakSet:Set;function mp(f,c){var E=c.source,T=c.stack;T===null&&E!==null&&(T=Cr(E));var A={componentName:E!==null?qt(E.type):null,componentStack:T!==null?T:"",error:c.value,errorBoundary:null,errorBoundaryName:null,errorBoundaryFound:!1,willRetry:!1};f!==null&&f.tag===O&&(A.errorBoundary=f.stateNode,A.errorBoundaryName=qt(f.type),A.errorBoundaryFound=!0,A.willRetry=!0);try{l0(A)}catch(j){setTimeout(function(){throw j})}}var Rm=function(f,c){Bi(f,"componentWillUnmount"),c.props=f.memoizedProps,c.state=f.memoizedState,c.componentWillUnmount(),Ci()};function tv(f,c){if(dl(null,Rm,null,f,c),tr()){var E=Qs();Hf(f,E)}}function yp(f){var c=f.ref;if(c!==null)if(typeof c=="function"){if(dl(null,c,null,null),tr()){var E=Qs();Hf(f,E)}}else c.current=null}function Am(f,c){if(dl(null,c,null),tr()){var E=Qs();Hf(f,E)}}function gp(f,c){switch(c.tag){case L:case se:case ie:{Tc(im,Af,c);return}case O:{if(c.effectTag&Oo&&f!==null){var E=f.memoizedProps,T=f.memoizedState;Bi(c,"getSnapshotBeforeUpdate");var A=c.stateNode;c.type===c.elementType&&!Sa&&(A.props!==c.memoizedProps&&Xt(!1,"Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(c.type)||"instance"),A.state!==c.memoizedState&&Xt(!1,"Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(c.type)||"instance"));var j=A.getSnapshotBeforeUpdate(c.elementType===c.type?E:qi(c.type,E),T);{var V=ev;j===void 0&&!V.has(c.type)&&(V.add(c.type),We(!1,"%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.",qt(c.type)))}A.__reactInternalSnapshotBeforeUpdate=j,Ci()}return}case U:case W:case ne:case H:case je:return;default:throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}}function Tc(f,c,E){var T=E.updateQueue,A=T!==null?T.lastEffect:null;if(A!==null){var j=A.next,V=j;do{if((V.tag&f)!==Af){var te=V.destroy;V.destroy=void 0,te!==void 0&&te()}if((V.tag&c)!==Af){var le=V.create;V.destroy=le();{var Be=V.destroy;if(Be!==void 0&&typeof Be!="function"){var Ke=void 0;Be===null?Ke=" You returned null. If your effect does not require clean up, return undefined (or nothing).":typeof Be.then=="function"?Ke=`
It looks like you wrote useEffect(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:
useEffect(() => {
async function fetchData() {
// You can await here
const response = await MyAPI.getData(someId);
// ...
}
fetchData();
}, [someId]); // Or [] if effect doesn't need props or state
Learn more about data fetching with Hooks: https://fb.me/react-hooks-data-fetching`:Ke=" You returned: "+Be,We(!1,"An effect function must not return anything besides a function, which is used for clean-up.%s%s",Ke,Cr(E))}}}V=V.next}while(V!==j)}}function xa(f){if((f.effectTag&F0)!==xi)switch(f.tag){case L:case se:case ie:{Tc(sr,Af,f),Tc(Af,n1,f);break}default:break}}function _p(f,c,E,T){switch(E.tag){case L:case se:case ie:{Tc(um,fl,E);break}case O:{var A=E.stateNode;if(E.effectTag&Dr)if(c===null)Bi(E,"componentDidMount"),E.type===E.elementType&&!Sa&&(A.props!==E.memoizedProps&&Xt(!1,"Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(E.type)||"instance"),A.state!==E.memoizedState&&Xt(!1,"Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(E.type)||"instance")),A.componentDidMount(),Ci();else{var j=E.elementType===E.type?c.memoizedProps:qi(E.type,c.memoizedProps),V=c.memoizedState;Bi(E,"componentDidUpdate"),E.type===E.elementType&&!Sa&&(A.props!==E.memoizedProps&&Xt(!1,"Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(E.type)||"instance"),A.state!==E.memoizedState&&Xt(!1,"Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(E.type)||"instance")),A.componentDidUpdate(j,V,A.__reactInternalSnapshotBeforeUpdate),Ci()}var te=E.updateQueue;te!==null&&(E.type===E.elementType&&!Sa&&(A.props!==E.memoizedProps&&Xt(!1,"Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(E.type)||"instance"),A.state!==E.memoizedState&&Xt(!1,"Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(E.type)||"instance")),yo(E,te,A,T));return}case U:{var le=E.updateQueue;if(le!==null){var Be=null;if(E.child!==null)switch(E.child.tag){case W:Be=No(E.child.stateNode);break;case O:Be=E.child.stateNode;break}yo(E,le,Be,T)}return}case W:{var Ke=E.stateNode;if(c===null&&E.effectTag&Dr){var pt=E.type,Nt=E.memoizedProps;Hu(Ke,pt,Nt,E)}return}case ne:return;case H:return;case De:{if(en){var Gt=E.memoizedProps.onRender;typeof Gt=="function"&&(bn?Gt(E.memoizedProps.id,c===null?"mount":"update",E.actualDuration,E.treeBaseDuration,E.actualStartTime,Pl(),f.memoizedInteractions):Gt(E.memoizedProps.id,c===null?"mount":"update",E.actualDuration,E.treeBaseDuration,E.actualStartTime,Pl()))}return}case pe:{bl(f,E);return}case yt:case je:case gt:case Xe:return;default:throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}}function Fd(f,c){if(b0)for(var E=f;;){if(E.tag===W){var T=E.stateNode;c?Pa(T):ia(E.stateNode,E.memoizedProps)}else if(E.tag===ne){var A=E.stateNode;c?m0(A):Q0(A,E.memoizedProps)}else if(E.tag===pe&&E.memoizedState!==null&&E.memoizedState.dehydrated===null){var j=E.child.sibling;j.return=E,E=j;continue}else if(E.child!==null){E.child.return=E,E=E.child;continue}if(E===f)return;for(;E.sibling===null;){if(E.return===null||E.return===f)return;E=E.return}E.sibling.return=E.return,E=E.sibling}}function bu(f){var c=f.ref;if(c!==null){var E=f.stateNode,T;switch(f.tag){case W:T=No(E);break;default:T=E}Au&&f.tag===Xe&&(T=E.methods),typeof c=="function"?c(T):(c.hasOwnProperty("current")||We(!1,"Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().%s",qt(f.type),Cr(f)),c.current=T)}}function Yu(f){var c=f.ref;c!==null&&(typeof c=="function"?c(null):c.current=null)}function Ep(f,c,E){switch(kn(c),c.tag){case L:case se:case me:case ie:{var T=c.updateQueue;if(T!==null){var A=T.lastEffect;if(A!==null){var j=A.next,V=E>Kn?Kn:E;Sn(V,function(){var oi=j;do{var Oi=oi.destroy;Oi!==void 0&&Am(c,Oi),oi=oi.next}while(oi!==j)})}}break}case O:{yp(c);var te=c.stateNode;typeof te.componentWillUnmount=="function"&&tv(c,te);return}case W:{if(gi){var le=c.dependencies;if(le!==null){var Be=le.responders;if(Be!==null){for(var Ke=Array.from(Be.values()),pt=0,Nt=Ke.length;pt<Nt;pt++){var Gt=Ke[pt];Ne(Gt)}le.responders=null}}}yp(c);return}case H:{b0?D1(f,c,E):X&&Om(c);return}case gt:{if(Wt){var zt=c.stateNode;zt!==null&&(Ia(zt),c.stateNode=null)}return}case qe:{if(Yi){var yn=f.hydrationCallbacks;if(yn!==null){var kr=yn.onDeleted;kr&&kr(c.stateNode)}}return}case Xe:Au&&yp(c)}}functio Line truncated
Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.`+Cr(E))}Mp(),T=pp(T,E);var Nt=c;do{switch(Nt.tag){case U:{var Gt=T;Nt.effectTag|=p0,Nt.expirationTime=A;var zt=uv(Nt,Gt,A);od(Nt,zt);return}case O:var yn=T,kr=Nt.type,oi=Nt.stateNode;if((Nt.effectTag&Xr)===xi&&(typeof kr.getDerivedStateFromError=="function"||oi!==null&&typeof oi.componentDidCatch=="function"&&!Pp(oi))){Nt.effectTag|=p0,Nt.expirationTime=A;var Oi=ov(Nt,yn,A);od(Nt,Oi);return}break;default:break}Nt=Nt.return}while(Nt!==null)}var Aa=Math.ceil,Mr=rt.ReactCurrentDispatcher,wp=rt.ReactCurrentOwner,hl=rt.IsSomeRendererActing,gu=0,S1=1,Ui=2,Sp=4,bd=8,So=16,As=32,bf=0,Bd=1,Tp=2,T1=3,C1=4,Cp=5,nr=gu,vl=null,Gn=null,q0=at,k0=bf,Ud=null,Bl=Un,x1=Un,xc=null,Rc=at,jd=!1,xp=0,N0=500,dn=null,zd=!1,Hd=null,Ac=null,Oc=!1,Mc=null,R1=E0,Rp=at,ef=null,Pm=50,kc=0,qd=null,sv=50,A1=0,Bf=null,Uf=null,O1=at;function Ul(){return(nr&(So|As))!==gu?n0(vt()):(O1!==at||(O1=n0(vt())),O1)}function Nc(){return n0(vt())}function jf(f,c,E){var T=c.mode;if((T&Y)===Ar)return Un;var A=Qt();if((T&ri)===Ar)return A===Li?Un:t0;if((nr&So)!==gu)return q0;var j;if(E!==null)j=fa(f,E.timeoutMs|0||_f);else switch(A){case Li:j=Un;break;case ni:j=Ua(f);break;case Kn:case e0:j=Ds(f);break;case _0:j=ru;break;default:throw Error("Expected a valid priority level")}return vl!==null&&j===q0&&(j-=1),j}function Im(f,c){ty(),uy(f);var E=Wd(f,c);if(E===null){ry(f);return}zp(f,c),la();var T=Qt();if(c===Un?(nr&bd)!==gu&&(nr&(So|As))===gu?(q(E,c),M1(E)):(qo(E),q(E,c),nr===gu&&Bt()):(qo(E),q(E,c)),(nr&Sp)!==gu&&(T===ni||T===Li))if(ef===null)ef=new Map([[E,c]]);else{var A=ef.get(E);(A===void 0||A>c)&&ef.set(E,c)}}var ml=Im;function Wd(f,c){f.expirationTime<c&&(f.expirationTime=c);var E=f.alternate;E!==null&&E.expirationTime<c&&(E.expirationTime=c);var T=f.return,A=null;if(T===null&&f.tag===U)A=f.stateNode;else for(;T!==null;){if(E=T.alternate,T.childExpirationTime<c&&(T.childExpirationTime=c),E!==null&&E.childExpirationTime<c&&(E.childExpirationTime=c),T.return===null&&T.tag===U){A=T.stateNode;break}T=T.return}return A!==null&&(vl===A&&(Xd(c),k0===C1&&Wf(A,q0)),Gg(A,c)),A}function Vd(f){var c=f.lastExpiredTime;if(c!==at)return c;var E=f.firstPendingTime;if(!Vg(f,E))return E;var T=f.lastPingedTime,A=f.nextKnownPendingLevel;return T>A?T:A}function qo(f){var c=f.lastExpiredTime;if(c!==at){f.callbackExpirationTime=Un,f.callbackPriority=Li,f.callbackNode=Tn(M1.bind(null,f));return}var E=Vd(f),T=f.callbackNode;if(E===at){T!==null&&(f.callbackNode=null,f.callbackExpirationTime=at,f.callbackPriority=E0);return}var A=Ul(),j=nd(A,E);if(T!==null){var V=f.callbackPriority,te=f.callbackExpirationTime;if(te===E&&V>=j)return;ir(T)}f.callbackExpirationTime=E,f.callbackPriority=j;var le;E===Un?le=Tn(M1.bind(null,f)):so?le=_n(j,Gd.bind(null,f)):le=_n(j,Gd.bind(null,f),{timeout:Uo(E)-vt()}),f.callbackNode=le}function Gd(f,c){if(O1=at,c){var E=Ul();return Wp(f,E),qo(f),null}var T=Vd(f);if(T!==at){var A=f.callbackNode;if((nr&(So|As))!==gu)throw Error("Should not already be working.");if(tf(),(f!==vl||T!==q0)&&(zf(f,T),ee(f,T)),Gn!==null){var j=nr;nr|=So;var V=pv(f),te=Yd(f);mf(Gn);do try{Ym();break}catch(Ke){dv(f,Ke)}while(!0);if(mt(),nr=j,hv(V),bn&&Kd(te),k0===Bd){var le=Ud;throw jp(),zf(f,T),Wf(f,T),qo(f),le}if(Gn!==null)jp();else{Tv();var Be=f.finishedWork=f.current.alternate;f.finishedExpirationTime=T,bm(f,Be,k0,T)}if(qo(f),f.callbackNode===A)return Gd.bind(null,f)}}return null}function bm(f,c,E,T){switch(vl=null,E){case bf:case Bd:throw Error("Root did not complete. This is a bug in React.");case Tp:{Wp(f,T>ru?ru:T);break}case T1:{Wf(f,T);var A=f.lastSuspendedTime;T===A&&(f.nextKnownPendingLevel=kp(c)),d();var j=Bl===Un;if(j&&!(X0&&qf.current)){var V=xp+N0-vt();if(V>10){if(jd){var te=f.lastPingedTime;if(te===at||te>=T){f.lastPingedTime=T,zf(f,T);break}}var le=Vd(f);if(le!==at&&le!==T)break;if(A!==at&&A!==T){f.lastPingedTime=A;break}f.timeoutHandle=Tt(s0.bind(null,f),V);break}}s0(f);break}case C1:{Wf(f,T);var Be=f.lastSuspendedTime;if(T===Be&&(f.nextKnownPendingLevel=kp(c)),d(),!(X0&&qf.current)){if(jd){var Ke=f.lastPingedTime;if(Ke===at||Ke>=T){f.lastPingedTime=T,zf(f,T);break}}var pt=Vd(f);if(pt!==at&&pt!==T)break;if(Be!==at&&Be!==T){f.lastPingedTime=Be;break}var Nt;if(x1!==Un)Nt=Uo(x1)-vt();else if(Bl===Un)Nt=0;else{var Gt=_v(Bl),zt=vt(),yn=Uo(T)-zt,kr=zt-Gt;kr<0&&(kr=0),Nt=Bp(kr)-kr,yn<Nt&&(Nt=yn)}if(Nt>10){f.timeoutHandle=Tt(s0.bind(null,f),Nt);break}}s0(f);break}case Cp:{if(!(X0&&qf.current)&&Bl!==Un&&xc!==null){var oi=Up(Bl,T,xc);if(oi>10){Wf(f,T),f.timeoutHandle=Tt(s0.bind(null,f),oi);break}}s0(f);break}default:throw Error("Unknown root exit status.")}}function M1(f){var c=f.lastExpiredTime,E=c!==at?c:Un;if(f.finishedExpirationTime===E)s0(f);else{if((nr&(So|As))!==gu)throw Error("Should not already be working.");if(tf(),(f!==vl||E!==q0)&&(zf(f,E),ee(f,E)),Gn!==null){var T=nr;nr|=So;var A=pv(f),j=Yd(f);mf(Gn);do try{Ev();break}catch(te){dv(f,te)}whi Line truncated
Be sure to use the matching version of act() corresponding to your renderer:
// for react-dom:
import {act} from 'react-dom/test-utils';
// ...
act(() => ...);
// for react-test-renderer:
import TestRenderer from 'react-test-renderer';
const {act} = TestRenderer;
// ...
act(() => ...);%s`,Cr(f))}function Rv(f){vs===!0&&(f.mode&mr)!==Ar&&hl.current===!1&&qf.current===!1&&We(!1,`An update to %s ran an effect, but was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act%s`,qt(f.type),Cr(f))}function oy(f){vs===!0&&nr===gu&&hl.current===!1&&qf.current===!1&&We(!1,`An update to %s inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act%s`,qt(f.type),Cr(f))}var ly=oy,qp=!1;function sy(f){qp===!1&&t.unstable_flushAllWithoutAsserting===void 0&&(f.mode&Y||f.mode&ri?(qp=!0,We(!1,`In Concurrent or Sync modes, the "scheduler" module needs to be mocked to guarantee consistent behaviour across tests and browsers. For example, with jest:
jest.mock('scheduler', () => require('scheduler/unstable_mock'));
For more info, visit https://fb.me/react-mock-scheduler`)):eu===!0&&(qp=!0,We(!1,`Starting from React v17, the "scheduler" module will need to be mocked to guarantee consistent behaviour across tests and browsers. For example, with jest:
jest.mock('scheduler', () => require('scheduler/unstable_mock'));
For more info, visit https://fb.me/react-mock-scheduler`)))}var Zs=null;function ay(f){{var c=Qt();if((f.mode&ri)!==xi&&(c===ni||c===Li))for(var E=f;E!==null;){var T=E.alternate;if(T!==null)switch(E.tag){case O:var A=T.updateQueue;if(A!==null)for(var j=A.firstUpdate;j!==null;){var V=j.priority;if(V===ni||V===Li){Zs===null?Zs=new Set([qt(E.type)]):Zs.add(qt(E.type));break}j=j.next}break;case L:case se:case ie:if(E.memoizedState!==null&&E.memoizedState.baseUpdate!==null)for(var te=E.memoizedState.baseUpdate;te!==null;){var le=te.priority;if(le===ni||le===Li){Zs===null?Zs=new Set([qt(E.type)]):Zs.add(qt(E.type));break}if(te.next===E.memoizedState.baseUpdate)break;te=te.next}break;default:break}E=E.return}}}function d(){if(Zs!==null){var f=[];Zs.forEach(function(c){return f.push(c)}),Zs=null,f.length>0&&We(!1,`%s triggered a user-blocking update that suspended.
The fix is to split the update into multiple parts: a user-blocking update to provide immediate feedback, and another update that triggers the bulk of the changes.
Refer to the documentation for useTransition to learn how to implement this pattern.`,f.sort().join(", "))}}function v(f,c){return c*1e3+f.interactionThreadID}function x(f){!bn||(Uf===null?Uf=[f]:Uf.push(f))}function P(f,c,E){if(!!bn&&E.size>0){var T=f.pendingInteractionMap,A=T.get(c);A!=null?E.forEach(function(te){A.has(te)||te.__count++,A.add(te)}):(T.set(c,new Set(E)),E.forEach(function(te){te.__count++}));var j=k.__subscriberRef.current;if(j!==null){var V=v(f,c);j.onWorkScheduled(E,V)}}}function q(f,c){!bn||P(f,c,k.__interactionsRef.current)}function ee(f,c){if(!!bn){var E=new Set;if(f.pendingInteractionMap.forEach(function(j,V){V>=c&&j.forEach(function(te){return E.add(te)})}),f.memoizedInteractions=E,E.size>0){var T=k.__subscriberRef.current;if(T!==null){var A=v(f,c);try{T.onWorkStarted(E,A)}catch(j){_n(Li,function(){throw j})}}}}}function de(f,c){if(!!bn){var E=f.firstPendingTime,T;try{if(T=k.__subscriberRef.current,T!==null&&f.memoizedInteractions.size>0){var A=v(f,c);T.onWorkStopped(f.memoizedInteractions,A)}}catch(V){_n(Li,function(){throw V})}finally{var j=f.pendingInteractionMap;j.forEach(function(V,te){te>E&&(j.delete(te),V.forEach(function(le){if(le.__count--,T!==null&&le.__count===0)try{T.onInteractionScheduledWorkCompleted(le)}catch(Be){_n(Li,function(){throw Be})}}))})}}}var _e=null,Ie=null,Et=!1,St=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__!="undefined";function At(f){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined")return!1;var c=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(c.isDisabled)return!0;if(!c.supportsFiber)return We(!1,"The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://fb.me/react-devtools"),!0;try{var E=c.inject(f);_e=function(T,A){try{var j=(T.current.effectTag&Xr)===Xr;if(en){var V=Nc(),te=nd(V,A);c.onCommitFiberRoot(E,T,te,j)}else c.onCommitFiberRoot(E,T,void 0,j)}catch(le){Et||(Et=!0,We(!1,"React DevTools encountered an error: %s",le))}},Ie=function(T){try{c.onCommitFiberUnmount(E,T)}catch(A){Et||(Et=!0,We(!1,"React DevTools encountered an error: %s",A))}}}catch(T){We(!1,"React DevTools encountered an error: %s.",T)}return!0}function on(f,c){typeof _e=="function"&&_e(f,c)}function kn(f){typeof Ie=="function"&&Ie(f)}var rr;{rr=!1;try{var br=Object.preventExtensions({}),ar=new Map([[br,null]]),ui=new Set([br]);ar.set(0,0),ui.add(0)}catch(f){rr=!0}}var di=1;function jl(f,c,E,T){this.tag=f,this.key=E,this.elementType=null,this.type=null,this.stateNode=null,this.return=null,this.child=null,this.sibling=null,this.index=0,this.ref=null,this.pendingProps=c,this.memoizedProps=null,this.updateQueue=null,this.memoizedState=null,this.dependencies=null,this.mode=T,this.effectTag=xi,this.nextEffect=null,this.firstEffect=null,this.lastEffect=null,this.expirationTime=at,this.childExpirationTime=at,this.alternate=null,en&&(this.actualDuration=Number.NaN,this.actualStartTime=Number.NaN,this.selfBaseDuration=Number.NaN,this.treeBaseDuration=Number.NaN,this.actualDuration=0,this.actualStartTime=-1,this.selfBaseDuration=0,this.treeBaseDuration=0),Hr&&(this._debugID=di++,this._debugIsCurrentlyTiming=!1),this._debugSource=null,this._debugOwner=null,this._debugNeedsRemount=!1,this._debugHookTypes=null,!rr&&typeof Object.preventExtensions=="function"&&Object.preventExtensions(this)}var Zi=function(f,c,E,T){return new jl(f,c,E,T)};function lo(f){var c=f.prototype;return!!(c&&c.isReactComponent)}function a0(f){return typeof f=="function"&&!lo(f)&&f.defaultProps===void 0}function Os(f){if(typeof f=="function")return lo(f)?O:L;if(f!=null){var c=f.$$typeof;if(c===Mn)return se;if(c===Vt)return me}return C}function To(f,c,E){var T=f.alternate;T===null?(T=Zi(f.tag,c,f.key,f.mode),T.elementType=f.elementType,T.type=f.type,T.stateNode=f.stateNode,T._debugID=f._debugID,T._debugSource=f._debugSource,T._debugOwner=f._debugOwner,T._debugHookTypes=f._debugHookTypes,T.alternate=f,f.alternate=T):(T.pendingProps=c,T.effectTag=xi,T.nextEffect=null,T.firstEffect=null,T.lastEffect=null,en&&(T.actualDuration=0,T.actualStartTime=-1)),T.childExpirationTime=f.childExpirationTime,T.expirationTime=f.expirationTime,T.child=f.child,T.memoizedProps=f.memoizedProps,T.memoizedState=f.memoizedState,T.updateQueue=f.updateQueue;var A=f.dependencies;switch(T.dependencies=A===null?null:{expirationTime:A.expirationTime,firstContext:A.firstContext,responders:A.responders},T.sibling=f.sibling,T.index=f.index,T.ref=f.ref,en&&(T.selfBaseDuration=f.selfBaseDuration,T.treeBaseDuration=f.treeBaseDuration),T._debugNeedsRemount=f._debugNeedsRemount,T.tag){case C:case L:case ie:T.type=r0(f.type);break;case O:T.type=j0(f.type);break;case se:T.type=Df(f.type);break;default:break}return T}function Av(f,c){f.effectTag&=mi,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null;var E=f.alternate;if(E===null)f.childExpirationTime=at,f.expirationTime=c,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,en&&(f.selfBaseDuration=0,f.t Line truncated
Check the render method of \``+Ke+"`.")}throw Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: "+(f==null?f:typeof f)+"."+Be)}}}return V=Zi(te,E,c,A),V.elementType=f,V.type=le,V.expirationTime=j,V}function cy(f,c,E){var T=null;T=f._owner;var A=f.type,j=f.key,V=f.props,te=fy(A,j,V,T,c,E);return te._debugSource=f._source,te._debugOwner=f._owner,te}function nf(f,c,E,T){var A=Zi(m,f,T,c);return A.expirationTime=E,A}function qg(f,c,E,T,A){var j=Zi(gt,c,A,E);return j.elementType=f,j.type=f,j.expirationTime=T,j}function N4(f,c,E,T,A){var j=Zi(Xe,c,A,E);return j.type=f,j.elementType=f,j.expirationTime=T,j}function L4(f,c,E,T){(typeof f.id!="string"||typeof f.onRender!="function")&&We(!1,'Profiler must specify an "id" string and "onRender" function as props');var A=Zi(De,f,T,c|ii);return A.elementType=ct,A.type=ct,A.expirationTime=E,A}function F4(f,c,E,T){var A=Zi(pe,f,T,c);return A.type=lr,A.elementType=lr,A.expirationTime=E,A}function P4(f,c,E,T){var A=Zi(yt,f,T,c);return A.type=ln,A.elementType=ln,A.expirationTime=E,A}function dy(f,c,E){var T=Zi(ne,f,null,c);return T.expirationTime=E,T}function I4(){var f=Zi(W,null,null,Ar);return f.elementType="DELETED",f.type="DELETED",f}function b4(f){var c=Zi(qe,null,null,Ar);return c.stateNode=f,c}function py(f,c,E){var T=f.children!==null?f.children:[],A=Zi(H,T,f.key,c);return A.expirationTime=E,A.stateNode={containerInfo:f.containerInfo,pendingChildren:null,implementation:f.implementation},A}function Wg(f,c){return f===null&&(f=Zi(C,null,null,Ar)),f.tag=c.tag,f.key=c.key,f.elementType=c.elementType,f.type=c.type,f.stateNode=c.stateNode,f.return=c.return,f.child=c.child,f.sibling=c.sibling,f.index=c.index,f.ref=c.ref,f.pendingProps=c.pendingProps,f.memoizedProps=c.memoizedProps,f.updateQueue=c.updateQueue,f.memoizedState=c.memoizedState,f.dependencies=c.dependencies,f.mode=c.mode,f.effectTag=c.effectTag,f.nextEffect=c.nextEffect,f.firstEffect=c.firstEffect,f.lastEffect=c.lastEffect,f.expirationTime=c.expirationTime,f.childExpirationTime=c.childExpirationTime,f.alternate=c.alternate,en&&(f.actualDuration=c.actualDuration,f.actualStartTime=c.actualStartTime,f.selfBaseDuration=c.selfBaseDuration,f.treeBaseDuration=c.treeBaseDuration),f._debugID=c._debugID,f._debugSource=c._debugSource,f._debugOwner=c._debugOwner,f._debugIsCurrentlyTiming=c._debugIsCurrentlyTiming,f._debugNeedsRemount=c._debugNeedsRemount,f._debugHookTypes=c._debugHookTypes,f}function B4(f,c,E){this.tag=c,this.current=null,this.containerInfo=f,this.pendingChildren=null,this.pingCache=null,this.finishedExpirationTime=at,this.finishedWork=null,this.timeoutHandle=tl,this.context=null,this.pendingContext=null,this.hydrate=E,this.callbackNode=null,this.callbackPriority=E0,this.firstPendingTime=at,this.firstSuspendedTime=at,this.lastSuspendedTime=at,this.nextKnownPendingLevel=at,this.lastPingedTime=at,this.lastExpiredTime=at,bn&&(this.interactionThreadID=k.unstable_getThreadID(),this.memoizedInteractions=new Set,this.pendingInteractionMap=new Map),Yi&&(this.hydrationCallbacks=null)}function U4(f,c,E,T){var A=new B4(f,c,E);Yi&&(A.hydrationCallbacks=T);var j=k4(c);return A.current=j,j.stateNode=A,A}function Vg(f,c){var E=f.firstSuspendedTime,T=f.lastSuspendedTime;return E!==at&&E>=c&&T<=c}function Wf(f,c){var E=f.firstSuspendedTime,T=f.lastSuspendedTime;E<c&&(f.firstSuspendedTime=c),(T>c||E===at)&&(f.lastSuspendedTime=c),c<=f.lastPingedTime&&(f.lastPingedTime=at),c<=f.lastExpiredTime&&(f.lastExpiredTime=at)}function Gg(f,c){var E=f.firstPendingTime;c>E&&(f.firstPendingTime=c);var T=f.firstSuspendedTime;T!==at&&(c>=T?f.firstSuspendedTime=f.lastSuspendedTime=f.nextKnownPendingLevel=at:c>=f.lastSuspendedTime&&(f.lastSuspendedTime=c+1),c>f.nextKnownPendingLevel&&(f.nextKnownPendingLevel=c))}function j4(f,c,E){f.firstPendingTime=E,c<=f.lastSuspendedTime?f.firstSuspendedTime=f.lastSuspendedTime=f.nextKnownPendingLevel=at:c<=f.firstSuspendedTime&&(f.firstSuspendedTime=c-1),c<=f.lastPingedTime&&(f.lastPingedTime=at),c<=f.lastExpiredTime&&(f.lastExpiredTime=at)}function Wp(f,c){var E=f.lastExpiredTime;(E===at||E>c)&&(f.lastExpiredTime=c)}var z4={debugTool:null},Ov=z4,hy,vy;hy=!1,vy={};function H4(f){if(!f)return Rn;var c=Ft(f),E=Cl(c);if(c.tag===O){var T=c.type;if(Xi(T))return A0(c,T,E)}return E}function my(f){var c=Ft(f);if(c===void 0)throw typeof f.render=="function"?Error("Unable to find node on an unmounted component."):Error("Argument appears to not be a ReactComponent. Keys: "+Object.keys(f));var E=I0(c);return E===null?null:E.stateNode}function q4(f,c){{var E=Ft(f);if(E===void 0)throw typeof f.render=="function"?Error("Unable to find node on an unmounted component."):Error("Argument appears to not be a ReactComponent. Keys: "+Object.keys(f));var T=I0(E);if(T===null)return null;if(T.mode&mr){var A=qt(E.type)||"Component";vy[A]||(vy[A]=!0,E.mode&mr?We(!1,"%s is deprecated in StrictMode. %s was passed an instance of %s which is inside StrictLine truncated
Check the render method of %s.`,qt(An.type)||"Unknown"));var Be=Cu(te,V);return Be.payload={element:f},T=T===void 0?null:T,T!==null&&(typeof T!="function"&&We(!1,"render(...): Expected the last optional `callback` argument to be a function. Instead received: %s.",T),Be.callback=T),Va(A,Be),ml(A,te),te}function V4(f){var c=f.current;if(!c.child)return null;switch(c.child.tag){case W:return No(c.child.stateNode);default:return c.child.stateNode}}function G4(f){switch(f.tag){case U:var c=f.stateNode;c.hydrate&&Um(c,c.firstPendingTime);break;case pe:Ap(function(){return ml(f,Un)});var E=Ua(Ul());Mv(f,E);break}}function Kg(f,c){var E=f.memoizedState;E!==null&&E.dehydrated!==null&&E.retryTime<c&&(E.retryTime=c)}function Mv(f,c){Kg(f,c);var E=f.alternate;E&&Kg(E,c)}function Y4(f){if(f.tag===pe){var c=Ua(Ul());ml(f,c),Mv(f,c)}}function yy(f){if(f.tag===pe){var c=E2(Ul());ml(f,c),Mv(f,c)}}function K4(f){if(f.tag===pe){var c=Ul(),E=jf(c,f,null);ml(f,E),Mv(f,E)}}function X4(f){var c=wl(f);return c===null?null:c.tag===gt?c.stateNode.instance:c.stateNode}var gy=function(f){return!1};function Xg(f){return gy(f)}var Qg=null,Jg=null,Zg=null,$g=null;{var _y=function(f,c,E,T){if(E>=c.length)return T;var A=c[E],j=Array.isArray(f)?f.slice():a({},f);return j[A]=_y(f[A],c,E+1,T),j},e_=function(f,c,E){return _y(f,c,0,E)};Qg=function(f,c,E,T){for(var A=f.memoizedState;A!==null&&c>0;)A=A.next,c--;if(A!==null){var j=e_(A.memoizedState,E,T);A.memoizedState=j,A.baseState=j,f.memoizedProps=a({},f.memoizedProps),ml(f,Un)}},Jg=function(f,c,E){f.pendingProps=e_(f.memoizedProps,c,E),f.alternate&&(f.alternate.pendingProps=f.pendingProps),ml(f,Un)},Zg=function(f){ml(f,Un)},$g=function(f){gy=f}}function Q4(f){var c=f.findFiberByHostInstance,E=rt.ReactCurrentDispatcher;return At(a({},f,{overrideHookState:Qg,overrideProps:Jg,setSuspenseHandler:$g,scheduleUpdate:Zg,currentDispatcherRef:E,findHostInstanceByFiber:function(T){var A=I0(T);return A===null?null:A.stateNode},findFiberByHostInstance:function(T){return c?c(T):null},findHostInstancesForRefresh:ud,scheduleRefresh:Al,scheduleRoot:Ts,setRefreshHandler:qa,getCurrentFiber:function(){return An}}))}var t_=Object.freeze({createContainer:W4,updateContainer:Yg,batchedEventUpdates:qm,batchedUpdates:Hm,unbatchedUpdates:Wm,deferredUpdates:jm,syncUpdates:fv,discreteUpdates:cv,flushDiscreteUpdates:av,flushControlled:Vm,flushSync:Ap,flushPassiveEffects:tf,IsThisRendererActing:qf,getPublicRootInstance:V4,attemptSynchronousHydration:G4,attemptUserBlockingHydration:Y4,attemptContinuousHydration:yy,attemptHydrationAtCurrentPriority:K4,findHostInstance:my,findHostInstanceWithWarning:q4,findHostInstanceWithNoPortals:X4,shouldSuspend:Xg,injectIntoDevTools:Q4}),J4=t_.default||t_;qy.exports=J4;var Z4=qy.exports;return qy.exports=i,Z4})});var IS=tt((RH,vD)=>{"use strict";process.env.NODE_ENV==="production"?vD.exports=MS():vD.exports=PS()});var BS=tt((AH,bS)=>{"use strict";var AP={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};bS.exports=AP});var HS=tt((OH,US)=>{"use strict";var OP=Object.assign||function(i){for(var o=1;o<arguments.length;o++){var a=arguments[o];for(var p in a)Object.prototype.hasOwnProperty.call(a,p)&&(i[p]=a[p])}return i},B_=function(){function i(o,a){for(var p=0;p<a.length;p++){var _=a[p];_.enumerable=_.enumerable||!1,_.configurable=!0,"value"in _&&(_.writable=!0),Object.defineProperty(o,_.key,_)}}return function(o,a,p){return a&&i(o.prototype,a),p&&i(o,p),o}}();function mD(i,o,a){return o in i?Object.defineProperty(i,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):i[o]=a,i}function yD(i,o){if(!(i instanceof o))throw new Type Line truncated
`+Module.extraStackTrace()),demangleAll(i)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),Module.buffer?buffer=Module.buffer:buffer=new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}if(HEAP32[0]=1668509029,HEAP16[1]=25459,HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;function callRuntimeCallbacks(i){for(;i.length>0;){var o=i.shift();if(typeof o=="function"){o();continue}var a=o.func;typeof a=="number"?o.arg===void 0?Module.dynCall_v(a):Module.dynCall_vi(a,o.arg):a(o.arg===void 0?null:o.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(i){__ATPRERUN__.unshift(i)}Module.addOnPreRun=addOnPreRun;function addOnInit(i){__ATINIT__.unshift(i)}Module.addOnInit=addOnInit;function addOnPreMain(i){__ATMAIN__.unshift(i)}Module.addOnPreMain=addOnPreMain;function addOnExit(i){__ATEXIT__.unshift(i)}Module.addOnExit=addOnExit;function addOnPostRun(i){__ATPOSTRUN__.unshift(i)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(i,o,a){var p=a>0?a:lengthBytesUTF8(i)+1,_=new Array(p),t=stringToUTF8Array(i,_,0,_.length);return o&&(_.length=t),_}Module.intArrayFromString=intArrayFromString;function intArrayToString(i){for(var o=[],a=0;a<i.length;a++){var p=i[a];p>255&&(p&=255),o.push(String.fromCharCode(p))}return o.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(i,o,a){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var p,_;a&&(_=o+lengthBytesUTF8(i),p=HEAP8[_]),stringToUTF8(i,o,Infinity),a&&(HEAP8[_]=p)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(i,o){HEAP8.set(i,o)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(i,o,a){for(var p=0;p<i.length;++p)HEAP8[o++>>0]=i.charCodeAt(p);a||(HEAP8[o>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function(o,a){var p=o>>>16,_=o&65535,t=a>>>16,k=a&65535;return _*k+(p*k+_*t<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(i){return froundBuffer[0]=i,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(i){i=i>>>0;for(var o=0;o<32;o++)if(i&1<<31-o)return o;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(i){return i<0?Math.ceil(i):Math.floor(i)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math. Line truncated
If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,a="abort("+i+") at "+stackTrace()+o;throw abortDecorators&&abortDecorators.forEach(function(p){a=p(a,i)}),a}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var $p=tt((MH,WS)=>{"use strict";var kP=HS(),NP=qS(),gD=!1,_D=null;NP({},function(i,o){if(!gD){if(gD=!0,i)throw i;_D=o}});if(!gD)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");WS.exports=kP(_D.bind,_D.lib)});var GS=tt((kH,VS)=>{"use strict";VS.exports=({onlyFirst:i=!1}={})=>{let o=["[\\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(o,i?void 0:"g")}});var ED=tt((NH,YS)=>{"use strict";var LP=GS();YS.exports=i=>typeof i=="string"?i.replace(LP(),""):i});var wD=tt((LH,DD)=>{"use strict";var KS=i=>Number.isNaN(i)?!1:i>=4352&&(i<=4447||i===9001||i===9002||11904<=i&&i<=12871&&i!==12351||12880<=i&&i<=19903||19968<=i&&i<=42182||43360<=i&&i<=43388||44032<=i&&i<=55203||63744<=i&&i<=64255||65040<=i&&i<=65049||65072<=i&&i<=65131||65281<=i&&i<=65376||65504<=i&&i<=65510||110592<=i&&i<=110593||127488<=i&&i<=127569||131072<=i&&i<=262141);DD.exports=KS;DD.exports.default=KS});var QS=tt((FH,XS)=>{"use strict";XS.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF Line truncated
`))o=Math.max(o,bP(a));return o};TD.exports=ZS;TD.exports.default=ZS});var $S=tt(Wy=>{"use strict";var BP=Wy&&Wy.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Wy,"__esModule",{value:!0});var UP=BP(CD()),xD={};Wy.default=i=>{if(i.length===0)return{width:0,height:0};if(xD[i])return xD[i];let o=UP.default(i),a=i.split(`
`).length;return xD[i]={width:o,height:a},{width:o,height:a}}});var eT=tt(Vy=>{"use strict";var jP=Vy&&Vy.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Vy,"__esModule",{value:!0});var Vi=jP($p()),zP=(i,o)=>{"position"in o&&i.setPositionType(o.position==="absolute"?Vi.default.POSITION_TYPE_ABSOLUTE:Vi.default.POSITION_TYPE_RELATIVE)},HP=(i,o)=>{"marginLeft"in o&&i.setMargin(Vi.default.EDGE_START,o.marginLeft||0),"marginRight"in o&&i.setMargin(Vi.default.EDGE_END,o.marginRight||0),"marginTop"in o&&i.setMargin(Vi.default.EDGE_TOP,o.marginTop||0),"marginBottom"in o&&i.setMargin(Vi.default.EDGE_BOTTOM,o.marginBottom||0)},qP=(i,o)=>{"paddingLeft"in o&&i.setPadding(Vi.default.EDGE_LEFT,o.paddingLeft||0),"paddingRight"in o&&i.setPadding(Vi.default.EDGE_RIGHT,o.paddingRight||0),"paddingTop"in o&&i.setPadding(Vi.default.EDGE_TOP,o.paddingTop||0),"paddingBottom"in o&&i.setPadding(Vi.default.EDGE_BOTTOM,o.paddingBottom||0)},WP=(i,o)=>{var a;"flexGrow"in o&&i.setFlexGrow((a=o.flexGrow)!==null&&a!==void 0?a:0),"flexShrink"in o&&i.setFlexShrink(typeof o.flexShrink=="number"?o.flexShrink:1),"flexDirection"in o&&(o.flexDirection==="row"&&i.setFlexDirection(Vi.default.FLEX_DIRECTION_ROW),o.flexDirection==="row-reverse"&&i.setFlexDirection(Vi.default.FLEX_DIRECTION_ROW_REVERSE),o.flexDirection==="column"&&i.setFlexDirection(Vi.default.FLEX_DIRECTION_COLUMN),o.flexDirection==="column-reverse"&&i.setFlexDirection(Vi.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in o&&(typeof o.flexBasis=="number"?i.setFlexBasis(o.flexBasis):typeof o.flexBasis=="string"?i.setFlexBasisPercent(Number.parseInt(o.flexBasis,10)):i.setFlexBasis(NaN)),"alignItems"in o&&((o.alignItems==="stretch"||!o.alignItems)&&i.setAlignItems(Vi.default.ALIGN_STRETCH),o.alignItems==="flex-start"&&i.setAlignItems(Vi.default.ALIGN_FLEX_START),o.alignItems==="center"&&i.setAlignItems(Vi.default.ALIGN_CENTER),o.alignItems==="flex-end"&&i.setAlignItems(Vi.default.ALIGN_FLEX_END)),"alignSelf"in o&&((o.alignSelf==="auto"||!o.alignSelf)&&i.setAlignSelf(Vi.default.ALIGN_AUTO),o.alignSelf==="flex-start"&&i.setAlignSelf(Vi.default.ALIGN_FLEX_START),o.alignSelf==="center"&&i.setAlignSelf(Vi.default.ALIGN_CENTER),o.alignSelf==="flex-end"&&i.setAlignSelf(Vi.default.ALIGN_FLEX_END)),"justifyContent"in o&&((o.justifyContent==="flex-start"||!o.justifyContent)&&i.setJustifyContent(Vi.default.JUSTIFY_FLEX_START),o.justifyContent==="center"&&i.setJustifyContent(Vi.default.JUSTIFY_CENTER),o.justifyContent==="flex-end"&&i.setJustifyContent(Vi.default.JUSTIFY_FLEX_END),o.justifyContent==="space-between"&&i.setJustifyContent(Vi.default.JUSTIFY_SPACE_BETWEEN),o.justifyContent==="space-around"&&i.setJustifyContent(Vi.default.JUSTIFY_SPACE_AROUND))},VP=(i,o)=>{var a,p;"width"in o&&(typeof o.width=="number"?i.setWidth(o.width):typeof o.width=="string"?i.setWidthPercent(Number.parseInt(o.width,10)):i.setWidthAuto()),"height"in o&&(typeof o.height=="number"?i.setHeight(o.height):typeof o.height=="string"?i.setHeightPercent(Number.parseInt(o.height,10)):i.setHeightAuto()),"minWidth"in o&&(typeof o.minWidth=="string"?i.setMinWidthPercent(Number.parseInt(o.minWidth,10)):i.setMinWidth((a=o.minWidth)!==null&&a!==void 0?a:0)),"minHeight"in o&&(typeof o.minHeight=="string"?i.setMinHeightPercent(Number.parseInt(o.minHeight,10)):i.setMinHeight((p=o.minHeight)!==null&&p!==void 0?p:0))},GP=(i,o)=>{"display"in o&&i.setDisplay(o.display==="flex"?Vi.default.DISPLAY_FLEX:Vi.default.DISPLAY_NONE)},YP=(i,o)=>{if("borderStyle"in o){let a=typeof o.borderStyle=="string"?1:0;i.setBorder(Vi.default.EDGE_TOP,a),i.setBorder(Vi.default.EDGE_BOTTOM,a),i.setBorder(Vi.default.EDGE_LEFT,a),i.setBorder(Vi.default.EDGE_RIGHT,a)}};Vy.default=(i,o={})=>{zP(i,o),HP(i,o),qP(i,o),WP(i,o),VP(i,o),GP(i,o),YP(i,o)}});var nT=tt((UH,tT)=>{"use strict";tT.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:[ Line truncated
`);for(let[O,C]of[...p].entries()){if(_+=C,MD.has(C)){let H=parseFloat(/\d[^m]*/.exec(p.slice(O,O+4)));t=H===oI?null:H}let U=uI.codes.get(Number(t));t&&U&&(p[O+1]===`
`?_+=vT(U):C===`
`&&(_+=vT(t)))}return _};hT.exports=(i,o,a)=>String(i).normalize().replace(/\r\n/g,`
`).split(`
`).map(p=>aI(p,o,a)).join(`
`)});var _T=tt((VH,yT)=>{"use strict";var gT="[\uD800-\uDBFF][\uDC00-\uDFFF]",fI=i=>i&&i.exact?new RegExp(`^${gT}$`):new RegExp(gT,"g");yT.exports=fI});var ND=tt((GH,ET)=>{"use strict";var cI=wD(),dI=_T(),DT=H_(),wT=["","\x9B"],q_=i=>`${wT[0]}[${i}m`,ST=(i,o,a)=>{let p=[];i=[...i];for(let _ of i){let t=_;_.match(";")&&(_=_.split(";")[0][0]+"0");let k=DT.codes.get(parseInt(_,10));if(k){let L=i.indexOf(k.toString());L>=0?i.splice(L,1):p.push(q_(o?k:t))}else if(o){p.push(q_(0));break}else p.push(q_(t))}if(o&&(p=p.filter((_,t)=>p.indexOf(_)===t),a!==void 0)){let _=q_(DT.codes.get(parseInt(a,10)));p=p.reduce((t,k)=>k===_?[k,...t]:[...t,k],[])}return p.join("")};ET.exports=(i,o,a)=>{let p=[...i.normalize()],_=[];a=typeof a=="number"?a:p.length;let t=!1,k,L=0,O="";for(let[C,U]of p.entries()){let H=!1;if(wT.includes(U)){let W=/\d[^m]*/.exec(i.slice(C,C+18));k=W&&W.length>0?W[0]:void 0,L<a&&(t=!0,k!==void 0&&_.push(k))}else t&&U==="m"&&(t=!1,H=!0);if(!t&&!H&&++L,!dI({exact:!0}).test(U)&&cI(U.codePointAt())&&++L,L>o&&L<=a)O+=U;else if(L===o&&!t&&k!==void 0)O=ST(_);else if(L>=a){O+=ST(_,!0,k);break}}return O}});var CT=tt((YH,TT)=>{"use strict";var d2=ND(),pI=U_();function W_(i,o,a){if(i.charAt(o)===" ")return o;for(let p=1;p<=3;p++)if(a){if(i.charAt(o+p)===" ")return o+p}else if(i.charAt(o-p)===" ")return o-p;return o}TT.exports=(i,o,a)=>{a=Ht({position:"end",preferTruncationOnSpace:!1},a);let{position:p,space:_,preferTruncationOnSpace:t}=a,k="\u2026",L=1;if(typeof i!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof i}`);if(typeof o!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof o}`);if(o<1)return"";if(o===1)return k;let O=pI(i);if(O<=o)return i;if(p==="start"){if(t){let C=W_(i,O-o+1,!0);return k+d2(i,C,O).trim()}return _===!0&&(k+=" ",L=2),k+d2(i,O-o+L,O)}if(p==="middle"){_===!0&&(k=" "+k+" ",L=3);let C=Math.floor(o/2);if(t){let U=W_(i,C),H=W_(i,O-(o-C)+1,!0);return d2(i,0,U)+k+d2(i,H,O).trim()}return d2(i,0,C)+k+d2(i,O-(o-C)+L,O)}if(p==="end"){if(t){let C=W_(i,o-1);return d2(i,0,C)+k}return _===!0&&(k=" "+k,L=2),d2(i,0,o-L)+k}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${p}`)}});var FD=tt(Ky=>{"use strict";var xT=Ky&&Ky.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Ky,"__esModule",{value:!0});var hI=xT(mT()),vI=xT(CT()),LD={};Ky.default=(i,o,a)=>{let p=i+String(o)+String(a);if(LD[p])return LD[p];let _=i;if(a==="wrap"&&(_=hI.default(i,o,{trim:!1,hard:!0})),a.startsWith("truncate")){let t="end";a==="truncate-middle"&&(t="middle"),a==="truncate-start"&&(t="start"),_=vI.default(i,o,{position:t})}return LD[p]=_,_}});var ID=tt(PD=>{"use strict";Object.defineProperty(PD,"__esModule",{value:!0});var RT=i=>{let o="";if(i.childNodes.length>0)for(let a of i.childNodes){let p="";a.nodeName==="#text"?p=a.nodeValue:((a.nodeName==="ink-text"||a.nodeName==="ink-virtual-text")&&(p=RT(a)),p.length>0&&typeof a.internal_transform=="function"&&(p=a.internal_transform(p))),o+=p}return o};PD.default=RT});var bD=tt(c0=>{"use strict";var Xy=c0&&c0.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(c0,"__esModule",{value:!0});c0.setTextNodeValue=c0.createTextNode=c0.setStyle=c0.setAttribute=c0.removeChildNode=c0.insertBeforeNode=c0.appendChildNode=c0.createNode=c0.TEXT_NAME=void 0;var mI=Xy($p()),AT=Xy($S()),yI=Xy(eT()),gI=Xy(FD()),_I=Xy(ID());c0.TEXT_NAME="#text";c0.createNode=i=>{var o;let a={nodeName:i,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:i==="ink-virtual-text"?void 0:mI.default.Node.create()};return i==="ink-text"&&((o=a.yogaNode)===null||o===void 0||o.setMeasureFunc(EI.bind(null,a))),a};c0.appendChildNode=(i,o)=>{var a;o.parentNode&&c0.removeChildNode(o.parentNode,o),o.parentNode=i,i.childNodes.push(o),o.yogaNode&&((a=i.yogaNode)===null||a===void 0||a.insertChild(o.yogaNode,i.yogaNode.getChildCount())),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&V_(i)};c0.insertBeforeNode=(i,o,a)=>{var p,_;o.parentNode&&c0.removeChildNode(o.parentNode,o),o.parentNode=i;let t=i.childNodes.indexOf(a);if(t>=0){i.childNodes.splice(t,0,o),o.yogaNode&&((p=i.yogaNode)===null||p===void 0||p.insertChild(o.yogaNode,t));return}i.childNodes.push(o),o.yogaNode&&((_=i.yogaNode)===null||_===void 0||_.insertChild(o.yogaNode,i.yogaNode.getChildCount())),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&V_(i)};c0.removeChildNode=(i,o)=>{var a,p;o.yogaNode&&((p=(a=o.parentNode)===null||a===void 0?void 0:a.yogaNode)===null||p===void 0||p.removeChild(o.yogaNode)),o.parentNode=null;let _=i.childNodes.indexOf(o);_>=0&&i.childNodes.splice(_,1),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&V_(i)};c0.setAttribute=(i,o,a)=>{i.attributes[o]=a};c0.setStyle=(i,o)=>{i.style=o,i.yogaNode&&yI.default(i.yogaNode,o)};c0.createTextNode=i=>{let o={nodeName:"#text",nodeValue:i,yogaNode:void 0,parentNode:null,style:{}};return c0.seLine truncated
`).join(`\r
`)),_.removeListener("error",e3),C.setSocket(_,t,this.options.maxPayload),this.clients&&(this.clients.add(C),C.on("close",()=>this.clients.delete(C))),k(C,p)}};SC.exports=TC;function Tb(i,o){for(let a of Object.keys(o))i.on(a,o[a]);return function(){for(let p of Object.keys(o))i.removeListener(p,o[p])}}function Cb(i){i.emit("close")}function e3(){this.destroy()}function Q_(i,o,a,p){i.writable&&(a=a||$D[o],p=Ht({Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(a)},p),i.write(`HTTP/1.1 ${o} ${$D[o]}\r
`+Object.keys(p).map(_=>`${_}: ${p[_]}`).join(`\r
`)+`\r
\r
`+a)),i.removeListener("error",e3),i.destroy()}function xb(i){return i.trim()}});var RC=tt((aq,xC)=>{"use strict";var rg=ZD();rg.createWebSocketStream=wC();rg.Server=CC();rg.Receiver=VD();rg.Sender=GD();xC.exports=rg});var AC=tt(J_=>{"use strict";var Rb=J_&&J_.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(J_,"__esModule",{value:!0});var Ab=Rb(RC()),ig=global;ig.WebSocket||(ig.WebSocket=Ab.default);ig.window||(ig.window=global);ig.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__=[{type:1,value:7,isEnabled:!0},{type:2,value:"InternalApp",isEnabled:!0,isValid:!0},{type:2,value:"InternalAppContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdoutContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStderrContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdinContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalFocusContext",isEnabled:!0,isValid:!0}]});var OC=tt((Z_,t3)=>{(function(i,o){typeof Z_=="object"&&typeof t3=="object"?t3.exports=o():typeof define=="function"&&define.amd?define([],o):typeof Z_=="object"?Z_.ReactDevToolsBackend=o():i.ReactDevToolsBackend=o()})(window,function(){return function(i){var o={};function a(p){if(o[p])return o[p].exports;var _=o[p]={i:p,l:!1,exports:{}};return i[p].call(_.exports,_,_.exports,a),_.l=!0,_.exports}return a.m=i,a.c=o,a.d=function(p,_,t){a.o(p,_)||Object.defineProperty(p,_,{enumerable:!0,get:t})},a.r=function(p){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(p,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(p,"__esModule",{value:!0})},a.t=function(p,_){if(1&_&&(p=a(p)),8&_||4&_&&typeof p=="object"&&p&&p.__esModule)return p;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:p}),2&_&&typeof p!="string")for(var k in p)a.d(t,k,function(L){return p[L]}.bind(null,k));return t},a.n=function(p){var _=p&&p.__esModule?function(){return p.default}:function(){return p};return a.d(_,"a",_),_},a.o=function(p,_){return Object.prototype.hasOwnProperty.call(p,_)},a.p="",a(a.s=20)}([function(i,o,a){"use strict";i.exports=a(12)},function(i,o,a){"use strict";var p=Object.getOwnPropertySymbols,_=Object.prototype.hasOwnProperty,t=Object.prototype.propertyIsEnumerable;function k(L){if(L==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(L)}i.exports=function(){try{if(!Object.assign)return!1;var L=new String("abc");if(L[5]="de",Object.getOwnPropertyNames(L)[0]==="5")return!1;for(var O={},C=0;C<10;C++)O["_"+String.fromCharCode(C)]=C;if(Object.getOwnPropertyNames(O).map(function(H){return O[H]}).join("")!=="0123456789")return!1;var U={};return"abcdefghijklmnopqrst".split("").forEach(function(H){U[H]=H}),Object.keys(Object.assign({},U)).join("")==="abcdefghijklmnopqrst"}catch(H){return!1}}()?Object.assign:function(L,O){for(var C,U,H=k(L),W=1;W<arguments.length;W++){for(var ne in C=Object(arguments[W]))_.call(C,ne)&&(H[ne]=C[ne]);if(p){U=p(C);for(var m=0;m<U.length;m++)t.call(C,U[m])&&(H[U[m]]=C[U[m]])}}return H}},function(i,o,a){(function(p){function _(me){return(_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ie){return typeof ie}:function(ie){return ie&&typeof Symbol=="function"&&ie.constructor===Symbol&&ie!==Symbol.prototype?"symbol":typeof ie})(me)}var t=/^\s+|\s+$/g,k=/^[-+]0x[0-9a-f]+$/i,L=/^0b[01]+$/i,O=/^0o[0-7]+$/i,C=parseInt,U=(p===void 0?"undefined":_(p))=="object"&&p&&p.Object===Object&&p,H=(typeof self=="undefined"?"undefined":_(self))=="object"&&self&&self.Object===Object&&self,W=U||H||Function("return this")(),ne=Object.prototype.toString,m=Math.max,he=Math.min,Ee=function(){return W.Date.now()};function ve(me,ie,Oe){var je,qe,yt,gt,Xe,ut,We=0,Ft=!1,Jt=!1,rt=!0;if(typeof me!="function")throw new TypeError("Expected a function");function Q(Rt){var nn=je,an=qe;return je=qe=void 0,We=Rt,gt=me.apply(an,nn)}function fe(Rt){return We=Rt,Xe=setTimeout(oe,ie),Ft?Q(Rt):gt}function xe(Rt){var nn=Rt-ut;return ut===void 0||nn>=ie||nn<0||Jt&&Rt-We>=yt}function oe(){var Rt=Ee();if(xe(Rt))return ze(Rt);Xe=setTimeout(oe,function(nn){var an=ie-(nn-ut);return Jt?he(an,yt-(nn-We)):an}(Rt))}function ze(Rt){return Xe=void 0,rt&&je?Q(Rt):(je=qe=void 0,gt)}function ct(){var Rt=Ee(),nn=xe(Rt);if(je=arguments,qe=this,ut=Rt,nn){if(Xe===void 0)return fe(ut);if(Jt)return Xe=setTimeout(oe,ie),Q(ut)}return Xe===void 0&&(Xe=setTimeout(oe,ie)),gt}return ie=pe(ie)||0,se(Oe)&&(Ft=!!Oe.leading,yt=(Jt="maxWait"in Oe)?m(pe(Oe.maxWait)||0,ie):yt,rt="trailing"in Oe?!!Oe.trailing:rt),ct.cancel=function(){Xe!==void 0&&clearTimeout(Xe),We=0,je=ut=qe=Xe=void 0},ct.flush=function(){return Xe===void 0?gt:ze(Ee())},ct}function se(me){var ie=_(me);return!!me&&(ie=="object"||ie=="function")}function De(me){return _(me)=="symbol"||function(ie){return!!ie&&_(ie)=="object"}(me)&&ne.call(me)=="[object Symbol]"}function pe(me){if(typeof me=="number")return me;if(De(me))return NaN;if(se(me)){var ie=typeof me.valueOf=="function"?me.val Line truncated
/**
* IMPORTANT: When new theme variables are added below\u2013 also add them to SettingsContext updateThemeVariables()
*/
/* Light theme */
--light-color-attribute-name: #ef6632;
--light-color-attribute-name-not-editable: #23272f;
--light-color-attribute-name-inverted: rgba(255, 255, 255, 0.7);
--light-color-attribute-value: #1a1aa6;
--light-color-attribute-value-inverted: #ffffff;
--light-color-attribute-editable-value: #1a1aa6;
--light-color-background: #ffffff;
--light-color-background-hover: rgba(0, 136, 250, 0.1);
--light-color-background-inactive: #e5e5e5;
--light-color-background-invalid: #fff0f0;
--light-color-background-selected: #0088fa;
--light-color-button-background: #ffffff;
--light-color-button-background-focus: #ededed;
--light-color-button: #5f6673;
--light-color-button-disabled: #cfd1d5;
--light-color-button-active: #0088fa;
--light-color-button-focus: #23272f;
--light-color-button-hover: #23272f;
--light-color-border: #eeeeee;
--light-color-commit-did-not-render-fill: #cfd1d5;
--light-color-commit-did-not-render-fill-text: #000000;
--light-color-commit-did-not-render-pattern: #cfd1d5;
--light-color-commit-did-not-render-pattern-text: #333333;
--light-color-commit-gradient-0: #37afa9;
--light-color-commit-gradient-1: #63b19e;
--light-color-commit-gradient-2: #80b393;
--light-color-commit-gradient-3: #97b488;
--light-color-commit-gradient-4: #abb67d;
--light-color-commit-gradient-5: #beb771;
--light-color-commit-gradient-6: #cfb965;
--light-color-commit-gradient-7: #dfba57;
--light-color-commit-gradient-8: #efbb49;
--light-color-commit-gradient-9: #febc38;
--light-color-commit-gradient-text: #000000;
--light-color-component-name: #6a51b2;
--light-color-component-name-inverted: #ffffff;
--light-color-component-badge-background: rgba(0, 0, 0, 0.1);
--light-color-component-badge-background-inverted: rgba(255, 255, 255, 0.25);
--light-color-component-badge-count: #777d88;
--light-color-component-badge-count-inverted: rgba(255, 255, 255, 0.7);
--light-color-context-background: rgba(0,0,0,.9);
--light-color-context-background-hover: rgba(255, 255, 255, 0.1);
--light-color-context-background-selected: #178fb9;
--light-color-context-border: #3d424a;
--light-color-context-text: #ffffff;
--light-color-context-text-selected: #ffffff;
--light-color-dim: #777d88;
--light-color-dimmer: #cfd1d5;
--light-color-dimmest: #eff0f1;
--light-color-error-background: hsl(0, 100%, 97%);
--light-color-error-border: hsl(0, 100%, 92%);
--light-color-error-text: #ff0000;
--light-color-expand-collapse-toggle: #777d88;
--light-color-link: #0000ff;
--light-color-modal-background: rgba(255, 255, 255, 0.75);
--light-color-record-active: #fc3a4b;
--light-color-record-hover: #3578e5;
--light-color-record-inactive: #0088fa;
--light-color-scroll-thumb: #c2c2c2;
--light-color-scroll-track: #fafafa;
--light-color-search-match: yellow;
--light-color-search-match-current: #f7923b;
--light-color-selected-tree-highlight-active: rgba(0, 136, 250, 0.1);
--light-color-selected-tree-highlight-inactive: rgba(0, 0, 0, 0.05);
--light-color-shadow: rgba(0, 0, 0, 0.25);
--light-color-tab-selected-border: #0088fa;
--light-color-text: #000000;
--light-color-text-invalid: #ff0000;
--light-color-text-selected: #ffffff;
--light-color-toggle-background-invalid: #fc3a4b;
--light-color-toggle-background-on: #0088fa;
--light-color-toggle-background-off: #cfd1d5;
--light-color-toggle-text: #ffffff;
--light-color-tooltip-background: rgba(0, 0, 0, 0.9);
--light-color-tooltip-text: #ffffff;
/* Dark theme */
--dark-color-attribute-name: #9d87d2;
--dark-color-attribute-name-not-editable: #ededed;
--dark-color-attribute-name-inverted: #282828;
--dark-color-attribute-value: #cedae0;
--dark-color-attribute-value-inverted: #ffffff;
--dark-color-attribute-editable-value: yellow;
--dark-color-background: #282c34;
--dark-color-background-hover: rgba(255, 255, 255, 0.1);
--dark-color-background-inactive: #3d424a;
--dark-color-background-invalid: #5c0000;
--dark-color-background-selected: #178fb9;
--dark-color-button-background: #282c34;
--dark-color-button-background-focus: #3d424a;
--dark-color-button: #afb3b9;
--dark-color-button-active: #61dafb;
--dark-color-button-disabled: #4f5766;
--dark-color-button-focus: #a2e9fc;
--dark-color-button-hover: #ededed;
--dark-color-border: #3d424a;
--dark-color-commit-did-not-render-fill: #777d88;
--dark-color-commit-did-not-render-fill-text: #000000;
--dark-color-commit-did-not-render-pattern: #666c77;
--dark-color-commit-did-not-render-pattern-text: #ffffff;
--dark-color-commit-gradient-0: #37afa9;
--dark-color-commit-gradient-1: #63b19e;
--dark-color-commit-gradient-2: #80b393;
--dark-color-commit-gradient-3: #97b488;
--dark-color-commit-gradient-4: #abb67d;
--dark-color-commit-gradient-5: #beb771;
--dark-color-commit-gradient-6: #cfb965;
--dark-color-commit-gradient-7: #dfba57;
--dark-color-commit-gradient-8: #efbb49;
--dark-color-commit-gradient-9: #febc38;
--dark-color-commit-gradient-text: #000000;
--dark-color-component-name: #61dafb;
--dark-color-component-name-inverted: #282828;
--dark-color-component-badge-background: rgba(255, 255, 255, 0.25);
--dark-color-component-badge-background-inverted: rgba(0, 0, 0, 0.25);
--dark-color-component-badge-count: #8f949d;
--dark-color-component-badge-count-inverted: rgba(255, 255, 255, 0.7);
--dark-color-context-background: rgba(255,255,255,.9);
--dark-color-context-background-hover: rgba(0, 136, 250, 0.1);
--dark-color-context-background-selected: #0088fa;
--dark-color-context-border: #eeeeee;
--dark-color-context-text: #000000;
--dark-color-context-text-selected: #ffffff;
--dark-color-dim: #8f949d;
--dark-color-dimmer: #777d88;
--dark-color-dimmest: #4f5766;
--dark-color-error-background: #200;
--dark-color-error-border: #900;
--dark-color-error-text: #f55;
--dark-color-expand-collapse-toggle: #8f949d;
--dark-color-link: #61dafb;
--dark-color-modal-background: rgba(0, 0, 0, 0.75);
--dark-color-record-active: #fc3a4b;
--dark-color-record-hover: #a2e9fc;
--dark-color-record-inactive: #61dafb;
--dark-color-scroll-thumb: #afb3b9;
--dark-color-scroll-track: #313640;
--dark-color-search-match: yellow;
--dark-color-search-match-current: #f7923b;
--dark-color-selected-tree-highlight-active: rgba(23, 143, 185, 0.15);
--dark-color-selected-tree-highlight-inactive: rgba(255, 255, 255, 0.05);
--dark-color-shadow: rgba(0, 0, 0, 0.5);
--dark-color-tab-selected-border: #178fb9;
--dark-color-text: #ffffff;
--dark-color-text-invalid: #ff8080;
--dark-color-text-selected: #ffffff;
--dark-color-toggle-background-invalid: #fc3a4b;
--dark-color-toggle-background-on: #178fb9;
--dark-color-toggle-background-off: #777d88;
--dark-color-toggle-text: #ffffff;
--dark-color-tooltip-background: rgba(255, 255, 255, 0.9);
--dark-color-tooltip-text: #000000;
/* Font smoothing */
--light-font-smoothing: auto;
--dark-font-smoothing: antialiased;
--font-smoothing: auto;
/* Compact density */
--compact-font-size-monospace-small: 9px;
--compact-font-size-monospace-normal: 11px;
--compact-font-size-monospace-large: 15px;
--compact-font-size-sans-small: 10px;
--compact-font-size-sans-normal: 12px;
--compact-font-size-sans-large: 14px;
--compact-line-height-data: 18px;
--compact-root-font-size: 16px;
/* Comfortable density */
--comfortable-font-size-monospace-small: 10px;
--comfortable-font-size-monospace-normal: 13px;
--comfortable-font-size-monospace-large: 17px;
--comfortable-font-size-sans-small: 12px;
--comfortable-font-size-sans-normal: 14px;
--comfortable-font-size-sans-large: 16px;
--comfortable-line-height-data: 22px;
--comfortable-root-font-size: 20px;
/* GitHub.com system fonts */
--font-family-monospace: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo,
Courier, monospace;
--font-family-sans: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica,
Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
/* Constant values shared between JS and CSS */
--interaction-commit-size: 10px;
--interaction-label-width: 200px;
}
`},function(i,o,a){"use strict";function p(O){var C=this;if(C instanceof p||(C=new p),C.tail=null,C.head=null,C.length=0,O&&typeof O.forEach=="function")O.forEach(function(W){C.push(W)});else if(arguments.length>0)for(var U=0,H=arguments.length;U<H;U++)C.push(arguments[U]);return C}function _(O,C,U){var H=C===O.head?new L(U,null,C,O):new L(U,C,C.next,O);return H.next===null&&(O.tail=H),H.prev===null&&(O.head=H),O.length++,H}function t(O,C){O.tail=new L(C,O.tail,null,O),O.head||(O.head=O.tail),O.length++}function k(O,C){O.head=new L(C,null,O.head,O),O.tail||(O.tail=O.head),O.length++}function L(O,C,U,H){if(!(this instanceof L))return new L(O,C,U,H);this.list=H,this.value=O,C?(C.next=this,this.prev=C):this.prev=null,U?(U.prev=this,this.next=U):this.next=null}i.exports=p,p.Node=L,p.create=p,p.prototype.removeNode=function(O){if(O.list!==this)throw new Error("removing node which does not belong to this list");var C=O.next,U=O.prev;return C&&(C.prev=U),U&&(U.next=C),O===this.head&&(this.head=C),O===this.tail&&(this.tail=U),O.list.length--,O.next=null,O.prev=null,O.list=null,C},p.prototype.unshiftNode=function(O){if(O!==this.head){O.list&&O.list.removeNode(O);var C=this.head;O.list=this,O.next=C,C&&(C.prev=O),this.head=O,this.tail||(this.tail=O),this.length++}},p.prototype.pushNode=function(O){if(O!==this.tail){O.list&&O.list.removeNode(O);var C=this.tail;O.list=this,O.prev=C,C&&(C.next=O),this.tail=O,this.head||(this.head=O),this.length++}},p.prototype.push=function(){for(var O=0,C=arguments.length;O<C;O++)t(this,arguments[O]);return this.length},p.prototype.unshift=function(){for(var O=0,C=arguments.length;O<C;O++)k(this,arguments[O]);return this.length},p.prototype.pop=function(){if(this.tail){var O=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,O}},p.prototype.shift=function(){if(this.head){var O=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,O}},p.prototype.forEach=function(O,C){C=C||this;for(var U=this.head,H=0;U!==null;H++)O.call(C,U.value,H,this),U=U.next},p.prototype.forEachReverse=function(O,C){C=C||this;for(var U=this.tail,H=this.length-1;U!==null;H--)O.call(C,U.value,H,this),U=U.prev},p.prototype.get=function(O){for(var C=0,U=this.head;U!==null&&C<O;C++)U=U.next;if(C===O&&U!==null)return U.value},p.prototype.getReverse=function(O){for(var C=0,U=this.tail;U!==null&&C<O;C++)U=U.prev;if(C===O&&U!==null)return U.value},p.prototype.map=function(O,C){C=C||this;for(var U=new p,H=this.head;H!==null;)U.push(O.call(C,H.value,this)),H=H.next;return U},p.prototype.mapReverse=function(O,C){C=C||this;for(var U=new p,H=this.tail;H!==null;)U.push(O.call(C,H.value,this)),H=H.prev;return U},p.prototype.reduce=function(O,C){var U,H=this.head;if(arguments.length>1)U=C;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");H=this.head.next,U=this.head.value}for(var W=0;H!==null;W++)U=O(U,H.value,W),H=H.next;return U},p.prototype.reduceReverse=function(O,C){var U,H=this.tail;if(arguments.length>1)U=C;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");H=this.tail.prev,U=this.tail.value}for(var W=this.length-1;H!==null;W--)U=O(U,H.value,W),H=H.prev;return U},p.prototype.toArray=function(){for(var O=new Array(this.length),C=0,U=this.head;U!==null;C++)O[C]=U.value,U=U.next;return O},p.prototype.toArrayReverse=function(){for(var O=new Array(this.length),C=0,U=this.tail;U!==null;C++)O[C]=U.value,U=U.prev;return O},p.prototype.slice=function(O,C){(C=C||this.length)<0&&(C+=this.length),(O=O||0)<0&&(O+=this.length);var U=new p;if(C<O||C<0)return U;O<0&&(O=0),C>this.length&&(C=this.length);for(var H=0,W=this.head;W!==null&&H<O;H++)W=W.next;for(;W!==null&&H<C;H++,W=W.next)U.push(W.value);return U},p.prototype.sliceReverse=function(O,C){(C=C||this.length)<0&&(C+=this.length),(O=O||0)<0&&(O+=this.length);var U=new p;if(C<O||C<0)return U;O<0&&(O=0),C>this.length&&(C=this.length);for(var H=this.length,W=this.tail;W!==null&&H>C;H--)W=W.prev;for(;W!==null&&H>O;H--,W=W.prev)U.push(W.value);return U},p.prototype.splice=function(O,C){O>this.length&&(O=this.length-1),O<0&&(O=this.length+O);for(var U=0,H=this.head;H!==null&&U<O;U++)H=H.next;var W=[];for(U=0;H&&U<C;U++)W.push(H.value),H=this.removeNode(H);for(H===null&&(H=this.tail),H!==this.head&&H!==this.tail&&(H=H.prev),U=2;U<arguments.length;U++)H=_(this,H,arguments[U]);return W},p.prototype.reverse=function(){for(var O=this.head,C=this.tail,U=O;U!==null;U=U.prev){var H=U.prev;U.prev=U.next,U.next=H}return this.head=C,this.tail=O,this};try{a(11)(p)}catch(O){}},function(i,o,a){"use strict";i.exports=function(p){p.prototype[Symbol.iterator]=regeneratorRuntime.mark(function _(){var t;return regeneratorRuntime.wrap(function(k){for(;;)switch(k.prev=k.next){case 0:t=this.head;case 1:if(!t){k.next=7;break}return k.next=4,t.value;case 4:t=t.next,k.next=1;break;case 7:case"end":return k.stop()}},_,this)})}},function(i, Line truncated
`).filter(function(ne){return!!ne.match(U)},this).map(function(ne){ne.indexOf("(eval ")>-1&&(ne=ne.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(\),.*$)/g,""));var m=ne.replace(/^\s+/,"").replace(/\(eval code/g,"("),he=m.match(/ (\((.+):(\d+):(\d+)\)$)/),Ee=(m=he?m.replace(he[0],""):m).split(/\s+/).slice(1),ve=this.extractLocation(he?he[1]:Ee.pop()),se=Ee.join(" ")||void 0,De=["eval","<anonymous>"].indexOf(ve[0])>-1?void 0:ve[0];return new O({functionName:se,fileName:De,lineNumber:ve[1],columnNumber:ve[2],source:ne})},this)},parseFFOrSafari:function(W){return W.stack.split(`
`).filter(function(ne){return!ne.match(H)},this).map(function(ne){if(ne.indexOf(" > eval")>-1&&(ne=ne.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),ne.indexOf("@")===-1&&ne.indexOf(":")===-1)return new O({functionName:ne});var m=/((.*".+"[^@]*)?[^@]*)(?:@)/,he=ne.match(m),Ee=he&&he[1]?he[1]:void 0,ve=this.extractLocation(ne.replace(m,""));return new O({functionName:Ee,fileName:ve[0],lineNumber:ve[1],columnNumber:ve[2],source:ne})},this)},parseOpera:function(W){return!W.stacktrace||W.message.indexOf(`
`)>-1&&W.message.split(`
`).length>W.stacktrace.split(`
`).length?this.parseOpera9(W):W.stack?this.parseOpera11(W):this.parseOpera10(W)},parseOpera9:function(W){for(var ne=/Line (\d+).*script (?:in )?(\S+)/i,m=W.message.split(`
`),he=[],Ee=2,ve=m.length;Ee<ve;Ee+=2){var se=ne.exec(m[Ee]);se&&he.push(new O({fileName:se[2],lineNumber:se[1],source:m[Ee]}))}return he},parseOpera10:function(W){for(var ne=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,m=W.stacktrace.split(`
`),he=[],Ee=0,ve=m.length;Ee<ve;Ee+=2){var se=ne.exec(m[Ee]);se&&he.push(new O({functionName:se[3]||void 0,fileName:se[2],lineNumber:se[1],source:m[Ee]}))}return he},parseOpera11:function(W){return W.stack.split(`
`).filter(function(ne){return!!ne.match(C)&&!ne.match(/^Error created at/)},this).map(function(ne){var m,he=ne.split("@"),Ee=this.extractLocation(he.pop()),ve=he.shift()||"",se=ve.replace(/<anonymous function(: (\w+))?>/,"$2").replace(/\([^)]*\)/g,"")||void 0;ve.match(/\(([^)]*)\)/)&&(m=ve.replace(/^[^(]+\(([^)]*)\)$/,"$1"));var De=m===void 0||m==="[arguments not available]"?void 0:m.split(",");return new O({functionName:se,args:De,fileName:Ee[0],lineNumber:Ee[1],columnNumber:Ee[2],source:ne})},this)}}})=="function"?p.apply(o,_):p)===void 0||(i.exports=t)})()},function(i,o,a){var p,_,t;(function(k,L){"use strict";_=[],(t=typeof(p=function(){function O(se){return se.charAt(0).toUpperCase()+se.substring(1)}function C(se){return function(){return this[se]}}var U=["isConstructor","isEval","isNative","isToplevel"],H=["columnNumber","lineNumber"],W=["fileName","functionName","source"],ne=U.concat(H,W,["args"]);function m(se){if(se)for(var De=0;De<ne.length;De++)se[ne[De]]!==void 0&&this["set"+O(ne[De])](se[ne[De]])}m.prototype={getArgs:function(){return this.args},setArgs:function(se){if(Object.prototype.toString.call(se)!=="[object Array]")throw new TypeError("Args must be an Array");this.args=se},getEvalOrigin:function(){return this.evalOrigin},setEvalOrigin:function(se){if(se instanceof m)this.evalOrigin=se;else{if(!(se instanceof Object))throw new TypeError("Eval Origin must be an Object or StackFrame");this.evalOrigin=new m(se)}},toString:function(){var se=this.getFileName()||"",De=this.getLineNumber()||"",pe=this.getColumnNumber()||"",me=this.getFunctionName()||"";return this.getIsEval()?se?"[eval] ("+se+":"+De+":"+pe+")":"[eval]:"+De+":"+pe:me?me+" ("+se+":"+De+":"+pe+")":se+":"+De+":"+pe}},m.fromString=function(se){var De=se.indexOf("("),pe=se.lastIndexOf(")"),me=se.substring(0,De),ie=se.substring(De+1,pe).split(","),Oe=se.substring(pe+1);if(Oe.indexOf("@")===0)var je=/@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(Oe,""),qe=je[1],yt=je[2],gt=je[3];return new m({functionName:me,args:ie||void 0,fileName:qe,lineNumber:yt||void 0,columnNumber:gt||void 0})};for(var he=0;he<U.length;he++)m.prototype["get"+O(U[he])]=C(U[he]),m.prototype["set"+O(U[he])]=function(se){return function(De){this[se]=Boolean(De)}}(U[he]);for(var Ee=0;Ee<H.length;Ee++)m.prototype["get"+O(H[Ee])]=C(H[Ee]),m.prototype["set"+O(H[Ee])]=function(se){return function(De){if(pe=De,isNaN(parseFloat(pe))||!isFinite(pe))throw new TypeError(se+" must be a Number");var pe;this[se]=Number(De)}}(H[Ee]);for(var ve=0;ve<W.length;ve++)m.prototype["get"+O(W[ve])]=C(W[ve]),m.prototype["set"+O(W[ve])]=function(se){return function(De){this[se]=String(De)}}(W[ve]);return m})=="function"?p.apply(o,_):p)===void 0||(i.exports=t)})()},function(i,o,a){"use strict";i.exports=a(19)},function(i,o,a){"use strict";function p(oe){return(p=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ze){return typeof ze}:function(ze){return ze&&typeof Symbol=="function"&&ze.constructor===Symbol&&ze!==Symbol.prototype?"symbol":typeof ze})(oe)}var _=a(1),t=60103,k=60106;o.Fragment=60107,o.StrictMode=60108,o.Profiler=60114;var L=60109,O=60110,C=60112;o.Suspense=60113,o.unstable_SuspenseList=60120;var U=60115,H=60116,W=60121;if(o.unstable_DebugTracingMode=60129,o.unstable_LegacyHidden=60131,typeof Symbol=="function"&&Symbol.for){var ne=Symbol.for;t=ne("react.element"),k=ne("react.portal"),o.Fragment=ne("react.fragment"),o.StrictMode=ne("react.strict_mode"),o.Profiler=ne("react.profiler"),L=ne("react.provider"),O=ne("react.context"),C=ne("react.forward_ref"),o.Suspense=ne("react.suspense"),o.unstable_SuspenseList=ne("react.suspense_list"),U=ne("react.memo"),H=ne("react.lazy"),W=ne("react.block"),o.unstable_DebugTracingMode=ne("react.debug_trace_mode"),o.unstable_LegacyHidden=ne("react.legacy_hidden")}var m=typeof Symbol=="function"&&Symbol.iterator;function he(oe){for(var ze="https://reactjs.org/docs/error-decoder.html?invariant="+oe,ct=1;ct<arguments.length;ct++)ze+="&args[]="+encodeURIComponent(arguments[ct]);return"Minified React error #"+oe+"; visit "+ze+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var Ee={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ve={};function se(oe,ze,ct){this.props=oe,this.context=ze,this.refs=ve,this.updater=ct||Ee}function De(){}function pe(oe,ze,ct){this.props=oe,this.context=ze,this.refs=ve,this.updater=ct||Ee}se.prototype.isReactComponent={},se.prototype.setState=function(oe,ze){if(p(oe)!=="object"&&typeof oe!="function"&&oe!=null)throw Error(he(85));this.updater.enqueueSetState(this,oe,ze,"setState")},se.prototype.forceUpdate=function(oe){this.updater.enqueueForceUpdate(this,oe,"forceUpdate")},De.prototype=se.prototype;var me=pe.prototype=new De;me.constructor=pe,_(me,se.prototype),me.isPureReactComponent=!0;var ie={current:null},Oe=Object.prototype.hasOwnProperty,je={key:!0,ref:!0,__self:!0,__sou Line truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var ge,Re=!0,Z=!1;return{s:function(){G=B[Symbol.iterator]()},n:function(){var ke=G.next();return Re=ke.done,ke},e:function(ke){Z=!0,ge=ke},f:function(){try{Re||G.return==null||G.return()}finally{if(Z)throw ge}}}}function ie(B,z){(z==null||z>B.length)&&(z=B.length);for(var G=0,$=new Array(z);G<z;G++)$[G]=B[G];return $}function Oe(B,z){if(!(B instanceof z))throw new TypeError("Cannot call a class as a function")}function je(B,z){for(var G=0;G<z.length;G++){var $=z[G];$.enumerable=$.enumerable||!1,$.configurable=!0,"value"in $&&($.writable=!0),Object.defineProperty(B,$.key,$)}}function qe(B,z,G){return z&&je(B.prototype,z),G&&je(B,G),B}var yt=function(){function B(z,G){Oe(this,B),this.node=z.createElement("div"),this.border=z.createElement("div"),this.padding=z.createElement("div"),this.content=z.createElement("div"),this.border.style.borderColor=We.border,this.padding.style.borderColor=We.padding,this.content.style.backgroundColor=We.background,m()(this.node.style,{borderColor:We.margin,pointerEvents:"none",position:"fixed"}),this.node.style.zIndex="10000000",this.node.appendChild(this.border),this.border.appendChild(this.padding),this.padding.appendChild(this.content),G.appendChild(this.node)}return qe(B,[{key:"remove",value:function(){this.node.parentNode&&this.node.parentNode.removeChild(this.node)}},{key:"update",value:function(z,G){ut(G,"margin",this.node),ut(G,"border",this.border),ut(G,"padding",this.padding),m()(this.content.style,{height:z.height-G.borderTop-G.borderBottom-G.paddingTop-G.paddingBottom+"px",width:z.width-G.borderLeft-G.borderRight-G.paddingLeft-G.paddingRight+"px"}),m()(this.node.style,{top:z.top-G.marginTop+"px",left:z.left-G.marginLeft+"px"})}}]),B}(),gt=function(){function B(z,G){Oe(this,B),this.tip=z.createElement("div"),m()(this.tip.style,{display:"flex",flexFlow:"row nowrap",backgroundColor:"#333740",borderRadius:"2px",fontFamily:'"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace',fontWeight:"bold",padding:"3px 5px",pointerEvents:"none",position:"fixed",fontSize:"12px",whiteSpace:"nowrap"}),this.nameSpan=z.createElement("span"),this.tip.appendChild(this.nameSpan),m()(this.nameSpan.style,{color:"#ee78e6",borderRight:"1px solid #aaaaaa",paddingRight:"0.5rem",marginRight:"0.5rem"}),this.dimSpan=z.createElement("span"),this.tip.appendChild(this.dimSpan),m()(this.dimSpan.style,{color:"#d7d7d7"}),this.tip.style.zIndex="10000000",G.appendChild(this.tip)}return qe(B,[{key:"remove",value:function(){this.tip.parentNode&&this.tip.parentNode.removeChild(this.tip)}},{key:"updateText",value:function(z,G,$){this.nameSpan.textContent=z,this.dimSpan.textContent=Math.round(G)+"px \xD7 "+Math.round($)+"px"}},{key:"updatePosition",value:function(z,G){var $=this.tip.getBoundingClientRect(),Te=function(ge,Re,Z){var ke,Qe=Math.max(Z.height,20),ht=Math.max(Z.width,60);ke=ge.top+ge.height+Qe<=Re.top+Re.height?ge.top+ge.height<Re.top+0?Re.top+5:ge.top+ge.height+5:ge.top-Qe<=Re.top+Re.height?ge.top-Qe-5<Re.top+5?Re.top+5:ge.top-Qe-5:Re.top+Re.height-Qe-5;var ue=ge.left+5;return ge.left<Re.left&&(ue=Re.left+5),ge.left+ht>Re.left+Re.width&&(ue=Re.left+Re.width-ht-5),{style:{top:ke+="px",left:ue+="px"}}}(z,G,{width:$.width,height:$.height});m()(this.tip.style,Te.style)}}]),B}(),Xe=function(){function B(){Oe(this,B);var z=window.__REACT_DEVTOOLS_TARGET_WINDOW__||window;this.window=z;var G=window.__REACT_DEVTOOLS_TARGET_WINDOW__||window;this.tipBoundsWindow=G;var $=z.document;this.container=$.createElement("div"),this.container.style.zIndex="10000000",this.tip=new gt($,this.container),this.rects=[],$.body.appendChild(this.container)}return qe(B,[{key:"remove",value:function(){this.tip.remove(),this.rects.forEach(function(z){z.remove()}),this.rects.length=0,this.container.parentNode&&this.container.parentNode.removeChild(this.container)}},{key:"inspect",value:function(z,G){for(var $=this,Te=z.filter(function(Ct){return Ct.nodeType===Node.ELEMENT_NODE});this.rects.length>Te.length;)this.rects.pop().remove();if(Te.length!==0){for(;this.rects.length<Te.length;)this.rects.push(new yt(this.window.document,this.container));var ge={top:Number.POSITIVE_INFINITY,right:Number.NEGATIVE_INFINITY,bottom:Number.NEGATIVE_INFINITY,left:Number.POSITIVE_INFINITY};if(Te.forEach(function(Ct,Mt){var It=De(Ct,$.window),sn=pe(Ct);ge.top=Math.min(ge.top,It.top-sn.marginTop),ge.right=Math.max(ge.right,It.left+It.width+sn.marginRight),ge.bottom=Math.max(ge.bottom,It.top+It.height+sn.marginBottom),ge.left=Math.min(ge.left,It.left-sn.marginLeft),$.rects[Mt].update(It,sn)}),!G){G=Te[0].nodeName.toLowerCase();var Re=Te[0],Z=Re.ownerDocument.defaultView.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(Z!=null&&Z.rendererInterfaces!=null){var ke,Qe=null,ht=me(Z.rendererInterfaces.values());try{for(ht.s();!(ke=ht.n()).done;){var ue=ke.value,He=ue.getFiberIDForNative(Re,!0);if(He!==null){Qe=ue.getDisplayNameForFiberID(He,!0);break}}}catch(Ct){ht.e(Ct) Line truncated
xx-background-color: red;
xx-opacity: 0.5;
bottom: 0;
left: 0;
pointer-events: none;
position: fixed;
right: 0;
top: 0;
z-index: 1000000000;
`;var $=window.document.documentElement;$.insertBefore(ze,$.firstChild)}();var z=ze;z.width=window.innerWidth,z.height=window.innerHeight;var G=z.getContext("2d");G.clearRect(0,0,z.width,z.height),B.forEach(function($){var Te=$.count,ge=$.rect;if(ge!==null){var Re=Math.min(oe.length-1,Te-1);(function(Z,ke,Qe){var ht=ke.height,ue=ke.left,He=ke.top,nt=ke.width;Z.lineWidth=1,Z.strokeStyle="#f0f0f0",Z.strokeRect(ue-1,He-1,nt+2,ht+2),Z.lineWidth=1,Z.strokeStyle="#f0f0f0",Z.strokeRect(ue+1,He+1,nt-1,ht-1),Z.strokeStyle=Qe,Z.setLineDash([0]),Z.lineWidth=1,Z.strokeRect(ue,He,nt-1,ht-1),Z.setLineDash([0])})(G,ge,oe[Re])}})}function Rt(B){return(Rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(B)}var nn=(typeof performance=="undefined"?"undefined":Rt(performance))==="object"&&typeof performance.now=="function"?function(){return performance.now()}:function(){return Date.now()},an=new Map,Mn=null,lr=!1,ln=null;function Vt(B){(lr=B)||(an.clear(),Mn!==null&&(cancelAnimationFrame(Mn),Mn=null),ln!==null&&(clearTimeout(ln),ln=null),ze!==null&&(ze.parentNode!=null&&ze.parentNode.removeChild(ze),ze=null))}function Er(B){lr&&(B.forEach(function(z){var G=an.get(z),$=nn(),Te=G!=null?G.lastMeasuredAt:0,ge=G!=null?G.rect:null;(ge===null||Te+250<$)&&(Te=$,ge=function(Re){if(!Re||typeof Re.getBoundingClientRect!="function")return null;var Z=window.__REACT_DEVTOOLS_TARGET_WINDOW__||window;return De(Re,Z)}(z)),an.set(z,{count:G!=null?G.count+1:1,expirationTime:G!=null?Math.min($+3e3,G.expirationTime+250):$+250,lastMeasuredAt:Te,rect:ge})}),ln!==null&&(clearTimeout(ln),ln=null),Mn===null&&(Mn=requestAnimationFrame(w)))}function w(){Mn=null,ln=null;var B=nn(),z=Number.MAX_VALUE;an.forEach(function(G,$){G.expirationTime<B?an.delete($):z=Math.min(z,G.expirationTime)}),ct(an),z!==Number.MAX_VALUE&&(ln=setTimeout(w,z-B))}var jt=a(3),Xn=a(6),vr=a.n(Xn),jr=a(0),fr=60120;if(typeof Symbol=="function"&&Symbol.for){var zr=Symbol.for;zr("react.element"),zr("react.portal"),zr("react.fragment"),zr("react.strict_mode"),zr("react.profiler"),zr("react.provider"),zr("react.context"),zr("react.forward_ref"),zr("react.suspense"),fr=zr("react.suspense_list"),zr("react.memo"),zr("react.lazy"),zr("react.block"),zr("react.server.block"),zr("react.fundamental"),zr("react.scope"),zr("react.opaque.id"),zr("react.debug_trace_mode"),zr("react.offscreen"),zr("react.legacy_hidden")}typeof Symbol=="function"&&Symbol.iterator;function Xt(B){return(Xt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(B)}var wu={inspectable:Symbol("inspectable"),inspected:Symbol("inspected"),name:Symbol("name"),preview_long:Symbol("preview_long"),preview_short:Symbol("preview_short"),readonly:Symbol("readonly"),size:Symbol("size"),type:Symbol("type"),unserializable:Symbol("unserializable")};function d0(B,z,G,$,Te){$.push(Te);var ge={inspectable:z,type:B,preview_long:ki(G,!0),preview_short:ki(G,!1),name:G.constructor&&G.constructor.name!=="Object"?G.constructor.name:""};return B==="array"||B==="typed_array"?ge.size=G.length:B==="object"&&(ge.size=Object.keys(G).length),B!=="iterator"&&B!=="typed_array"||(ge.readonly=!0),ge}function Ro(B,z,G,$,Te){var ge,Re=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0,Z=Oo(B);switch(Z){case"html_element":return z.push($),{inspectable:!1,preview_short:ki(B,!1),preview_long:ki(B,!0),name:B.tagName,type:Z};case"function":return z.push($),{inspectable:!1,preview_short:ki(B,!1),preview_long:ki(B,!0),name:typeof B.name!="function"&&B.name?B.name:"function",type:Z};case"string":return B.length<=500?B:B.slice(0,500)+"...";case"bigint":case"symbol":return z.push($),{inspectable:!1,preview_short:ki(B,!1),preview_long:ki(B,!0),name:B.toString(),type:Z};case"react_element":return z.push($),{inspectable:!1,preview_short:ki(B,!1),preview_long:ki(B,!0),name:F0(B)||"Unknown",type:Z};case"array_buffer":case"data_view":return z.push($),{inspectable:!1,preview_short:ki(B,!1),preview_long:ki(B,!0),name:Z==="data_view"?"DataView":"ArrayBuffer",size:B.byteLength,type:Z};case"array":return ge=Te($),Re>=2&&!ge?d0(Z,!0,B,z,$):B.map(function(ht,ue){return Ro(ht,z,G,$.concat([ue]),Te,ge?1:Re+1)});case"html_all_collection":case"typed_array":case"iterator":if(ge=Te($),Re>=2&&!ge)return d0(Z,!0,B,z,$);var ke={unserializable:!0,type:Z,readonly:!0,size:Z==="typed_array"?B.length:void 0,preview_short:ki(B,!1),preview_long:ki(B,!0),name:B.constructor&&B.constructor.name!=="Object"?B.constructor.name:""};return Xt(B[Symbol.iterator])&&Array.from(B).forEach(function(ht,ue){return ke[ue]=Ro(ht,z,G,$.concat([ue]),Te,ge?1:Re+1)}),G.push($),ke;case"opaque_iterator":return z.push($),{inspectable:!1,preview_short:ki(B,!1),preview_long:ki(B,!0),name:B[Symbol.toStringTag],type:Z} Line truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Jo(B,z){(z==null||z>B.length)&&(z=B.length);for(var G=0,$=new Array(z);G<z;G++)$[G]=B[G];return $}var Zo=new WeakMap,qt=new vr.a({max:1e3});function xi(B,z){return B.toString()>z.toString()?1:z.toString()>B.toString()?-1:0}function lu(B){for(var z=[],G=B,$=function(){var Te=[].concat(Fs(Object.keys(G)),Fs(Object.getOwnPropertySymbols(G))),ge=Object.getOwnPropertyDescriptors(G);Te.forEach(function(Re){ge[Re].enumerable&&z.push(Re)}),G=Object.getPrototypeOf(G)};G!=null;)$();return z}function mi(B){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Anonymous",G=Zo.get(B);if(G!=null)return G;var $=z;return typeof B.displayName=="string"?$=B.displayName:typeof B.name=="string"&&B.name!==""&&($=B.name),Zo.set(B,$),$}var Dr=0;function $o(){return++Dr}function G0(B){var z=qt.get(B);if(z!==void 0)return z;for(var G=new Array(B.length),$=0;$<B.length;$++)G[$]=B.codePointAt($);return qt.set(B,G),G}function Uu(B,z){return z.reduce(function(G,$){if(G){if(hasOwnProperty.call(G,$))return G[$];if(typeof G[Symbol.iterator]=="function")return Array.from(G)[$]}return null},B)}function Y0(B,z){var G=z.length,$=z[G-1];if(B!=null){var Te=Uu(B,z.slice(0,G-1));Te&&(Array.isArray(Te)?Te.splice($,1):delete Te[$])}}function Xr(B,z,G){var $=z.length;if(B!=null){var Te=Uu(B,z.slice(0,$-1));if(Te){var ge=z[$-1];Te[G[$-1]]=Te[ge],Array.isArray(Te)?Te.splice(ge,1):delete Te[ge]}}}function Ao(B,z,G){var $=z.length,Te=z[$-1];if(B!=null){var ge=Uu(B,z.slice(0,$-1));ge&&(ge[Te]=G)}}function Oo(B){if(B===null)return"null";if(B===void 0)return"undefined";if(Object(jr.isElement)(B))return"react_element";if(typeof HTMLElement!="undefined"&&B instanceof HTMLElement)return"html_element";switch(Qo(B)){case"bigint":return"bigint";case"boolean":return"boolean";case"function":return"function";case"number":return Number.isNaN(B)?"nan":Number.isFinite(B)?"number":"infinity";case"object":if(Array.isArray(B))return"array";if(ArrayBuffer.isView(B))return hasOwnProperty.call(B.constructor,"BYTES_PER_ELEMENT")?"typed_array":"data_view";if(B.constructor&&B.constructor.name==="ArrayBuffer")return"array_buffer";if(typeof B[Symbol.iterator]=="function")return B[Symbol.iterator]()===B?"opaque_iterator":"iterator";if(B.constructor&&B.constructor.name==="RegExp")return"regexp";var z=Object.prototype.toString.call(B);return z==="[object Date]"?"date":z==="[object HTMLAllCollection]"?"html_all_collection":"object";case"string":return"string";case"symbol":return"symbol";case"undefined":return Object.prototype.toString.call(B)==="[object HTMLAllCollection]"?"html_all_collection":"undefined";default:return"unknown"}}function F0(B){switch(Object(jr.typeOf)(B)){case jr.ContextConsumer:return"ContextConsumer";case jr.ContextProvider:return"ContextProvider";case jr.ForwardRef:return"ForwardRef";case jr.Fragment:return"Fragment";case jr.Lazy:return"Lazy";case jr.Memo:return"Memo";case jr.Portal:return"Portal";case jr.Profiler:return"Profiler";case jr.StrictMode:return"StrictMode";case jr.Suspense:return"Suspense";case fr:return"SuspenseList";default:var z=B.type;return typeof z=="string"?z:typeof z=="function"?mi(z,"Anonymous"):z!=null?"NotImplementedInDevtools":"Element"}}function su(B){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:50;return B.length>z?B.substr(0,z)+"\u2026":B}function ki(B,z){if(B!=null&&hasOwnProperty.call(B,wu.type))return z?B[wu.preview_long]:B[wu.preview_short];switch(Oo(B)){case"html_element":return"<".concat(su(B.tagName.toLowerCase())," />");case"function":return su("\u0192 ".concat(typeof B.name=="function"?"":B.name,"() {}"));case"string":return'"'.concat(B,'"');case"bigint":return su(B.toString()+"n");case"regexp":case"symbol":return su(B.toString());case"react_element":return"<".concat(su(F0(B)||"Unknown")," />");case"array_buffer":return"ArrayBuffer(".concat(B.byteLength,")");case"data_view":return"DataView(".concat(B.buffer.byteLength,")");case"array":if(z){for(var G="",$=0;$<B.length&&($>0&&(G+=", "),!((G+=ki(B[$],!1)).length>50));$++);return"[".concat(su(G),"]")}var Te=hasOwnProperty.call(B,wu.size)?B[wu.size]:B.length;return"Array(".concat(Te,")");case"typed_array":var ge="".concat(B.constructor.name,"(").concat(B.length,")");if(z){for(var Re="",Z=0;Z<B.length&&(Z>0&&(Re+=", "),!((Re+=B[Z]).length>50));Z++);return"".concat(ge," [").concat(su(Re),"]")}return ge;case"iterator":var ke=B.constructor.name;if(z){for(var Qe=Array.from(B),ht="",ue=0;ue<Qe.length;ue++){var He=Qe[ue];if(ue>0&&(ht+=", "),Array.isArray(He)){var nt=ki(He[0],!0),Ct=ki(He[1],!1);ht+="".concat(nt," => ").concat(Ct)}else ht+=ki(He,!1);if(ht.length>50)break}return"".concat(ke,"(").concat(B.size,") {").concat(su(ht),"}")}return"".concat(ke,"(").concat(B.size,")");case"opaque_iterator":return B[Symbol.toStringTag];case"date":return B.toString();case"object":if(z){for(var Mt=lu(B).sort(xi),It="",sn=0;sn<Mt.length;sn++){var rn=Mt[sn];if(sn>0&&(It+=", "),(It+ Line truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function X0(B,z){return function(G){if(Array.isArray(G))return G}(B)||function(G,$){if(!(typeof Symbol=="undefined"||!(Symbol.iterator in Object(G)))){var Te=[],ge=!0,Re=!1,Z=void 0;try{for(var ke,Qe=G[Symbol.iterator]();!(ge=(ke=Qe.next()).done)&&(Te.push(ke.value),!$||Te.length!==$);ge=!0);}catch(ht){Re=!0,Z=ht}finally{try{ge||Qe.return==null||Qe.return()}finally{if(Re)throw Z}}return Te}}(B,z)||Xl(B,z)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Yi(B,z){var G;if(typeof Symbol=="undefined"||B[Symbol.iterator]==null){if(Array.isArray(B)||(G=Xl(B))||z&&B&&typeof B.length=="number"){G&&(B=G);var $=0,Te=function(){};return{s:Te,n:function(){return $>=B.length?{done:!0}:{done:!1,value:B[$++]}},e:function(ke){throw ke},f:Te}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var ge,Re=!0,Z=!1;return{s:function(){G=B[Symbol.iterator]()},n:function(){var ke=G.next();return Re=ke.done,ke},e:function(ke){Z=!0,ge=ke},f:function(){try{Re||G.return==null||G.return()}finally{if(Z)throw ge}}}}function Xl(B,z){if(B){if(typeof B=="string")return Mo(B,z);var G=Object.prototype.toString.call(B).slice(8,-1);return G==="Object"&&B.constructor&&(G=B.constructor.name),G==="Map"||G==="Set"?Array.from(B):G==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(G)?Mo(B,z):void 0}}function Mo(B,z){(z==null||z>B.length)&&(z=B.length);for(var G=0,$=new Array(z);G<z;G++)$[G]=B[G];return $}function ai(B){return(ai=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(B)}function so(B){return B.flags!==void 0?B.flags:B.effectTag}var Ql=(typeof performance=="undefined"?"undefined":ai(performance))==="object"&&typeof performance.now=="function"?function(){return performance.now()}:function(){return Date.now()};function ko(B){var z=null;function G(rn){var Lt=ai(rn)==="object"&&rn!==null?rn.$$typeof:rn;return ai(Lt)==="symbol"?Lt.toString():Lt}var $=z=Object(jt.gte)(B,"17.0.0-alpha")?{Block:22,ClassComponent:1,ContextConsumer:9,ContextProvider:10,CoroutineComponent:-1,CoroutineHandlerPhase:-1,DehydratedSuspenseComponent:18,ForwardRef:11,Fragment:7,FunctionComponent:0,HostComponent:5,HostPortal:4,HostRoot:3,HostText:6,IncompleteClassComponent:17,IndeterminateComponent:2,LazyComponent:16,MemoComponent:14,Mode:8,OffscreenComponent:23,Profiler:12,SimpleMemoComponent:15,SuspenseComponent:13,SuspenseListComponent:19,YieldComponent:-1}:Object(jt.gte)(B,"16.6.0-beta.0")?{Block:22,ClassComponent:1,ContextConsumer:9,ContextProvider:10,CoroutineComponent:-1,CoroutineHandlerPhase:-1,DehydratedSuspenseComponent:18,ForwardRef:11,Fragment:7,FunctionComponent:0,HostComponent:5,HostPortal:4,HostRoot:3,HostText:6,IncompleteClassComponent:17,IndeterminateComponent:2,LazyComponent:16,MemoComponent:14,Mode:8,OffscreenComponent:-1,Profiler:12,SimpleMemoComponent:15,SuspenseComponent:13,SuspenseListComponent:19,YieldComponent:-1}:Object(jt.gte)(B,"16.4.3-alpha")?{Block:-1,ClassComponent:2,ContextConsumer:11,ContextProvider:12,CoroutineComponent:-1,CoroutineHandlerPhase:-1,DehydratedSuspenseComponent:-1,ForwardRef:13,Fragment:9,FunctionComponent:0,HostComponent:7,HostPortal:6,HostRoot:5,HostText:8,IncompleteClassComponent:-1,IndeterminateComponent:4,LazyComponent:-1,MemoComponent:-1,Mode:10,OffscreenComponent:-1,Profiler:15,SimpleMemoComponent:-1,SuspenseComponent:16,SuspenseListComponent:-1,YieldComponent:-1}:{Block:-1,ClassComponent:2,ContextConsumer:12,ContextProvider:13,CoroutineComponent:7,CoroutineHandlerPhase:8,DehydratedSuspenseComponent:-1,ForwardRef:14,Fragment:10,FunctionComponent:1,HostComponent:5,HostPortal:4,HostRoot:3,HostText:6,IncompleteClassComponent:-1,IndeterminateComponent:0,LazyComponent:-1,MemoComponent:-1,Mode:11,OffscreenComponent:-1,Profiler:15,SimpleMemoComponent:-1,SuspenseComponent:16,SuspenseListComponent:-1,YieldComponent:9},Te=$.ClassComponent,ge=$.IncompleteClassComponent,Re=$.FunctionComponent,Z=$.IndeterminateComponent,ke=$.ForwardRef,Qe=$.HostRoot,ht=$.HostComponent,ue=$.HostPortal,He=$.HostText,nt=$.Fragment,Ct=$.MemoComponent,Mt=$.SimpleMemoComponent,It=$.SuspenseComponent,sn=$.SuspenseListComponent;return{getDisplayNameForFiber:function(rn){var Lt=rn.type,Dn=rn.tag,dr=Lt;ai(Lt)==="object"&&Lt!==null&&(dr=function Cr(An){switch(G(An)){case 60115:case"Symbol(react.memo)":return Cr(An.type);case 60112:case"Symbol(react.forward_ref)":return An.render;default:return An}}(Lt));var er=null;switch(Dn){case Te:case ge:return mi(dr);case Re:case Z:return mi(dr);case ke:return Lt&&Lt.displayName||mi(dr,"Anonymous");case Qe:return null;case ht:return Lt;case ue:case He:case nt:return null;case Ct:case Mt:return mi(dr,"Anonymous");case It:return"Suspense";case sn:return"SuspenseList";default:switch(G(Lt)){case 60111:case"Symbol(react.concurrent_mode)":case"Symbol(react.async_mode)":return null;case 60109:case"Symbol(react.provider)":return er=rn.type._context||rn.type.context,"".concat(er.displayName||"Context",".Provider");case 60110:case"Symbol(react.context)":return er=rn.type._context||rn.type,"".concat(er.displayName||"Context",".Consumer");case 60108:case"Symbol(react.strict_mode)":return null;case 60114:case"Symbol(react.profiler)":return"Profiler(".concat(rn.memoizedProps.id,")");case 60119:case"Symbol(react.scope)":return"Scope";default:return null}}},getTypeSymbol:G,ReactPriorityLevels:{ImmediatePriority:99,UserBlockingPriority:98,NormalPriority:97,LowPriority:96,IdlePriority:95,NoPriority:90},ReactTypeOfWork:z,ReactTypeOfSideEffect:{NoFlags:0,PerformedWork:1,Placement:2}}}function Is(B,z,G,$){var Te=ko(G.version),ge=Te.getDisplayNameForFiber,Re=Te.getTypeS Line truncated
`+$n+B}var I0=!1;function wl(B,z,G){if(!B||I0)return"";var $,Te=Error.prepareStackTrace;Error.prepareStackTrace=void 0,I0=!0;var ge=G.current;G.current=null;try{if(z){var Re=function(){throw Error()};if(Object.defineProperty(Re.prototype,"props",{set:function(){throw Error()}}),(typeof Reflect=="undefined"?"undefined":el(Reflect))==="object"&&Reflect.construct){try{Reflect.construct(Re,[])}catch(He){$=He}Reflect.construct(B,[],Re)}else{try{Re.call()}catch(He){$=He}B.call(Re.prototype)}}else{try{throw Error()}catch(He){$=He}B()}}catch(He){if(He&&$&&typeof He.stack=="string"){for(var Z=He.stack.split(`
`),ke=$.stack.split(`
`),Qe=Z.length-1,ht=ke.length-1;Qe>=1&&ht>=0&&Z[Qe]!==ke[ht];)ht--;for(;Qe>=1&&ht>=0;Qe--,ht--)if(Z[Qe]!==ke[ht]){if(Qe!==1||ht!==1)do if(Qe--,--ht<0||Z[Qe]!==ke[ht])return`
`+Z[Qe].replace(" at new "," at ");while(Qe>=1&&ht>=0);break}}}finally{I0=!1,Error.prepareStackTrace=Te,G.current=ge}var ue=B?B.displayName||B.name:"";return ue?ao(ue):""}function No(B,z,G,$){return wl(B,!1,$)}function wt(B,z,G){var $=B.HostComponent,Te=B.LazyComponent,ge=B.SuspenseComponent,Re=B.SuspenseListComponent,Z=B.FunctionComponent,ke=B.IndeterminateComponent,Qe=B.SimpleMemoComponent,ht=B.ForwardRef,ue=B.Block,He=B.ClassComponent;switch(z.tag){case $:return ao(z.type);case Te:return ao("Lazy");case ge:return ao("Suspense");case Re:return ao("SuspenseList");case Z:case ke:case Qe:return No(z.type,0,0,G);case ht:return No(z.type.render,0,0,G);case ue:return No(z.type._render,0,0,G);case He:return function(nt,Ct,Mt,It){return wl(nt,!0,It)}(z.type,0,0,G);default:return""}}function bt(B,z,G){try{var $="",Te=z;do $+=wt(B,Te,G),Te=Te.return;while(Te);return $}catch(ge){return`
Error generating stack: `+ge.message+`
`+ge.stack}}function Hn(B,z){var G;if(typeof Symbol=="undefined"||B[Symbol.iterator]==null){if(Array.isArray(B)||(G=function(ke,Qe){if(!!ke){if(typeof ke=="string")return qr(ke,Qe);var ht=Object.prototype.toString.call(ke).slice(8,-1);if(ht==="Object"&&ke.constructor&&(ht=ke.constructor.name),ht==="Map"||ht==="Set")return Array.from(ke);if(ht==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ht))return qr(ke,Qe)}}(B))||z&&B&&typeof B.length=="number"){G&&(B=G);var $=0,Te=function(){};return{s:Te,n:function(){return $>=B.length?{done:!0}:{done:!1,value:B[$++]}},e:function(ke){throw ke},f:Te}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var ge,Re=!0,Z=!1;return{s:function(){G=B[Symbol.iterator]()},n:function(){var ke=G.next();return Re=ke.done,ke},e:function(ke){Z=!0,ge=ke},f:function(){try{Re||G.return==null||G.return()}finally{if(Z)throw ge}}}}function qr(B,z){(z==null||z>B.length)&&(z=B.length);for(var G=0,$=new Array(z);G<z;G++)$[G]=B[G];return $}var Ki=["error","trace","warn"],Qr=/\s{4}(in|at)\s{1}/,Ou=/:\d+:\d+(\n|$)/,h0=new Map,Ni=console,v0={};for(var hs in console)v0[hs]=console[hs];var Tt=null;function fo(B){var z=B.currentDispatcherRef,G=B.getCurrentFiber,$=B.findFiberByHostInstance,Te=B.version;if(typeof $=="function"&&z!=null&&typeof G=="function"){var ge=ko(Te).ReactTypeOfWork;h0.set(B,{currentDispatcherRef:z,getCurrentFiber:G,workTagMap:ge})}}var tl={appendComponentStack:!1,breakOnConsoleErrors:!1};function Jl(B){var z=B.appendComponentStack,G=B.breakOnConsoleErrors;if(tl.appendComponentStack=z,tl.breakOnConsoleErrors=G,Tt===null){var $={};Tt=function(){for(var Te in $)try{Ni[Te]=$[Te]}catch(ge){}},Ki.forEach(function(Te){try{var ge=$[Te]=Ni[Te],Re=function(){for(var Z=tl.appendComponentStack,ke=(tl.breakOnConsoleErrors,arguments.length),Qe=new Array(ke),ht=0;ht<ke;ht++)Qe[ht]=arguments[ht];if(Z)try{var ue=Qe.length>0?Qe[Qe.length-1]:null,He=ue!==null&&(Qr.test(ue)||Ou.test(ue));if(!He){var nt,Ct=Hn(h0.values());try{for(Ct.s();!(nt=Ct.n()).done;){var Mt=nt.value,It=Mt.currentDispatcherRef,sn=Mt.getCurrentFiber,rn=Mt.workTagMap,Lt=sn();if(Lt!=null){var Dn=bt(rn,Lt,It);Dn!==""&&Qe.push(Dn);break}}}catch(dr){Ct.e(dr)}finally{Ct.f()}}}catch(dr){}ge.apply(void 0,Qe)};Re.__REACT_DEVTOOLS_ORIGINAL_METHOD__=ge,Ni[Te]=Re}catch(Z){}})}}function ju(B){return(ju=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(B)}function vs(B,z){for(var G=0;G<z.length;G++){var $=z[G];$.enumerable=$.enumerable||!1,$.configurable=!0,"value"in $&&($.writable=!0),Object.defineProperty(B,$.key,$)}}function b0(B,z){return(b0=Object.setPrototypeOf||function(G,$){return G.__proto__=$,G})(B,z)}function X(B){var z=function(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(G){return!1}}();return function(){var G,$=Ne(B);if(z){var Te=Ne(this).constructor;G=Reflect.construct($,arguments,Te)}else G=$.apply(this,arguments);return we(this,G)}}function we(B,z){return!z||ju(z)!=="object"&&typeof z!="function"?Le(B):z}function Le(B){if(B===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return B}function Ne(B){return(Ne=Object.setPrototypeOf?Object.getPrototypeOf:function(z){return z.__proto__||Object.getPrototypeOf(z)})(B)}function dt(B,z,G){return z in B?Object.defineProperty(B,z,{value:G,enumerable:!0,configurable:!0,writable:!0}):B[z]=G,B}var Yn=function(B){(function(Re,Z){if(typeof Z!="function"&&Z!==null)throw new TypeError("Super expression must either be null or a function");Re.prototype=Object.create(Z&&Z.prototype,{constructor:{value:Re,writable:!0,configurable:!0}}),Z&&b0(Re,Z)})(ge,B);var z,G,$,Te=X(ge);function ge(Re){var Z;(function(ue,He){if(!(ue instanceof He))throw new TypeError("Cannot call a class as a function")})(this,ge),dt(Le(Z=Te.call(this)),"_isProfiling",!1),dt(Le(Z),"_recordChangeDescriptions",!1),dt(Le(Z),"_rendererInterfaces",{}),dt(Le(Z),"_persistedSelection",null),dt(Le(Z),"_persistedSelectionMatch",null),dt(Le(Z),"_traceUpdatesEnabled",!1),dt(Le(Z),"copyElementPath",function(ue){var He=ue.id,nt=ue.path,Ct=ue.rendererID,Mt=Z._rendererInterfaces[Ct];Mt==null?console.warn('Invalid renderer id "'.concat(Ct,'" for element "').concat(He,'"')):Mt.copyElementPath(He,nt)}),dt(Le(Z),"deletePath",function(ue){var He=ue.hookID,nt=ue.id,Ct=ue.path,Mt=ue.rendererID,It=ue.type,sn=Z._rendererInterfaces[Mt];sn==null?console.warn('Invalid renderer id "'.concat(Mt,'" for element "').concat(nt,'"')):sn.deletePath(It,nt,He,Ct)}),dt(Le(Z),"getProfilingData",function(ue){var He=ue.rendererID,nt=Z._rendererInterfaces[He];nt==null&&console.warn('Invalid renderer id "'.concat(He,'"')),Z._bridge.send("profilingData",nt.getProfilingData())}),dt(Le(Z),"getProfilingStatus",function(){Z._bridge.send("profilingStatus",Z._isProfiling)}),dt(Le(Z),"getOwnersList",function(ue){var He=ue.id,nt=ue.rendererID,Ct=Z._rendererInterfaces[nt];if(Ct==null)console.warn('Invalid renderer id "'.concat(nt,'" for element "').concat(He,'"'));else{var Mt=Ct.getOwnersList(He);Z._bridge.send("ownersList",{id:He,owners:Mt})}}),dt(Le(Z),"inspectElement",function(ue){var He=ue.id,nt=ue.path,Ct=ue.rendererID,Mt=Z._rendererInterfaces[Ct];Mt==null?console.warn('Invalid renderer id "'.concat(Ct,'" for element "').concat(He,'"')):(Z._bridge.send("inspectedEleme Line truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Si(B,z){(z==null||z>B.length)&&(z=B.length);for(var G=0,$=new Array(z);G<z;G++)$[G]=B[G];return $}function Mu(B,z){for(var G=0;G<z.length;G++){var $=z[G];$.enumerable=$.enumerable||!1,$.configurable=!0,"value"in $&&($.writable=!0),Object.defineProperty(B,$.key,$)}}function zu(B,z){return(zu=Object.setPrototypeOf||function(G,$){return G.__proto__=$,G})(B,z)}function Hu(B){var z=function(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(G){return!1}}();return function(){var G,$=Lo(B);if(z){var Te=Lo(this).constructor;G=Reflect.construct($,arguments,Te)}else G=$.apply(this,arguments);return Su(this,G)}}function Su(B,z){return!z||Cn(z)!=="object"&&typeof z!="function"?Ti(B):z}function Ti(B){if(B===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return B}function Lo(B){return(Lo=Object.setPrototypeOf?Object.getPrototypeOf:function(z){return z.__proto__||Object.getPrototypeOf(z)})(B)}function ku(B,z,G){return z in B?Object.defineProperty(B,z,{value:G,enumerable:!0,configurable:!0,writable:!0}):B[z]=G,B}var co=function(B){(function(Re,Z){if(typeof Z!="function"&&Z!==null)throw new TypeError("Super expression must either be null or a function");Re.prototype=Object.create(Z&&Z.prototype,{constructor:{value:Re,writable:!0,configurable:!0}}),Z&&zu(Re,Z)})(ge,B);var z,G,$,Te=Hu(ge);function ge(Re){var Z;return function(ke,Qe){if(!(ke instanceof Qe))throw new TypeError("Cannot call a class as a function")}(this,ge),ku(Ti(Z=Te.call(this)),"_isShutdown",!1),ku(Ti(Z),"_messageQueue",[]),ku(Ti(Z),"_timeoutID",null),ku(Ti(Z),"_wallUnlisten",null),ku(Ti(Z),"_flush",function(){if(Z._timeoutID!==null&&(clearTimeout(Z._timeoutID),Z._timeoutID=null),Z._messageQueue.length){for(var ke=0;ke<Z._messageQueue.length;ke+=2){var Qe;(Qe=Z._wall).send.apply(Qe,[Z._messageQueue[ke]].concat(cr(Z._messageQueue[ke+1])))}Z._messageQueue.length=0,Z._timeoutID=setTimeout(Z._flush,100)}}),ku(Ti(Z),"overrideValueAtPath",function(ke){var Qe=ke.id,ht=ke.path,ue=ke.rendererID,He=ke.type,nt=ke.value;switch(He){case"context":Z.send("overrideContext",{id:Qe,path:ht,rendererID:ue,wasForwarded:!0,value:nt});break;case"hooks":Z.send("overrideHookState",{id:Qe,path:ht,rendererID:ue,wasForwarded:!0,value:nt});break;case"props":Z.send("overrideProps",{id:Qe,path:ht,rendererID:ue,wasForwarded:!0,value:nt});break;case"state":Z.send("overrideState",{id:Qe,path:ht,rendererID:ue,wasForwarded:!0,value:nt})}}),Z._wall=Re,Z._wallUnlisten=Re.listen(function(ke){Ti(Z).emit(ke.event,ke.payload)})||null,Z.addListener("overrideValueAtPath",Z.overrideValueAtPath),Z}return z=ge,(G=[{key:"send",value:function(Re){if(this._isShutdown)console.warn('Cannot send message "'.concat(Re,'" through a Bridge that has been shutdown.'));else{for(var Z=arguments.length,ke=new Array(Z>1?Z-1:0),Qe=1;Qe<Z;Qe++)ke[Qe-1]=arguments[Qe];this._messageQueue.push(Re,ke),this._timeoutID||(this._timeoutID=setTimeout(this._flush,0))}}},{key:"shutdown",value:function(){if(this._isShutdown)console.warn("Bridge was already shutdown.");else{this.send("shutdown"),this._isShutdown=!0,this.addListener=function(){},this.emit=function(){},this.removeAllListeners();var Re=this._wallUnlisten;Re&&Re();do this._flush();while(this._messageQueue.length);this._timeoutID!==null&&(clearTimeout(this._timeoutID),this._timeoutID=null)}}},{key:"wall",get:function(){return this._wall}}])&&Mu(z.prototype,G),$&&Mu(z,$),ge}(_);function qu(B,z,G){var $=B[z];return B[z]=function(Te){return G.call(this,$,arguments)},$}function Pa(B,z){for(var G in z)B[G]=z[G]}function m0(B){typeof B.forceUpdate=="function"?B.forceUpdate():B.updater!=null&&typeof B.updater.enqueueForceUpdate=="function"&&B.updater.enqueueForceUpdate(this,function(){},"forceUpdate")}function ia(B,z){var G=Object.keys(B);if(Object.getOwnPropertySymbols){var $=Object.getOwnPropertySymbols(B);z&&($=$.filter(function(Te){return Object.getOwnPropertyDescriptor(B,Te).enumerable})),G.push.apply(G,$)}return G}function Q0(B){for(var z=1;z<arguments.length;z++){var G=arguments[z]!=null?arguments[z]:{};z%2?ia(Object(G),!0).forEach(function($){ua(B,$,G[$])}):Object.getOwnPropertyDescriptors?Object.defineProperties(B,Object.getOwnPropertyDescriptors(G)):ia(Object(G)).forEach(function($){Object.defineProperty(B,$,Object.getOwnPropertyDescriptor(G,$))})}return B}function ua(B,z,G){return z in B?Object.defineProperty(B,z,{value:G,enumerable:!0,configurable:!0,writable:!0}):B[z]=G,B}function Ia(B){return(Ia=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(B)}function ms(B){var z=null,G=null;if(B._currentElement!=null){B._currentE Line truncated
`:`
`)+a,_=p+1,p=i.indexOf(`
`,_)}while(p!==-1);return t+=i.substr(_),t};XC.exports={stringReplaceAll:Fb,stringEncaseCRLFWithFirstIndex:Pb}});var t6=tt((Eq,JC)=>{"use strict";var Ib=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,ZC=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,bb=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Bb=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,Ub=new Map([["n",`
`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function $C(i){let o=i[0]==="u",a=i[1]==="{";return o&&!a&&i.length===5||i[0]==="x"&&i.length===3?String.fromCharCode(parseInt(i.slice(1),16)):o&&a?String.fromCodePoint(parseInt(i.slice(2,-1),16)):Ub.get(i)||i}function jb(i,o){let a=[],p=o.trim().split(/\s*,\s*/g),_;for(let t of p){let k=Number(t);if(!Number.isNaN(k))a.push(k);else if(_=t.match(bb))a.push(_[2].replace(Bb,(L,O,C)=>O?$C(O):C));else throw new Error(`Invalid Chalk template style argument: ${t} (in style '${i}')`)}return a}function zb(i){ZC.lastIndex=0;let o=[],a;for(;(a=ZC.exec(i))!==null;){let p=a[1];if(a[2]){let _=jb(p,a[2]);o.push([p].concat(_))}else o.push([p])}return o}function e6(i,o){let a={};for(let _ of o)for(let t of _.styles)a[t[0]]=_.inverse?null:t.slice(1);let p=i;for(let[_,t]of Object.entries(a))if(!!Array.isArray(t)){if(!(_ in p))throw new Error(`Unknown Chalk style: ${_}`);p=t.length>0?p[_](...t):p[_]}return p}JC.exports=(i,o)=>{let a=[],p=[],_=[];if(o.replace(Ib,(t,k,L,O,C,U)=>{if(k)_.push($C(k));else if(O){let H=_.join("");_=[],p.push(a.length===0?H:e6(i,a)(H)),a.push({inverse:L,styles:zb(O)})}else if(C){if(a.length===0)throw new Error("Found extraneous } in Chalk template literal");p.push(e6(i,a)(_.join(""))),_=[],a.pop()}else _.push(U)}),p.push(_.join("")),a.length>0){let t=`Chalk template literal is missing ${a.length} closing bracket${a.length===1?"":"s"} (\`}\`)`;throw new Error(t)}return p.join("")}});var i4=tt((Dq,n6)=>{"use strict";var lg=H_(),{stdout:u3,stderr:o3}=KC(),{stringReplaceAll:Hb,stringEncaseCRLFWithFirstIndex:qb}=QC(),{isArray:e4}=Array,r6=["ansi","ansi","ansi256","ansi16m"],Qv=Object.create(null),Wb=(i,o={})=>{if(o.level&&!(Number.isInteger(o.level)&&o.level>=0&&o.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let a=u3?u3.level:0;i.level=o.level===void 0?a:o.level},i6=class{constructor(o){return u6(o)}},u6=i=>{let o={};return Wb(o,i),o.template=(...a)=>o6(o.template,...a),Object.setPrototypeOf(o,t4.prototype),Object.setPrototypeOf(o.template,o),o.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},o.template.Instance=i6,o.template};function t4(i){return u6(i)}for(let[i,o]of Object.entries(lg))Qv[i]={get(){let a=n4(this,l3(o.open,o.close,this._styler),this._isEmpty);return Object.defineProperty(this,i,{value:a}),a}};Qv.visible={get(){let i=n4(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:i}),i}};var l6=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let i of l6)Qv[i]={get(){let{level:o}=this;return function(...a){let p=l3(lg.color[r6[o]][i](...a),lg.color.close,this._styler);return n4(this,p,this._isEmpty)}}};for(let i of l6){let o="bg"+i[0].toUpperCase()+i.slice(1);Qv[o]={get(){let{level:a}=this;return function(...p){let _=l3(lg.bgColor[r6[a]][i](...p),lg.bgColor.close,this._styler);return n4(this,_,this._isEmpty)}}}}var Vb=Object.defineProperties(()=>{},Zr(Ht({},Qv),{level:{enumerable:!0,get(){return this._generator.level},set(i){this._generator.level=i}}})),l3=(i,o,a)=>{let p,_;return a===void 0?(p=i,_=o):(p=a.openAll+i,_=o+a.closeAll),{open:i,close:o,openAll:p,closeAll:_,parent:a}},n4=(i,o,a)=>{let p=(..._)=>e4(_[0])&&e4(_[0].raw)?s6(p,o6(p,..._)):s6(p,_.length===1?""+_[0]:_.join(" "));return Object.setPrototypeOf(p,Vb),p._generator=i,p._styler=o,p._isEmpty=a,p},s6=(i,o)=>{if(i.level<=0||!o)return i._isEmpty?"":o;let a=i._styler;if(a===void 0)return o;let{openAll:p,closeAll:_}=a;if(o.indexOf("")!==-1)for(;a!==void 0;)o=Hb(o,a.close,a.open),a=a.parent;let t=o.indexOf(`
`);return t!==-1&&(o=qb(o,_,p,t)),p+o+_},s3,o6=(i,...o)=>{let[a]=o;if(!e4(a)||!e4(a.raw))return o.join(" ");let p=o.slice(1),_=[a.raw[0]];for(let t=1;t<a.length;t++)_.push(String(p[t-1]).replace(/[{}\\]/g,"\\$&"),String(a.raw[t]));return s3===void 0&&(s3=t6()),s3(i,_.join(""))};Object.defineProperties(t4.prototype,Qv);var r4=t4();r4.supportsColor=u3;r4.stderr=t4({level:o3?o3.level:0});r4.stderr.supportsColor=o3;n6.exports=r4});var a3=tt(sg=>{"use strict";var Gb=sg&&sg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(sg,"__esModule",{value:!0});var ag=Gb(i4()),Yb=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,Kb=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,u4=(i,o)=>o==="foreground"?i:"bg"+i[0].toUpperCase()+i.slice(1);sg.default=(i,o,a)=>{if(!o)return i;if(o in ag.default){let _=u4(o,a);return ag.default[_](i)}if(o.startsWith("#")){let _=u4("hex",a);return ag.default[_](o)(i)}if(o.startsWith("ansi")){let _=Kb.exec(o);if(!_)return i;let t=u4(_[1],a),k=Number(_[2]);return ag.default[t](k)(i)}if(o.startsWith("rgb")||o.startsWith("hsl")||o.startsWith("hsv")||o.startsWith("hwb")){let _=Yb.exec(o);if(!_)return i;let t=u4(_[1],a),k=Number(_[2]),L=Number(_[3]),O=Number(_[4]);return ag.default[t](k,L,O)(i)}return i}});var f6=tt(fg=>{"use strict";var a6=fg&&fg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(fg,"__esModule",{value:!0});var Xb=a6(qC()),f3=a6(a3());fg.default=(i,o,a,p)=>{if(typeof a.style.borderStyle=="string"){let _=a.yogaNode.getComputedWidth(),t=a.yogaNode.getComputedHeight(),k=a.style.borderColor,L=Xb.default[a.style.borderStyle],O=f3.default(L.topLeft+L.horizontal.repeat(_-2)+L.topRight,k,"foreground"),C=(f3.default(L.vertical,k,"foreground")+`
`).repeat(t-2),U=f3.default(L.bottomLeft+L.horizontal.repeat(_-2)+L.bottomRight,k,"foreground");p.write(i,o,O,{transformers:[]}),p.write(i,o+1,C,{transformers:[]}),p.write(i+_-1,o+1,C,{transformers:[]}),p.write(i,o+t-1,U,{transformers:[]})}}});var d6=tt(cg=>{"use strict";var rh=cg&&cg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(cg,"__esModule",{value:!0});var Qb=rh($p()),Jb=rh(CD()),Zb=rh(BC()),$b=rh(FD()),eB=rh(UC()),tB=rh(ID()),nB=rh(f6()),rB=(i,o)=>{var a;let p=(a=i.childNodes[0])===null||a===void 0?void 0:a.yogaNode;if(p){let _=p.getComputedLeft(),t=p.getComputedTop();o=`
`.repeat(t)+Zb.default(o,_)}return o},c6=(i,o,a)=>{var p;let{offsetX:_=0,offsetY:t=0,transformers:k=[],skipStaticElements:L}=a;if(L&&i.internal_static)return;let{yogaNode:O}=i;if(O){if(O.getDisplay()===Qb.default.DISPLAY_NONE)return;let C=_+O.getComputedLeft(),U=t+O.getComputedTop(),H=k;if(typeof i.internal_transform=="function"&&(H=[i.internal_transform,...k]),i.nodeName==="ink-text"){let W=tB.default(i);if(W.length>0){let ne=Jb.default(W),m=eB.default(O);if(ne>m){let he=(p=i.style.textWrap)!==null&&p!==void 0?p:"wrap";W=$b.default(W,m,he)}W=rB(i,W),o.write(C,U,W,{transformers:H})}return}if(i.nodeName==="ink-box"&&nB.default(C,U,i,o),i.nodeName==="ink-root"||i.nodeName==="ink-box")for(let W of i.childNodes)c6(W,o,{offsetX:C,offsetY:U,transformers:H,skipStaticElements:L})}};cg.default=c6});var h6=tt((Cq,p6)=>{"use strict";p6.exports=i=>{i=Object.assign({onlyFirst:!1},i);let o=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(o,i.onlyFirst?void 0:"g")}});var m6=tt((xq,c3)=>{"use strict";var iB=h6(),v6=i=>typeof i=="string"?i.replace(iB(),""):i;c3.exports=v6;c3.exports.default=v6});var _6=tt((Rq,y6)=>{"use strict";var g6="[\uD800-\uDBFF][\uDC00-\uDFFF]";y6.exports=i=>i&&i.exact?new RegExp(`^${g6}$`):new RegExp(g6,"g")});var D6=tt((Aq,d3)=>{"use strict";var uB=m6(),oB=_6(),E6=i=>uB(i).replace(oB()," ").length;d3.exports=E6;d3.exports.default=E6});var C6=tt(dg=>{"use strict";var w6=dg&&dg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(dg,"__esModule",{value:!0});var S6=w6(ND()),lB=w6(D6()),T6=class{constructor(o){this.writes=[];let{width:a,height:p}=o;this.width=a,this.height=p}write(o,a,p,_){let{transformers:t}=_;!p||this.writes.push({x:o,y:a,text:p,transformers:t})}get(){let o=[];for(let p=0;p<this.height;p++)o.push(" ".repeat(this.width));for(let p of this.writes){let{x:_,y:t,text:k,transformers:L}=p,O=k.split(`
`),C=0;for(let U of O){let H=o[t+C];if(!H)continue;let W=lB.default(U);for(let ne of L)U=ne(U);o[t+C]=S6.default(H,0,_)+U+S6.default(H,_+W),C++}}return{output:o.map(p=>p.trimRight()).join(`
`),height:o.length}}};dg.default=T6});var A6=tt(pg=>{"use strict";var p3=pg&&pg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(pg,"__esModule",{value:!0});var sB=p3($p()),x6=p3(d6()),R6=p3(C6());pg.default=(i,o)=>{var a;if(i.yogaNode.setWidth(o),i.yogaNode){i.yogaNode.calculateLayout(void 0,void 0,sB.default.DIRECTION_LTR);let p=new R6.default({width:i.yogaNode.getComputedWidth(),height:i.yogaNode.getComputedHeight()});x6.default(i,p,{skipStaticElements:!0});let _;((a=i.staticNode)===null||a===void 0?void 0:a.yogaNode)&&(_=new R6.default({width:i.staticNode.yogaNode.getComputedWidth(),height:i.staticNode.yogaNode.getComputedHeight()}),x6.default(i.staticNode,_,{skipStaticElements:!1}));let{output:t,height:k}=p.get();return{output:t,outputHeight:k,staticOutput:_?`${_.get().output}
`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var N6=tt((kq,O6)=>{"use strict";var M6=require("stream"),k6=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],h3={},aB=i=>{let o=new M6.PassThrough,a=new M6.PassThrough;o.write=_=>i("stdout",_),a.write=_=>i("stderr",_);let p=new console.Console(o,a);for(let _ of k6)h3[_]=console[_],console[_]=p[_];return()=>{for(let _ of k6)console[_]=h3[_];h3={}}};O6.exports=aB});var m3=tt(v3=>{"use strict";Object.defineProperty(v3,"__esModule",{value:!0});v3.default=new WeakMap});var g3=tt(y3=>{"use strict";Object.defineProperty(y3,"__esModule",{value:!0});var fB=Mi(),L6=fB.createContext({exit:()=>{}});L6.displayName="InternalAppContext";y3.default=L6});var E3=tt(_3=>{"use strict";Object.defineProperty(_3,"__esModule",{value:!0});var cB=Mi(),F6=cB.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});F6.displayName="InternalStdinContext";_3.default=F6});var w3=tt(D3=>{"use strict";Object.defineProperty(D3,"__esModule",{value:!0});var dB=Mi(),P6=dB.createContext({stdout:void 0,write:()=>{}});P6.displayName="InternalStdoutContext";D3.default=P6});var T3=tt(S3=>{"use strict";Object.defineProperty(S3,"__esModule",{value:!0});var pB=Mi(),I6=pB.createContext({stderr:void 0,write:()=>{}});I6.displayName="InternalStderrContext";S3.default=I6});var o4=tt(C3=>{"use strict";Object.defineProperty(C3,"__esModule",{value:!0});var hB=Mi(),b6=hB.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{}});b6.displayName="InternalFocusContext";C3.default=b6});var U6=tt((Bq,B6)=>{"use strict";var vB=/[|\\{}()[\]^$+*?.-]/g;B6.exports=i=>{if(typeof i!="string")throw new TypeError("Expected a string");return i.replace(vB,"\\$&")}});var q6=tt((Uq,j6)=>{"use strict";var mB=U6(),z6=[].concat(require("module").builtinModules,"bootstrap_node","node").map(i=>new RegExp(`(?:\\(${i}\\.js:\\d+:\\d+\\)$|^\\s*at ${i}\\.js:\\d+:\\d+$)`));z6.push(/\(internal\/[^:]+:\d+:\d+\)$/,/\s*at internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var l4=class{constructor(o){o=Ht({ignoredPackages:[]},o),"internals"in o||(o.internals=l4.nodeInternals()),"cwd"in o||(o.cwd=process.cwd()),this._cwd=o.cwd.replace(/\\/g,"/"),this._internals=[].concat(o.internals,yB(o.ignoredPackages)),this._wrapCallSite=o.wrapCallSite||!1}static nodeInternals(){return[...z6]}clean(o,a=0){a=" ".repeat(a),Array.isArray(o)||(o=o.split(`
`)),!/^\s*at /.test(o[0])&&/^\s*at /.test(o[1])&&(o=o.slice(1));let p=!1,_=null,t=[];return o.forEach(k=>{if(k=k.replace(/\\/g,"/"),this._internals.some(O=>O.test(k)))return;let L=/^\s*at /.test(k);p?k=k.trimEnd().replace(/^(\s+)at /,"$1"):(k=k.trim(),L&&(k=k.slice(3))),k=k.replace(`${this._cwd}/`,""),k&&(L?(_&&(t.push(_),_=null),t.push(k)):(p=!0,_=k))}),t.map(k=>`${a}${k}
`).join("")}captureString(o,a=this.captureString){typeof o=="function"&&(a=o,o=Infinity);let{stackTraceLimit:p}=Error;o&&(Error.stackTraceLimit=o);let _={};Error.captureStackTrace(_,a);let{stack:t}=_;return Error.stackTraceLimit=p,this.clean(t)}capture(o,a=this.capture){typeof o=="function"&&(a=o,o=Infinity);let{prepareStackTrace:p,stackTraceLimit:_}=Error;Error.prepareStackTrace=(L,O)=>this._wrapCallSite?O.map(this._wrapCallSite):O,o&&(Error.stackTraceLimit=o);let t={};Error.captureStackTrace(t,a);let{stack:k}=t;return Object.assign(Error,{prepareStackTrace:p,stackTraceLimit:_}),k}at(o=this.at){let[a]=this.capture(1,o);if(!a)return{};let p={line:a.getLineNumber(),column:a.getColumnNumber()};H6(p,a.getFileName(),this._cwd),a.isConstructor()&&(p.constructor=!0),a.isEval()&&(p.evalOrigin=a.getEvalOrigin()),a.isNative()&&(p.native=!0);let _;try{_=a.getTypeName()}catch(L){}_&&_!=="Object"&&_!=="[object Object]"&&(p.type=_);let t=a.getFunctionName();t&&(p.function=t);let k=a.getMethodName();return k&&t!==k&&(p.method=k),p}parseLine(o){let a=o&&o.match(gB);if(!a)return null;let p=a[1]==="new",_=a[2],t=a[3],k=a[4],L=Number(a[5]),O=Number(a[6]),C=a[7],U=a[8],H=a[9],W=a[10]==="native",ne=a[11]===")",m,he={};if(U&&(he.line=Number(U)),H&&(he.column=Number(H)),ne&&C){let Ee=0;for(let ve=C.length-1;ve>0;ve--)if(C.charAt(ve)===")")Ee++;else if(C.charAt(ve)==="("&&C.charAt(ve-1)===" "&&(Ee--,Ee===-1&&C.charAt(ve-1)===" ")){let se=C.slice(0,ve-1);C=C.slice(ve+1),_+=` (${se}`;break}}if(_){let Ee=_.match(_B);Ee&&(_=Ee[1],m=Ee[2])}return H6(he,C,this._cwd),p&&(he.constructor=!0),t&&(he.evalOrigin=t,he.evalLine=L,he.evalColumn=O,he.evalFile=k&&k.replace(/\\/g,"/")),W&&(he.native=!0),_&&(he.function=_),m&&_!==m&&(he.method=m),he}};function H6(i,o,a){o&&(o=o.replace(/\\/g,"/"),o.startsWith(`${a}/`)&&(o=o.slice(a.length+1)),i.file=o)}function yB(i){if(i.length===0)return[];let o=i.map(a=>mB(a));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${o.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var gB=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),_B=/^(.*?) \[as (.*?)\]$/;j6.exports=l4});var V6=tt((jq,W6)=>{"use strict";W6.exports=(i,o)=>i.replace(/^\t+/gm,a=>" ".repeat(a.length*(o||2)))});var Y6=tt((zq,G6)=>{"use strict";var EB=V6(),DB=(i,o)=>{let a=[],p=i-o,_=i+o;for(let t=p;t<=_;t++)a.push(t);return a};G6.exports=(i,o,a)=>{if(typeof i!="string")throw new TypeError("Source code is missing.");if(!o||o<1)throw new TypeError("Line number must start from `1`.");if(i=EB(i).split(/\r?\n/),!(o>i.length))return a=Ht({around:3},a),DB(o,a.around).filter(p=>i[p-1]!==void 0).map(p=>({line:p,value:i[p-1]}))}});var s4=tt(nc=>{"use strict";var wB=nc&&nc.__createBinding||(Object.create?function(i,o,a,p){p===void 0&&(p=a),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[a]}})}:function(i,o,a,p){p===void 0&&(p=a),i[p]=o[a]}),SB=nc&&nc.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),TB=nc&&nc.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var a in i)a!=="default"&&Object.hasOwnProperty.call(i,a)&&wB(o,i,a);return SB(o,i),o},CB=nc&&nc.__rest||function(i,o){var a={};for(var p in i)Object.prototype.hasOwnProperty.call(i,p)&&o.indexOf(p)<0&&(a[p]=i[p]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var _=0,p=Object.getOwnPropertySymbols(i);_<p.length;_++)o.indexOf(p[_])<0&&Object.prototype.propertyIsEnumerable.call(i,p[_])&&(a[p[_]]=i[p[_]]);return a};Object.defineProperty(nc,"__esModule",{value:!0});var K6=TB(Mi()),x3=K6.forwardRef((i,o)=>{var{children:a}=i,p=CB(i,["children"]);let _=Object.assign(Object.assign({},p),{marginLeft:p.marginLeft||p.marginX||p.margin||0,marginRight:p.marginRight||p.marginX||p.margin||0,marginTop:p.marginTop||p.marginY||p.margin||0,marginBottom:p.marginBottom||p.marginY||p.margin||0,paddingLeft:p.paddingLeft||p.paddingX||p.padding||0,paddingRight:p.paddingRight||p.paddingX||p.padding||0,paddingTop:p.paddingTop||p.paddingY||p.padding||0,paddingBottom:p.paddingBottom||p.paddingY||p.padding||0});return K6.default.createElement("ink-box",{ref:o,style:_},a)});x3.displayName="Box";x3.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};nc.default=x3});var O3=tt(hg=>{"use strict";var R3=hg&&hg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(hg,"__esModule",{value:!0});var xB=R3(Mi()),Jv=R3(i4()),X6=R3(a3()),A3=({color:i,backgroundColor:o,dimColor:a,bold:p,italic:_,underline:t,strikethrough:k,inverse:L,wrap:O,children:C})=>{if(C==null)return null;let U=H=>(a&&(H=Jv.default.dim(H)),i&&(H=X6.default(H,i,"foreground")),o&&(H=X6.default(H,o,"background")),p&&(H=Jv.default.bold(H)),_&&(H=Jv.default.italic(H)),t&&(H=Jv.default.underline(H)),k&&(H=Jv.default.strikethrough(H)),L&&(H=Jv.default.inverse(H)),H);return xB.default.createElement("ink-text",{style:{fleLine truncated
`).slice(1):void 0,a=o?Z6.parseLine(o[0]):void 0,p,_=0;if((a==null?void 0:a.file)&&(a==null?void 0:a.line)&&Q6.existsSync(a.file)){let t=Q6.readFileSync(a.file,"utf8");if(p=MB.default(t,a.line),p)for(let{line:k}of p)_=Math.max(_,String(k).length)}return Xo.default.createElement(Z1.default,{flexDirection:"column",padding:1},Xo.default.createElement(Z1.default,null,Xo.default.createElement(zc.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),Xo.default.createElement(zc.default,null," ",i.message)),a&&Xo.default.createElement(Z1.default,{marginTop:1},Xo.default.createElement(zc.default,{dimColor:!0},a.file,":",a.line,":",a.column)),a&&p&&Xo.default.createElement(Z1.default,{marginTop:1,flexDirection:"column"},p.map(({line:t,value:k})=>Xo.default.createElement(Z1.default,{key:t},Xo.default.createElement(Z1.default,{width:_+1},Xo.default.createElement(zc.default,{dimColor:t!==a.line,backgroundColor:t===a.line?"red":void 0,color:t===a.line?"white":void 0},String(t).padStart(_," "),":")),Xo.default.createElement(zc.default,{key:t,backgroundColor:t===a.line?"red":void 0,color:t===a.line?"white":void 0}," "+k)))),i.stack&&Xo.default.createElement(Z1.default,{marginTop:1,flexDirection:"column"},i.stack.split(`
`).slice(1).map(t=>{let k=Z6.parseLine(t);return k?Xo.default.createElement(Z1.default,{key:t},Xo.default.createElement(zc.default,{dimColor:!0},"- "),Xo.default.createElement(zc.default,{dimColor:!0,bold:!0},k.function),Xo.default.createElement(zc.default,{dimColor:!0,color:"gray"}," ","(",k.file,":",k.line,":",k.column,")")):Xo.default.createElement(Z1.default,{key:t},Xo.default.createElement(zc.default,{dimColor:!0},"- "),Xo.default.createElement(zc.default,{dimColor:!0,bold:!0},t))})))};rc.default=kB});var tx=tt(ic=>{"use strict";var NB=ic&&ic.__createBinding||(Object.create?function(i,o,a,p){p===void 0&&(p=a),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[a]}})}:function(i,o,a,p){p===void 0&&(p=a),i[p]=o[a]}),LB=ic&&ic.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),FB=ic&&ic.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var a in i)a!=="default"&&Object.hasOwnProperty.call(i,a)&&NB(o,i,a);return LB(o,i),o},ih=ic&&ic.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(ic,"__esModule",{value:!0});var uh=FB(Mi()),ex=ih(nD()),PB=ih(g3()),IB=ih(E3()),bB=ih(w3()),BB=ih(T3()),UB=ih(o4()),jB=ih($6()),zB=" ",HB="",qB="",M3=class extends uh.PureComponent{constructor(){super(...arguments);this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=o=>{let{stdin:a}=this.props;if(!this.isRawModeSupported())throw a===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(a.setEncoding("utf8"),o){this.rawModeEnabledCount===0&&(a.addListener("data",this.handleInput),a.resume(),a.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount==0&&(a.setRawMode(!1),a.removeListener("data",this.handleInput),a.pause())},this.handleInput=o=>{o===""&&this.props.exitOnCtrlC&&this.handleExit(),o===qB&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(o===zB&&this.focusNext(),o===HB&&this.focusPrevious())},this.handleExit=o=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(o)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focusNext=()=>{this.setState(o=>{let a=o.focusables[0].id;return{activeFocusId:this.findNextFocusable(o)||a}})},this.focusPrevious=()=>{this.setState(o=>{let a=o.focusables[o.focusables.length-1].id;return{activeFocusId:this.findPreviousFocusable(o)||a}})},this.addFocusable=(o,{autoFocus:a})=>{this.setState(p=>{let _=p.activeFocusId;return!_&&a&&(_=o),{activeFocusId:_,focusables:[...p.focusables,{id:o,isActive:!0}]}})},this.removeFocusable=o=>{this.setState(a=>({activeFocusId:a.activeFocusId===o?void 0:a.activeFocusId,focusables:a.focusables.filter(p=>p.id!==o)}))},this.activateFocusable=o=>{this.setState(a=>({focusables:a.focusables.map(p=>p.id!==o?p:{id:o,isActive:!0})}))},this.deactivateFocusable=o=>{this.setState(a=>({activeFocusId:a.activeFocusId===o?void 0:a.activeFocusId,focusables:a.focusables.map(p=>p.id!==o?p:{id:o,isActive:!1})}))},this.findNextFocusable=o=>{let a=o.focusables.findIndex(p=>p.id===o.activeFocusId);for(let p=a+1;p<o.focusables.length;p++)if(o.focusables[p].isActive)return o.focusables[p].id},this.findPreviousFocusable=o=>{let a=o.focusables.findIndex(p=>p.id===o.activeFocusId);for(let p=a-1;p>=0;p--)if(o.focusables[p].isActive)return o.focusables[p].id}}static getDerivedStateFromError(o){return{error:o}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return uh.default.createElement(PB.default.Provider,{value:{exit:this.handleExit}},uh.default.createElement(IB.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},uh.default.createElement(bB.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},uh.default.createElement(BB.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},uh.default.createElement(UB.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious}},this.state.error?uh.default.createElement(jB.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){ex.default.hide(this.props.stdout)}componentWillUnmount(){ex.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(o){this.handleExit(o)}};ic.default=M3;M3.displayName="InternalApp"});var ux=tt(uc=>{"use strict";var WB=uc&&uc.__createBinding||(Object.create?function(i,o,a,p){p===void 0&&(p=a),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[a]}})}:function(i,o,a,p){p===void 0&&(p=a),i[p]=o[a]}),VB=uc&&uc.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),GB=uc&&uc.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var a in i)a!=="default"&&Object.hasOwnProperty.call(i,a)&&WB(o,i,a);return VB(o,i),o},oc=uc&&uc.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(uc,"__esModule",{value:!0});var YB=oc(Mi()),nx=Z8(),KB=oc(dS()),XB=oc(QE()),QB=oc(_S()),JB=oc(DS()),a4=oc(IC()),ZB=oc(A6()),$B=oc(tD()),eU=oc(N6()),tU=GB(bD()),nU=oc(m3()),rU=oc(tx()),Zv=process.env.CI==="false"?!1:QB.default,rx=()=>{},ix=class{constructor(o){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:a,outputHeight:p,staticOutput:_}=ZB.default(this.rootNode,this.options.stdout.columns||80),t=_&&_!==`
`;if(this.options.debug){t&&(this.fullStaticOutput+=_),this.options.stdout.write(this.fullStaticOutput+a);return}if(Zv){t&&this.options.stdout.write(_),this.lastOutput=a;return}if(t&&(this.fullStaticOutput+=_),p>=this.options.stdout.rows){this.options.stdout.write(XB.default.clearTerminal+this.fullStaticOutput+a),this.lastOutput=a;return}t&&(this.log.clear(),this.options.stdout.write(_),this.log(a)),!t&&a!==this.lastOutput&&this.throttledLog(a),this.lastOutput=a},JB.default(this),this.options=o,this.rootNode=tU.createNode("ink-root"),this.rootNode.onRender=o.debug?this.onRender:nx.throttle(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=KB.default.create(o.stdout),this.throttledLog=o.debug?this.log:nx.throttle(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=a4.default.createContainer(this.rootNode,!1,!1),this.unsubscribeExit=$B.default(this.unmount,{alwaysLast:!1}),process.env.DEV==="true"&&a4.default.injectIntoDevTools({bundleType:0,version:"16.13.1",rendererPackageName:"ink"}),o.patchConsole&&this.patchConsole(),Zv||(o.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{o.stdout.off("resize",this.onRender)})}render(o){let a=YB.default.createElement(rU.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},o);a4.default.updateContainer(a,this.container,null,rx)}writeToStdout(o){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(o+this.fullStaticOutput+this.lastOutput);return}if(Zv){this.options.stdout.write(o);return}this.log.clear(),this.options.stdout.write(o),this.log(this.lastOutput)}}writeToStderr(o){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(o),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(Zv){this.options.stderr.write(o);return}this.log.clear(),this.options.stderr.write(o),this.log(this.lastOutput)}}unmount(o){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),Zv?this.options.stdout.write(this.lastOutput+`
`):this.options.debug||this.log.done(),this.isUnmounted=!0,a4.default.updateContainer(null,this.container,null,rx),nU.default.delete(this.options.stdout),o instanceof Error?this.rejectExitPromise(o):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((o,a)=>{this.resolveExitPromise=o,this.rejectExitPromise=a})),this.exitPromise}clear(){!Zv&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=eU.default((o,a)=>{o==="stdout"&&this.writeToStdout(a),o==="stderr"&&(a.startsWith("The above error occurred")||this.writeToStderr(a))}))}};uc.default=ix});var lx=tt(mg=>{"use strict";var ox=mg&&mg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(mg,"__esModule",{value:!0});var iU=ox(ux()),f4=ox(m3()),uU=require("stream"),sU=(i,o)=>{let a=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},oU(o)),p=lU(a.stdout,()=>new iU.default(a));return p.render(i),{rerender:p.render,unmount:()=>p.unmount(),waitUntilExit:p.waitUntilExit,cleanup:()=>f4.default.delete(a.stdout),clear:p.clear}};mg.default=sU;var oU=(i={})=>i instanceof uU.Stream?{stdout:i,stdin:process.stdin}:i,lU=(i,o)=>{let a;return f4.default.has(i)?a=f4.default.get(i):(a=o(),f4.default.set(i,a)),a}});var ax=tt($1=>{"use strict";var aU=$1&&$1.__createBinding||(Object.create?function(i,o,a,p){p===void 0&&(p=a),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[a]}})}:function(i,o,a,p){p===void 0&&(p=a),i[p]=o[a]}),fU=$1&&$1.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),cU=$1&&$1.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var a in i)a!=="default"&&Object.hasOwnProperty.call(i,a)&&aU(o,i,a);return fU(o,i),o};Object.defineProperty($1,"__esModule",{value:!0});var yg=cU(Mi()),sx=i=>{let{items:o,children:a,style:p}=i,[_,t]=yg.useState(0),k=yg.useMemo(()=>o.slice(_),[o,_]);yg.useLayoutEffect(()=>{t(o.length)},[o.length]);let L=k.map((C,U)=>a(C,_+U)),O=yg.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},p),[p]);return yg.default.createElement("ink-box",{internal_static:!0,style:O},L)};sx.displayName="Static";$1.default=sx});var cx=tt(gg=>{"use strict";var dU=gg&&gg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(gg,"__esModule",{value:!0});var pU=dU(Mi()),fx=({children:i,transform:o})=>i==null?null:pU.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:o},i);fx.displayName="Transform";gg.default=fx});var px=tt(_g=>{"use strict";var hU=_g&&_g.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(_g,"__esModule",{value:!0});var vU=hU(Mi()),dx=({count:i=1})=>vU.default.createElement("ink-text",null,`
`.repeat(i));dx.displayName="Newline";_g.default=dx});var mx=tt(Eg=>{"use strict";var hx=Eg&&Eg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Eg,"__esModule",{value:!0});var mU=hx(Mi()),yU=hx(s4()),vx=()=>mU.default.createElement(yU.default,{flexGrow:1});vx.displayName="Spacer";Eg.default=vx});var c4=tt(Dg=>{"use strict";var gU=Dg&&Dg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Dg,"__esModule",{value:!0});var _U=Mi(),EU=gU(E3()),DU=()=>_U.useContext(EU.default);Dg.default=DU});var gx=tt(wg=>{"use strict";var wU=wg&&wg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(wg,"__esModule",{value:!0});var yx=Mi(),SU=wU(c4()),TU=(i,o={})=>{let{stdin:a,setRawMode:p,internal_exitOnCtrlC:_}=SU.default();yx.useEffect(()=>{if(o.isActive!==!1)return p(!0),()=>{p(!1)}},[o.isActive,p]),yx.useEffect(()=>{if(o.isActive===!1)return;let t=k=>{let L=String(k),O={upArrow:L==="",downArrow:L==="",leftArrow:L==="",rightArrow:L==="",pageDown:L==="[6~",pageUp:L==="[5~",return:L==="\r",escape:L==="",ctrl:!1,shift:!1,tab:L===" "||L==="",backspace:L==="\b",delete:L==="\x7F"||L==="[3~",meta:!1};L<=""&&!O.return&&(L=String.fromCharCode(L.charCodeAt(0)+"a".charCodeAt(0)-1),O.ctrl=!0),L.startsWith("")&&(L=L.slice(1),O.meta=!0);let C=L>="A"&&L<="Z",U=L>="\u0410"&&L<="\u042F";L.length===1&&(C||U)&&(O.shift=!0),O.tab&&L==="[Z"&&(O.shift=!0),(O.tab||O.backspace||O.delete)&&(L=""),(!(L==="c"&&O.ctrl)||!_)&&i(L,O)};return a==null||a.on("data",t),()=>{a==null||a.off("data",t)}},[o.isActive,a,_,i])};wg.default=TU});var _x=tt(Sg=>{"use strict";var CU=Sg&&Sg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Sg,"__esModule",{value:!0});var xU=Mi(),RU=CU(g3()),AU=()=>xU.useContext(RU.default);Sg.default=AU});var Ex=tt(Tg=>{"use strict";var OU=Tg&&Tg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Tg,"__esModule",{value:!0});var MU=Mi(),kU=OU(w3()),NU=()=>MU.useContext(kU.default);Tg.default=NU});var Dx=tt(Cg=>{"use strict";var LU=Cg&&Cg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Cg,"__esModule",{value:!0});var FU=Mi(),PU=LU(T3()),IU=()=>FU.useContext(PU.default);Cg.default=IU});var Sx=tt(xg=>{"use strict";var wx=xg&&xg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(xg,"__esModule",{value:!0});var Rg=Mi(),bU=wx(o4()),BU=wx(c4()),UU=({isActive:i=!0,autoFocus:o=!1}={})=>{let{isRawModeSupported:a,setRawMode:p}=BU.default(),{activeId:_,add:t,remove:k,activate:L,deactivate:O}=Rg.useContext(bU.default),C=Rg.useMemo(()=>Math.random().toString().slice(2,7),[]);return Rg.useEffect(()=>(t(C,{autoFocus:o}),()=>{k(C)}),[C,o]),Rg.useEffect(()=>{i?L(C):O(C)},[i,C]),Rg.useEffect(()=>{if(!(!a||!i))return p(!0),()=>{p(!1)}},[i]),{isFocused:Boolean(C)&&_===C}};xg.default=UU});var Tx=tt(Ag=>{"use strict";var jU=Ag&&Ag.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Ag,"__esModule",{value:!0});var zU=Mi(),HU=jU(o4()),qU=()=>{let i=zU.useContext(HU.default);return{enableFocus:i.enableFocus,disableFocus:i.disableFocus,focusNext:i.focusNext,focusPrevious:i.focusPrevious}};Ag.default=qU});var Cx=tt(k3=>{"use strict";Object.defineProperty(k3,"__esModule",{value:!0});k3.default=i=>{var o,a,p,_;return{width:(a=(o=i.yogaNode)===null||o===void 0?void 0:o.getComputedWidth())!==null&&a!==void 0?a:0,height:(_=(p=i.yogaNode)===null||p===void 0?void 0:p.getComputedHeight())!==null&&_!==void 0?_:0}}});var lc=tt(Yl=>{"use strict";Object.defineProperty(Yl,"__esModule",{value:!0});var WU=lx();Object.defineProperty(Yl,"render",{enumerable:!0,get:function(){return WU.default}});var VU=s4();Object.defineProperty(Yl,"Box",{enumerable:!0,get:function(){return VU.default}});var GU=O3();Object.defineProperty(Yl,"Text",{enumerable:!0,get:function(){return GU.default}});var YU=ax();Object.defineProperty(Yl,"Static",{enumerable:!0,get:function(){return YU.default}});var KU=cx();Object.defineProperty(Yl,"Transform",{enumerable:!0,get:function(){return KU.default}});var XU=px();Object.defineProperty(Yl,"Newline",{enumerable:!0,get:function(){return XU.default}});var QU=mx();Object.defineProperty(Yl,"Spacer",{enumerable:!0,get:function(){return QU.default}});var JU=gx();Object.defineProperty(Yl,"useInput",{enumerable:!0,get:function(){return JU.default}});var ZU=_x();Object.defineProperty(Yl,"useApp",{enumerable:!0,get:function(){return ZU.default}});var $U=c4();Object.defineProperty(Yl,"useStdin",{enumerable:!0,get:function(){return $U.default}});var ej=Ex();Object.defineProperty(Yl,"useStdout",{enumerable:!0,get:function(){return ej.default}});var tj=Dx();Object.defineProperty(Yl,"useStderr",{enumerable:!0,get:function(){return tj.default}});var nj=Sx();Object.defineProperty(Yl,"useFocus",{enumerable:!0,get:function(){return nj.default}});var rj=Tx() Line truncated
This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry.
`,examples:[["Open the search window","yarn search"]]});var Q5=Ug;var O4=vu(require("@yarnpkg/cli")),xo=vu(require("@yarnpkg/core"));var jg=vu(lc()),_2=vu(Mi());var J5=vu(lc()),Z5=vu(Mi()),R4=({length:i,active:o})=>{if(i===0)return null;let a=i>1?` ${"-".repeat(i-1)}`:" ";return Z5.default.createElement(J5.Text,{dimColor:!o},a)};var $5=function({active:i,skewer:o,options:a,value:p,onChange:_,sizes:t=[]}){let k=a.filter(({label:O})=>!!O).map(({value:O})=>O),L=a.findIndex(O=>O.value===p&&O.label!="");return v4(p,k,{active:i,minus:"left",plus:"right",set:_}),_2.default.createElement(_2.default.Fragment,null,a.map(({label:O},C)=>{let U=C===L,H=t[C]-1||0,W=O.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),ne=Math.max(0,H-W.length-2);return O?_2.default.createElement(jg.Box,{key:O,width:H,marginLeft:1},_2.default.createElement(jg.Text,{wrap:"truncate"},_2.default.createElement(d4,{active:U})," ",O),o?_2.default.createElement(R4,{active:i,length:ne}):null):_2.default.createElement(jg.Box,{key:`spacer-${C}`,width:H,marginLeft:1})}))};var i9=vu(require("@yarnpkg/plugin-essentials")),M4=vu(require("clipanion"));function td(){}td.prototype={diff:function(o,a){var p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},_=p.callback;typeof p=="function"&&(_=p,p={}),this.options=p;var t=this;function k(he){return _?(setTimeout(function(){_(void 0,he)},0),!0):he}o=this.castInput(o),a=this.castInput(a),o=this.removeEmpty(this.tokenize(o)),a=this.removeEmpty(this.tokenize(a));var L=a.length,O=o.length,C=1,U=L+O;p.maxEditLength&&(U=Math.min(U,p.maxEditLength));var H=[{newPos:-1,components:[]}],W=this.extractCommon(H[0],a,o,0);if(H[0].newPos+1>=L&&W+1>=O)return k([{value:this.join(a),count:a.length}]);function ne(){for(var he=-1*C;he<=C;he+=2){var Ee=void 0,ve=H[he-1],se=H[he+1],De=(se?se.newPos:0)-he;ve&&(H[he-1]=void 0);var pe=ve&&ve.newPos+1<L,me=se&&0<=De&&De<O;if(!pe&&!me){H[he]=void 0;continue}if(!pe||me&&ve.newPos<se.newPos?(Ee=Gz(se),t.pushComponent(Ee.components,void 0,!0)):(Ee=ve,Ee.newPos++,t.pushComponent(Ee.components,!0,void 0)),De=t.extractCommon(Ee,a,o,he),Ee.newPos+1>=L&&De+1>=O)return k(Vz(t,Ee.components,a,o,t.useLongestToken));H[he]=Ee}C++}if(_)(function he(){setTimeout(function(){if(C>U)return _();ne()||he()},0)})();else for(;C<=U;){var m=ne();if(m)return m}},pushComponent:function(o,a,p){var _=o[o.length-1];_&&_.added===a&&_.removed===p?o[o.length-1]={count:_.count+1,added:a,removed:p}:o.push({count:1,added:a,removed:p})},extractCommon:function(o,a,p,_){for(var t=a.length,k=p.length,L=o.newPos,O=L-_,C=0;L+1<t&&O+1<k&&this.equals(a[L+1],p[O+1]);)L++,O++,C++;return C&&o.components.push({count:C}),o.newPos=L,O},equals:function(o,a){return this.options.comparator?this.options.comparator(o,a):o===a||this.options.ignoreCase&&o.toLowerCase()===a.toLowerCase()},removeEmpty:function(o){for(var a=[],p=0;p<o.length;p++)o[p]&&a.push(o[p]);return a},castInput:function(o){return o},tokenize:function(o){return o.split("")},join:function(o){return o.join("")}};function Vz(i,o,a,p,_){for(var t=0,k=o.length,L=0,O=0;t<k;t++){var C=o[t];if(C.removed){if(C.value=i.join(p.slice(O,O+C.count)),O+=C.count,t&&o[t-1].added){var H=o[t-1];o[t-1]=o[t],o[t]=H}}else{if(!C.added&&_){var U=a.slice(L,L+C.count);U=U.map(function(ne,m){var he=p[O+m];return he.length>ne.length?he:ne}),C.value=i.join(U)}else C.value=i.join(a.slice(L,L+C.count));L+=C.count,C.added||(O+=C.count)}}var W=o[k-1];return k>1&&typeof W.value=="string"&&(W.added||W.removed)&&i.equals("",W.value)&&(o[k-2].value+=W.value,o.pop()),o}function Gz(i){return{newPos:i.newPos,components:i.components.slice(0)}}var aV=new td;function Yz(i,o){if(typeof i=="function")o.callback=i;else if(i)for(var a in i)i.hasOwnProperty(a)&&(o[a]=i[a]);return o}var e9=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,t9=/\S/,$3=new td;$3.equals=function(i,o){return this.options.ignoreCase&&(i=i.toLowerCase(),o=o.toLowerCase()),i===o||this.options.ignoreWhitespace&&!t9.test(i)&&!t9.test(o)};$3.tokenize=function(i){for(var o=i.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),a=0;a<o.length-1;a++)!o[a+1]&&o[a+2]&&e9.test(o[a])&&e9.test(o[a+2])&&(o[a]+=o[a+2],o.splice(a+1,2),a--);return o};function n9(i,o,a){return a=Yz(a,{ignoreWhitespace:!0}),$3.diff(i,o,a)}var r9=new td;r9.tokenize=function(i){var o=[],a=i.split(/(\n|\r\n)/);a[a.length-1]||a.pop();for(var p=0;p<a.length;p++){var _=a[p];p%2&&!this.options.newlineIsToken?o[o.length-1]+=_:(this.options.ignoreWhitespace&&(_=_.trim()),o.push(_))}return o};var Kz=new td;Kz.tokenize=function(i){return i.split(/(\S.+?[.!?])(?=\s+|$)/)};var Xz=new td;Xz.tokenize=function(i){return i.split(/([{}:;,]|\s+)/)};function A4(i){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?A4=function(o){return typeof o}:A4=function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},A4(i)}var Qz=Object.prototype.toString,zg=new td;zg.useLongestToken=! Line truncated
This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade.
`,examples:[["Open the upgrade window","yarn upgrade-interactive"]]});var s9=Hg;var Zz={commands:[Q5,s9]},$z=Zz;return Jz;})();
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
/**
* @license
* Lodash <https://lodash.com/>
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
* Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/
/** @license React v0.0.0-experimental-51a3aa6af
* react-debug-tools.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v0.0.0-experimental-51a3aa6af
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v0.0.0-experimental-51a3aa6af
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v0.18.0
* scheduler-tracing.development.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v0.18.0
* scheduler-tracing.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v0.18.0
* scheduler.development.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v0.18.0
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v0.24.0
* react-reconciler.development.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v0.24.0
* react-reconciler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.13.1
* react.development.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.13.1
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
return plugin;
}
};
-9
View File
@@ -1,9 +0,0 @@
/* eslint-disable */
//prettier-ignore
module.exports = {
name: "@yarnpkg/plugin-typescript",
factory: function (require) {
var plugin=(()=>{var Ft=Object.create,H=Object.defineProperty,Bt=Object.defineProperties,Kt=Object.getOwnPropertyDescriptor,zt=Object.getOwnPropertyDescriptors,Gt=Object.getOwnPropertyNames,Q=Object.getOwnPropertySymbols,$t=Object.getPrototypeOf,ne=Object.prototype.hasOwnProperty,De=Object.prototype.propertyIsEnumerable;var Re=(e,t,r)=>t in e?H(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,u=(e,t)=>{for(var r in t||(t={}))ne.call(t,r)&&Re(e,r,t[r]);if(Q)for(var r of Q(t))De.call(t,r)&&Re(e,r,t[r]);return e},g=(e,t)=>Bt(e,zt(t)),Lt=e=>H(e,"__esModule",{value:!0});var R=(e,t)=>{var r={};for(var s in e)ne.call(e,s)&&t.indexOf(s)<0&&(r[s]=e[s]);if(e!=null&&Q)for(var s of Q(e))t.indexOf(s)<0&&De.call(e,s)&&(r[s]=e[s]);return r};var I=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Vt=(e,t)=>{for(var r in t)H(e,r,{get:t[r],enumerable:!0})},Qt=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Gt(t))!ne.call(e,s)&&s!=="default"&&H(e,s,{get:()=>t[s],enumerable:!(r=Kt(t,s))||r.enumerable});return e},C=e=>Qt(Lt(H(e!=null?Ft($t(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var xe=I(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});function _(e){let t=[...e.caches],r=t.shift();return r===void 0?ve():{get(s,n,a={miss:()=>Promise.resolve()}){return r.get(s,n,a).catch(()=>_({caches:t}).get(s,n,a))},set(s,n){return r.set(s,n).catch(()=>_({caches:t}).set(s,n))},delete(s){return r.delete(s).catch(()=>_({caches:t}).delete(s))},clear(){return r.clear().catch(()=>_({caches:t}).clear())}}}function ve(){return{get(e,t,r={miss:()=>Promise.resolve()}){return t().then(n=>Promise.all([n,r.miss(n)])).then(([n])=>n)},set(e,t){return Promise.resolve(t)},delete(e){return Promise.resolve()},clear(){return Promise.resolve()}}}J.createFallbackableCache=_;J.createNullCache=ve});var Ee=I(($s,qe)=>{qe.exports=xe()});var Te=I(ae=>{"use strict";Object.defineProperty(ae,"__esModule",{value:!0});function Jt(e={serializable:!0}){let t={};return{get(r,s,n={miss:()=>Promise.resolve()}){let a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);let o=s(),d=n&&n.miss||(()=>Promise.resolve());return o.then(y=>d(y)).then(()=>o)},set(r,s){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(s):s,Promise.resolve(s)},delete(r){return delete t[JSON.stringify(r)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}ae.createInMemoryCache=Jt});var we=I((Vs,Me)=>{Me.exports=Te()});var Ce=I(M=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0});function Xt(e,t,r){let s={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers(){return e===oe.WithinHeaders?s:{}},queryParameters(){return e===oe.WithinQueryParameters?s:{}}}}function Yt(e){let t=0,r=()=>(t++,new Promise(s=>{setTimeout(()=>{s(e(r))},Math.min(100*t,1e3))}));return e(r)}function ke(e,t=(r,s)=>Promise.resolve()){return Object.assign(e,{wait(r){return ke(e.then(s=>Promise.all([t(s,r),s])).then(s=>s[1]))}})}function Zt(e){let t=e.length-1;for(t;t>0;t--){let r=Math.floor(Math.random()*(t+1)),s=e[t];e[t]=e[r],e[r]=s}return e}function er(e,t){return Object.keys(t!==void 0?t:{}).forEach(r=>{e[r]=t[r](e)}),e}function tr(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}var rr="4.2.0",sr=e=>()=>e.transporter.requester.destroy(),oe={WithinQueryParameters:0,WithinHeaders:1};M.AuthMode=oe;M.addMethods=er;M.createAuth=Xt;M.createRetryablePromise=Yt;M.createWaitablePromise=ke;M.destroy=sr;M.encode=tr;M.shuffle=Zt;M.version=rr});var F=I((Js,Ue)=>{Ue.exports=Ce()});var Ne=I(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});var nr={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};ie.MethodEnum=nr});var B=I((Ys,We)=>{We.exports=Ne()});var Ze=I(A=>{"use strict";Object.defineProperty(A,"__esModule",{value:!0});var He=B();function ce(e,t){let r=e||{},s=r.data||{};return Object.keys(r).forEach(n=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(n)===-1&&(s[n]=r[n])}),{data:Object.entries(s).length>0?s:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var X={Read:1,Write:2,Any:3},U={Up:1,Down:2,Timeouted:3},_e=2*60*1e3;function ue(e,t=U.Up){return g(u({},e),{status:t,lastUpdate:Date.now()})}function Fe(e){return e.status===U.Up||Date.now()-e.lastUpdate>_e}function Be(e){return e.status===U.Timeouted&&Date.now()-e.lastUpdate<=_e}function le(e){return{protocol:e.protocol||"https",url:e.url,accept:e.accept||X.Any}}function ar(e,t){return Promise.all(t.map(r=>e.get(r,()=>Promise.resolve(ue(r))))).then(r=>{let s=r.filter(d=>Fe(d)),n=r.filter(d=>Be(d)),a=[...s,...n],o=a.length>0?a.map(d=>le(d)):t;return{getTimeout(d,y){return(n.length===0&&d===0?1:n.length+3+d)*y},statelessHosts:o}})}var or=({isTimedOut:e,status:t})=>!e&&~~t==0,ir=e=>{let t=e.status;return e.isTimedOut||or(e)||~~(t/100)!=2&&~~(t/100)!=4},cr=({status:e})=>~Line truncated
return plugin;
}
};
-823
View File
@@ -1,823 +0,0 @@
#!/usr/bin/env node
/* eslint-disable */
//prettier-ignore
(()=>{var dfe=Object.create;var jS=Object.defineProperty;var Cfe=Object.getOwnPropertyDescriptor;var mfe=Object.getOwnPropertyNames;var Efe=Object.getPrototypeOf,Ife=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 y=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ht=(r,e)=>{for(var t in e)jS(r,t,{get:e[t],enumerable:!0})},yfe=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of mfe(e))!Ife.call(r,n)&&n!==t&&jS(r,n,{get:()=>e[n],enumerable:!(i=Cfe(e,n))||i.enumerable});return r};var ne=(r,e,t)=>(t=r!=null?dfe(Efe(r)):{},yfe(e||!r||!r.__esModule?jS(t,"default",{value:r,enumerable:!0}):t,r));var aK=y((uZe,oK)=>{oK.exports=sK;sK.sync=Gfe;var iK=J("fs");function Hfe(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<t.length;i++){var n=t[i].toLowerCase();if(n&&r.substr(-n.length).toLowerCase()===n)return!0}return!1}function nK(r,e,t){return!r.isSymbolicLink()&&!r.isFile()?!1:Hfe(e,t)}function sK(r,e,t){iK.stat(r,function(i,n){t(i,i?!1:nK(n,r,e))})}function Gfe(r,e){return nK(iK.statSync(r),r,e)}});var gK=y((gZe,uK)=>{uK.exports=lK;lK.sync=Yfe;var AK=J("fs");function lK(r,e,t){AK.stat(r,function(i,n){t(i,i?!1:cK(n,e))})}function Yfe(r,e){return cK(AK.statSync(r),e)}function cK(r,e){return r.isFile()&&jfe(r,e)}function jfe(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 hK=y((hZe,fK)=>{var fZe=J("fs"),OI;process.platform==="win32"||global.TESTING_WINDOWS?OI=aK():OI=gK();fK.exports=av;av.sync=qfe;function av(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){av(r,e||{},function(s,o){s?n(s):i(o)})})}OI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function qfe(r,e){try{return OI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var yK=y((pZe,IK)=>{var _g=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",pK=J("path"),Jfe=_g?";":":",dK=hK(),CK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),mK=(r,e)=>{let t=e.colon||Jfe,i=r.match(/\//)||_g&&r.match(/\\/)?[""]:[..._g?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=_g?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=_g?n.split(t):[""];return _g&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},EK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=mK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(CK(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=pK.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];dK(c+p,{pathExt:s},(C,w)=>{if(!C&&w)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)},Wfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=mK(r,e),s=[];for(let o=0;o<t.length;o++){let a=t[o],l=/^".*"$/.test(a)?a.slice(1,-1):a,c=pK.join(l,r),u=!l&&/^\.[\\\/]/.test(r)?r.slice(0,2)+c:c;for(let g=0;g<i.length;g++){let f=u+i[g];try{if(dK.sync(f,{pathExt:n}))if(e.all)s.push(f);else return f}catch{}}}if(e.all&&s.length)return s;if(e.nothrow)return null;throw CK(r)};IK.exports=EK;EK.sync=Wfe});var BK=y((dZe,Av)=>{"use strict";var wK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};Av.exports=wK;Av.exports.default=wK});var vK=y((CZe,SK)=>{"use strict";var bK=J("path"),zfe=yK(),Vfe=BK();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=zfe.sync(r.command,{path:t[Vfe({env:t})],pathExt:e?bK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=bK.resolve(n?r.options.cwd:"",o)),o}function Xfe(r){return QK(r)||QK(r,!0)}SK.exports=Xfe});var xK=y((mZe,cv)=>{"use strict";var lv=/([()\][%!^"`<>&|;, *?])/g;function _fe(r){return r=r.replace(lv,"^$1"),r}function Zfe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(lv,"^$1"),e&&(r=r.replace(lv,"^$1")),r}cv.exports.command=_fe;cv.exports.argument=Zfe});var DK=y((EZe,PK)=>{"use strict";PK.exports=/^#!(.*)/});var RK=y((IZe,kK)=>{"use strict";var $fe=DK();kK.exportLine truncated
`,Rn=de(`\\
`,!1),$n=function(){return""},es="\\",ut=de("\\",!1),yo=/^[\\$"`]/,at=Ye(["\\","$",'"',"`"],!1,!1),ln=function(m){return m},S="\\a",Lt=de("\\a",!1),Tg=function(){return"a"},_l="\\b",Vp=de("\\b",!1),Xp=function(){return"\b"},_p=/^[Ee]/,Zp=Ye(["E","e"],!1,!1),$p=function(){return"\x1B"},G="\\f",yt=de("\\f",!1),BA=function(){return"\f"},Wi="\\n",Zl=de("\\n",!1),We=function(){return`
`},Ca="\\r",Lg=de("\\r",!1),uI=function(){return"\r"},ed="\\t",gI=de("\\t",!1),ar=function(){return" "},Fn="\\v",$l=de("\\v",!1),td=function(){return"\v"},Ms=/^[\\'"?]/,ma=Ye(["\\","'",'"',"?"],!1,!1),cn=function(m){return String.fromCharCode(parseInt(m,16))},ke="\\x",Og=de("\\x",!1),ec="\\u",Us=de("\\u",!1),tc="\\U",bA=de("\\U",!1),Mg=function(m){return String.fromCodePoint(parseInt(m,16))},Ug=/^[0-7]/,Ea=Ye([["0","7"]],!1,!1),Ia=/^[0-9a-fA-f]/,$e=Ye([["0","9"],["a","f"],["A","f"]],!1,!1),wo=rt(),QA="-",rc=de("-",!1),Ks="+",ic=de("+",!1),fI=".",rd=de(".",!1),Kg=function(m,Q,F){return{type:"number",value:(m==="-"?-1:1)*parseFloat(Q.join("")+"."+F.join(""))}},id=function(m,Q){return{type:"number",value:(m==="-"?-1:1)*parseInt(Q.join(""))}},hI=function(m){return{type:"variable",...m}},nc=function(m){return{type:"variable",name:m}},pI=function(m){return m},Hg="*",SA=de("*",!1),Nr="/",dI=de("/",!1),Hs=function(m,Q,F){return{type:Q==="*"?"multiplication":"division",right:F}},Gs=function(m,Q){return Q.reduce((F,K)=>({left:F,...K}),m)},Gg=function(m,Q,F){return{type:Q==="+"?"addition":"subtraction",right:F}},vA="$((",R=de("$((",!1),q="))",pe=de("))",!1),Ne=function(m){return m},xe="$(",qe=de("$(",!1),dt=function(m){return m},Ft="${",Nn=de("${",!1),vS=":-",AU=de(":-",!1),lU=function(m,Q){return{name:m,defaultValue:Q}},xS=":-}",cU=de(":-}",!1),uU=function(m){return{name:m,defaultValue:[]}},PS=":+",gU=de(":+",!1),fU=function(m,Q){return{name:m,alternativeValue:Q}},DS=":+}",hU=de(":+}",!1),pU=function(m){return{name:m,alternativeValue:[]}},kS=function(m){return{name:m}},dU="$",CU=de("$",!1),mU=function(m){return e.isGlobPattern(m)},EU=function(m){return m},RS=/^[a-zA-Z0-9_]/,FS=Ye([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),NS=function(){return O()},TS=/^[$@*?#a-zA-Z0-9_\-]/,LS=Ye(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),IU=/^[(){}<>$|&; \t"']/,Yg=Ye(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),OS=/^[<>&; \t"']/,MS=Ye(["<",">","&",";"," "," ",'"',"'"],!1,!1),CI=/^[ \t]/,mI=Ye([" "," "],!1,!1),b=0,Fe=0,xA=[{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 O(){return r.substring(Fe,b)}function X(){return Et(Fe,b)}function te(m,Q){throw Q=Q!==void 0?Q:Et(Fe,b),Fi([At(m)],r.substring(Fe,b),Q)}function ye(m,Q){throw Q=Q!==void 0?Q:Et(Fe,b),Tn(m,Q)}function de(m,Q){return{type:"literal",text:m,ignoreCase:Q}}function Ye(m,Q,F){return{type:"class",parts:m,inverted:Q,ignoreCase:F}}function rt(){return{type:"any"}}function wt(){return{type:"end"}}function At(m){return{type:"other",description:m}}function et(m){var Q=xA[m],F;if(Q)return Q;for(F=m-1;!xA[F];)F--;for(Q=xA[F],Q={line:Q.line,column:Q.column};F<m;)r.charCodeAt(F)===10?(Q.line++,Q.column=1):Q.column++,F++;return xA[m]=Q,Q}function Et(m,Q){var F=et(m),K=et(Q);return{start:{offset:m,line:F.line,column:F.column},end:{offset:Q,line:K.line,column:K.column}}}function Be(m){b<d||(b>d&&(d=b,E=[]),E.push(m))}function Tn(m,Q){return new uc(m,null,null,Q)}function Fi(m,Q,F){return new uc(uc.buildMessage(m,Q),m,Q,F)}function PA(){var m,Q;return m=b,Q=Kr(),Q===t&&(Q=null),Q!==t&&(Fe=m,Q=s(Q)),m=Q,m}function Kr(){var m,Q,F,K,ce;if(m=b,Q=Hr(),Q!==t){for(F=[],K=Me();K!==t;)F.push(K),K=Me();F!==t?(K=ya(),K!==t?(ce=ts(),ce===t&&(ce=null),ce!==t?(Fe=m,Q=o(Q,K,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=Hr(),Q!==t){for(F=[],K=Me();K!==t;)F.push(K),K=Me();F!==t?(K=ya(),K===t&&(K=null),K!==t?(Fe=m,Q=a(Q,K),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function ts(){var m,Q,F,K,ce;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t)if(F=Kr(),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();K!==t?(Fe=m,Q=l(F),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function ya(){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 Hr(){var m,Q,F;return m=b,Q=yU(),Q!==t?(F=$ge(),F===t&&(F=null),F!==t?(Fe=m,Q=h(Q,F),m=Q):(b=m,m=t)):(b=m,m=t),m}function $ge(){var m,Q,F,K,ce,Qe,ft;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t)if(F=efe(),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();if(K!==t)if(ce=Hr(),ce!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(Fe=m,Q=p(F,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 efe(){var m;return r.substr(b,2)===C?(m=C,b+=2):(m=t,I===0&&Be(w)),m===t&&(r.substr(b,2)===B?(m=B,b+=2):(m=t,I===0&&Be(v))),m}function yU(){var m,Q,F;return m=b,Q=ife(),Q!==t?(F=tfe(),F===t&&(F=null),F!==t?(Fe=m,Q=D(Q,F),m=Q):(b=m,m=t)):(b=m,m=t),m}function tfe(){var m,Q,F,K,ce,Qe,ft;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t)if(F=rfe(),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();if(K!==t)if(ce=yU(),ce!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(Fe=m,Q=T(F,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;retLine truncated
\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;o<this.buffer.length&&`\0\r
\x85\u2028\u2029`.indexOf(this.buffer.charAt(o))===-1;)if(o+=1,o-this.position>t/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),ZK.repeat(" ",e)+i+a+s+`
`+ZK.repeat(" ",e+this.position-n+i.length)+"^"};wv.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};$K.exports=wv});var Ai=y((jZe,r2)=>{"use strict";var t2=tf(),whe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Bhe=["scalar","sequence","mapping"];function bhe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function Qhe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(whe.indexOf(t)===-1)throw new t2('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=bhe(e.styleAliases||null),Bhe.indexOf(this.kind)===-1)throw new t2('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}r2.exports=Qhe});var dc=y((qZe,n2)=>{"use strict";var i2=pc(),jI=tf(),She=Ai();function Bv(r,e,t){var i=[];return r.include.forEach(function(n){t=Bv(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 vhe(){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<t;e+=1)arguments[e].forEach(i);return r}function rf(r){this.include=r.include||[],this.implicit=r.implicit||[],this.explicit=r.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&e.loadKind!=="scalar")throw new jI("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=Bv(this,"implicit",[]),this.compiledExplicit=Bv(this,"explicit",[]),this.compiledTypeMap=vhe(this.compiledImplicit,this.compiledExplicit)}rf.DEFAULT=null;rf.create=function(){var e,t;switch(arguments.length){case 1:e=rf.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new jI("Wrong number of arguments for Schema.create function")}if(e=i2.toArray(e),t=i2.toArray(t),!e.every(function(i){return i instanceof rf}))throw new jI("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(i){return i instanceof She}))throw new jI("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new rf({include:e,explicit:t})};n2.exports=rf});var o2=y((JZe,s2)=>{"use strict";var xhe=Ai();s2.exports=new xhe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var A2=y((WZe,a2)=>{"use strict";var Phe=Ai();a2.exports=new Phe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var c2=y((zZe,l2)=>{"use strict";var Dhe=Ai();l2.exports=new Dhe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var qI=y((VZe,u2)=>{"use strict";var khe=dc();u2.exports=new khe({explicit:[o2(),A2(),c2()]})});var f2=y((XZe,g2)=>{"use strict";var Rhe=Ai();function Fhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function Nhe(){return null}function The(r){return r===null}g2.exports=new Rhe("tag:yaml.org,2002:null",{kind:"scalar",resolve:Fhe,construct:Nhe,predicate:The,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var p2=y((_Ze,h2)=>{"use strict";var Lhe=Ai();function Ohe(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 Mhe(r){return r==="true"||r==="True"||r==="TRUE"}function Uhe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}h2.exports=new Lhe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Ohe,construct:Mhe,predicate:Uhe,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 C2=y((ZZe,d2)=>{"use strict";var Khe=pc(),Hhe=Ai();function Ghe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function Yhe(r){return 48<=r&&r<=55}function jhe(r){return 48<=r&&r<=57}function qhe(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<e;t++)if(n=r[t],n!=="_"){if(n!=="0"&&n!=="1")return!1;i=!0}return i&&n!=="_"}if(n==="x"){for(t++;t<e;t++)if(n=r[t],n!=="_"){if(!Ghe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}for(;t<e;t++)if(n=r[t],n!=="_"){if(!Yhe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}if(n==="_")return!1;for(;t<e;t++)if(n=r[t],n!=="_"){if(n===":")break;if(!jhe(r.charCodeAt(t)))return!1;i=!0}return!i||n==="_"?!1:n!==":"?!0:/^(:[0-5]?[0-9])+$/.test(r.slice(t)) Line truncated
\r`;function cpe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=Sv;for(t=0;t<n;t++)if(e=s.indexOf(r.charAt(t)),!(e>64)){if(e<0)return!1;i+=6}return i%8===0}function upe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=Sv,o=0,a=[];for(e=0;e<n;e++)e%4===0&&e&&(a.push(o>>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),Cc?Cc.from?Cc.from(a):new Cc(a):a}function gpe(r){var e="",t=0,i,n,s=r.length,o=Sv;for(i=0;i<s;i++)i%3===0&&i&&(e+=o[t>>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 fpe(r){return Cc&&Cc.isBuffer(r)}D2.exports=new lpe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:cpe,construct:upe,predicate:fpe,represent:gpe})});var F2=y((s$e,R2)=>{"use strict";var hpe=Ai(),ppe=Object.prototype.hasOwnProperty,dpe=Object.prototype.toString;function Cpe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t<i;t+=1){if(n=a[t],o=!1,dpe.call(n)!=="[object Object]")return!1;for(s in n)if(ppe.call(n,s))if(!o)o=!0;else return!1;if(!o)return!1;if(e.indexOf(s)===-1)e.push(s);else return!1}return!0}function mpe(r){return r!==null?r:[]}R2.exports=new hpe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Cpe,construct:mpe})});var T2=y((o$e,N2)=>{"use strict";var Epe=Ai(),Ipe=Object.prototype.toString;function ype(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<t;e+=1){if(i=o[e],Ipe.call(i)!=="[object Object]"||(n=Object.keys(i),n.length!==1))return!1;s[e]=[n[0],i[n[0]]]}return!0}function wpe(r){if(r===null)return[];var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1)i=o[e],n=Object.keys(i),s[e]=[n[0],i[n[0]]];return s}N2.exports=new Epe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:ype,construct:wpe})});var O2=y((a$e,L2)=>{"use strict";var Bpe=Ai(),bpe=Object.prototype.hasOwnProperty;function Qpe(r){if(r===null)return!0;var e,t=r;for(e in t)if(bpe.call(t,e)&&t[e]!==null)return!1;return!0}function Spe(r){return r!==null?r:{}}L2.exports=new Bpe("tag:yaml.org,2002:set",{kind:"mapping",resolve:Qpe,construct:Spe})});var nf=y((A$e,M2)=>{"use strict";var vpe=dc();M2.exports=new vpe({include:[Qv()],implicit:[S2(),x2()],explicit:[k2(),F2(),T2(),O2()]})});var K2=y((l$e,U2)=>{"use strict";var xpe=Ai();function Ppe(){return!0}function Dpe(){}function kpe(){return""}function Rpe(r){return typeof r>"u"}U2.exports=new xpe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Ppe,construct:Dpe,predicate:Rpe,represent:kpe})});var G2=y((c$e,H2)=>{"use strict";var Fpe=Ai();function Npe(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 Tpe(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 Lpe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function Ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}H2.exports=new Fpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:Npe,construct:Tpe,predicate:Ope,represent:Lpe})});var q2=y((u$e,j2)=>{"use strict";var JI;try{Y2=J,JI=Y2("esprima")}catch{typeof window<"u"&&(JI=window.esprima)}var Y2,Mpe=Ai();function Upe(r){if(r===null)return!1;try{var e="("+r+")",t=JI.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 Kpe(r){var e="("+r+")",t=JI.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 Hpe(r){return r.toString()}function Gpe(r){return Object.prototype.toString.call(r)==="[object Function]"}j2.exports=new Mpe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Upe,construct:Kpe,predicate:Gpe,represent:Hpe})});var Ed=y((g$e,W2)=>{"use strict";var J2=dc();W2.exports=J2.DEFAULT=new J2({include:[nf()],explicit:[K2(),G2(),q2()]})});var gH=y((f$e,Id)=>{"use strict";var Qa=pc(),eH=tf(),Ype=e2(),tH=nf(),jpe=Ed(),NA=Object.prototype.hasOwnProperty,WI=1,rH=2,iH=3,zI=4,vv=1,qpe=2,z2=3,Jpe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC Line truncated
`: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 Zpe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var oH=new Array(256),aH=new Array(256);for(mc=0;mc<256;mc++)oH[mc]=X2(mc)?1:0,aH[mc]=X2(mc);var mc;function $pe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||jpe,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 AH(r,e){return new eH(e,new Ype(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw AH(r,e)}function VI(r,e){r.onWarning&&r.onWarning.call(null,AH(r,e))}var _2={YAML:function(e,t,i){var n,s,o;e.version!==null&&gt(e,"duplication of %YAML directive"),i.length!==1&&gt(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&gt(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&gt(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&VI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&&gt(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],nH.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),NA.call(e.tagMap,n)&&gt(e,'there is a previously declared suffix for "'+n+'" tag handle'),sH.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function FA(r,e,t,i){var n,s,o,a;if(e<t){if(a=r.input.slice(e,t),i)for(n=0,s=a.length;n<s;n+=1)o=a.charCodeAt(n),o===9||32<=o&&o<=1114111||gt(r,"expected valid JSON character");else Jpe.test(a)&&gt(r,"the stream contains non-printable characters");r.result+=a}}function Z2(r,e,t,i){var n,s,o,a;for(Qa.isObject(t)||gt(r,"cannot merge mappings; the provided source object is unacceptable"),n=Object.keys(t),o=0,a=n.length;o<a;o+=1)s=n[o],NA.call(e,s)||(e[s]=t[s],i[s]=!0)}function of(r,e,t,i,n,s,o,a){var l,c;if(Array.isArray(n))for(n=Array.prototype.slice.call(n),l=0,c=n.length;l<c;l+=1)Array.isArray(n[l])&&gt(r,"nested arrays are not supported inside keys"),typeof n=="object"&&V2(n[l])==="[object Object]"&&(n[l]="[object Object]");if(typeof n=="object"&&V2(n)==="[object Object]"&&(n="[object Object]"),n=String(n),e===null&&(e={}),i==="tag:yaml.org,2002:merge")if(Array.isArray(s))for(l=0,c=s.length;l<c;l+=1)Z2(r,e,s[l],t);else Z2(r,e,s,t);else!r.json&&!NA.call(t,n)&&NA.call(e,n)&&(r.line=o||r.line,r.position=a||r.position,gt(r,"duplicated mapping key")),e[n]=s,delete t[n];return e}function xv(r){var e;e=r.input.charCodeAt(r.position),e===10?r.position++:e===13?(r.position++,r.input.charCodeAt(r.position)===10&&r.position++):gt(r,"a line break is expected"),r.line+=1,r.lineStart=r.position}function _r(r,e,t){for(var i=0,n=r.input.charCodeAt(r.position);n!==0;){for(;Ec(n);)n=r.input.charCodeAt(++r.position);if(e&&n===35)do n=r.input.charCodeAt(++r.position);while(n!==10&&n!==13&&n!==0);if(So(n))for(xv(r),n=r.input.charCodeAt(r.position),i++,r.lineIndent=0;n===32;)r.lineIndent++,n=r.input.charCodeAt(++r.position);else break}return t!==-1&&i!==0&&r.lineIndent<t&&VI(r,"deficient indentation"),i}function XI(r){var e=r.position,t;return t=r.input.charCodeAt(e),!!((t===45||t===46)&&t===r.input.charCodeAt(e+1)&&t===r.input.charCodeAt(e+2)&&(e+=3,t=r.input.charCodeAt(e),t===0||fn(t)))}function Pv(r,e){e===1?r.result+=" ":e>1&&(r.result+=Qa.repeat(`
`,e-1))}function ede(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)||sf(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&&sf(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&&sf(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&XI(r)||t&&sf(h))break;if(So(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,_r(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&&(FA(r,s,o,!1),Pv(r,r.line-l),s=o=r.position,a=!1),Ec(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return FA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function tde(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(FA(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 So(t)?(FA(r,i,n,!0),Pv(r,_r(r,!1,e)),i=n=r.position):r.position===r.lineStart&&XI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function rde(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 FA(r,t,r.position,!0),r.position++,!0;if(a===92){if(FA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),So(a))_r(r,!1,e);else if(a<256&&oH[a])r.result+=aH[a],r.position++;else if((o=Xpe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=Vpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=Zpe(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else So(a)?(FA(r,t,i,!0),Pv(r,_r(r,!1,e)),t=i=r.position):r.position===r.lineStart&&XI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function ide(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,C,w;if(w=r.input.charCodeAt(r.position),w===91)l=93,g=!1,s=[];else if(w===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),w=r.input.charCodeAt(++r.position);w!==0;){if(_r(r,!0,e),w=r.input.charCodeAt(r.position),w===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),p=h=C=null,c=u=!1,w===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,_r(r,!0,e))),i=r.line,af(r,e,WI,!1,!0),p=r.tag,h=r.result,_r(r,!0,e),w=r.input.charCodeAt(r.position),(u||r.line===i)&&w===58&&(c=!0,w=r.input.charCodeAt(++r.position),_r(r,!0,e),af(r,e,WI,!1,!0),C=r.result),g?of(r,s,f,p,h,C):c?s.push(of(r,null,f,p,h,C)):s.push(h),_r(r,!0,e),w=r.input.charCodeAt(r.position),w===44?(t=!0,w=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function nde(r,e){var t,i,n=vv,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)vv===n?n=g===43?z2:qpe:gt(r,"repeat of a chomping mode identifier");else if((u=_pe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(Ec(g)){do g=r.input.charCodeAt(++r.position);while(Ec(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!So(g)&&g!==0)}for(;g!==0;){for(xv(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndent<a)&&g===32;)r.lineIndent++,g=r.input.charCodeAt(++r.position);if(!o&&r.lineIndent>a&&(a=r.lineIndent),So(g)){l++;continue}if(r.lineIndent<a){n===z2?r.result+=Qa.repeat(`
`,s?1+l:l):n===vv&&s&&(r.result+=`
`);break}for(i?Ec(g)?(c=!0,r.result+=Qa.repeat(`
`,s?1+l:l)):c?(c=!1,r.result+=Qa.repeat(`
`,l+1)):l===0?s&&(r.result+=" "):r.result+=Qa.repeat(`
`,l):r.result+=Qa.repeat(`
`,s?1+l:l),s=!0,o=!0,l=0,t=r.position;!So(g)&&g!==0;)g=r.input.charCodeAt(++r.position);FA(r,t,r.position,!1)}return!0}function $2(r,e){var t,i=r.tag,n=r.anchor,s=[],o,a=!1,l;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),l=r.input.charCodeAt(r.position);l!==0&&!(l!==45||(o=r.input.charCodeAt(r.position+1),!fn(o)));){if(a=!0,r.position++,_r(r,!0,-1)&&r.lineIndent<=e){s.push(null),l=r.input.charCodeAt(r.position);continue}if(t=r.line,af(r,e,iH,!1,!0),s.push(r.result),_r(r,!0,-1),l=r.input.charCodeAt(r.position),(r.line===t||r.lineIndent>e)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndent<e)break}return a?(r.tag=i,r.anchor=n,r.kind="sequence",r.result=s,!0):!1}function sde(r,e,t){var i,n,s,o,a=r.tag,l=r.anchor,c={},u={},g=null,f=null,h=null,p=!1,C=!1,w;for(r.anchor!==null&&(r.anchorMap[r.anchor]=c),w=r.input.charCodeAt(r.position);w!==0;){if(i=r.input.charCodeAt(r.position+1),s=r.line,o=r.position,(w===63||w===58)&&fn(i))w===63?(p&&(of(r,c,u,g,f,null),g=f=h=null),C=!0,p=!0,n=!0):p?(p=!1,n=!0):gt(r,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),r.position+=1,w=i;else if(af(r,t,rH,!1,!0))if(r.line===s){for(w=r.input.charCodeAt(r.position);Ec(w);)w=r.input.charCodeAt(++r.position);if(w===58)w=r.input.charCodeAt(++r.position),fn(w)||gt(r,"a whitespace character is expected after the key-value separator within a block mapping"),p&&(of(r,c,u,g,f,null),g=f=h=null),C=!0,p=!1,n=!1,g=r.tag,f=r.result;else if(C)gt(r,"can not read an implicit mapping pair; a colon is missed");else return r.tag=a,r.anchor=l,!0}else if(C)gt(r,"can not read a block mapping entry; a multiline key may not be an implicit key");else return r.tag=a,r.anchor=l,!0;else break;if((r.line===s||r.lineIndent>e)&&(af(r,e,zI,!0,n)&&(p?f=r.result:h=r.result),p||(of(r,c,u,g,f,h,s,o),g=f=h=null),_r(r,!0,-1),w=r.input.charCodeAt(r.position)),r.lineIndent>e&&w!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndent<e)break}return p&&of(r,c,u,g,f,null),C&&(r.tag=a,r.anchor=l,r.kind="mapping",r.result=c),C}function ode(r){var e,t=!1,i=!1,n,s,o;if(o=r.input.charCodeAt(r.position),o!==33)return!1;if(r.tag!==null&&gt(r,"duplication of a tag property"),o=r.input.charCodeAt(++r.position),o===60?(t=!0,o=r.input.charCodeAt(++r.position)):o===33?(i=!0,n="!!",o=r.input.charCodeAt(++r.position)):n="!",e=r.position,t){do o=r.input.charCodeAt(++r.position);while(o!==0&&o!==62);r.position<r.length?(s=r.input.slice(e,r.position),o=r.input.charCodeAt(++r.position)):gt(r,"unexpected end of the stream within a verbatim tag")}else{for(;o!==0&&!fn(o);)o===33&&(i?gt(r,"tag suffix cannot contain exclamation marks"):(n=r.input.slice(e-1,r.position+1),nH.test(n)||gt(r,"named tag handle cannot contain such characters"),i=!0,e=r.position+1)),o=r.input.charCodeAt(++r.position);s=r.input.slice(e,r.position),zpe.test(s)&&gt(r,"tag suffix cannot contain flow indicator characters")}return s&&!sH.test(s)&&gt(r,"tag name cannot contain such characters: "+s),t?r.tag=s:NA.call(r.tagMap,n)?r.tag=r.tagMap[n]+s:n==="!"?r.tag="!"+s:n==="!!"?r.tag="tag:yaml.org,2002:"+s:gt(r,'undeclared tag handle "'+n+'"'),!0}function ade(r){var e,t;if(t=r.input.charCodeAt(r.position),t!==38)return!1;for(r.anchor!==null&&gt(r,"duplication of an anchor property"),t=r.input.charCodeAt(++r.position),e=r.position;t!==0&&!fn(t)&&!sf(t);)t=r.input.charCodeAt(++r.position);return r.position===e&&gt(r,"name of an anchor node must contain at least one character"),r.anchor=r.input.slice(e,r.position),!0}function Ade(r){var e,t,i;if(i=r.input.charCodeAt(r.position),i!==42)return!1;for(i=r.input.charCodeAt(++r.position),e=r.position;i!==0&&!fn(i)&&!sf(i);)i=r.input.charCodeAt(++r.position);return r.position===e&&gt(r,"name of an alias node must contain at least one character"),t=r.input.slice(e,r.position),NA.call(r.anchorMap,t)||gt(r,'unidentified alias "'+t+'"'),r.result=r.anchorMap[t],_r(r,!0,-1),!0}function af(r,e,t,i,n){var s,o,a,l=1,c=!1,u=!1,g,f,h,p,C;if(r.listener!==null&&r.listener("open",r),r.tag=null,r.anchor=null,r.kind=null,r.result=null,s=o=a=zI===t||iH===t,i&&_r(r,!0,-1)&&(c=!0,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)),l===1)for(;ode(r)||ade(r);)_r(r,!0,-1)?(c=!0,a=s,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)):a=!1;if(a&&(a=c||n),(l===1||zI===t)&&(WI===t||rH===t?p=e:p=e+1,C=r.position-r.lineStart,l===1?a&&($2(r,C)||sde(r,C,p))||ide(r,p)?u=!0:(o&&nde(r,p)||tde(r,p)||rde(r,p)?u=!0:Ade(r)?(u=!0,(r.tag!==null||r.anchor!==null)&&gt(r,"alias node should not have any properties")):ede(r,p,WI===t)&&(u=!0,r.tag===null&&(r.tag="?")),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):l===0&&(u=a&&$2(r,C))),r.tag!==null&&r.tag!=="!")if(r.tag==="?"){for(r.result!==null&&r.kind!=="scalar"&&gt(r,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g<f;g+=1)if(h=r.implicitTypes[g],h.resolve(r.result)){r.result=h.construct(r.result),r.tag=h.tag Line truncated
`),r.charCodeAt(0)===65279&&(r=r.slice(1)));var t=new $pe(r,e),i=r.indexOf("\0");for(i!==-1&&(t.position=i,gt(t,"null byte is not allowed in input")),t.input+="\0";t.input.charCodeAt(t.position)===32;)t.lineIndent+=1,t.position+=1;for(;t.position<t.length-1;)lde(t);return t.documents}function cH(r,e,t){e!==null&&typeof e=="object"&&typeof t>"u"&&(t=e,e=null);var i=lH(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n<s;n+=1)e(i[n])}function uH(r,e){var t=lH(r,e);if(t.length!==0){if(t.length===1)return t[0];throw new eH("expected a single document in the stream, but found more")}}function cde(r,e,t){return typeof e=="object"&&e!==null&&typeof t>"u"&&(t=e,e=null),cH(r,e,Qa.extend({schema:tH},t))}function ude(r,e){return uH(r,Qa.extend({schema:tH},e))}Id.exports.loadAll=cH;Id.exports.load=uH;Id.exports.safeLoadAll=cde;Id.exports.safeLoad=ude});var TH=y((h$e,Fv)=>{"use strict";var wd=pc(),Bd=tf(),gde=Ed(),fde=nf(),IH=Object.prototype.toString,yH=Object.prototype.hasOwnProperty,hde=9,yd=10,pde=13,dde=32,Cde=33,mde=34,wH=35,Ede=37,Ide=38,yde=39,wde=42,BH=44,Bde=45,bH=58,bde=61,Qde=62,Sde=63,vde=64,QH=91,SH=93,xde=96,vH=123,Pde=124,xH=125,Ti={};Ti[0]="\\0";Ti[7]="\\a";Ti[8]="\\b";Ti[9]="\\t";Ti[10]="\\n";Ti[11]="\\v";Ti[12]="\\f";Ti[13]="\\r";Ti[27]="\\e";Ti[34]='\\"';Ti[92]="\\\\";Ti[133]="\\N";Ti[160]="\\_";Ti[8232]="\\L";Ti[8233]="\\P";var Dde=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function kde(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;n<s;n+=1)o=i[n],a=String(e[o]),o.slice(0,2)==="!!"&&(o="tag:yaml.org,2002:"+o.slice(2)),l=r.compiledTypeMap.fallback[o],l&&yH.call(l.styleAliases,a)&&(a=l.styleAliases[a]),t[o]=a;return t}function fH(r){var e,t,i;if(e=r.toString(16).toUpperCase(),r<=255)t="x",i=2;else if(r<=65535)t="u",i=4;else if(r<=4294967295)t="U",i=8;else throw new Bd("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+t+wd.repeat("0",i-e.length)+e}function Rde(r){this.schema=r.schema||gde,this.indent=Math.max(1,r.indent||2),this.noArrayIndent=r.noArrayIndent||!1,this.skipInvalid=r.skipInvalid||!1,this.flowLevel=wd.isNothing(r.flowLevel)?-1:r.flowLevel,this.styleMap=kde(this.schema,r.styles||null),this.sortKeys=r.sortKeys||!1,this.lineWidth=r.lineWidth||80,this.noRefs=r.noRefs||!1,this.noCompatMode=r.noCompatMode||!1,this.condenseFlow=r.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function hH(r,e){for(var t=wd.repeat(" ",e),i=0,n=-1,s="",o,a=r.length;i<a;)n=r.indexOf(`
`,i),n===-1?(o=r.slice(i),i=a):(o=r.slice(i,n+1),i=n+1),o.length&&o!==`
`&&(s+=t),s+=o;return s}function Dv(r,e){return`
`+wd.repeat(" ",r.indent*e)}function Fde(r,e){var t,i,n;for(t=0,i=r.implicitTypes.length;t<i;t+=1)if(n=r.implicitTypes[t],n.resolve(e))return!0;return!1}function Rv(r){return r===dde||r===hde}function Af(r){return 32<=r&&r<=126||161<=r&&r<=55295&&r!==8232&&r!==8233||57344<=r&&r<=65533&&r!==65279||65536<=r&&r<=1114111}function Nde(r){return Af(r)&&!Rv(r)&&r!==65279&&r!==pde&&r!==yd}function pH(r,e){return Af(r)&&r!==65279&&r!==BH&&r!==QH&&r!==SH&&r!==vH&&r!==xH&&r!==bH&&(r!==wH||e&&Nde(e))}function Tde(r){return Af(r)&&r!==65279&&!Rv(r)&&r!==Bde&&r!==Sde&&r!==bH&&r!==BH&&r!==QH&&r!==SH&&r!==vH&&r!==xH&&r!==wH&&r!==Ide&&r!==wde&&r!==Cde&&r!==Pde&&r!==bde&&r!==Qde&&r!==yde&&r!==mde&&r!==Ede&&r!==vde&&r!==xde}function PH(r){var e=/^\n* /;return e.test(r)}var DH=1,kH=2,RH=3,FH=4,_I=5;function Lde(r,e,t,i,n){var s,o,a,l=!1,c=!1,u=i!==-1,g=-1,f=Tde(r.charCodeAt(0))&&!Rv(r.charCodeAt(r.length-1));if(e)for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),!Af(o))return _I;a=s>0?r.charCodeAt(s-1):null,f=f&&pH(o,a)}else{for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),o===yd)l=!0,u&&(c=c||s-g-1>i&&r[g+1]!==" ",g=s);else if(!Af(o))return _I;a=s>0?r.charCodeAt(s-1):null,f=f&&pH(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?DH:kH:t>9&&PH(r)?_I:c?FH:RH}function Ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&Dde.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 Fde(r,l)}switch(Lde(e,o,r.indent,s,a)){case DH:return e;case kH:return"'"+e.replace(/'/g,"''")+"'";case RH:return"|"+dH(e,r.indent)+CH(hH(e,n));case FH:return">"+dH(e,r.indent)+CH(hH(Mde(e,s),n));case _I:return'"'+Ude(e,s)+'"';default:throw new Bd("impossible error: invalid scalar style")}}()}function dH(r,e){var t=PH(r)?String(e):"",i=r[r.length-1]===`
`,n=i&&(r[r.length-2]===`
`||r===`
`),s=n?"+":i?"":"-";return t+s+`
`}function CH(r){return r[r.length-1]===`
`?r.slice(0,-1):r}function Mde(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(`
`);return c=c!==-1?c:r.length,t.lastIndex=c,mH(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!==""?`
`:"")+mH(l,e),n=s}return i}function mH(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 Ude(r){for(var e="",t,i,n,s=0;s<r.length;s++){if(t=r.charCodeAt(s),t>=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=fH((t-55296)*1024+i-56320+65536),s++;continue}n=Ti[t],e+=!n&&Af(t)?r[s]:n||fH(t)}return e}function Kde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s<o;s+=1)Ic(r,e,t[s],!1,!1)&&(s!==0&&(i+=","+(r.condenseFlow?"":" ")),i+=r.dump);r.tag=n,r.dump="["+i+"]"}function Hde(r,e,t,i){var n="",s=r.tag,o,a;for(o=0,a=t.length;o<a;o+=1)Ic(r,e+1,t[o],!0,!0)&&((!i||o!==0)&&(n+=Dv(r,e)),r.dump&&yd===r.dump.charCodeAt(0)?n+="-":n+="- ",n+=r.dump);r.tag=s,r.dump=n||"[]"}function Gde(r,e,t){var i="",n=r.tag,s=Object.keys(t),o,a,l,c,u;for(o=0,a=s.length;o<a;o+=1)u="",o!==0&&(u+=", "),r.condenseFlow&&(u+='"'),l=s[o],c=t[l],Ic(r,e,l,!1,!1)&&(r.dump.length>1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ic(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function Yde(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 Bd("sortKeys must be a boolean or a function");for(a=0,l=o.length;a<l;a+=1)f="",(!i||a!==0)&&(f+=Dv(r,e)),c=o[a],u=t[c],Ic(r,e+1,c,!0,!0,!0)&&(g=r.tag!==null&&r.tag!=="?"||r.dump&&r.dump.length>1024,g&&(r.dump&&yd===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=Dv(r,e)),Ic(r,e+1,u,!0,g)&&(r.dump&&yd===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function EH(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s<o;s+=1)if(a=n[s],(a.instanceOf||a.predicate)&&(!a.instanceOf||typeof e=="object"&&e instanceof a.instanceOf)&&(!a.predicate||a.predicate(e))){if(r.tag=t?a.tag:"?",a.represent){if(l=r.styleMap[a.tag]||a.defaultStyle,IH.call(a.represent)==="[object Function]")i=a.represent(e,l);else if(yH.call(a.represent,l))i=a.represent[l](e,l);else throw new Bd("!<"+a.tag+'> tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ic(r,e,t,i,n,s){r.tag=null,r.dump=t,EH(r,t,!1)||EH(r,t,!0);var o=IH.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?(Yde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(Gde(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?(Hde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(Kde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&Ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new Bd("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function jde(r,e){var t=[],i=[],n,s;for(kv(r,t,i),n=0,s=i.length;n<s;n+=1)e.duplicates.push(t[i[n]]);e.usedDuplicates=new Array(s)}function kv(r,e,t){var i,n,s;if(r!==null&&typeof r=="object")if(n=e.indexOf(r),n!==-1)t.indexOf(n)===-1&&t.push(n);else if(e.push(r),Array.isArray(r))for(n=0,s=r.length;n<s;n+=1)kv(r[n],e,t);else for(i=Object.keys(r),n=0,s=i.length;n<s;n+=1)kv(r[i[n]],e,t)}function NH(r,e){e=e||{};var t=new Rde(e);return t.noRefs||jde(r,t),Ic(t,0,r,!0,!0)?t.dump+`
`:""}function qde(r,e){return NH(r,wd.extend({schema:fde},e))}Fv.exports.dump=NH;Fv.exports.safeDump=qde});var OH=y((p$e,Tr)=>{"use strict";var ZI=gH(),LH=TH();function $I(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Tr.exports.Type=Ai();Tr.exports.Schema=dc();Tr.exports.FAILSAFE_SCHEMA=qI();Tr.exports.JSON_SCHEMA=bv();Tr.exports.CORE_SCHEMA=Qv();Tr.exports.DEFAULT_SAFE_SCHEMA=nf();Tr.exports.DEFAULT_FULL_SCHEMA=Ed();Tr.exports.load=ZI.load;Tr.exports.loadAll=ZI.loadAll;Tr.exports.safeLoad=ZI.safeLoad;Tr.exports.safeLoadAll=ZI.safeLoadAll;Tr.exports.dump=LH.dump;Tr.exports.safeDump=LH.safeDump;Tr.exports.YAMLException=tf();Tr.exports.MINIMAL_SCHEMA=qI();Tr.exports.SAFE_SCHEMA=nf();Tr.exports.DEFAULT_SCHEMA=Ed();Tr.exports.scan=$I("scan");Tr.exports.parse=$I("parse");Tr.exports.compose=$I("compose");Tr.exports.addConstructor=$I("addConstructor")});var UH=y((d$e,MH)=>{"use strict";var Jde=OH();MH.exports=Jde});var HH=y((C$e,KH)=>{"use strict";function Wde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function yc(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,yc)}Wde(yc,Error);yc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,f;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,f=1;g<u.length;g++)u[g-1]!==u[g]&&(u[f]=u[g],f++);u.length=f}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function zde(r,e){e=e!==void 0?e:{};var t={},i={Start:Us},n=Us,s=function(R){return[].concat(...R)},o="-",a=ar("-",!1),l=function(R){return R},c=function(R){return Object.assign({},...R)},u="#",g=ar("#",!1),f=$l(),h=function(){return{}},p=":",C=ar(":",!1),w=function(R,q){return{[R]:q}},B=",",v=ar(",",!1),D=function(R,q){return q},T=function(R,q,pe){return Object.assign({},...[R].concat(q).map(Ne=>({[Ne]:pe})))},H=function(R){return R},j=function(R){return R},$=Ms("correct indentation"),V=" ",W=ar(" ",!1),Z=function(R){return R.length===vA*Gg},A=function(R){return R.length===(vA+1)*Gg},ae=function(){return vA++,!0},ge=function(){return vA--,!0},_=function(){return Lg()},L=Ms("pseudostring"),N=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ue=Fn(["\r",`
`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),we=/^[^\r\n\t ,\][{}:#"']/,Te=Fn(["\r",`
`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Pe=function(){return Lg().replace(/^ *| *$/g,"")},Le="--",se=ar("--",!1),Ae=/^[a-zA-Z\/0-9]/,be=Fn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),fe=/^[^\r\n\t :,]/,le=Fn(["\r",`
`," "," ",":",","],!0,!1),Ge="null",ie=ar("null",!1),Y=function(){return null},he="true",re=ar("true",!1),me=function(){return!0},tt="false",Rt=ar("false",!1),It=function(){return!1},Ur=Ms("string"),oi='"',pi=ar('"',!1),pr=function(){return""},di=function(R){return R},ai=function(R){return R.join("")},Os=/^[^"\\\0-\x1F\x7F]/,dr=Fn(['"',"\\",["\0",""],"\x7F"],!0,!1),Bi='\\"',_n=ar('\\"',!1),pa=function(){return'"'},EA="\\\\",kg=ar("\\\\",!1),Zn=function(){return"\\"},IA="\\/",da=ar("\\/",!1),Jp=function(){return"/"},yA="\\b",wA=ar("\\b",!1),Br=function(){return"\b"},Vl="\\f",Rg=ar("\\f",!1),Eo=function(){return"\f"},Fg="\\n",Wp=ar("\\n",!1),zp=function(){return`
`},Pr="\\r",oe=ar("\\r",!1),Io=function(){return"\r"},kn="\\t",Ng=ar("\\t",!1),bt=function(){return" "},Xl="\\u",Rn=ar("\\u",!1),$n=function(R,q,pe,Ne){return String.fromCharCode(parseInt(`0x${R}${q}${pe}${Ne}`))},es=/^[0-9a-fA-F]/,ut=Fn([["0","9"],["a","f"],["A","F"]],!1,!1),yo=Ms("blank space"),at=/^[ \t]/,ln=Fn([" "," "],!1,!1),S=Ms("white space"),Lt=/^[ \t\n\r]/,Tg=Fn([" "," ",`
`,"\r"],!1,!1),_l=`\r
`,Vp=ar(`\r
`,!1),Xp=`
`,_p=ar(`
`,!1),Zp="\r",$p=ar("\r",!1),G=0,yt=0,BA=[{line:1,column:1}],Wi=0,Zl=[],We=0,Ca;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 Lg(){return r.substring(yt,G)}function uI(){return cn(yt,G)}function ed(R,q){throw q=q!==void 0?q:cn(yt,G),ec([Ms(R)],r.substring(yt,G),q)}function gI(R,q){throw q=q!==void 0?q:cn(yt,G),Og(R,q)}function ar(R,q){return{type:"literal",text:R,ignoreCase:q}}function Fn(R,q,pe){return{type:"class",parts:R,inverted:q,ignoreCase:pe}}function $l(){return{type:"any"}}function td(){return{type:"end"}}function Ms(R){return{type:"other",description:R}}function ma(R){var q=BA[R],pe;if(q)return q;for(pe=R-1;!BA[pe];)pe--;for(q=BA[pe],q={line:q.line,column:q.column};pe<R;)r.charCodeAt(pe)===10?(q.line++,q.column=1):q.column++,pe++;return BA[R]=q,q}function cn(R,q){var pe=ma(R),Ne=ma(q);return{start:{offset:R,line:pe.line,column:pe.column},end:{offset:q,line:Ne.line,column:Ne.column}}}function ke(R){G<Wi||(G>Wi&&(Wi=G,Zl=[]),Zl.push(R))}function Og(R,q){return new yc(R,null,null,q)}function ec(R,q,pe){return new yc(yc.buildMessage(R,q),R,q,pe)}function Us(){var R;return R=Mg(),R}function tc(){var R,q,pe;for(R=G,q=[],pe=bA();pe!==t;)q.push(pe),pe=bA();return q!==t&&(yt=R,q=s(q)),R=q,R}function bA(){var R,q,pe,Ne,xe;return R=G,q=Ia(),q!==t?(r.charCodeAt(G)===45?(pe=o,G++):(pe=t,We===0&&ke(a)),pe!==t?(Ne=Nr(),Ne!==t?(xe=Ea(),xe!==t?(yt=R,q=l(xe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function Mg(){var R,q,pe;for(R=G,q=[],pe=Ug();pe!==t;)q.push(pe),pe=Ug();return q!==t&&(yt=R,q=c(q)),R=q,R}function Ug(){var R,q,pe,Ne,xe,qe,dt,Ft,Nn;if(R=G,q=Nr(),q===t&&(q=null),q!==t){if(pe=G,r.charCodeAt(G)===35?(Ne=u,G++):(Ne=t,We===0&&ke(g)),Ne!==t){if(xe=[],qe=G,dt=G,We++,Ft=Gs(),We--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,We===0&&ke(f)),Ft!==t?(dt=[dt,Ft],qe=dt):(G=qe,qe=t)):(G=qe,qe=t),qe!==t)for(;qe!==t;)xe.push(qe),qe=G,dt=G,We++,Ft=Gs(),We--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,We===0&&ke(f)),Ft!==t?(dt=[dt,Ft],qe=dt):(G=qe,qe=t)):(G=qe,qe=t);else xe=t;xe!==t?(Ne=[Ne,xe],pe=Ne):(G=pe,pe=t)}else G=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Ne=[],xe=Hs(),xe!==t)for(;xe!==t;)Ne.push(xe),xe=Hs();else Ne=t;Ne!==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=Ia(),q!==t?(pe=rc(),pe!==t?(Ne=Nr(),Ne===t&&(Ne=null),Ne!==t?(r.charCodeAt(G)===58?(xe=p,G++):(xe=t,We===0&&ke(C)),xe!==t?(qe=Nr(),qe===t&&(qe=null),qe!==t?(dt=Ea(),dt!==t?(yt=R,q=w(pe,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=Ia(),q!==t?(pe=Ks(),pe!==t?(Ne=Nr(),Ne===t&&(Ne=null),Ne!==t?(r.charCodeAt(G)===58?(xe=p,G++):(xe=t,We===0&&ke(C)),xe!==t?(qe=Nr(),qe===t&&(qe=null),qe!==t?(dt=Ea(),dt!==t?(yt=R,q=w(pe,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=Ia(),q!==t)if(pe=Ks(),pe!==t)if(Ne=Nr(),Ne!==t)if(xe=fI(),xe!==t){if(qe=[],dt=Hs(),dt!==t)for(;dt!==t;)qe.push(dt),dt=Hs();else qe=t;qe!==t?(yt=R,q=w(pe,xe),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=Ia(),q!==t)if(pe=Ks(),pe!==t){if(Ne=[],xe=G,qe=Nr(),qe===t&&(qe=null),qe!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,We===0&&ke(v)),dt!==t?(Ft=Nr(),Ft===t&&(Ft=null),Ft!==t?(Nn=Ks(),Nn!==t?(yt=xe,qe=D(pe,Nn),xe=qe):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t),xe!==t)for(;xe!==t;)Ne.push(xe),xe=G,qe=Nr(),qe===t&&(qe=null),qe!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,We===0&&ke(v)),dt!==t?(Ft=Nr(),Ft===t&&(Ft=null),Ft!==t?(Nn=Ks(),Nn!==t?(yt=xe,qe=D(pe,Nn),xe=qe):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t);else Ne=t;Ne!==t?(xe=Nr(),xe===t&&(xe=null),xe!==t?(r.charCodeAt(G)===58?(qe=p,G++):(qe=t,We===0&&ke(C)),qe!==t?(dt=Nr(),dt===t&&(dt=null),dt!==t?(Ft=Ea(),Ft!==t?(yt=R,q=T(pe,Ne,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 Ea(){var R,q,pe,Ne,xe,qe,dt;if(R=G,q=G,We++,pe=G,Ne=Gs(),Ne!==t?(xe=$e(),xe!==t?(r.charCodeAt(G)===45?(qe=o,G++):(qe=t,We===0&&ke(a)),qe!==t?(dt=Nr(),dt!==t?(Ne=[Ne,xe,qe,dt],pe=Ne):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t),We--,pe!==t?(G=q,q=void 0):q=t,q!==t?(pe=Hs(),pe!==t?(Ne=wo(),Ne!==t?(xe=tc(),xe!==t?(qe=QA(),qe!==t?(yt=R,q=H(xe),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=Gs(),q!==t?(pe=wo(),pe!==t?(Ne=Mg(),Ne!==t?(xe=QA(),xe!==t?(yt=R,q=H(Ne),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=ic(),q!==t){if(pe=[],Ne=Hs(),Ne!==t)for(;Ne!==t;)pe.push(Ne),Ne=Hs();else pe=t;pe!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function Ia(){var R,q,pe;for(We++,R=G,q=[],r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&ke(W));pe!==t;)q.push(pe),r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&ke(W));return q!==t?(yt=G,pe=Z(q),pe?pe=void 0:pe=t,pe!==t?(q=[q,pe],R=q):(G=R,R=t)):(G=R,R=t),We--,R===t&&(q=t,We===0&&ke($)),R}function $e(){var R,q,pe;for(RLine truncated
${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:
$ ${i}
${Uv(e)}`}else this.message=`Command not found; did you mean one of:
${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(`
`)}
${Uv(e)}`}},Mv=class extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives:
${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(`
`)}
${Uv(e)}`}},Uv=r=>`While running ${r.filter(e=>e!==gCe.END_OF_INPUT).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;Qd.AmbiguousSyntaxError=Mv;Qd.UnknownSyntaxError=Ov;Qd.UsageError=Lv});var va=y(TA=>{"use strict";Object.defineProperty(TA,"__esModule",{value:!0});var _H=iy(),ZH=Symbol("clipanion/isOption");function fCe(r){return{...r,[ZH]:!0}}function hCe(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function Kv(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function $H(r,e){return e.length===1?new _H.UsageError(`${r}: ${Kv(e[0],!0)}`):new _H.UsageError(`${r}:
${e.map(t=>`
- ${Kv(t)}`).join("")}`)}function pCe(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 $H(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}TA.applyValidator=pCe;TA.cleanValidationError=Kv;TA.formatError=$H;TA.isOptionSymbol=ZH;TA.makeCommandOption=fCe;TA.rerouteArguments=hCe});var ns=y(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var eG=/^[a-zA-Z_][a-zA-Z0-9_]*$/,tG=/^#[0-9a-f]{6}$/i,rG=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,iG=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,nG=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,Hv=/^(?:[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)?)$/,sG=r=>()=>r;function Qt({test:r}){return sG(r)()}function Zr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function LA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:eG.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 Bc(r,e){return t=>{let i=r[e];return r[e]=t,Bc(r,e).bind(null,i)}}function oG(r,e){return t=>{r[e]=t}}function ny(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}var aG=()=>Qt({test:(r,e)=>!0});function dCe(r){return Qt({test:(e,t)=>e!==r?pt(t,`Expected a literal (got ${Zr(r)})`):!0})}var CCe=()=>Qt({test:(r,e)=>typeof r!="string"?pt(e,`Expected a string (got ${Zr(r)})`):!0});function mCe(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 ${Zr(i)})`)})}var ECe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),ICe=()=>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=ECe.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 ${Zr(r)})`)}return!0}}),yCe=()=>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 ${Zr(r)})`)}return!0}}),wCe=()=>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"&&Hv.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 ${Zr(r)})`)}return!0}}),BCe=(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 ${Zr(t)})`);let s=!0;for(let o=0,a=t.length;o<a&&(s=r(t[o],Object.assign(Object.assign({},i),{p:LA(i,o),coercion:Bc(t,o)}))&&s,!(!s&&(i==null?void 0:i.errors)==null));++o);return s}}),bCe=(r,{delimiter:e}={})=>{let t=AG(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 ${Zr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;a<l&&a<r.length&&(o=r[a](i[a],Object.assign(Object.assign({},n),{p:LA(n,a),coercion:Bc(i,a)}))&&o,!(!o&&(n==null?void 0:n.errors)==null));++a);return o}})},QCe=(r,{keys:e=null}={})=>Qt({test:(t,i)=>{if(typeof t!="object"||t===null)return pt(i,`Expec Line truncated
`),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 sme(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,`
`),r=nme(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}
`:""}vd.formatMarkdownish=sme;vd.richFormat=rme;vd.textFormat=ime});var ly=y(Ar=>{"use strict";Object.defineProperty(Ar,"__esModule",{value:!0});var lt=ry(),ay=iy();function Vi(r){lt.DEBUG&&console.log(r)}var uG={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:lt.HELP_COMMAND_INDEX};function qv(){return{nodes:[Li(),Li(),Li()]}}function gG(r){let e=qv(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s<n.nodes.length;++s)Wv(s)||e.nodes.push(EG(n.nodes[s],i));i+=n.nodes.length-2}for(let n of t)Qc(e,lt.NODE_INITIAL,n);return e}function ss(r,e){return r.nodes.push(e),r.nodes.length-1}function fG(r){let e=new Set,t=i=>{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(lt.NODE_INITIAL)}function hG(r,{prefix:e=""}={}){if(lt.DEBUG){Vi(`${e}Nodes are:`);for(let t=0;t<r.nodes.length;++t)Vi(`${e} ${t}: ${JSON.stringify(r.nodes[t])}`)}}function Jv(r,e,t=!1){Vi(`Running a vm on ${JSON.stringify(e)}`);let i=[{node:lt.NODE_INITIAL,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];hG(r,{prefix:" "});let n=[lt.START_OF_INPUT,...e];for(let s=0;s<n.length;++s){let o=n[s];Vi(` Processing ${JSON.stringify(o)}`);let a=[];for(let{node:l,state:c}of i){Vi(` Current node is ${l}`);let u=r.nodes[l];if(l===lt.NODE_ERRORED){a.push({node:l,state:c});continue}console.assert(u.shortcuts.length===0,"Shortcuts should have been eliminated by now");let g=Object.prototype.hasOwnProperty.call(u.statics,o);if(!t||s<n.length-1||g)if(g){let f=u.statics[o];for(let{to:h,reducer:p}of f)a.push({node:h,state:typeof p<"u"?xd(oy,p,c,o):c}),Vi(` Static transition to ${h} found`)}else Vi(" No static transition found");else{let f=!1;for(let h of Object.keys(u.statics))if(!!h.startsWith(o)){if(o===h)for(let{to:p,reducer:C}of u.statics[h])a.push({node:p,state:typeof C<"u"?xd(oy,C,c,o):c}),Vi(` Static transition to ${p} found`);else for(let{to:p}of u.statics[h])a.push({node:p,state:{...c,remainder:h.slice(o.length)}}),Vi(` Static transition to ${p} found (partial match)`);f=!0}f||Vi(" No partial static transition found")}if(o!==lt.END_OF_INPUT)for(let[f,{to:h,reducer:p}]of u.dynamics)xd(Pd,f,c,o)&&(a.push({node:h,state:typeof p<"u"?xd(oy,p,c,o):c}),Vi(` Dynamic transition to ${h} found (via ${f})`))}if(a.length===0&&o===lt.END_OF_INPUT&&e.length===1)return[{node:lt.NODE_INITIAL,state:uG}];if(a.length===0)throw new ay.UnknownSyntaxError(e,i.filter(({node:l})=>l!==lt.NODE_ERRORED).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===lt.NODE_ERRORED))throw new ay.UnknownSyntaxError(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=pG(a)}if(i.length>0){Vi(" Results:");for(let s of i)Vi(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else Vi(" No results");return i}function ome(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,lt.END_OF_INPUT)){for(let{to:t}of r.statics[lt.END_OF_INPUT])if(t===lt.NODE_SUCCESS)return!0}return!1}function ame(r,e,t){let i=t&&e.length>0?[""]:[],n=Jv(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],w=Object.keys(C.statics);for(let B of Object.keys(C.statics)){let v=w[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=ome(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==lt.END_OF_INPUT||!f.startsWith("-")&&h.some(({reducer:p})=>p==="pushPath"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===lt.NODE_ERRORED)continue;let p=IG(f,c);if(p!==null)for(let C of p)a([...i,C],l)}}return[...s].sort()}function Ame(r,e){let t=Jv(r,[...e,lt.END_OF_INPUT]);return dG(e,t.map(({state:i})=>i))}function pG(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 dG(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 ay.UnknownSyntaxError(r,t.map(g=>({usage:g.candidateUsa Line truncated
`),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=<index> to see the longer details of any of those commands.
`)}}};zv.HelpCommand=kd});var vG=y(Vv=>{"use strict";Object.defineProperty(Vv,"__esModule",{value:!0});var cme=ry(),wG=bc(),ume=J("tty"),gme=ly(),hn=jv(),fme=yG();function hme(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var BG=hme(ume),bG=Symbol("clipanion/errorCommand");function pme(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var OA=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new gme.CliBuilder({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new OA(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[wG.Command.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 cme.HELP_COMMAND_INDEX:return fme.HelpCommand.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[bG]=a,l}}break}}async run(e,t){var i;let n,s={...OA.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?dme(s):SG,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"?hn.formatMarkdownish(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?hn.formatMarkdownish(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?hn.formatMarkdownish(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([f,h])=>[hn.formatMarkdownish(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 wG.Command?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=hn.formatMarkdownish(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}
`,f.length>0){a+=`
`,a+=`${hn.richFormat.header("Options")}
`;let h=f.reduce((p,C)=>Math.max(p,C.definition.length),0);a+=`
`;for(let{definition:p,description:C}of f)a+=` ${this.format(t).bold(p.padEnd(h))} ${hn.formatMarkdownish(C,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=`
`,a+=`${this.format(t).header("Details")}
`,a+=`
`,a+=hn.formatMarkdownish(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=`
`,a+=`${this.format(t).header("Examples")}
`;for(let[h,p]of u)a+=`
`,a+=hn.formatMarkdownish(h,{format:this.format(t),paragraphs:!1}),a+=`${p.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)}
`}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(t).bold(n)}${l}
`}else{let l=new Map;for(let[f,{index:h}]of this.registrations.entries()){if(typeof f.usage>"u")continue;let p=typeof f.usage.category<"u"?hn.formatMarkdownish(f.usage.category,{format:this.format(t),paragraphs:!1}):null,C=l.get(p);typeof C>"u"&&l.set(p,C=[]);let{usage:w}=this.getUsageByIndex(h);C.push({commandClass:f,usage:w})}let c=Array.from(l.keys()).sort((f,h)=>f===null?-1:h===null?1:f.localeCompare(h,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)}
`:u?a+=`${this.format(t).header(`${this.binaryLabel}`)}
`:a+=`${this.format(t).header(`${this.binaryVersion}`)}
`,a+=` ${this.format(t).bold(n)}${this.binaryName} <command>
`):a+=`${this.format(t).bold(n)}${this.binaryName} <command>
`;for(let f of c){let h=l.get(f).slice().sort((C,w)=>C.usage.localeCompare(w.usage,"en",{usage:"sort",caseFirst:"upper"})),p=f!==null?f.trim():"General commands";a+=`
`,a+=`${this.format(t).header(`${p}`)}
`;for(let{commandClass:C,usage:w}of h){let B=C.usage.description||"undocumented";a+=`
`,a+=` ${this.format(t).bold(w)}
`,a+=` ${hn.formatMarkdownish(B,{format:this.format(t),paragraphs:!1})}`}}a+=`
`,a+=hn.formatMarkdownish("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[bG])!==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:OA.defaultContext.colorDepth>1)?hn.richFormat:hn.textFormat}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)}};OA.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in BG.default.WriteStream.prototype?BG.default.WriteStream.prototype.getColorDepth():pme()};var QG;function dme(r){let e=QG;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return SG;let{AsyncLocalStorage:t}=J("async_hooks");e=QG=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 SG(r){return r()}Vv.Cli=OA});var xG=y(Xv=>{"use strict";Object.defineProperty(Xv,"__esModule",{value:!0});var Cme=bc(),cy=class extends Cme.Command{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)}
`)}};cy.paths=[["--clipanion=definitions"]];Xv.DefinitionsCommand=cy});var PG=y(_v=>{"use strict";Object.defineProperty(_v,"__esModule",{value:!0});var mme=bc(),uy=class extends mme.Command{async execute(){this.context.stdout.write(this.cli.usage())}};uy.paths=[["-h"],["--help"]];_v.HelpCommand=uy});var DG=y(Zv=>{"use strict";Object.defineProperty(Zv,"__esModule",{value:!0});var Eme=bc(),gy=class extends Eme.Command{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:"<unknown>"}
`)}};gy.paths=[["-v"],["--version"]];Zv.VersionCommand=gy});var kG=y(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});var Ime=xG(),yme=PG(),wme=DG();Rd.DefinitionsCommand=Ime.DefinitionsCommand;Rd.HelpCommand=yme.HelpCommand;Rd.VersionCommand=wme.VersionCommand});var FG=y($v=>{"use strict";Object.defineProperty($v,"__esModule",{value:!0});var RG=va();function Bme(r,e,t){let[i,n]=RG.rerouteArguments(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return RG.makeCommandOption({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}})}$v.Array=Bme});var TG=y(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});var NG=va();function bme(r,e,t){let[i,n]=NG.rerouteArguments(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return NG.makeCommandOption({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}})}ex.Boolean=bme});var OG=y(tx=>{"use strict";Object.defineProperty(tx,"__esModule",{value:!0});var LG=va();function Qme(r,e,t){let[i,n]=LG.rerouteArguments(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return LG.makeCommandOption({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}})}tx.Counter=Qme});var MG=y(rx=>{"use strict";Object.defineProperty(rx,"__esModule",{value:!0});var Sme=va();function vme(r={}){return Sme.makeCommandOption({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)}})}rx.Proxy=vme});var UG=y(ix=>{"use strict";Object.defineProperty(ix,"__esModule",{value:!0});var xme=va(),Pme=ly();function Dme(r={}){return xme.makeCommandOption({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===Pme.NoLimits||a.extra===!1&&o<e.arity.leading.length},s=0;for(;s<i.positionals.length&&n(s);)s+=1;return i.positionals.splice(0,s).map(({value:o})=>o)}})}ix.Rest=Dme});var KG=y(nx=>{"use strict";Object.defineProperty(nx,"__esModule",{value:!0});var Fd=va(),kme=ly();function Rme(r,e,t){let[i,n]=Fd.rerouteArguments(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Fd.makeCommandOption({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"?Fd.applyValidator(g!=null?g:c,f,n.validator):f}})}function Fme(r={}){let{required:e=!0}=r;return Fd.makeCommandOption({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<n.positionals.length;++o){if(n.positionals[o].extra===kme.NoLimits||e&&n.positionals[o].extra===!0||!e&&n.positionals[o].extra===!1)continue;let[a]=n.positionals.splice(o,1);return Fd.applyValidator((s=r.name)!==null&&s!==void 0?s:i,a.value,r.validator)}}})}function Nme(r,...e){return typeof r=="string"?Rme(r,...e):Fme(r)}nx.String=Nme});var HG=y(pn=>{"use strict";Object.defineProperty(pn,"__esModule",{value:!0});var lf=va(),Tme=FG(),Lme=TG(),Ome=OG(),Mme=MG(),Ume=UG(),Kme=KG();pn.applyValidator=lf.applyValidator;pn.cleanValidationError=lf.cleanValidationError;pn.formatError=lf.formatError;pn.isOptionSymbol=lf.isOptionSymbol;pn.makeCommandOption=lf.makeCommandOption;pn.rerouteArguments=lf.rerouteArguments;pn.Array=Tme.Array;pn.Boolean=Lme.Boolean;pn.Counter=Ome.Counter;pn.Proxy=Mme.Proxy;pn.Rest=Ume.Rest;pn.String=Kme.String});var Xe=y(MA=>{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});var Hme=iy(),Gme=bc(),Yme=jv(),jme=vG(),qme=kG(),Jme=HG();MA.UsageError=Hme.UsageError;MA.Command=Gme.Command;MA.formatMarkdownish=Yme.formatMarkdownish;MA.Cli=jme.Cli;MA.Builtins=qme;MA.Option=Jme});var YG=y((J$e,GG)=>{"use strict";GG.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var cf=y((W$e,sx)=>{"use strict";var Wme=YG(),jG=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=Wme(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{t<r?n(a,l,...c):e.push(n.bind(null,a,l,...c))},o=(a,...l)=>new Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};sx.exports=jG;sx.exports.default=jG});var Nd=y((V$e,qG)=>{var zme="2.0.0",Vme=Number.MAX_SAFE_INTEGER||9007199254740991,Xme=16; Line truncated
`),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 w=this.classAtom(),B=w.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),D=v.type==="Character";if(D){if(v.value<w.value)throw Error("Range out of order in character class");p.push({from:w.value,to:v.value})}else s(w.value,p),p.push(n("-")),s(v.value,p)}else s(w.value,p)}return this.consumeChar("]"),{type:"Set",complement:C,value:p}},r.prototype.classAtom=function(){switch(this.peekChar()){case"]":case`
`:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}},r.prototype.classEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:n("\b")};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.group=function(){var p=!0;switch(this.consumeChar("("),this.peekChar(0)){case"?":this.consumeChar("?"),this.consumeChar(":"),p=!1;break;default:this.groupIdx++;break}var C=this.disjunction();this.consumeChar(")");var w={type:"Group",capturing:p,value:C};return p&&(w.idx=this.groupIdx),w},r.prototype.positiveInteger=function(){var p=this.popChar();if(i.test(p)===!1)throw Error("Expecting a positive integer");for(;t.test(this.peekChar(0));)p+=this.popChar();return parseInt(p,10)},r.prototype.integerIncludingZero=function(){var p=this.popChar();if(t.test(p)===!1)throw Error("Expecting an integer");for(;t.test(this.peekChar(0));)p+=this.popChar();return parseInt(p,10)},r.prototype.patternCharacter=function(){var p=this.popChar();switch(p){case`
`:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:n(p)}}},r.prototype.isRegExpFlag=function(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}},r.prototype.isRangeDash=function(){return this.peekChar()==="-"&&this.isClassAtom(1)},r.prototype.isDigit=function(){return t.test(this.peekChar(0))},r.prototype.isClassAtom=function(p){switch(p===void 0&&(p=0),this.peekChar(p)){case"]":case`
`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}},r.prototype.isTerm=function(){return this.isAtom()||this.isAssertion()},r.prototype.isAtom=function(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}},r.prototype.isAssertion=function(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!");default:return!1}},r.prototype.isQuantifier=function(){var p=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(p)}},r.prototype.isPatternCharacter=function(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case`
`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}},r.prototype.parseHexDigits=function(p){for(var C="",w=0;w<p;w++){var B=this.popChar();if(e.test(B)===!1)throw Error("Expecting a HexDecimal digits");C+=B}var v=parseInt(C,16);return{type:"Character",value:v}},r.prototype.peekChar=function(p){return p===void 0&&(p=0),this.input[this.idx+p]},r.prototype.popChar=function(){var p=this.peekChar(0);return this.consumeChar(),p},r.prototype.consumeChar=function(p){if(p!==void 0&&this.input[this.idx]!==p)throw Error("Expected: '"+p+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=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(w){C.push(w)}):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 w=p[C];p.hasOwnProperty(C)&&(w.type!==void 0?this.visit(w):Array.isArray(w)&&w.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 ky=y(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.clearRegExpParserCache=hf.getRegExpAst=void 0;var tye=Py(),Dy={},rye=new tye.RegExpParser;function iye(r){var e=r.toString();if(Dy.hasOwnProperty(e))return Dy[e];var t=rye.pattern(e);return Dy[e]=t,t}hf.getRegExpAst=iye;function nye(){Dy={}}hf.clearRegExpParserCache=nye});var Yj=y(dn=>{"use strict";var sye=dn&&dn.__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(dn,"__esModule",{value:!0});dn.canMatchCharCode=dn.firstCharOptimizedIndices=dn.getOptimizedStartCodesIndices=dn.failedOptimizationPrefixMsg=void 0;var Kj=Py(),As=Gt(),Hj=ky(),Da=wx(),Gj="Complement Sets are not supported for first char optimization";dn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations:
`;function oye(r,e){e===void 0&&(e=!1);try{var t=(0,Hj.getRegExpAst)(r),i=Fy(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===Gj)e&&(0,As.PRINT_WARNING)(""+dn.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,As.PRINT_ERROR)(dn.failedOptimizationPrefixMsg+`
`+(" Failed parsing: < "+r.toString()+` >
`)+(" Using the regexp-to-ast library version: "+Kj.VERSION+`
`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}dn.getOptimizedStartCodesIndices=oye;function Fy(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i<r.value.length;i++)Fy(r.value[i],e,t);break;case"Alternative":for(var n=r.value,i=0;i<n.length;i++){var s=n[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}var o=s;switch(o.type){case"Character":Ry(o.value,e,t);break;case"Set":if(o.complement===!0)throw Error(Gj);(0,As.forEach)(o.value,function(c){if(typeof c=="number")Ry(c,e,t);else{var u=c;if(t===!0)for(var g=u.from;g<=u.to;g++)Ry(g,e,t);else{for(var g=u.from;g<=u.to&&g<Da.minOptimizationVal;g++)Ry(g,e,t);if(u.to>=Da.minOptimizationVal)for(var f=u.from>=Da.minOptimizationVal?u.from:Da.minOptimizationVal,h=u.to,p=(0,Da.charCodeToOptimizedIndex)(f),C=(0,Da.charCodeToOptimizedIndex)(h),w=p;w<=C;w++)e[w]=w}}});break;case"Group":Fy(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"&&yx(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,As.values)(e)}dn.firstCharOptimizedIndices=Fy;function Ry(r,e,t){var i=(0,Da.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&aye(r,e)}function aye(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Da.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Da.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function Uj(r,e){return(0,As.find)(r.value,function(t){if(typeof t=="number")return(0,As.contains)(e,t);var i=t;return(0,As.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function yx(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,As.isArray)(r.value)?(0,As.every)(r.value,yx):yx(r.value):!1}var Aye=function(r){sye(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,As.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?Uj(t,this.targetCharCodes)===void 0&&(this.found=!0):Uj(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(Kj.BaseRegExpVisitor);function lye(r,e){if(e instanceof RegExp){var t=(0,Hj.getRegExpAst)(e),i=new Aye(r);return i.visit(t),i.found}else return(0,As.find)(e,function(n){return(0,As.contains)(r,n.charCodeAt(0))})!==void 0}dn.canMatchCharCode=lye});var wx=y(Je=>{"use strict";var jj=Je&&Je.__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(Je,"__esModule",{value:!0});Je.charCodeToOptimizedIndex=Je.minOptimizationVal=Je.buildLineBreakIssueMessage=Je.LineTerminatorOptimizedTester=Je.isShortPattern=Je.isCustomPattern=Je.cloneEmptyGroups=Je.performWarningRuntimeChecks=Je.performRuntimeChecks=Je.addStickyFlag=Je.addStartOfInput=Je.findUnreachablePatterns=Je.findModesThatDoNotExist=Je.findInvalidGroupType=Je.findDuplicatePatterns=Je.findUnsupportedFlags=Je.findStartOfInputAnchor=Je.findEmptyMatchRegExps=Je.findEndOfInputAnchor=Je.findInvalidPatterns=Je.findMissingPatterns=Je.validatePatterns=Je.analyzeTokenTypes=Je.enableSticky=Je.disableSticky=Je.SUPPORT_STICKY=Je.MODES=Je.DEFAULT_MODE=void 0;var qj=Py(),ir=Jd(),Se=Gt(),pf=Yj(),Jj=ky(),Do="PATTERN";Je.DEFAULT_MODE="defaultMode";Je.MODES="modes";Je.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function cye(){Je.SUPPORT_STICKY=!1}Je.disableSticky=cye;function uye(){Je.SUPPORT_STICKY=!0}Je.enableSticky=uye;function gye(r,e){e=(0,Se.defaults)(e,{useSticky:Je.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
`],tracer:function(v,D){return D()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){wye()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(v){return v[Do]===ir.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(v){var D=v[Do];if((0,Se.isRegExp)(D)){var T=D.source;return T.length===1&&T!=="^"&&T!=="$"&&T!=="."&&!D.ignoreCase?T:T.length===2&&T[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],T[1])?T[1]:e.useSticky?Qx(D):bx(D)}else{if((0,Se.isFunction)(D))return n=!0,{exec:D};if((0,Se.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?Qx(j):bx(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(v){return v.tokenTypeIdx}),a=(0,Se.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,Se.isString)(D))return D;if((0,Se.isUndefined)(D))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(v){var D=v.LONGER_ALT;if(D){var T=(0,Se.isArray)(D)?(0,Se.map)(D,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,D)];return T}}),c=(0,Se.map)(i,function(v){return v.PUSH_MODE}),u=(0,Se.map)(i,function(v){return(0,Se.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=oq(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(D){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(D){if((0,Se.has)(D,"LINE_BREAKS"))return D.LINE_BREAKS;if(nq(D,v)===!1)return(0,pf.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,C;t("Misc Mapping #2",function(){f=(0,Se.map)(i,vx),h=(0,Se.map)(s,iq),p=(0,Se.reduce)(i,function(v,D){var T=D.GROUP;return(0,Se.isString)(T)&&T!==ir.Lexer.SKIPPED&&(v[T]=[]),v},{}),C=(0,Se.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 w=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(v,D,T){if(typeof D.PATTERN=="string"){var H=D.PATTERN.charCodeAt(0),j=Sx(H);Bx(v,j,C[T])}else if((0,Se.isArray)(D.START_CHARS_HINT)){var $;(0,Se.forEach)(D.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Sx(Z);$!==A&&($=A,Bx(v,A,C[T]))})}else if((0,Se.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)w=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+pf.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,pf.getOptimizedStartCodesIndices)(D.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(V)&&(w=!1),(0,Se.forEach)(V,function(W){Bx(v,W,C[T])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+pf.failedOptimizationPrefixMsg+(" TokenType: <"+D.name+`> is using a custom token pattern without providing <start_chars_hint> parameter.
`)+` This will disable the lexer's first char optimizations.
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),w=!1;return v},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:C,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:w}}Je.analyzeTokenTypes=gye;function fye(r,e){var t=[],i=Wj(r);t=t.concat(i.errors);var n=zj(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(hye(s)),t=t.concat(eq(s)),t=t.concat(tq(s,e)),t=t.concat(rq(s)),t}Je.validatePatterns=fye;function hye(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[Do])});return e=e.concat(Vj(t)),e=e.concat(_j(t)),e=e.concat(Zj(t)),e=e.concat($j(t)),e=e.concat(Xj(t)),e}function Wj(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,Do)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}Je.findMissingPatterns=Wj;function zj(r){var e=(0,Se.filter)(r,function(n){var s=n[Do];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.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,Se.difference)(r,e);return{errors:t,valid:i}}Je.findInvalidPatterns=zj;var pye=/[^\\][\$]/;function Vj(r){var e=function(n){jj(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}(qj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[Do];try{var o=(0,Jj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return pye.test(s.source)}}),i=(0,Se.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}Je.findEndOfInputAnchor=Vj;function Xj(r){var e=(0,Se.filter)(r,function(i){var n=i[Do];return n.test("")}),t=(0,Se.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}Je.findEmptyMatchRegExps=Xj;var dye=/[^\\[][\^]|^\^/;function _j(r){var e=function(n){jj(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}(qj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[Do];try{var o=(0,Jj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return dye.test(s.source)}}),i=(0,Se.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}Je.findStartOfInputAnchor=_j;function Zj(r){var e=(0,Se.filter)(r,function(i){var n=i[Do];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,Se.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}Je.findUnsupportedFlags=Zj;function $j(r){var e=[],t=(0,Se.map)(r,function(s){return(0,Se.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Se.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Se.compact)(t);var i=(0,Se.filter)(t,function(s){return s.length>1}),n=(0,Se.map)(i,function(s){var o=(0,Se.map)(s,function(l){return l.name}),a=(0,Se.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}Je.findDuplicatePatterns=$j;function eq(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,Se.isString)(n)}),t=(0,Se.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}Je.findInvalidGroupType=eq;function tq(r,e){var t=(0,Se.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Se.contains)(e,n.PUSH_MODE)}),i=(0,Se.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}Je.findModesThatDoNotExist=tq;function rq(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&mye(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Se.forEach)(r,function(i,n){(0,Se.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n<a&&Cye(o,i.PATTERN)){var c="Token: ->"+l.name+`<- can never be matched.
`+("Because it appears AFTER the Token Type ->"+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}Je.findUnreachablePatterns=rq;function Cye(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function mye(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function bx(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Je.addStartOfInput=bx;function Qx(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Je.addStickyFlag=Qx;function Eye(r,e,t){var i=[];return(0,Se.has)(r,Je.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Je.DEFAULT_MODE+`> property in its definition
`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Se.has)(r,Je.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Je.MODES+`> property in its definition
`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Se.has)(r,Je.MODES)&&(0,Se.has)(r,Je.DEFAULT_MODE)&&!(0,Se.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Je.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist
`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Se.has)(r,Je.MODES)&&(0,Se.forEach)(r.modes,function(n,s){(0,Se.forEach)(n,function(o,a){(0,Se.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}Je.performRuntimeChecks=Eye;function Iye(r,e,t){var i=[],n=!1,s=(0,Se.compact)((0,Se.flatten)((0,Se.mapValues)(r.modes,function(l){return l}))),o=(0,Se.reject)(s,function(l){return l[Do]===ir.Lexer.NA}),a=oq(t);return e&&(0,Se.forEach)(o,function(l){var c=nq(l,a);if(c!==!1){var u=sq(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Se.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,pf.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}Je.performWarningRuntimeChecks=Iye;function yye(r){var e={},t=(0,Se.keys)(r);return(0,Se.forEach)(t,function(i){var n=r[i];if((0,Se.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Je.cloneEmptyGroups=yye;function vx(r){var e=r.PATTERN;if((0,Se.isRegExp)(e))return!1;if((0,Se.isFunction)(e))return!0;if((0,Se.has)(e,"exec"))return!0;if((0,Se.isString)(e))return!1;throw Error("non exhaustive match")}Je.isCustomPattern=vx;function iq(r){return(0,Se.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Je.isShortPattern=iq;Je.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t<e;t++){var i=r.charCodeAt(t);if(i===10)return this.lastIndex=t+1,!0;if(i===13)return r.charCodeAt(t+1)===10?this.lastIndex=t+2:this.lastIndex=t+1,!0}return!1},lastIndex:0};function nq(r,e){if((0,Se.has)(r,"LINE_BREAKS"))return!1;if((0,Se.isRegExp)(r.PATTERN)){try{(0,pf.canMatchCharCode)(e,r.PATTERN)}catch(t){return{issue:ir.LexerDefinitionErrorType.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}else{if((0,Se.isString)(r.PATTERN))return!1;if(vx(r))return{issue:ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function sq(r,e){if(e.issue===ir.LexerDefinitionErrorType.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
`+(" The problem is in the <"+r.name+`> 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 <line_breaks> 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")}Je.buildLineBreakIssueMessage=sq;function oq(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Bx(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Je.minOptimizationVal=256;var Ny=[];function Sx(r){return r<Je.minOptimizationVal?r:Ny[r]}Je.charCodeToOptimizedIndex=Sx;function wye(){if((0,Se.isEmpty)(Ny)){Ny=new Array(65536);for(var r=0;r<65536;r++)Ny[r]=r>255?255+~~(r/255):r}}});var df=y(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 ei=Gt();function Bye(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=Bye;function bye(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=bye;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function Qye(r){var e=aq(r);Aq(e),cq(e),lq(e),(0,ei.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=Qye;function aq(r){for(var e=(0,ei.cloneArr)(r),t=r,i=!0;i;){t=(0,ei.compact)((0,ei.flatten)((0,ei.map)(t,function(s){return s.CATEGORIES})));var n=(0,ei.difference)(t,e);e=e.concat(n),(0,ei.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=aq;function Aq(r){(0,ei.forEach)(r,function(e){uq(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),xx(e)&&!(0,ei.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),xx(e)||(e.CATEGORIES=[]),gq(e)||(e.categoryMatches=[]),fq(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=Aq;function lq(r){(0,ei.forEach)(r,function(e){e.categoryMatches=[],(0,ei.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=lq;function cq(r){(0,ei.forEach)(r,function(e){Px([],e)})}Nt.assignCategoriesMapProp=cq;function Px(r,e){(0,ei.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,ei.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,ei.contains)(i,t)||Px(i,t)})}Nt.singleAssignCategoriesToksMap=Px;function uq(r){return(0,ei.has)(r,"tokenTypeIdx")}Nt.hasShortKeyProperty=uq;function xx(r){return(0,ei.has)(r,"CATEGORIES")}Nt.hasCategoriesProperty=xx;function gq(r){return(0,ei.has)(r,"categoryMatches")}Nt.hasExtendingTokensTypesProperty=gq;function fq(r){return(0,ei.has)(r,"categoryMatchesMap")}Nt.hasExtendingTokensTypesMapProperty=fq;function Sye(r){return(0,ei.has)(r,"tokenTypeIdx")}Nt.isTokenType=Sye});var Dx=y(Ty=>{"use strict";Object.defineProperty(Ty,"__esModule",{value:!0});Ty.defaultLexerErrorProvider=void 0;Ty.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 Jd=y(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});Rc.Lexer=Rc.LexerDefinitionErrorType=void 0;var Vs=wx(),nr=Gt(),vye=df(),xye=Dx(),Pye=ky(),Dye;(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"})(Dye=Rc.LexerDefinitionErrorType||(Rc.LexerDefinitionErrorType={}));var Wd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:xye.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(Wd);var kye=function(){function r(e,t){var i=this;if(t===void 0&&(t=Wd),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)(Wd,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===Wd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Vs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===Wd.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> 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[Vs.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[Vs.DEFAULT_MODE]=Vs.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Vs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Vs.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,Vs.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,vye.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,Vs.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(Vs.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 <positionTracking> 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,Pye.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,w,B,v,D,T=e,H=T.length,j=0,$=0,V=this.hasCustom?0:Math.floor(e.length/10),W=new Array(V),Z=[],A=this.trackStartLines?1:void 0,ae=this.trackStartLines?1:void 0,ge=(0,Vs.cloneEmptyGroups)(this.emptyGroups),_=this.trackStartLines,L=this.config.lineTerminatorsPattern,N=0,ue=[],we=[],Te=[],Pe=[];Object.freeze(Pe);var Le=void 0;function se(){return ue}function Ae(dr){var Bi=(0,Vs.charCodeToOptimizedIndex)(dr),_n=we[Bi];return _n===void 0?Pe:_n}var be=function(dr){if(Te.length===1&&dr.tokenType.PUSH_MODE===void 0){var Bi=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(dr);Z.push({offset:dr.startOffset,line:dr.startLine!==void 0?dr.startLine:void 0,column:dr.startColumn!==void 0?dr.startColumn:void 0,length:dr.image.length,message:Bi})}else{Te.pop();var _n=(0,nr.last)(Te);ue=i.patternIdxToConfig[_n],we=i.charCodeToPatternIdxToConfig[_n],N=ue.length;var pa=i.canModeBeOptimized[_n]&&i.config.safeMode===!1;we&&pa?Le=Ae:Le=se}};function fe(dr){Te.push(dr),we=this.charCodeToPatternIdxToConfig[dr],ue=this.patternIdxToConfig[dr],N=ue.length,N=ue.length;var Bi=this.canModeBeOptimized[dr]&&this.config.safeMode===!1;we&&Bi?Le=Ae:Le=se}fe.call(this,t);for(var le;j<H;){c=null;var Ge=T.charCodeAt(j),ie=Le(Ge),Y=ie.length;for(n=0;n<Y;n++){le=ie[n];var he=le.pattern;u=null;var re=le.short;if(re!==!1?Ge===re&&(c=he):le.isCustom===!0?(D=he.exec(T,j,W,ge),D!==null?(c=D[0],D.payload!==void 0&&(u=D.payload)):c=null):(this.updateLastIndex(he,j),c=this.match(he,e,j)),c!==null){if(l=le.longerAlt,l!==void 0){var me=l.length;for(o=0;o<me;o++){var tt=ue[l[o]],Rt=tt.pattern;if(g=null,tt.isCustom===!0?(D=Rt.exec(T,j,W,ge),D!==null?(a=D[0],D.payload!==void 0&&(g=D.payload)):a=null):(this.updateLastIndex(Rt,j),a=this.match(Rt,e,j)),a&&a.length>c.length){c=a,u=g,le=tt;break}}}break}}if(c!==null){if(f=c.length,h=le.group,h!==void 0&&(p=le.tokenTypeIdx,C=this.createTokenInstance(c,j,p,le.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),_===!0&&le.canLineTerminator===!0){var It=0,Ur=void 0,oi=void 0;L.lastIndex=0;do Ur=L.test(c),Ur===!0&&(oi=L.lastIndex-1,It++);while(Ur===!0);It!==0&&(A=A+It,ae=f-oi,this.updateTokenEndLineColumnLocation(C,h,oi,It,A,ae,f))}this.handleModes(le,be,fe,C)}else{for(var pi=j,pr=A,di=ae,ai=!1;!ai&&j<H;)for(B=T.charCodeAt(j),e=this.chopInput(e,1),j++,s=0;s<N;s++){var Os=ue[s],he=Os.pattern,re=Os.short;if(re!==!1?T.charCodeAt(j)===re&&(ai=!0):Os.isCustom===!0?ai=he.exec(T,j,W,ge)!==null:(this.updateLastIndex(he,j),ai=he.exec(e)!==null),ai===!0)break}w=j-pi,v=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(T,pi,w,pr,di),Z.push({offset:pi,line:pr,column:di,length:w,message:v})}}return this.hasCustom||(W.length=$),{tokens:W,groups:ge,errors:Z}},r.prototype.handleModes=function(e,t,i,n){if(e.pop===!0){var s=e.push;t(n),s!==void 0&&i.call(this,s)}else e.push!==void 0&&i.call(this,e.push)},r.prototype.chopInput=function(e,t){return e.substring(t)},r.prototype.updateLastIndex=function(e,t){e.lastIndex=t},r.prototype.updateTokenEndLineColumnLocation=function(e,t,i,n,s,o,a){var l,c;t!==void 0&&(l=i===a-1,c=l?-1:0,n===1&&l===!0||(e.endLine=s+c,e.endColumn=o-1+-c))},r.prototype.computeNewColumn=function(e,t){return e+t},r.prototype.createTokenInstance=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return null},r.prototype.createOffsetOnlyToken=function(e,t,i,n){return{image:e,startOffset:t,tokenTypeIdx:i,tokenType:n}},r.prototype.createStartOnlyToken=function(e,t,i,n,s,o){return{image:e,startOffset:t,startLine:s,startColumn:o,tokenTypeIdx:i,tokenType:n}},r.prototype.createFullToken=function(e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:t+a-1,startLine:s,endLine:s,startColumn:o,endColumn:o+a-1,tokenTypeIdx:i,tokenType:n}},r.prototype.addToken=function(e,t,i){return 666},r.prototype.addTokenUsingPush=function(e,t,i){return e.push(i),t},r.prototype.addTokenUsingMemberAccess=function(e,t,i){return e[t]=i,t++,t},r.prototype.handlePayload=function(e,t){},r.prototype.handlePayloadNoCustom=function(e,t){},r.prototype.handlePayloadWithCustom=function(e,t){t!==null&&(e.payload=t)},r.prototype.match=function(e,t,i){return null},r.prototype.matchWithTest=function(e,t,i){var n=e.test(t);return n===!0?t.substring(i,e.lastIndex):null},r.prototype.matchWithExec=function(e,t){var i=e.exec(t);return i!==null?i[0]:i},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+"<-- <"+e+"> time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this Line truncated
See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,Xs.has)(r,hq)&&(t.CATEGORIES=r[hq]),(0,kx.augmentTokenTypes)([t]),(0,Xs.has)(r,pq)&&(t.LABEL=r[pq]),(0,Xs.has)(r,dq)&&(t.GROUP=r[dq]),(0,Xs.has)(r,mq)&&(t.POP_MODE=r[mq]),(0,Xs.has)(r,Cq)&&(t.PUSH_MODE=r[Cq]),(0,Xs.has)(r,Eq)&&(t.LONGER_ALT=r[Eq]),(0,Xs.has)(r,Iq)&&(t.LINE_BREAKS=r[Iq]),(0,Xs.has)(r,yq)&&(t.START_CHARS_HINT=r[yq]),t}Si.EOF=Bq({name:"EOF",pattern:Rye.Lexer.NA});(0,kx.augmentTokenTypes)([Si.EOF]);function Oye(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}}Si.createTokenInstance=Oye;function Mye(r,e){return(0,kx.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=Mye});var Cn=y(Wt=>{"use strict";var ka=Wt&&Wt.__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(Wt,"__esModule",{value:!0});Wt.serializeProduction=Wt.serializeGrammar=Wt.Terminal=Wt.Alternation=Wt.RepetitionWithSeparator=Wt.Repetition=Wt.RepetitionMandatoryWithSeparator=Wt.RepetitionMandatory=Wt.Option=Wt.Alternative=Wt.Rule=Wt.NonTerminal=Wt.AbstractProduction=void 0;var lr=Gt(),Uye=HA(),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,lr.forEach)(this.definition,function(t){t.accept(e)})},r}();Wt.AbstractProduction=ko;var bq=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,lr.assign)(i,(0,lr.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);Wt.NonTerminal=bq;var Qq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Rule=Qq;var Sq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Alternative=Sq;var vq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Option=vq;var xq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.RepetitionMandatory=xq;var Pq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.RepetitionMandatoryWithSeparator=Pq;var Dq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Repetition=Dq;var kq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.RepetitionWithSeparator=kq;var Rq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,lr.assign)(i,(0,lr.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);Wt.Alternation=Rq;var Ly=function(){function r(e){this.idx=1,(0,lr.assign)(this,(0,lr.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();Wt.Terminal=Ly;function Kye(r){return(0,lr.map)(r,zd)}Wt.serializeGrammar=Kye;function zd(r){function e(s){return(0,lr.map)(s,zd)}if(r instanceof bq){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,lr.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof Sq)return{type:"Alternative",definition:e(r.definition)};if(r instanceof vq)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof xq)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof Pq)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:zd(new Ly({terminalType:r.separator})),definition:e(r.definition)};if(r instanceo Line truncated
but found: '`+a+"'";if(n)return o+n+l;var c=(0,_s.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,_s.map)(c,function(h){return"["+(0,_s.map)(h,function(p){return(0,mf.tokenLabel)(p)}).join(", ")+"]"}),g=(0,_s.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,_s.first)(t).image,a=`
but found: '`+o+"'";if(i)return s+i+a;var l=(0,_s.map)(e,function(u){return"["+(0,_s.map)(u,function(g){return(0,mf.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(Ra.defaultParserErrorProvider);Ra.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}};Ra.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Ox.Terminal?u.terminalType.name:u instanceof Ox.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,_s.first)(e),s=n.idx,o=(0,jq.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,`
`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar.
`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>.
`)+`To resolve this make sure each Terminal and Non-Terminal names are unique
This is easy to accomplish by using the convention that Terminal names start with an uppercase letter
and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,_s.map)(r.prefixPath,function(n){return(0,mf.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix
`+("in <OR"+t+"> inside <"+r.topLevelRule.name+`> Rule,
`)+("<"+e+`> may appears as a prefix path in all these alternatives.
`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX
For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,_s.map)(r.prefixPath,function(n){return(0,mf.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in <OR"+t+">"+(" 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,jq.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 <OR"+r.alternation.idx+"> 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:
`+("<OR"+r.alternation.idx+"> inside <"+r.topLevelRule.name+`> Rule.
has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=twe.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 Ox.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 Wq=y(GA=>{"use strict";var rwe=GA&&GA.__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(GA,"__esModule",{value:!0});GA.GastRefResolverVisitor=GA.resolveGrammar=void 0;var iwe=Hn(),qq=Gt(),nwe=Cf();function swe(r,e){var t=new Jq(r,e);return t.resolveRefs(),t.errors}GA.resolveGrammar=swe;var Jq=function(r){rwe(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,qq.forEach)((0,qq.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:iwe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(nwe.GAstVisitor);GA.GastRefResolverVisitor=Jq});var $d=y(Lr=>{"use strict";var Fc=Lr&&Lr.__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(Lr,"__esModule",{value:!0});Lr.nextPossibleTokensAfter=Lr.possiblePathsFrom=Lr.NextTerminalAfterAtLeastOneSepWalker=Lr.NextTerminalAfterAtLeastOneWalker=Lr.NextTerminalAfterManySepWalker=Lr.NextTerminalAfterManyWalker=Lr.AbstractNextTerminalAfterProductionWalker=Lr.NextAfterTokenWalker=Lr.AbstractNextPossibleTokensWalker=void 0;var zq=My(),Ut=Gt(),owe=Tx(),Dt=Cn(),Vq=function(r){Fc(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,Ut.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Ut.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,Ut.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(zq.RestWalker);Lr.AbstractNextPossibleTokensWalker=Vq;var awe=function(r){Fc(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 Dt.Alternative({definition:s});this.possibleTokTypes=(0,owe.first)(o),this.found=!0}},e}(Vq);Lr.NextAfterTokenWalker=awe;var Zd=function(r){Fc(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}(zq.RestWalker);Lr.AbstractNextTerminalAfterProductionWalker=Zd;var Awe=function(r){Fc(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,Ut.first)(i.concat(n));this.r Line truncated
`+(""+s.join(`
`).replace(/\n/g,`
`)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=$we;function eBe(r,e,t){var i=function(){};(0,iC.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,us.forEach)(e,function(s){n[s]=vJ}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=eBe;var _x;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(_x=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function xJ(r,e){var t=PJ(r,e),i=DJ(r,e);return t.concat(i)}vi.validateVisitor=xJ;function PJ(r,e){var t=(0,us.map)(e,function(i){if(!(0,us.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,iC.functionName)(r.constructor)+" CST Visitor.",type:_x.MISSING_METHOD,methodName:i}});return(0,us.compact)(t)}vi.validateMissingCstMethods=PJ;var tBe=["constructor","visit","validateVisitor"];function DJ(r,e){var t=[];for(var i in r)(0,us.isFunction)(r[i])&&!(0,us.contains)(tBe,i)&&!(0,us.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,iC.functionName)(r.constructor)+` CST Visitor
There is no Grammar Rule corresponding to this method's name.
`,type:_x.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=DJ});var FJ=y(Vy=>{"use strict";Object.defineProperty(Vy,"__esModule",{value:!0});Vy.TreeBuilder=void 0;var wf=bJ(),ti=Gt(),RJ=kJ(),rBe=Hn(),iBe=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,ti.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:rBe.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ti.NOOP,this.cstFinallyStateUpdate=ti.NOOP,this.cstPostTerminal=ti.NOOP,this.cstPostNonTerminal=ti.NOOP,this.cstPostRule=ti.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=wf.setNodeLocationFull,this.setNodeLocationFromNode=wf.setNodeLocationFull,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=wf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=wf.setNodeLocationOnlyOffset,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=ti.NOOP;else throw Error('Invalid <nodeLocationTracking> 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,wf.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,wf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,ti.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,RJ.createBaseSemanticVisitorConstructor)(this.className,(0,ti.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,ti.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,RJ.createBaseVisitorConstructorWithDefaults)(this.className,(0,ti.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}();Vy.TreeBuilder=iBe});var TJ=y(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});Xy.LexerAdapter=void 0;var NJ=Hn(),nBe=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 <performSelfAnalysis> 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 Line truncated
See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
For Further details.`);if((0,kr.isArray)(e)){if((0,kr.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,kr.isArray)(e))this.tokensMap=(0,kr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,kr.has)(e,"modes")&&(0,kr.every)((0,kr.flatten)((0,kr.values)(e.modes)),nC.isTokenType)){var i=(0,kr.flatten)((0,kr.values)(e.modes)),n=(0,kr.uniq)(i);this.tokensMap=(0,kr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,kr.isObject)(e))this.tokensMap=(0,kr.cloneObj)(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=KJ.EOF;var s=(0,kr.every)((0,kr.values)(e),function(o){return(0,kr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?nC.tokenStructuredMatcherNoCategories:nC.tokenStructuredMatcher,(0,nC.augmentTokenTypes)((0,kr.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,kr.has)(i,"resyncEnabled")?i.resyncEnabled:UJ.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,kr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:UJ.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<<Gn.BITS_FOR_METHOD_TYPE+Gn.BITS_FOR_OCCURRENCE_IDX;this.ruleShortNameIdx++,this.shortRuleNameToFull[o]=e,this.fullRuleNameToShort[e]=o;function a(u){try{if(this.outputCst===!0){t.apply(this,u);var g=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(g),g}else return t.apply(this,u)}catch(f){return this.invokeRuleCatch(f,n,s)}finally{this.ruleFinallyStateUpdate()}}var l=function(u,g){return u===void 0&&(u=0),this.ruleInvocationStateUpdate(o,e,u),a.call(this,g)},c="ruleName";return l[c]=e,l.originalGrammarAction=t,l},r.prototype.invokeRuleCatch=function(e,t,i){var n=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if((0,Zy.isRecognitionException)(e)){var o=e;if(s){var a=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(a))if(o.resyncedTokens=this.reSyncTo(a),this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return i();else{if(this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,o.partialCstResult=l}throw o}}else{if(n)return this.moveToTerminatedState(),i();throw o}}else throw e},r.prototype.optionInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.OPTION_IDX,t);return this.optionInternalLogic(e,t,i)},r.prototype.optionInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(e.DEF!==void 0){if(o=e.DEF,a=e.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=e;if(s.call(this)===!0)return o.call(this)},r.prototype.atLeastOneInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.AT_LEAST_ONE_IDX,e);return this.atLeastOneInternalLogic(e,t,i)},r.prototype.atLeastOneInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;if(s.call(this)===!0)for(var c=this.doSingleRepetition(o);s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);else throw this.raiseEarlyExitException(e,MJ.PROD_TYPE.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],s,Gn.AT_LEAST_ONE_IDX,e,Bf.NextTerminalAfterAtLeastOneWalker)},r.prototype.atLeastOneSepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.AT_LEAST_ONE_SEP_IDX,e);this.atLeastOneSepFirstInternalLogic(e,t,i)},r.prototype.atLeastOneSepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,Bf.NextTerminalAfterAtLeastOneSepWalker],l,Gn.AT_LEAST_ONE_SEP_IDX,e,Bf.NextTerminalAfterAtLeastOneSepWalker)}else throw this.raiseEarlyExitException(e,MJ.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)},r.prototype.manyInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.MANY_IDX,e);return this.manyInternalLogic(e,t,i)},r.prototype.manyInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;for(var c=!0;s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],s,Gn.MANY_IDX,e,Bf.NextTerminalAfterManyWalker,c)},r.prototype.manySepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.MANY_SEP_IDX,e);this.manySepFirstInternalLogic(e,t,i)},r.prototype.manySepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,Bf.NextTerminalAfterManySepWalker],l,Gn.MANY_SEP_IDX,e,Bf.NextTerminalAfterManySepWalker)}},r.prototype.repetitionSepSecondInternal=function(e,t,i,n,s){for(;i();)this.CONSUME(t),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,i,n,s],i,Gn.AT_LEAST_ONE_SEP_IDX,e,s)},r.prototype.doSingleRepetition=function(e){var t=this.getLexerPosition();e.call(this);var i=this.getLexerPosition();return i>t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.OR_IDX,t),n=(0,kr.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. Line truncated
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze($J);var EBe={name:`This CSTNode indicates the Parser is in Recording Phase
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},IBe=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 CBe.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+`
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 sC.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){sC.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){sC.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,WJ)},r.prototype.manyInternalRecord=function(e,t){sC.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){sC.call(this,Lo.RepetitionWithSeparator,t,e,WJ)},r.prototype.orInternalRecord=function(e,t){return yBe.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(rw(t),!e||(0,In.has)(e,"ruleName")===!1){var n=new Error("<SUBRULE"+VJ(t)+"> 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,In.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?EBe:iw},r.prototype.consumeInternalRecord=function(e,t,i){if(rw(t),!(0,XJ.hasShortKeyProperty)(e)){var n=new Error("<CONSUME"+VJ(t)+"> 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,In.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),$J},r}();nw.GastRecorder=IBe;function sC(r,e,t,i){i===void 0&&(i=!1),rw(t);var n=(0,In.peek)(this.recordingProdStack),s=(0,In.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,In.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),iw}function yBe(r,e){var t=this;rw(e);var i=(0,In.peek)(this.recordingProdStack),n=(0,In.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,In.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,In.some)(s,function(l){return(0,In.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,In.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,In.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,In.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),iw}function VJ(r){return r===0?"":""+r}function rw(r){if(r<0||r>zJ){var e=new Error("Invalid DSL Method idx value: <"+r+`>
`+("Idx value must be a none negative value smaller than "+(zJ+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var r3=y(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.PerformanceTracer=void 0;var t3=Gt(),wBe=Hn(),BBe=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,t3.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=wBe.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<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,t3.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+"<-- <"+e+"> time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();sw.PerformanceTracer=BBe});var i3=y(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.applyMixins=void 0;function bBe(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]}})})}ow.applyMixins=bBe});var Hn=y(Cr=>{"use strict";var o3=Cr&&Cr.__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(Cr,"__esModule",{value:!0});Cr.EmbeddedActionsParser=Cr.CstParser=Cr.Parser=Cr.EMPTY_ALT=Cr.ParserDefinitionErrorType=Cr.DEFAULT_RULE_CONFIG=Cr.DEFAULT_PARSER_CONFIG=Cr.END_OF_FILE=void 0;var _i=Gt(),QBe=Yq(),n3=HA(),a3=_d(),s3=pJ(),SBe=Vx(),vBe=BJ(),xBe=FJ(),PBe=TJ(),DBe=OJ(),kBe=HJ(),RBe=YJ(),FBe=JJ(),NBe=e3(),TBe=r3(),LBe=i3();Cr.END_OF_FILE=(0,n3.createTokenInstance)(n3.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Cr.END_OF_FILE);Cr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:a3.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});Cr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var OBe;(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"})(OBe=Cr.ParserDefinitionErrorType||(Cr.ParserDefinitionErrorType={}));function MBe(r){return r===void 0&&(r=void 0),function(){return r}}Cr.EMPTY_ALT=MBe;var aw=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,_i.has)(t,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
Please use the <IGNORE_AMBIGUITIES> 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,_i.has)(t,"skipValidations")?t.skipValidations:Cr.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,_i.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,_i.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,s3.resolveGrammar)({rules:(0,_i.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,_i.isEmpty)(n)&&e.skipValidations===!1){var s=(0,s3.validateGrammar)({rules:(0,_i.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,_i.values)(e.tokensMap),errMsgProvider:a3.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,_i.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,QBe.computeAllProdsFollows)((0,_i.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,_i.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,_i.isEmpty)(e.definitionErrors))throw t=(0,_i.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected:
`+t.join(`
-------------------------------
`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();Cr.Parser=aw;(0,LBe.applyMixins)(aw,[SBe.Recoverable,vBe.LooksAhead,xBe.TreeBuilder,PBe.LexerAdapter,kBe.RecognizerEngine,DBe.RecognizerApi,RBe.ErrorHandler,FBe.ContentAssist,NBe.GastRecorder,TBe.PerformanceTracer]);var UBe=function(r){o3(e,r);function e(t,i){i===void 0&&(i=Cr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,_i.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(aw);Cr.CstParser=UBe;var KBe=function(r){o3(e,r);function e(t,i){i===void 0&&(i=Cr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,_i.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(aw);Cr.EmbeddedActionsParser=KBe});var l3=y(Aw=>{"use strict";Object.defineProperty(Aw,"__esModule",{value:!0});Aw.createSyntaxDiagramsCode=void 0;var A3=Ix();function HBe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+A3.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+A3.VERSION+"/diagrams/diagrams.css":s,a=`
<!-- This is a generated file -->
<!DOCTYPE html>
<meta charset="utf-8">
<style>
body {
background-color: hsl(30, 20%, 95%)
}
</style>
`,l=`
<link rel='stylesheet' href='`+o+`'>
`,c=`
<script src='`+n+`vendor/railroad-diagrams.js'><\/script>
<script src='`+n+`src/diagrams_builder.js'><\/script>
<script src='`+n+`src/diagrams_behavior.js'><\/script>
<script src='`+n+`src/main.js'><\/script>
`,u=`
<div id="diagrams" align="center"></div>
`,g=`
<script>
window.serializedGrammar = `+JSON.stringify(r,null," ")+`;
<\/script>
`,f=`
<script>
var diagramsDiv = document.getElementById("diagrams");
main.drawDiagramsFromSerializedGrammar(serializedGrammar, diagramsDiv);
<\/script>
`;return a+l+c+u+g+f}Aw.createSyntaxDiagramsCode=HBe});var g3=y(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.Parser=je.createSyntaxDiagramsCode=je.clearCache=je.GAstVisitor=je.serializeProduction=je.serializeGrammar=je.Terminal=je.Rule=je.RepetitionWithSeparator=je.RepetitionMandatoryWithSeparator=je.RepetitionMandatory=je.Repetition=je.Option=je.NonTerminal=je.Alternative=je.Alternation=je.defaultLexerErrorProvider=je.NoViableAltException=je.NotAllInputParsedException=je.MismatchedTokenException=je.isRecognitionException=je.EarlyExitException=je.defaultParserErrorProvider=je.tokenName=je.tokenMatcher=je.tokenLabel=je.EOF=je.createTokenInstance=je.createToken=je.LexerDefinitionErrorType=je.Lexer=je.EMPTY_ALT=je.ParserDefinitionErrorType=je.EmbeddedActionsParser=je.CstParser=je.VERSION=void 0;var GBe=Ix();Object.defineProperty(je,"VERSION",{enumerable:!0,get:function(){return GBe.VERSION}});var lw=Hn();Object.defineProperty(je,"CstParser",{enumerable:!0,get:function(){return lw.CstParser}});Object.defineProperty(je,"EmbeddedActionsParser",{enumerable:!0,get:function(){return lw.EmbeddedActionsParser}});Object.defineProperty(je,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return lw.ParserDefinitionErrorType}});Object.defineProperty(je,"EMPTY_ALT",{enumerable:!0,get:function(){return lw.EMPTY_ALT}});var c3=Jd();Object.defineProperty(je,"Lexer",{enumerable:!0,get:function(){return c3.Lexer}});Object.defineProperty(je,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return c3.LexerDefinitionErrorType}});var bf=HA();Object.defineProperty(je,"createToken",{enumerable:!0,get:function(){return bf.createToken}});Object.defineProperty(je,"createTokenInstance",{enumerable:!0,get:function(){return bf.createTokenInstance}});Object.defineProperty(je,"EOF",{enumerable:!0,get:function(){return bf.EOF}});Object.defineProperty(je,"tokenLabel",{enumerable:!0,get:function(){return bf.tokenLabel}});Object.defineProperty(je,"tokenMatcher",{enumerable:!0,get:function(){return bf.tokenMatcher}});Object.defineProperty(je,"tokenName",{enumerable:!0,get:function(){return bf.tokenName}});var YBe=_d();Object.defineProperty(je,"defaultParserErrorProvider",{enumerable:!0,get:function(){return YBe.defaultParserErrorProvider}});var oC=yf();Object.defineProperty(je,"EarlyExitException",{enumerable:!0,get:function(){return oC.EarlyExitException}});Object.defineProperty(je,"isRecognitionException",{enumerable:!0,get:function(){return oC.isRecognitionException}});Object.defineProperty(je,"MismatchedTokenException",{enumerable:!0,get:function(){return oC.MismatchedTokenException}});Object.defineProperty(je,"NotAllInputParsedException",{enumerable:!0,get:function(){return oC.NotAllInputParsedException}});Object.defineProperty(je,"NoViableAltException",{enumerable:!0,get:function(){return oC.NoViableAltException}});var jBe=Dx();Object.defineProperty(je,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return jBe.defaultLexerErrorProvider}});var Oo=Cn();Object.defineProperty(je,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(je,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(je,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(je,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(je,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(je,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(je,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(je,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(je,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(je,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var u3=Cn();Object.defineProperty(je,"serializeGrammar",{enumerable:!0,get:function(){return u3.serializeGrammar}});Object.defineProperty(je,"serializeProduction",{enumerable:!0,get:function(){return u3.serializeProduction}});var qBe=Cf();Object.defineProperty(je,"GAstVisitor",{enumerable:!0,get:function(){return qBe.GAstVisitor}});function JBe(){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`)}je.clearCache=JBe;var WBe=l3();Object.defineProperty(je,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return WBe.createSyntaxDiagramsCode}});var zBe=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}();je.Parser=zBe});var p3=y((Dtt,h3)=>{var cw=g3(),Ta=cw.createToken,f3=cw.tokenMatcher,tP=cw.Lexer,VBe=cw.EmbeddedActionsParser;h3.exports=r=>{let e=Ta({name:"LogicalOperator",pattern:tP.NA}),t=Ta({name:"Or",pattern:/\|/,categories:e}),i=Ta({name:"Xor",pattern:/\^/,categories:e}),n=Ta({name:"And",pattern:/&/,categories:e}),s=Ta({name:"Not",pattern:/!/}),o=Ta({name:"LParen",pattern:/\(/}),a=Ta({name:"RParen",pattern:/\)/}),l=Ta({name:"Query",pattern:r}),u=[Ta({name:"WhiteSpace",pattern:/\s+/,group:tP.SKIPPED}),t,i,n,o,a,s,e,l],g=new tP(u);class f extends VBe{constructor(p){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let w=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=w,v=this.CONSUME(e),D=this.SUBRULE2(this.atomicExpression);f3(v,t)?w=T=>B(T)||D(T):f3(v,i)?w=T=>!!(B(T)^D(T)):w=T=>B(T)&&D(T)}),w}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:C}=this.CONSUME(l);return w=>w(C)}},{ALT:()=>{this.CONSUME(s);let C=this.SUBRULE(this.atomicExpression);return w=>!C(w)}}])),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 d3=y(uw=>{var XBe=p3();uw.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=XBe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};uw.parse=uw.makeParser()});var m3=y((Rtt,C3)=>{"use strict";C3.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 Line truncated
`:`
`)+t,n=i+1,i=r.indexOf(`
`,n)}while(i!==-1);return s+=r.substr(n),s};L3.exports={stringReplaceAll:l0e,stringEncaseCRLFWithFirstIndex:c0e}});var G3=y((Ktt,H3)=>{"use strict";var u0e=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,M3=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,g0e=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,f0e=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,h0e=new Map([["n",`
`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function K3(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)):h0e.get(r)||r}function p0e(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(g0e))t.push(n[2].replace(f0e,(a,l,c)=>l?K3(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function d0e(r){M3.lastIndex=0;let e=[],t;for(;(t=M3.exec(r))!==null;){let i=t[1];if(t[2]){let n=p0e(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function U3(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}H3.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(u0e,(s,o,a,l,c,u)=>{if(o)n.push(K3(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:U3(r,t)(g)),t.push({inverse:a,styles:d0e(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(U3(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 gP=y((Htt,J3)=>{"use strict";var AC=D3(),{stdout:AP,stderr:lP}=T3(),{stringReplaceAll:C0e,stringEncaseCRLFWithFirstIndex:m0e}=O3(),Y3=["ansi","ansi","ansi256","ansi16m"],xf=Object.create(null),E0e=(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=AP?AP.level:0;r.level=e.level===void 0?t:e.level},cP=class{constructor(e){return j3(e)}},j3=r=>{let e={};return E0e(e,r),e.template=(...t)=>w0e(e.template,...t),Object.setPrototypeOf(e,hw.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=cP,e.template};function hw(r){return j3(r)}for(let[r,e]of Object.entries(AC))xf[r]={get(){let t=pw(this,uP(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};xf.visible={get(){let r=pw(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var q3=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of q3)xf[r]={get(){let{level:e}=this;return function(...t){let i=uP(AC.color[Y3[e]][r](...t),AC.color.close,this._styler);return pw(this,i,this._isEmpty)}}};for(let r of q3){let e="bg"+r[0].toUpperCase()+r.slice(1);xf[e]={get(){let{level:t}=this;return function(...i){let n=uP(AC.bgColor[Y3[t]][r](...i),AC.bgColor.close,this._styler);return pw(this,n,this._isEmpty)}}}}var I0e=Object.defineProperties(()=>{},{...xf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),uP=(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}},pw=(r,e,t)=>{let i=(...n)=>y0e(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=I0e,i._generator=r,i._styler=e,i._isEmpty=t,i},y0e=(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=C0e(e,t.close,t.open),t=t.parent;let s=e.indexOf(`
`);return s!==-1&&(e=m0e(e,n,i,s)),i+e+n},aP,w0e=(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<t.length;s++)n.push(String(i[s-1]).replace(/[{}\\]/g,"\\$&"),String(t.raw[s]));return aP===void 0&&(aP=G3()),aP(r,n.join(""))};Object.defineProperties(hw.prototype,xf);var lC=hw();lC.supportsColor=AP;lC.stderr=hw({level:lP?lP.level:0});lC.stderr.supportsColor=lP;lC.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"};J3.exports=lC});var dw=y(fs=>{"use strict";fs.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;fs.find=(r,e)=>r.nodes.find(t=>t.type===e);fs.exceedsLimit=(r,e,t=1,i)=>i===!1||!fs.isInteger(r)||!fs.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;fs.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)};fs.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;fs.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;fs.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;fs.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);fs.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n<i.length;n++){let s=i[n];Array.isArray(s)?t(s,e):s!==void 0&&e.push(s)}return e};return t(r),e}});var Cw=y((Ytt,z3)=>{"use strict";var W3=dw();z3.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&W3.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&W3.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 X3=y((jtt,V3)=>{"use strict";V3.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=y((qtt,nW)=>{"use strict";var _3=X3(),Tc=(r,e,t)=>{if(_3(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(_3(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(Tc.cache.hasOwnProperty(l))return Tc.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=Z3(C,Math.abs(c),f,i),c=f.a=0}return u>=0&&(h=Z3(c,u,f,i)),f.negatives=p,f.positives=h,f.result=B0e(p,h,i),i.capture===!0?f.result=`(${f.result})`:i.wrap!==!1&&h.length+p.length>1&&(f.result=`(?:${f.result})`),Tc.cache[l]=f,f.result};function B0e(r,e,t){let i=fP(r,e,"-",!1,t)||[],n=fP(e,r,"",!1,t)||[],s=fP(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function b0e(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;r<n&&n<=e;)s.add(n),i+=1,n=tW(e+1,i)-1;return s=[...s],s.sort(v0e),s}function Q0e(r,e,t){if(r===e)return{pattern:r,count:[],digits:0};let i=S0e(r,e),n=i.length,s="",o=0;for(let a=0;a<n;a++){let[l,c]=i[a];l===c?s+=l:l!=="0"||c!=="9"?s+=x0e(l,c,t):o++}return o&&(s+=t.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[o],digits:n}}function Z3(r,e,t,i){let n=b0e(r,e),s=[],o=r,a;for(let l=0;l<n.length;l++){let c=n[l],u=Q0e(String(o),String(c),i),g="";if(!t.isPadded&&a&&a.pattern===u.pattern){a.count.length>1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+rW(a.count),o=c+1;continue}t.isPadded&&(g=P0e(c,t,i)),u.string=g+u.pattern+rW(u.count),s.push(u),o=c+1,a=u}return s}function fP(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!$3(e,"string",a)&&s.push(t+a),i&&$3(e,"string",a)&&s.push(t+a)}return s}function S0e(r,e){let t=[];for(let i=0;i<r.length;i++)t.push([r[i],e[i]]);return t}function v0e(r,e){return r>e?1:e>r?-1:0}function $3(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 x0e(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function iW(r){return/^-?(0+)\d/.test(r)}function P0e(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}}`}}Tc.cache={};Tc.clearCache=()=>Tc.cache={};nW.exports=Tc});var dP=y((Jtt,fW)=>{"use strict";var D0e=J("util"),AW=sW(),oW=r=>r!==null&&typeof r=="object"&&!Array.isArray(r Line truncated
`,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=y((Xtt,QW)=>{"use strict";var G0e=Cw(),{MAX_LENGTH:wW,CHAR_BACKSLASH:CP,CHAR_BACKTICK:Y0e,CHAR_COMMA:j0e,CHAR_DOT:q0e,CHAR_LEFT_PARENTHESES:J0e,CHAR_RIGHT_PARENTHESES:W0e,CHAR_LEFT_CURLY_BRACE:z0e,CHAR_RIGHT_CURLY_BRACE:V0e,CHAR_LEFT_SQUARE_BRACKET:BW,CHAR_RIGHT_SQUARE_BRACKET:bW,CHAR_DOUBLE_QUOTE:X0e,CHAR_SINGLE_QUOTE:_0e,CHAR_NO_BREAK_SPACE:Z0e,CHAR_ZERO_WIDTH_NOBREAK_SPACE:$0e}=yW(),ebe=(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=w=>{if(w.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&w.type==="text"){a.value+=w.value;return}return o.nodes.push(w),w.parent=o,w.prev=a,a=w,w};for(C({type:"bos"});u<c;)if(o=s[s.length-1],f=p(),!(f===$0e||f===Z0e)){if(f===CP){C({type:"text",value:(e.keepEscaping?f:"")+p()});continue}if(f===bW){C({type:"text",value:"\\"+f});continue}if(f===BW){l++;let w=!0,B;for(;u<c&&(B=p());){if(f+=B,B===BW){l++;continue}if(B===CP){f+=p();continue}if(B===bW&&(l--,l===0))break}C({type:"text",value:f});continue}if(f===J0e){o=C({type:"paren",nodes:[]}),s.push(o),C({type:"text",value:f});continue}if(f===W0e){if(o.type!=="paren"){C({type:"text",value:f});continue}o=s.pop(),C({type:"text",value:f}),o=s[s.length-1];continue}if(f===X0e||f===_0e||f===Y0e){let w=f,B;for(e.keepQuotes!==!0&&(f="");u<c&&(B=p());){if(B===CP){f+=B+p();continue}if(B===w){e.keepQuotes===!0&&(f+=B);break}f+=B}C({type:"text",value:f});continue}if(f===z0e){g++;let w=a.value&&a.value.slice(-1)==="$"||o.dollar===!0;o=C({type:"brace",open:!0,close:!1,dollar:w,depth:g,commas:0,ranges:0,nodes:[]}),s.push(o),C({type:"open",value:f});continue}if(f===V0e){if(o.type!=="brace"){C({type:"text",value:f});continue}let w="close";o=s.pop(),o.close=!0,C({type:w,value:f}),g--,o=s[s.length-1];continue}if(f===j0e&&g>0){if(o.ranges>0){o.ranges=0;let w=o.nodes.shift();o.nodes=[w,{type:"text",value:G0e(o)}]}C({type:"comma",value:f}),o.commas++;continue}if(f===q0e&&g>0&&o.commas===0){let w=o.nodes;if(g===0||w.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"){w.pop();let B=w[w.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 w=s[s.length-1],B=w.nodes.indexOf(o);w.nodes.splice(B,1,...o.nodes)}while(s.length>0);return C({type:"eos"}),n};QW.exports=ebe});var PW=y((_tt,xW)=>{"use strict";var vW=Cw(),tbe=dW(),rbe=EW(),ibe=SW(),Yn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Yn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Yn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Yn.parse=(r,e={})=>ibe(r,e);Yn.stringify=(r,e={})=>vW(typeof r=="string"?Yn.parse(r,e):r,e);Yn.compile=(r,e={})=>(typeof r=="string"&&(r=Yn.parse(r,e)),tbe(r,e));Yn.expand=(r,e={})=>{typeof r=="string"&&(r=Yn.parse(r,e));let t=rbe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Yn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Yn.compile(r,e):Yn.expand(r,e);xW.exports=Yn});var uC=y((Ztt,NW)=>{"use strict";var nbe=J("path"),Mo="\\\\/",DW=`[^${Mo}]`,La="\\.",sbe="\\+",obe="\\?",Ew="\\/",abe="(?=.)",kW="[^/]",mP=`(?:${Ew}|$)`,RW=`(?:^|${Ew})`,EP=`${La}{1,2}${mP}`,Abe=`(?!${La})`,lbe=`(?!${RW}${EP})`,cbe=`(?!${La}{0,1}${mP})`,ube=`(?!${EP})`,gbe=`[^.${Ew}]`,fbe=`${kW}*?`,FW={DOT_LITERAL:La,PLUS_LITERAL:sbe,QMARK_LITERAL:obe,SLASH_LITERAL:Ew,ONE_CHAR:abe,QMARK:kW,END_ANCHOR:mP,DOTS_SLASH:EP,NO_DOT:Abe,NO_DOTS:lbe,NO_DOT_SLASH:cbe,NO_DOTS_SLASH:ube,QMARK_NO_DOT:gbe,STAR:fbe,START_ANCHOR:RW},hbe={...FW,SLASH_LITERAL:`[${Mo}]`,QMARK:DW,STAR:`${DW}*?`,DOTS_SLASH:`${La}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${La})`,NO_DOTS:`(?!(?:^|[${Mo}])${La}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${La}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${La}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},pbe={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:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",spaceLine truncated
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=KDe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});f[rn]=0,f[ih]=!1;let h=()=>f[rn]<f.remoteSettings.maxConcurrentStreams,p=!0;f.socket.once("session",w=>{this.tlsSessionCache.set(u,w)}),f.once("error",w=>{for(let{reject:B}of i)B(w);this.tlsSessionCache.delete(u)}),f.setTimeout(this.timeout,()=>{f.destroy()}),f.once("close",()=>{if(g){p&&this._freeSessionsCount--,this._sessionsCount--;let w=this.sessions[o];w.splice(w.indexOf(f),1),w.length===0&&delete this.sessions[o]}else{let w=new Error("Session closed without receiving a SETTINGS frame");w.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(w);l()}this._tryToCreateNewSession(o,a)});let C=()=>{if(!(!(o in this.queue)||!h())){for(let w of f[ms])if(w in this.queue[o]){let{listeners:B}=this.queue[o][w];for(;B.length!==0&&h();)B.shift().resolve(f);let v=this.queue[o];if(v[w].listeners.length===0&&(delete v[w],Object.keys(v).length===0)){delete this.queue[o];break}if(!h())break}}};f.on("origin",()=>{f[ms]=f.originSet,h()&&(C(),PR(this.sessions[o],f))}),f.once("remoteSettings",()=>{if(f.ref(),f.unref(),this._sessionsCount++,c.destroyed){let w=new Error("Agent has been destroyed");for(let B of i)B.reject(w);f.destroy();return}f[ms]=f.originSet;{let w=this.sessions;if(o in w){let B=w[o];B.splice(YDe(B,f,jDe),0,f)}else w[o]=[f]}this._freeSessionsCount+=1,g=!0,this.emit("session",f),C(),l(),f[rn]===0&&this._freeSessionsCount>this.maxFreeSessions&&f.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),f.on("remoteSettings",()=>{C(),PR(this.sessions[o],f)})}),f[CV]=f.request,f.request=(w,B)=>{if(f[ih])throw new Error("The session is gracefully closing. No new streams are allowed.");let v=f[CV](w,B);return f.ref(),++f[rn],f[rn]===f.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,v.once("close",()=>{if(p=h(),--f[rn],!f.destroyed&&!f.closed&&(qDe(this.sessions[o],f),h()&&!f.closed)){p||(this._freeSessionsCount++,p=!0);let D=f[rn]===0;D&&f.unref(),D&&(this._freeSessionsCount>this.maxFreeSessions||f[ih])?f.close():(PR(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),UDe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[rn]===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 mV({agent:this,isFree:!0})}get busySessions(){return mV({agent:this,isFree:!1})}};zo.kCurrentStreamsCount=rn;zo.kGracefullyClosing=ih;IV.exports={Agent:zo,globalAgent:new zo}});var RR=y((ast,yV)=>{"use strict";var{Readable:JDe}=J("stream"),kR=class extends JDe{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()}};yV.exports=kR});var FR=y((Ast,wV)=>{"use strict";wV.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 bV=y((lst,BV)=>{"use strict";BV.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var SV=y((cst,QV)=>{"use strict";QV.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var xV=y((gst,vV)=>{"use strict";var nh=(r,e,t)=>{vV.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${su Line truncated
`).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=ii;var TB=class extends ii{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Yt.MaxRedirectsError=TB;var LB=class extends ii{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Yt.HTTPError=LB;var OB=class extends ii{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Yt.CacheError=OB;var MB=class extends ii{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Yt.UploadError=MB;var UB=class extends ii{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Yt.TimeoutError=UB;var WC=class extends ii{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Yt.ReadError=WC;var KB=class extends ii{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Yt.UnsupportedProtocolError=KB;var $ke=["socket","connect","continue","information","upgrade","timeout"],HB=class extends c6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[oh]=0,this[Ah]=0,this.requestInitialized=!1,this[RB]=new Set,this.redirects=[],this[lh]=!1,this[FB]=!1,this[JC]=[],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 iF.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){Ce.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof Rke.ReadStream&&await Xke(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[Di])===null||c===void 0||c.destroy();return}for(let g of this[JC])g();this[JC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof ii){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ce.default.object(e)&&!Ce.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),Ce.default.urlInstance(t.url)&&(t.url=new tl.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.method),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.headers),Ce.assert.any([Ce.default.string,Ce.default.urlInstance,Ce.default.undefined],t.prefixUrl),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cookieJar),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.searchParams),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.cache),Ce.assert.any([Ce.default.object,Ce.default.number,Ce.default.undefined],t.timeout),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.context),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.hooks),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.decompress),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.ignoreInvalidCookies),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.followRedirect),Ce.assert.any([Ce.default.number,Ce.default.undefined],t.maxRedirects),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.throwHttpErrors),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.http2),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.allowGetBody),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.localAddress),Ce.assert.any([d6.isDnsLookupIpVersion,Ce.default.undefined],t.dnsLookupIpVersion),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.https),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.rejectUnauthorized),t.https&&(Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.https.rejectUnauthorized),Ce.assert.any([Ce.default.function_,Ce.default.undefined],t.https.checkServerIdentity),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificateAuthority),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.key),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificate),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.https.passphrase),Ce.assert.any([Ce.default.string,Ce.default.buffer,Ce.default.array,Ce.default.undefined],t.https.Line truncated
`,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)}};za.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;za.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=dF({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=QRe.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 dF(r){for(var e=1,t=arguments.length;e<t;++e){var i=arguments[e];if(typeof i=="object")for(var n=Object.keys(i),s=0,o=n.length;s<o;++s){var a=n[s];i[a]!==void 0&&(r[a]=i[a])}}return r}var sl;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?sl=function(){var r=Array.prototype.slice.call(arguments);typeof r[0]=="string"?r[0]="TUNNEL: "+r[0]:r.unshift("TUNNEL:"),console.error.apply(console,r)}:sl=function(){};ch.debug=sl});var J6=y((Yst,q6)=>{q6.exports=j6()});var i7=y((VB,wF)=>{var r7=Object.assign({},J("fs")),yF=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,w,B;g&&(u?f=J("path").dirname(f)+"/":f=__dirname+"/",p=function(E,I){var k=Ea(E);return k?I?k:k.toString():(w||(w=r7),B||(B=J("path")),E=B.normalize(E),w.readFileSync(E,I?null:"utf8"))},C=function(E){var I=p(E,!0);return I.buffer||(I=new Uint8Array(I)),_(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"&&Br("no native wasm support detected");function Z(d,E,I){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ie[d>>0];case"i8":return ie[d>>0];case"i16":return he[d>>1];case"i32":return me[d>>2];case"i64":return me[d>>2];case"float":return Rt[d>>2];case"double":return It[d>>3];default:Br("invalid type for getValue: "+E)}return null}var A,ae=!1,ge;function _(d,E){d||Br("Assertion failed: "+E)}function L(d){var E=t["_"+d];return _(E,"Cannot call unknown function "+d+", make sure it is exported"),E}function N(d,E,I,k,O){var X={string:function(et){var Et=0;if(et!=null&&et!==0){var Be=(et.length<<2)+1;Et=b(Be),se(et,Et,Be)}return Et},array:function(et){var Et=b(et.length);return fe(et,Et),Et}};function te(et){return E==="string"?Pe(et):E==="boolean"?Boolean(et):et}var ye=L(d),de=[],Ye=0;if(k)for(var rt=0;rt<k.length;rt++){var wt=X[I[rt]];wt?(Ye===0&&(Ye=CI()),de[rt]=wt(k[rt])):de[rt]=k[rt]}var At=ye.apply(null,de);return At=te(At),Ye!==0&&mI(Ye),At}function ue(d,E,I,k){I=I||[];var O=I.every(function(te){return te==="number"}),X=E!=="string";return X&&O&&!k?L(d):function(){return N(d,E,I,arguments,k)}}var we=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Te(d,E,I){for(var k=E+I,O=E;d[O]&&!(O>=k);)++O;if(O-E>16&&d.subarray&&we)return we.decode(d.subarray(E,O));for(var X="";E<O;){var te=d[E++];if(!(te&128)){X+=String.fromCharCode(te);continue}var ye=d[E++]&63;if((te&224)==192){X+=String.fromCharCode((te&31)<<6|ye);continue}var de=d[E++]&63;if((te&240)==224?te=(te&15)<<12|ye<<6|de:te=(te&7)<<18|ye<<12|de<<6|d[E++]&63,te<65536)X+=String.fromCharCode(te);else{var Ye=te-65536;X+=String.fromCharCode(55296|Ye>>10,56320|Ye&1023)}}return X}function Pe(d,E){return d?Te(Y,d,E):""}function Le(d,E,I,k){if(!(k>0))return 0;for(var O=I,X=I+k-1,te=0;te<d.length;++te){var ye=d.charCodeAt(te);if(ye>=55296&&ye<=57343){var de=d.charCodeAt(++te);ye=65536+((ye&1023)<<10)|de&1023}if(ye<=127){if(I>=X)break;E[I++]=ye}else if(ye<=2047){if(I+1>=X)break;E[I++]=192|ye>>6,E[I++]=128|ye&63}else if(ye<=65535){if(I+2>=X)break;E[I++]=224|ye>>12,E[I++]=128|ye>>6&63,E[I++]=128|ye&63}else{if(I+3>=X)break;E[I++]=240|ye>>18,E[I++]=128|ye>>12&63,E[I++]=128|ye>>6&63,E[I++]=128|ye&63}}return E[I]=0,I-O}function se(d,E,I){return Le(d,Y,E,I)}function Ae(d){for(var E=0,I=0;I<d.length;++I){var k=d.charCodeAt(I);k>=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=Ae(d)+1,I=dt(E);return I&&Le(d,ie,I,E),I}function Line truncated
`)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=`
`));if(!E)return null;d.input=bA(E,!0)}return d.input.shift()},put_char:function(d,E){E===null||E===10?(v(Te(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(v(Te(d.output,0)),d.output=[])}},default_tty1_ops:{put_char:function(d,E){E===null||E===10?(D(Te(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(D(Te(d.output,0)),d.output=[])}}};function es(d){for(var E=H(d,65536),I=dt(E);d<E;)ie[I+d++]=0;return I}var ut={ops_table:null,mount:function(d){return ut.createNode(null,"/",16895,0)},createNode:function(d,E,I,k){if(S.isBlkdev(I)||S.isFIFO(I))throw new S.ErrnoError(63);ut.ops_table||(ut.ops_table={dir:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,lookup:ut.node_ops.lookup,mknod:ut.node_ops.mknod,rename:ut.node_ops.rename,unlink:ut.node_ops.unlink,rmdir:ut.node_ops.rmdir,readdir:ut.node_ops.readdir,symlink:ut.node_ops.symlink},stream:{llseek:ut.stream_ops.llseek}},file:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:{llseek:ut.stream_ops.llseek,read:ut.stream_ops.read,write:ut.stream_ops.write,allocate:ut.stream_ops.allocate,mmap:ut.stream_ops.mmap,msync:ut.stream_ops.msync}},link:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,readlink:ut.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:S.chrdev_stream_ops}});var O=S.createNode(d,E,I,k);return S.isDir(O.mode)?(O.node_ops=ut.ops_table.dir.node,O.stream_ops=ut.ops_table.dir.stream,O.contents={}):S.isFile(O.mode)?(O.node_ops=ut.ops_table.file.node,O.stream_ops=ut.ops_table.file.stream,O.usedBytes=0,O.contents=null):S.isLink(O.mode)?(O.node_ops=ut.ops_table.link.node,O.stream_ops=ut.ops_table.link.stream):S.isChrdev(O.mode)&&(O.node_ops=ut.ops_table.chrdev.node,O.stream_ops=ut.ops_table.chrdev.stream),O.timestamp=Date.now(),d&&(d.contents[E]=O,d.timestamp=O.timestamp),O},getFileDataAsTypedArray:function(d){return d.contents?d.contents.subarray?d.contents.subarray(0,d.usedBytes):new Uint8Array(d.contents):new Uint8Array(0)},expandFileStorage:function(d,E){var I=d.contents?d.contents.length:0;if(!(I>=E)){var k=1024*1024;E=Math.max(E,I*(I<k?2:1.125)>>>0),I!=0&&(E=Math.max(E,256));var O=d.contents;d.contents=new Uint8Array(E),d.usedBytes>0&&d.contents.set(O.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&&ut.resizeFileStorage(d,E.size)},lookup:function(d,E){throw S.genericErrors[44]},mknod:function(d,E,I,k){return ut.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 O 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=ut.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,O){var X=d.node.contents;if(O>=d.node.usedBytes)return 0;var te=Math.min(d.node.usedBytes-O,k);if(te>8&&X.subarray)E.set(X.subarray(O,O+te),I);else for(var ye=0;ye<te;ye++)E[I+ye]=X[O+ye];return te},write:function(d,E,I,k,O,X){if(E.buffer===ie.buffer&&(X=!1),!k)return 0;var te=d.node;if(te.timestamp=Date.now(),E.subarray&&(!te.contents||te.contents.subarray)){if(X)return te.contents=E.subarray(I,I+k),te.usedBytes=k,k;if(te.usedBytes===0&&O===0)return te.contents=E.slice(I,I+k),te.usedBytes=k,k;if(O+k<=te.usedBytes)return te.contents.set(E.subarray(I,I+k),O),k}if(ut.expandFileStorage(te,O+k),te.contents.subarray&&E.subarray)te.contents.set(E.subarray(I,I+k),O);else for(var ye=0;ye<k;ye++)te.contents[O+ye]=E[I+ye];return te.usedBytes=Math.max(te.usedBytes,O+k),k},llseek:function(d,E,I){var k=E;if(I===1?k+=d.position:I===2&&S.isFile(d.node.mode)&&(k+=d.node.usedBytes),k<0)throw new S.ErrnoError(28);return k},allocate:function(d,E,I){ut.expandFileStorage(d.node,E+I) Line truncated
`,n=Buffer.byteLength(i),s=Math.floor(Math.log(n)/Math.log(10))+1;return n+s>=Math.pow(10,s)&&(s+=1),s+n+i}};cm.parse=(r,e,t)=>new cm(xNe(PNe(r),e),t);var xNe=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,PNe=r=>r.replace(/\n$/,"").split(`
`).reduce(DNe,Object.create(null)),DNe=(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=cm});var I0=y((Iat,Y9)=>{"use strict";Y9.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 lN=y((wat,j9)=>{"use strict";var y0=["|","<",">","?",":"],AN=y0.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),kNe=new Map(y0.map((r,e)=>[r,AN[e]])),RNe=new Map(AN.map((r,e)=>[r,y0[e]]));j9.exports={encode:r=>y0.reduce((e,t)=>e.split(t).join(kNe.get(t)),r),decode:r=>AN.reduce((e,t)=>e.split(t).join(RNe.get(t)),r)}});var J9=y((Bat,q9)=>{"use strict";q9.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 CN=y((xat,rX)=>{"use strict";var _9=hh(),Z9=E0(),$9=mh(),bat=lm(),Xo=J("fs"),Eh=J("path"),Qat=Am(),FNe=16*1024*1024,W9=Symbol("process"),z9=Symbol("file"),V9=Symbol("directory"),cN=Symbol("symlink"),X9=Symbol("hardlink"),um=Symbol("header"),w0=Symbol("read"),uN=Symbol("lstat"),B0=Symbol("onlstat"),gN=Symbol("onread"),fN=Symbol("onreadlink"),hN=Symbol("openfile"),pN=Symbol("onopenfile"),nu=Symbol("close"),b0=Symbol("mode"),eX=I0(),NNe=lN(),tX=J9(),Q0=eX(class extends _9{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=e,this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid(),this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||FNe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=t.cwd||process.cwd(),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths&&Eh.win32.isAbsolute(e)){let n=Eh.win32.parse(e);this.path=e.substr(n.root.length),i=n.root}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=NNe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=t.absolute||Eh.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[B0](this.statCache.get(this.absolute)):this[uN]()}[uN](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[B0](t)})}[B0](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=LNe(e),this.emit("stat",e),this[W9]()}[W9](){switch(this.type){case"File":return this[z9]();case"Directory":return this[V9]();case"SymbolicLink":return this[cN]();default:return this.end()}}[b0](e){return tX(e,this.type==="Directory",this.portable)}[um](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new $9({path:this.path,linkpath:this.linkpath,mode:this[b0](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&&this.write(new Z9({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.path,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()),this.write(this.header.block)}[V9](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[um](),this.end()}[cN](){Xo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[fN](t)})}[fN](e){this.linkpath=e.replace(/\\/g,"/"),this[um](),this.end()}[X9](e){this.type="Link",this.linkpath=Eh.relative(this.cwd,e).replace(/\\/g,"/"),this.stat.size=0,this[um](),this.end()}[z9](){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[X9](t)}this.linkCache.set(e,this.absolute)}if(this[um](),this.stat.size===0)return this.end();this[hN]()}[hN](){Xo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[pN](t)})}[pN](e){let t=512*Math.ceil(this.stat.size/512),i=Math.min(t,this.maxReadSi Line truncated
`}),a},i})});var ab=y((LAt,uZ)=>{var PLe=ws(),DLe=TC(),kLe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,RLe=/^\w*$/;function FLe(r,e){if(PLe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||DLe(r)?!0:RLe.test(r)||!kLe.test(r)||e!=null&&r in Object(e)}uZ.exports=FLe});var Ab=y((OAt,gZ)=>{var NLe=zc(),TLe=Sn(),LLe="[object AsyncFunction]",OLe="[object Function]",MLe="[object GeneratorFunction]",ULe="[object Proxy]";function KLe(r){if(!TLe(r))return!1;var e=NLe(r);return e==OLe||e==MLe||e==LLe||e==ULe}gZ.exports=KLe});var hZ=y((MAt,fZ)=>{var HLe=Cs(),GLe=HLe["__core-js_shared__"];fZ.exports=GLe});var CZ=y((UAt,dZ)=>{var fT=hZ(),pZ=function(){var r=/[^.]+$/.exec(fT&&fT.keys&&fT.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function YLe(r){return!!pZ&&pZ in r}dZ.exports=YLe});var hT=y((KAt,mZ)=>{var jLe=Function.prototype,qLe=jLe.toString;function JLe(r){if(r!=null){try{return qLe.call(r)}catch{}try{return r+""}catch{}}return""}mZ.exports=JLe});var IZ=y((HAt,EZ)=>{var WLe=Ab(),zLe=CZ(),VLe=Sn(),XLe=hT(),_Le=/[\\^$.*+?()[\]{}|]/g,ZLe=/^\[object .+?Constructor\]$/,$Le=Function.prototype,eOe=Object.prototype,tOe=$Le.toString,rOe=eOe.hasOwnProperty,iOe=RegExp("^"+tOe.call(rOe).replace(_Le,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function nOe(r){if(!VLe(r)||zLe(r))return!1;var e=WLe(r)?iOe:ZLe;return e.test(XLe(r))}EZ.exports=nOe});var wZ=y((GAt,yZ)=>{function sOe(r,e){return r==null?void 0:r[e]}yZ.exports=sOe});var El=y((YAt,BZ)=>{var oOe=IZ(),aOe=wZ();function AOe(r,e){var t=aOe(r,e);return oOe(t)?t:void 0}BZ.exports=AOe});var wm=y((jAt,bZ)=>{var lOe=El(),cOe=lOe(Object,"create");bZ.exports=cOe});var vZ=y((qAt,SZ)=>{var QZ=wm();function uOe(){this.__data__=QZ?QZ(null):{},this.size=0}SZ.exports=uOe});var PZ=y((JAt,xZ)=>{function gOe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}xZ.exports=gOe});var kZ=y((WAt,DZ)=>{var fOe=wm(),hOe="__lodash_hash_undefined__",pOe=Object.prototype,dOe=pOe.hasOwnProperty;function COe(r){var e=this.__data__;if(fOe){var t=e[r];return t===hOe?void 0:t}return dOe.call(e,r)?e[r]:void 0}DZ.exports=COe});var FZ=y((zAt,RZ)=>{var mOe=wm(),EOe=Object.prototype,IOe=EOe.hasOwnProperty;function yOe(r){var e=this.__data__;return mOe?e[r]!==void 0:IOe.call(e,r)}RZ.exports=yOe});var TZ=y((VAt,NZ)=>{var wOe=wm(),BOe="__lodash_hash_undefined__";function bOe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=wOe&&e===void 0?BOe:e,this}NZ.exports=bOe});var OZ=y((XAt,LZ)=>{var QOe=vZ(),SOe=PZ(),vOe=kZ(),xOe=FZ(),POe=TZ();function Nh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}Nh.prototype.clear=QOe;Nh.prototype.delete=SOe;Nh.prototype.get=vOe;Nh.prototype.has=xOe;Nh.prototype.set=POe;LZ.exports=Nh});var UZ=y((_At,MZ)=>{function DOe(){this.__data__=[],this.size=0}MZ.exports=DOe});var Th=y((ZAt,KZ)=>{function kOe(r,e){return r===e||r!==r&&e!==e}KZ.exports=kOe});var Bm=y(($At,HZ)=>{var ROe=Th();function FOe(r,e){for(var t=r.length;t--;)if(ROe(r[t][0],e))return t;return-1}HZ.exports=FOe});var YZ=y((elt,GZ)=>{var NOe=Bm(),TOe=Array.prototype,LOe=TOe.splice;function OOe(r){var e=this.__data__,t=NOe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():LOe.call(e,t,1),--this.size,!0}GZ.exports=OOe});var qZ=y((tlt,jZ)=>{var MOe=Bm();function UOe(r){var e=this.__data__,t=MOe(e,r);return t<0?void 0:e[t][1]}jZ.exports=UOe});var WZ=y((rlt,JZ)=>{var KOe=Bm();function HOe(r){return KOe(this.__data__,r)>-1}JZ.exports=HOe});var VZ=y((ilt,zZ)=>{var GOe=Bm();function YOe(r,e){var t=this.__data__,i=GOe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}zZ.exports=YOe});var bm=y((nlt,XZ)=>{var jOe=UZ(),qOe=YZ(),JOe=qZ(),WOe=WZ(),zOe=VZ();function Lh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}Lh.prototype.clear=jOe;Lh.prototype.delete=qOe;Lh.prototype.get=JOe;Lh.prototype.has=WOe;Lh.prototype.set=zOe;XZ.exports=Lh});var lb=y((slt,_Z)=>{var VOe=El(),XOe=Cs(),_Oe=VOe(XOe,"Map");_Z.exports=_Oe});var e$=y((olt,$Z)=>{var ZZ=OZ(),ZOe=bm(),$Oe=lb();function eMe(){this.size=0,this.__data__={hash:new ZZ,map:new($Oe||ZOe),string:new ZZ}}$Z.exports=eMe});var r$=y((alt,t$)=>{function tMe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}t$.exports=tMe});var Qm=y((Alt,i$)=>{var rMe=r$();function iMe(r,e){var t=r.__data__;return rMe(e)?t[typeof e=="string"?"string":"hash"]:t.map}i$.exports=iMe});var s$=y((llt,n$)=>{var nMe=Qm();function sMe(r){var e=nMe(this,r).delete(r);return this.size-=e?1:0,e}n$.exports=sMe});var a$=y((clt,o$)=>{var oMe=Qm();function aMe(r){return oMe(this,r).get(r)}o$.exports=aMe});var l$=y((ult,A$)=>{var AMe=Qm();function lMe(r){return AMe(this,r).has(r)}A$.exports=lMe});var u$=y((glt,c$)=>{var cMe=Qm();function uMe(r,e){var t=cMe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}c$.exports=uMe});var cb=y((flt,g$)=>{va Line truncated
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,Ps({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,aie.default)({args:g,value:u,path:s,sync:n,tests:f,endEarly:c},h=>{if(h)return void i(h,u);(0,aie.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Ps({},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(Ps({},t,{value:e})),n;return i._validate(e,Ps({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(lie.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(lie.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,oie.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=Xh.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Xh.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=Xh.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,Ub.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,iYe.default)(e).map(s=>new tYe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new eYe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,Ub.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=Xh.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,Ub.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=Xh.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,Ub.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)}}};Kb.default=oo;oo.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])oo.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,rYe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Ps({},i,{parent:n,path:e}))};for(let r of["equals","is"])oo.prototype[r]=oo.prototype.oneOf;for(let r of["not","nope"])oo.prototype[r]=oo.prototype.notOneOf;oo.prototype.optional=oo.prototype.notRequired});var gie=y(jm=>{"use strict";Object.defineProperty(jm,"__esModule",{value:!0});jm.create=uie;jm.default=void 0;var nYe=sYe(oA());function sYe(r){return r&&r.__esModule?r:{default:r}}var fL=nYe.default,oYe=fL;jm.default=oYe;function uie(){return new fL}uie.prototype=fL.prototype});var _h=y(Hb=>{"use strict";Object.defineProperty(Hb,"__esModule",{value:!0});Hb.default=void 0;var aYe=r=>r==null;Hb.defaul Line truncated
`),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=wqe,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(!yqe(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=Gne(),r.define=n,r};xL.exports=Yne();xL.exports.create=Yne});var ji=y(Tt=>{"use strict";var Bqe=Object.prototype.toString,Ds=ao(),jne=!1,PL=[],qne={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&&Ds.hasColor(r);var Wb=Tt.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Tt.nativeType=r=>Bqe.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<i.index?-1:0),e};Tt.swap=(r,e,t)=>{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;n-=((i+t).match(/[^\S\n]/g)||[]).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=>Ds.keys.color.includes(i));return e?Ds[e]:r.stack.find(i=>i.slice(2)==="bg")?Ds[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=>Ds.keys.color.includes(i));if(e){let i=Ds["bg"+Tt.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Ds[t.slice(2).toLowerCase()]||r:Ds.none};Tt.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Ds.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Ds[qne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=qne[i];return n&&Ds["bg"+Tt.pascal(n)]||r}return Ds.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<o.length-1&&(a={}),i[n]=a},r);Tt.get=(r={},e="",t)=>{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(!Wb(r))return e;if(!Wb(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&Wb(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);Wb(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)=>{jne||(jne=!0,PL.forEach(n=>n()),t===!0&&process.exit(128+i))};PL.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),PL.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 Jne=y(ip=>{"use strict";ip.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"};ip.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};ip.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};ip.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};ip.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 Vne=y((Cft,zne)=>{"use strict";var Wne=J("readline"),bqe=Jne(),Qqe=/^(?:\x1b)([a-zA-Z0-9])$/,Sqe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,vqe={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 xqe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function Pqe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var zb=(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=Qqe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=Sqe.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=vqe[s],i.shift=xqe(s)||i.shift,i.ctrl=Pqe(s)||i.ctrl}return i};zb.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=Wne.createInterface({terminal:!0,input:t});Wne.emitKeypressEvents(t,i);let n=(a,l)=>e(a,zb(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()}};zb.action=(r,e,t)=>{let i={...bqe,...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)};zne.exports=zb});var _ne=y((mft,Xne)=>{"use strict";Xne.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}),Dqe(r,t,i)}};function Dqe(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 $ne=y((Eft,Zne)=>{"use strict";var{define:kqe,width:Rqe}=ji(),DL=class{constructor(e){let t=e.options;kqe(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=Rqe(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"}};Zne.exports=DL});var tse=y((Ift,ese)=>{"use strict";var kL=ji(),ki=ao(),RL={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||kL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||kL.complement(this.primary)},primary:ki.cyan,success:ki.green,danger:ki.magenta,strong:ki.bold,warning:ki.yellow,muted:ki.dim,disabled:ki.gray,dark:ki.dim.gray,underline:ki.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}};RL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(ki.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(ki.visible=r.styles.visible);let e=kL.merge({},RL,r.styles);delete e.merge;for(let t of Object.keys(ki))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});for(let t of Object.keys(ki.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});return e};ese.exports=RL});var ise=y((yft,rse)=>{"use strict";var FL=process.platform==="win32",AA=ao(),Fqe=ji(),NL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electr Line truncated
`),c=l[0],u=l[l.length-1],f=(i+(t?" "+t:"")).length,h=f<c.length?c.slice(f+1):"";return{header:o,prompt:c,after:h,rest:l.slice(1),last:u}}async submit(){this.state.submitted=!0,this.state.validating=!0,this.options.onSubmit&&await this.options.onSubmit.call(this,this.name,this.value,this);let e=this.state.error||await this.validate(this.value,this.state);if(e!==!0){let t=`
`+this.symbols.pointer+" ";typeof e=="string"?t+=e.trim():t+="Invalid input",this.state.error=`
`+this.styles.danger(t),this.state.submitted=!1,await this.render(),await this.alert(),this.state.validating=!1,this.state.error=void 0;return}this.state.validating=!1,await this.render(),await this.close(),this.value=await this.result(this.value),this.emit("submit",this.value)}async cancel(e){this.state.cancelled=this.state.submitted=!0,await this.render(),await this.close(),typeof this.options.onCancel=="function"&&await this.options.onCancel.call(this,this.name,this.value,this),this.emit("cancel",await this.error(e))}async close(){this.state.closed=!0;try{let e=this.sections(),t=Math.ceil(e.prompt.length/this.width);e.rest&&this.write(Bu.cursor.down(e.rest.length)),this.write(`
`.repeat(t))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=ML.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,Pn.isObject(e)&&(e=e[i.status]||e.pending),Pn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Pn.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 Pn.isObject(s)&&(s=s[i.status]||s.pending),Pn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&Pn.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=Pn.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"&&Pn.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 Pn.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 Pn.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 Pn.resolve(this,e,...t)}get base(){return oE.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Pn.height(this.stdout,25)}get width(){return this.options.columns||Pn.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 Gqe(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 Yqe(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}gse.exports=oE});var pse=y((bft,hse)=>{"use strict";var jqe=ji(),fse={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 fse.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}};hse.exports=(r,e={})=>{let t=jqe.merge({},fse,e.roles);return t[r]||t.default}});var aE=y((Qft,mse)=>{"use strict";var qqe=ao(),Jqe=np(),Wqe=pse(),Vb=ji(),{reorder:UL,scrollUp:zqe,scrollDown:Vqe,isObject:dse,swap:Xqe}=Vb,KL=class extends Jqe{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");dse(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<o.length;l++){let c=o[l]=await this.toChoice(o[l],n++,a);i.push(c),c.choices&&await s(c.choices,c)}return i};return s(e,t).then(o=>(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=Wqe(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,Vb.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,qqe.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.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(t=>t.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. Line truncated
`),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()}};Ese.exports=GL});var yse=y((vft,Ise)=>{"use strict";var Zqe=yl(),$qe=(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}},YL=class extends Zqe{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=$qe(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()}};Ise.exports=YL});var qL=y((xft,wse)=>{"use strict";var jL=ji();wse.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=jL.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=jL.isPrimitive(i)?`${i}`:"",t=jL.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 Xb=y((Pft,Bse)=>{"use strict";var eJe=ao(),tJe=yl(),rJe=qL(),JL=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,w=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 w.call(e,D,this.s Line truncated
`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Pse.exports=zL});var kse=y((Fft,Dse)=>{"use strict";var cJe=_b(),VL=class extends cJe{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Dse.exports=VL});var Fse=y((Nft,Rse)=>{"use strict";var uJe=yl(),gJe=Xb(),sp=gJe.prototype,XL=class extends uJe{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]():sp.dispatch.call(this,e,t)}append(e,t){return sp.append.call(this,e,t)}delete(e,t){return sp.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?sp.next.call(this):super.next()}prev(){return this.focused.editable?sp.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?sp.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)}};Rse.exports=XL});var bu=y((Tft,Nse)=>{"use strict";var fJe=np(),hJe=qL(),{isPrimitive:pJe}=ji(),_L=class extends fJe{constructor(e){super(e),this.initial=pJe(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):hJe(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()}};Nse.exports=_L});var Lse=y((Lft,Tse)=>{"use strict";var dJe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),Zb=r=>dJe(r).filter(Boolean);Tse.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:Zb([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:Zb([...s,t]),present:o};case"save":return{past:Zb([...i,t]),present:""};case"remove":return o=Zb(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var $L=y((Oft,Mse)=>{"use strict";var CJe=bu(),Ose=Lse(),ZL=class extends CJe{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=Ose(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=Ose("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Mse.exports=ZL});var Kse=y((Mft,Use)=>{"use strict";var mJe=bu(),eO=class extends mJe{format(){return""}};Use.exports=eO});var Gse=y((Uft,Hse)=>{"use strict";var EJe=bu(),tO=class extends EJe{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()}};Hse.exports=tO});var jse=y((Kft,Yse)=>{"use strict";var IJe=yl(),rO=class extends IJe{constructor(e){super({...e,multiple:!0})}};Yse.exports=rO});var nO=y((Hft,qse)=>{"use strict";var yJe=bu(),iO=class extends yJe{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 i<this.min-t?this.alert():(this.input=`${i-t}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(e=this.input){return typeof this.options.format=="function"?this.options.format.call(this,e):this.styles.info(e)}toNumber(e=""){return this.float?+e:Math.round(+e)}isValue(e){return/^[-+]?[0-9]+((\.)|(\.[0-9]+))?$/.test(e)}submit(){let e=[this.input,this.initial].find(t=>this.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};qse.exports=iO});var Wse=y((Gft,Jse)=>{Jse.exports=nO()});var Vse=y((Yft,zse)=>{"use strict";var wJe=bu(),sO=class extends wJe{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)):""}};zse.exports=sO});var Zse=y((jft,_se)=>{"use strict";var BJe=ao(),bJe=aE(),Xse=ji(),oO=class extends bJe{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;i++)t.scale.push({index:i})}this.widths[0]=Math.min(this.widths[0],e+3)}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}heading(e,t,i){return this.styles.strong(e)}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIndex>=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(){if(this.scaleKey===!1||this.state.submitted)return"";let e=this.scale.map(i=>` ${i.name} - ${i.message}`);return["",...e].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&&!Xse.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=BJe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let h=Xse.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)}};_se.exports=oO});var toe=y((qft,eoe)=>{"use strict";var $se=ao(),QJe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",AO=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=QJe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},SJe=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:""});u<s.length-1;){let p=g();if(/^[^\S\n ]$/.test(p)){h({type:"text",value:p});continue}if(p===`
`){h({type:"newline",value:p}),c++;continue}if(p==="\\"){p+=g(),h({type:"text",value:p});continue}if((p==="$"||p==="#"||p==="{")&&f()==="{"){p+=g();let B={type:"template",open:p,inner:"",close:"",value:p},v;for(;v=g();){if(v==="}"){f()==="}"&&(v+=g()),B.value+=v,B.close=v;break}v===":"?(B.initial="",B.key=B.inner):B.initial!==void 0&&(B.initial+=v),B.value+=v,B.inner+=v}B.template=B.open+(B.initial||B.inner)+B.close,B.key=B.key||B.inner,e.hasOwnProperty(B.key)&&(B.initial=e[B.key]),B=t(B),h(B),l.push(B.key),i.add(B.key);let D=a.find(T=>T.name===B.key);B.field=n.find(T=>T.name===B.key),D||(D=new AO(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}};eoe.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 SJe(e,i),a=aO("result",r,e),l=aO("format",r,e),c=aO("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(Z=>Z.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 Z=await p(g.values[T],g,H,h);if(Z&&typeof Z=="string"||Z===!1){g.invalid.set(T,Z);continue}g.invalid.delete(T);let A=await a(g.values[T],g,H,h);g.output+=$se.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($se.unstyle(D))),h++}D&&(g.output+=D)}let C=g.output.split(`
`).map(v=>" "+v),w=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/w*100).toFixed(0),g.output=C.join(`
`),g.output}};function aO(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 ioe=y((Jft,roe)=>{"use strict";var vJe=ao(),xJe=toe(),PJe=np(),lO=class extends PJe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await xJe(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),w=await this.footer();C&&(c+=" "+C),f&&!C&&this.state.completed===0&&(c+=" "+f),this.clear(n);let B=[u,c,h,w,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=vJe.unstyle(i).split(`
`).map(a=>a.slice(1)).join(`
`);return this.value={values:n,result:o},super.submit()}};roe.exports=lO});var soe=y((Wft,noe)=>{"use strict";var DJe="(Use <shift>+<up/down> to sort)",kJe=yl(),cO=class extends kJe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,DJe].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()}};noe.exports=cO});var aoe=y((zft,ooe)=>{"use strict";var RJe=aE(),uO=class extends RJe{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=FJe(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,w=h+e.scale.map((D,T)=>C(T)).join(l),B=()=>[u,f].filter(Boolean).join(" "),v=()=>[B(),p,w," "].filter(Boolean).join(`
`);return i&&(p=this.styles.cyan(p),w=this.styles.cyan(w)),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 FJe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i<r+1;i++)t.push({i,selected:!1});return t}ooe.exports=uO});var loe=y((Vft,Aoe)=>{Aoe.exports=$L()});var uoe=y((Xft,coe)=>{"use strict";var NJe=_b(),gO=class extends NJe{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()}};coe.exports=gO});var foe=y((_ft,goe)=>{"use strict";var TJe=yl(),fO=class extends TJe{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)}}};goe.exports=fO});var poe=y(hO=>{"use strict";var hoe=ji(),hi=(r,e)=>{hoe.defineExport(hO,r,e),hoe.defineExport(hO,r.toLowerCase(),e)};hi("AutoComplete",()=>yse());hi("BasicAuth",()=>xse());hi("Confirm",()=>kse());hi("Editable",()=>Fse());hi("Form",()=>Xb());hi("Input",()=>$L());hi("Invisible",()=>Kse());hi("List",()=>Gse());hi("MultiSelect",()=>jse());hi("Numeral",()=>Wse());hi("Password",()=>Vse());hi("Scale",()=>Zse());hi("Select",()=>yl());hi("Snippet",()=>ioe());hi("Sort",()=>soe());hi("Survey",()=>aoe());hi("Text",()=>loe());hi("Toggle",()=>uoe());hi("Quiz",()=>foe())});var Coe=y(($ft,doe)=>{doe.exports={ArrayPrompt:aE(),AuthPrompt:WL(),BooleanPrompt:_b(),NumberPrompt:nO(),StringPrompt:bu()}});var lE=y((eht,Eoe)=>{"use strict";var moe=J("assert"),dO=J("events"),wl=ji(),lo=class extends dO{constructor(e,t){super(),this.options=wl.merge({},e),this.answers={...t}}register(e,t){if(wl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}moe.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(wl.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=wl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=wl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];moe(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||np()}static get prompts(){return poe()}static get types(){return Coe()}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 wl.mixinEmitter(e,new dO),e}};wl.mixinEmitter(lo,new dO);var pO=lo.prompts;for(let r of Object.keys(pO)){let e=r.toLowerCase(),t=i=>new pO[r](i).run();lo.prompt[e]=t,lo[e]=t,lo[r]||Reflect.defineProperty(lo,r,{get:()=>pO[r]})}var AE=r=>{wl.defineExport(lo,r,()=>lo.types[r])};AE("ArrayPrompt");AE("AuthPrompt");AE("BooleanPrompt");AE("NumberPrompt");AE("StringPrompt");Eoe.exports=lo});var Doe=y((Oht,Poe)=>{function KJe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i&&e(r[t],t,r)!==!1;);return r}Poe.exports=KJe});var ap=y((Mht,koe)=>{var HJe=ub(),GJe=Uh();function YJe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s<o;){var a=e[s],l=i?i(t[a],r[a],a,t,r):void 0;l===void 0&&(l=r[a]),n?GJe(t,a,l):HJe(t,a,l)}return t}koe.exports=YJe});var Foe=y((Uht,Roe)=>{var jJe=ap(),qJe=Wh();function JJe(r,e){return r&&jJe(e,qJe(e),r)}Roe.exports=JJe});var Toe=y((Kht,Noe)=>{function WJe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Noe.exports=WJe});var Ooe=y((Hht,Loe)=>{var zJe=Sn(),VJe=Db(),XJe=Toe(),_Je=Object.prototype,ZJe=_Je.hasOwnProperty;function $Je(r){if(!zJe(r))return XJe(r);var e=VJe(r),t=[];for(var i in r)i=="constructor"&&(e||!ZJe.call(r,i))||t.push(i);return t}Loe.exports=$Je});var Ap=y((Ght,Moe)=>{var e3e=KT(),t3e=Ooe(),r3e=Lm();function i3e(r){return r3e(r)?e3e(r,!0):t3e(r)}Moe.exports=i3e});var Koe=y((Yht,Uoe)=>{var n3e=ap(),s3e=Ap();function o3e(r,e){return r&&n3e(e,s3e(e),r)}Uoe.exports=o3e});var wO=y((hE,lp)=>{var a3e=Cs(),joe=typeof hE=="object"&&hE&&!hE.nodeType&&hE,Hoe=joe&&typeof lp=="object"&&lp&&!lp.nodeType&&lp,A3e=Hoe&&Hoe.exports===joe,Goe=A3e?a3e.Buffer:void 0,Yoe=Goe?Goe.allocUnsafe:void 0;function l3e(r,e){if(e)return r.slice();var t=r.length,i=Yoe?Yoe(t):new r.constructor(t);return r.copy(i),i Line truncated
`:"";return o?g+=`@IF EXIST ${o} (\r
${o} ${l} ${n} ${u}%*\r
) ELSE (\r
@SETLOCAL\r
@SET PATHEXT=%PATHEXT:;.JS;=;%\r
${a} ${l} ${n} ${u}%*\r
)\r
`:g+=`@${a} ${l} ${n} ${u}%*\r
`,g}function W5e(r,e,t){let i=Fs.relative(Fs.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Fs.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=MM(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
*CYGWIN*) basedir=\`cygpath -w "$basedir"\`;;
esac
`,g=t.nodePath?`export NODE_PATH="${l}"
`:"";return s?u+=`${g}if [ -x ${s} ]; then
exec ${s} ${a} ${i} ${c}"$@"
else
exec ${n} ${a} ${i} ${c}"$@"
fi
`:u+=`${g}${n} ${a} ${i} ${c}"$@"
exit $?
`,u}function z5e(r,e,t){let i=Fs.relative(Fs.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Fs.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=MM(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=""
${t.nodePath?`$env_node_path=$env:NODE_PATH
$env:NODE_PATH="${u}"
`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}`;return t.nodePath&&(h+=` else {
$env:NODE_PATH="${g}"
}`),o?h+=`
$ret=0
if (Test-Path ${o}) {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${o} ${l} ${i} ${f}$args
} else {
& ${o} ${l} ${i} ${f}$args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${s} ${l} ${i} ${f}$args
} else {
& ${s} ${l} ${i} ${f}$args
}
$ret=$LASTEXITCODE
}
${t.nodePath?`$env:NODE_PATH=$env_node_path
`:""}exit $ret
`:h+=`
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${s} ${l} ${i} ${f}$args
} else {
& ${s} ${l} ${i} ${f}$args
}
${t.nodePath?`$env:NODE_PATH=$env_node_path
`:""}exit $LASTEXITCODE
`,h}function V5e(r,e){return e.fs_.chmod(r,493)}function MM(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Fs.delimiter):Array.from(r),t={};for(let i=0;i<e.length;i++){let n=e[i].split("/").join("\\"),s=dce()?e[i].split("\\").join("/").replace(/^([^:\\/]*):/,(o,a)=>`/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}mce.exports=OM});var _M=y((rQt,Uce)=>{Uce.exports=J("stream")});var Yce=y((iQt,Gce)=>{"use strict";function Kce(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 pVe(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Kce(Object(t),!0).forEach(function(i){dVe(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Kce(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function dVe(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function CVe(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function Hce(r,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(r,i.key,i)}}function mVe(r,e,t){return e&&Hce(r.prototype,e),t&&Hce(r,t),r}var EVe=J("buffer"),VQ=EVe.Buffer,IVe=J("util"),ZM=IVe.inspect,yVe=ZM&&ZM.custom||"inspect";function wVe(r,e,t){VQ.prototype.copy.call(r,e,t)}Gce.exports=function(){function r(){CVe(this,r),this.head=null,this.tail=null,this.length=0}return mVe(r,[{key:"push",value:function(t){var i={data:t,next:null};this.length>0?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 VQ.alloc(0);for(var i=VQ.allocUnsafe(t>>>0),n=this.head,s=0;n;)wVe(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return t<this.head.data.length?(n=this.head.data.slice(0,t),this.head.data=this.head.data.slice(t)):t===this.head.data.length?n=this.shift():n=i?this._getString(t):this._getBuffer(t),n}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(t){var i=this.head,n=1,s=i.data;for(t-=s.length;i=i.next;){var o=i.data,a=t>o.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=VQ.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:yVe,value:function(t,i){return ZM(this,pVe({},i,{depth:0,customInspect:!1}))}}]),r}()});var e1=y((nQt,qce)=>{"use strict";function BVe(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($M,this,r)):process.nextTick($M,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(XQ,t):(t._writableState.errorEmitted=!0,process.nextTick(jce,t,s)):process.nextTick(jce,t,s):e?(process.nextTick(XQ,t),e(s)):process.nextTick(XQ,t)}),this)}function jce(r,e){$M(r,e),XQ(r)}function XQ(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function bVe(){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 $M(r,e){r.emit("error",e)}function QVe(r,e){var t=r._readableState,i=r._writableState;t&&t.a Line truncated
`)),r.linkname&&(e+=x1(" linkpath="+r.linkname+`
`));var t=r.pax;if(t)for(var i in t)e+=x1(" "+i+"="+t[i]+`
`);return Buffer.from(e)};Op.decodePax=function(r){for(var e={};r.length;){for(var t=0;t<r.length&&r[t]!==32;)t++;var i=parseInt(r.slice(0,t).toString(),10);if(!i)return e;var n=r.slice(t+1,i-1).toString(),s=n.indexOf("=");if(s===-1)return e;e[n.slice(0,s)]=n.slice(s+1),r=r.slice(i)}return e};Op.encode=function(r){var e=C7e(512),t=r.name,i="";if(r.typeflag===5&&t[t.length-1]!=="/"&&(t+="/"),Buffer.byteLength(t)!==t.length)return null;for(;Buffer.byteLength(t)>100;){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(Gl(r.mode&B7e,6),100),e.write(Gl(r.uid,6),108),e.write(Gl(r.gid,6),116),e.write(Gl(r.size,11),124),e.write(Gl(r.mtime.getTime()/1e3|0,11),136),e[156]=que+S7e(r.type),r.linkname&&e.write(r.linkname,157),Jue.copy(e,_E),I7e.copy(e,P1),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Gl(r.devmajor||0,6),329),e.write(Gl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Gl(zue(e),6),148),e)};Op.decode=function(r,e,t){var i=r[156]===0?0:r[156]-que,n=Lp(r,0,100,e),s=Yl(r,100,8),o=Yl(r,108,8),a=Yl(r,116,8),l=Yl(r,124,12),c=Yl(r,136,12),u=Q7e(i),g=r[157]===0?null:Lp(r,157,100,e),f=Lp(r,265,32),h=Lp(r,297,32),p=Yl(r,329,8),C=Yl(r,337,8),w=zue(r);if(w===8*32)return null;if(w!==Yl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(Jue.compare(r,_E,_E+6)===0)r[345]&&(n=Lp(r,345,155,e)+"/"+n);else if(!(y7e.compare(r,_E,_E+6)===0&&w7e.compare(r,P1,P1+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 tge=y((bQt,ege)=>{var Xue=J("util"),x7e=jue(),ZE=D1(),_ue=Tp().Writable,Zue=Tp().PassThrough,$ue=function(){},Vue=function(r){return r&=511,r&&512-r},P7e=function(r,e){var t=new uS(r,e);return t.end(),t},D7e=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},uS=function(r,e){this._parent=r,this.offset=e,Zue.call(this,{autoDestroy:!1})};Xue.inherits(uS,Zue);uS.prototype.destroy=function(r){this._parent.destroy(r)};var CA=function(r){if(!(this instanceof CA))return new CA(r);_ue.call(this,r),r=r||{},this._offset=0,this._buffer=x7e(),this._missing=0,this._partial=!1,this._onparse=$ue,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=Vue(e._header.size);f?e._parse(f,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(Vue(e._header.size)),e._parse(512,g),i()},a=function(){var f=e._header.size;e._paxGlobal=ZE.decodePax(t.slice(0,f)),t.consume(f),s()},l=function(){var f=e._header.size;e._pax=ZE.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=ZE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},u=function(){var f=e._header.size;this._gnuLongLinkPath=ZE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},g=function(){var f=e._offset,h;try{h=e._header=ZE.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=D7e(h,e._pax),e._pax=null),e._locked=!0,!h.size||h.type==="directory"){e._parse(512,g),e.emit("entry",h,P7e(e,f),n);return}e._stream=new uS(e,f),e.emit("entry",h,e._stream,n),e._parse(h.size,s),i()};this._onheader=g,this._parse(512,g)};Xue.inherits(CA,_ue);CA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};CA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};CA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=$ue,this._overflow?this._write(this._overflow,void 0,r):r()}};CA.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.length<s)return this._missing-=r.length,this._overflow=null,i?i.write(r,t):(n.append(r),t Line truncated
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=a9e;function a9e(r,e,t){t=An(t);let i=t.Promise||Promise,n=H1(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=H1;function H1(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(tI.createHash),a=0,l=new Z7e({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=A9e;function A9e(r){r=An(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(tI.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 ql(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new dg)}}}var l9e=new Set(tI.getHashes()),Bge=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>l9e.has(r));function c9e(r,e){return Bge.indexOf(r.toLowerCase())>=Bge.indexOf(e.toLowerCase())?r:e}});var Pm={};ht(Pm,{BuildType:()=>sb,Cache:()=>kt,Configuration:()=>Ie,DEFAULT_LOCK_FILENAME:()=>Vk,DEFAULT_RC_FILENAME:()=>zk,FormatType:()=>Pi,InstallMode:()=>Xn,LightReport:()=>ta,LinkType:()=>Lf,Manifest:()=>nt,MessageName:()=>Ct,MultiFetcher:()=>Wf,PackageExtensionStatus:()=>KP,PackageExtensionType:()=>UP,Project:()=>He,ProjectLookup:()=>$k,Report:()=>xi,ReportError:()=>ot,SettingsType:()=>Xk,StreamReport:()=>Ue,TAG_REGEXP:()=>Vf,TelemetryManager:()=>Hh,ThrowReport:()=>ni,VirtualFetcher:()=>Xf,Workspace:()=>Kh,WorkspaceFetcher:()=>Zf,WorkspaceResolver:()=>Jr,YarnVersion:()=>Or,execUtils:()=>mr,folderUtils:()=>uB,formatUtils:()=>ee,hashUtils:()=>gi,httpUtils:()=>Vt,miscUtils:()=>Ee,nodeUtils:()=>io,parseMessageName:()=>fy,scriptUtils:()=>Jt,semverUtils:()=>vt,stringifyMessageName:()=>UA,structUtils:()=>P,tgzUtils:()=>yi,treeUtils:()=>Vn});var mr={};ht(mr,{EndStrategy:()=>iR,ExecError:()=>mB,PipeError:()=>UC,execvp:()=>jk,pipevp:()=>Wo});var dd={};ht(dd,{AliasFS:()=>bo,CwdFS:()=>jt,DEFAULT_COMPRESSION_LEVEL:()=>cc,FakeFS:()=>Ba,Filename:()=>xt,JailFS:()=>Qo,LazyFS:()=>Wg,LinkStrategy:()=>ZS,NoFS:()=>fd,NodeFS:()=>$t,PortablePath:()=>Re,PosixFS:()=>zg,ProxiedFS:()=>mi,VirtualFS:()=>br,ZipFS:()=>Xr,ZipOpenFS:()=>On,constants:()=>Dr,extendFs:()=>LI,normalizeLineEndings:()=>lc,npath:()=>U,opendir:()=>PI,patchFs:()=>sv,ppath:()=>x,statUtils:()=>ad,toFilename:()=>Gr,xfs:()=>M});var Dr={};ht(Dr,{SAFE_TIME:()=>LU,S_IFDIR:()=>oc,S_IFLNK:()=>Ac,S_IFMT:()=>Ys,S_IFREG:()=>ac});var Ys=61440,oc=16384,ac=32768,Ac=40960,LU=456789e3;var ad={};ht(ad,{BigIntStatsEntry:()=>jg,DEFAULT_MODE:()=>sd,DirEntry:()=>qS,StatEntry:()=>wa,areStatsEqual:()=>WS,clearStats:()=>yI,convertToBigIntStats:()=>wI,makeDefaultStats:()=>od,makeEmptyStats:()=>wfe});var JS=ne(J("util"));var sd=33188,qS=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}},wa=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=sd;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}},jg=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(sd);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 od(){return new wa}function wfe(){return yI(od())}function yI(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):JS.types.isDate(t)&&(r[e]=new Date(0))}return r}function wI(r){let e=new jg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):JS.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.birthti Line truncated
`)}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)}},kA=class extends Ba{constructor(){super(x)}};function Rfe(r){let e=r.match(/\r?\n/g);if(e===null)return YU.EOL;let t=e.filter(n=>n===`\r
`).length,i=e.length-t;return t>i?`\r
`:`
`}function lc(r,e){return e.replace(/\r?\n/g,Rfe(r))}var Jg=J("fs"),tv=J("stream"),zU=J("util"),rv=ne(J("zlib"));var jU=ne(J("fs"));var $t=class extends kA{constructor(t=jU.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Re.root}resolve(t){return x.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(U.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(U.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(U.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(U.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(U.fromPortablePath(t),i):this.realFs.opendirSync(U.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?U.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?U.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(U.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>U.toPortablePath(i))}realpathSync(t){return U.toPortablePath(this.realFs.realpathSync(U.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(U.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(U.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(U.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(U.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(U.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(U.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(U.fromPortablePath(t),i):this.realFs.statSync(U.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(U.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(U.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(U.fromPortablePath(t),i):this.realFs.lstatSync(U.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(U.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(U.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(U.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(U.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(U.fromPortablePath(t),U.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(U.fromPortablePath(t),U.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(U.fromPortablePath(t),U.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(U.fromPortablePath(t),U.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?U.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"?U.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 Line truncated
`;if(typeof r=="number"||typeof r=="boolean")return`${r.toString()}
`;if(typeof r=="string")return`${YH(r)}
`;if(Array.isArray(r)){if(r.length===0)return`[]
`;let i=" ".repeat(e);return`
${r.map(s=>`${i}- ${Nv(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let i,n;r instanceof ey?(i=r.data,n=!1):(i=r,n=!0);let s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=GH.indexOf(l),g=GH.indexOf(c);return u===-1&&g===-1?l<c?-1:l>c?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!qH(i[l])).map((l,c)=>{let u=i[l],g=YH(l),f=Nv(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 Sa(r){try{let e=Nv(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}}Sa.PreserveOrdering=ey;function Xde(r){return r.endsWith(`
`)||(r+=`
`),(0,jH.parse)(r)}var _de=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function Zde(r){if(_de.test(r))return Xde(r);let e=(0,ty.safeLoad)(r,{schema:ty.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 bi(r){return Zde(r)}var m5=ne(WH()),hB=ne(wc()),ja=ne(Xe()),E5=ne(cf()),Wk=J("stream");var Ct=(oe=>(oe[oe.UNNAMED=0]="UNNAMED",oe[oe.EXCEPTION=1]="EXCEPTION",oe[oe.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",oe[oe.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",oe[oe.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",oe[oe.BUILD_DISABLED=5]="BUILD_DISABLED",oe[oe.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",oe[oe.MUST_BUILD=7]="MUST_BUILD",oe[oe.MUST_REBUILD=8]="MUST_REBUILD",oe[oe.BUILD_FAILED=9]="BUILD_FAILED",oe[oe.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",oe[oe.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",oe[oe.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",oe[oe.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",oe[oe.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",oe[oe.REMOTE_INVALID=15]="REMOTE_INVALID",oe[oe.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",oe[oe.RESOLUTION_PACK=17]="RESOLUTION_PACK",oe[oe.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",oe[oe.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",oe[oe.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",oe[oe.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",oe[oe.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",oe[oe.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",oe[oe.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",oe[oe.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",oe[oe.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",oe[oe.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",oe[oe.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",oe[oe.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",oe[oe.FETCH_FAILED=30]="FETCH_FAILED",oe[oe.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",oe[oe.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",oe[oe.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",oe[oe.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",oe[oe.NETWORK_ERROR=35]="NETWORK_ERROR",oe[oe.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",oe[oe.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",oe[oe.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",oe[oe.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",oe[oe.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",oe[oe.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",oe[oe.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",oe[oe.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",oe[oe.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",oe[oe.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",oe[oe.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",oe[oe.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",oe[oe.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",oe[oe.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",oe[oe.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",oe[oe.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",oe[oe.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",oe[oe.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",oe[oe.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",oe[oe.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",oe[oe.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",oe[oe.INVALID_MANIFEST=57]="INVALID_MANIFEST",oe[oe.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",oe[oe.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",oe[oe.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",oe[oe.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",oe[oe.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",oe[oe.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",oe[oe.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",oe[oe.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",oe[oe.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",oe[oe.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",oe[oe.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",oe[oe.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",oe[oe.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",oe[oe.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",oe[oe.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",oe[oe.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",oe[oe.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",oe[oe.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",oe[oe.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",oe[oe.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",oe[oe.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",oe))(Line truncated
`),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 Wf=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 ot(11,`${mt(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var zf=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 p5=ne($r());var Vf=/^(?!v)[a-z0-9._-]+$/i,cB=class{supportsDescriptor(e,t){return!!(ro(e.range)||Vf.test(e.range))}supportsLocator(e,t){return!!(p5.default.valid(e.reference)||Vf.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 bC(i,e)}forwardDescriptor(e,t){return Zt(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return en(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Xf=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=en(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=en(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return qf(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 bo(a,{baseFs:t.packageFs,pathUtils:x});return{...t,packageFs:l}}};var _f=class{static isVirtualDescriptor(e){return!!e.range.startsWith(_f.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(_f.protocol)}supportsDescriptor(e,t){return _f.isVirtualDescriptor(e)}supportsLocator(e,t){return _f.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')}},LC=_f;LC.protocol="virtual:";var Zf=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 jt(i),prefixPath:Re.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByLine truncated
`);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 zf([new LC,new Jr,new cB,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new Wf([new Xf,new Zf,...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=MC(),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=Ko(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Ko.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(!ro(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new nt;o.load(n,{yamlCompatibilityMode:!0});let a=kf(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($A(i,!0),ww(n),{userProvided:!0})}normalizePackage(e){let t=QC(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(!!Jc(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",Oa(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:TP(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=Zi(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,Zt(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Ot(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,Zt(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(Bn(t.dependencies,([,s])=>Qn(s))),t.peerDependencies=new Map(Bn(t.peerDependencies,([,s])=>Qn(s))),t}getLimit(e){return Oa(this.limits,e,()=>(0,E5.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}},Ie=Ya;Ie.telemetry=null;var iR=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(iR||{}),UC=class extends ot{constructor({fileName:t,code:i,signal:n}){let s=Ie.create(x.cwd()),o=Ve(s,t,Oe.PATH);super(1,`Child ${o} reported an error`,a=>{SPe(i,n,{configuration:s,report:a})});this.code=nR(i,n)}},mB=class extends UC{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 Vc(r){return r!==null&&typeof r.fd=="number"}var Xc=new Set;function eR(){}function tR(){for(let r of Xc)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":Vc(s)&&(c[0]=s),Vc(o)&&(c[1]=o),Vc(a)&&(c[2]=a);let u=(0,rR.default)(r,e,{cwd:U.fromPortablePath(t),env:{...i,PWD:U.fromPortablePath(t)},stdio:c});Xc.add(u),Xc.size===1&&(process.on("SIGINT",eR),process.on("SIGTERM",tR)),!Vc(s)&&s!==null&&s.pipe(u.stdin),Vc(o)||u.stdout.pipe(o,{end:!1}),Vc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let f of new Set([o,a]))Vc(f)||f.end()};return new Promise((f,h)=>{u.on("error",p=>{Xc.delete(u),Xc.size===0&&(process.off("SIGINT",eR),process.off("SIGTERM",tR)),(l===2||l===1)&&g(),h(p)}),u.on("close",(p,C)=> Line truncated
`),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=>{Zc.delete(l),Zc.size===0&&(process.off("SIGINT",QF),process.off("SIGTERM",SF)),c(u!==null?u:129)})})}}}function p7(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 ys=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},vF=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}},uh=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 uh(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new uh(this,e),n=new vF;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 $B(r,e){return uh.start(r,e)}function u7(r,e=null){let t=new Vo.PassThrough,i=new f7.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 d7(r,{prefix:e}){return{stdout:u7(t=>r.stdout.write(`${t}
`),r.stdout.isTTY?e:null),stderr:u7(t=>r.stderr.write(`${t}
`),r.stderr.isTTY?e:null)}}var HRe=(0,B7.promisify)(setTimeout);function C7(r,e,t){let i=new Jn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Jn.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 qn(`Bad file descriptor: "${r}"`)}return i}function t0(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var GRe=new Map([["cd",async([r=(0,w7.homedir)(),...e],t,i)=>{let n=x.resolve(i.cwd,U.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new qn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new qn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${U.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 qn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new qn(`sleep: invalid time interval '${r}'`);return await HRe(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await $B(i,{stdin:new ys(t.stdin),stdout:new ys(t.stdout),stderr:new ys(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}"`)}},w=Number(r[c++]),B=c+w;for(let v=c;v<B;++c,++v)switch(f){case"<":p(()=>e.baseFs.createReadStream(x.resolve(t.cwd,U.toPortablePath(r[v]))));break;case"<<<":p(()=>{let D=new Jn.PassThrough;return process.nextTick(()=>{D.write(`${r[v]}
`),D.end()}),D});break;case"<&":p(()=>C7(Number(r[v]),1,t));break;case">":case">>":{let D=x.resolve(t.cwd,U.toPortablePath(r[v]));C(D==="/dev/null"?new Jn.Writable({autoDestroy:!0,emitClose:!0,write(T,H,j){setImmediate(j)}}):e.baseFs.createWriteStream(D,f===">>"?{flags:"a"}:void 0))}break;case">&":C(C7(Number(r[v]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${f}"`)}}if(o.length>0){let g=new Jn.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 Jn.PassThrough;n=g;for(let f of a)g.pipe(f)}if(l.length>0){let g=new Jn.PassThrough;s=g;for(let f of l)g.pipe(f)}let u=await $B($C(r.slice(c+1),e,t),{stdin:new ys(i),stdout:new ys(n),stderr:new ys(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 YRe(r,e,t){let i=[],n=new Jn.PassThrough;return n.on("data",s=>i.push(s)),await r0(r,e,t0(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function m7(r,e,t){let i=r.map(async s=>{let o=await $c(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 e0(r){return r.match(/[^ \r\n\t]+/g)||[]}async function b7(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=e0(s);for(let a=0;a<o.length-1;++a)n(o[a]);i(o[o.length-1])}break;case"*":{let s=e.args.join(" ");if(r.quoted)i(s);else for(let o of e0(s))n(o)}break;case"PPID":i(String(process.ppid));break;case"RANDOM":i(String(Math.floor(Math.random()*32768)));break;default:{let s=parseInt(r.name,10),o,a=Number.isFinite(s);if(a?s>=0&&s<e.args.length&&(o=e.args[s]):Object.prototype.hasOwnProperty.call(t.variables,r.name)?o=t.variables[r.name]:Object.prototype.hasOwnProperty.call(t.environment,r.name)&&(o=t.environment[r.name]),typeof o<"u"&&r.alternativeValue?o=(await $c(r.alternativeValue,e,t)).join(" "):typeof o>"u"&&(r.defaultValue?o=(await $c(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new qn(`Unbound argument #${s}`):new qn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=e0(o);for(let u=0;u<l.length-1;++u)n(l[u]);let c=l[l.length-1];typeof c<"u"&&i(c)}}break}}var jRe={addition:(r,e)=>r+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function ZC(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 b7({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?ZC({type:"variable",name:i.join(" ")},e,t):ZC({type:"number",value:n},e,t)}else return jRe[r.type](await ZC(r.left,e,t),await ZC(r.right,e,t))}async function $c(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 $c(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 YRe(f.shell,e,t);if(f.quoted)o(h);else{let p=e0(h);for(let C=0;C<p.length-1;++C)l(p[C]);o(p[p.length-1])}}break;case"variable":await b7(f,e,t,o,l);break;case"arithmetic":o(String(await ZC(f.arithmetic,e,t)));break}break}if(a(),g){let f=n.pop();if(typeof f>"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=bF(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 qn(`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 $C(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=U.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return h7(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 p7(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 qRe(r,e,t){return i=>{let n=new Jn.PassThrough,s=r0(r,e,t0(t,{stdin:n}));return{stdin:n,promise:s Line truncated
`)).finally(()=>{t.stdout.isTTY&&t.stdout.write(`Job ${l}, '${o(ef(r))}' has ended
`)})),0}return await I7(r,e,t)}async function zRe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await WRe(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof qn))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 r0(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await zRe(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 Q7(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=>em(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>em(e));case"arithmetic":return xF(r.arithmetic);case"shell":return PF(r.shell);default:return!1}}function em(r){switch(r.type){case"redirection":return r.args.some(e=>em(e));case"argument":return r.segments.some(e=>Q7(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function xF(r){switch(r.type){case"variable":return Q7(r);case"number":return!1;default:return xF(r.left)||xF(r.right)}}function PF(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=PF(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>em(s)))||t.args.some(n=>em(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 i0(r,e=[],{baseFs:t=new $t,builtins:i={},cwd:n=U.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=ZB}={}){let g={};for(let[p,C]of Object.entries(s))typeof C<"u"&&(g[p]=C);let f=new Map(GRe);for(let[p,C]of Object.entries(i))f.set(p,C);o===null&&(o=new Jn.PassThrough,o.end());let h=UI(r,u);if(!PF(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(w=>({type:"argument",segments:[{type:"text",text:w}]}))))}return await r0(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=ne(n0()),g9=ne(cf()),al=J("stream");var l9=ne(s9()),A0=ne(wc());var o9=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],a9=80,JFe=new Set([13,19]),WFe=5,a0=A0.default.GITHUB_ACTIONS?{start:r=>`::group::${r}
`,end:r=>`::endgroup::
`}:A0.default.TRAVIS?{start:r=>`travis_fold:start:${r}
`,end:r=>`travis_fold:end:${r}
`}:A0.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,A9=new Date,zFe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,VFe=r=>r,l0=VFe({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}}),XFe=zFe&&Object.keys(l0).find(r=>{let e=l0[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=UA(r===null?0:r);return!t&&r===null?Ve(e,n,"grey"):n}function NF(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 Of(e,i,s)}var Ue=class extends xi{constructor({configuration:t,stdout:i,json:n=!1,includeFooter:s=!0,includeLogs:o=!n,includeInfos:a=o,includeWarnings:l=o,forgettableBufferSize:c=WFe,forgettableNames:u=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errorCount=0;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(EC(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=c,this.forgettableNames=new Set([...u,...JFe]),this.includeFooter=s,this.includeInfos=a,this.includeWarnings=l,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let g=t.get("progressBarStyle")||XFe;if(!Object.prototype.hasOwnProperty.call(l0,g))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=l0[g];let f=12,h=Math.max(0,Math.min(i.columns-f,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*h/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.errorCount>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,a0!==null&&!this.json&&this.includeInfos&&this.stdout.write(a0.start(t))},reportFooter:a=>{this.indent-=1,a0!==null&&!this.json&&this.includeInfos&&this.stdout.write(a0.end(t)),this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${Ve(this.configuration,a,Oe.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=`${Ve(this.configuration,"\u27A4","blueBright")} ${s}${this.formatIndent()}${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 Line truncated
`),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>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(`${Ve(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})}formatNameWithHyperlink(t){return NF(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Or="3.3.1";var f9=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(f9||{});async function Va(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 M.writeFilePromise(x.format({dir:r,name:e,ext:".cmd"}),n)}await M.writeFilePromise(x.join(r,e),`#!/bin/sh
exec "${t}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@"
`,{mode:493})}async function h9(r){let e=await nt.tryFind(r);if(e!=null&&e.packageManager){let i=iB(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":{let o=Number(s)===1?"Yarn Classic":"Yarn";return{packageManagerField:!0,packageManager:o,reason:n}}break;case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await M.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'}:M.existsSync(x.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:M.existsSync(x.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function rm({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=U.fromPortablePath(t);s.BERRY_BIN_FOLDER=U.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?U.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([Va(t,"node",process.execPath),...Or!==null?[Va(t,"run",process.execPath,[a,"run"]),Va(t,"yarn",process.execPath,[a]),Va(t,"yarnpkg",process.execPath,[a]),Va(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=U.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=U.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${U.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${U.sep}yarn`,s.npm_node_execpath=`${o}${U.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=Ot(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(),w={project:r,report:new Ue({stdout:new al.PassThrough,configuration:r.configuration})},B=C.find(v=>v.supportsPackage(p,w));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,w)}s.npm_package_json=U.fromPortablePath(x.join(h,xt.manifest))}let l=Or!==null?`yarn/${Or}`:`yarn/${Tf("@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 Va(t,Gr(g),f,h)),s}var _Fe=2,ZFe=(0,g9.default)(_Fe);async function $Fe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await ZFe(async()=>{await M.mktempPromise(async o=>{let a=x.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:U.fromPortablePath(r),report:i}),g=s&&jo(s)?vC(s):s,f=g?ps(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 M.mktempPromise(async w=>{let B=await rm({binFolder:w,ignoreCorepack:C}),D=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],j=x.join(r,xt.manifest),$=await M.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 M.writeFilePromise(j,$),await M.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 Z=await Wo("yarn",[...H,"pack","--filename",U.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let j=x.join(r,xt.lockfile);await M.existsPromise(j)||await M.writeFilePromise(j,"");let $=await Wo("yarn",[...H,"pack","--install-if-needed","--filename",U.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 al.PassThrough,ge=Nf(ae);ae.pipe(c,{end:!1});let _=await Wo("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:ae,stderr:u,end:0});if(ae.end(),_.code!==0)return c.end(),u.end(),_.code;let L=(await ge).toString().trim();if(!Jc(L,">=7.x")){let N=qo(null,"npm"),ue=Zt(N,L),we=Zt(N,">=7.x");throw new Error(`Workspaces aren't supported by ${tr(t,ue)}; please upgrade to ${tr(t,we)} (npm has been detected as the primary package manager for ${Ve(t,r,Oe.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 al.PassThrough,V=Nf($);$.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 Z=(await V).toString().trim().replace(/^.*\n/s,""),A=x.resolve(r,U.toPortablePath(Z));return await M.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 M.detachTemp(o),new ot(58,`Packing the package failed (exit code ${T}, logs can be found here: ${Ve(t,a,Oe.PATH)})`)})})})}async function eNe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return LF(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 On.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new Ue({stdout:new al.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 jt(u,{baseFs:s});return(await nt.find(Re.dot,{baseFs:g})).scripts.has(e)},{libzip:await nn()})}async function c0(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.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 i0(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 TF(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await p9(r,{project:n,binFolder:l,cwd:i});return await i0(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function tNe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await rm({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await Promise.all(Array.from(await m9(r),([s,[,o]])=>Va(e,Gr(s),process.execPath,[o]))),typeof t>"u"&&(t=x.dirname(await M.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 tNe(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 On.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new Ue({stdout:new al.PassThrough,configuration:l})},g=c.find(w=>w.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 rm({project:e,locator:r,binFolder:t,lifecycleScript:n});await Promise.all(Array.from(await u0(r,{project:e}),([w,[,B]])=>Va(t,Gr(w),process.execPath,[B])));let h=await g.findPackageLocation(o,u),p=new jt(h,{baseFs:a}),C=await nt.find(Re.dot,{baseFs:p});return typeof i>"u"&&(i=h),{manifest:C,binFolder:t,env:f,cwd:i}},{libzip:await nn()})}async function d9(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await c0(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function LF(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 M.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 ("${U.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 M.detachTemp(o),new ot(36,`${(0,u9.default)(e)} script failed (exit code ${Ve(n,g,Oe.NUMBER)}, logs can be found here: ${Ve(n,a,Oe.PATH)}); run ${Ve(n,`yarn ${e}`,Oe.CODE)} to investigate`)})}async function rNe(r,e,t){LF(r,e)&&await C9(r,e,t)}async function u0(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 al.Writable,o=t.getLinkers(),a={project:e,report:new Ue({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 Ko.skip;let f=o.find(p=>p.supportsPackage(g,a));if(!f)return Ko.skip;let h=null;try{h=await f.findPackageLocation(g,a)}catch(p){if(p.code==="LOCATOR_NOT_INSTALLED")return Ko.skip;throw p}return{dependency:g,packageLocation:h}}));for(let u of c){if(u===Ko.skip)continue;let{dependency:g,packageLocation:f}=u;for(let[h,p]of g.bin)i.set(h,[g,U.fromPortablePath(x.resolve(f,p))])}return i}async function m9(r){return await u0(r.anchoredLocator,{project:r.project})}async function E9(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await u0(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${mt(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,f]=u,h=await rm({project:n,locator:r,binFolder:g});await Promise.all(Array.from(c,([C,[,w]])=>Va(h.BERRY_BIN_FOLDER,Gr(C),process.execPath,[w])));let p;try{p=await Wo(process.execPath,[...l,f,...t],{cwd:i,env:h,stdin:s,stdout:o,stderr:a})}finally{await M.removePromise(h.BERRY_BIN_FOLDER)}return p.code})}async function iNe(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 yi={};ht(yi,{convertToZip:()=>fLe,extractArchiveTo:()=>pLe,makeArchiveFromDirectory:()=>gLe});var __=J("stream"),Z_=ne(j_());var q_=J("os"),J_=ne(cf()),W_=J("worker_threads"),ml=Symbol("kTaskInfo"),nb=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,J_.default)(Math.max(1,(0,q_.cpus)().length));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 W_.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[ml])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[ml].resolve(t),e[ml]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[ml])==null||i.reject(t),e[ml]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[ml])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[ml]=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[ml]={resolve:n,reject:s},t.postMessage(e)})})}};var $_=ne(V_());async function gLe(r,{baseFs:e=new $t,prefixPath:t=Re.root,compressionLevel:i,inMemory:n=!1}={}){let s=await nn(),o;if(n)o=new Xr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=x.join(l,"archive.zip");o=new Xr(c,{create:!0,libzip:s,level:i})}let a=x.resolve(Re.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var X_;async function fLe(r,e){let t=await M.mktempPromise(),i=x.join(t,"archive.zip");return X_||(X_=new nb((0,$_.getContent)())),await X_.run({tmpFile:i,tgz:r,opts:e}),new Xr(i,{libzip:await nn(),level:e.compressionLevel})}async function*hLe(r){let e=new Z_.default.Parse,t=new __.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 pLe(r,e,{stripComponents:t=0,prefixPath:i=Re.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 hLe(r)){if(n(a))continue;let l=x.normalize(U.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.dirnam Line truncated
`);return}let s=(0,rZ.asTree)(iZ(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 oZ=J("crypto"),aT=ne(J("fs"));var CLe=8,kt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,oZ.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!==cc?`c${o}`:"";this.cacheKey=[CLe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new kt(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`${qf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=mLe(t).slice(0,10);return`${qf(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||oT(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 M.existsPromise(this.cwd))throw new ot(56,"Cache path does not exist.")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=x.resolve(this.cwd,".gitignore");await M.changeFilePromise(e,`/.gitignore
*.flock
*.tmp
`)}(this.mirrorCwd||!this.immutable)&&await M.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 Z=new Xr(null,{libzip:D}),A=x.join(Re.root,Tk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(x.join(A,xt.manifest),{name:Ot(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ge;if(A===null&&((ge=o.unstablePackages)==null?void 0:ge.has(e.locatorHash)))return null;let ae=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await eB(Z)}`:t;if(A!==null){let _=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await eB(A)}`:t;if(ae!==_)throw new ot(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&ae!==t){let _;switch(this.check?_="throw":oT(t)!==oT(ae)?_="update":_=this.configuration.get("checksumBehavior"),_){case"ignore":return t;case"update":return ae;default:case"throw":throw new ot(18,"The remote archive doesn't match the expected checksum")}}return ae},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${mt(this.configuration,e)}`);let A=await s(),ae=A.getRealPath();return A.saveAndClose(),await M.chmodPromise(ae,420),await u(Z,ae)},f=async()=>{if(a===null||!await M.existsPromise(a)){let Z=await s(),A=Z.getRealPath();return Z.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 ot(56,`Cache entry required but missing for ${mt(this.configuration,e)}`);let{path:Z,source:A}=await f(),ae=await u(Z),ge=this.getLocatorPath(e,ae,o);if(!ge)throw new Error("Assertion failed: Expected the cache path to be available");let _=[];A!=="mirror"&&a!==null&&_.push(async()=>{let N=`${a}${this.cacheId}`;await M.copyFilePromise(Z,N,aT.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,a)}),(!o.mirrorWriteOnly||a===null)&&_.push(async()=>{let N=`${ge}${this.cacheId}`;await M.copyFilePromise(Z,N,aT.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,ge)});let L=o.mirrorWriteOnly&&a!=null?a:ge;return await Promise.all(_.map(N=>N())),[!1,L,ae]},p=async()=>{let A=(async()=>{var ue;let ae=this.getLocatorPath(e,t,o),ge=ae!==null?await l.existsPromise(ae):!1,_=!!((ue=o.mockedPackages)!=null&&ue.has(e.locatorHash))&&(!this.check||!ge),L=_||ge,N=L?i:n;if(N&&N(),L){let we=null,Te=ae;return _||(we=this.check?await g(Te):await u(Te)),[_,Te,we]}else return h()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let Z;Z=this.mutexes.get(e.locatorHash);)await Z;let[C,w,B]=await p();this.markedFiles.add(w);let v,D=await nn(),T=C?()=>c():()=>new Xr(w,{baseFs:l,libzip:D,readOnly:!0}),H=new Wg(()=>LP(()=>v=T(),Z=>`Failed to open the cache entry for ${mt(this.configuration,e)}: ${Z}`),x),j=new bo(w,{baseFs:H,pathUtils:x}),$=()=>{v==null||v.discardAndClose()},V=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[j,$,V]}};function oT(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function mLe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var sb=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(sb||{});var ta=class extends xi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;EC(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(`${Ve(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(`${Ve(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command.
`),this.suggestInstall&&this.stdout.write(`${Ve(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 NF(t,{configuration:this.configuration,json:!1})}};var BT=ne(Xe()),mb=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 w=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,H=v&&0<=D&&D<l;if(!T&&!H){g[C]=void 0;continue}if(!T||H&&B.newPos<v.newPos?(w=ILe(v),s.pushComponent(w.components,void 0,!0)):(w=B,w.newPos++,s.pushComponent(w.components,!0,void 0)),D=s.extractCommon(w,t,e,C),w.newPos+1>=a&&D+1>=l)return o(ELe(s,w.components,t,e,s.useLongestToken));g[C]=w}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+1<s&&l+1<o&&this.equals(t[a+1],i[l+1]);)a++,l++,c++;return c&&e.components.push({count:c}),e.newPos=a,l},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],i=0;i<e.length;i++)e[i]&&t.push(e[i]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};function ELe(r,e,t,i,n){for(var s=0,o=e.length,a=0,l=0;s<o;s++){var c=e[s];if(c.removed){if(c.value=r.join(i.slice(l,l+c.count)),l+=c.count,s&&e[s-1].added){var g=e[s-1];e[s-1]=e[s],e[s]=g}}else{if(!c.added&&n){var u=t.slice(a,a+c.count);u=u.map(function(h,p){var C=i[l+p];return C.length>h.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 ILe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var NAt=new iA;var aZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,AZ=/\S/,lZ=new iA;lZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!AZ.test(r)&&!AZ.test(e)};lZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;t<e.length-1;t++)!e[t+1]&&e[t+2]&&aZ.test(e[t])&&aZ.test(e[t+2])&&(e[t]+=e[t+2],e.splice(t+1,2),t--);return e};var gT=new iA;gT.tokenize=function(r){var e=[],t=r.split(/(\n|\r\n)/);t[t.length-1]||t.pop();for(var i=0;i<t.length;i++){var n=t[i];i%2&&!this.options.newlineIsToken?e[e.length-1]+=n:(this.options.ignoreWhitespace&&(n=n.trim()),e.push(n))}return e};function yLe(r,e,t){return gT.diff(r,e,t)}var wLe=new iA;wLe.tokenize=function(r){return r.split(/(\S.+?[.!?])(?=\s+|$)/)};var BLe=new iA;BLe.tokenize=function(r){return r.split(/([{}:;,]|\s+)/)};function ob(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?ob=function(e){return typeof e}:ob=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ob(r)}function AT(r){return bLe(r)||QLe(r)||SLe(r)||vLe()}function bLe(r){if(Array.isArray(r))return lT(r)}function QLe(r){if(typeof Symbol<"u"&&Symbol.iterator in Object(r))return Array.from(r)}function SLe(r,e){if(!!r){if(typeof r=="string")return lT(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return lT(r,e)}}function lT(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t<e;t++)i[t]=r[t];return i}function vLe(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var xLe=Object.prototype.toString,ym=new iA;ym.useLongestToken=!0;ym.tokenize=gT.tokenize;ym.castInput=function(r){var e=this.options,t=e.undefinedReplacement,i=e.stringifyReplacer,n=i===void 0?function(s,o){return typeof o>"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(cT(r,null,null,n),n," ")};ym.equals=function(r,e){return iA.prototype.equals.call(ym,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function cT(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s<e.length;s+=1)if(e[s]===r)return t[s];var o;if(xLe.call(r)==="[object Array]"){for(e.push(r),o=new Array(r.length),t.push(o),s=0;s<r.length;s+=1)o[s]=cT(r[s],e,t,i,n);return e.pop(),t.pop(),o}if(r&&r.toJSON&&(r=r.toJSON()),ob(r)==="object"&&r!==null){e.push(r),o={},t.push(o);var a=[],l;for(l in r)r.hasOwnProperty(l)&&a.push(l);for(a.sort(),s=0;s<a.length;s+=1)l=a[s],o[l]=cT(r[l],e,t,i,l);e.pop(),t.pop()}else o=r;return o}var uT=new iA;uT.tokenize=function(r){return r.slice()};uT.join=uT.removeEmpty=function(r){return r};function cZ(r,e,t,i,n,s,o){o||(o={}),typeof o.context>"u"&&(o.context=4);var a=yLe(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,AT(T.map(function(_){return(D.added?"+":"-")+_}))),D.added?p+=T.length:h+=T.length}else{if(u)if(T.length<=o.context*2&&v<a.length-2){var $;($=f).push.apply($,AT(l(T)))}else{var V,W=Math.min(T.length,o.context);(V=f).push.apply(V,AT(l(T.slice(0,W))));var Z={oldStart:u,oldLines:h-u+W,newStart:g,newLines:p-g+W,lines:f};if(v>=a.length-2&&T.length<=o.context){var A=/\n$/.test(t),ae=/\n$/.test(i),ge=T.length==0&&f.length>Z.oldLines;!A&&ge&&t.length>0&&f.splice(Z.oldLines,0,"\\ No newline at end of file"),(!A&&!ge||!ae)&&f.push("\\ No newline at end of file")}c.push(Z),u=0,g=0,f=[]}h+=T.length,p+=T.length}},w=0;w<a.length;w++)C(w);return{oldFileName:r,newFileName:e,oldHeader:n,newHeader:s,hunks:c}}var Eb=ne(dee()),yee=ne(cf()),wee=ne($r()),QT=J("util"),bT=ne(J("v8")),ST=ne(J("zlib"));var rUe=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(r,e,t,i)=>`${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)=>nB({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],pb=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(!M.existsSync(i))return;let n=await M.readFilePromise(i,"utf8"),s=bi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=DC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=ro(l.range)?Zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let f;for(let[p,C]of rUe){let w=g.match(p);if(w){f=C(u,...w);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=jf(c.range),C=DC(p.selector,!0);C&&(h=C)}catch{}o.set(c.descriptorHash,en(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(kk(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 db=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(rB(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(rB(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 Cb=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.r Line truncated
`;await M.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var mee=6,iUe=1,nUe=/ *, */g,Eee=/\/$/,sUe=32,oUe=(0,QT.promisify)(ST.default.gzip),aUe=(0,QT.promisify)(ST.default.gunzip),Xn=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(Xn||{}),wT={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},Iee=r=>$i(`${iUe}`,r),He=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,w;if(!e.projectCwd)throw new BT.UsageError(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,M.existsSync(x.join(s,xt.manifest))){i=s;break}n=x.dirname(s)}let o=new He(e.projectCwd,{configuration:e});(p=Ie.telemetry)==null||p.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(C=Ie.telemetry)==null||C.reportWorkspaceCount(o.workspaces.length),(w=Ie.telemetry)==null||w.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=Ve(e,o.cwd,Oe.PATH),u=Ve(e,x.relative(o.cwd,i),Oe.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 BT.UsageError(`The nearest package directory (${Ve(e,i,Oe.PATH)}) doesn't seem to be part of the project declared in ${Ve(e,o.cwd,Oe.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(M.existsSync(e)){let n=await M.readFilePromise(e,"utf8");this.lockFileChecksum=Iee(n);let s=bi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o<mee;for(let l of Object.keys(s)){if(l==="__metadata")continue;let c=s[l];if(typeof c.resolution>"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=qc(c.resolution,!0),g=new nt;g.load(c,{yamlCompatibilityMode:!0});let f=g.version,h=g.languageName||t,p=c.linkType.toUpperCase(),C=(i=c.conditions)!=null?i:null,w=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:w,peerDependencies:B,dependenciesMeta:v,peerDependenciesMeta:D,bin:T};this.originalPackages.set(H.locatorHash,H);for(let j of l.split(nUe)){let $=$A(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=[this.cwd];for(;e.length>0;){let t=e;e=[];for(let i of t){if(this.workspacesByCwd.has(i))continue;let n=await this.addWorkspace(i),s=this.storedPackages.get(n.anchoredLocator.locatorHash);s&&(n.dependencies=s.dependencies);for(let o of n.workspacesCwds)e.push(o)}}}async addWorkspace(e){let t=new Kh(e,{project:this});await t.setup();let i=this.workspacesByIdent.get(t.locator.identHash);if(typeof i<"u")throw new Error(`Duplicate workspace name ${ui(this.configuration,t.locator)}: ${U.fromPortablePath(e)} conflicts with ${U.fromPortablePath(i.cwd)}`);return this.workspaces.push(t),this.workspacesByCwd.set(e,t),this.workspacesByIdent.set(t.locator.identHash,t),t}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 (${ui(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(ZA(e)&&(e=SC(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=vC(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 ${RC(this.configuration,e)} (${Ve(this.configuration,x.join(e.cwd,xt.manifest),Oe.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}forgetResolution(e){let t=n=>{this.storedResolutions.delete(n),this.storedDescriptors.delete(n)},i=n=>{this.originalPackages.delete(n),this.storedPackages.delete(n),this.accessibleLocators.delete(n)};if("descriptorHash"in e){let n=this.storedResolutions.get(e.descriptorHash);t(e.descriptorHash);let s=new Set(this.storedResolutions.values());typeof n<"u"&&!s.has(n)&&i(n)}if("locatorHash"in e){i(e.locatorHash);for(let[n,s]of this.storedResolutions)s===e.locatorHash&&t(n)}}forgetTransientResolutions(){let e=this.configuration.makeResolver();for(let t of this.originalPackages.values()){let i;try{i=e.shouldPersistResolution(t,{project:this,resolver:e})}catch{i=!1}i||this.forgetResolution(t)}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)ZA(i)&&e.dependencies.set(t,SC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Ot(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t==Line truncated
`;switch(se){case 0:be+=`# Script name: ${Ae}
`;break;case 1:be+=`# Script code: ${Ae}
`;break}let fe=null;if(!await M.mktempPromise(async Ge=>{let ie=x.join(Ge,"build.log"),{stdout:Y,stderr:he}=this.configuration.getSubprocessStreams(ie,{header:be,prefix:mt(this.configuration,ue),report:t}),re;try{switch(se){case 0:re=await c0(ue,Ae,[],{cwd:Le,project:this,stdin:fe,stdout:Y,stderr:he});break;case 1:re=await TF(ue,Ae,[],{cwd:Le,project:this,stdin:fe,stdout:Y,stderr:he});break}}catch(tt){he.write(tt.stack),re=1}if(Y.end(),he.end(),re===0)return W.set(ue.locatorHash,Pe),!0;M.detachTemp(Ge);let me=`${mt(this.configuration,ue)} couldn't be built successfully (exit code ${Ve(this.configuration,re,Oe.NUMBER)}, logs can be found here: ${Ve(this.configuration,ie,Oe.PATH)})`;return this.optionalBuilds.has(ue.locatorHash)?(t.reportInfo(9,me),W.set(ue.locatorHash,Pe),!0):(t.reportError(9,me),!1)}))return}})())}}if(await eo(L),_===D.size){let N=Array.from(D).map(ue=>{let we=this.storedPackages.get(ue);if(!we)throw new Error("Assertion failed: The package should have been registered");return mt(this.configuration,we)}).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: ${N})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=Ie.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 M.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new ot(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=Ve(this.configuration,g,Oe.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=lc(n,this.generateLockfile());if(c!==n){let u=cZ(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,Ve(this.configuration,f,Oe.ADDED)):f.startsWith("-")?e.report.reportError(28,Ve(this.configuration,f,Oe.REMOVED)):e.report.reportInfo(null,Ve(this.configuration,f,"grey"))}e.report.reportSeparator()}throw new ot(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=Ie.telemetry)==null||l.reportPackageExtension(Mc(g,Oe.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=>tB(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 ${Ve(this.configuration,"mode=update-lockfile",Oe.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>tB(u,{cwd:this.cwd})));for(let u=0;u<s.length;++u)o[u]!==c[u]&&e.report.reportError(64,`The checksum for ${s[u]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile(),await this.configuration.triggerHook(c=>c.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:mee,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=>Qn(f)).sort().join(", "),c=new nt;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map Line truncated
`,`# Manual changes might be lost - proceed with caution!
`].join("")}
`+Sa(t)}async persistLockfile(){let e=x.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await M.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=lc(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=Iee(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(wT))e.push(...o);let t=(0,Eb.default)(this,e),i=bT.default.serialize(t),n=$i(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await M.mkdirPromise(x.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await oUe(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 aUe(await M.readFilePromise(n));s=bT.default.deserialize(o),this.installStateChecksum=$i(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,Eb.default)(s,wT.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,Eb.default)(s,wT.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new ni}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile();for(let e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Hk(e.cwd,this.cwd)||!await M.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await M.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,`${Ve(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,`${Ve(this.configuration,x.basename(l),"magenta")} appears to be unused - removing`),await M.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 AUe({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,w=new Map(r.workspaces.map(W=>{let Z=W.anchoredLocator.locatorHash,A=i.get(Z);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[Z,QC(A)]})),B=()=>{let W=M.mktempSync(),Z=x.join(W,"stacktrace.log"),A=String(u.length+1).length,ae=u.map((ge,_)=>`${`${_+1}.`.padStart(A," ")} ${ps(ge)}
`).join("");throw M.writeFileSync(Z,ae),M.detachTemp(W),new ot(45,`Encountered a stack overflow when resolving peer dependencies; cf ${U.fromPortablePath(Z)}`)},v=W=>{let Z=t.get(W.descriptorHash);if(typeof Z>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(Z);if(!A)throw new Error("Assertion failed: The package could not be found");return A},D=(W,Z,A,{top:ae,optional:ge})=>{u.length>1e3&&B(),u.push(Z);let _=T(W,Z,A,{top:ae,optional:ge});return u.pop(),_},T=(W,Z,A,{top:ae,optional:ge})=>{if(n.has(Z.locatorHash))return;n.add(Z.locatorHash),ge||s.delete(Z.locatorHash);let _=i.get(Z.locatorHash);if(!_)throw new Error(`Assertion failed: The package (${mt(r.configuration,Z)}) should have been registered`);let L=[],N=[],ue=[],we=[],Te=[];for(let Le of Array.from(_.dependencies.values())){if(_.peerDependencies.has(Le.identHash)&&_.locatorHash!==ae)continue;if(ZA(Le))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Le.descriptorHash);let se=ge;if(!se){let Y=_.dependenciesMeta.get(Ot(Le));if(typeof Y<"u"){let he=Y.get(null);typeof he<"u"&&he.optional&&(se=!0)}}let Ae=t.get(Le.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${tr(r.configuration,Le)}) should have been registered`);let be=w.get(Ae)||i.get(Ae);if(!be)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${tr(r.configuration,Le)}) should have been registered`);if(be.peerDependencies.size===0){D(Le,be,new Map,{top:ae,optional:se});continue}let fe,le,Ge=new Set,ie;N.push(()=>{fe=Rk(Le,Z.locatorHash),le=Fk(be,Z.locatorHash),_.dependencies.delete(Le.identHash),_.dependencies.set(fe.identHash,fe),t.set(fe.descriptorHash,le.locatorHash),e.set(fe.descriptorHash,fe),i.set(le.locatorHash,le),L.push([be,fe,le])}),ue.push(()=>{var Y;ie=new Map;for(let he of le.peerDependencies.values()){let re=_.dependencies.get(he.identHash);if(!re&&xC(Z,he)&&(W.identHash===Z.identHash?re=W:(re=Zt(Z,W.range),e.set(re.descriptorHash,re),t.set(re.descriptorHash,Z.locatorHash),a.delete(re.descriptorHash))),(!re||re.range==="missing:")&&le.dependencies.has(he.identHash)){le.peerDependencies.delete(he.identHash);continue}re||(re=Zt(he,"missing:")),le.dependencies.set(re.identHash,re),ZA(re)&&Oc(h,re.descriptorHash).add(le.locatorHash),g.set(re.identHash,re),re.range==="missing:"&&Ge.add(re.identHash),ie.set(he.identHash,(Y=A.get(he.identHash))!=null?Y:le.locatorHash)}le.dependencies=new Map(Bn(le.dependencies,([he,re])=>Ot(re)))}),we.push(()=>{if(!i.has(le.locatorHash))return;let Y=c.get(be.locatorHash);typeof Y=="number"&&Y>=2&&B();let he=c.get(be.locatorHash),re=typeof he<"u"?he+1:1;c.set(be.locatorHash,re),D(fe,le,ie,{top:ae,optional:se}),c.set(be.locatorHash,re-1)}),Te.push(()=>{let Y=_.dependencies.get(Le.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(Oc(C,he).add(Z.locatorHash),!!i.has(le.locatorHash)){for(let re of le.peerDependencies.values()){let me=ie.get(re.identHash);if(typeof me>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");kf(Rf(p,me),Ot(re)).push(le.locatorHash)}for(let re of Ge)le.dependencies.delete(re)}})}for(let Le of[...N,...ue])Le();let Pe;do{Pe=!0;for(let[Le,se,Ae]of L){let be=Rf(f,Le.locatorHash),fe=$i(...[...Ae.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}),se.identHash),le=be.get(fe);if(typeof le>"u"){be.set(fe,se);continue}if(le===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ge=h.get(se.descriptorHash)||[],ie=[_.locatorHash,...Ge];h.delete(se.descriptorHash);for(let Y of ie){let he=i.get(Y);typeof he>"u"||(he.dependencies.get(se.identHash).descriptorHash!==le.descriptorHash&&(Pe=!1),he.dependencies.set(se.identHash,le))}}}while(!Pe);for(let Le of[...we,...Te])Le()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),D(W.anchoredDescriptor,Z,new Map,{top:Z.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let j=[];for(let[W,Z]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 Z){let _=i.get(ge);if(!(typeof _>"u"))for(let[L,N]of ae){let ue=Zi(L);if(_.peerDependencies.has(ue.identHash))continue;let we=`p${$i(ge,L,W).slice(0,5)}`;o.set(we,{subject:ge,requested:ue,rootRequester:W,allRequesters:N});let Te=A.dependencies.get(ue.identHash);if(typeof Te<"u"){l Line truncated
Try running the command again with the package name prefixed: ${ee.pretty(t,"yarn add",Pi.CODE)} ${ee.pretty(t,P.makeDescriptor(P.makeIdent(null,"my-package"),`${D[0]}...`),Pi.DESCRIPTOR)}`);if(!v)throw new xr.UsageError(`The ${ee.pretty(t,B,Pi.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let T=UJe(n,v,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(T.map(async j=>{let $=await gE(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 ta.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,Soe.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:B.map(({descriptor:V,name:W,reason:Z})=>V?{name:W,hint:Z,descriptor:V}:{name:W,hint:Z,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 Ue.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()}};Qu.paths=[["add"]],Qu.usage=xr.Command.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\": { \"<package>\": { \"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=<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 [email protected]"],["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 UJe(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["peerDepenLine truncated
`),0}return(await Ue.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Jt.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()}};Su.paths=[["bin"]],Su.usage=Bl.Command.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 fE=ne(Xe()),vu=class extends ve{constructor(){super(...arguments);this.mirror=fE.Option.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=fE.Option.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=await kt.find(t);return(await Ue.start({configuration:t,stdout:this.context.stdout},async()=>{let s=(this.all||this.mirror)&&i.mirrorCwd!==null,o=!this.mirror;s&&(await M.removePromise(i.mirrorCwd),await t.triggerHook(a=>a.cleanGlobalArtifacts,t)),o&&await M.removePromise(i.cwd)})).exitCode()}};vu.paths=[["cache","clean"],["cache","clear"]],vu.usage=fE.Command.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 bl=ne(Xe()),xoe=ne(Nb()),yO=J("util"),xu=class extends ve{constructor(){super(...arguments);this.json=bl.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=bl.Option.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=bl.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new bl.UsageError(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=Ee.convertMapsToIndexableObjects(o),l=n?(0,xoe.default)(a,n):a,c=await Ue.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();yO.inspect.styles.name="cyan",this.context.stdout.write(`${(0,yO.inspect)(l,{depth:1/0,colors:t.get("enableColors"),compact:!1})}
`)}return c.exitCode()}};xu.paths=[["config","get"]],xu.usage=bl.Command.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 co=ne(Xe()),Kae=ne(vO()),Hae=ne(Nb()),Gae=ne(Uae()),xO=J("util"),Pu=class extends ve{constructor(){super(...arguments);this.json=co.Option.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=co.Option.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=co.Option.String();this.value=co.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new co.UsageError("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 co.UsageError(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new co.UsageError("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=>Ie.updateHomeConfiguration(p):p=>Ie.updateConfiguration(i(),p))(p=>{if(s){let C=(0,Kae.default)(p);return(0,Gae.default)(C,this.name,a),C}else return{...p,[n]:a}});let u=(await Ie.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),g=Ee.convertMapsToIndexableObjects(u),f=s?(0,Hae.default)(g,s):g;return(await Ue.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async p=>{xO.inspect.styles.name="cyan",p.reportInfo(0,`Successfully set ${this.name} to ${(0,xO.inspect)(f,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};Pu.paths=[["config","set"]],Pu.usage=co.Command.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 Ql=ne(Xe()),_ae=ne(vO()),Zae=ne(km()),$ae=ne(Xae()),Du=class extends ve{constructor(){super(...arguments);this.home=Ql.Option.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=Ql.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new Ql.UsageError("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 Ql.UsageError(`Couldn't find a configuration settings named "${n}"`);let a=this.home?c=>Ie.updateHomeConfiguration(c):c=>Ie.updateConfiguration(i(),c);return(await Ue.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async c=>{let u=!1;await a(g=>{if(!(0,Zae.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,_ae.default)(g):{...g};return(0,$ae.default)(f,this.name),f}),u||c.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};Du.paths=[["config","unset"]],Du.usage=Ql.Command.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 cp=ne(Xe()),PO=J("util"),ku=class extends ve{constructor(){super(...arguments);this.verbose=cp.Option.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=cp.Option.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=cp.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins,{strict:!1});return(await Ue.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=Ee.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=Ee.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)||"<default>":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,PO.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,PO.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};ku.paths=[["config"]],ku.usage=cp.Command.Usage({description:"display the current configuration",details:`
This command prints the current active configuration settings.
`,examples:[["Print the active configuration settings","$0 config"]]});var Sl=ne(Xe()),kO=ne(ns());var iQ={};ht(iQ,{Strategy:()=>pE,acceptedStrategies:()=>G4e,dedupe:()=>DO});var eAe=ne(wn()),pE=(e=>(e.HIGHEST="highest",e))(pE||{}),G4e=new Set(Object.values(pE)),Y4e={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`);Ee.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!eAe.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(w=>{let B=r.originalPackages.get(w);if(typeof B>"u")throw new Error(`Assertion failed: The package (${w}) 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 DO(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new ni,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=Y4e[e],f=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),h=xi.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 w=ee.pretty(s,e,ee.Type.CODE);return n.reportInfo(0,`${C} can be deduped using the ${w} strategy`),p})}var Ru=class extends ve{constructor(){super(...arguments);this.strategy=Sl.Option.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:kO.isEnum(pE)});this.check=Sl.Option.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=Sl.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=Sl.Option.String("--mode",{description:"Change what artifacts installs generate",validator:kO.isEnum(Xn)});this.patterns=Sl.Option.Rest()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i}=await He.find(t,this.context.cwd),n=await kt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await Ue.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await DO(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await Ue.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};Ru.paths=[["dedupe"]],Ru.usage=Sl.Command.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 o Line truncated
`)}};up.paths=[["--clipanion=definitions"]];var gp=class extends ve{async execute(){this.context.stdout.write(this.cli.usage(null))}};gp.paths=[["help"],["--help"],["-h"]];var RO=ne(Xe()),dE=class extends ve{constructor(){super(...arguments);this.leadingArgument=RO.Option.String();this.args=RO.Option.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!P.tryParseIdent(this.leadingArgument)){let t=x.resolve(this.context.cwd,U.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var fp=class extends ve{async execute(){this.context.stdout.write(`${Or||"<unknown>"}
`)}};fp.paths=[["-v"],["--version"]];var CE=ne(Xe()),Fu=class extends ve{constructor(){super(...arguments);this.commandName=CE.Option.String();this.args=CE.Option.Proxy()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await He.find(t,this.context.cwd);return await i.restoreInstallState(),await Jt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};Fu.paths=[["exec"]],Fu.usage=CE.Command.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"']]});var nQ=ne(Xe()),hp=ne(ns()),Nu=class extends ve{constructor(){super(...arguments);this.hash=nQ.Option.String({required:!1,validator:hp.applyCascade(hp.isString(),[hp.matchesRegExp(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i}=await He.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await q4e(this.hash,i,{stdout:this.context.stdout}):(await Ue.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 Ee.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),w=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 ${w}${D}`)}})).exitCode()}};Nu.paths=[["explain","peer-requirements"]],Nu.usage=nQ.Command.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.
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 q4e(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 Ue.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:"<missing>")}, 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 Ee.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)),w=Math.max(...p.map(({prettyRange:D})=>D.length));for(let{stringifiedLocator:D,prettyLocator:T,prettyRange:H,mark:j}of Ee.sortMap(p,({stringifiedLocator:$})=>$))o.reportInfo(null,`${T.padEnd(C+(T.length-D.length)," ")} \u2192 ${H.padEnd(w," ")} ${j}`);p.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${P.prettyLocator(e.configuration,l)}`))})).exitCode()}var EE=ne(Xe()),pp=ne(ns());var na=ne(Xe()),iAe=ne($r()),Tu=class extends ve{constructor(){super(...arguments);this.onlyIfNeeded=na.Option.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=na.Option.String()}async execute(){var o;let t=await Ie.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 Or>"u")throw new na.UsageError("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 mE(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await mE(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}[\\/]/)||U.isAbsolute(this.version))n=`file://${U.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 J4e(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new na.UsageError(`Invalid version descriptor "${this.version}"`);return(await Ue.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,Pi.URL)}`),c=await M.readFilePromise(U.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${ee.pretty(t,n,Pi.PATH)}`),c=awai Line truncated
${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 M.removePromise(x.dirname(o)),await M.mkdirPromise(x.dirname(o),{recursive:!0}),await M.writeFilePromise(o,t,{mode:493}),await Ie.updateConfiguration(n,{yarnPath:l});let c=await nt.tryFind(n)||new nt;c.packageManager=`yarn@${e&&Ee.isTaggedYarnVersion(e)?e:await mE(r,"stable")}`;let u={};c.exportTo(u);let g=x.join(n,nt.fileName),f=`${JSON.stringify(u,null,c.indent)}
`;await M.changeFilePromise(g,f,{automaticNewlines:!0})}function nAe(r){return Ct[fy(r)]}var W4e=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function z4e(r){let t=`https://repo.yarnpkg.com/${Ee.isTaggedYarnVersion(Or)?Or:await mE(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(W4e),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=nAe(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 Lu=class extends ve{constructor(){super(...arguments);this.code=EE.Option.String({required:!1,validator:pp.applyCascade(pp.isString(),[pp.matchesRegExp(/^YN[0-9]{4}$/)])});this.json=EE.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=nAe(this.code),n=ee.pretty(t,i,ee.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await z4e(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"))}
`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:i,details:l})}
`):this.context.stdout.write(`${s}
${l}
`)}else{let i={children:Ee.mapAndFilter(Object.entries(Ct),([n,s])=>Number.isNaN(Number(n))?Ee.mapAndFilter.skip:{label:UA(Number(n)),value:ee.tuple(ee.Type.CODE,s)})};Vn.emitTree(i,{configuration:t,stdout:this.context.stdout,json:this.json})}}};Lu.paths=[["explain"]],Lu.usage=EE.Command.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 an=ne(Xe()),sAe=ne(wn()),Ou=class extends ve{constructor(){super(...arguments);this.all=an.Option.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=an.Option.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=an.Option.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=an.Option.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=an.Option.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=an.Option.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=an.Option.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=an.Option.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=an.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=an.Option.Rest()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.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 Z=i.storedPackages.get(W);if(typeof Z>"u")throw new Error("Assertion failed: Expected the package to be registered");if($.set(W,Z),P.isVirtualLocator(Z)&&V.push(P.devirtualizeLocator(Z).locatorHash),!(!H&&W!==j))for(let A of Z.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(Z=>{let A=P.parseLocator(Z),ae=sAe.default.makeRe(P.stringifyIdent(A)),ge=P.isVirtualLocator(A),_=ge?P.devirtualizeLocator(A):A;return L=>{let N=P.stringifyIdent(L);if(!ae.test(N))return!1;if(A.reference==="unknown")return!0;let ue=P.isVirtualLocator(L),we=ue?P.devirtualizeLocator(L):L;return!(ge&&ue&&A.reference!==L.reference||_.reference!==we.reference)}}),V=Ee.sortMap([...j],Z=>P.stringifyLocator(Z));return{selection:V.filter(Z=>$.length===0||$.some(A=>A(Z))),sortedLookup:V}},{selection:g,sortedLookup:f}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new an.UsageError("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");Ee.getArrayWithDefault(h,j).push(T)}let p=new Map;for(let T of f){if(!P.isVirtualLocator(T))continue;let H=P.devirtualizeLocator(T);Ee.getArrayWithDefault(p,H.locatorHash).push(T)}let C={},w={children:C},B=t.makeFetcher(),v={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new ni,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},D=[async(T,H,j)=>{var W,Z;if(!H.has("manifest"))return;let $=await B.fetch(T,v),V;try{V=await nt.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,(Z=V.raw.homepage)!=null?Z: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,$),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<"u"?[Z.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(_=>({value:_}));else{let _={};ge.children=_;for(let[L,N]of Object.entries(ae))typeof N>"u"||(_[L]={label:L,value:N})}};if( Line truncated
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: ).
- **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of \`cacheFolder\` in \`yarn config\` to see where the cache files are stored).
- **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the .pnp.cjs file you might know).
- **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.
Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.cjs file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.
If the \`--immutable\` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the \`immutablePatterns\` configuration setting). For backward compatibility we offer an alias under the name of \`--frozen-lockfile\`, but it will be removed in a later release.
If the \`--immutable-cache\` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).
If the \`--check-cache\` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.
If the \`--inline-builds\` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.
If the \`--mode=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are:
- \`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 V4e="|||||||",X4e=">>>>>>>",_4e="=======",aAe="<<<<<<<";async function Z4e(r,e){if(!r.projectCwd)return!1;let t=x.join(r.projectCwd,r.get("lockfileFilename"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,"utf8");if(!i.includes(aAe))return!1;if(e)throw new ot(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=$4e(i),o,a;try{o=bi(n),a=bi(s)}catch{throw new ot(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 M.changeFilePromise(t,Sa(l),{automaticNewlines:!0}),!0}function $4e(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(aAe)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===_4e){i=!1;break}else if(i||s.startsWith(V4e)){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(X4e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(`
`),e[1].join(`
`)]}var ks=ne(Xe()),Uu=class extends ve{constructor(){super(...arguments);this.all=ks.Option.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target project to the current one"});this.private=ks.Option.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target project to the current one"});this.relative=ks.Option.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destination=ks.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=x.resolve(this.context.cwd,U.toPortablePath(this.destination)),a=await Ie.find(o,this.context.plugins,{useRc:!1,strict:!1}),{project:l,workspace:c}=await He.find(a,o);if(i.cwd===l.cwd)throw new ks.UsageError("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 ks.UsageError("No workspace found to be linked in the target project")}else{if(!c.manifest.name)throw new ks.UsageError("The target workspace doesn't have a name and thus cannot be linked");if(c.manifest.private&&!this.private)throw new ks.UsageError("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 Ue.start({configuration:t,stdout:this.context.stdout},async h=>{await i.install({cache:s,report:h})})).exitCode()}};Uu.paths=[["link"]],Uu.usage=ks.Command.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 oQ=ne(Xe()),Ku=class extends ve{constructor(){super(...arguments);this.args=oQ.Option.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};Ku.paths=[["node"]],Ku.usage=oQ.Command.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 lA=ne(Xe()),fAe=J("os");var sa=ne(Xe()),AAe=J("os");var aQ=ne(Xe()),e8e="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Gu(r){let e=await Vt.get(e8e,{configuration:r});return bi(e.toString())}var Hu=class extends ve{constructor(){super(...arguments);this.json=aQ.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins);return(await Ue.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await Gu(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()}};Hu.paths=[["plugin","list"]],Hu.usage=aQ.Command.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 t8e=/^[0-9]+$/;function lAe(r){return t8e.test(r)?`pull/${r}/head`:r}var r8e=({repository:r,branch:e},t)=>[["git","init",U.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",lAe(e)],["git","reset","--hard","FETCH_HEAD"]],i8e=({branch:r})=>[["git","fetch","origin","--depth=1",lAe(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],n8e=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",x.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],Yu=class extends ve{constructor(){super(...arguments);this.installPath=sa.Option.String("--path",{description:"The path where the repository should be cloned to"});this.repository=sa.Option.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=sa.Option.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=sa.Option.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=sa.Option.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=sa.Option.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=sa.Option.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i}=await He.find(t,this.context.cwd),n=typeof this.installPath<"u"?x.resolve(this.context.cwd,U.toPortablePath(this.installPath)):x.resolve(U.toPortablePath((0,AAe.tmpdir)()),"yarnpkg-sources",gi.makeHash(this.repository).slice(0,6));return(await Ue.start({configuration:t,stdout:this.context.stdout},async o=>{await NO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await IE(n8e(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=x.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await M.readFilePromise(a);await FO(t,"sources",l,{report:o}),this.skipPlugins||await s8e(this,{project:i,report:o,target:n})})).exitCode()}};Yu.paths=[["set","version","from","sources"]],Yu.usage=sa.Command.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 IE(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 mr.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 mr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function NO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(x.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await IE(i8e(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 M.removePromise(i),await M.mkdirPromise(i,{recursive:!0}),await IE(r8e(r,i),{configuration:e,context:r.context,target:i}))}async function s8e(r,{project:e,report:t,target:i}){let n=await Gu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await TO(o,r,{project:e,report:t,target:i})}var AQ=ne(Xe()),cAe=ne($r()),uAe=J("url"),gAe=J("vm");var ju=class extends ve{constructor(){super(...arguments);this.name=AQ.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins);return(await Ue.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await He.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||U.isAbsolute(this.name)){let l=x.resolve(this.context.cwd,U.toPortablePath(this.name));n.reportInfo(0,`Reading ${ee.pretty(t,l,ee.Type.PATH)}`),o=x.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new uAe.URL(this.name)}catch{throw new ot(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 ot(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 Gu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new ot(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}/`):Or!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Or}/`))}n.reportInfo(0,`Downloading ${ee.pretty(t,l,"green")}`),a=await Vt.get(l,{configuration:t})}await LO(o,a,{project:s,report:n})})).exitCode()}};ju.paths=[["plugin","import"]],ju.usage=AQ.Command.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:
- If the plugin is stored within the Yarn repository, it can be referenced by name.
- Third-party plugins can be referenced directly through their public urls.
- 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 LO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,gAe.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 M.mkdirPromise(x.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ie.updateConfiguration(t.cwd,g=>{let f=[],h=!1;for(let p of g.plugins||[]){let C=typeof p!="string"?p.path:p,w=x.resolve(t.cwd,U.toPortablePath(C)),{name:B}=Ee.dynamicRequire(w);B!==a?f.push(p):(f.push(u),h=!0)}return h||f.push(u),{...g,plugins:f}})}var o8e=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],qu=class extends ve{constructor(){super(...arguments);this.installPath=lA.Option.String("--path",{description:"The path where the repository should be cloned to"});this.repository=lA.Option.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=lA.Option.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=lA.Option.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=lA.Option.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=lA.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?x.resolve(this.context.cwd,U.toPortablePath(this.installPath)):x.resolve(U.toPortablePath((0,fAe.tmpdir)()),"yarnpkg-sources",gi.makeHash(this.repository).slice(0,6));return(await Ue.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await He.find(t,this.context.cwd),a=P.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=P.stringifyIdent(a),c=await Gu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new ot(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 NO(this,{configuration:t,report:s,target:i}),await TO(u,this,{project:o,report:s,target:i})})).exitCode()}};qu.paths=[["plugin","import","from","sources"]],qu.usage=lA.Command.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 TO(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 IE(o8e({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 M.readFilePromise(l);await LO(r,c,{project:i,report:n})}var dp=ne(Xe()),Ju=class extends ve{constructor(){super(...arguments);this.name=dp.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i}=await He.find(t,this.context.cwd);return(await Ue.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=P.parseIdent(o);if(!t.plugins.has(o))throw new dp.UsageError(`${P.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=x.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${ee.pretty(t,l,ee.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await Ie.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()}};Ju.paths=[["plugin","remove"]],Ju.usage=dp.Command.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.
`,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var lQ=ne(Xe()),Wu=class extends ve{constructor(){super(...arguments);this.json=lQ.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins);return(await Ue.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let s of t.plugins.keys()){let o=this.context.plugins.plugins.has(s),a=s;o&&(a+=" [builtin]"),n.reportJson({name:s,builtin:o}),n.reportInfo(null,`${a}`)}})).exitCode()}};Wu.paths=[["plugin","runtime"]],Wu.usage=lQ.Command.Usage({category:"Plugin-related commands",description:"list the active plugins",details:`
This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins.
`,examples:[["List the currently active plugins","$0 plugin runtime"]]});var cQ=ne(Xe()),zu=class extends ve{constructor(){super(...arguments);this.idents=cQ.Option.Rest()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(P.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new ni}),o.size>0)for(let l of i.storedPackages.values())o.has(l.identHash)&&i.storedBuildState.delete(l.locatorHash);else i.storedBuildState.clear();return(await Ue.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};zu.paths=[["rebuild"]],zu.usage=cQ.Command.Usage({description:"rebuild the project's native packages",details:`
This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again.
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 vl=ne(Xe()),OO=ne(wn()),hAe=ne(ns());var Vu=class extends ve{constructor(){super(...arguments);this.all=vl.Option.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=vl.Option.String("--mode",{description:"Change what artifacts installs generate",validator:hAe.isEnum(Xn)});this.patterns=vl.Option.Rest()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.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,w=P.parseIdent(p);for(let B of o){let v=[...B.manifest.peerDependenciesMeta.keys()];for(let D of(0,OO.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,OO.default)(H,P.stringifyIdent(w))){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 vl.UsageError(`${g} ${ee.prettyList(t,l,Pi.CODE)} ${f} match any packages referenced by ${h} workspace`);return c?(await t.triggerMultipleHooks(C=>C.afterWorkspaceDependencyRemoval,u),(await Ue.start({configuration:t,stdout:this.context.stdout},async C=>{await i.install({cache:s,report:C,mode:this.mode})})).exitCode()):0}};Vu.paths=[["remove"]],Vu.usage=vl.Command.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=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are:
- \`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.
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 pAe=J("util"),Cp=class extends ve{async execute(){let e=await Ie.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await He.find(e,this.context.cwd);if(!i)throw new ct(t.cwd,this.context.cwd);return(await Ue.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=Ee.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,pAe.inspect)(g,l)}`)})).exitCode()}};Cp.paths=[["run"]];var qi=ne(Xe()),Xu=class extends ve{constructor(){super(...arguments);this.inspect=qi.Option.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=qi.Option.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=qi.Option.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=qi.Option.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.silent=qi.Option.Boolean("--silent",{hidden:!0});this.scriptName=qi.Option.String();this.args=qi.Option.Proxy()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await He.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Jt.hasPackageScript(o,this.scriptName,{project:i}))return await Jt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Jt.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 Jt.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 Jt.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 qi.UsageError(`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 qi.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new qi.UsageError("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 Gh)for(let f of g)if(c.length>=f.length&&JSON.stringify(c.slice(0,f.length))===JSON.stringify(f))throw new qi.UsageError(`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 qi.UsageError(`Couldn't find a script named "${this.scriptName}".`)}}};Xu.paths=[["run"]],Xu.usage=qi.Command.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.
- Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed.
- 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 mp=ne(Xe()),_u=class extends ve{constructor(){super(...arguments);this.save=mp.Option.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=mp.Option.String();this.resolution=mp.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.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 Ue.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};_u.paths=[["set","resolution"]],_u.usage=mp.Command.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 xl=ne(Xe()),dAe=ne(wn()),Zu=class extends ve{constructor(){super(...arguments);this.all=xl.Option.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=xl.Option.Rest()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.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,U.toPortablePath(c));if(Ee.isPathLike(c)){let g=await Ie.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:f,workspace:h}=await He.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 xl.UsageError("No workspace found to be unlinked in the target project")}else{if(!h.manifest.name)throw new xl.UsageError("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,dAe.default)(g,c))a.add(f)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await Ue.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Zu.paths=[["unlink"]],Zu.usage=xl.Command.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 Dn=ne(Xe()),CAe=ne(lE()),MO=ne(wn()),Ep=ne(ns());var Pl=class extends ve{constructor(){super(...arguments);this.interactive=Dn.Option.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=Dn.Option.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=Dn.Option.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=Dn.Option.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=Dn.Option.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=Dn.Option.String("--mode",{description:"Change what artifacts installs generate",validator:Ep.isEnum(Xn)});this.patterns=Dn.Option.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.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 Dn.UsageError("Ranges aren't allowed when using --recursive");for(let f of(0,MO.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 Ue.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var w;let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(w=this.interactive)!=null?w:t.get("preferInteractive"),a=uE(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,MO.default)($,P.stringifyIdent(D))){let W=P.parseIdent(V),Z=T.manifest[H].get(W.identHash);if(typeof Z>"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,Z,await gE(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 Dn.UsageError(`Patterns ${ee.prettyList(t,u,Pi.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new Dn.UsageError(`Pattern ${ee.prettyList(t,u,Pi.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),f=await ta.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,CAe.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:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,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(),Z={project:i,resolver:W},A=W.bindDescriptor(V,B.anchoredLocator,Z);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,p),h&&this.context.stdout.write(`
`),(await Ue.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};Pl.paths=[["up"]],Pl.usage=Dn.Command.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=<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 [email protected]"],["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'"]]}),Pl.schema=[Ep.hasKeyRelationship("recursive",Ep.KeyRelationship.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var $u=ne(Xe()),eg=class extends ve{constructor(){super(...arguments);this.recursive=$u.Option.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=$u.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=$u.Option.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=$u.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.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?A8e(i,s,{configuration:t,peers:this.peers}):a8e(i,s,{configuration:t,peers:this.peers});Vn.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};eg.paths=[["why"]],eg.usage=$u.Command.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 a8e(r,e,{configuration:t,peers:i}){let n=Ee.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 A8e(r,e,{configuration:t,peers:i}){let n=Ee.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 w=r.storedPackages.get(C);if(!w)throw new Error("Assertion failed: The package should have been registered");a(w)&&(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),w={},B={value:C,children:w},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,w,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 VO={};ht(VO,{default:()=>x8e,gitUtils:()=>cA});var cA={};ht(cA,{TreeishProtocols:()=>uQ,clone:()=>zO,fetchBase:()=>MAe,fetchChangedFiles:()=>UAe,fetchChangedWorkspaces:()=>S8e,fetchRoot:()=>OAe,isGitUrl:()=>yp,lsRemote:()=>LAe,normalizeLocator:()=>JO,normalizeRepoUrl:()=>BE,resolveUrl:()=>WO,splitRepoUrl:()=>wE});var yE=ne(Xe()),qO=ne(kAe()),NAe=ne(n0()),Ip=ne(J("querystring")),YO=ne($r());function GO(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function RAe(r){try{return new URL(r)}catch{return}}function b8e(r){let e=GO(r,"@","#"),t=GO(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),GO(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function FAe(r){return RAe(r)||RAe(b8e(r))}function TAe(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var Q8e=[/^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\/(.+)?$/],uQ=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(uQ||{});function yp(r){return r?Q8e.some(e=>!!r.match(e)):!1}function wE(r){r=BE(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=Ip.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(uQ).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(uQ))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 BE(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/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=FAe(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}fu Line truncated
- ${l.join(`
- `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};rg.paths=[["workspace"]],rg.usage=kl.Command.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 P8e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:KAe.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"}},commands:[vu,xu,Pu,Du,_u,Yu,Tu,tg,up,gp,dE,fp,Qu,Su,ku,Ru,Fu,Nu,Lu,Ou,Mu,Uu,Zu,Ku,qu,ju,Ju,Hu,Wu,zu,Vu,Cp,Xu,Pl,eg,rg]},D8e=P8e;var tM={};ht(tM,{default:()=>R8e});var De={optional:!0},_O=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/[email protected] || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:De,zenObservable:De}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:De,zenObservable:De}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:De}}],["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"]:De,["postcss-jsx"]:De,["postcss-less"]:De,["postcss-markdown"]:De,["postcss-scss"]:De}}],["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:De}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:De}}],["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:De,"vue-template-compiler":De}}],["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:De,"utf-8-validate":De}}],["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":De,"vuetify-loader":De}}],["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":De}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-lo Line truncated
`),await M.writeFilePromise(x.join(i,"yarn.lock"),"");let n=x.join(i,".yarnrc.yml"),s=await Ie.findProjectCwd(this.context.cwd,xt.lockfile),o=!(await Ie.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),a=s!==null?x.join(s,".yarnrc.yml"):null;a!==null&&M.existsSync(a)?(await M.copyFilePromise(a,n),await Ie.updateConfiguration(i,w=>{let B={...w,enableGlobalCache:o,enableTelemetry:!1};return Array.isArray(w.plugins)&&(B.plugins=w.plugins.map(v=>{let D=typeof v=="string"?v:v.path,T=U.isAbsolute(D)?D:U.resolve(U.fromPortablePath(s),D);return typeof v=="string"?T:{path:T,spec:v.spec}})),B})):await M.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 Ie.find(i,this.context.plugins),{project:f,workspace:h}=await He.find(g,i);if(h===null)throw new ct(f.cwd,i);await f.restoreInstallState();let p=await Jt.getWorkspaceAccessibleBinaries(h);return p.has(c)===!1&&p.size===1&&typeof this.packages>"u"&&(c=Array.from(p)[0][0]),await Jt.executeWorkspaceAccessibleBinary(h,c,this.args,{packageAccessibleBinaries:p,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};ng.paths=[["dlx"]],ng.usage=ig.Command.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 F8e={commands:[wp,ng]},N8e=F8e;var oM={};ht(oM,{default:()=>O8e,fileUtils:()=>SE});var Bp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,QE=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,zr="file:";var SE={};ht(SE,{makeArchiveFromLocator:()=>hQ,makeBufferFromLocator:()=>sM,makeLocator:()=>nM,makeSpec:()=>qAe,parseSpec:()=>iM});function iM(r){let{params:e,selector:t}=P.parseRange(r),i=U.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?P.parseLocator(e.locator):null,path:i}}function qAe({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 nM(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return P.makeLocator(r,qAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function hQ(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 jt(Re.root),prefixPath:Re.dot,localPath:Re.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new jt(Re.root),prefixPath:x.relative(Re.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=x.join(a.prefixPath,s);return await Ee.releaseAfterUseAsync(async()=>await yi.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 hQ(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var pQ=class{supports(e,t){return!!e.reference.startsWith(zr)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:zr});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 hQ(e,{protocol:zr,fetchOptions:t})}};var T8e=2,dQ=class{supportsDescriptor(e,t){return e.range.match(Bp)?!0:!!e.range.startsWith(zr)}supportsLocator(e,t){return!!e.reference.startsWith(zr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return Bp.test(e.range)&&(e=P.makeDescriptor(e,`${zr}${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}=iM(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:zr,source:n,selector:n,params:{locator:P.stringifyLocator(s)}})),{protocol:zr,fetchOptions:i.fetchOptions}),a=gi.makeHash(`${T8e}`,o).slice(0,6);return[nM(e,{parentLocator:s,path:n,folderHash:a,protocol:zr})]}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=a Line truncated
`);let a=x.join(this.context.cwd,nt.fileName);await M.changeFilePromise(a,`${JSON.stringify(o,null,2)}
`,{automaticNewlines:!0});let l=x.join(this.context.cwd,"README.md");if(M.existsSync(l)||await M.writeFilePromise(l,`# ${P.stringifyIdent(n.name)}
`),!i||i.cwd===this.context.cwd){let u=x.join(this.context.cwd,xt.lockfile);M.existsSync(u)||await M.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(B=>`${B}
`).join(""),h=x.join(this.context.cwd,".gitignore");M.existsSync(h)||await M.writeFilePromise(h,f);let p={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,wle.default)(p,t.get("initEditorConfig"));let C=`root = true
`;for(let[B,v]of Object.entries(p)){C+=`
[${B}]
`;for(let[D,T]of Object.entries(v))C+=`${D.replace(/[A-Z]/g,j=>`_${j.toLowerCase()}`)} = ${T}
`}let w=x.join(this.context.cwd,".editorconfig");M.existsSync(w)||await M.writeFilePromise(w,C),M.existsSync(x.join(this.context.cwd,".git"))||await mr.execvp("git",["init"],{cwd:this.context.cwd})}}};sg.paths=[["init"]],sg.usage=uo.Command.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 Yze={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:[sg]},jze=Yze;var fM={};ht(fM,{default:()=>Jze});var uA="portal:",gA="link:";var wQ=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 jt(Re.root),prefixPath:Re.dot,localPath:Re.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Re.root),prefixPath:x.relative(Re.root,s.localPath),localPath:Re.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 jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Re.dot,localPath:l}:{packageFs:new Qo(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Re.dot}}};var BQ=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}${U.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 Ee.releaseAfterUseAsync(async()=>await nt.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 bQ=class{supports(e,t){return!!e.reference.startsWith(gA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:gA});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:gA}),s=x.isAbsolute(n)?{packageFs:new jt(Re.root),prefixPath:Re.dot,localPath:Re.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Re.root),prefixPath:x.relative(Re.root,s.localPath),localPath:Re.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 jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Re.dot,discardFromLookup:!0,localPath:l}:{packageFs:new Qo(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Re.dot,discardFromLookup:!0}}};var QQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(gA)}supportsLocator(e,t){return!!e.reference.startsWith(gA)}shouldPersistResolution(e,t){return!1}bindDesc Line truncated
${u}, next tree:
${PE(a)}`);let f=vle(a);if(f)throw new Error(`${f}, after hoisting finished:
${PE(a)}`)}return s.debugLevel>=2&&console.log(PE(a)),e5e(a)},Wze=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},zze=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},ble=(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,w={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=w.dependencies.get(t);return B&&B.ident==w.ident&&w.dependencies.set(t,w),r.dependencies.set(w.name,w),w},Vze=(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},hM=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},dM=(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=t5e(o),l=Vze(o,a),c=r==o?new Map:n.fastLookupPossible?Wze(e):zze(e),u,g=!1,f=!1,h=new Map(Array.from(l.entries()).map(([C,w])=>[C,w[0]])),p=new Map;do{let C=Zze(r,e,t,c,h,l,i,p,n);C.isGraphChanged&&(f=!0),C.anotherRoundNeeded&&(g=!0),u=!1;for(let[w,B]of l)B.length>1&&!o.dependencies.has(w)&&(h.delete(w),B.shift(),h.set(w,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 w=dM(r,[...e,C],t,p,n);w.isGraphChanged&&(f=!0),w.anotherRoundNeeded&&(g=!0),t.delete(C.locator)}return{anotherRoundNeeded:g,isGraphChanged:f}},Xze=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},_ze=(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(w=>Ri(w)).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=!Xze(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: ${Ri(r.originalDependencies.get(i.name).locator)} at ${u}`)),C){let w=!1,B=n.get(i.name);if(w=!B||B.ident===i.ident,l&&!w&&(g=`- filled by: ${Ri(B.locator)} at ${u}`),w)for(let v=t.length-1;v>=1;v--){let T=t[v].dependencies.get(i.name);if(T&&T.ident!==i.ident){w=!1;let H=a.get(h);H||(H=new Set,a.set(h,H)),H.add(i.name),l&&(g=`- filled by ${Ri(T.locator)} at ${t.slice(0,v).map(j=>Ri(j.locator)).join("\u2192")}`);break}}C=w}if(C&&(C=s.get(i.name)===i.ident,l&&!C&&(g=`- filled by: ${Ri(o.get(i.name)[0])} at ${u}`)),C){let w=!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,w=!1,l&&(g=`- peer dependency ${Ri(H.locator)} from parent ${Ri(D.locator)} was not hoisted to ${u}`))),B.delete(T)}if(!w)break}C=w}if(C&&!c)for(let w of i.hoistedDependencies.values()){let B=n.get(w.name)||r.dependencies.get(w.name);if(!B||w.ident!==B.ident){C=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Ri(w.locator)}, available: ${Ri(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}},SQ=r=>`${r.name}@${r.locator}`,Zze=(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,SQ(T)],$=[...D,SQ(T)],V=new Map,W=new Map;for(let _ of hM(T)){let L=_ze(c,t,[c,...B,T],_,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupP Line truncated
${PE(r)}`)}let ge=hM(T);for(let _ of ge)if(Z.has(_)){let L=W.get(_);if((n.get(_.name)===_.ident||!T.reasons.has(_.name))&&L.isHoistable!==0&&T.reasons.set(_.name,L.reason),!_.isHoistBorder&&$.indexOf(SQ(_))<0){u.add(T);let ue=ble(T,_);h([...B,T],j,$,ue,C),u.delete(T)}}},p,C=new Set(hM(c)),w=Array.from(e).map(B=>SQ(B));do{p=C,C=new Set;for(let B of p){if(B.locator===c.locator||B.isHoistBorder)continue;let v=ble(c,B);h([],Array.from(t),w,v,C)}}while(C.size>0);return{anotherRoundNeeded:g,isGraphChanged:f}},vle=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=>Ri(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}`:""}`,w=`${g()}${p}`;u?u.ident!==c.ident&&e.push(`${w} - broken require promise for ${c.name}${C}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${w} - 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(`
`)},$ze=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:pM(t,n),ident:Ble(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:w,hoistPriority:B,dependencyKind:v}=c,D=e.hoistingLimits.get(u.locator);g={name:h,references:new Set([C]),locator:pM(p,C),ident:Ble(p,C),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(w),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 w of C.dependencies.values())C.peerNames.has(w.name)||p(w)}};p(g)}else for(let h of c.dependencies)l(h,g)};for(let c of r.dependencies)l(c,o);return o},CM=r=>r.substring(0,r.indexOf("@",1)),e5e=r=>{let e={name:r.name,identName:CM(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:CM(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},t5e=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},Ri=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}`},Qle=5e4,PE=r=>{let e=0,t=(n,s,o="")=>{if(e>Qle||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<a.length;c++){let u=a[c];if(!n.peerNames.has(u.name)&&u!==n){let g=n.reasons.get(u.name),f=CM(u.locator);l+=`${o}${c<a.length-1?"\u251C\u2500":"\u2514\u2500"}${(s.has(u)?">":"")+(f!==u.name?`a:${u.name}:`:"")+Ri(u.locator)+(g?` ${g}`:"")}
`,l+=t(u,s,`${o}${c<a.length-1?"\u2502 ":" "}`)}}return s.delete(n),l};return t(r,new Set)+(e>Qle?`
Tree is too large, part of the tree has been dunped
`:"")};var DE=(i=>(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(DE||{}),xle="node_modules",og="$wsroot$";var kE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=i5e(r,e),o=null;if(n.length===0){let a=Sle(t,{hoistingLimits:i});o=s5e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},oa=r=>`${r.name}@${r.reference}`,EM=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},Ple=(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=U.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return x.contains(i,n)===null},r5e=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=U.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=oa(f);if(l.has(p))return;l.add(p);let C=r.getPackageInformation(f);if(C){let w=h?oa(h):"";if(oa(f)!==w&&C.linkType==="SOFT"&&!mM(C,f,r,i)){let B=Dle(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=U.toPortablePath(h.packageLocation.slice(0,-1)).split(x.sep).slice(u.length),w=s;for(let B of C){let v=w.children.get(B);v||(v={children:new Map},w.children.set(B,v)),w=v}w.workspaceLocator=f}let g=(f,h)=>{if(f.workspaceLocator){let p=oa(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},i5e=(r,e)=>{let t=[],i=!1,n=new Map,s=r5e(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=U.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)=>`${oa(p)}:${h}`,f=(h,p,C,w,B,v,D,T)=>{var _,L;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 N=0;V?N=2:p.linkType==="SOFT"&&C.name.endsWith(og)&&(N=1),j={name:h,identName:C.name,reference:C.reference,dependencies:new Set,peerNames:N===1?new Set:p.packagePeers,dependencyKind:N},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 N=oa({name:w.identName,reference:w.reference}),ue=n.get(N)||new Set;n.set(N,ue),ue.add(j.name)}let Z=new Map(p.packageDependencies);if(e.project){let N=e.project.workspacesByCwd.get(U.toPortablePath(p.packageLocation.slice(0,-1)));if(N){let ue=new Set([...Array.from(N.manifest.peerDependencies.values(),we=>P.stringifyIdent(we)),...Array.from(N.manifest.peerDependenciesMeta.keys())]);for(let we of ue)Z.has(we)||(Z.set(we,v.get(we)||null),j.peerNames.add(we))}}let A=oa({name:C.name.replace(og,""),reference:C.reference}),ae=s.get(A);if(ae)for(let N of ae)Z.set(`${N.name}${og}`,N.reference);(p!==B||p.linkType!=="SOFT"||!V&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(D)))&&w.dependencies.add(j);let ge=C!==a&&p.linkType==="SOFT"&&!C.name.endsWith(og)&&!V;if(!$&&!ge){let N=new Map;for(let[ue,we]of Z)if(we!==null){let Te=r.getLocator(ue,we),Pe=r.getLocator(ue.replace(og,""),we),Le=r.getPackageInformation(Pe);if(Le===null)throw new Error("Assertion failed: Expected the package to have been registered");let se=mM(Le,Te,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Le.packageDependencies.size>0&&(i=!0);for(let[Ge,ie]of Le.packageDependencies)if(ie!==null){let Y=P.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ge}@${ie}`);if(oa(Y)!==oa(Te)){let he=Z.get(Ge);if(he){let re=P.parseLocator(Array.isArray(he)?`${he[0]}@${he[1]}`:`${Ge}@${he}`);Ple(re,Y)||t.push({messageName:71,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(Te.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${C.name}@${C.reference}Line truncated
`;for(let s=0,o=r.length;s<o;++s)n+=i+vQ(String(s),r[s],e,i).replace(/^ +/,""),s+1<o&&(n+=","),n+=`
`;return n+=t,n+="]",n}function A5e(r,e,t){let i=Object.keys(r),n="";n+="{";for(let s=0,o=i.length,a=0;s<o;++s){let l=i[s],c=r[l];typeof c>"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=vQ(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function l5e(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<l;++a){let c=i[a],u=r[c];typeof u>"u"||(o!==0&&(s+=",",s+=`
`),s+=n,s+=JSON.stringify(c),s+=": ",s+=vQ(c,u,e,n).replace(/^ +/g,""),o+=1)}return o!==0&&(s+=`
`),s+=t,s+="}",s}function vQ(r,e,t,i){let{next:n}=kle[t],s=n[r]||n["*"];return Rle(e,s,i)}function Rle(r,e,t){let{collapsed:i}=kle[e];return Array.isArray(r)?i?o5e(r,e,t):a5e(r,e,t):typeof r=="object"&&r!==null?i?A5e(r,e,t):l5e(r,e,t):JSON.stringify(r)}function Fle(r){return Rle(r,"TOP_LEVEL","")}function RE(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:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function c5e(r){let e=new Map,t=RE(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 u5e(r){return RE(r.fallbackPool||[],([e])=>e)}function g5e(r){let e=[];for(let[t,i]of RE(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 RE(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 RE(a.entries(),([w])=>w))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 FE(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:c5e(r),fallbackPool:u5e(r),packageRegistryData:g5e(r)}}var Lle=ne(Tle());function Ole(r,e){return[r?`${r}
`:"",`/* eslint-disable */
`,`"use strict";
`,`
`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) {
`,e.replace(/^/gm," "),`}
`,`
`,(0,Lle.default)()].join("")}function f5e(r){return JSON.stringify(r,null,2)}function h5e(r){return`'${r.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\
`)}'`}function p5e(r){return[`return hydrateRuntimeState(JSON.parse(${h5e(Fle(r))}), {basePath: basePath || __dirname});
`].join("")}function d5e(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 Mle(r){let e=FE(r),t=p5e(e);return Ole(r.shebang,t)}function Ule(r){let e=FE(r),t=d5e(r.dataLocation),i=Ole(r.shebang,t);return{dataFile:f5e(e),loaderFile:i}}var nce=J("fs");var sce=J("util");function yM(r,{basePath:e}){let t=U.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,w={name:g,reference:h},B=s.get(p.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&C,C||(B.locator=w)):s.set(p.packageLocation,{locator:w,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 ME=J("module");function bp(r,e){if(typeof r=="string")return r;if(r){let t,i;if(Array.isArray(r)){for(t=0;t<r.length;t++)if(i=bp(r[t],e))return i}else for(t in r)if(e.has(t))return bp(r[t],e)}}function ag(r,e,t){throw new Error(t?`No known conditions for "${e}" entry in "${r}" package`:`Missing "${e}" export in "${r}" package`)}function C5e(r,e){return e===r?".":e[0]==="."?e:e.replace(new RegExp("^"+r+"/"),"./")}function Kle(r,e=".",t={}){let{name:i,exports:n}=r;if(n){let{browser:s,require:o,unsafe:a,conditions:l=[]}=t,c=C5e(i,e);if(c[0]!=="."&&(c="./"+c),typeof n=="string")return c==="."?n:ag(i,c);let u=new Set(["default",...l]);a||u.add(o?"require":"import"),a||u.add(s?"browser":"node");let g,f,h=!1;for(g in n){h=g[0]!==".";break}if(h)return c==="."?bp(n,u)||ag(i,c,1):ag(i,c);if(f=n[c])return bp(f,u)||ag(i,c,1);for(g in n){if(f=g[g.length-1],f==="/"&&c.startsWith(g))return(f=bp(n[g],u))?f+c.substring(g.length):ag(i,c,1);if(f==="*"&&c.startsWith(g.slice(0,-1))&&c.substring(g.length-1).length>0)return(f=bp(n[g],u))?f.replace("*",c.substring(g.length-1)):ag(i,c,1)}return ag(i,c)}}var TQ=J("url"),SM=J("util");var go=J("url");var Wle=ne(J("assert"));var Hle=Array.isArray,NE=JSON.stringify,wM=Object.getOwnPropertyNames,Qp=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),BM=(r,e)=>RegExp.prototype.exec.call(r,e),bM=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),TE=(r,...e)=>String.prototype.endsWith.apply(r,e),Gle=(r,...e)=>String.prototype.includes.apply(r,e),Yle=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),xQ=(r,...e)=>String.prototype.indexOf.apply(r,e),jle=(r,...e)=>String.prototype.replace.apply(r,e),LE=(r,...e)=>String.prototype.slice.apply(r,e),fA=(r,...e)=>String.prototype.startsWith.apply(r,e),qle=Map,Jle=JSON.parse;function PQ(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var zle=PQ("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),QM=PQ("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),Vle=PQ("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!fA(t,"./");return e==="."?((0,Wle.default)(i===!1),`Invalid "exports" main target ${NE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${NE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),DQ=PQ("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error);var RQ=J("url");function Xle(r,e){let t=Object.create(null);for(let i=0;i<e.length;i++){let n=e[i];Qp(r,n)&&(t[n]=r[n])}return t}var kQ=new qle;function m5e(r,e,t,i){let n=kQ.get(r);if(n!==void 0)return n;let s=i(r);if(s===void 0){let h={pjsonPath:r,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return kQ.set(r,h),h}let o;try{o=Jle(s)}catch(h){throw new DQ(r,(t?`"${e}" from `:"")+(0,RQ.fileURLToPath)(t||e),h.message)}let{imports:a,main:l,name:c,type:u}=Xle(o,["imports","main","name","type"]),g=Qp(o,"exports")?o.exports:void 0;(typeof a!="object"||a===null)&&(a=void 0),typeof l!="string"&&(l=void 0),typeof c!="string"&&(c=void 0),u!=="module"&&u!=="commonjs"&&(u="none");let f={pjsonPath:r,exists:!0,main:l,name:c,type:u,exports:g,imports:a};return kQ.set(r,f),f}function _le(r,e){let t=new URL("./package.json",r);for(;;){let s=t.pathname;if(TE(s,"node_modules/p Line truncated
Require request: "${fe}"
Required by: ${le}
`,{request:fe,issuer:le});return U.toPortablePath(Y)}let Ge,ie=se.match(n);if(ie){if(!Ae)throw si("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:fe,issuer:le});let[,Y,he]=ie,re=_(Ae);if(!re){let pr=$(se,Ae);if(pr===!1)throw si("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 doesn't seem to be part of the Yarn-managed dependency tree).
Require path: "${fe}"
Required by: ${le}
`,{request:fe,issuer:le});return U.toPortablePath(pr)}let tt=B(re).packageDependencies.get(Y),Rt=null;if(tt==null&&re.name!==null){let pr=r.fallbackExclusionList.get(re.name);if(!pr||!pr.has(re.reference)){for(let ai=0,Os=c.length;ai<Os;++ai){let Bi=B(c[ai]).packageDependencies.get(Y);if(Bi!=null){t?Rt=Bi:tt=Bi;break}}if(r.enableTopLevelFallback&&tt==null&&Rt===null){let ai=r.fallbackPool.get(Y);ai!=null&&(Rt=ai)}}}let It=null;if(tt===null)if(v(re))It=si("MISSING_PEER_DEPENDENCY",`Your application tried to access ${Y} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${le}
`,{request:fe,issuer:le,dependencyName:Y});else{let pr=ge(Y,re);pr.every(di=>v(di))?It=si("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${Y} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${re.name}@${re.reference} (via ${le})
${pr.map(di=>`Ancestor breaking the chain: ${di.name}@${di.reference}
`).join("")}
`,{request:fe,issuer:le,issuerLocator:Object.assign({},re),dependencyName:Y,brokenAncestors:pr}):It=si("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${Y} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${re.name}@${re.reference} (via ${le})
${pr.map(di=>`Ancestor breaking the chain: ${di.name}@${di.reference}
`).join("")}
`,{request:fe,issuer:le,issuerLocator:Object.assign({},re),dependencyName:Y,brokenAncestors:pr})}else tt===void 0&&(!be&&NQ(se)?v(re)?It=si("UNDECLARED_DEPENDENCY",`Your application tried to access ${Y}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Y} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${le}
`,{request:fe,issuer:le,dependencyName:Y}):It=si("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${Y}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Y} isn't otherwise declared in ${re.name}'s dependencies, this makes the require call ambiguous and unsound.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${le}
`,{request:fe,issuer:le,issuerLocator:Object.assign({},re),dependencyName:Y}):v(re)?It=si("UNDECLARED_DEPENDENCY",`Your application tried to access ${Y}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${le}
`,{request:fe,issuer:le,dependencyName:Y}):It=si("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${Y}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${re.name}@${re.reference} (via ${le})
`,{request:fe,issuer:le,issuerLocator:Object.assign({},re),dependencyName:Y}));if(tt==null){if(Rt===null||It===null)throw It||new Error("Assertion failed: Expected an error to have been set");tt=Rt;let pr=It.message.replace(/\n.*/g,"");It.message=pr,!u.has(pr)&&i!==0&&(u.add(pr),process.emitWarning(It))}let Ur=Array.isArray(tt)?{name:tt[0],reference:tt[1]}:{name:Y,reference:tt},oi=B(Ur);if(!oi.packageLocation)throw si("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.
Required package: ${Ur.name}@${Ur.reference}${Ur.name!==fe?` (via "${fe}")`:""}
Required by: ${re.name}@${re.reference} (via ${le})
`,{request:fe,issuer:le,dependencyLocator:Object.assign({},Ur)});let pi=oi.packageLocation;he?Ge=x.join(pi,he):Ge=pi}else if(x.isAbsolute(se))Ge=x.normalize(se);else{if(!Ae)throw si("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:fe,issuer:le});let Y=x.resolve(Ae);Ae.match(o)?Ge=x.normalize(x.join(Y,se)):Ge=x.normalize(x.join(x.dirname(Y),se))}return x.normalize(Ge)}function ue(se,Ae,be=D){if(s.test(se))return Ae;let fe=T(Ae,be);return fe?x.normalize(fe):Ae}function we(se,{extensions:Ae=Object.keys(ME.Module._extensions)}={}){var le,Ge;let be=[],fe=H(se,be,{extensions:Ae});if(fe)return x.normalize(fe);{ice(be.map(he=>U.fromPortablePath(he)));let ie=fo(se),Y=_(se);if(Y){let{packageLocation:he}=B(Y),re=!0;try{e.fakeFs.accessSync(he)}catch(me){if((me==null?void 0:me.code)==="ENOENT")re=!1;else{let tt=((Ge=(le=me==null?void 0:me.message)!=null?le:me)!=null?Ge:"empty exception thrown").replace(/^[A-Z]/,Rt=>Rt.toLowerCase());throw si("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${tt}).
Missing package: ${Y.name}@${Y.reference}
Expected package location: ${fo(he)}
`,{unqualifiedPath:ie,extensions:Ae})}}if(!re){let me=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 si("QUALIFIED_PATH_RESOLUTION_FAILED",`${me}
Missing package: ${Y.name}@${Y.reference}
Expected package location: ${fo(he)}
`,{unqualifiedPath:ie,extensions:Ae})}}throw si("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed.
Source path: ${ie}
${be.map(he=>`Not found: ${fo(he)}
`).join("")}`,{unqualifiedPath:ie,extensions:Ae})}}function Te(se,Ae,be){var le;if(!Ae)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let fe=ece({name:se,base:(0,TQ.pathToFileURL)(U.fromPortablePath(Ae)),conditions:(le=be.conditions)!=null?le:D,readFileSyncFn:L});if(fe instanceof URL)return we(U.toPortablePath((0,TQ.fileURLToPath)(fe)),{extensions:be.extensions});if(fe.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return Pe(fe,Ae,be)}function Pe(se,Ae,be={}){try{if(se.startsWith("#"))return Te(se,Ae,be);let{considerBuiltins:fe,extensions:le,conditions:Ge}=be,ie=N(se,Ae,{considerBuiltins:fe});if(se==="pnpapi")return ie;if(ie===null)return null;let Y=()=>Ae!==null?V(Ae):!1,he=(!fe||!NQ(se))&&!Y()?ue(se,ie,Ge):ie;return we(he,{extensions:le})}catch(fe){throw Object.prototype.hasOwnProperty.call(fe,"pnpCode")&&Object.assign(fe.data,{request:fo(se),issuer:Ae&&fo(Ae)}),fe}}function Le(se){let Ae=x.normalize(se),be=br.resolveVirtual(Ae);return be!==Ae?be:null}return{VERSIONS:W,topLevel:Z,getLocator:(se,Ae)=>Array.isArray(Ae)?{name:Ae[0],reference:Ae[1]}:{name:se,reference:Ae},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let se=[];for(let[Ae,be]of f)for(let fe of be.keys())Ae!==null&&fe!==null&&se.push({name:Ae,reference:fe});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let be=U.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:be}},findPackageLocator:se=>_(U.toPortablePath(se)),resolveToUnqualified:w("resolveToUnqualified",(se,Ae,be)=>{let fe=Ae!==null?U.toPortablePath(Ae):null,le=N(U.toPortablePath(se),fe,be);return le===null?null:U.fromPortablePath(le)}),resolveUnqualified:w("resolveUnqualified",(se,Ae)=>U.fromPortablePath(we(U.toPortablePath(se),Ae))),resolveRequest:w("resolveRequest",(se,Ae,be)=>{let fe=Ae!==null?U.toPortablePath(Ae):null,le=Pe(U.toPortablePath(se),fe,be);return le===null?null:U.fromPortablePath(le)}),resolveVirtual:w("resolveVirtual",se=>{let Ae=Le(U.toPortablePath(se));return Ae!==null?U.fromPortablePath(Ae):null})}}var NBt=(0,sce.promisify)(nce.readFile);var oce=(r,e,t)=>{let i=FE(r),n=yM(i,{basePath:e}),s=U.join(e,xt.pnpCjs);return vM(n,{fakeFs:t,pnpapiResolution:s})};var PM=ne(Ace());var FM=ne(Xe());var ho={};ht(ho,{checkAndReportManifestCompatibility:()=>cce,checkManifestCompatibility:()=>lce,extractBuildScripts:()=>LQ,getExtractHint:()=>DM,hasBindingGyp:()=>kM});function lce(r){return P.isPackageCompatible(r,io.getArchitectureSet())}function cce(r,e,{configuration:t,report:i}){return lce(r)?!0:(i==null||i.reportWarningOnce(76,`${P.prettyLocator(t,r)} The ${io.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function LQ(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.`),[]):cce(r,"build",{configuration:i,report:n})?s:[]}var v5e=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function DM(r){return r.packageFs.getExtractHint({relevantExtensions:v5e})}function kM(r){let e=x.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var KE={};ht(KE,{getUnpluggedPath:()=>UE});function UE(r,{configuration:e}){return x.resolve(e.get("pnpUnpluggedFolder"),P.slugifyLocator(r))}var x5e=new Set([P.makeIdent(null,"nan").identHash,P.makeIdent(null,"node-gyp").identHash,P.makeIdent(null,"node-pre-gyp").identHash,P.makeIdent(null,"node-addon-api").identHash,P.makeIdent(null,"fsevents").identHash,P.makeIdent(null,"open").identHash,P.makeIdent(null,"opn").identHash]),Rl=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=Fl(t.project).cjs;if(!M.existsSync(i))throw new FM.UsageError(`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=Ee.getFactoryWithDefault(this.pnpCache,i,()=>Ee.dynamicRequire(i,{cachingStrategy:Ee.CachingStrategy.FsTime})),s={name:P.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new FM.UsageErLine truncated
`,s+=`# cause your node_modules installation to become invalidated.
`,s+=`
`,s+=`__metadata:
`,s+=` version: ${bce}
`,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)}:
`,s+=` locations:
`;for(let f of g.locations){let h=x.contains(r.cwd,f);if(h===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=` - ${JSON.stringify(h)}
`}if(g.aliases.length>0){s+=` aliases:
`;for(let f of g.aliases)s+=` - ${JSON.stringify(f)}
`}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,w]of h){let B=x.relative(x.join(f,Fr),w);s+=` ${JSON.stringify(C)}: ${JSON.stringify(B)}
`}}}}let l=r.cwd,c=x.join(l,Fr,Qce);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function HM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=x.join(t,Fr,Qce),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=bi(await M.readFilePromise(i,"utf8"));if(s.__metadata.version>bce)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,U.toPortablePath(h)),w=Ee.getMapWithDefault(l,C);for(let[B,v]of Object.entries(p))w.set(Gr(B),U.toPortablePath([C,Fr,v].join(x.sep)))}if(a.set(c,{target:Re.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),w=P.makeLocator(P.makeIdent(p,C),h),B=P.stringifyLocator(w);a.set(B,{target:Re.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Sce(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var xp=async(r,e)=>{if(r.split(x.sep).indexOf(Fr)<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 M.statPromise(r):await M.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await M.unlinkPromise(r);return}}let t=await M.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=x.join(r,Gr(i.name));i.isDirectory()?(i.name!==Fr||e&&e.innerLoop)&&await xp(n,{innerLoop:!0,contentsOnly:!1}):await M.unlinkPromise(n)}e.contentsOnly||await M.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Ice=4,UQ=(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(Fr),s=i.slice(0,n).join(x.sep),o=x.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Sce=(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=Ee.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=UQ(o,{skipPrefix:e}),c=Ee.getFactoryWithDefault(t,a,i);for(let u=0;u<l.length;++u){let g=l[u];if(g!=="."){let f=Ee.getFactoryWithDefault(c.children,g,i);c.children.set(g,f),c=f}u===l.length-1&&(c.locator=n,c.linkType=s.linkType)}}}return t},YM=async(r,e)=>{let t;try{process.platform==="win32"&&(t=await M.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await M.symlinkPromise(r,e,"junction"):await M.symlinkPromise(x.relative(x.dirname(e),r),e)};async function vce(r,e,t){let i=x.join(r,Gr(`${GM.default.randomBytes(16).toString("hex")}.tmp`));try{await M.writeFilePromise(i,t);try{await M.linkPromise(i,e)}catch{}}finally{await M.unlinkPromise(i)}}async function $5e({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===xce.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 M.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs<t.mtimeMs-X5e))if(await gi.checksumFile(a,{baseFs:M,algorithm:"sha1"})!==t.digest){let g=x.join(i,Gr(`${GM.default.randomBytes(16).toString("hex")}.tmp`));await M.renamePromise(a,g);let f=await n.readFilePromise(r);await M.writeFilePromise(g,f);try{await M.linkPromise(g,a),t.mtimeMs=new Date().getTime(),await M.unlinkPromise(g)}catch{}}else t.mtimeMs||(t.mtimeMs=Math.ceil(c.mtimeMs));await M.linkPromise(a,e),l=!0}catch{l=!1}if(!l){let c=await n.readFilePromise(r);await vce(i,a,c),t.mtimeMs=new Date().getTime();try{await M.linkPromise(a,e)}catch(u){u&&u.code&&u.code=="EXDEV"&&(s.value="hardlinks-local",await n.copyFilePromise(r,e))}}}else await n.copyFilePromise(r,e);let o=t.mode&511;o!==420&&await M.chmodPromise(e,o)}}var xce=(i=>(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(xce||{}),eVe=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=Re.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,w=x.join(u,h.name);if(h.isFile()){if(C={kind:"file",mode:(await t.lstatPromise(w)).mode},n.value==="hardlinks-global"){let B=await gi.checksumFile(w,{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(w)};else throw new Error(`Unsupported file type (file: ${w}, mode: 0o${await t.statSync(w).mode.toString(8).padStart(6,"0")})`);if(f.set(p,C),h.isDirectory()&&p!==Fr){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= Line truncated
`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:i}=await(0,VM.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(`
`),i}function YQ(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 Pp(r){return{["npm-otp"]:r}}var jQ=class{supports(e,t){if(!e.reference.startsWith(fr))return!1;let{selector:i,params:n}=P.parseRange(e.reference);return!(!Tce.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 Co(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await yi.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var qQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(fr)||!P.tryParseDescriptor(e.range.slice(fr.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(fr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=P.parseDescriptor(e.range.slice(fr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=P.parseDescriptor(e.range.slice(fr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var Lce=ne($r()),Oce=J("url");var Ns=class{supports(e,t){if(!e.reference.startsWith(fr))return!1;let i=new Oce.URL(e.reference);return!(!Lce.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 Co(Ns.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await Co(Ns.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await yi.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=hA(e.scope,{configuration:i}),s=Ns.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(fr.length));if(t===null)throw new ot(10,"The npm semver resolver got selected, but the version isn't semver");return`${Tl(e)}/-/${e.name}-${t}.tgz`}};var Mce=ne($r());var JQ=P.makeIdent(null,"node-gyp"),hVe=/\b(node-gyp|prebuild-install)\b/,WQ=class{supportsDescriptor(e,t){return e.range.startsWith(fr)?!!vt.validRange(e.range.slice(fr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(fr))return!1;let{selector:i}=P.parseRange(e.reference);return!!Mce.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(fr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(fr.length)}`);let s=await Co(Tl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=Ee.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new vt.SemVer(c);if(n.test(u))return u}catch{}return Ee.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,`${fr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ns.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(fr.length));if(n===nulLine truncated
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\`.
Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${rI.map(t=>`\`${t}\``).join(", ")}.
If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages.
If certain packages produce false positives for a particular environment, the \`--exclude\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \`npmAuditExcludePackages\` option.
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 <package>\` 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 Jl=ne(Xe()),q1=ne($r()),J1=J("util"),mg=class extends ve{constructor(){super(...arguments);this.fields=Jl.Option.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=Jl.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=Jl.Option.Rest()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i}=await He.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await Ue.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 Jl.UsageError(`Missing ${ee.pretty(t,"name",ee.Type.CODE)} field in ${U.fromPortablePath(x.join(T.cwd,xt.manifest))}`);u=P.makeDescriptor(T.manifest.name,"unknown")}else u=P.parseDescriptor(c);let g=Mt.getIdentUrl(u),f=W1(await Mt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:Mt.customPackageError})),h=Object.keys(f.versions).sort(q1.default.compareLoose),C=f["dist-tags"].latest||h[h.length-1],w=vt.validRange(u.range);if(w){let T=q1.default.maxSatisfying(h,w);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)}});J1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(`
`),this.context.stdout.write(`${(0,J1.inspect)(l,{depth:1/0,colors:!0,compact:!1})}
`);return a.exitCode()}};mg.paths=[["npm","info"]],mg.usage=Jl.Command.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 `@<range>` 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 [email protected]","yarn npm info [email protected]"],["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 W1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=W1(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=W1(r[t]);i&&(e[t]=i)}return e}else return r||null}var nI=ne(Xe()),Oge=ne(lE()),Eg=class extends ve{constructor(){super(...arguments);this.scope=nI.Option.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=nI.Option.Boolean("--publish",!1,{description:"Login to the publish registry"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=await IS({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Ue.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 Mt.put(a,o,{attemptedAs:o.name,configuration:t,registry:i,jsonResponse:!0,authType:Mt.AuthType.NO_AUTH});return await E9e(i,l.token,{configuration:t,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};Eg.paths=[["npm","login"]],Eg.usage=nI.Command.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 IS({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 rp(t,i)).manifest,{configuration:t}):or.getDefaultRegistry({configuration:t})}async function E9e(r,e,{configuration:t,scope:i}){let n=o=>a=>{let l=Ee.isIndexableObject(a)?a:{},c=l[o],u=Ee.isIndexableObject(c)?c:{};return{...l,[o]:{...u,npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await Ie.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 Line truncated
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 sI(r,e){let t=`/-/package${Mt.getIdentUrl(r)}/dist-tags`;return Mt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:Mt.customPackageError})}var bg=class extends ve{constructor(){super(...arguments);this.package=Qg.Option.String();this.tag=Qg.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.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(!Uge.default.valid(o))throw new Qg.UsageError(`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 Ue.start({configuration:t,stdout:this.context.stdout},async f=>{let h=await sI(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${Mt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await Mt.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()}};bg.paths=[["npm","tag","add"]],bg.usage=Qg.Command.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 [email protected] beta"]]});var Wl=ne(Xe());var Sg=class extends ve{constructor(){super(...arguments);this.package=Wl.Option.String();this.tag=Wl.Option.String()}async execute(){if(this.tag==="latest")throw new Wl.UsageError("The 'latest' tag cannot be removed.");let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.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 sI(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new Wl.UsageError(`${a} is not a tag of package ${l}`);return(await Ue.start({configuration:t,stdout:this.context.stdout},async g=>{let f=`/-/package${Mt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await Mt.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=Wl.Command.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 oI=ne(Xe()),vg=class extends ve{constructor(){super(...arguments);this.scope=oI.Option.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=oI.Option.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Ie.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 rp(t,this.context.cwd)).manifest,{configuration:t}):i=or.getDefaultRegistry({configuration:t}),(await Ue.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await Mt.get("/-/whoami",{configuration:t,registry:i,authType:Mt.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()}};vg.paths=[["npm","whoami"]],vg.usage=oI.Command.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 B9e={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:[Cg,mg,Eg,Ig,yg,bg,wg,Sg,vg]},b9e=B9e;var iU={};ht(iU,{default:()=>K9e,patchUtils:()=>xg});var xg={};ht(xg,{applyPatchFile:()=>wS,diffFolders:()=>tU,ensureUnpatchedDescriptor:()=>X1,extractPackageToDisk:()=>eU,extractPatchFlags:()=>Jge,isParentRequired:()=>$1,loadPatchFiles:()=>cI,makeDescriptor:()=>_1,makeLocator:()=>Z1,makePatchHash:()=>rU,parseDescriptor:()=>AI,parseLocator:()=>lI,parsePatchFile:()=>aI});var Q9e=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Yp(r){return x.relative(Re.root,x.resolve(Re.root,U.toPortablePath(r)))}function S9e(r){let e=r.trim().match(Q9e);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 v9e=420,x9e=493;var Kge=()=>({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}),P9e=r=>({header:S9e(r),parts:[]}),D9e={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function k9e(r){let e=[],t=Kge(),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=Kge()}for(let l=0;l<r.length;l++){let c=r[l];if(i==="parsing header")if(c.startsWith("@@"))i="parsing hunks",t.hunks=[],l-=1;else if(c.startsWith("diff --git ")){t&&t.diffLineFromPath&&a();let u=c.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/);if(!u)throw new Error(`Bad diff line: ${c}`);t.diffLineFromPath=u[1],t.diffLineToPath=u[2]}else if(c.startsWith("old mode "))t.oldMode=c.slice(9).trim();else if(c.startsWith("new mode "))t.newMode=c.slice(9).trim();else if(c.startsWith("deleted file mode "))t.deletedFileMode=c.slice(18).trim();else if(c.startsWith("new file mode "))t.newFileMode=c.slice(14).trim();else if(c.startsWith("rename from "))t.renameFrom=c.slice(12).trim();else if(c.startsWith("rename to "))t.renameTo=c.slice(10).trim();else if(c.startsWith("index ")){let u=c.match(/(\w+)\.\.(\w+)/);if(!u)continue;t.beforeHash=u[1],t.afterHash=u[2]}else c.startsWith("semver exclusivity ")?t.semverExclusivity=c.slice(19).trim():c.startsWith("--- ")?t.fromPath=c.slice(6) Line truncated
`)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":`
`):"";await e.mkdirpPromise(x.dirname(n.path),{chmod:493,utimes:[Dr.SAFE_TIME,Dr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,Dr.SAFE_TIME,Dr.SAFE_TIME)}break;case"patch":await qp(e,n.path,async()=>{await L9e(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(Hge(n.newMode)!==Hge(o))continue;await qp(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:Ee.assertNever(n);break}}function Hge(r){return(r&64)>0}function Gge(r){return r.replace(/\s+$/,"")}function T9e(r,e){return Gge(r)===Gge(e)}async function L9e({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),w=0,B=0,v=null;for(;w<=C;){if(w<=h&&(B=f-w,v=Yge(g,o,B),v!==null)){w=-w;break}if(w<=p&&(B=f+w,v=Yge(g,o,B),v!==null))break;w+=1}if(v===null)throw new jp(r.indexOf(g),g);a.push(v),l+=w,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:Ee.assertNever(f);break}await t.writeFilePromise(e,o.join(`
`),{mode:n})}function Yge(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||!T9e(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:Ee.assertNever(n.type);break}return i}var M9e=/^builtin<([^>]+)>$/;function V1(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=>U.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 AI(r){let{sourceItem:e,...t}=V1(r.range,P.parseDescriptor);return{...t,sourceDescriptor:e}}function lI(r){let{sourceItem:e,...t}=V1(r.reference,P.parseLocator);return{...t,sourceLocator:e}}function X1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=V1(r.range,P.parseDescriptor);return e}function jge({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 _1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return P.makeDescriptor(r,jge({parentLocator:e,sourceItem:t,patchPaths:i},P.stringifyDescriptor))}function Z1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return P.makeLocator(r,jge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},P.stringifyLocator))}function qge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(M9e);return s!==null?t(s[1]):x.isAbsolute(i)?r(i):e(i)}function Jge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function $1(r){return qge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function cI(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new jt(Re.root),prefixPath:x.relative(Re.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await Ee.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=Jge(o),l=await qge({onAbsolute:async()=>await M.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 eU(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 ni,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await M.mktempPromise(),c=x.join(l,"source"),u=x.join(l,"user"),g=x.join(l,".yarn-patch.json");return await Promise.all([M.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),M.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),M.writeJsonPromise(g,{locator:P.stringifyLocator(r),version:i.version})]),M.detachTemp(l),u}async function tU(r,e){let t=U.fromPortablePath(r).replace(/\\/g,"/"),i=U.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await mr.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:U.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)(${Ee.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${Ee.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(Ee.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(Ee.escapeRegExp(`${i}/`),"g"),"")}function rU(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=aI(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 gi.makeHash(`${3}`,...t).slice(0,6)}function Wge(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:Ee.assertNever(i.type)}}var BS=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}=lI(e),a=await cI(i,o,t),l=await M.mktempPromise(),c=x.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=P.getIdentVendorPath(e),f=await nn(),h=new Xr(c,{libzip:f,create:!0,level:t.project.configuration.get("compressionLevel")});await Ee.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 w=new Xr(c,{libzip:f,level:t.project.configuration.get("compressionLevel")}),B=new jt(x.resolve(Re.root,g),{baseFs:w});try{await wS(aI(p),{baseFs:B,version:s})}catch(v){if(!(v instanceof jp))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||Wge(v.hunk,{configuration:t.project.configuration,report:$})};if(w.discardAndClose(),C){t.report.reportWarningOnce(66,H,{reportExtra:j});continue}else throw new ot(66,H,j)}w.saveAndClose()}return new Xr(c,{libzip:f,level:t.project.configuration.get("compressionLevel")})}};var bS=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}=AI(e);return n.every(s=>!$1(s))?e:P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=AI(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}=AI(e),a=await cI(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=rU(a,l.version);return[Z1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=lI(e);return{...await t.resolver.resolve(i,t),...e}}};var zl=ne(Xe());var Pg=class extends ve{constructor(){super(...arguments);this.save=zl.Option.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=zl.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.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,U.toPortablePath(this.patchFolder)),o=x.join(s,"../source"),a=x.join(s,"../.yarn-patch.json");if(!M.existsSync(o))throw new zl.UsageError("The argument folder didn't get created by 'yarn patch'");let l=await tU(o,s),c=await M.readJsonPromise(a),u=P.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new zl.UsageError("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 M.mkdirPromise(g,{recursive:!0}),await M.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 w=P.isVirtualDescriptor(C)?P.devirtualizeDescriptor(C):C,B=X1(w),v=i.storedResolutions.get(B.descriptorHash);if(!v)throw new Error("Assertion failed: Expected the resolution Line truncated
${a.map(l=>`
- ${P.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new mA.UsageError("No package found in the project for the given locator");await Ue.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await eU(o,{cache:s,project:i});a.reportJson({locator:P.stringifyLocator(o),path:U.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,U.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${ee.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${U.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};Dg.paths=[["patch"]],Dg.usage=mA.Command.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 <path>` (with `<path>` 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 U9e={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:[Pg,Dg],fetchers:[BS],resolvers:[bS]},K9e=U9e;var aU={};ht(aU,{default:()=>Y9e});var QS=ne(Xe()),SS=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=sU(),n=t.project.installersCustomData.get(i);if(!n)throw new QS.UsageError(`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 QS.UsageError(`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=sU(),n=t.project.installersCustomData.get(i);if(!n)throw new QS.UsageError(`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 nU(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},nU=class{constructor(e){this.opts=e;this.asyncActions=new Ee.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return sU()}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=H9e(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 M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e,a={manifest:(u=await nt.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new nt,misc:{hasBindingGyp:ho.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=ho.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"&&(!zge(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 Vge(s);for(let[l,c]of t){let u=c;zge(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.locaLine truncated
/*!
* buildToken
* Builds OAuth token prefix (helper function)
*
* @name buildToken
* @function
* @param {GitUrl} obj The parsed Git url object.
* @return {String} token prefix
*/
/*!
* fill-range <https://github.com/jonschlinkert/fill-range>
*
* Copyright (c) 2014-present, Jon Schlinkert.
* Licensed under the MIT License.
*/
/*!
* is-extglob <https://github.com/jonschlinkert/is-extglob>
*
* Copyright (c) 2014-2016, Jon Schlinkert.
* Licensed under the MIT License.
*/
/*!
* is-glob <https://github.com/jonschlinkert/is-glob>
*
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*/
/*!
* is-number <https://github.com/jonschlinkert/is-number>
*
* Copyright (c) 2014-present, Jon Schlinkert.
* Released under the MIT License.
*/
/*!
* is-windows <https://github.com/jonschlinkert/is-windows>
*
* Copyright © 2015-2018, Jon Schlinkert.
* Released under the MIT License.
*/
/*!
* to-regex-range <https://github.com/micromatch/to-regex-range>
*
* Copyright (c) 2015-present, Jon Schlinkert.
* Released under the MIT License.
*/
/**
@license
Copyright (c) 2015, Rebecca Turner
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
/**
@license
Copyright Node.js contributors. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
*/
+925
View File
@@ -0,0 +1,925 @@
#!/usr/bin/env node
/* eslint-disable */
//prettier-ignore
(()=>{var t_e=Object.create;var vR=Object.defineProperty;var r_e=Object.getOwnPropertyDescriptor;var n_e=Object.getOwnPropertyNames;var i_e=Object.getPrototypeOf,s_e=Object.prototype.hasOwnProperty;var ve=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var Et=(t,e)=>()=>(t&&(e=t(t=0)),e);var _=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Vt=(t,e)=>{for(var r in e)vR(t,r,{get:e[r],enumerable:!0})},o_e=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of n_e(e))!s_e.call(t,a)&&a!==r&&vR(t,a,{get:()=>e[a],enumerable:!(o=r_e(e,a))||o.enumerable});return t};var Ze=(t,e,r)=>(r=t!=null?t_e(i_e(t)):{},o_e(e||!t||!t.__esModule?vR(r,"default",{value:t,enumerable:!0}):r,t));var Bi={};Vt(Bi,{SAFE_TIME:()=>D7,S_IFDIR:()=>iD,S_IFLNK:()=>sD,S_IFMT:()=>Uu,S_IFREG:()=>Dw});var Uu,iD,Dw,sD,D7,P7=Et(()=>{Uu=61440,iD=16384,Dw=32768,sD=40960,D7=456789e3});var nr={};Vt(nr,{EBADF:()=>Io,EBUSY:()=>a_e,EEXIST:()=>p_e,EINVAL:()=>c_e,EISDIR:()=>f_e,ENOENT:()=>u_e,ENOSYS:()=>l_e,ENOTDIR:()=>A_e,ENOTEMPTY:()=>g_e,EOPNOTSUPP:()=>d_e,EROFS:()=>h_e,ERR_DIR_CLOSED:()=>DR});function Tl(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function a_e(t){return Tl("EBUSY",t)}function l_e(t,e){return Tl("ENOSYS",`${t}, ${e}`)}function c_e(t){return Tl("EINVAL",`invalid argument, ${t}`)}function Io(t){return Tl("EBADF",`bad file descriptor, ${t}`)}function u_e(t){return Tl("ENOENT",`no such file or directory, ${t}`)}function A_e(t){return Tl("ENOTDIR",`not a directory, ${t}`)}function f_e(t){return Tl("EISDIR",`illegal operation on a directory, ${t}`)}function p_e(t){return Tl("EEXIST",`file already exists, ${t}`)}function h_e(t){return Tl("EROFS",`read-only filesystem, ${t}`)}function g_e(t){return Tl("ENOTEMPTY",`directory not empty, ${t}`)}function d_e(t){return Tl("EOPNOTSUPP",`operation not supported, ${t}`)}function DR(){return Tl("ERR_DIR_CLOSED","Directory handle was closed")}var oD=Et(()=>{});var wa={};Vt(wa,{BigIntStatsEntry:()=>qd,DEFAULT_MODE:()=>SR,DirEntry:()=>PR,StatEntry:()=>Hd,areStatsEqual:()=>xR,clearStats:()=>aD,convertToBigIntStats:()=>y_e,makeDefaultStats:()=>b7,makeEmptyStats:()=>m_e});function b7(){return new Hd}function m_e(){return aD(b7())}function aD(t){for(let e in t)if(Object.hasOwn(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):bR.types.isDate(r)&&(t[e]=new Date(0))}return t}function y_e(t){let e=new qd;for(let r in t)if(Object.hasOwn(t,r)){let o=t[r];typeof o=="number"?e[r]=BigInt(o):bR.types.isDate(o)&&(e[r]=new Date(o))}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 xR(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,o=e;return!(r.atimeNs!==o.atimeNs||r.mtimeNs!==o.mtimeNs||r.ctimeNs!==o.ctimeNs||r.birthtimeNs!==o.birthtimeNs)}var bR,SR,PR,Hd,qd,kR=Et(()=>{bR=Ze(ve("util")),SR=33188,PR=class{constructor(){this.name="";this.path="";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}},Hd=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=SR;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}},qd=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(SR);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){reLine truncated
`).length,o=e.length-r;return r>o?`\r
`:`
`}function L0(t,e){return e.replace(/\r?\n/g,Q_e(t))}var L7,M7,hf,_u,M0=Et(()=>{L7=ve("crypto"),M7=ve("os");RR();Ia();hf=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let o=[e];for(;o.length>0;){let a=o.shift();if((await this.lstatPromise(a)).isDirectory()){let u=await this.readdirPromise(a);if(r)for(let A of u.sort())o.push(this.pathUtils.join(a,A));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(e,{algorithm:r="sha512"}={}){let o=await this.openPromise(e,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,L7.createHash)(r),A=0;for(;(A=await this.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await this.closePromise(o)}}async removePromise(e,{recursive:r=!0,maxRetries:o=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(u=>this.removePromise(this.pathUtils.resolve(e,u))))}for(let n=0;n<=o;n++)try{await this.rmdirPromise(e);break}catch(u){if(u.code!=="EBUSY"&&u.code!=="ENOTEMPTY")throw u;n<o&&await new Promise(A=>setTimeout(A,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let o;try{o=this.lstatSync(e)}catch(a){if(a.code==="ENOENT")return;throw a}if(o.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{await this.mkdirPromise(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&await this.chmodPromise(A,r),o!=null)await this.utimesPromise(A,o[0],o[1]);else{let p=await this.statPromise(this.pathUtils.dirname(A));await this.utimesPromise(A,p.atime,p.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{this.mkdirSync(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&this.chmodSync(A,r),o!=null)this.utimesSync(A,o[0],o[1]);else{let p=this.statSync(this.pathUtils.dirname(A));this.utimesSync(A,p.atime,p.mtime)}}}return n}async copyPromise(e,r,{baseFs:o=this,overwrite:a=!0,stableSort:n=!1,stableTime:u=!1,linkStrategy:A=null}={}){return await k7(this,e,o,r,{overwrite:a,stableSort:n,stableTime:u,linkStrategy:A})}copySync(e,r,{baseFs:o=this,overwrite:a=!0}={}){let n=o.lstatSync(r),u=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let p=o.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(e,h),o.pathUtils.join(r,h),{baseFs:o,overwrite:a})}else if(n.isFile()){if(!u||a){u&&this.removeSync(e);let p=o.readFileSync(r);this.writeFileSync(e,p)}}else if(n.isSymbolicLink()){if(!u||a){u&&this.removeSync(e);let p=o.readlinkSync(r);this.symlinkSync(lD(this.pathUtils,p),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let A=n.mode&511;this.chmodSync(e,A)}async changeFilePromise(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,o):this.changeFileTextPromise(e,r,o)}async changeFileBufferPromise(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:o})}async changeFileTextPromise(e,r,{automaticNewlines:o,mode:a}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch{}let u=o?L0(n,r):r;n!==u&&await this.writeFilePromise(e,u,{mode:a})}changeFileSync(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,o):this.changeFileTextSync(e,r,o)}changeFileBufferSync(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:o})}changeFileTextSync(e,r,{automaticNewlines:o=!1,mode:a}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch{}let u=o?L0(n,r):r;n!==u&&this.writeFileSync(e,u,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(o){if(o.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw o}}moveSync(e,r){try{this.renameSync(e,r)}catch(o){if(o.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw o}}async lockPromise(e,r){let o=`${e}.flock`,a=1e3/60,n=Date.now(),u=null,A=async()=>{let p;try{[p]=await this.readJsonPromise(o)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;u===null;)try{u=await this.openPromise(o,"wx")}catch(p){if(p.code==="EEXIST"){if(!await A())try{await this.unlinkPromise(o);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(h=>setTimeout(h,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${o})`)}else throw Line truncated
`)}writeJsonSync(e,r,{compact:o=!1}={}){let a=o?0:2;return this.writeFileSync(e,`${JSON.stringify(r,null,a)}
`)}async preserveTimePromise(e,r){let o=await this.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await this.lutimesPromise(e,o.atime,o.mtime)}async preserveTimeSync(e,r){let o=this.lstatSync(e),a=r();typeof a<"u"&&(e=a),this.lutimesSync(e,o.atime,o.mtime)}},_u=class extends hf{constructor(){super(V)}}});var Ss,gf=Et(()=>{M0();Ss=class extends hf{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,r,o){return this.baseFs.openPromise(this.mapToBase(e),r,o)}openSync(e,r,o){return this.baseFs.openSync(this.mapToBase(e),r,o)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,o,a,n){return await this.baseFs.readPromise(e,r,o,a,n)}readSync(e,r,o,a,n){return this.baseFs.readSync(e,r,o,a,n)}async writePromise(e,r,o,a,n){return typeof r=="string"?await this.baseFs.writePromise(e,r,o):await this.baseFs.writePromise(e,r,o,a,n)}writeSync(e,r,o,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r,o):this.baseFs.writeSync(e,r,o,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}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,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,o){return this.baseFs.fchownPromise(e,r,o)}fchownSync(e,r,o){return this.baseFs.fchownSync(e,r,o)}async chownPromise(e,r,o){return this.baseFs.chownPromise(this.mapToBase(e),r,o)}chownSync(e,r,o){return this.baseFs.chownSync(this.mapToBase(e),r,o)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,o=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),o)}copyFileSync(e,r,o=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),o)}async appendFilePromise(e,r,o){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,o)}appendFileSync(e,r,o){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,o)}async writeFilePromise(e,r,o){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,o)}writeFileSync(e,r,o){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,o)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,o){return this.baseFs.utimesPromise(this.mapToBase(e),r,o)}utimesSync(e,r,o){return this.baseFs.utimesSync(this.mapToBase(e),r,o)}async lutimesPromise(e,r,o){return this.baseFs.lutimesPromise(this.mapToBase(e),r,o)}lutimesSync(e,r,o){return this.baseFs.lutimesSync(this.mapToBase(e),r,o)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async rmPromise(e,r){return this.baseFs.rmPromise(this.mapToBase(e),r)}rmSync(e,r){return this.baseFs.rmSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkP Line truncated
`,Vn=Br(`\\
`,!1),Mn=function(){return""},Ti="\\",On=Br("\\",!1),_i=/^[\\$"`]/,ir=Is(["\\","$",'"',"`"],!1,!1),Me=function(N){return N},ii="\\a",Ha=Br("\\a",!1),hr=function(){return"a"},Ac="\\b",fu=Br("\\b",!1),fc=function(){return"\b"},El=/^[Ee]/,vA=Is(["E","e"],!1,!1),pu=function(){return"\x1B"},Ie="\\f",Tt=Br("\\f",!1),pc=function(){return"\f"},Hi="\\n",hu=Br("\\n",!1),Yt=function(){return`
`},Cl="\\r",DA=Br("\\r",!1),lp=function(){return"\r"},hc="\\t",PA=Br("\\t",!1),Qn=function(){return" "},hi="\\v",gc=Br("\\v",!1),bA=function(){return"\v"},aa=/^[\\'"?]/,Ni=Is(["\\","'",'"',"?"],!1,!1),_o=function(N){return String.fromCharCode(parseInt(N,16))},Xe="\\x",lo=Br("\\x",!1),dc="\\u",gu=Br("\\u",!1),qi="\\U",du=Br("\\U",!1),SA=function(N){return String.fromCodePoint(parseInt(N,16))},qa=/^[0-7]/,mc=Is([["0","7"]],!1,!1),ds=/^[0-9a-fA-f]/,Ht=Is([["0","9"],["a","f"],["A","f"]],!1,!1),Fn=o0(),Ei="{}",la=Br("{}",!1),co=function(){return"{}"},Hs="-",ca=Br("-",!1),ua="+",Ho=Br("+",!1),Ci=".",ms=Br(".",!1),ys=function(N,K,re){return{type:"number",value:(N==="-"?-1:1)*parseFloat(K.join("")+"."+re.join(""))}},Es=function(N,K){return{type:"number",value:(N==="-"?-1:1)*parseInt(K.join(""))}},qs=function(N){return{type:"variable",...N}},Un=function(N){return{type:"variable",name:N}},Pn=function(N){return N},Cs="*",We=Br("*",!1),tt="/",Bt=Br("/",!1),or=function(N,K,re){return{type:K==="*"?"multiplication":"division",right:re}},ee=function(N,K){return K.reduce((re,he)=>({left:re,...he}),N)},ye=function(N,K,re){return{type:K==="+"?"addition":"subtraction",right:re}},Le="$((",ft=Br("$((",!1),pt="))",Nt=Br("))",!1),rr=function(N){return N},$r="$(",ji=Br("$(",!1),rs=function(N){return N},bi="${",qo=Br("${",!1),xA=":-",kA=Br(":-",!1),cp=function(N,K){return{name:N,defaultValue:K}},e0=":-}",mu=Br(":-}",!1),t0=function(N){return{name:N,defaultValue:[]}},yu=":+",uo=Br(":+",!1),QA=function(N,K){return{name:N,alternativeValue:K}},yc=":+}",Aa=Br(":+}",!1),r0=function(N){return{name:N,alternativeValue:[]}},Ec=function(N){return{name:N}},hd="$",n0=Br("$",!1),$n=function(N){return e.isGlobPattern(N)},up=function(N){return N},i0=/^[a-zA-Z0-9_]/,FA=Is([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),js=function(){return s0()},Eu=/^[$@*?#a-zA-Z0-9_\-]/,ja=Is(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),Gi=/^[()}<>$|&; \t"']/,fa=Is(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),Cu=/^[<>&; \t"']/,ws=Is(["<",">","&",";"," "," ",'"',"'"],!1,!1),Cc=/^[ \t]/,wc=Is([" "," "],!1,!1),Y=0,Dt=0,wl=[{line:1,column:1}],Si=0,Ic=[],ct=0,wu;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function s0(){return t.substring(Dt,Y)}function tw(){return Bc(Dt,Y)}function RA(N,K){throw K=K!==void 0?K:Bc(Dt,Y),c0([l0(N)],t.substring(Dt,Y),K)}function Ap(N,K){throw K=K!==void 0?K:Bc(Dt,Y),gd(N,K)}function Br(N,K){return{type:"literal",text:N,ignoreCase:K}}function Is(N,K,re){return{type:"class",parts:N,inverted:K,ignoreCase:re}}function o0(){return{type:"any"}}function a0(){return{type:"end"}}function l0(N){return{type:"other",description:N}}function fp(N){var K=wl[N],re;if(K)return K;for(re=N-1;!wl[re];)re--;for(K=wl[re],K={line:K.line,column:K.column};re<N;)t.charCodeAt(re)===10?(K.line++,K.column=1):K.column++,re++;return wl[N]=K,K}function Bc(N,K){var re=fp(N),he=fp(K);return{start:{offset:N,line:re.line,column:re.column},end:{offset:K,line:he.line,column:he.column}}}function Ct(N){Y<Si||(Y>Si&&(Si=Y,Ic=[]),Ic.push(N))}function gd(N,K){return new _0(N,null,null,K)}function c0(N,K,re){return new _0(_0.buildMessage(N,K),N,K,re)}function u0(){var N,K,re;for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();return K!==r?(re=Iu(),re===r&&(re=null),re!==r?(Dt=N,K=n(re),N=K):(Y=N,N=r)):(Y=N,N=r),N}function Iu(){var N,K,re,he,ze;if(N=Y,K=Bu(),K!==r){for(re=[],he=Qt();he!==r;)re.push(he),he=Qt();re!==r?(he=A0(),he!==r?(ze=dd(),ze===r&&(ze=null),ze!==r?(Dt=N,K=u(K,he,ze),N=K):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;if(N===r)if(N=Y,K=Bu(),K!==r){for(re=[],he=Qt();he!==r;)re.push(he),he=Qt();re!==r?(he=A0(),he===r&&(he=null),he!==r?(Dt=N,K=A(K,he),N=K):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;return N}function dd(){var N,K,re,he,ze;for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(re=Iu(),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();he!==r?(Dt=N,K=p(re),N=K):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r;return N}function A0(){var N;return t.charCodeAt(Y)===59?(N=h,Y++):(N=r,ct===0&&Ct(E)),N===r&&(t.charCodeAt(Y)===38?(N=I,Y++):(N=r,ct===0&&Ct(v))),N}function Bu(){var N,K,re;return N=Y,K=pa(),K!==r?(re=rw(),re===r&&(re=null),re!==r?(Dt=N,K=x(K,re),N=K):(Y=N,N=r)):(Y=N,N=r),N}function rw(){var N,K,re,he,ze,mt,fr;for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(re=md(),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();if(he!==r)if(ze=Bu(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();mt!==r?(Dt=N,K=C(re,ze),N=K):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;else Y=N,N=r;return N}function md(){var N;return t.substr(Y,2)===R?(N=R,Y+=2):(N=r,ct===0&&Ct(L)),N===r&&(t.substr(Y,2)===U?(N=U,Y+=2):(N=r,ct===0&&Ct(z))),N}function pa(){var N,K,re;return N=Y,K=f0(),K!==r?(re=vc(),re===r&&(re=null),re!==r?(Dt=N,K=te(K,re),N=K):(Y=N,N=r)):(Y=N,N=r),N}function vc(){var N,K,re,he,ze,mt,fr;for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)Line truncated
`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),u8e=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(eW,([t,e])=>[t,`"$'${e}'"`])]),tW=t=>eW.get(t)??`\\x${t.charCodeAt(0).toString(16).padStart(2,"0")}`,A8e=t=>u8e.get(t)??`"$'${tW(t)}'"`});var iW=_((HSt,nW)=>{"use strict";function f8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function q0(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,q0)}f8e(q0,Error);q0.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I<h.parts.length;I++)E+=h.parts[I]instanceof Array?n(h.parts[I][0])+"-"+n(h.parts[I][1]):n(h.parts[I]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function u(h){return r[h.type](h)}function A(h){var E=new Array(h.length),I,v;for(I=0;I<h.length;I++)E[I]=u(h[I]);if(E.sort(),E.length>0){for(I=1,v=1;I<E.length;I++)E[I-1]!==E[I]&&(E[v]=E[I],v++);E.length=v}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function p8e(t,e){e=e!==void 0?e:{};var r={},o={resolution:Fe},a=Fe,n="/",u=we("/",!1),A=function(Ue,S){return{from:Ue,descriptor:S}},p=function(Ue){return{descriptor:Ue}},h="@",E=we("@",!1),I=function(Ue,S){return{fullName:Ue,description:S}},v=function(Ue){return{fullName:Ue}},x=function(){return Be()},C=/^[^\/@]/,R=Ae(["/","@"],!0,!1),L=/^[^\/]/,U=Ae(["/"],!0,!1),z=0,te=0,ae=[{line:1,column:1}],le=0,ce=[],Ce=0,de;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function Be(){return t.substring(te,z)}function Ee(){return ht(te,z)}function g(Ue,S){throw S=S!==void 0?S:ht(te,z),Te([xe(Ue)],t.substring(te,z),S)}function me(Ue,S){throw S=S!==void 0?S:ht(te,z),rt(Ue,S)}function we(Ue,S){return{type:"literal",text:Ue,ignoreCase:S}}function Ae(Ue,S,w){return{type:"class",parts:Ue,inverted:S,ignoreCase:w}}function ne(){return{type:"any"}}function Z(){return{type:"end"}}function xe(Ue){return{type:"other",description:Ue}}function Ne(Ue){var S=ae[Ue],w;if(S)return S;for(w=Ue-1;!ae[w];)w--;for(S=ae[w],S={line:S.line,column:S.column};w<Ue;)t.charCodeAt(w)===10?(S.line++,S.column=1):S.column++,w++;return ae[Ue]=S,S}function ht(Ue,S){var w=Ne(Ue),b=Ne(S);return{start:{offset:Ue,line:w.line,column:w.column},end:{offset:S,line:b.line,column:b.column}}}function H(Ue){z<le||(z>le&&(le=z,ce=[]),ce.push(Ue))}function rt(Ue,S){return new q0(Ue,null,null,S)}function Te(Ue,S,w){return new q0(q0.buildMessage(Ue,S),Ue,S,w)}function Fe(){var Ue,S,w,b;return Ue=z,S=ke(),S!==r?(t.charCodeAt(z)===47?(w=n,z++):(w=r,Ce===0&&H(u)),w!==r?(b=ke(),b!==r?(te=Ue,S=A(S,b),Ue=S):(z=Ue,Ue=r)):(z=Ue,Ue=r)):(z=Ue,Ue=r),Ue===r&&(Ue=z,S=ke(),S!==r&&(te=Ue,S=p(S)),Ue=S),Ue}function ke(){var Ue,S,w,b;return Ue=z,S=Ye(),S!==r?(t.charCodeAt(z)===64?(w=h,z++):(w=r,Ce===0&&H(E)),w!==r?(b=et(),b!==r?(te=Ue,S=I(S,b),Ue=S):(z=Ue,Ue=r)):(z=Ue,Ue=r)):(z=Ue,Ue=r),Ue===r&&(Ue=z,S=Ye(),S!==r&&(te=Ue,S=v(S)),Ue=S),Ue}function Ye(){var Ue,S,w,b,y;return Ue=z,t.charCodeAt(z)===64?(S=h,z++):(S=r,Ce===0&&H(E)),S!==r?(w=be(),w!==r?(t.charCodeAt(z)===47?(b=n,z++):(b=r,Ce===0&&H(u)),b!==r?(y=be(),y!==r?(te=Ue,S=x(),Ue=S):(z=Ue,Ue=r)):(z=Ue,Ue=r)):(z=Ue,Ue=r)):(z=Ue,Ue=r),Ue===r&&(Ue=z,S=be(),S!==r&&(te=Ue,S=x()),Ue=S),Ue}function be(){var Ue,S,w;if(Ue=z,S=[],C.test(t.charAt(z))?(w=t.charAt(z),z++):(w=r,Ce===0&&H(R)),w!==r)for(;w!==r;)S.push(w),C.test(t.charAt(z))?(w=t.charAt(z),z++):(w=r,Ce===0&&H(R));else S=r;return S!==r&&(te=Ue,S=x()),Ue=S,Ue}function et(){var Ue,S,w;if(Ue=z,S=[],L.test(t.charAt(z))?(w=t.charAt(z),z++):(w=r,Ce===0&&H(U)),w!==r)for(;w!==r;)S.push(w),L.test(t.charAt(z))?(w=t.charAt(z),z++):(w=r,Ce===0&&H(U));else S=r;return S!==r&&(te=Ue,S=x()),Ue=S,Ue}if(de=a(),de!==r&&z===t.length)return de;throw de!==r&&z<t.length&&H(Z()),Te(ce,le<t.length?t.charAt(le):null,le<t.length?ht(le,le+1):ht(le,le))}nW.exports={SyntaxError:q0,parse:p8e}});function BD(t){let e=t.match(/^\*{1,2}\/(.*Line truncated
\x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){o=" ... ",a+=5;break}for(n="",u=this.position;u<this.buffer.length&&`\0\r
\x85\u2028\u2029`.indexOf(this.buffer.charAt(u))===-1;)if(u+=1,u-this.position>r/2-1){n=" ... ",u-=5;break}return A=this.buffer.slice(a,u),cW.repeat(" ",e)+o+A+n+`
`+cW.repeat(" ",e+this.position-a+o.length)+"^"};$R.prototype.toString=function(e){var r,o="";return this.name&&(o+='in "'+this.name+'" '),o+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(o+=`:
`+r)),o};uW.exports=$R});var ls=_((WSt,pW)=>{"use strict";var fW=Xd(),E8e=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],C8e=["scalar","sequence","mapping"];function w8e(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(o){e[String(o)]=r})}),e}function I8e(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(E8e.indexOf(r)===-1)throw new fW('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=w8e(e.styleAliases||null),C8e.indexOf(this.kind)===-1)throw new fW('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}pW.exports=I8e});var Y0=_((KSt,gW)=>{"use strict";var hW=G0(),DD=Xd(),B8e=ls();function eT(t,e,r){var o=[];return t.include.forEach(function(a){r=eT(a,e,r)}),t[e].forEach(function(a){r.forEach(function(n,u){n.tag===a.tag&&n.kind===a.kind&&o.push(u)}),r.push(a)}),r.filter(function(a,n){return o.indexOf(n)===-1})}function v8e(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function o(a){t[a.kind][a.tag]=t.fallback[a.tag]=a}for(e=0,r=arguments.length;e<r;e+=1)arguments[e].forEach(o);return t}function Zd(t){this.include=t.include||[],this.implicit=t.implicit||[],this.explicit=t.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&e.loadKind!=="scalar")throw new DD("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=eT(this,"implicit",[]),this.compiledExplicit=eT(this,"explicit",[]),this.compiledTypeMap=v8e(this.compiledImplicit,this.compiledExplicit)}Zd.DEFAULT=null;Zd.create=function(){var e,r;switch(arguments.length){case 1:e=Zd.DEFAULT,r=arguments[0];break;case 2:e=arguments[0],r=arguments[1];break;default:throw new DD("Wrong number of arguments for Schema.create function")}if(e=hW.toArray(e),r=hW.toArray(r),!e.every(function(o){return o instanceof Zd}))throw new DD("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!r.every(function(o){return o instanceof B8e}))throw new DD("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new Zd({include:e,explicit:r})};gW.exports=Zd});var mW=_((VSt,dW)=>{"use strict";var D8e=ls();dW.exports=new D8e("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var EW=_((zSt,yW)=>{"use strict";var P8e=ls();yW.exports=new P8e("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var wW=_((JSt,CW)=>{"use strict";var b8e=ls();CW.exports=new b8e("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var PD=_((XSt,IW)=>{"use strict";var S8e=Y0();IW.exports=new S8e({explicit:[mW(),EW(),wW()]})});var vW=_((ZSt,BW)=>{"use strict";var x8e=ls();function k8e(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function Q8e(){return null}function F8e(t){return t===null}BW.exports=new x8e("tag:yaml.org,2002:null",{kind:"scalar",resolve:k8e,construct:Q8e,predicate:F8e,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var PW=_(($St,DW)=>{"use strict";var R8e=ls();function T8e(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function N8e(t){return t==="true"||t==="True"||t==="TRUE"}function L8e(t){return Object.prototype.toString.call(t)==="[object Boolean]"}DW.exports=new R8e("tag:yaml.org,2002:bool",{kind:"scalar",resolve:T8e,construct:N8e,predicate:L8e,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var SW=_((ext,bW)=>{"use strict";var M8e=G0(),O8e=ls();function U8e(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function _8e(t){return 48<=t&&t<=55}function H8e(t){return 48<=t&&t<=57}function q8e(t){if(t===null)return!1;var e=t.length,r=0,o=!1,a;if(!e)return!1;if(a=t[r],(a==="-"||a==="+")&&(a=t[++r]),a==="0"){if(r+1===e)return!0;if(a=t[++r],a==="b"){for(r++;r<e;r++)if(a=t[r],a!=="_"){if(a!=="0"&&a!=="1")return!1;o=!0}return o&&a!=="_"}if(a==="x"){for(r++;r<e;r++)if(a=t[r],a!=="_"){if(!U8e(t.charCodeAt(r)))return!1;o=!0}return o&&a!=="_"}for(;r<e;r++)if(a=t[r],a!=="_"){if(!_8e(t.charCodeAt(r)))return!1;o=!0}return o&&a!=="_"}if(a==="_")return!1;for(;r<e;r++)if(a=t[r],a!=="_"){if(a===":")break;if(!H8e(t.charCodeAt(r)))return!1;o=!0}return!o||a==="_"?!1:a!==":"?!0:/^(:[0-5]?[0-9])+$/.test(t.slice(r)) Line truncated
\r`;function aHe(t){if(t===null)return!1;var e,r,o=0,a=t.length,n=nT;for(r=0;r<a;r++)if(e=n.indexOf(t.charAt(r)),!(e>64)){if(e<0)return!1;o+=6}return o%8===0}function lHe(t){var e,r,o=t.replace(/[\r\n=]/g,""),a=o.length,n=nT,u=0,A=[];for(e=0;e<a;e++)e%4===0&&e&&(A.push(u>>16&255),A.push(u>>8&255),A.push(u&255)),u=u<<6|n.indexOf(o.charAt(e));return r=a%4*6,r===0?(A.push(u>>16&255),A.push(u>>8&255),A.push(u&255)):r===18?(A.push(u>>10&255),A.push(u>>2&255)):r===12&&A.push(u>>4&255),W0?W0.from?W0.from(A):new W0(A):A}function cHe(t){var e="",r=0,o,a,n=t.length,u=nT;for(o=0;o<n;o++)o%3===0&&o&&(e+=u[r>>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]),r=(r<<8)+t[o];return a=n%3,a===0?(e+=u[r>>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]):a===2?(e+=u[r>>10&63],e+=u[r>>4&63],e+=u[r<<2&63],e+=u[64]):a===1&&(e+=u[r>>2&63],e+=u[r<<4&63],e+=u[64],e+=u[64]),e}function uHe(t){return W0&&W0.isBuffer(t)}HW.exports=new oHe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:aHe,construct:lHe,predicate:uHe,represent:cHe})});var GW=_((lxt,jW)=>{"use strict";var AHe=ls(),fHe=Object.prototype.hasOwnProperty,pHe=Object.prototype.toString;function hHe(t){if(t===null)return!0;var e=[],r,o,a,n,u,A=t;for(r=0,o=A.length;r<o;r+=1){if(a=A[r],u=!1,pHe.call(a)!=="[object Object]")return!1;for(n in a)if(fHe.call(a,n))if(!u)u=!0;else return!1;if(!u)return!1;if(e.indexOf(n)===-1)e.push(n);else return!1}return!0}function gHe(t){return t!==null?t:[]}jW.exports=new AHe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:hHe,construct:gHe})});var WW=_((cxt,YW)=>{"use strict";var dHe=ls(),mHe=Object.prototype.toString;function yHe(t){if(t===null)return!0;var e,r,o,a,n,u=t;for(n=new Array(u.length),e=0,r=u.length;e<r;e+=1){if(o=u[e],mHe.call(o)!=="[object Object]"||(a=Object.keys(o),a.length!==1))return!1;n[e]=[a[0],o[a[0]]]}return!0}function EHe(t){if(t===null)return[];var e,r,o,a,n,u=t;for(n=new Array(u.length),e=0,r=u.length;e<r;e+=1)o=u[e],a=Object.keys(o),n[e]=[a[0],o[a[0]]];return n}YW.exports=new dHe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:yHe,construct:EHe})});var VW=_((uxt,KW)=>{"use strict";var CHe=ls(),wHe=Object.prototype.hasOwnProperty;function IHe(t){if(t===null)return!0;var e,r=t;for(e in r)if(wHe.call(r,e)&&r[e]!==null)return!1;return!0}function BHe(t){return t!==null?t:{}}KW.exports=new CHe("tag:yaml.org,2002:set",{kind:"mapping",resolve:IHe,construct:BHe})});var $d=_((Axt,zW)=>{"use strict";var vHe=Y0();zW.exports=new vHe({include:[rT()],implicit:[MW(),UW()],explicit:[qW(),GW(),WW(),VW()]})});var XW=_((fxt,JW)=>{"use strict";var DHe=ls();function PHe(){return!0}function bHe(){}function SHe(){return""}function xHe(t){return typeof t>"u"}JW.exports=new DHe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:PHe,construct:bHe,predicate:xHe,represent:SHe})});var $W=_((pxt,ZW)=>{"use strict";var kHe=ls();function QHe(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),o="";return!(e[0]==="/"&&(r&&(o=r[1]),o.length>3||e[e.length-o.length-1]!=="/"))}function FHe(t){var e=t,r=/\/([gim]*)$/.exec(t),o="";return e[0]==="/"&&(r&&(o=r[1]),e=e.slice(1,e.length-o.length-1)),new RegExp(e,o)}function RHe(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function THe(t){return Object.prototype.toString.call(t)==="[object RegExp]"}ZW.exports=new kHe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:QHe,construct:FHe,predicate:THe,represent:RHe})});var rK=_((hxt,tK)=>{"use strict";var bD;try{eK=ve,bD=eK("esprima")}catch{typeof window<"u"&&(bD=window.esprima)}var eK,NHe=ls();function LHe(t){if(t===null)return!1;try{var e="("+t+")",r=bD.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function MHe(t){var e="("+t+")",r=bD.parse(e,{range:!0}),o=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(n){o.push(n.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(o,e.slice(a[0]+1,a[1]-1)):new Function(o,"return "+e.slice(a[0],a[1]))}function OHe(t){return t.toString()}function UHe(t){return Object.prototype.toString.call(t)==="[object Function]"}tK.exports=new NHe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:LHe,construct:MHe,predicate:UHe,represent:OHe})});var Rw=_((dxt,iK)=>{"use strict";var nK=Y0();iK.exports=nK.DEFAULT=new nK({include:[$d()],explicit:[XW(),$W(),rK()]})});var BK=_((mxt,Tw)=>{"use strict";var mf=G0(),AK=Xd(),_He=AW(),fK=$d(),HHe=Rw(),jp=Object.prototype.hasOwnProperty,SD=1,pK=2,hK=3,xD=4,iT=1,qHe=2,sK=3,jHe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uD Line truncated
`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function zHe(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var mK=new Array(256),yK=new Array(256);for(K0=0;K0<256;K0++)mK[K0]=aK(K0)?1:0,yK[K0]=aK(K0);var K0;function JHe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||HHe,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=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function EK(t,e){return new AK(e,new _He(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function br(t,e){throw EK(t,e)}function kD(t,e){t.onWarning&&t.onWarning.call(null,EK(t,e))}var lK={YAML:function(e,r,o){var a,n,u;e.version!==null&&br(e,"duplication of %YAML directive"),o.length!==1&&br(e,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(o[0]),a===null&&br(e,"ill-formed argument of the YAML directive"),n=parseInt(a[1],10),u=parseInt(a[2],10),n!==1&&br(e,"unacceptable YAML version of the document"),e.version=o[0],e.checkLineBreaks=u<2,u!==1&&u!==2&&kD(e,"unsupported YAML version of the document")},TAG:function(e,r,o){var a,n;o.length!==2&&br(e,"TAG directive accepts exactly two arguments"),a=o[0],n=o[1],gK.test(a)||br(e,"ill-formed tag handle (first argument) of the TAG directive"),jp.call(e.tagMap,a)&&br(e,'there is a previously declared suffix for "'+a+'" tag handle'),dK.test(n)||br(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[a]=n}};function qp(t,e,r,o){var a,n,u,A;if(e<r){if(A=t.input.slice(e,r),o)for(a=0,n=A.length;a<n;a+=1)u=A.charCodeAt(a),u===9||32<=u&&u<=1114111||br(t,"expected valid JSON character");else jHe.test(A)&&br(t,"the stream contains non-printable characters");t.result+=A}}function cK(t,e,r,o){var a,n,u,A;for(mf.isObject(r)||br(t,"cannot merge mappings; the provided source object is unacceptable"),a=Object.keys(r),u=0,A=a.length;u<A;u+=1)n=a[u],jp.call(e,n)||(e[n]=r[n],o[n]=!0)}function tm(t,e,r,o,a,n,u,A){var p,h;if(Array.isArray(a))for(a=Array.prototype.slice.call(a),p=0,h=a.length;p<h;p+=1)Array.isArray(a[p])&&br(t,"nested arrays are not supported inside keys"),typeof a=="object"&&oK(a[p])==="[object Object]"&&(a[p]="[object Object]");if(typeof a=="object"&&oK(a)==="[object Object]"&&(a="[object Object]"),a=String(a),e===null&&(e={}),o==="tag:yaml.org,2002:merge")if(Array.isArray(n))for(p=0,h=n.length;p<h;p+=1)cK(t,e,n[p],r);else cK(t,e,n,r);else!t.json&&!jp.call(r,a)&&jp.call(e,a)&&(t.line=u||t.line,t.position=A||t.position,br(t,"duplicated mapping key")),e[a]=n,delete r[a];return e}function sT(t){var e;e=t.input.charCodeAt(t.position),e===10?t.position++:e===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):br(t,"a line break is expected"),t.line+=1,t.lineStart=t.position}function Wi(t,e,r){for(var o=0,a=t.input.charCodeAt(t.position);a!==0;){for(;V0(a);)a=t.input.charCodeAt(++t.position);if(e&&a===35)do a=t.input.charCodeAt(++t.position);while(a!==10&&a!==13&&a!==0);if(ju(a))for(sT(t),a=t.input.charCodeAt(t.position),o++,t.lineIndent=0;a===32;)t.lineIndent++,a=t.input.charCodeAt(++t.position);else break}return r!==-1&&o!==0&&t.lineIndent<r&&kD(t,"deficient indentation"),o}function QD(t){var e=t.position,r;return r=t.input.charCodeAt(e),!!((r===45||r===46)&&r===t.input.charCodeAt(e+1)&&r===t.input.charCodeAt(e+2)&&(e+=3,r=t.input.charCodeAt(e),r===0||va(r)))}function oT(t,e){e===1?t.result+=" ":e>1&&(t.result+=mf.repeat(`
`,e-1))}function XHe(t,e,r){var o,a,n,u,A,p,h,E,I=t.kind,v=t.result,x;if(x=t.input.charCodeAt(t.position),va(x)||em(x)||x===35||x===38||x===42||x===33||x===124||x===62||x===39||x===34||x===37||x===64||x===96||(x===63||x===45)&&(a=t.input.charCodeAt(t.position+1),va(a)||r&&em(a)))return!1;for(t.kind="scalar",t.result="",n=u=t.position,A=!1;x!==0;){if(x===58){if(a=t.input.charCodeAt(t.position+1),va(a)||r&&em(a))break}else if(x===35){if(o=t.input.charCodeAt(t.position-1),va(o))break}else{if(t.position===t.lineStart&&QD(t)||r&&em(x))break;if(ju(x))if(p=t.line,h=t.lineStart,E=t.lineIndent,Wi(t,!1,-1),t.lineIndent>=e){A=!0,x=t.input.charCodeAt(t.position);continue}else{t.position=u,t.line=p,t.lineStart=h,t.lineIndent=E;break}}A&&(qp(t,n,u,!1),oT(t,t.line-p),n=u=t.position,A=!1),V0(x)||(u=t.position+1),x=t.input.charCodeAt(++t.position)}return qp(t,n,u,!1),t.result?!0:(t.kind=I,t.result=v,!1)}function ZHe(t,e){var r,o,a;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,o=a=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(qp(t,o,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)o=t.position,t.position++,a=t.position;else return!0;else ju(r)?(qp(t,o,a,!0),oT(t,Wi(t,!1,e)),o=a=t.position):t.position===t.lineStart&&QD(t)?br(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);br(t,"unexpected end of the stream within a single quoted scalar")}function $He(t,e){var r,o,a,n,u,A;if(A=t.input.charCodeAt(t.position),A!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=o=t.position;(A=t.input.charCodeAt(t.position))!==0;){if(A===34)return qp(t,r,t.position,!0),t.position++,!0;if(A===92){if(qp(t,r,t.position,!0),A=t.input.charCodeAt(++t.position),ju(A))Wi(t,!1,e);else if(A<256&&mK[A])t.result+=yK[A],t.position++;else if((u=KHe(A))>0){for(a=u,n=0;a>0;a--)A=t.input.charCodeAt(++t.position),(u=WHe(A))>=0?n=(n<<4)+u:br(t,"expected hexadecimal character");t.result+=zHe(n),t.position++}else br(t,"unknown escape sequence");r=o=t.position}else ju(A)?(qp(t,r,o,!0),oT(t,Wi(t,!1,e)),r=o=t.position):t.position===t.lineStart&&QD(t)?br(t,"unexpected end of the document within a double quoted scalar"):(t.position++,o=t.position)}br(t,"unexpected end of the stream within a double quoted scalar")}function e6e(t,e){var r=!0,o,a=t.tag,n,u=t.anchor,A,p,h,E,I,v={},x,C,R,L;if(L=t.input.charCodeAt(t.position),L===91)p=93,I=!1,n=[];else if(L===123)p=125,I=!0,n={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),L=t.input.charCodeAt(++t.position);L!==0;){if(Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===p)return t.position++,t.tag=a,t.anchor=u,t.kind=I?"mapping":"sequence",t.result=n,!0;r||br(t,"missed comma between flow collection entries"),C=x=R=null,h=E=!1,L===63&&(A=t.input.charCodeAt(t.position+1),va(A)&&(h=E=!0,t.position++,Wi(t,!0,e))),o=t.line,rm(t,e,SD,!1,!0),C=t.tag,x=t.result,Wi(t,!0,e),L=t.input.charCodeAt(t.position),(E||t.line===o)&&L===58&&(h=!0,L=t.input.charCodeAt(++t.position),Wi(t,!0,e),rm(t,e,SD,!1,!0),R=t.result),I?tm(t,n,v,C,x,R):h?n.push(tm(t,null,v,C,x,R)):n.push(x),Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===44?(r=!0,L=t.input.charCodeAt(++t.position)):r=!1}br(t,"unexpected end of the stream within a flow collection")}function t6e(t,e){var r,o,a=iT,n=!1,u=!1,A=e,p=0,h=!1,E,I;if(I=t.input.charCodeAt(t.position),I===124)o=!1;else if(I===62)o=!0;else return!1;for(t.kind="scalar",t.result="";I!==0;)if(I=t.input.charCodeAt(++t.position),I===43||I===45)iT===a?a=I===43?sK:qHe:br(t,"repeat of a chomping mode identifier");else if((E=VHe(I))>=0)E===0?br(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?br(t,"repeat of an indentation width identifier"):(A=e+E-1,u=!0);else break;if(V0(I)){do I=t.input.charCodeAt(++t.position);while(V0(I));if(I===35)do I=t.input.charCodeAt(++t.position);while(!ju(I)&&I!==0)}for(;I!==0;){for(sT(t),t.lineIndent=0,I=t.input.charCodeAt(t.position);(!u||t.lineIndent<A)&&I===32;)t.lineIndent++,I=t.input.charCodeAt(++t.position);if(!u&&t.lineIndent>A&&(A=t.lineIndent),ju(I)){p++;continue}if(t.lineIndent<A){a===sK?t.result+=mf.repeat(`
`,n?1+p:p):a===iT&&n&&(t.result+=`
`);break}for(o?V0(I)?(h=!0,t.result+=mf.repeat(`
`,n?1+p:p)):h?(h=!1,t.result+=mf.repeat(`
`,p+1)):p===0?n&&(t.result+=" "):t.result+=mf.repeat(`
`,p):t.result+=mf.repeat(`
`,n?1+p:p),n=!0,u=!0,p=0,r=t.position;!ju(I)&&I!==0;)I=t.input.charCodeAt(++t.position);qp(t,r,t.position,!1)}return!0}function uK(t,e){var r,o=t.tag,a=t.anchor,n=[],u,A=!1,p;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),p=t.input.charCodeAt(t.position);p!==0&&!(p!==45||(u=t.input.charCodeAt(t.position+1),!va(u)));){if(A=!0,t.position++,Wi(t,!0,-1)&&t.lineIndent<=e){n.push(null),p=t.input.charCodeAt(t.position);continue}if(r=t.line,rm(t,e,hK,!1,!0),n.push(t.result),Wi(t,!0,-1),p=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&p!==0)br(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break}return A?(t.tag=o,t.anchor=a,t.kind="sequence",t.result=n,!0):!1}function r6e(t,e,r){var o,a,n,u,A=t.tag,p=t.anchor,h={},E={},I=null,v=null,x=null,C=!1,R=!1,L;for(t.anchor!==null&&(t.anchorMap[t.anchor]=h),L=t.input.charCodeAt(t.position);L!==0;){if(o=t.input.charCodeAt(t.position+1),n=t.line,u=t.position,(L===63||L===58)&&va(o))L===63?(C&&(tm(t,h,E,I,v,null),I=v=x=null),R=!0,C=!0,a=!0):C?(C=!1,a=!0):br(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,L=o;else if(rm(t,r,pK,!1,!0))if(t.line===n){for(L=t.input.charCodeAt(t.position);V0(L);)L=t.input.charCodeAt(++t.position);if(L===58)L=t.input.charCodeAt(++t.position),va(L)||br(t,"a whitespace character is expected after the key-value separator within a block mapping"),C&&(tm(t,h,E,I,v,null),I=v=x=null),R=!0,C=!1,a=!1,I=t.tag,v=t.result;else if(R)br(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=A,t.anchor=p,!0}else if(R)br(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=A,t.anchor=p,!0;else break;if((t.line===n||t.lineIndent>e)&&(rm(t,e,xD,!0,a)&&(C?v=t.result:x=t.result),C||(tm(t,h,E,I,v,x,n,u),I=v=x=null),Wi(t,!0,-1),L=t.input.charCodeAt(t.position)),t.lineIndent>e&&L!==0)br(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return C&&tm(t,h,E,I,v,null),R&&(t.tag=A,t.anchor=p,t.kind="mapping",t.result=h),R}function n6e(t){var e,r=!1,o=!1,a,n,u;if(u=t.input.charCodeAt(t.position),u!==33)return!1;if(t.tag!==null&&br(t,"duplication of a tag property"),u=t.input.charCodeAt(++t.position),u===60?(r=!0,u=t.input.charCodeAt(++t.position)):u===33?(o=!0,a="!!",u=t.input.charCodeAt(++t.position)):a="!",e=t.position,r){do u=t.input.charCodeAt(++t.position);while(u!==0&&u!==62);t.position<t.length?(n=t.input.slice(e,t.position),u=t.input.charCodeAt(++t.position)):br(t,"unexpected end of the stream within a verbatim tag")}else{for(;u!==0&&!va(u);)u===33&&(o?br(t,"tag suffix cannot contain exclamation marks"):(a=t.input.slice(e-1,t.position+1),gK.test(a)||br(t,"named tag handle cannot contain such characters"),o=!0,e=t.position+1)),u=t.input.charCodeAt(++t.position);n=t.input.slice(e,t.position),YHe.test(n)&&br(t,"tag suffix cannot contain flow indicator characters")}return n&&!dK.test(n)&&br(t,"tag name cannot contain such characters: "+n),r?t.tag=n:jp.call(t.tagMap,a)?t.tag=t.tagMap[a]+n:a==="!"?t.tag="!"+n:a==="!!"?t.tag="tag:yaml.org,2002:"+n:br(t,'undeclared tag handle "'+a+'"'),!0}function i6e(t){var e,r;if(r=t.input.charCodeAt(t.position),r!==38)return!1;for(t.anchor!==null&&br(t,"duplication of an anchor property"),r=t.input.charCodeAt(++t.position),e=t.position;r!==0&&!va(r)&&!em(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&br(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function s6e(t){var e,r,o;if(o=t.input.charCodeAt(t.position),o!==42)return!1;for(o=t.input.charCodeAt(++t.position),e=t.position;o!==0&&!va(o)&&!em(o);)o=t.input.charCodeAt(++t.position);return t.position===e&&br(t,"name of an alias node must contain at least one character"),r=t.input.slice(e,t.position),jp.call(t.anchorMap,r)||br(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],Wi(t,!0,-1),!0}function rm(t,e,r,o,a){var n,u,A,p=1,h=!1,E=!1,I,v,x,C,R;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,n=u=A=xD===r||hK===r,o&&Wi(t,!0,-1)&&(h=!0,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)),p===1)for(;n6e(t)||i6e(t);)Wi(t,!0,-1)?(h=!0,A=n,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)):A=!1;if(A&&(A=h||a),(p===1||xD===r)&&(SD===r||pK===r?C=e:C=e+1,R=t.position-t.lineStart,p===1?A&&(uK(t,R)||r6e(t,R,C))||e6e(t,C)?E=!0:(u&&t6e(t,C)||ZHe(t,C)||$He(t,C)?E=!0:s6e(t)?(E=!0,(t.tag!==null||t.anchor!==null)&&br(t,"alias node should not have any properties")):XHe(t,C,SD===r)&&(E=!0,t.tag===null&&(t.tag="?")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):p===0&&(E=A&&uK(t,R))),t.tag!==null&&t.tag!=="!")if(t.tag==="?"){for(t.result!==null&&t.kind!=="scalar"&&br(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),I=0,v=t.implicitTypes.length;I<v;I+=1)if(x=t.implicitTypes[I],x.resolve(t.result)){t.result=x.construct(t.result),t.tag=x.tag Line truncated
`),t.charCodeAt(0)===65279&&(t=t.slice(1)));var r=new JHe(t,e),o=t.indexOf("\0");for(o!==-1&&(r.position=o,br(r,"null byte is not allowed in input")),r.input+="\0";r.input.charCodeAt(r.position)===32;)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)o6e(r);return r.documents}function wK(t,e,r){e!==null&&typeof e=="object"&&typeof r>"u"&&(r=e,e=null);var o=CK(t,r);if(typeof e!="function")return o;for(var a=0,n=o.length;a<n;a+=1)e(o[a])}function IK(t,e){var r=CK(t,e);if(r.length!==0){if(r.length===1)return r[0];throw new AK("expected a single document in the stream, but found more")}}function a6e(t,e,r){return typeof e=="object"&&e!==null&&typeof r>"u"&&(r=e,e=null),wK(t,e,mf.extend({schema:fK},r))}function l6e(t,e){return IK(t,mf.extend({schema:fK},e))}Tw.exports.loadAll=wK;Tw.exports.load=IK;Tw.exports.safeLoadAll=a6e;Tw.exports.safeLoad=l6e});var WK=_((yxt,uT)=>{"use strict";var Lw=G0(),Mw=Xd(),c6e=Rw(),u6e=$d(),QK=Object.prototype.toString,FK=Object.prototype.hasOwnProperty,A6e=9,Nw=10,f6e=13,p6e=32,h6e=33,g6e=34,RK=35,d6e=37,m6e=38,y6e=39,E6e=42,TK=44,C6e=45,NK=58,w6e=61,I6e=62,B6e=63,v6e=64,LK=91,MK=93,D6e=96,OK=123,P6e=124,UK=125,vo={};vo[0]="\\0";vo[7]="\\a";vo[8]="\\b";vo[9]="\\t";vo[10]="\\n";vo[11]="\\v";vo[12]="\\f";vo[13]="\\r";vo[27]="\\e";vo[34]='\\"';vo[92]="\\\\";vo[133]="\\N";vo[160]="\\_";vo[8232]="\\L";vo[8233]="\\P";var b6e=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function S6e(t,e){var r,o,a,n,u,A,p;if(e===null)return{};for(r={},o=Object.keys(e),a=0,n=o.length;a<n;a+=1)u=o[a],A=String(e[u]),u.slice(0,2)==="!!"&&(u="tag:yaml.org,2002:"+u.slice(2)),p=t.compiledTypeMap.fallback[u],p&&FK.call(p.styleAliases,A)&&(A=p.styleAliases[A]),r[u]=A;return r}function vK(t){var e,r,o;if(e=t.toString(16).toUpperCase(),t<=255)r="x",o=2;else if(t<=65535)r="u",o=4;else if(t<=4294967295)r="U",o=8;else throw new Mw("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+Lw.repeat("0",o-e.length)+e}function x6e(t){this.schema=t.schema||c6e,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=Lw.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=S6e(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function DK(t,e){for(var r=Lw.repeat(" ",e),o=0,a=-1,n="",u,A=t.length;o<A;)a=t.indexOf(`
`,o),a===-1?(u=t.slice(o),o=A):(u=t.slice(o,a+1),o=a+1),u.length&&u!==`
`&&(n+=r),n+=u;return n}function aT(t,e){return`
`+Lw.repeat(" ",t.indent*e)}function k6e(t,e){var r,o,a;for(r=0,o=t.implicitTypes.length;r<o;r+=1)if(a=t.implicitTypes[r],a.resolve(e))return!0;return!1}function cT(t){return t===p6e||t===A6e}function nm(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==65279||65536<=t&&t<=1114111}function Q6e(t){return nm(t)&&!cT(t)&&t!==65279&&t!==f6e&&t!==Nw}function PK(t,e){return nm(t)&&t!==65279&&t!==TK&&t!==LK&&t!==MK&&t!==OK&&t!==UK&&t!==NK&&(t!==RK||e&&Q6e(e))}function F6e(t){return nm(t)&&t!==65279&&!cT(t)&&t!==C6e&&t!==B6e&&t!==NK&&t!==TK&&t!==LK&&t!==MK&&t!==OK&&t!==UK&&t!==RK&&t!==m6e&&t!==E6e&&t!==h6e&&t!==P6e&&t!==w6e&&t!==I6e&&t!==y6e&&t!==g6e&&t!==d6e&&t!==v6e&&t!==D6e}function _K(t){var e=/^\n* /;return e.test(t)}var HK=1,qK=2,jK=3,GK=4,FD=5;function R6e(t,e,r,o,a){var n,u,A,p=!1,h=!1,E=o!==-1,I=-1,v=F6e(t.charCodeAt(0))&&!cT(t.charCodeAt(t.length-1));if(e)for(n=0;n<t.length;n++){if(u=t.charCodeAt(n),!nm(u))return FD;A=n>0?t.charCodeAt(n-1):null,v=v&&PK(u,A)}else{for(n=0;n<t.length;n++){if(u=t.charCodeAt(n),u===Nw)p=!0,E&&(h=h||n-I-1>o&&t[I+1]!==" ",I=n);else if(!nm(u))return FD;A=n>0?t.charCodeAt(n-1):null,v=v&&PK(u,A)}h=h||E&&n-I-1>o&&t[I+1]!==" "}return!p&&!h?v&&!a(t)?HK:qK:r>9&&_K(t)?FD:h?GK:jK}function T6e(t,e,r,o){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&b6e.indexOf(e)!==-1)return"'"+e+"'";var a=t.indent*Math.max(1,r),n=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),u=o||t.flowLevel>-1&&r>=t.flowLevel;function A(p){return k6e(t,p)}switch(R6e(e,u,t.indent,n,A)){case HK:return e;case qK:return"'"+e.replace(/'/g,"''")+"'";case jK:return"|"+bK(e,t.indent)+SK(DK(e,a));case GK:return">"+bK(e,t.indent)+SK(DK(N6e(e,n),a));case FD:return'"'+L6e(e,n)+'"';default:throw new Mw("impossible error: invalid scalar style")}}()}function bK(t,e){var r=_K(t)?String(e):"",o=t[t.length-1]===`
`,a=o&&(t[t.length-2]===`
`||t===`
`),n=a?"+":o?"":"-";return r+n+`
`}function SK(t){return t[t.length-1]===`
`?t.slice(0,-1):t}function N6e(t,e){for(var r=/(\n+)([^\n]*)/g,o=function(){var h=t.indexOf(`
`);return h=h!==-1?h:t.length,r.lastIndex=h,xK(t.slice(0,h),e)}(),a=t[0]===`
`||t[0]===" ",n,u;u=r.exec(t);){var A=u[1],p=u[2];n=p[0]===" ",o+=A+(!a&&!n&&p!==""?`
`:"")+xK(p,e),a=n}return o}function xK(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,o,a=0,n,u=0,A=0,p="";o=r.exec(t);)A=o.index,A-a>e&&(n=u>a?u:A,p+=`
`+t.slice(a,n),a=n+1),u=A;return p+=`
`,t.length-a>e&&u>a?p+=t.slice(a,u)+`
`+t.slice(u+1):p+=t.slice(a),p.slice(1)}function L6e(t){for(var e="",r,o,a,n=0;n<t.length;n++){if(r=t.charCodeAt(n),r>=55296&&r<=56319&&(o=t.charCodeAt(n+1),o>=56320&&o<=57343)){e+=vK((r-55296)*1024+o-56320+65536),n++;continue}a=vo[r],e+=!a&&nm(r)?t[n]:a||vK(r)}return e}function M6e(t,e,r){var o="",a=t.tag,n,u;for(n=0,u=r.length;n<u;n+=1)z0(t,e,r[n],!1,!1)&&(n!==0&&(o+=","+(t.condenseFlow?"":" ")),o+=t.dump);t.tag=a,t.dump="["+o+"]"}function O6e(t,e,r,o){var a="",n=t.tag,u,A;for(u=0,A=r.length;u<A;u+=1)z0(t,e+1,r[u],!0,!0)&&((!o||u!==0)&&(a+=aT(t,e)),t.dump&&Nw===t.dump.charCodeAt(0)?a+="-":a+="- ",a+=t.dump);t.tag=n,t.dump=a||"[]"}function U6e(t,e,r){var o="",a=t.tag,n=Object.keys(r),u,A,p,h,E;for(u=0,A=n.length;u<A;u+=1)E="",u!==0&&(E+=", "),t.condenseFlow&&(E+='"'),p=n[u],h=r[p],z0(t,e,p,!1,!1)&&(t.dump.length>1024&&(E+="? "),E+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),z0(t,e,h,!1,!1)&&(E+=t.dump,o+=E));t.tag=a,t.dump="{"+o+"}"}function _6e(t,e,r,o){var a="",n=t.tag,u=Object.keys(r),A,p,h,E,I,v;if(t.sortKeys===!0)u.sort();else if(typeof t.sortKeys=="function")u.sort(t.sortKeys);else if(t.sortKeys)throw new Mw("sortKeys must be a boolean or a function");for(A=0,p=u.length;A<p;A+=1)v="",(!o||A!==0)&&(v+=aT(t,e)),h=u[A],E=r[h],z0(t,e+1,h,!0,!0,!0)&&(I=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,I&&(t.dump&&Nw===t.dump.charCodeAt(0)?v+="?":v+="? "),v+=t.dump,I&&(v+=aT(t,e)),z0(t,e+1,E,!0,I)&&(t.dump&&Nw===t.dump.charCodeAt(0)?v+=":":v+=": ",v+=t.dump,a+=v));t.tag=n,t.dump=a||"{}"}function kK(t,e,r){var o,a,n,u,A,p;for(a=r?t.explicitTypes:t.implicitTypes,n=0,u=a.length;n<u;n+=1)if(A=a[n],(A.instanceOf||A.predicate)&&(!A.instanceOf||typeof e=="object"&&e instanceof A.instanceOf)&&(!A.predicate||A.predicate(e))){if(t.tag=r?A.tag:"?",A.represent){if(p=t.styleMap[A.tag]||A.defaultStyle,QK.call(A.represent)==="[object Function]")o=A.represent(e,p);else if(FK.call(A.represent,p))o=A.represent[p](e,p);else throw new Mw("!<"+A.tag+'> tag resolver accepts not "'+p+'" style');t.dump=o}return!0}return!1}function z0(t,e,r,o,a,n){t.tag=null,t.dump=r,kK(t,r,!1)||kK(t,r,!0);var u=QK.call(t.dump);o&&(o=t.flowLevel<0||t.flowLevel>e);var A=u==="[object Object]"||u==="[object Array]",p,h;if(A&&(p=t.duplicates.indexOf(r),h=p!==-1),(t.tag!==null&&t.tag!=="?"||h||t.indent!==2&&e>0)&&(a=!1),h&&t.usedDuplicates[p])t.dump="*ref_"+p;else{if(A&&h&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),u==="[object Object]")o&&Object.keys(t.dump).length!==0?(_6e(t,e,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(U6e(t,e,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump));else if(u==="[object Array]"){var E=t.noArrayIndent&&e>0?e-1:e;o&&t.dump.length!==0?(O6e(t,E,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(M6e(t,E,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump))}else if(u==="[object String]")t.tag!=="?"&&T6e(t,t.dump,e,n);else{if(t.skipInvalid)return!1;throw new Mw("unacceptable kind of an object to dump "+u)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function H6e(t,e){var r=[],o=[],a,n;for(lT(t,r,o),a=0,n=o.length;a<n;a+=1)e.duplicates.push(r[o[a]]);e.usedDuplicates=new Array(n)}function lT(t,e,r){var o,a,n;if(t!==null&&typeof t=="object")if(a=e.indexOf(t),a!==-1)r.indexOf(a)===-1&&r.push(a);else if(e.push(t),Array.isArray(t))for(a=0,n=t.length;a<n;a+=1)lT(t[a],e,r);else for(o=Object.keys(t),a=0,n=o.length;a<n;a+=1)lT(t[o[a]],e,r)}function YK(t,e){e=e||{};var r=new x6e(e);return r.noRefs||H6e(t,r),z0(r,0,t,!0,!0)?r.dump+`
`:""}function q6e(t,e){return YK(t,Lw.extend({schema:u6e},e))}uT.exports.dump=YK;uT.exports.safeDump=q6e});var VK=_((Ext,xi)=>{"use strict";var RD=BK(),KK=WK();function TD(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}xi.exports.Type=ls();xi.exports.Schema=Y0();xi.exports.FAILSAFE_SCHEMA=PD();xi.exports.JSON_SCHEMA=tT();xi.exports.CORE_SCHEMA=rT();xi.exports.DEFAULT_SAFE_SCHEMA=$d();xi.exports.DEFAULT_FULL_SCHEMA=Rw();xi.exports.load=RD.load;xi.exports.loadAll=RD.loadAll;xi.exports.safeLoad=RD.safeLoad;xi.exports.safeLoadAll=RD.safeLoadAll;xi.exports.dump=KK.dump;xi.exports.safeDump=KK.safeDump;xi.exports.YAMLException=Xd();xi.exports.MINIMAL_SCHEMA=PD();xi.exports.SAFE_SCHEMA=$d();xi.exports.DEFAULT_SCHEMA=Rw();xi.exports.scan=TD("scan");xi.exports.parse=TD("parse");xi.exports.compose=TD("compose");xi.exports.addConstructor=TD("addConstructor")});var JK=_((Cxt,zK)=>{"use strict";var j6e=VK();zK.exports=j6e});var ZK=_((wxt,XK)=>{"use strict";function G6e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function J0(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,J0)}G6e(J0,Error);J0.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I<h.parts.length;I++)E+=h.parts[I]instanceof Array?n(h.parts[I][0])+"-"+n(h.parts[I][1]):n(h.parts[I]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function u(h){return r[h.type](h)}function A(h){var E=new Array(h.length),I,v;for(I=0;I<h.length;I++)E[I]=u(h[I]);if(E.sort(),E.length>0){for(I=1,v=1;I<E.length;I++)E[I-1]!==E[I]&&(E[v]=E[I],v++);E.length=v}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function Y6e(t,e){e=e!==void 0?e:{};var r={},o={Start:gu},a=gu,n=function(ee){return[].concat(...ee)},u="-",A=Qn("-",!1),p=function(ee){return ee},h=function(ee){return Object.assign({},...ee)},E="#",I=Qn("#",!1),v=gc(),x=function(){return{}},C=":",R=Qn(":",!1),L=function(ee,ye){return{[ee]:ye}},U=",",z=Qn(",",!1),te=function(ee,ye){return ye},ae=function(ee,ye,Le){return Object.assign({},...[ee].concat(ye).map(ft=>({[ft]:Le})))},le=function(ee){return ee},ce=function(ee){return ee},Ce=aa("correct indentation"),de=" ",Be=Qn(" ",!1),Ee=function(ee){return ee.length===or*Bt},g=function(ee){return ee.length===(or+1)*Bt},me=function(){return or++,!0},we=function(){return or--,!0},Ae=function(){return DA()},ne=aa("pseudostring"),Z=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,xe=hi(["\r",`
`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Ne=/^[^\r\n\t ,\][{}:#"']/,ht=hi(["\r",`
`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),H=function(){return DA().replace(/^ *| *$/g,"")},rt="--",Te=Qn("--",!1),Fe=/^[a-zA-Z\/0-9]/,ke=hi([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),Ye=/^[^\r\n\t :,]/,be=hi(["\r",`
`," "," ",":",","],!0,!1),et="null",Ue=Qn("null",!1),S=function(){return null},w="true",b=Qn("true",!1),y=function(){return!0},F="false",J=Qn("false",!1),X=function(){return!1},$=aa("string"),ie='"',Se=Qn('"',!1),Re=function(){return""},at=function(ee){return ee},dt=function(ee){return ee.join("")},jt=/^[^"\\\0-\x1F\x7F]/,tr=hi(['"',"\\",["\0",""],"\x7F"],!0,!1),bt='\\"',ln=Qn('\\"',!1),kr=function(){return'"'},mr="\\\\",Sr=Qn("\\\\",!1),Kr=function(){return"\\"},Kn="\\/",Ms=Qn("\\/",!1),Ri=function(){return"/"},gs="\\b",io=Qn("\\b",!1),Pi=function(){return"\b"},Os="\\f",so=Qn("\\f",!1),uc=function(){return"\f"},Au="\\n",op=Qn("\\n",!1),ap=function(){return`
`},Us="\\r",Dn=Qn("\\r",!1),oo=function(){return"\r"},_s="\\t",ml=Qn("\\t",!1),yl=function(){return" "},ao="\\u",Vn=Qn("\\u",!1),Mn=function(ee,ye,Le,ft){return String.fromCharCode(parseInt(`0x${ee}${ye}${Le}${ft}`))},Ti=/^[0-9a-fA-F]/,On=hi([["0","9"],["a","f"],["A","F"]],!1,!1),_i=aa("blank space"),ir=/^[ \t]/,Me=hi([" "," "],!1,!1),ii=aa("white space"),Ha=/^[ \t\n\r]/,hr=hi([" "," ",`
`,"\r"],!1,!1),Ac=`\r
`,fu=Qn(`\r
`,!1),fc=`
`,El=Qn(`
`,!1),vA="\r",pu=Qn("\r",!1),Ie=0,Tt=0,pc=[{line:1,column:1}],Hi=0,hu=[],Yt=0,Cl;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function DA(){return t.substring(Tt,Ie)}function lp(){return _o(Tt,Ie)}function hc(ee,ye){throw ye=ye!==void 0?ye:_o(Tt,Ie),dc([aa(ee)],t.substring(Tt,Ie),ye)}function PA(ee,ye){throw ye=ye!==void 0?ye:_o(Tt,Ie),lo(ee,ye)}function Qn(ee,ye){return{type:"literal",text:ee,ignoreCase:ye}}function hi(ee,ye,Le){return{type:"class",parts:ee,inverted:ye,ignoreCase:Le}}function gc(){return{type:"any"}}function bA(){return{type:"end"}}function aa(ee){return{type:"other",description:ee}}function Ni(ee){var ye=pc[ee],Le;if(ye)return ye;for(Le=ee-1;!pc[Le];)Le--;for(ye=pc[Le],ye={line:ye.line,column:ye.column};Le<ee;)t.charCodeAt(Le)===10?(ye.line++,ye.column=1):ye.column++,Le++;return pc[ee]=ye,ye}function _o(ee,ye){var Le=Ni(ee),ft=Ni(ye);return{start:{offset:ee,line:Le.line,column:Le.column},end:{offset:ye,line:ft.line,column:ft.column}}}function Xe(ee){Ie<Hi||(Ie>Hi&&(Hi=Ie,hu=[]),hu.push(ee))}function lo(ee,ye){return new J0(ee,null,null,ye)}function dc(ee,ye,Le){return new J0(J0.buildMessage(ee,ye),ee,ye,Le)}function gu(){var ee;return ee=SA(),ee}function qi(){var ee,ye,Le;for(ee=Ie,ye=[],Le=du();Le!==r;)ye.push(Le),Le=du();return ye!==r&&(Tt=ee,ye=n(ye)),ee=ye,ee}function du(){var ee,ye,Le,ft,pt;return ee=Ie,ye=ds(),ye!==r?(t.charCodeAt(Ie)===45?(Le=u,Ie++):(Le=r,Yt===0&&Xe(A)),Le!==r?(ft=Pn(),ft!==r?(pt=mc(),pt!==r?(Tt=ee,ye=p(pt),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee}function SA(){var ee,ye,Le;for(ee=Ie,ye=[],Le=qa();Le!==r;)ye.push(Le),Le=qa();return ye!==r&&(Tt=ee,ye=h(ye)),ee=ye,ee}function qa(){var ee,ye,Le,ft,pt,Nt,rr,$r,ji;if(ee=Ie,ye=Pn(),ye===r&&(ye=null),ye!==r){if(Le=Ie,t.charCodeAt(Ie)===35?(ft=E,Ie++):(ft=r,Yt===0&&Xe(I)),ft!==r){if(pt=[],Nt=Ie,rr=Ie,Yt++,$r=tt(),Yt--,$r===r?rr=void 0:(Ie=rr,rr=r),rr!==r?(t.length>Ie?($r=t.charAt(Ie),Ie++):($r=r,Yt===0&&Xe(v)),$r!==r?(rr=[rr,$r],Nt=rr):(Ie=Nt,Nt=r)):(Ie=Nt,Nt=r),Nt!==r)for(;Nt!==r;)pt.push(Nt),Nt=Ie,rr=Ie,Yt++,$r=tt(),Yt--,$r===r?rr=void 0:(Ie=rr,rr=r),rr!==r?(t.length>Ie?($r=t.charAt(Ie),Ie++):($r=r,Yt===0&&Xe(v)),$r!==r?(rr=[rr,$r],Nt=rr):(Ie=Nt,Nt=r)):(Ie=Nt,Nt=r);else pt=r;pt!==r?(ft=[ft,pt],Le=ft):(Ie=Le,Le=r)}else Ie=Le,Le=r;if(Le===r&&(Le=null),Le!==r){if(ft=[],pt=We(),pt!==r)for(;pt!==r;)ft.push(pt),pt=We();else ft=r;ft!==r?(Tt=ee,ye=x(),ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r}else Ie=ee,ee=r;if(ee===r&&(ee=Ie,ye=ds(),ye!==r?(Le=la(),Le!==r?(ft=Pn(),ft===r&&(ft=null),ft!==r?(t.charCodeAt(Ie)===58?(pt=C,Ie++):(pt=r,Yt===0&&Xe(R)),pt!==r?(Nt=Pn(),Nt===r&&(Nt=null),Nt!==r?(rr=mc(),rr!==r?(Tt=ee,ye=L(Le,rr),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r&&(ee=Ie,ye=ds(),ye!==r?(Le=co(),Le!==r?(ft=Pn(),ft===r&&(ft=null),ft!==r?(t.charCodeAt(Ie)===58?(pt=C,Ie++):(pt=r,Yt===0&&Xe(R)),pt!==r?(Nt=Pn(),Nt===r&&(Nt=null),Nt!==r?(rr=mc(),rr!==r?(Tt=ee,ye=L(Le,rr),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r))){if(ee=Ie,ye=ds(),ye!==r)if(Le=co(),Le!==r)if(ft=Pn(),ft!==r)if(pt=ca(),pt!==r){if(Nt=[],rr=We(),rr!==r)for(;rr!==r;)Nt.push(rr),rr=We();else Nt=r;Nt!==r?(Tt=ee,ye=L(Le,pt),ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r;else Ie=ee,ee=r;else Ie=ee,ee=r;else Ie=ee,ee=r;if(ee===r)if(ee=Ie,ye=ds(),ye!==r)if(Le=co(),Le!==r){if(ft=[],pt=Ie,Nt=Pn(),Nt===r&&(Nt=null),Nt!==r?(t.charCodeAt(Ie)===44?(rr=U,Ie++):(rr=r,Yt===0&&Xe(z)),rr!==r?($r=Pn(),$r===r&&($r=null),$r!==r?(ji=co(),ji!==r?(Tt=pt,Nt=te(Le,ji),pt=Nt):(Ie=pt,pt=r)):(Ie=pt,pt=r)):(Ie=pt,pt=r)):(Ie=pt,pt=r),pt!==r)for(;pt!==r;)ft.push(pt),pt=Ie,Nt=Pn(),Nt===r&&(Nt=null),Nt!==r?(t.charCodeAt(Ie)===44?(rr=U,Ie++):(rr=r,Yt===0&&Xe(z)),rr!==r?($r=Pn(),$r===r&&($r=null),$r!==r?(ji=co(),ji!==r?(Tt=pt,Nt=te(Le,ji),pt=Nt):(Ie=pt,pt=r)):(Ie=pt,pt=r)):(Ie=pt,pt=r)):(Ie=pt,pt=r);else ft=r;ft!==r?(pt=Pn(),pt===r&&(pt=null),pt!==r?(t.charCodeAt(Ie)===58?(Nt=C,Ie++):(Nt=r,Yt===0&&Xe(R)),Nt!==r?(rr=Pn(),rr===r&&(rr=null),rr!==r?($r=mc(),$r!==r?(Tt=ee,ye=ae(Le,ft,$r),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)}else Ie=ee,ee=r;else Ie=ee,ee=r}return ee}function mc(){var ee,ye,Le,ft,pt,Nt,rr;if(ee=Ie,ye=Ie,Yt++,Le=Ie,ft=tt(),ft!==r?(pt=Ht(),pt!==r?(t.charCodeAt(Ie)===45?(Nt=u,Ie++):(Nt=r,Yt===0&&Xe(A)),Nt!==r?(rr=Pn(),rr!==r?(ft=[ft,pt,Nt,rr],Le=ft):(Ie=Le,Le=r)):(Ie=Le,Le=r)):(Ie=Le,Le=r)):(Ie=Le,Le=r),Yt--,Le!==r?(Ie=ye,ye=void 0):ye=r,ye!==r?(Le=We(),Le!==r?(ft=Fn(),ft!==r?(pt=qi(),pt!==r?(Nt=Ei(),Nt!==r?(Tt=ee,ye=le(pt),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r&&(ee=Ie,ye=tt(),ye!==r?(Le=Fn(),Le!==r?(ft=SA(),ft!==r?(pt=Ei(),pt!==r?(Tt=ee,ye=le(ft),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r))if(ee=Ie,ye=Hs(),ye!==r){if(Le=[],ft=We(),ft!==r)for(;ft!==r;)Le.push(ft),ft=We();else Le=r;Le!==r?(Tt=ee,yeLine truncated
`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()}
`;if(typeof t=="string")return`${eV(t)}
`;if(Array.isArray(t)){if(t.length===0)return`[]
`;let o=" ".repeat(e);return`
${t.map(n=>`${o}- ${AT(n,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let[o,a]=t instanceof ND?[t.data,!1]:[t,!0],n=" ".repeat(e),u=Object.keys(o);a&&u.sort((p,h)=>{let E=$K.indexOf(p),I=$K.indexOf(h);return E===-1&&I===-1?p<h?-1:p>h?1:0:E!==-1&&I===-1?-1:E===-1&&I!==-1?1:E-I});let A=u.filter(p=>!rV(o[p])).map((p,h)=>{let E=o[p],I=eV(p),v=AT(E,e+1,!0),x=h>0||r?n:"",C=I.length>1024?`? ${I}
${x}:`:`${I}:`,R=v.startsWith(`
`)?v:` ${v}`;return`${x}${C}${R}`}).join(e===0?`
`:"")||`
`;return r?`
${A}`:`${A}`}throw new Error(`Unsupported value type (${t})`)}function Da(t){try{let e=AT(t,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}}function K6e(t){return t.endsWith(`
`)||(t+=`
`),(0,tV.parse)(t)}function z6e(t){if(V6e.test(t))return K6e(t);let e=(0,LD.safeLoad)(t,{schema:LD.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 Ki(t){return z6e(t)}var LD,tV,W6e,$K,ND,V6e,nV=Et(()=>{LD=Ze(JK()),tV=Ze(ZK()),W6e=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,$K=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],ND=class{constructor(e){this.data=e}};Da.PreserveOrdering=ND;V6e=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i});var Ow={};Vt(Ow,{parseResolution:()=>BD,parseShell:()=>CD,parseSyml:()=>Ki,stringifyArgument:()=>XR,stringifyArgumentSegment:()=>ZR,stringifyArithmeticExpression:()=>ID,stringifyCommand:()=>JR,stringifyCommandChain:()=>Jd,stringifyCommandChainThen:()=>zR,stringifyCommandLine:()=>wD,stringifyCommandLineThen:()=>VR,stringifyEnvSegment:()=>ED,stringifyRedirectArgument:()=>Qw,stringifyResolution:()=>vD,stringifyShell:()=>zd,stringifyShellLine:()=>zd,stringifySyml:()=>Da,stringifyValueArgument:()=>H0});var Nl=Et(()=>{rW();oW();nV()});var sV=_((Pxt,fT)=>{"use strict";var J6e=t=>{let e=!1,r=!1,o=!1;for(let a=0;a<t.length;a++){let n=t[a];e&&/[a-zA-Z]/.test(n)&&n.toUpperCase()===n?(t=t.slice(0,a)+"-"+t.slice(a),e=!1,o=r,r=!0,a++):r&&o&&/[a-zA-Z]/.test(n)&&n.toLowerCase()===n?(t=t.slice(0,a-1)+"-"+t.slice(a-1),o=r,r=!1,e=!0):(e=n.toLowerCase()===n&&n.toUpperCase()!==n,o=r,r=n.toUpperCase()===n&&n.toLowerCase()!==n)}return t},iV=(t,e)=>{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=a=>e.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(t)?t=t.map(a=>a.trim()).filter(a=>a.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=J6e(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(t))};fT.exports=iV;fT.exports.default=iV});var oV=_((bxt,X6e)=>{X6e.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{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:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{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:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{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:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{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:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE Line truncated
${this.candidates.map(({usage:a})=>`$ ${a}`).join(`
`)}`}else if(this.candidates.length===1){let[{usage:o}]=this.candidates;this.message=`Command not found; did you mean:
$ ${o}
${dT(e)}`}else this.message=`Command not found; did you mean one of:
${this.candidates.map(({usage:o},a)=>`${`${a}.`.padStart(4)} ${o}`).join(`
`)}
${dT(e)}`}},UD=class extends Error{constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives:
${this.usages.map((o,a)=>`${`${a}.`.padStart(4)} ${o}`).join(`
`)}
${dT(e)}`}},dT=t=>`While running ${t.filter(e=>e!==Hn.EndOfInput&&e!==Hn.EndOfPartialInput).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`});function Z6e(t){let e=t.split(`
`),r=e.filter(a=>a.match(/\S/)),o=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return e.map(a=>a.slice(o).trimRight()).join(`
`)}function Do(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,`
`),t=Z6e(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2
`),t=t.replace(/\n(\n)?\n*/g,(o,a)=>a||" "),r&&(t=t.split(/\n/).map(o=>{let a=o.match(/^\s*[*-][\t ]+(.*)/);if(!a)return o.match(/(.{1,80})(?: |$)/g).join(`
`);let n=o.length-o.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,"g")).map((u,A)=>" ".repeat(n)+(A===0?"- ":" ")+u).join(`
`)}).join(`
`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(o,a,n)=>e.code(a+n+a)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(o,a,n)=>e.bold(a+n+a)),t?`${t}
`:""}var mT,uV,AV,yT=Et(()=>{mT=Array(80).fill("\u2501");for(let t=0;t<=24;++t)mT[mT.length-t]=`\x1B[38;5;${232+t}m\u2501`;uV={header:t=>`\x1B[1m\u2501\u2501\u2501 ${t}${t.length<75?` ${mT.slice(t.length+5).join("")}`:":"}\x1B[0m`,bold:t=>`\x1B[1m${t}\x1B[22m`,error:t=>`\x1B[31m\x1B[1m${t}\x1B[22m\x1B[39m`,code:t=>`\x1B[36m${t}\x1B[39m`},AV={header:t=>t,bold:t=>t,error:t=>t,code:t=>t}});function Ko(t){return{...t,[Uw]:!0}}function Gu(t,e){return typeof t>"u"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function HD(t,{mergeName:e=!1}={}){let r=t.match(/^([^:]+): (.*)$/m);if(!r)return"validation failed";let[,o,a]=r;return e&&(a=a[0].toLowerCase()+a.slice(1)),a=o!=="."||!e?`${o.replace(/^\.(\[|$)/,"$1")}: ${a}`:`: ${a}`,a}function _w(t,e){return e.length===1?new st(`${t}${HD(e[0],{mergeName:!0})}`):new st(`${t}:
${e.map(r=>`
- ${HD(r)}`).join("")}`)}function $0(t,e,r){if(typeof r>"u")return e;let o=[],a=[],n=A=>{let p=e;return e=A,n.bind(null,p)};if(!r(e,{errors:o,coercions:a,coercion:n}))throw _w(`Invalid value for ${t}`,o);for(let[,A]of a)A();return e}var Uw,yf=Et(()=>{_D();Uw=Symbol("clipanion/isOption")});var Vo={};Vt(Vo,{KeyRelationship:()=>Yu,TypeAssertionError:()=>Yp,applyCascade:()=>jw,as:()=>mqe,assert:()=>hqe,assertWithErrors:()=>gqe,cascade:()=>YD,fn:()=>yqe,hasAtLeastOneKey:()=>DT,hasExactLength:()=>dV,hasForbiddenKeys:()=>Mqe,hasKeyRelationship:()=>Yw,hasMaxLength:()=>Cqe,hasMinLength:()=>Eqe,hasMutuallyExclusiveKeys:()=>Oqe,hasRequiredKeys:()=>Lqe,hasUniqueItems:()=>wqe,isArray:()=>qD,isAtLeast:()=>BT,isAtMost:()=>vqe,isBase64:()=>Fqe,isBoolean:()=>oqe,isDate:()=>lqe,isDict:()=>Aqe,isEnum:()=>Js,isHexColor:()=>Qqe,isISO8601:()=>kqe,isInExclusiveRange:()=>Pqe,isInInclusiveRange:()=>Dqe,isInstanceOf:()=>pqe,isInteger:()=>vT,isJSON:()=>Rqe,isLiteral:()=>pV,isLowerCase:()=>bqe,isMap:()=>uqe,isNegative:()=>Iqe,isNullable:()=>Nqe,isNumber:()=>wT,isObject:()=>hV,isOneOf:()=>IT,isOptional:()=>Tqe,isPartial:()=>fqe,isPayload:()=>aqe,isPositive:()=>Bqe,isRecord:()=>GD,isSet:()=>cqe,isString:()=>om,isTuple:()=>jD,isUUID4:()=>xqe,isUnknown:()=>CT,isUpperCase:()=>Sqe,makeTrait:()=>gV,makeValidator:()=>Hr,matchesRegExp:()=>qw,softAssert:()=>dqe});function qn(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":typeof t=="symbol"?`<${t.toString()}>`:Array.isArray(t)?"an array":JSON.stringify(t)}function sm(t,e){if(t.length===0)return"nothing";if(t.length===1)return qn(t[0]);let r=t.slice(0,-1),o=t[t.length-1],a=t.length>2?`, ${e} `:` ${e} `;return`${r.map(n=>qn(n)).join(", ")}${a}${qn(o)}`}function Gp(t,e){var r,o,a;return typeof e=="number"?`${(r=t?.p)!==null&&r!==void 0?r:"."}[${e}]`:$6e.test(e)?`${(o=t?.p)!==null&&o!==void 0?o:""}.${e}`:`${(a=t?.p)!==null&&a!==void 0?a:"."}[${JSON.stringify(e)}]`}function ET(t,e,r){return t===1?e:r}function pr({errors:t,p:e}={},r){return t?.push(`${e??"."}: ${r}`),!1}function iqe(t,e){return r=>{t[e]=r}}function Wu(t,e){return r=>{let o=t[e];return t[e]=r,Wu(t,e).bind(null,o)}}function Hw(t,e,r){let o=()=>(t(r()),a),a=()=>(t(e),o);return o}function CT(){return Hr({test:(t,e)=>!0})}function pV(t){return Hr({test:(e,r)=>e!==t?pr(r,`Expected ${qn(t)} (got ${qn(e)})`):!0})}function om(){return Hr({test:(t,e)=>typeof t!="string"?pr(e,`Expected a string (got ${qn(t)})`):!0})}function Js(t){let e=Array.isArray(t)?t:Object.values(t),r=e.every(a=>typeof a=="string"||typeof a=="number"),o=new Set(e);return o.size===1?pV([...o][0]):Hr({test:(a,n)=>o.has(a)?!0:r?pr(n,`Expected one of ${sm(e,"or")} (got ${qn(a)})`):pr(n,`Expected a valid enumeration value (got ${qn(a)})`)})}function oqe(){return Hr({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o=sqe.get(t);if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a boolean (got ${qn(t)})`)}return!0}})}function wT(){return Hr({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o;if(typeof t=="string"){let a;try{a=JSON.parse(t)}catch{}if(typeof a=="number")if(JSON.stringify(a)===t)o=a;else return pr(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a number (got ${qn(t)})`)}return!0}})}function aqe(t){return Hr({test:(e,r)=>{var o;if(typeof r?.coercions>"u")return pr(r,"The isPayload predicate can only be used with coercion enabled");if(typeof r.coercion>"u")return pr(r,"Unbound coercion result");if(typeof e!="string")return pr(r,`Expected a string (got ${qn(e)})`);let a;try{a=JSON.parse(e)}catch{return pr(r,`Expected a JSON string (got ${qn(e)})`)}let n={value:a};return t(a,Object.assign(Object.assign({},r),{coercion:Wu(n,"value")}))?(r.coercions.push([(o=r.p)!==null&&o!==void 0?o:".",r.coercion.bind(null,n.value)]),!0):!1}})}function lqe(){return Hr({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o;if(typeof t=="string"&&fV.test(t))o=new Date(t);else{let a;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch{}typeof n=="number"&&(a=n)}else typeof t=="number"&&(a=t);if(typeof a<"u")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))o=new Date(a*1e3);else return pr(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a date (got ${qn(t)})`)}return!0}})}function qD(t,{delimiter:e}={}){return Hr({test:(r,o)=>{var a;let n=r;if(typeof r=="string"&&typeof e<"u"&&typeof o?.coercions<"u"){if(typeoLine truncated
`;for(let o of e)r+=`
- ${o}`}super(r)}};Gw={missing:(t,e)=>t.has(e),undefined:(t,e,r)=>t.has(e)&&typeof r[e]<"u",nil:(t,e,r)=>t.has(e)&&r[e]!=null,falsy:(t,e,r)=>t.has(e)&&!!r[e]};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(Yu||(Yu={}));Uqe={[Yu.Forbids]:{expect:!1,message:"forbids using"},[Yu.Requires]:{expect:!0,message:"requires using"}}});var it,Wp=Et(()=>{yf();it=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:u}=await Promise.resolve().then(()=>(el(),Vo)),A=u(a(n()),r),p=[],h=[];if(!A(this,{errors:p,coercions:h}))throw _w("Invalid option schema",p);for(let[,I]of h)I()}else if(r!=null)throw new Error("Invalid command schema");let o=await this.execute();return typeof o<"u"?o:0}};it.isOption=Uw;it.Default=[]});function Pa(t){gT&&console.log(t)}function yV(){let t={nodes:[]};for(let e=0;e<un.CustomNode;++e)t.nodes.push(tl());return t}function _qe(t){let e=yV(),r=[],o=e.nodes.length;for(let a of t){r.push(o);for(let n=0;n<a.nodes.length;++n)CV(n)||e.nodes.push(Vqe(a.nodes[n],o));o+=a.nodes.length-un.CustomNode+1}for(let a of r)am(e,un.InitialNode,a);return e}function Oc(t,e){return t.nodes.push(e),t.nodes.length-1}function Hqe(t){let e=new Set,r=o=>{if(e.has(o))return;e.add(o);let a=t.nodes[o];for(let u of Object.values(a.statics))for(let{to:A}of u)r(A);for(let[,{to:u}]of a.dynamics)r(u);for(let{to:u}of a.shortcuts)r(u);let n=new Set(a.shortcuts.map(({to:u})=>u));for(;a.shortcuts.length>0;){let{to:u}=a.shortcuts.shift(),A=t.nodes[u];for(let[p,h]of Object.entries(A.statics)){let E=Object.prototype.hasOwnProperty.call(a.statics,p)?a.statics[p]:a.statics[p]=[];for(let I of h)E.some(({to:v})=>I.to===v)||E.push(I)}for(let[p,h]of A.dynamics)a.dynamics.some(([E,{to:I}])=>p===E&&h.to===I)||a.dynamics.push([p,h]);for(let p of A.shortcuts)n.has(p.to)||(a.shortcuts.push(p),n.add(p.to))}};r(un.InitialNode)}function qqe(t,{prefix:e=""}={}){if(gT){Pa(`${e}Nodes are:`);for(let r=0;r<t.nodes.length;++r)Pa(`${e} ${r}: ${JSON.stringify(t.nodes[r])}`)}}function jqe(t,e,r=!1){Pa(`Running a vm on ${JSON.stringify(e)}`);let o=[{node:un.InitialNode,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null,partial:!1,tokens:[]}}];qqe(t,{prefix:" "});let a=[Hn.StartOfInput,...e];for(let n=0;n<a.length;++n){let u=a[n],A=u===Hn.EndOfInput||u===Hn.EndOfPartialInput,p=n-1;Pa(` Processing ${JSON.stringify(u)}`);let h=[];for(let{node:E,state:I}of o){Pa(` Current node is ${E}`);let v=t.nodes[E];if(E===un.ErrorNode){h.push({node:E,state:I});continue}console.assert(v.shortcuts.length===0,"Shortcuts should have been eliminated by now");let x=Object.prototype.hasOwnProperty.call(v.statics,u);if(!r||n<a.length-1||x)if(x){let C=v.statics[u];for(let{to:R,reducer:L}of C)h.push({node:R,state:typeof L<"u"?WD(bT,L,I,u,p):I}),Pa(` Static transition to ${R} found`)}else Pa(" No static transition found");else{let C=!1;for(let R of Object.keys(v.statics))if(R.startsWith(u)){if(u===R)for(let{to:L,reducer:U}of v.statics[R])h.push({node:L,state:typeof U<"u"?WD(bT,U,I,u,p):I}),Pa(` Static transition to ${L} found`);else for(let{to:L}of v.statics[R])h.push({node:L,state:{...I,remainder:R.slice(u.length)}}),Pa(` Static transition to ${L} found (partial match)`);C=!0}C||Pa(" No partial static transition found")}if(!A)for(let[C,{to:R,reducer:L}]of v.dynamics)WD(zqe,C,I,u,p)&&(h.push({node:R,state:typeof L<"u"?WD(bT,L,I,u,p):I}),Pa(` Dynamic transition to ${R} found (via ${C})`))}if(h.length===0&&A&&e.length===1)return[{node:un.InitialNode,state:mV}];if(h.length===0)throw new im(e,o.filter(({node:E})=>E!==un.ErrorNode).map(({state:E})=>({usage:E.candidateUsage,reason:null})));if(h.every(({node:E})=>E===un.ErrorNode))throw new im(e,h.map(({state:E})=>({usage:E.candidateUsage,reason:E.errorMessage})));o=Yqe(h)}if(o.length>0){Pa(" Results:");for(let n of o)Pa(` - ${n.node} -> ${JSON.stringify(n.state)}`)}else Pa(" No results");return o}function Gqe(t,e,{endToken:r=Hn.EndOfInput}={}){let o=jqe(t,[...e,r]);return Wqe(e,o.map(({state:a})=>a))}function Yqe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function Wqe(t,e){let r=e.filter(v=>v.selectedIndex!==null),o=r.filter(v=>!v.partial);if(o.length>0&&(r=o),r.length===0)throw new Error;let a=r.filter(v=>v.selectedIndex===Z0||v.requiredOptions.every(x=>x.some(C=>v.options.find(R=>R.name===C))));if(a.length===0)throw new im(t,r.map(v=>({usage:v.candidateUsage,reason:null})));let n=0;for(let v of a)v.path.length>n&&(n=v.path.length);let u=a.filter(v=>v.path.length===n),A=v=>v.positionals.filter(({extra:x})=>!x).length+v.options.length,p=u.map(v=>({state:v,positionalCount:A(v)})),h=0;for(let{positionalCount:v}of p)v>h&&(h=v);let E=p.filter(({positionalCount:v})=>v===h).map(({state:v})=> Line truncated
`),this.context.stdout.write(`
`);let r=0;for(let o of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[o].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(`
`),this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands.
`)}}}});async function SV(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=kV(t);return Jo.from(r,e).runExit(o,a)}async function xV(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=kV(t);return Jo.from(r,e).run(o,a)}function kV(t){let e,r,o,a;switch(typeof process<"u"&&typeof process.argv<"u"&&(o=process.argv.slice(2)),t.length){case 1:r=t[0];break;case 2:t[0]&&t[0].prototype instanceof it||Array.isArray(t[0])?(r=t[0],Array.isArray(t[1])?o=t[1]:a=t[1]):(e=t[0],r=t[1]);break;case 3:Array.isArray(t[2])?(e=t[0],r=t[1],o=t[2]):t[0]&&t[0].prototype instanceof it||Array.isArray(t[0])?(r=t[0],o=t[1],a=t[2]):(e=t[0],r=t[1],a=t[2]);break;default:e=t[0],r=t[1],o=t[2],a=t[3];break}if(typeof o>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}}function bV(t){return t()}var PV,Jo,QV=Et(()=>{OD();VD();yT();vV();Wp();DV();PV=Symbol("clipanion/errorCommand");Jo=class t{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:o,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new KD({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=o,this.enableCapture=a,this.enableColors=n}static from(e,r={}){let o=new t(r),a=Array.isArray(e)?e:[e];for(let n of a)o.register(n);return o}register(e){var r;let o=new Map,a=new e;for(let p in a){let h=a[p];typeof h=="object"&&h!==null&&h[it.isOption]&&o.set(p,h)}let n=this.builder.command(),u=n.cliIndex,A=(r=e.paths)!==null&&r!==void 0?r:a.paths;if(typeof A<"u")for(let p of A)n.addPath(p);this.registrations.set(e,{specs:o,builder:n,index:u});for(let[p,{definition:h}]of o.entries())h(n,p);n.setContext({commandClass:e})}process(e,r){let{input:o,context:a,partial:n}=typeof e=="object"&&Array.isArray(e)?{input:e,context:r}:e,{contexts:u,process:A}=this.builder.compile(),p=A(o,{partial:n}),h={...t.defaultContext,...a};switch(p.selectedIndex){case Z0:{let E=JD.from(p,u);return E.context=h,E.tokens=p.tokens,E}default:{let{commandClass:E}=u[p.selectedIndex],I=this.registrations.get(E);if(typeof I>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let v=new E;v.context=h,v.tokens=p.tokens,v.path=p.path;try{for(let[x,{transformer:C}]of I.specs.entries())v[x]=C(I.builder,x,p,h);return v}catch(x){throw x[PV]=v,x}}break}}async run(e,r){var o,a;let n,u={...t.defaultContext,...r},A=(o=this.enableColors)!==null&&o!==void 0?o:u.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e,u)}catch(E){return u.stdout.write(this.error(E,{colored:A})),1}if(n.help)return u.stdout.write(this.usage(n,{colored:A,detailed:!0})),0;n.context=u,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:E=>this.definition(E),error:(E,I)=>this.error(E,I),format:E=>this.format(E),process:(E,I)=>this.process(E,{...u,...I}),run:(E,I)=>this.run(E,{...u,...I}),usage:(E,I)=>this.usage(E,I)};let p=this.enableCapture&&(a=BV(u))!==null&&a!==void 0?a:bV,h;try{h=await p(()=>n.validateAndExecute().catch(E=>n.catch(E).then(()=>0)))}catch(E){return u.stdout.write(this.error(E,{colored:A,command:n})),1}return h}async runExit(e,r){process.exitCode=await this.run(e,r)}definition(e,{colored:r=!1}={}){if(!e.usage)return null;let{usage:o}=this.getUsageByRegistration(e,{detailed:!1}),{usage:a,options:n}=this.getUsageByRegistration(e,{detailed:!0,inlineOptions:!1}),u=typeof e.usage.category<"u"?Do(e.usage.category,{format:this.format(r),paragraphs:!1}):void 0,A=typeof e.usage.description<"u"?Do(e.usage.description,{format:this.format(r),paragraphs:!1}):void 0,p=typeof e.usage.details<"u"?Do(e.usage.details,{format:this.format(r),paragraphs:!0}):void 0,h=typeof e.usage.examples<"u"?e.usage.examples.map(([E,I])=>[Do(E,{format:this.format(r),paragraphs:!1}),I.replace(/\$0/g,this.binaryName)]):void 0;return{path:o,usage:a,category:u,description:A,details:p,examples:h,options:n}}definitions({colored:e=!1}={}){let r=[];for(let o of this.registrations.keys()){let a=this.definition(o,{colored:e});a&&r.push(a)}return r}usage(e=null,{colored:r,detailed:o=!1,prefix:a="$ "}={}){var n;if(e===null){for(let p of this.registrations.keys()){let h=p.paths,E=typeof p.usage<"u";if(!h||h.length===0||h.length===1&&h[0].length===0||((n=h?.some(x=>x.length===0))!==null&&n!==void 0?n:!1))if(e){e=null;break}else e=p;else if(E){e=null;continue}}e&&(o=!0)}let u=e!==null&&e instanceof it?e.constructor:e,A="";if(u)if(o){let{description:p="",details:h="",examples:E=[]}=u.usage||{};p!==""&&(A+=Do(p,{format:this.format(r),paragraphs:!1}).replace(/^./,x=>x.toUpperCase()),A+=`
`),(h!==""||E.length>0)&&(A+=`${this.format(r).header("Usage")}
`,A+=`
`);let{usage:I,options:v}=this.getUsageByRegistration(u,{inlineOptions:!1});if(A+=`${this.format(r).bold(a)}${I}
`,v.length>0){A+=`
`,A+=`${this.format(r).header("Options")}
`;let x=v.reduce((C,R)=>Math.max(C,R.definition.length),0);A+=`
`;for(let{definition:C,description:R}of v)A+=` ${this.format(r).bold(C.padEnd(x))} ${Do(R,{format:this.format(r),paragraphs:!1})}`}if(h!==""&&(A+=`
`,A+=`${this.format(r).header("Details")}
`,A+=`
`,A+=Do(h,{format:this.format(r),paragraphs:!0})),E.length>0){A+=`
`,A+=`${this.format(r).header("Examples")}
`;for(let[x,C]of E)A+=`
`,A+=Do(x,{format:this.format(r),paragraphs:!1}),A+=`${C.replace(/^/m,` ${this.format(r).bold(a)}`).replace(/\$0/g,this.binaryName)}
`}}else{let{usage:p}=this.getUsageByRegistration(u);A+=`${this.format(r).bold(a)}${p}
`}else{let p=new Map;for(let[v,{index:x}]of this.registrations.entries()){if(typeof v.usage>"u")continue;let C=typeof v.usage.category<"u"?Do(v.usage.category,{format:this.format(r),paragraphs:!1}):null,R=p.get(C);typeof R>"u"&&p.set(C,R=[]);let{usage:L}=this.getUsageByIndex(x);R.push({commandClass:v,usage:L})}let h=Array.from(p.keys()).sort((v,x)=>v===null?-1:x===null?1:v.localeCompare(x,"en",{usage:"sort",caseFirst:"upper"})),E=typeof this.binaryLabel<"u",I=typeof this.binaryVersion<"u";E||I?(E&&I?A+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)}
`:E?A+=`${this.format(r).header(`${this.binaryLabel}`)}
`:A+=`${this.format(r).header(`${this.binaryVersion}`)}
`,A+=` ${this.format(r).bold(a)}${this.binaryName} <command>
`):A+=`${this.format(r).bold(a)}${this.binaryName} <command>
`;for(let v of h){let x=p.get(v).slice().sort((R,L)=>R.usage.localeCompare(L.usage,"en",{usage:"sort",caseFirst:"upper"})),C=v!==null?v.trim():"General commands";A+=`
`,A+=`${this.format(r).header(`${C}`)}
`;for(let{commandClass:R,usage:L}of x){let U=R.usage.description||"undocumented";A+=`
`,A+=` ${this.format(r).bold(L)}
`,A+=` ${Do(U,{format:this.format(r),paragraphs:!1})}`}}A+=`
`,A+=Do("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(r),paragraphs:!0})}return A}error(e,r){var o,{colored:a,command:n=(o=e[PV])!==null&&o!==void 0?o:null}=r===void 0?{}:r;(!e||typeof e!="object"||!("stack"in e))&&(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let u="",A=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");A==="Error"&&(A="Internal Error"),u+=`${this.format(a).error(A)}: ${e.message}
`;let p=e.clipanion;return typeof p<"u"?p.type==="usage"&&(u+=`
`,u+=this.usage(n)):e.stack&&(u+=`${e.stack.replace(/^.*\n/,"")}
`),u}format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:t.defaultContext.colorDepth>1)?uV:AV}getUsageByRegistration(e,r){let o=this.registrations.get(e);if(typeof o>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(o.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};Jo.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:IV()}});var Ww,FV=Et(()=>{Wp();Ww=class extends it{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)}
`)}};Ww.paths=[["--clipanion=definitions"]]});var Kw,RV=Et(()=>{Wp();Kw=class extends it{async execute(){this.context.stdout.write(this.cli.usage())}};Kw.paths=[["-h"],["--help"]]});function XD(t={}){return Ko({definition(e,r){var o;e.addProxy({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){return o.positionals.map(({value:a})=>a)}})}var xT=Et(()=>{yf()});var Vw,TV=Et(()=>{Wp();xT();Vw=class extends it{constructor(){super(...arguments),this.args=XD()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)}
`)}};Vw.paths=[["--clipanion=tokens"]]});var zw,NV=Et(()=>{Wp();zw=class extends it{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:"<unknown>"}
`)}};zw.paths=[["-v"],["--version"]]});var kT={};Vt(kT,{DefinitionsCommand:()=>Ww,HelpCommand:()=>Kw,TokensCommand:()=>Vw,VersionCommand:()=>zw});var LV=Et(()=>{FV();RV();TV();NV()});function MV(t,e,r){let[o,a]=Gu(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Ko({definition(p){p.addOption({names:u,arity:n,hidden:a?.hidden,description:a?.description,required:a.required})},transformer(p,h,E){let I,v=typeof o<"u"?[...o]:void 0;for(let{name:x,value:C}of E.options)A.has(x)&&(I=x,v=v??[],v.push(C));return typeof v<"u"?$0(I??h,v,a.validator):v}})}var OV=Et(()=>{yf()});function UV(t,e,r){let[o,a]=Gu(e,r??{}),n=t.split(","),u=new Set(n);return Ko({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:I,value:v}of h.options)u.has(I)&&(E=v);return E}})}var _V=Et(()=>{yf()});function HV(t,e,r){let[o,a]=Gu(e,r??{}),n=t.split(","),u=new Set(n);return Ko({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:I,value:v}of h.options)u.has(I)&&(E??(E=0),v?E+=1:E=0);return E}})}var qV=Et(()=>{yf()});function jV(t={}){return Ko({definition(e,r){var o;e.addRest({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){let a=u=>{let A=o.positionals[u];return A.extra===rl||A.extra===!1&&u<e.arity.leading.length},n=0;for(;n<o.positionals.length&&a(n);)n+=1;return o.positionals.splice(0,n).map(({value:u})=>u)}})}var GV=Et(()=>{VD();yf()});function Jqe(t,e,r){let[o,a]=Gu(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Ko({definition(p){p.addOption({names:u,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(p,h,E,I){let v,x=o;typeof a.env<"u"&&I.env[a.env]&&(v=a.env,x=I.env[a.env]);for(let{name:C,value:R}of E.options)A.has(C)&&(v=C,x=R);return typeof x=="string"?$0(v??h,x,a.validator):x}})}function Xqe(t={}){let{required:e=!0}=t;return Ko({definition(r,o){var a;r.addPositional({name:(a=t.name)!==null&&a!==void 0?a:o,required:t.required})},transformer(r,o,a){var n;for(let u=0;u<a.positionals.length;++u){if(a.positionals[u].extra===rl||e&&a.positionals[u].extra===!0||!e&&a.positionals[u].extra===!1)continue;let[A]=a.positionals.splice(u,1);return $0((n=t.name)!==null&&n!==void 0?n:o,A.value,t.validator)}}})}function YV(t,...e){return typeof t=="string"?Jqe(t,...e):Xqe(t)}var WV=Et(()=>{VD();yf()});var ge={};Vt(ge,{Array:()=>MV,Boolean:()=>UV,Counter:()=>HV,Proxy:()=>XD,Rest:()=>jV,String:()=>YV,applyValidator:()=>$0,cleanValidationError:()=>HD,formatError:()=>_w,isOptionSymbol:()=>Uw,makeCommandOption:()=>Ko,rerouteArguments:()=>Gu});var KV=Et(()=>{yf();xT();OV();_V();qV();GV();WV()});var Jw={};Vt(Jw,{Builtins:()=>kT,Cli:()=>Jo,Command:()=>it,Option:()=>ge,UsageError:()=>st,formatMarkdownish:()=>Do,run:()=>xV,runExit:()=>SV});var qt=Et(()=>{_D();yT();Wp();QV();LV();KV()});var VV=_((Tkt,Zqe)=>{Zqe.exports={name:"dotenv",version:"16.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://github.com/motdotla/dotenv?sponsor=1",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var ZV=_((Nkt,Ef)=>{var zV=ve("fs"),FT=ve("path"),$qe=ve("os"),eje=ve("crypto"),tje=VV(),RT=tje.version,rje=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function nje(t){let e={},r=t.toString();r=r.replace(/\r\n?/mg,`
`);let o;for(;(o=rje.exec(r))!=null;){let a=o[1],n=o[2]||"";n=n.trim();let u=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),u==='"'&&(n=n.replace(/\\n/g,`
`),n=n.replace(/\\r/g,"\r")),e[a]=n}return e}function ije(t){let e=XV(t),r=ks.configDotenv({path:e});if(!r.parsed)throw new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);let o=JV(t).split(","),a=o.length,n;for(let u=0;u<a;u++)try{let A=o[u].trim(),p=aje(r,A);n=ks.decrypt(p.ciphertext,p.key);break}catch(A){if(u+1>=a)throw A}return ks.parse(n)}function sje(t){console.log(`[dotenv@${RT}][INFO] ${t}`)}function oje(t){console.log(`[dotenv@${RT}][WARN] ${t}`)}function QT(t){console.log(`[dotenv@${RT}][DEBUG] ${t}`)}function JV(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function aje(t,e){let r;try{r=new URL(e)}catch(A){throw A.code==="ERR_INVALID_URL"?new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:[email protected]/vault/.env.vault?environment=development"):A}let o=r.password;if(!o)throw new Error("INVALID_DOTENV_KEY: Missing key part");let a=r.searchParams.get("environment");if(!a)throw new Error("INVALID_DOTENV_KEY: Missing environment part");let n=`DOTENV_VAULT_${a.toUpperCase()}`,u=t.parsed[n];if(!u)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${n} in your .env.vault file.`);return{ciphertext:u,key:o}}function XV(t){let e=FT.resolve(process.cwd(),".env");return t&&t.path&&t.path.length>0&&(e=t.path),e.endsWith(".vault")?e:`${e}.vault`}function lje(t){return t[0]==="~"?FT.join($qe.homedir(),t.slice(1)):t}function cje(t){sje("Loading env from encrypted .env.vault");let e=ks._parseVault(t),r=process.env;return t&&t.processEnv!=null&&(r=t.processEnv),ks.populate(r,e,t),{parsed:e}}function uje(t){let e=FT.resolve(process.cwd(),".env"),r="utf8",o=!!(t&&t.debug);t&&(t.path!=null&&(e=lje(t.path)),t.encoding!=null&&(r=t.encoding));try{let a=ks.parse(zV.readFileSync(e,{encoding:r})),n=process.env;return t&&t.processEnv!=null&&(n=t.processEnv),ks.populate(n,a,t),{parsed:a}}catch(a){return o&&QT(`Failed to load ${e} ${a.message}`),{error:a}}}function Aje(t){let e=XV(t);return JV(t).length===0?ks.configDotenv(t):zV.existsSync(e)?ks._configVault(t):(oje(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),ks.configDotenv(t))}function fje(t,e){let r=Buffer.from(e.slice(-64),"hex"),o=Buffer.from(t,"base64"),a=o.slice(0,12),n=o.slice(-16);o=o.slice(12,-16);try{let u=eje.createDecipheriv("aes-256-gcm",r,a);return u.setAuthTag(n),`${u.update(o)}${u.final()}`}catch(u){let A=u instanceof RangeError,p=u.message==="Invalid key length",h=u.message==="Unsupported state or unable to authenticate data";if(A||p){let E="INVALID_DOTENV_KEY: It must be 64 characters long (or more)";throw new Error(E)}else if(h){let E="DECRYPTION_FAILED: Please check your DOTENV_KEY";throw new Error(E)}else throw console.error("Error: ",u.code),console.error("Error: ",u.message),u}}function pje(t,e,r={}){let o=!!(r&&r.debug),a=!!(r&&r.override);if(typeof e!="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let n of Object.keys(e))Object.prototype.hasOwnProperty.call(t,n)?(a===!0&&(t[n]=e[n]),o&&QT(a===!0?`"${n}" is already defined and WAS overwritten`:`"${n}" is already defined and was NOT overwritten`)):t[n]=e[n]}var ks={configDotenv:uje,_configVault:cje,_parseVault:ije,config:Aje,decrypt:fje,parse:nje,populate:pje};Ef.exports.configDotenv=ks.configDotenv;Ef.exports._configVault=ks._configVault;Ef.exports._parseVault=ks._parseVault;Ef.exports.config=ks.config;Ef.exports.decrypt=ks.decrypt;Ef.exports.parse=ks.parse;Ef.exports.populate=ks.populate;Ef.exports=ks});var ez=_((Lkt,$V)=>{"use strict";$V.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var eg=_((Mkt,TT)=>{"use strict";var hje=ez(),tz=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,o=()=>{r--,e.length>0&&e.shift()()},a=(A,p,...h)=>{r++;let E=hje(A,...h);p(E),E.then(o,o)},n=(A,p,...h)=>{r<t?a(A,p,...h):e.push(a.bind(null,A,p,...h))},u=(A,...p)=>new Promise(h=>n(A,h,...p));return Object.defineProperties(u,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),u};TT.exports=tz;TT.exports.default=tz});function Ku(t){return`YN${t.toString(10).padStart(4,"0")}`}function ZD(t){let e=Number(t.slice(2));if(typeof wr[e]>"u")throw new Error(`Unknown message name: "${t}"`);return e}var wr,$D=Et(()=>{wr=(Me=>(Me[Me.UNNAMED=0]="UNNAMED",Me[Me.EXCEPTION=1]="EXCEPTION",Me[Me.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",Me[Me.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",Me[Me.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",Me[Me.BUILD_DISABLED=5]="BUILD_DISABLED",Me[Me.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",Me[Me.MUST_BUILD=7]="MUST_BUILD",Me[Me.MUST_REBUILD=8]="MUST_REBUILD",Me[Me.BUILD_FAILED=9]="BUILD_FAILED",Me[Me.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",Me[Me.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",Me[Me.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",Me[Me.FETC Line truncated
`,"\r","(",")","!","|","&","^"],!0,!1),ce=function($){return e.queryPattern.test($)},Ce=function($){return e.checkFn($)},de=be("whitespace"),Be=/^[ \t\n\r]/,Ee=Fe([" "," ",`
`,"\r"],!1,!1),g=0,me=0,we=[{line:1,column:1}],Ae=0,ne=[],Z=0,xe;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function Ne(){return t.substring(me,g)}function ht(){return Ue(me,g)}function H($,ie){throw ie=ie!==void 0?ie:Ue(me,g),b([be($)],t.substring(me,g),ie)}function rt($,ie){throw ie=ie!==void 0?ie:Ue(me,g),w($,ie)}function Te($,ie){return{type:"literal",text:$,ignoreCase:ie}}function Fe($,ie,Se){return{type:"class",parts:$,inverted:ie,ignoreCase:Se}}function ke(){return{type:"any"}}function Ye(){return{type:"end"}}function be($){return{type:"other",description:$}}function et($){var ie=we[$],Se;if(ie)return ie;for(Se=$-1;!we[Se];)Se--;for(ie=we[Se],ie={line:ie.line,column:ie.column};Se<$;)t.charCodeAt(Se)===10?(ie.line++,ie.column=1):ie.column++,Se++;return we[$]=ie,ie}function Ue($,ie){var Se=et($),Re=et(ie);return{start:{offset:$,line:Se.line,column:Se.column},end:{offset:ie,line:Re.line,column:Re.column}}}function S($){g<Ae||(g>Ae&&(Ae=g,ne=[]),ne.push($))}function w($,ie){return new sg($,null,null,ie)}function b($,ie,Se){return new sg(sg.buildMessage($,ie),$,ie,Se)}function y(){var $,ie,Se,Re,at,dt,jt,tr;if($=g,ie=F(),ie!==r){for(Se=[],Re=g,at=X(),at!==r?(t.charCodeAt(g)===124?(dt=n,g++):(dt=r,Z===0&&S(u)),dt===r&&(t.charCodeAt(g)===38?(dt=A,g++):(dt=r,Z===0&&S(p)),dt===r&&(t.charCodeAt(g)===94?(dt=h,g++):(dt=r,Z===0&&S(E)))),dt!==r?(jt=X(),jt!==r?(tr=F(),tr!==r?(at=[at,dt,jt,tr],Re=at):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r);Re!==r;)Se.push(Re),Re=g,at=X(),at!==r?(t.charCodeAt(g)===124?(dt=n,g++):(dt=r,Z===0&&S(u)),dt===r&&(t.charCodeAt(g)===38?(dt=A,g++):(dt=r,Z===0&&S(p)),dt===r&&(t.charCodeAt(g)===94?(dt=h,g++):(dt=r,Z===0&&S(E)))),dt!==r?(jt=X(),jt!==r?(tr=F(),tr!==r?(at=[at,dt,jt,tr],Re=at):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r);Se!==r?(me=$,ie=I(ie,Se),$=ie):(g=$,$=r)}else g=$,$=r;return $}function F(){var $,ie,Se,Re,at,dt;return $=g,t.charCodeAt(g)===33?(ie=v,g++):(ie=r,Z===0&&S(x)),ie!==r?(Se=F(),Se!==r?(me=$,ie=C(Se),$=ie):(g=$,$=r)):(g=$,$=r),$===r&&($=g,t.charCodeAt(g)===40?(ie=R,g++):(ie=r,Z===0&&S(L)),ie!==r?(Se=X(),Se!==r?(Re=y(),Re!==r?(at=X(),at!==r?(t.charCodeAt(g)===41?(dt=U,g++):(dt=r,Z===0&&S(z)),dt!==r?(me=$,ie=te(Re),$=ie):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r),$===r&&($=J())),$}function J(){var $,ie,Se,Re,at;if($=g,ie=X(),ie!==r){if(Se=g,Re=[],ae.test(t.charAt(g))?(at=t.charAt(g),g++):(at=r,Z===0&&S(le)),at!==r)for(;at!==r;)Re.push(at),ae.test(t.charAt(g))?(at=t.charAt(g),g++):(at=r,Z===0&&S(le));else Re=r;Re!==r?Se=t.substring(Se,g):Se=Re,Se!==r?(me=g,Re=ce(Se),Re?Re=void 0:Re=r,Re!==r?(me=$,ie=Ce(Se),$=ie):(g=$,$=r)):(g=$,$=r)}else g=$,$=r;return $}function X(){var $,ie;for(Z++,$=[],Be.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,Z===0&&S(Ee));ie!==r;)$.push(ie),Be.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,Z===0&&S(Ee));return Z--,$===r&&(ie=r,Z===0&&S(de)),$}if(xe=a(),xe!==r&&g===t.length)return xe;throw xe!==r&&g<t.length&&S(Ye()),b(ne,Ae<t.length?t.charAt(Ae):null,Ae<t.length?Ue(Ae,Ae+1):Ue(Ae,Ae))}ZJ.exports={SyntaxError:sg,parse:p9e}});var eX=_(fP=>{var{parse:h9e}=$J();fP.makeParser=(t=/[a-z]+/)=>(e,r)=>h9e(e,{queryPattern:t,checkFn:r});fP.parse=fP.makeParser()});var rX=_((RQt,tX)=>{"use strict";tX.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:[Line truncated
`:`
`)+r,a=o+1,o=t.indexOf(`
`,a)}while(o!==-1);return n+=t.substr(a),n};yX.exports={stringReplaceAll:b9e,stringEncaseCRLFWithFirstIndex:S9e}});var vX=_((HQt,BX)=>{"use strict";var x9e=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,CX=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,k9e=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Q9e=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,F9e=new Map([["n",`
`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function IX(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):F9e.get(t)||t}function R9e(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(k9e))r.push(a[2].replace(Q9e,(A,p,h)=>p?IX(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function T9e(t){CX.lastIndex=0;let e=[],r;for(;(r=CX.exec(t))!==null;){let o=r[1];if(r[2]){let a=R9e(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function wX(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}BX.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(x9e,(n,u,A,p,h,E)=>{if(u)a.push(IX(u));else if(p){let I=a.join("");a=[],o.push(r.length===0?I:wX(t,r)(I)),r.push({inverse:A,styles:T9e(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(wX(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var pN=_((qQt,SX)=>{"use strict";var lI=aI(),{stdout:cN,stderr:uN}=aN(),{stringReplaceAll:N9e,stringEncaseCRLFWithFirstIndex:L9e}=EX(),DX=["ansi","ansi","ansi256","ansi16m"],gm=Object.create(null),M9e=(t,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let r=cN?cN.level:0;t.level=e.level===void 0?r:e.level},AN=class{constructor(e){return PX(e)}},PX=t=>{let e={};return M9e(e,t),e.template=(...r)=>_9e(e.template,...r),Object.setPrototypeOf(e,gP.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=AN,e.template};function gP(t){return PX(t)}for(let[t,e]of Object.entries(lI))gm[t]={get(){let r=dP(this,fN(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};gm.visible={get(){let t=dP(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var bX=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of bX)gm[t]={get(){let{level:e}=this;return function(...r){let o=fN(lI.color[DX[e]][t](...r),lI.color.close,this._styler);return dP(this,o,this._isEmpty)}}};for(let t of bX){let e="bg"+t[0].toUpperCase()+t.slice(1);gm[e]={get(){let{level:r}=this;return function(...o){let a=fN(lI.bgColor[DX[r]][t](...o),lI.bgColor.close,this._styler);return dP(this,a,this._isEmpty)}}}}var O9e=Object.defineProperties(()=>{},{...gm,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),fN=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},dP=(t,e,r)=>{let o=(...a)=>U9e(o,a.length===1?""+a[0]:a.join(" "));return o.__proto__=O9e,o._generator=t,o._styler=e,o._isEmpty=r,o},U9e=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=N9e(e,r.close,r.open),r=r.parent;let n=e.indexOf(`
`);return n!==-1&&(e=L9e(e,a,o,n)),o+e+a},lN,_9e=(t,...e)=>{let[r]=e;if(!Array.isArray(r))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n<r.length;n++)a.push(String(o[n-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[n]));return lN===void 0&&(lN=vX()),lN(t,a.join(""))};Object.defineProperties(gP.prototype,gm);var cI=gP();cI.supportsColor=cN;cI.stderr=gP({level:uN?uN.level:0});cI.stderr.supportsColor=uN;cI.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"};SX.exports=cI});var mP=_(Ul=>{"use strict";Ul.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;Ul.find=(t,e)=>t.nodes.find(r=>r.type===e);Ul.exceedsLimit=(t,e,r=1,o)=>o===!1||!Ul.isInteger(t)||!Ul.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=o;Ul.escapeNode=(t,e=0,r)=>{let o=t.nodes[e];o&&(r&&o.type===r||o.type==="open"||o.type==="close")&&o.escaped!==!0&&(o.value="\\"+o.value,o.escaped=!0)};Ul.encloseBrace=t=>t.type!=="brace"||t.commas>>0+t.ranges>>0?!1:(t.invalid=!0,!0);Ul.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:!(t.commas>>0+t.ranges>>0)||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;Ul.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;Ul.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);Ul.flatten=(...t)=>{let e=[],r=o=>{for(let a=0;a<o.length;a++){let n=o[a];Array.isArray(n)?r(n,e):n!==void 0&&e.push(n)}return e};return r(t),e}});var yP=_((GQt,kX)=>{"use strict";var xX=mP();kX.exports=(t,e={})=>{let r=(o,a={})=>{let n=e.escapeInvalid&&xX.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A="";if(o.value)return(n||u)&&xX.isOpenOrClose(o)?"\\"+o.value:o.value;if(o.value)return o.value;if(o.nodes)for(let p of o.nodes)A+=r(p);return A};return r(t)}});var FX=_((YQt,QX)=>{"use strict";QX.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var HX=_((WQt,_X)=>{"use strict";var RX=FX(),og=(t,e,r)=>{if(RX(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(RX(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...r};typeof o.strictZeros=="boolean"&&(o.relaxZeros=o.strictZeros===!1);let a=String(o.relaxZeros),n=String(o.shorthand),u=String(o.capture),A=String(o.wrap),p=t+":"+e+"="+a+n+u+A;if(og.cache.hasOwnProperty(p))return og.cache[p].result;let h=Math.min(t,e),E=Math.max(t,e);if(Math.abs(h-E)===1){let R=t+"|"+e;return o.capture?`(${R})`:o.wrap===!1?R:`(?:${R})`}let I=UX(t)||UX(e),v={min:t,max:e,a:h,b:E},x=[],C=[];if(I&&(v.isPadded=I,v.maxLen=String(v.max).length),h<0){let R=E<0?Math.abs(E):1;C=TX(R,Math.abs(h),v,o),h=v.a=0}return E>=0&&(x=TX(h,E,v,o)),v.negatives=C,v.positives=x,v.result=H9e(C,x,o),o.capture===!0?v.result=`(${v.result})`:o.wrap!==!1&&x.length+C.length>1&&(v.result=`(?:${v.result})`),og.cache[p]=v,v.result};function H9e(t,e,r){let o=hN(t,e,"-",!1,r)||[],a=hN(e,t,"",!1,r)||[],n=hN(t,e,"-?",!0,r)||[];return o.concat(n).concat(a).join("|")}function q9e(t,e){let r=1,o=1,a=LX(t,r),n=new Set([e]);for(;t<=a&&a<=e;)n.add(a),r+=1,a=LX(t,r);for(a=MX(e+1,o)-1;t<a&&a<=e;)n.add(a),o+=1,a=MX(e+1,o)-1;return n=[...n],n.sort(Y9e),n}function j9e(t,e,r){if(t===e)return{pattern:t,count:[],digits:0};let o=G9e(t,e),a=o.length,n="",u=0;for(let A=0;A<a;A++){let[p,h]=o[A];p===h?n+=p:p!=="0"||h!=="9"?n+=W9e(p,h,r):u++}return u&&(n+=r.shorthand===!0?"\\d":"[0-9]"),{pattern:n,count:[u],digits:a}}function TX(t,e,r,o){let a=q9e(t,e),n=[],u=t,A;for(let p=0;p<a.length;p++){let h=a[p],E=j9e(String(u),String(h),o),I="";if(!r.isPadded&&A&&A.pattern===E.pattern){A.count.length>1&&A.count.pop(),A.count.push(E.count[0]),A.string=A.pattern+OX(A.count),u=h+1;continue}r.isPadded&&(I=K9e(h,r,o)),E.string=I+E.pattern+OX(E.count),n.push(E),u=h+1,A=E}return n}function hN(t,e,r,o,a){let n=[];for(let u of t){let{string:A}=u;!o&&!NX(e,"string",A)&&n.push(r+A),o&&NX(e,"string",A)&&n.push(r+A)}return n}function G9e(t,e){let r=[];for(let o=0;o<t.length;o++)r.push([t[o],e[o]]);return r}function Y9e(t,e){return t>e?1:e>t?-1:0}function NX(t,e,r){return t.some(o=>o[e]===r)}function LX(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function MX(t,e){return t-t%Math.pow(10,e)}function OX(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function W9e(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function UX(t){return/^-?(0+)\d/.test(t)}function K9e(t,e,r){if(!e.isPadded)return t;let o=Math.abs(e.maxLen-String(t).length),a=r.relaxZeros!==!1;switch(o){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${o}}`:`0{${o}}`}}og.cache={};og.clearCache=()=>og.cache={};_X.exports=og});var mN=_((KQt,zX)=>{"use strict";var V9e=ve("util"),GX=HX(),qX=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),z9e=t Line truncated
`,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 lZ=_((XQt,aZ)=>{"use strict";var o7e=yP(),{MAX_LENGTH:iZ,CHAR_BACKSLASH:yN,CHAR_BACKTICK:a7e,CHAR_COMMA:l7e,CHAR_DOT:c7e,CHAR_LEFT_PARENTHESES:u7e,CHAR_RIGHT_PARENTHESES:A7e,CHAR_LEFT_CURLY_BRACE:f7e,CHAR_RIGHT_CURLY_BRACE:p7e,CHAR_LEFT_SQUARE_BRACKET:sZ,CHAR_RIGHT_SQUARE_BRACKET:oZ,CHAR_DOUBLE_QUOTE:h7e,CHAR_SINGLE_QUOTE:g7e,CHAR_NO_BREAK_SPACE:d7e,CHAR_ZERO_WIDTH_NOBREAK_SPACE:m7e}=nZ(),y7e=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},o=typeof r.maxLength=="number"?Math.min(iZ,r.maxLength):iZ;if(t.length>o)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${o})`);let a={type:"root",input:t,nodes:[]},n=[a],u=a,A=a,p=0,h=t.length,E=0,I=0,v,x={},C=()=>t[E++],R=L=>{if(L.type==="text"&&A.type==="dot"&&(A.type="text"),A&&A.type==="text"&&L.type==="text"){A.value+=L.value;return}return u.nodes.push(L),L.parent=u,L.prev=A,A=L,L};for(R({type:"bos"});E<h;)if(u=n[n.length-1],v=C(),!(v===m7e||v===d7e)){if(v===yN){R({type:"text",value:(e.keepEscaping?v:"")+C()});continue}if(v===oZ){R({type:"text",value:"\\"+v});continue}if(v===sZ){p++;let L=!0,U;for(;E<h&&(U=C());){if(v+=U,U===sZ){p++;continue}if(U===yN){v+=C();continue}if(U===oZ&&(p--,p===0))break}R({type:"text",value:v});continue}if(v===u7e){u=R({type:"paren",nodes:[]}),n.push(u),R({type:"text",value:v});continue}if(v===A7e){if(u.type!=="paren"){R({type:"text",value:v});continue}u=n.pop(),R({type:"text",value:v}),u=n[n.length-1];continue}if(v===h7e||v===g7e||v===a7e){let L=v,U;for(e.keepQuotes!==!0&&(v="");E<h&&(U=C());){if(U===yN){v+=U+C();continue}if(U===L){e.keepQuotes===!0&&(v+=U);break}v+=U}R({type:"text",value:v});continue}if(v===f7e){I++;let U={type:"brace",open:!0,close:!1,dollar:A.value&&A.value.slice(-1)==="$"||u.dollar===!0,depth:I,commas:0,ranges:0,nodes:[]};u=R(U),n.push(u),R({type:"open",value:v});continue}if(v===p7e){if(u.type!=="brace"){R({type:"text",value:v});continue}let L="close";u=n.pop(),u.close=!0,R({type:L,value:v}),I--,u=n[n.length-1];continue}if(v===l7e&&I>0){if(u.ranges>0){u.ranges=0;let L=u.nodes.shift();u.nodes=[L,{type:"text",value:o7e(u)}]}R({type:"comma",value:v}),u.commas++;continue}if(v===c7e&&I>0&&u.commas===0){let L=u.nodes;if(I===0||L.length===0){R({type:"text",value:v});continue}if(A.type==="dot"){if(u.range=[],A.value+=v,A.type="range",u.nodes.length!==3&&u.nodes.length!==5){u.invalid=!0,u.ranges=0,A.type="text";continue}u.ranges++,u.args=[];continue}if(A.type==="range"){L.pop();let U=L[L.length-1];U.value+=A.value+v,A=U,u.ranges--;continue}R({type:"dot",value:v});continue}R({type:"text",value:v})}do if(u=n.pop(),u.type!=="root"){u.nodes.forEach(z=>{z.nodes||(z.type==="open"&&(z.isOpen=!0),z.type==="close"&&(z.isClose=!0),z.nodes||(z.type="text"),z.invalid=!0)});let L=n[n.length-1],U=L.nodes.indexOf(u);L.nodes.splice(U,1,...u.nodes)}while(n.length>0);return R({type:"eos"}),a};aZ.exports=y7e});var AZ=_((ZQt,uZ)=>{"use strict";var cZ=yP(),E7e=ZX(),C7e=tZ(),w7e=lZ(),nl=(t,e={})=>{let r=[];if(Array.isArray(t))for(let o of t){let a=nl.create(o,e);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(nl.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};nl.parse=(t,e={})=>w7e(t,e);nl.stringify=(t,e={})=>cZ(typeof t=="string"?nl.parse(t,e):t,e);nl.compile=(t,e={})=>(typeof t=="string"&&(t=nl.parse(t,e)),E7e(t,e));nl.expand=(t,e={})=>{typeof t=="string"&&(t=nl.parse(t,e));let r=C7e(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};nl.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?nl.compile(t,e):nl.expand(t,e);uZ.exports=nl});var AI=_(($Qt,dZ)=>{"use strict";var I7e=ve("path"),Vu="\\\\/",fZ=`[^${Vu}]`,Bf="\\.",B7e="\\+",v7e="\\?",CP="\\/",D7e="(?=.)",pZ="[^/]",EN=`(?:${CP}|$)`,hZ=`(?:^|${CP})`,CN=`${Bf}{1,2}${EN}`,P7e=`(?!${Bf})`,b7e=`(?!${hZ}${CN})`,S7e=`(?!${Bf}{0,1}${EN})`,x7e=`(?!${CN})`,k7e=`[^.${CP}]`,Q7e=`${pZ}*?`,gZ={DOT_LITERAL:Bf,PLUS_LITERAL:B7e,QMARK_LITERAL:v7e,SLASH_LITERAL:CP,ONE_CHAR:D7e,QMARK:pZ,END_ANCHOR:EN,DOTS_SLASH:CN,NO_DOT:P7e,NO_DOTS:b7e,NO_DOT_SLASH:S7e,NO_DOTS_SLASH:x7e,QMARK_NO_DOT:k7e,STAR:Q7e,START_ANCHOR:hZ},F7e={...gZ,SLASH_LITERAL:`[${Vu}]`,QMARK:fZ,STAR:`${fZ}*?`,DOTS_SLASH:`${Bf}{1,2}(?:[${Vu}]|$)`,NO_DOT:`(?!${Bf})`,NO_DOTS:`(?!(?:^|[${Vu}])${Bf}{1,2}(?:[${Vu}]|$))`,NO_DOT_SLASH:`(?!${Bf}{0,1}(?:[${Vu}]|$))`,NO_DOTS_SLASH:`(?!${Bf}{1,2}(?:[${Vu}]|$))`,QMARK_NO_DOT:`[^.${Vu}]`,START_ANCHOR:`(?:^|[${Vu}])`,END_ANCHOR:`(?:[${Vu}]|$)`},R7e={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:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",spacLine truncated
`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",e!==null?this.reportInfo(null,`${e} ${p}`):this.reportInfo(null,p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&(e!==null?this.reportInfo(null,`${e} ${n}`):this.reportInfo(null,n))}),r}}});var Wm,tO=Et(()=>{Wl();So();Wm=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));return o||null}getFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));if(!o)throw new Jt(11,`${qr(r.project.configuration,e)} isn't supported by any available fetcher`);return o}}});var yg,rO=Et(()=>{So();yg=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.getResolverByDescriptor(e,o).bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,o){return await this.getResolverByDescriptor(e,o).getCandidates(e,r,o)}async getSatisfying(e,r,o,a){return this.getResolverByDescriptor(e,a).getSatisfying(e,r,o,a)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));return o||null}getResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));if(!o)throw new Error(`${jn(r.project.configuration,e)} isn't supported by any available resolver`);return o}tryResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));return o||null}getResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));if(!o)throw new Error(`${qr(r.project.configuration,e)} isn't supported by any available resolver`);return o}}});var Km,nO=Et(()=>{Pt();So();Km=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Rs(e,a);return r.fetcher.getLocalPath(n,r)}async fetch(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Rs(e,a),u=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(e,u,r)}getLocatorFilename(e){return Hm(e)}async ensureVirtualLink(e,r,o){let a=r.packageFs.getRealPath(),n=o.project.configuration.get("virtualFolder"),u=this.getLocatorFilename(e),A=zs.makeVirtualPath(n,u,a),p=new Hu(A,{baseFs:r.packageFs,pathUtils:V});return{...r,packageFs:p}}}});var Qb,Ose=Et(()=>{Qb=class t{static{this.protocol="virtual:"}static isVirtualDescriptor(e){return!!e.range.startsWith(t.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(t.protocol)}supportsDescriptor(e,r){return t.isVirtualDescriptor(e)}supportsLocator(e,r){return t.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,o){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,o,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}});var Vm,iO=Et(()=>{Pt();mg();Vm=class{supports(e){return!!e.reference.startsWith(ei.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let o=this.getWorkspace(e,r).cwd;return{packageFs:new gn(o),prefixPath:It.dot,localPath:o}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(ei.protocol.length))}}});function KI(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Use(t){return typeof t>"u"?3:KI(t)?0:Array.isArray(t)?1:2}function aO(t,e){return Object.hasOwn(t,e)}function xrt(t){return KI(t)&&aO(t,"onConflict")&&typeof t.onConflict=="string"}function krt(t){if(typeof t>"u")return{onConflict:"default",value:t};if(!xrt(t))return{onConflict:"default",value:t};if(aO(t,"value"))return t;let{onConflict:e,...r}=t;return{onConflict:e,value:r}}function _se(t,e){let r=KI(t)&&aO(t,e)?t[e]:void 0;return krt(r)}function zm(t,e){return[t,e,Hse]}function lO(t){return Array.isArray(t)?t[2]===Hse:!1}function sO(t,e){if(KI(t)){let r={};for(let o of Object.keys(t))r[o]=sO(t[o],e);return zm(e,r)}return Array.isArray(t)?zm(e,t.map(r=>sO(r,e))):zm(e,t)}function oO(t,e,r,o,a){let n,u=[],A=a,p=0;for(let E=a-Line truncated
`,I.message,I.stack);var v=new Error("tunneling socket could not be established, cause="+I.message);v.code="ECONNRESET",e.request.emit("error",v),o.removeSocket(a)}};kf.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var o=this.requests.shift();o&&this.createSocket(o,function(a){o.request.onSocket(a)})}};function Yse(t,e){var r=this;kf.prototype.createSocket.call(r,t,function(o){var a=t.request.getHeader("host"),n=hO({},r.options,{socket:o,servername:a?a.replace(/:.*$/,""):t.host}),u=Frt.connect(0,n);r.sockets[r.sockets.indexOf(o)]=u,e(u)})}function Wse(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function hO(t){for(var e=1,r=arguments.length;e<r;++e){var o=arguments[e];if(typeof o=="object")for(var a=Object.keys(o),n=0,u=a.length;n<u;++n){var A=a[n];o[A]!==void 0&&(t[A]=o[A])}}return t}var ih;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?ih=function(){var t=Array.prototype.slice.call(arguments);typeof t[0]=="string"?t[0]="TUNNEL: "+t[0]:t.unshift("TUNNEL:"),console.error.apply(console,t)}:ih=function(){};Xm.debug=ih});var zse=_((hLt,Vse)=>{Vse.exports=Kse()});var Ff=_((Qf,Nb)=>{"use strict";Object.defineProperty(Qf,"__esModule",{value:!0});var Jse=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Urt(t){return Jse.includes(t)}var _rt=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Blob","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Jse];function Hrt(t){return _rt.includes(t)}var qrt=["null","undefined","string","number","bigint","boolean","symbol"];function jrt(t){return qrt.includes(t)}function Zm(t){return e=>typeof e===t}var{toString:Xse}=Object.prototype,zI=t=>{let e=Xse.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&Pe.domElement(t))return"HTMLElement";if(Hrt(e))return e},Xn=t=>e=>zI(e)===t;function Pe(t){if(t===null)return"null";switch(typeof t){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(Pe.observable(t))return"Observable";if(Pe.array(t))return"Array";if(Pe.buffer(t))return"Buffer";let e=zI(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}Pe.undefined=Zm("undefined");Pe.string=Zm("string");var Grt=Zm("number");Pe.number=t=>Grt(t)&&!Pe.nan(t);Pe.bigint=Zm("bigint");Pe.function_=Zm("function");Pe.null_=t=>t===null;Pe.class_=t=>Pe.function_(t)&&t.toString().startsWith("class ");Pe.boolean=t=>t===!0||t===!1;Pe.symbol=Zm("symbol");Pe.numericString=t=>Pe.string(t)&&!Pe.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));Pe.array=(t,e)=>Array.isArray(t)?Pe.function_(e)?t.every(e):!0:!1;Pe.buffer=t=>{var e,r,o,a;return(a=(o=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||o===void 0?void 0:o.call(r,t))!==null&&a!==void 0?a:!1};Pe.blob=t=>Xn("Blob")(t);Pe.nullOrUndefined=t=>Pe.null_(t)||Pe.undefined(t);Pe.object=t=>!Pe.null_(t)&&(typeof t=="object"||Pe.function_(t));Pe.iterable=t=>{var e;return Pe.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};Pe.asyncIterable=t=>{var e;return Pe.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};Pe.generator=t=>{var e,r;return Pe.iterable(t)&&Pe.function_((e=t)===null||e===void 0?void 0:e.next)&&Pe.function_((r=t)===null||r===void 0?void 0:r.throw)};Pe.asyncGenerator=t=>Pe.asyncIterable(t)&&Pe.function_(t.next)&&Pe.function_(t.throw);Pe.nativePromise=t=>Xn("Promise")(t);var Yrt=t=>{var e,r;return Pe.function_((e=t)===null||e===void 0?void 0:e.then)&&Pe.function_((r=t)===null||r===void 0?void 0:r.catch)};Pe.promise=t=>Pe.nativePromise(t)||Yrt(t);Pe.generatorFunction=Xn("GeneratorFunction");Pe.asyncGeneratorFunction=t=>zI(t)==="AsyncGeneratorFunction";Pe.asyncFunction=t=>zI(t)==="AsyncFunction";Pe.boundFunction=t=>Pe.function_(t)&&!t.hasOwnProperty("prototype");Pe.regExp=Xn("RegExp");Pe.date=Xn("Date");Pe.error=Xn("Error");Pe.map=t=>Xn("Map")(t);Pe.set=t=>Xn("Set")(t);Pe.weakMap=t=>Xn("WeakMap")(t);Pe.weakSet=t=>Xn("WeakSet")(t);Pe.int8Array=Xn("Int8Array");Pe.uint8Array=Xn("Uint8Array");Pe.uint8ClampedArray=Xn("Uint8ClampedArray");Pe.int16Array=Xn("Int16Array");Pe.uint16Array=Xn("Uint16Array");Pe.int32Array=Xn("Int32Array");Pe.uint32Array=Xn("Uint32Array");Pe.float32Array=Xn("Float32Array");Pe.float64Array=Xn("Float64Array");Pe.bigInt64Array=Xn("BigInt64Array");Pe.bigUint64Array=Xn("BigUint64Array");Pe.arrayBuffer=Xn("ArrayBuffer");Pe.sharedArrayBuffer=Xn("SharedArrayBuffer");P Line truncated
Please report this to https://github.com/szmarczak/http2-wrapper/`);C(R)}return}o[0].resolve(x);return}}if(u in this.queue){if(A in this.queue[u]){this.queue[u][A].listeners.push(...o),this._tryToCreateNewSession(u,A);return}}else this.queue[u]={};let p=()=>{u in this.queue&&this.queue[u][A]===h&&(delete this.queue[u][A],Object.keys(this.queue[u]).length===0&&delete this.queue[u])},h=()=>{let E=`${A}:${u}`,I=!1;try{let v=eit.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(E),...r});v[ra]=0,v[ty]=!1;let x=()=>v[ra]<v.remoteSettings.maxConcurrentStreams,C=!0;v.socket.once("session",L=>{this.tlsSessionCache.set(E,L)}),v.once("error",L=>{for(let{reject:U}of o)U(L);this.tlsSessionCache.delete(E)}),v.setTimeout(this.timeout,()=>{v.destroy()}),v.once("close",()=>{if(I){C&&this._freeSessionsCount--,this._sessionsCount--;let L=this.sessions[u];L.splice(L.indexOf(v),1),L.length===0&&delete this.sessions[u]}else{let L=new Error("Session closed without receiving a SETTINGS frame");L.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:U}of o)U(L);p()}this._tryToCreateNewSession(u,A)});let R=()=>{if(!(!(u in this.queue)||!x())){for(let L of v[Kl])if(L in this.queue[u]){let{listeners:U}=this.queue[u][L];for(;U.length!==0&&x();)U.shift().resolve(v);let z=this.queue[u];if(z[L].listeners.length===0&&(delete z[L],Object.keys(z).length===0)){delete this.queue[u];break}if(!x())break}}};v.on("origin",()=>{v[Kl]=v.originSet,x()&&(R(),UO(this.sessions[u],v))}),v.once("remoteSettings",()=>{if(v.ref(),v.unref(),this._sessionsCount++,h.destroyed){let L=new Error("Agent has been destroyed");for(let U of o)U.reject(L);v.destroy();return}v[Kl]=v.originSet;{let L=this.sessions;if(u in L){let U=L[u];U.splice(nit(U,v,iit),0,v)}else L[u]=[v]}this._freeSessionsCount+=1,I=!0,this.emit("session",v),R(),p(),v[ra]===0&&this._freeSessionsCount>this.maxFreeSessions&&v.close(),o.length!==0&&(this.getSession(A,r,o),o.length=0),v.on("remoteSettings",()=>{R(),UO(this.sessions[u],v)})}),v[Voe]=v.request,v.request=(L,U)=>{if(v[ty])throw new Error("The session is gracefully closing. No new streams are allowed.");let z=v[Voe](L,U);return v.ref(),++v[ra],v[ra]===v.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,z.once("close",()=>{if(C=x(),--v[ra],!v.destroyed&&!v.closed&&(sit(this.sessions[u],v),x()&&!v.closed)){C||(this._freeSessionsCount++,C=!0);let te=v[ra]===0;te&&v.unref(),te&&(this._freeSessionsCount>this.maxFreeSessions||v[ty])?v.close():(UO(this.sessions[u],v),R())}}),z}}catch(v){for(let x of o)x.reject(v);p()}};h.listeners=o,h.completed=!1,h.destroyed=!1,this.queue[u][A]=h,this._tryToCreateNewSession(u,A)})}request(e,r,o,a){return new Promise((n,u)=>{this.getSession(e,r,[{reject:u,resolve:A=>{try{n(A.request(o,a))}catch(p){u(p)}}}])})}createConnection(e,r){return t.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let o=e.port||443,a=e.hostname||e.host;return typeof r.servername>"u"&&(r.servername=a),$nt.connect(o,a,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[ra]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let o of r)o.destroy(e);for(let r of Object.values(this.queue))for(let o of Object.values(r))o.destroyed=!0;this.queue={}}get freeSessions(){return zoe({agent:this,isFree:!0})}get busySessions(){return zoe({agent:this,isFree:!1})}};Cg.kCurrentStreamsCount=ra;Cg.kGracefullyClosing=ty;Xoe.exports={Agent:Cg,globalAgent:new Cg}});var qO=_((_Lt,Zoe)=>{"use strict";var{Readable:oit}=ve("stream"),HO=class extends oit{constructor(e,r){super({highWaterMark:r,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,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Zoe.exports=HO});var jO=_((HLt,$oe)=>{"use strict";$oe.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var tae=_((qLt,eae)=>{"use strict";eae.exports=(t,e,r)=>{for(let o of r)t.on(o,(...a)=>e.emit(o,...a))}});var nae=_((jLt,rae)=>{"use strict";rae.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var sae=_((YLt,iae)=>{"use strict";var ry=(t,e,r)=>{iae.exports[e]=class extends t{constructor(...a){super(typeof r=="string"?r: Line truncated
`).reverse(),A=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(`
`).reverse();for(;A.length!==0&&A[0]===u[0];)u.shift();this.stack=`${this.stack.slice(0,n)}${u.reverse().join(`
`)}${A.reverse().join(`
`)}`}}};Bn.RequestError=Ji;var Zb=class extends Ji{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Bn.MaxRedirectsError=Zb;var $b=class extends Ji{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Bn.HTTPError=$b;var eS=class extends Ji{constructor(e,r){super(e.message,e,r),this.name="CacheError"}};Bn.CacheError=eS;var tS=class extends Ji{constructor(e,r){super(e.message,e,r),this.name="UploadError"}};Bn.UploadError=tS;var rS=class extends Ji{constructor(e,r,o){super(e.message,e,o),this.name="TimeoutError",this.event=e.event,this.timings=r}};Bn.TimeoutError=rS;var n1=class extends Ji{constructor(e,r){super(e.message,e,r),this.name="ReadError"}};Bn.ReadError=n1;var nS=class extends Ji{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Bn.UnsupportedProtocolError=nS;var pst=["socket","connect","continue","information","upgrade","timeout"],iS=class extends Hae.Duplex{constructor(e,r={},o){super({autoDestroy:!1,highWaterMark:0}),this[iy]=0,this[oy]=0,this.requestInitialized=!1,this[zb]=new Set,this.redirects=[],this[ay]=!1,this[Jb]=!1,this[r1]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),n=()=>this._lockWrite();this.on("pipe",h=>{h.prependListener("data",a),h.on("data",n),h.prependListener("end",a),h.on("end",n)}),this.on("unpipe",h=>{h.off("data",a),h.off("data",n),h.off("end",a),h.off("end",n)}),this.on("pipe",h=>{h instanceof p4.IncomingMessage&&(this.options.headers={...h.headers,...this.options.headers})});let{json:u,body:A,form:p}=r;if((u||A||p)&&this._lockWrite(),Bn.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,o)}catch(h){ot.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(h);return}(async()=>{var h;try{this.options.body instanceof Wit.ReadStream&&await ust(this.options.body);let{url:E}=this.options;if(!E)throw new TypeError("Missing `url` property");if(this.requestUrl=E.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(h=this[$s])===null||h===void 0||h.destroy();return}for(let I of this[r1])I();this[r1].length=0,this.requestInitialized=!0}catch(E){if(E instanceof Ji){this._beforeError(E);return}this.destroyed||this.destroy(E)}})()}static normalizeArguments(e,r,o){var a,n,u,A,p;let h=r;if(ot.default.object(e)&&!ot.default.urlInstance(e))r={...o,...e,...r};else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...o,...r},e!==void 0&&(r.url=e),ot.default.urlInstance(r.url)&&(r.url=new sh.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),ot.assert.any([ot.default.string,ot.default.undefined],r.method),ot.assert.any([ot.default.object,ot.default.undefined],r.headers),ot.assert.any([ot.default.string,ot.default.urlInstance,ot.default.undefined],r.prefixUrl),ot.assert.any([ot.default.object,ot.default.undefined],r.cookieJar),ot.assert.any([ot.default.object,ot.default.string,ot.default.undefined],r.searchParams),ot.assert.any([ot.default.object,ot.default.string,ot.default.undefined],r.cache),ot.assert.any([ot.default.object,ot.default.number,ot.default.undefined],r.timeout),ot.assert.any([ot.default.object,ot.default.undefined],r.context),ot.assert.any([ot.default.object,ot.default.undefined],r.hooks),ot.assert.any([ot.default.boolean,ot.default.undefined],r.decompress),ot.assert.any([ot.default.boolean,ot.default.undefined],r.ignoreInvalidCookies),ot.assert.any([ot.default.boolean,ot.default.undefined],r.followRedirect),ot.assert.any([ot.default.number,ot.default.undefined],r.maxRedirects),ot.assert.any([ot.default.boolean,ot.default.undefined],r.throwHttpErrors),ot.assert.any([ot.default.boolean,ot.default.undefined],r.http2),ot.assert.any([ot.default.boolean,ot.default.undefined],r.allowGetBody),ot.assert.any([ot.default.string,ot.default.undefined],r.localAddress),ot.assert.any([Kae.isDnsLookupIpVersion,ot.default.undefined],r.dnsLookupIpVersion),ot.assert.any([ot.default.object,ot.default.undefined],r.https),ot.assert.any([ot.default.boolean,ot.default.undefined],r.rejectUnauthorized),r.https&&(ot.assert.any([ot.default.boolean,ot.default.undefined],r.https.rejectUnauthorized),ot.assert.any([ot.default.function_,ot.default.undefined],r.https.checkServerIdentity),ot.assert.any([ot.default.string,ot.default.object,ot.default.array,ot.default.undefined],r.https.certificateAuthority),ot.assert.any([ot.default.string,ot.default.object,ot.default.array,ot.default.undefined],r.https.key),ot.assert.any([ot.default.string,ot.default.object,ot.default.array,ot.default.undefined],r.https.certificate),ot.assert.any([ot.default.string,ot.default.undefined],r.https.passphrase),ot.assert.any([ot.default.string,ot.default.buffer,ot.default.array,ot.default.undefined],r.httpLine truncated
`)[3];return Zst(e)}function Q4(){return typeof AS.default.availableParallelism<"u"?AS.default.availableParallelism():Math.max(1,AS.default.cpus().length)}var AS,Yst,Ple,Wst,Kst,ble,Sle,Jst,Xst,fS=Et(()=>{Pt();AS=Ze(ve("os"));pS();ql();Yst=Number(process.versions.node.split(".")[0]),Ple=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Wst=typeof Ple<"u"?async t=>{try{return await F4(Ple,[t],{cwd:V.cwd()}),!0}catch{return!1}}:void 0,Kst="/usr/bin/ldd";Jst=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Xst=/\((\S*)(?::(\d+))(?::(\d+))\)/});function M4(t,e,r,o,a){let n=VI(r);if(o.isArray||o.type==="ANY"&&Array.isArray(n))return Array.isArray(n)?n.map((u,A)=>R4(t,`${e}[${A}]`,u,o,a)):String(n).split(/,/).map(u=>R4(t,e,u,o,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return R4(t,e,r,o,a)}function R4(t,e,r,o,a){let n=VI(r);switch(o.type){case"ANY":return Fb(n);case"SHAPE":return not(t,e,r,o,a);case"MAP":return iot(t,e,r,o,a)}if(n===null&&!o.isNullable&&o.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if(o.values?.includes(n))return n;let A=(()=>{if(o.type==="BOOLEAN"&&typeof n!="string")return QI(n);if(typeof n!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof n}`);let p=YP(n,{env:t.env});switch(o.type){case"ABSOLUTE_PATH":{let h=a,E=cO(r);return E&&E[0]!=="<"&&(h=V.dirname(E)),V.resolve(h,ue.toPortablePath(p))}case"LOCATOR_LOOSE":return bf(p,!1);case"NUMBER":return parseInt(p);case"LOCATOR":return bf(p);case"BOOLEAN":return QI(p);default:return p}})();if(o.values&&!o.values.includes(A))throw new Error(`Invalid value, expected one of ${o.values.join(", ")}`);return A}function not(t,e,r,o,a){let n=VI(r);if(typeof n!="object"||Array.isArray(n))throw new st(`Object configuration settings "${e}" must be an object`);let u=O4(t,o,{ignoreArrays:!0});if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=`${e}.${A}`;if(!o.properties[A])throw new st(`Unrecognized configuration settings found: ${e}.${A} - run "yarn config -v" to see the list of settings supported in Yarn`);u.set(A,M4(t,h,p,o.properties[A],a))}return u}function iot(t,e,r,o,a){let n=VI(r),u=new Map;if(typeof n!="object"||Array.isArray(n))throw new st(`Map configuration settings "${e}" must be an object`);if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=o.normalizeKeys?o.normalizeKeys(A):A,E=`${e}['${h}']`,I=o.valueDefinition;u.set(h,M4(t,E,p,I,a))}return u}function O4(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!r)return[];let o=new Map;for(let[a,n]of Object.entries(e.properties))o.set(a,O4(t,n));return o}case"MAP":return e.isArray&&!r?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:t.projectCwd===null?Array.isArray(e.default)?e.default.map(o=>V.normalize(o)):V.isAbsolute(e.default)?V.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(o=>V.resolve(t.projectCwd,o)):V.resolve(t.projectCwd,e.default);default:return e.default}}function gS(t,e,r){if(e.type==="SECRET"&&typeof t=="string"&&r.hideSecrets)return rot;if(e.type==="ABSOLUTE_PATH"&&typeof t=="string"&&r.getNativePaths)return ue.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let o=[];for(let a of t)o.push(gS(a,e,r));return o}if(e.type==="MAP"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=gS(n,e.valueDefinition,r);typeof u<"u"&&o.set(a,u)}return o}if(e.type==="SHAPE"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=e.properties[a],A=gS(n,u,r);typeof A<"u"&&o.set(a,A)}return o}return t}function sot(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(dS)&&(e=(0,kle.default)(e.slice(dS.length)),t[e]=r);return t}function N4(){let t=`${dS}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return L4}async function xle(t){try{return await oe.readFilePromise(t)}catch{return Buffer.of()}}async function oot(t,e){return Buffer.compare(...await Promise.all([xle(t),xle(e)]))===0}async function aot(t,e){let[r,o]=await Promise.all([oe.statPromise(t),oe.statPromise(e)]);return r.dev===o.dev&&r.ino===o.ino}async function cot({configuration:t,selfPath:e}){let r=t.get("yarnPath");return t.get("ignorePath")||r===null||r===e||await lot(r,e)?null:r}var kle,Tf,Qle,Fle,Rle,T4,eot,l1,tot,ly,dS,L4,rot,c1,Tle,mS,hS,lot,Ke,u1=Et(()=>{Pt();Nl();kle=Ze(sV()),Tf=Ze(X0());qt();Qle=Ze(ZV()),Fle=ve("module"),Rle=Ze(eg()),T4=ve("stream");use();Gm();tO();rO();nO();Ose();iO();mg();jse();Tb();jl();rh();uS();ql();fS();xf();So();eot=function(){if(!Tf.GITHUB_ACTIONS||!process.env.GITHUB_EVENT_PATH)return!1;let t=ue.toPortablePath(process.env.GITHUB_EVENT_PATH),e;try{e=oe.readJsonSync(t)}catch{ret Line truncated
`);return{stdout:n,stderr:u}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let o of r.resolvers||[])e.push(new o);return new yg([new Qb,new ei,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let o of r.fetchers||[])e.push(new o);return new Wm([new Km,new Vm,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let o of r.linkers||[])e.push(new o);return e}getSupportedArchitectures(){let e=a1(),r=this.get("supportedArchitectures"),o=r.get("os");o!==null&&(o=o.map(u=>u==="current"?e.os:u));let a=r.get("cpu");a!==null&&(a=a.map(u=>u==="current"?e.cpu:u));let n=r.get("libc");return n!==null&&(n=ol(n,u=>u==="current"?e.libc??ol.skip:u)),{os:o,cpu:a,libc:n}}isInteractive({interactive:e,stdout:r}){return r.isTTY?e??this.get("preferInteractive"):!1}async getPackageExtensions(){if(this.packageExtensions!==null)return this.packageExtensions;this.packageExtensions=new Map;let e=this.packageExtensions,r=(o,a,{userProvided:n=!1}={})=>{if(!Qa(o.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let u=new Ut;u.load(a,{yamlCompatibilityMode:!0});let A=xI(e,o.identHash),p=[];A.push([o.range,p]);let h={status:"inactive",userProvided:n,parentDescriptor:o};for(let E of u.dependencies.values())p.push({...h,type:"Dependency",descriptor:E});for(let E of u.peerDependencies.values())p.push({...h,type:"PeerDependency",descriptor:E});for(let[E,I]of u.peerDependenciesMeta)for(let[v,x]of Object.entries(I))p.push({...h,type:"PeerDependencyMeta",selector:E,key:v,value:x})};await this.triggerHook(o=>o.registerPackageExtensions,this,r);for(let[o,a]of this.get("packageExtensions"))r(nh(o,!0),GP(a),{userProvided:!0});return e}normalizeLocator(e){return Qa(e.reference)?Rs(e,`${this.get("defaultProtocol")}${e.reference}`):ly.test(e.reference)?Rs(e,`${this.get("defaultProtocol")}${e.reference}`):e}normalizeDependency(e){return Qa(e.range)?In(e,`${this.get("defaultProtocol")}${e.range}`):ly.test(e.range)?In(e,`${this.get("defaultProtocol")}${e.range}`):e}normalizeDependencyMap(e){return new Map([...e].map(([r,o])=>[r,this.normalizeDependency(o)]))}normalizePackage(e,{packageExtensions:r}){let o=OI(e),a=r.get(e.identHash);if(typeof a<"u"){let u=e.version;if(u!==null){for(let[A,p]of a)if(tA(u,A))for(let h of p)switch(h.status==="inactive"&&(h.status="redundant"),h.type){case"Dependency":typeof o.dependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.dependencies.set(h.descriptor.identHash,this.normalizeDependency(h.descriptor)));break;case"PeerDependency":typeof o.peerDependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.peerDependencies.set(h.descriptor.identHash,h.descriptor));break;case"PeerDependencyMeta":{let E=o.peerDependenciesMeta.get(h.selector);(typeof E>"u"||!Object.hasOwn(E,h.key)||E[h.key]!==h.value)&&(h.status="active",al(o.peerDependenciesMeta,h.selector,()=>({}))[h.key]=h.value)}break;default:cL(h)}}}let n=u=>u.scope?`${u.scope}__${u.name}`:`${u.name}`;for(let u of o.peerDependenciesMeta.keys()){let A=ea(u);o.peerDependencies.has(A.identHash)||o.peerDependencies.set(A.identHash,In(A,"*"))}for(let u of o.peerDependencies.values()){if(u.scope==="types")continue;let A=n(u),p=eA("types",A),h=rn(p);o.peerDependencies.has(p.identHash)||o.peerDependenciesMeta.has(h)||(o.peerDependencies.set(p.identHash,In(p,"*")),o.peerDependenciesMeta.set(h,{optional:!0}))}return o.dependencies=new Map(Fs(o.dependencies,([,u])=>xa(u))),o.peerDependencies=new Map(Fs(o.peerDependencies,([,u])=>xa(u))),o}getLimit(e){return al(this.limits,e,()=>(0,Rle.default)(this.get(e)))}async triggerHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);n&&await n(...r)}}async triggerMultipleHooks(e,r){for(let o of r)await this.triggerHook(e,...o)}async reduceHook(e,r,...o){let a=r;for(let n of this.plugins.values()){let u=n.hooks;if(!u)continue;let A=e(u);A&&(a=await A(a,...o))}return a}async firstHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);if(!n)continue;let u=await n(...r);if(typeof u<"u")return u}return null}}});var Ur={};Vt(Ur,{EndStrategy:()=>q4,ExecError:()=>yS,PipeError:()=>A1,execvp:()=>F4,pipevp:()=>Wc});function Ig(t){return t!==null&&typeof t.fd=="number"}function U4(){}function _4(){for(let t of Bg)t.kill()}async function Wc(t,e,{cwd:r,env:o=process.env,strict:a=!1,stdin:n=null,stdout:u,stderr:A,end:p=2}){let h=["pipe","pipe","pipe"];n===null?h[0]="ignore":Ig(n)&&(h[0]=n),Ig(u)&&(h[1]=u),Ig(A)&&(h[2]=A);let E=(0,H4.default)(t,e,{cwd:ue.fromPortablePath(r),env:{...o,PWD:ue.fromPortablePath(r)},stdio:h});Bg.add(E),Bg.size===1&&(process.on("SIGINT",U4),process.on("SIGTERM",_4)),!Ig(n)&&n!==null&&n.pipe(E.stdin),Ig(u)||E.stdout.pipe(u,{end:!1}),Ig(A)||E.stderr.pipe(A,{end:!1});let I=()=>{for(let v of new Set([u,A]))Ig(v)||v.end()};return new Promise((v,x)=>{E.on("error",C=>{Bg.delete(E),Bg.size===0&&(process.off("SIGINT",U4),process.off("SIGTERM",_4)),(p===2||p Line truncated
This command will run a command using Yarn's portable shell.
Make sure to escape glob patterns, redirections, and other features that might be expanded by your own shell.
Note: To escape something from Yarn's shell, you might have to escape it twice, the first time from your own shell.
Note: Don't use this command in Yarn scripts, as Yarn's shell is automatically used.
For a list of features, visit: https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-shell/README.md.
`,examples:[["Run a simple command","$0 echo Hello"],["Run a command with a glob pattern","$0 echo '*.js'"],["Run a command with a redirection","$0 echo Hello World '>' hello.txt"],["Run a command with an escaped glob pattern (The double escape is needed in Unix shells)",`$0 echo '"*.js"'`],["Run a command with a variable (Double quotes are needed in Unix shells, to prevent them from expanding the variable)",'$0 "GREETING=Hello echo $GREETING World"']]}}async execute(){let r=this.args.length>0?`${this.commandName} ${this.args.join(" ")}`:this.commandName;return await cy(r,[],{cwd:ue.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}}});var ll,Jle=Et(()=>{ll=class extends Error{constructor(e){super(e),this.name="ShellError"}}});var vS={};Vt(vS,{fastGlobOptions:()=>$le,isBraceExpansion:()=>Z4,isGlobPattern:()=>dot,match:()=>mot,micromatchOptions:()=>BS});function dot(t){if(!IS.default.scan(t,BS).isGlob)return!1;try{IS.default.parse(t,BS)}catch{return!1}return!0}function mot(t,{cwd:e,baseFs:r}){return(0,Xle.default)(t,{...$le,cwd:ue.fromPortablePath(e),fs:mD(Zle.default,new _p(r))})}function Z4(t){return IS.default.scan(t,BS).isBrace}var Xle,Zle,IS,BS,$le,ece=Et(()=>{Pt();Xle=Ze(Cb()),Zle=Ze(ve("fs")),IS=Ze($o()),BS={strictBrackets:!0},$le={onlyDirectories:!1,onlyFiles:!1}});function $4(){}function eU(){for(let t of vg)t.kill()}function ice(t,e,r,o){return a=>{let n=a[0]instanceof iA.Transform?"pipe":a[0],u=a[1]instanceof iA.Transform?"pipe":a[1],A=a[2]instanceof iA.Transform?"pipe":a[2],p=(0,rce.default)(t,e,{...o,stdio:[n,u,A]});return vg.add(p),vg.size===1&&(process.on("SIGINT",$4),process.on("SIGTERM",eU)),a[0]instanceof iA.Transform&&a[0].pipe(p.stdin),a[1]instanceof iA.Transform&&p.stdout.pipe(a[1],{end:!1}),a[2]instanceof iA.Transform&&p.stderr.pipe(a[2],{end:!1}),{stdin:p.stdin,promise:new Promise(h=>{p.on("error",E=>{switch(vg.delete(p),vg.size===0&&(process.off("SIGINT",$4),process.off("SIGTERM",eU)),E.code){case"ENOENT":a[2].write(`command not found: ${t}
`),h(127);break;case"EACCES":a[2].write(`permission denied: ${t}
`),h(128);break;default:a[2].write(`uncaught error: ${E.message}
`),h(1);break}}),p.on("close",E=>{vg.delete(p),vg.size===0&&(process.off("SIGINT",$4),process.off("SIGTERM",eU)),h(E!==null?E:129)})})}}}function sce(t){return e=>{let r=e[0]==="pipe"?new iA.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}function DS(t,e){return rU.start(t,e)}function tce(t,e=null){let r=new iA.PassThrough,o=new nce.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(`
`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",t(e!==null?`${e} ${p}`:p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&t(e!==null?`${e} ${n}`:n)}),r}function oce(t,{prefix:e}){return{stdout:tce(r=>t.stdout.write(`${r}
`),t.stdout.isTTY?e:null),stderr:tce(r=>t.stderr.write(`${r}
`),t.stderr.isTTY?e:null)}}var rce,iA,nce,vg,Jl,tU,rU,nU=Et(()=>{rce=Ze(KR()),iA=ve("stream"),nce=ve("string_decoder"),vg=new Set;Jl=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},tU=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}},rU=class t{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:o,stderr:a}){let n=new t(null,e);return n.stdin=r,n.stdout=o,n.stderr=a,n}pipeTo(e,r=1){let o=new t(this,e),a=new tU;return o.pipe=a,o.stdout=this.stdout,o.stderr=this.stderr,(r&1)===1?this.stdout=a:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)===2?this.stderr=a:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),o}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 r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let o;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");o=this.stderr,e[2]=o.get();let a=this.implementation(e);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),o.close(),n))}async run(){let e=[];for(let o=this;o;o=o.ancestor)e.push(o.exec());return(await Promise.all(e))[0]}}});var E1={};Vt(E1,{EntryCommand:()=>h1,ShellError:()=>ll,execute:()=>cy,globUtils:()=>vS});function ace(t,e,r){let o=new cl.PassThrough({autoDestroy:!0});switch(t){case 0:(e&1)===1&&r.stdin.pipe(o,{end:!1}),(e&2)===2&&r.stdin instanceof cl.Writable&&o.pipe(r.stdin,{end:!1});break;case 1:(e&1)===1&&r.stdout.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stdout,{end:!1});break;case 2:(e&1)===1&&r.stderr.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stderr,{end:!1});break;default:throw new ll(`Bad file descriptor: "${t}"`)}return o}function bS(t,e={}){let r={...t,...e};return r.environment={...t.environment,...e.environment},r.variables={...t.variables,...e.variables},r}async function Eot(t,e,r){let o=[],a=new cl.PassThrough;return a.on("data",n=>o.push(n)),await SS(t,e,bS(r,{stdout:a})),Buffer.concat(o).toString().replace(/[\r\n]+$/,"")}async function lce(t,e,r){let o=t.map(async n=>{let u=await Dg(n.args,e,r);return{name:n.name,value:u.join(" ")}});return(await Promise.all(o)).reduce((n,u)=>(n[u.name]=u.value,n),{})}function PS(t){return t.match(/[^ \r\n\t]+/g)||[]}async function hce(t,e,r,o,a=o){switch(t.name){case"$":o(String(process.pid));break;case"#":o(String(e.args.length));break;case"@":if(t.quoted)for(let n of e.args)a(n);else for(let n of e.args){let u=PS(n);for(let A=0;A<u.length-1;++A)a(u[A]);o(u[u.length-1])}break;case"*":{let n=e.args.join(" ");if(t.quoted)o(n);else for(let u of PS(n))a(u)}break;case"PPID":o(String(process.ppid));break;case"RANDOM":o(String(Math.floor(Math.random()*32768)));break;default:{let n=parseInt(t.name,10),u,A=Number.isFinite(n);if(A?n>=0&&n<e.args.length&&(u=e.args[n]):Object.hasOwn(r.variables,t.name)?u=r.variables[t.name]:Object.hasOwn(r.environment,t.name)&&(u=r.environment[t.name]),typeof u<"u"&&t.alternativeValue?u=(await Dg(t.alternativeValue,e,r)).join(" "):typeof u>"u"&&(t.defaultValue?u=(await Dg(t.defaultValue,e,r)).join(" "):t.alternativeValue&&(u="")),typeof u>"u")throw A?new ll(`Unbound argument #${n}`):new ll(`Unbound variable "${t.name}"`);if(t.quoted)o(u);else{let p=PS(u);for(let E=0;E<p.length-1;++E)a(p[E]);let h=p[p.length-1];typeof h<"u"&&o(h)}}break}}async function d1(t,e,r){if(t.type==="number"){if(Number.isInteger(t.value))return t.value;throw new Error(`Invalid number: "${t.value}", only integers are allowed`)}else if(t.type==="variable"){let o=[];await hce({...t,quoted:!0},e,r,n=>o.push(n));let a=Number(o.join(" "));return Number.isNaN(a)?d1({type:"variable",name:o.join(" ")},e,r):d1({type:"number",value:a},e,r)}else return Cot[t.type](await d1(t.left,e,r),await d1(t.right,e,r))}async function Dg(t,e,r){let o=new Map,a=[],n=[],u=E=>{n.push(E)},A=()=>{n.length>0&&a.push(n.join("")),n=[]},p=E=>{u(E),A()},h=(E,I,v)=>{let x=JSON.stringify({type:E,fd:I}),C=o.get(x);typeof C>"u"&&o.set(x,C=[]),C.push(v)};for(let E of t){let I=!1;switch(E.type){case"redirection":{let v=await Dg(E.args,e,r);for(let x of v)h(E.subtype,E.fd,x)}break;case"argument":for(let v of E.segments)switch(v.type){case"text":u(v.text);break;case"glob":u(v.pattern),I=!0;break;case"shell":{let x=await Eot(v.shell,e,r);if(v.quoted)u(x);else{let C=PS(x);for(let R=0;R<C.length-1;++R)p(C[R]);u(C[C.length-1])}}break;case"variable":await hce(v,e,r,u,p);break;case"arithmetic":u(String(await d1(v.arithmetic,e,r)));break}break}if(A(),I){let v=a.pop();if(typeof v>"u")throw new Error("Assertion failed: Expected a glob pa Line truncated
`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${p}, '${u(Jd(t))}' has ended
`)})),0}return await uce(t,e,r)}async function vot(t,e,r,{background:o=!1}={}){let a,n=A=>{a=A,r.variables["?"]=String(A)},u=async A=>{try{return await Bot(A.chain,e,r,{background:o&&typeof A.then>"u"})}catch(p){if(!(p instanceof ll))throw p;return r.stderr.write(`${p.message}
`),1}};for(n(await u(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":a===0&&n(await u(t.then.line));break;case"||":a!==0&&n(await u(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return a}async function SS(t,e,r){let o=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:u}of t){if(a=await vot(n,e,r,{background:u==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=o,a}function gce(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>y1(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>y1(e));case"arithmetic":return iU(t.arithmetic);case"shell":return sU(t.shell);default:return!1}}function y1(t){switch(t.type){case"redirection":return t.args.some(e=>y1(e));case"argument":return t.segments.some(e=>gce(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function iU(t){switch(t.type){case"variable":return gce(t);case"number":return!1;default:return iU(t.left)||iU(t.right)}}function sU(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let o;switch(r.type){case"subshell":o=sU(r.subshell);break;case"command":o=r.envs.some(a=>a.args.some(n=>y1(n)))||r.args.some(a=>y1(a));break}if(o)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function cy(t,e=[],{baseFs:r=new Tn,builtins:o={},cwd:a=ue.toPortablePath(process.cwd()),env:n=process.env,stdin:u=process.stdin,stdout:A=process.stdout,stderr:p=process.stderr,variables:h={},glob:E=vS}={}){let I={};for(let[C,R]of Object.entries(n))typeof R<"u"&&(I[C]=R);let v=new Map(yot);for(let[C,R]of Object.entries(o))v.set(C,R);u===null&&(u=new cl.PassThrough,u.end());let x=CD(t,E);if(!sU(x)&&x.length>0&&e.length>0){let{command:C}=x[x.length-1];for(;C.then;)C=C.then.line;let R=C.chain;for(;R.then;)R=R.then.chain;R.type==="command"&&(R.args=R.args.concat(e.map(L=>({type:"argument",segments:[{type:"text",text:L}]}))))}return await SS(x,{args:e,baseFs:r,builtins:v,initialStdin:u,initialStdout:A,initialStderr:p,glob:E},{cwd:a,environment:I,exitCode:null,procedures:{},stdin:u,stdout:A,stderr:p,variables:Object.assign({},h,{"?":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var Ace,fce,cl,pce,yot,Cot,g1=Et(()=>{Pt();Nl();Ace=Ze(pN()),fce=ve("os"),cl=ve("stream"),pce=ve("timers/promises");zle();Jle();ece();nU();nU();yot=new Map([["cd",async([t=(0,fce.homedir)(),...e],r,o)=>{let a=V.resolve(o.cwd,ue.toPortablePath(t));if(!(await r.baseFs.statPromise(a).catch(u=>{throw u.code==="ENOENT"?new ll(`cd: no such file or directory: ${t}`):u})).isDirectory())throw new ll(`cd: not a directory: ${t}`);return o.cwd=a,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${ue.fromPortablePath(r.cwd)}
`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,o)=>o.exitCode=parseInt(t??o.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")}
`),0)],["sleep",async([t],e,r)=>{if(typeof t>"u")throw new ll("sleep: missing operand");let o=Number(t);if(Number.isNaN(o))throw new ll(`sleep: invalid time interval '${t}'`);return await(0,pce.setTimeout)(1e3*o,0)}],["unset",async(t,e,r)=>{for(let o of t)delete r.environment[o],delete r.variables[o];return 0}],["__ysh_run_procedure",async(t,e,r)=>{let o=r.procedures[t[0]];return await DS(o,{stdin:new Jl(r.stdin),stdout:new Jl(r.stdout),stderr:new Jl(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let o=r.stdin,a=r.stdout,n=r.stderr,u=[],A=[],p=[],h=0;for(;t[h]!=="--";){let I=t[h++],{type:v,fd:x}=JSON.parse(I),C=z=>{switch(x){case null:case 0:u.push(z);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},R=z=>{switch(x){case null:case 1:A.push(z);break;case 2:p.push(z);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},L=Number(t[h++]),U=h+L;for(let z=h;z<U;++h,++z)switch(v){case"<":C(()=>e.baseFs.createReadStream(V.resolve(r.cwd,ue.toPortablePath(t[z]))));break;case"<<<":C(()=>{let te=new cl.PassThrough;return process.nextTick(()=>{te.write(`${t[z]}
`),te.end()}),te});break;case"<&":C(()=>ace(Number(t[z]),1,r));break;case">":case">>":{let te=V.resolve(r.cwd,ue.toPortablePath(t[z]));R(te==="/dev/null"?new cl.Writable({autoDestroy:!0,emitClose:!0,write(ae,le,ce){setImmediate(ce)}}):e.baseFs.createWriteStream(te,v===">>"?{flags:"a"}:void 0))}break;case">&":R(ace(Number(t[z]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${v}"`)}}if(u.length>0){let I=new cl.PassThrough;o=I;let v=x=>{if(x===u.length)I.end();else{let C=u[x]();C.pipe(I,{end:!1}),C.on("end",()=>{v(x+1)})}};v(0)}if(A.length>0){let I=new cl.PassThrough;a=I;for(let v of A)I.pipe(v)}if(p.length>0){let I=new cl.PassThrough;n=I;for(let v of p)I.pipe(v)}let E=await DS(m1(t.slice(h+1),e,r),{stdin:new Jl(o),stdout:new Jl(a),stderr:new Jl(n)}).run();return await Promise.all(A.map(I=>new Promise((v,x)=>{I.on("error",C=>{x(C)}),I.on("close",()=>{v()}),I.end()}))),await Promise.all(p.map(I=>new Promise((v,x)=>{I.on("error",C=>{x(C)}),I.on("close",()=>{v()}),I.end()}))),E}]]);Cot={addition:(t,e)=>t+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)}});var xS=_((c4t,dce)=>{function Dot(t,e){for(var r=-1,o=t==null?0:t.length,a=Array(o);++r<o;)a[r]=e(t[r],r,t);return a}dce.exports=Dot});var Ice=_((u4t,wce)=>{var mce=lg(),Pot=xS(),bot=Hl(),Sot=Ym(),xot=1/0,yce=mce?mce.prototype:void 0,Ece=yce?yce.toString:void 0;function Cce(t){if(typeof t=="string")return t;if(bot(t))return Pot(t,Cce)+"";if(Sot(t))return Ece?Ece.call(t):"";var e=t+"";return e=="0"&&1/t==-xot?"-0":e}wce.exports=Cce});var C1=_((A4t,Bce)=>{var kot=Ice();function Qot(t){return t==null?"":kot(t)}Bce.exports=Qot});var oU=_((f4t,vce)=>{function Fot(t,e,r){var o=-1,a=t.length;e<0&&(e=-e>a?0:a+e),r=r>a?a:r,r<0&&(r+=a),a=e>r?0:r-e>>>0,e>>>=0;for(var n=Array(a);++o<a;)n[o]=t[o+e];return n}vce.exports=Fot});var Pce=_((p4t,Dce)=>{var Rot=oU();function Tot(t,e,r){var o=t.length;return r=r===void 0?o:r,!e&&r>=o?t:Rot(t,e,r)}Dce.exports=Tot});var aU=_((h4t,bce)=>{var Not="\\ud800-\\udfff",Lot="\\u0300-\\u036f",Mot="\\ufe20-\\ufe2f",Oot="\\u20d0-\\u20ff",Uot=Lot+Mot+Oot,_ot="\\ufe0e\\ufe0f",Hot="\\u200d",qot=RegExp("["+Hot+Not+Uot+_ot+"]");function jot(t){return qot.test(t)}bce.exports=jot});var xce=_((g4t,Sce)=>{function Got(t){return t.split("")}Sce.exports=Got});var Mce=_((d4t,Lce)=>{var kce="\\ud800-\\udfff",Yot="\\u0300-\\u036f",Wot="\\ufe20-\\ufe2f",Kot="\\u20d0-\\u20ff",Vot=Yot+Wot+Kot,zot="\\ufe0e\\ufe0f",Jot="["+kce+"]",lU="["+Vot+"]",cU="\\ud83c[\\udffb-\\udfff]",Xot="(?:"+lU+"|"+cU+")",Qce="[^"+kce+"]",Fce="(?:\\ud83c[\\udde6-\\uddff]){2}",Rce="[\\ud800-\\udbff][\\udc00-\\udfff]",Zot="\\u200d",Tce=Xot+"?",Nce="["+zot+"]?",$ot="(?:"+Zot+"(?:"+[Qce,Fce,Rce].join("|")+")"+Nce+Tce+")*",eat=Nce+Tce+$ot,tat="(?:"+[Qce+lU+"?",lU,Fce,Rce,Jot].join("|")+")",rat=RegExp(cU+"(?="+cU+")|"+tat+eat,"g");function nat(t){return t.match(rat)||[]}Lce.exports=nat});var Uce=_((m4t,Oce)=>{var iat=xce(),sat=aU(),oat=Mce();function aat(t){return sat(t)?oat(t):iat(t)}Oce.exports=aat});var Hce=_((y4t,_ce)=>{var lat=Pce(),cat=aU(),uat=Uce(),Aat=C1();function fat(t){return function(e){e=Aat(e);var r=cat(e)?uat(e):void 0,o=r?r[0]:e.charAt(0),a=r?lat(r,1).join(""):e.slice(1);return o[t]()+a}}_ce.exports=fat});var jce=_((E4t,qce)=>{var pat=Hce(),hat=pat("toUpperCase");qce.exports=hat});var uU=_((C4t,Gce)=>{var gat=C1(),dat=jce();function mat(t){return dat(gat(t).toLowerCase())}Gce.exports=mat});var Yce=_((w4t,kS)=>{function yat(){var t=0,e=1,r=2,o=3,a=4,n=5,u=6,A=7,p=8,h=9,E=10,I=11,v=12,x=13,C=14,R=15,L=16,U=17,z=0,te=1,ae=2,le=3,ce=4;function Ce(g,me){return 55296<=g.charCodeAt(me)&&g.charCodeAt(me)<=56319&&56320<=g.charCodeAt(me+1)&&g.charCodeAt(me+1)<=57343}function de(g,me){me===void 0&&(me=0);var we=g.charCodeAt(me);if(55296<=we&&we<=56319&&me<g.length-1){var Ae=we,ne=g.charCodeAt(me+1);return 56320<=ne&&ne<=57343?(Ae-55296)*1024+(ne-56320)+65536:Ae}if(56320<=we&&we<=57343&&me>=1){var Ae=g.charCodeAt(me-1),ne=we;return 55296<=Ae&&Ae<=56319?(Ae-55296)*1024+(ne-56320)+65536:ne}return we}function Be(g,me,we){var Ae=[g].concat(me).concat([we]),ne=Ae[Ae.length-2],Z=we,xe=Ae.lastIndexOf(C);if(xe>1&&Ae.slice(1,xe).every(function(H){return H==o})&&[o,x,U].indexOf(g)==-1)return ae;var Ne=Ae.lastIndexOf(a);if(Ne>0&&Ae.slice(1,Ne).every(function(H){return H==a})&&[v,a].indexOf(ne)==-1)return Ae.filter(function(H){return H==a}).length%2==1?le:ce;if(ne==t&&Z==e)return z;if(ne==r||ne==t||ne==e)return Z==C&&me.every(function(H){return H==o})?ae:te;if(Z==r||Z==t||Z==e)return te;if(ne==u&&(Z==u||Z==A||Z==h||Z==E))return z;if((ne==h||ne==A)&&(Z==A||Z==p))return z;if((ne==E||ne==p)&&Z==p)return z;if(Z==o||Z==R)return z;if(Z==n)return z;if(ne==v)return z;var ht=Ae.indexOf(o)!=-1?Ae.lastIndexOf(o)-1:Ae.length-2;return[x,U].indexOf(Ae[ht])!=-1&&Ae.slice(ht+1,-1).every(function(H){return H==o})&&Z==C||ne==R&&[L,U].indexOf(Z)!=-1?z:me.indexOf(a)!=-1?ae:ne==a&&Z==a?z:te}this.nextBreak=function(g,me){if(me===void 0&&(me=0),me<0 Line truncated
`,end:t=>`::endgroup::
`}:RS.default.TRAVIS?{start:t=>`travis_fold:start:${t}
`,end:t=>`travis_fold:end:${t}
`}:RS.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${t}
`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,Zce=ch!==null,Jce=new Date,Iat=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,Bat=t=>t,TS=Bat({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}}),vat=Iat&&Object.keys(TS).find(t=>{let e=TS[t];return!(e.date&&(e.date[0]!==Jce.getDate()||e.date[1]!==Jce.getMonth()+1))})||"default";Rt=class extends Zs{constructor({configuration:r,stdout:o,json:a=!1,forceSectionAlignment:n=!1,includeNames:u=!0,includePrefix:A=!0,includeFooter:p=!0,includeLogs:h=!a,includeInfos:E=h,includeWarnings:I=h}){super();this.uncommitted=new Set;this.warningCount=0;this.errorCount=0;this.timerFooter=[];this.startTime=Date.now();this.indent=0;this.level=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;if(TI(this,{configuration:r}),this.configuration=r,this.forceSectionAlignment=n,this.includeNames=u,this.includePrefix=A,this.includeFooter=p,this.includeInfos=E,this.includeWarnings=I,this.json=a,this.stdout=o,r.get("enableProgressBars")&&!a&&o.isTTY&&o.columns>22){let v=r.get("progressBarStyle")||vat;if(!Object.hasOwn(TS,v))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=TS[v];let x=Math.min(this.getRecommendedLength(),80);this.progressMaxScaledSize=Math.floor(this.progressStyle.size*x/80)}}static async start(r,o){let a=new this(r),n=process.emitWarning;process.emitWarning=(u,A)=>{if(typeof u!="string"){let h=u;u=h.message,A=A??h.name}let p=typeof A<"u"?`${A}: ${u}`:u;a.reportWarning(0,p)},r.includeVersion&&a.reportInfo(0,fg(r.configuration,`Yarn ${nn}`,2));try{await o(a)}catch(u){a.reportExceptionOnce(u)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}getRecommendedLength(){let o=this.progressStyle!==null?this.stdout.columns-1:super.getRecommendedLength();return Math.max(40,o-12-this.indent*2)}startSectionSync({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}async startSectionPromise({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return await n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}startTimerImpl(r,o,a){return{cb:typeof o=="function"?o:a,reportHeader:()=>{this.level+=1,this.reportInfo(null,`\u250C ${r}`),this.indent+=1,ch!==null&&!this.json&&this.includeInfos&&this.stdout.write(ch.start(r))},reportFooter:A=>{if(this.indent-=1,ch!==null&&!this.json&&this.includeInfos){this.stdout.write(ch.end(r));for(let p of this.timerFooter)p()}this.configuration.get("enableTimers")&&A>200?this.reportInfo(null,`\u2514 Completed in ${Ot(this.configuration,A,yt.DURATION)}`):this.reportInfo(null,"\u2514 Completed"),this.level-=1},skipIfEmpty:(typeof o=="function"?{}:o).skipIfEmpty}}startTimerSync(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionSync(u,n)}async startTimerPromise(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionPromise(u,n)}reportSeparator(){this.indent===0?this.writeLine(""):this.reportInfo(null,"")}reportInfo(r,o){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"",u=`${this.formatPrefix(n,"blueBright")}${o}`;this.json?this.reportJson({type:"info",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(u)}reportWarning(r,o){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"warning",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"yellowBright")}${o}`)}reportError(r,o){this.errorCount+=1,this.timerFooter.push(()=>this.reportErrorImpl(r,o)),this.reportErrorImpl(r,o)}reportErrorImpl(r,o){this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"error",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"redBright")}${o}`,{truncate:!1})}reportFold(r,o){if(!ch)return;let a=`${ch.start(r)}${o}${ch.end(r)}`;this.timerFooter.push(()=>this.stdout.write(a))}reportProgress(r){if(this.progressStyle===null)ret Line truncated
`),this.writeProgress()}writeLines(r,{truncate:o}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:o})}
`);this.writeProgress()}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let o of r)o.committed=!0,o.action()}clearProgress({delta:r=0,clear:o=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\x1B[${this.progress.size+r}A`),(r>0||o)&&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 r=Date.now();r-this.progressTime>zce&&(this.progressFrame=(this.progressFrame+1)%Vce.length,this.progressTime=r);let o=Vce[this.progressFrame];for(let a of this.progress.values()){let n="";if(typeof a.lastScaledSize<"u"){let h=this.progressStyle.chars[0].repeat(a.lastScaledSize),E=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-a.lastScaledSize);n=` ${h}${E}`}let u=this.formatName(null),A=u?`${u}: `:"",p=a.definition.title?` ${a.definition.title}`:"";this.stdout.write(`${Ot(this.configuration,"\u27A4","blueBright")} ${A}${o}${n}${p}
`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},zce)}refreshProgress({delta:r=0,force:o=!1}={}){let a=!1,n=!1;if(o||this.progress.size===0)a=!0;else for(let u of this.progress.values()){let A=typeof u.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*u.definition.progress):void 0,p=u.lastScaledSize;u.lastScaledSize=A;let h=u.lastTitle;if(u.lastTitle=u.definition.title,A!==p||(n=h!==u.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:o}={}){return this.progressStyle===null&&(o=!1),typeof o>"u"&&(o=this.configuration.get("preferTruncatedLines")),o&&(r=(0,Xce.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?$ce(r,{configuration:this.configuration,json:this.json}):""}formatPrefix(r,o){return this.includePrefix?`${Ot(this.configuration,"\u27A4",o)} ${r}${this.formatIndent()}`:""}formatNameWithHyperlink(r){return this.includeNames?AU(r,{configuration:this.configuration,json:this.json}):""}formatIndent(){return this.level>0||!this.forceSectionAlignment?"\u2502 ".repeat(this.indent):`${wat} `}}});var An={};Vt(An,{PackageManager:()=>rue,detectPackageManager:()=>nue,executePackageAccessibleBinary:()=>lue,executePackageScript:()=>NS,executePackageShellcode:()=>fU,executeWorkspaceAccessibleBinary:()=>Qat,executeWorkspaceLifecycleScript:()=>oue,executeWorkspaceScript:()=>sue,getPackageAccessibleBinaries:()=>LS,getWorkspaceAccessibleBinaries:()=>aue,hasPackageScript:()=>Sat,hasWorkspaceScript:()=>pU,isNodeScript:()=>hU,makeScriptEnv:()=>B1,maybeExecuteWorkspaceLifecycleScript:()=>kat,prepareExternalProject:()=>bat});async function uh(t,e,r,o=[]){if(process.platform==="win32"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${o.map(n=>`"${n.replace('"','""')}"`).join(" ")} %*`;await oe.writeFilePromise(V.format({dir:t,name:e,ext:".cmd"}),a)}await oe.writeFilePromise(V.join(t,e),`#!/bin/sh
exec "${r}" ${o.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@"
`,{mode:493})}async function nue(t){let e=await Ut.tryFind(t);if(e?.packageManager){let o=Pb(e.packageManager);if(o?.name){let a=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[n]=o.reference.split(".");switch(o.name){case"yarn":return{packageManagerField:!0,packageManager:Number(n)===1?"Yarn Classic":"Yarn",reason:a};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:a};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:a}}}}let r;try{r=await oe.readFilePromise(V.join(t,dr.lockfile),"utf8")}catch{}return r!==void 0?r.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'}:oe.existsSync(V.join(t,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:oe.existsSync(V.join(t,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function B1({project:t,locator:e,binFolder:r,ignoreCorepack:o,lifecycleScript:a,baseEnv:n=t?.configuration.env??process.env}){let u={};for(let[E,I]of Object.entries(n))typeof I<"u"&&(u[E.toLowerCase()!=="path"?E:"PATH"]=I);let A=ue.fromPortablePath(r);u.BERRY_BIN_FOLDER=ue.fromPortablePath(A);let p=process.env.COREPACK_ROOT&&!o?ue.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([uh(r,"node",process.execPath),...nn!==null?[uh(r,"run",process.execPath,[p,"run"]),uh(r,"yarn",process.execPath,[p]),uh(r,"yarnpkg",process.execPath,[p]),uh(r,"node-gyp",process.execPath,[p,"run","--top-level","node-gyp"])]:[]]),t&&(u.INIT_CWD=ue.fromPortablePath(t.configuration.startingCwd),u.PROJECT_CWD=ue.fromPortablePath(t.cwd)),u.PATH=u.PATH?`${A}${ue.delimiter}${u.PATH}`:`${A}`,u.npm_execpath=`${A}${ue.sep}yarn`,u.npm_node_execpath=`${A}${ue.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let E=t.tryWorkspaceByLocator(e),I=E?E.manifest.version??"":t.storedPackages.get(e.locatorHash).version??"";u.npm_package_name=rn(e),u.npm_package_version=I;let v;if(E)v=E.cwd;else{let x=t.storedPackages.get(e.locatorHash);if(!x)throw new Error(`Package for ${qr(t.configuration,e)} not found in the project`);let C=t.configuration.getLinkers(),R={project:t,report:new Rt({stdout:new Ah.PassThrough,configuration:t.configuration})},L=C.find(U=>U.supportsPackage(x,R));if(!L)throw new Error(`The package ${qr(t.configuration,x)} isn't supported by any of the available linkers`);v=await L.findPackageLocation(x,R)}u.npm_package_json=ue.fromPortablePath(V.join(v,dr.manifest))}let h=nn!==null?`yarn/${nn}`:`yarn/${vf("@yarnpkg/core").version}-core`;return u.npm_config_user_agent=`${h} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(u.npm_lifecycle_event=a),t&&await t.configuration.triggerHook(E=>E.setupScriptEnvironment,t,u,async(E,I,v)=>await uh(r,E,I,v)),u}async function bat(t,e,{configuration:r,report:o,workspace:a=null,locator:n=null}){await Pat(async()=>{await oe.mktempPromise(async u=>{let A=V.join(u,"pack.log"),p=null,{stdout:h,stderr:E}=r.getSubprocessStreams(A,{prefix:ue.fromPortablePath(t),report:o}),I=n&&Gc(n)?_I(n):n,v=I?ka(I):"an external project";h.write(`Packing ${v} from sources
`);let x=await nue(t),C;x!==null?(h.write(`Using ${x.packageManager} for bootstrap. Reason: ${x.reason}
`),C=x.packageManager):(h.write(`No package manager configuration detected; defaulting to Yarn
`),C="Yarn");let R=C==="Yarn"&&!x?.packageManagerField;await oe.mktempPromise(async L=>{let U=await B1({binFolder:L,ignoreCorepack:R}),te=new Map([["Yarn Classic",async()=>{let le=a!==null?["workspace",a]:[],ce=V.join(t,dr.manifest),Ce=await oe.readFilePromise(ce),de=await Wc(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed","--yarn-path"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(de.code!==0)return de.code;await oe.writeFilePromise(ce,Ce),await oe.appendFilePromise(V.join(t,".npmignore"),`/.yarn
`),h.write(`
`),delete U.NODE_ENV;let Be=await Wc("yarn",["install"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(Be.code!==0)return Be.code;h.write(`
`);let Ee=await Wc("yarn",[...le,"pack","--filename",ue.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return Ee.code!==0?Ee.code:0}],["Yarn",async()=>{let le=a!==null?["workspace",a]:[];U.YARN_ENABLE_INLINE_BUILDS="1";let ce=V.join(t,dr.lockfile);await oe.existsPromise(ce)||await oe.writeFilePromise(ce,"");let Ce=await Wc("yarn",[...le,"pack","--install-if-needed","--filename",ue.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return Ce.code!==0?Ce.code:0}],["npm",async()=>{if(a!==null){let me=new Ah.PassThrough,we=km(me);me.pipe(h,{end:!1});let Ae=await Wc("npm",["--version"],{cwd:t,env:U,stdin:p,stdout:me,stderr:E,end:0});if(me.end(),Ae.code!==0)return h.end(),E.end(),Ae.code;let ne=(await we).toString().trim();if(!tA(ne,">=7.x")){let Z=eA(null,"npm"),xe=In(Z,ne),Ne=In(Z,">=7.x");throw new Error(`Workspaces aren't supported by ${jn(r,xe)}; please upgrade to ${jn(r,Ne)} (npm has been detected as the primary package manager for ${Ot(r,t,yt.PATH)})`)}}let le=a!==null?["--workspace",a]:[];delete U.npm_config_user_agent,delete U.npm_config_production,delete U.NPM_CONFIG_PRODUCTION,delete U.NODE_ENV;let ce=await Wc("npm",["install","--legacy-peer-deps"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(ce.code!==0)return ce.code;let Ce=new Ah.PassThrough,de=km(Ce);Ce.pipe(h);let Be=await Wc("npm",["pack","--silent",...le],{cwd:t,env:U,stdin:p,stdout:Ce,stderr:E});if(Be.code!==0)return Be.code;let Ee=(await de).toString().trim().replace(/^.*\n/s,""),g=V.resolve(t,ue.toPortablePath(Ee));return await oe.renamePromise(g,e),0}]]).get(C);if(typeof te>"u")throw new Error("Assertion failed: Unsupported workflow");let ae=await te();if(!(ae===0||typeof ae>"u"))throw oe.detachTemp(u),new Jt(58,`Packing the package failed (exit code ${ae}, logs can be found here: ${Ot(r,A,yt.PATH)})`)})})})}async function Sat(t,e,{project:r}){let o=r.tryWorkspaceByLocator(t);if(o!==null)return pU(o,e);let a=r.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${qr(r.configuration,t)} not found in the project`);return await rA.openPromise(async n=>{let u=r.configuration,A=r.configuration.getLinkers(),p={project:r,report:new Rt({stdout:new Ah.PassThrough,configuration:u})},h=A.find(x=>x.supportsPackage(a,p));if(!h)throw new Error(`The package ${qr(r.configuration,a)} isn't supported by any of the available linkers`);let E=await h.findPackageLocation(a,p),I=new gn(E,{baseFs:n});return(await Ut.find(It.dot,{baseFs:I})).scripts.has(e)})}async function NS(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await oe.mktempPromise(async p=>{let{manifest:h,env:E,cwd:I}=await iue(t,{project:a,binFolder:p,cwd:o,lifecycleScript:e}),v=h.scripts.get(e);if(typeof v>"u")return 1;let x=async()=>await cy(v,r,{cwd:I,env:E,stdin:n,stdout:u,stderr:A});return await(await a.configuration.reduceHook(R=>R.wrapScriptExecution,x,a,t,e,{script:v,args:r,cwd:I,env:E,stdin:n,stdout:u,stderr:A}))()})}async function fU(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await oe.mktempPromise(async p=>{let{env:h,cwd:E}=await iue(t,{project:a,binFolder:p,cwd:o});return await cy(e,r,{cwd:E,env:h,stdin:n,stdout:u,stderr:A})})}async function xat(t,{binFolder:e,cwd:r,lifecycleScript:o}){let a=await B1({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:o});return await gU(e,await aue(t)),typeof r>"u"&&(r=V.dirname(await oe.realpathPromise(V.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:a,cwd:r}}async function iue(t,{project:e,binFolder:r,cwd:o,lifecycleScript:a}){let n=e.tryWorkspaceByLocator(t);if(n!==null)return xat(n,{binFolder:r,cwd:o,lifecycleScript:a});let u=e.storedPackages.get(t.locatorHash);if(!u)throw new Error(`Package for ${qr(e.configuration,t)} not found in the project`);return await rA.openPromise(async A=>{let p=e.configuration,h=e.configuration.getLinkers(),E={project:e,report:new Rt({stdout:new Ah.PassThrough,configuration:p})},I=h.find(L=>L.supportsPackage(u,E));if(!I)throw new Error(`The package ${qr(e.configuration,u)} isn't supported by any of the available linkers`);let v=await B1({project:e,locator:t,binFolder:r,lifecycleScript:a});await gU(r,await LS(t,{project:e}));let x=await I.findPackageLocation(u,E),C=new gn(x,{baseFs:A}),R=await Ut.find(It.dot,{baseFs:C});return typeof o>"u"&&(o=x),{manifest:R,binFolder:r,env:v,cwd:o}})}async function sue(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u}){return await NS(t.anchoredLocator,e,r,{cwd:o,project:t.project,stdin:a,stdout:n,stderr:u})}function pU(t,e){return t.manifest.scripts.has(e)}async function oue(t,e,{cwd:r,report:o}){let{configuration:a}=t.project,n=null;await oe.mktempPromise(async u=>{let A=V.join(u,`${e}.log`),p=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${ue.fromPortablePath(t.cwd)}")
`,{stdout:h,stderr:E}=a.getSubprocessStreams(A,{report:o,prefix:qr(a,t.anchoredLocator),header:p});o.reportInfo(36,`Calling the "${e}" lifecycle script`);let I=await sue(t,e,[],{cwd:r,stdin:n,stdout:h,stderr:E});if(h.end(),E.end(),I!==0)throw oe.detachTemp(u),new Jt(36,`${(0,eue.default)(e)} script failed (exit code ${Ot(a,I,yt.NUMBER)}, logs can be found here: ${Ot(a,A,yt.PATH)}); run ${Ot(a,`yarn ${e}`,yt.CODE)} to investigate`)})}async function kat(t,e,r){pU(t,e)&&await oue(t,e,r)}function hU(t){let e=V.extname(t);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let r=Buffer.alloc(4),o;try{o=oe.openSync(t,"r")}catch{return!0}try{oe.readSync(o,r,0,r.length,0)}finally{oe.closeSync(o)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function LS(t,{project:e}){let r=e.configuration,o=new Map,a=e.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${qr(r,t)} not found in the project`);let n=new Ah.Writable,u=r.getLinkers(),A={project:e,report:new Rt({configuration:r,stdout:n})},p=new Set([t.locatorHash]);for(let E of a.dependencies.values()){let I=e.storedResolutions.get(E.descriptorHash);if(!I)throw new Error(`Assertion failed: The resolution (${jn(r,E)}) should have been registered`);p.add(I)}let h=await Promise.all(Array.from(p,async E=>{let I=e.storedPackages.get(E);if(!I)throw new Error(`Assertion failed: The package (${E}) should have been registered`);if(I.bin.size===0)return ol.skip;let v=u.find(C=>C.supportsPackage(I,A));if(!v)return ol.skip;let x=null;try{x=await v.findPackageLocation(I,A)}catch(C){if(C.code==="LOCATOR_NOT_INSTALLED")return ol.skip;throw C}return{dependency:I,packageLocation:x}}));for(let E of h){if(E===ol.skip)continue;let{dependency:I,packageLocation:v}=E;for(let[x,C]of I.bin){let R=V.resolve(v,C);o.set(x,[I,ue.fromPortablePath(R),hU(R)])}}return o}async function aue(t){return await LS(t.anchoredLocator,{project:t.project})}async function gU(t,e){await Promise.all(Array.from(e,([r,[,o,a]])=>a?uh(t,r,process.execPath,[o]):uh(t,r,o,[])))}async function lue(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A,nodeArgs:p=[],packageAccessibleBinaries:h}){h??=await LS(t,{project:a});let E=h.get(e);if(!E)throw new Error(`Binary not found (${e}) for ${qr(a.configuration,t)}`);return await oe.mktempPromise(async I=>{let[,v]=E,x=await B1({project:a,locator:t,binFolder:I});await gU(x.BERRY_BIN_FOLDER,h);let C=hU(ue.toPortablePath(v))?Wc(process.execPath,[...p,v,...r],{cwd:o,env:x,stdin:n,stdout:u,stderr:A}):Wc(v,r,{cwd:o,env:x,stdin:n,stdout:u,stderr:A}),R;try{R=await C}finally{await oe.removePromise(x.BERRY_BIN_FOLDER)}return R.code})}async function Qat(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A}){return await lue(t.anchoredLocator,e,r,{project:t.project,cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A})}var eue,tue,Ah,rue,Dat,Pat,dU=Et(()=>{Pt();Pt();nA();g1();eue=Ze(uU()),tue=Ze(eg()),Ah=ve("stream");Gm();Wl();I1();w1();pS();jl();ql();xf();So();rue=(a=>(a.Yarn1="Yarn Classic",a.Yarn2="Yarn",a.Npm="npm",a.Pnpm="pnpm",a))(rue||{});Dat=2,Pat=(0,tue.default)(Dat)});var Ay=_((j4t,uue)=>{"use strict";var cue=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"]]);uue.exports=t=>t?Object.keys(t).map(e=>[cue.has(e)?cue.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var py=_((G4t,Eue)=>{"use strict";var Aue=typeof process=="object"&&process?process:{stdout:null,stderr:null},Fat=ve("events"),fue=ve("stream"),pue=ve("string_decoder").StringDecoder,Lf=Symbol("EOF"),Mf=Symbol("maybeEmitEnd"),fh=Symbol("emittedEnd"),MS=Symbol("emittingEnd"),v1=Symbol("emittedError"),OS=Symbol("closed"),hue=Symbol("read"),US=Symbol("flush"),gue=Symbol("flushChunk"),Fa=Symbol("encoding"),Of=Symbol("decoder"),_S=Symbol("flowing"),D1=Symbol("paused"),fy=Symbol("resume"),Ts=Symbol("bufferLength"),mU=Symbol("bufferPush"),yU=Symbol("bufferShift"),Fo=Symbol("objectMode"),Ro=Symbol("destroyed"),EU=Symbol("emitData"),due=Symbol("emitEnd"),CU=Symbol("emitEnd2"),Uf=Symbol("async"),P1=t=>Promise.resolve().then(t),mue=global._MP_NO_ITERATOR_SYMBOLS_!=="1",Rat=mue&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),Tat=mue&&Symbol.iterator||Symbol("iterator not implemented"),Nat=t=>t==="end"||t==="finish"||t==="prefinish",Lat=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,Mat=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),HS=class{constructor(e,r,o){this.src=e,this.dest=r,this.opts=o,this.ondrain=()=>e[fy](),r.on("drain",this.ondrain)}unpipe(){this.dest.remove Line truncated
`,a=Buffer.byteLength(o),n=Math.floor(Math.log(a)/Math.log(10))+1;return a+n>=Math.pow(10,n)&&(n+=1),n+a+o}};S1.parse=(t,e,r)=>new S1(olt(alt(t),e),r);var olt=(t,e)=>e?Object.keys(t).reduce((r,o)=>(r[o]=t[o],r),e):t,alt=t=>t.replace(/\n$/,"").split(`
`).reduce(llt,Object.create(null)),llt=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let o=e.split("="),a=o.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!a)return t;let n=o.join("=");return t[a]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(a)?new Date(n*1e3):/^[0-9]+$/.test(n)?+n:n,t};Rue.exports=S1});var Ey=_((rUt,Tue)=>{Tue.exports=t=>{let e=t.length-1,r=-1;for(;e>-1&&t.charAt(e)==="/";)r=e,e--;return r===-1?t:t.slice(0,r)}});var VS=_((nUt,Nue)=>{"use strict";Nue.exports=t=>class extends t{warn(e,r,o={}){this.file&&(o.file=this.file),this.cwd&&(o.cwd=this.cwd),o.code=r instanceof Error&&r.code||e,o.tarCode=e,!this.strict&&o.recoverable!==!1?(r instanceof Error&&(o=Object.assign(r,o),r=r.message),this.emit("warn",o.tarCode,r,o)):r instanceof Error?this.emit("error",Object.assign(r,o)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),o))}}});var KU=_((sUt,Lue)=>{"use strict";var zS=["|","<",">","?",":"],WU=zS.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),clt=new Map(zS.map((t,e)=>[t,WU[e]])),ult=new Map(WU.map((t,e)=>[t,zS[e]]));Lue.exports={encode:t=>zS.reduce((e,r)=>e.split(r).join(clt.get(r)),t),decode:t=>WU.reduce((e,r)=>e.split(r).join(ult.get(r)),t)}});var VU=_((oUt,Oue)=>{var{isAbsolute:Alt,parse:Mue}=ve("path").win32;Oue.exports=t=>{let e="",r=Mue(t);for(;Alt(t)||r.root;){let o=t.charAt(0)==="/"&&t.slice(0,4)!=="//?/"?"/":r.root;t=t.substr(o.length),e+=o,r=Mue(t)}return[e,t]}});var _ue=_((aUt,Uue)=>{"use strict";Uue.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&-19),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var i3=_((uUt,eAe)=>{"use strict";var Kue=py(),Vue=KS(),zue=yy(),oA=ve("fs"),Hue=ve("path"),sA=dy(),flt=Ey(),Jue=(t,e)=>e?(t=sA(t).replace(/^\.(\/|$)/,""),flt(e)+"/"+t):sA(t),plt=16*1024*1024,que=Symbol("process"),jue=Symbol("file"),Gue=Symbol("directory"),JU=Symbol("symlink"),Yue=Symbol("hardlink"),x1=Symbol("header"),JS=Symbol("read"),XU=Symbol("lstat"),XS=Symbol("onlstat"),ZU=Symbol("onread"),$U=Symbol("onreadlink"),e3=Symbol("openfile"),t3=Symbol("onopenfile"),dh=Symbol("close"),ZS=Symbol("mode"),r3=Symbol("awaitDrain"),zU=Symbol("ondrain"),aA=Symbol("prefix"),Wue=Symbol("hadError"),Xue=VS(),hlt=KU(),Zue=VU(),$ue=_ue(),$S=Xue(class extends Kue{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=sA(e),this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||plt,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=sA(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,this.prefix=r.prefix?sA(r.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 r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=Zue(this.path);a&&(this.path=n,o=a)}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=hlt.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=sA(r.absolute||Hue.resolve(this.cwd,e)),this.path===""&&(this.path="./"),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.statCache.has(this.absolute)?this[XS](this.statCache.get(this.absolute)):this[XU]()}emit(e,...r){return e==="error"&&(this[Wue]=!0),super.emit(e,...r)}[XU](){oA.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[XS](r)})}[XS](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=dlt(e),this.emit("stat",e),this[que]()}[que](){switch(this.type){case"File":return this[jue]();case"Directory":return this[Gue]();case"SymbolicLink":return this[JU]();default:return this.end()}}[ZS](e){return $ue(e,this.type==="Directory",this.portable)}[aA](e){return Jue(e,this.prefix)}[x1](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new zue({path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,mode:this[ZS](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 Vue({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[aA](this.path),linkpath:this.type==="Link"?this[aA](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. Line truncated
`}),A},o})});var fs={};Vt(fs,{emitList:()=>lut,emitTree:()=>lpe,treeNodeToJson:()=>ape,treeNodeToTreeify:()=>ope});function ope(t,{configuration:e}){let r={},o=0,a=(n,u)=>{let A=Array.isArray(n)?n.entries():Object.entries(n);for(let[p,h]of A){if(!h)continue;let{label:E,value:I,children:v}=h,x=[];typeof E<"u"&&x.push(fg(e,E,2)),typeof I<"u"&&x.push(Ot(e,I[0],I[1])),x.length===0&&x.push(fg(e,`${p}`,2));let C=x.join(": ").trim(),R=`\0${o++}\0`,L=u[`${R}${C}`]={};typeof v<"u"&&a(v,L)}};if(typeof t.children>"u")throw new Error("The root node must only contain children");return a(t.children,r),r}function ape(t){let e=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return pg(r.value[0],r.value[1])}let o=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,u]of o)u&&(a[cut(n)]=e(u));return typeof r.value>"u"?a:{value:pg(r.value[0],r.value[1]),children:a}};return e(t)}function lut(t,{configuration:e,stdout:r,json:o}){let a=t.map(n=>({value:n}));lpe({children:a},{configuration:e,stdout:r,json:o})}function lpe(t,{configuration:e,stdout:r,json:o,separators:a=0}){if(o){let u=Array.isArray(t.children)?t.children.values():Object.values(t.children??{});for(let A of u)A&&r.write(`${JSON.stringify(ape(A))}
`);return}let n=(0,spe.asTree)(ope(t,{configuration:e}),!1,!1);if(n=n.replace(/\0[0-9]+\0/g,""),a>=1&&(n=n.replace(/^([├└]─)/gm,`\u2502
$1`).replace(/^│\n/,"")),a>=2)for(let u=0;u<2;++u)n=n.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502
$2`).replace(/^│\n/,"");if(a>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(n)}function cut(t){return typeof t=="string"?t.replace(/^\0[0-9]+\0/,""):t}var spe,cpe=Et(()=>{spe=Ze(ipe());jl()});function j1(t){let e=t.match(uut);if(!e?.groups)throw new Error("Assertion failed: Expected the checksum to match the requested pattern");let r=e.groups.cacheVersion?parseInt(e.groups.cacheVersion):null;return{cacheKey:e.groups.cacheKey??null,cacheVersion:r,cacheSpec:e.groups.cacheSpec??null,hash:e.groups.hash}}var upe,t_,r_,Lx,Gr,uut,n_=Et(()=>{Ge();Pt();Pt();nA();upe=ve("crypto"),t_=Ze(ve("fs"));Wl();rh();ql();So();r_=Qm(process.env.YARN_CACHE_CHECKPOINT_OVERRIDE??process.env.YARN_CACHE_VERSION_OVERRIDE??9),Lx=Qm(process.env.YARN_CACHE_VERSION_OVERRIDE??10),Gr=class t{constructor(e,{configuration:r,immutable:o=r.get("enableImmutableCache"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,upe.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=o,this.check=a;let{cacheSpec:n,cacheKey:u}=t.getCacheKey(r);this.cacheSpec=n,this.cacheKey=u}static async find(e,{immutable:r,check:o}={}){let a=new t(e.get("cacheFolder"),{configuration:e,immutable:r,check:o});return await a.setup(),a}static getCacheKey(e){let r=e.get("compressionLevel"),o=r!=="mixed"?`c${r}`:"";return{cacheKey:[Lx,o].join(""),cacheSpec:o}}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`${Hm(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let a=j1(r).hash.slice(0,10);return`${Hm(e)}-${a}.zip`}isChecksumCompatible(e){if(e===null)return!1;let{cacheVersion:r,cacheSpec:o}=j1(e);if(r===null||r<r_)return!1;let a=this.configuration.get("cacheMigrationMode");return!(r<Lx&&a==="always"||o!==this.cacheSpec&&a!=="required-only")}getLocatorPath(e,r){return this.mirrorCwd===null?V.resolve(this.cwd,this.getVersionFilename(e)):r===null?V.resolve(this.cwd,this.getVersionFilename(e)):V.resolve(this.cwd,this.getChecksumFilename(e,r))}getLocatorMirrorPath(e){let r=this.mirrorCwd;return r!==null?V.resolve(r,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await oe.existsPromise(this.cwd))throw new Jt(56,"Cache path does not exist.")}else{await oe.mkdirPromise(this.cwd,{recursive:!0});let e=V.resolve(this.cwd,".gitignore");await oe.changeFilePromise(e,`/.gitignore
*.flock
*.tmp
`)}(this.mirrorCwd||!this.immutable)&&await oe.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,r,{onHit:o,onMiss:a,loader:n,...u}){let A=this.getLocatorMirrorPath(e),p=new Tn,h=()=>{let de=new Zi,Be=V.join(It.root,zM(e));return de.mkdirSync(Be,{recursive:!0}),de.writeJsonSync(V.join(Be,dr.manifest),{name:rn(e),mocked:!0}),de},E=async(de,{isColdHit:Be,controlPath:Ee=null})=>{if(Ee===null&&u.unstablePackages?.has(e.locatorHash))return{isValid:!0,hash:null};let g=r&&!Be?j1(r).cacheKey:this.cacheKey,me=!u.skipIntegrityCheck||!r?`${g}/${await Ib(de)}`:r;if(Ee!==null){let Ae=!u.skipIntegrityCheck||!r?`${this.cacheKey}/${await Ib(Ee)}`:r;if(me!==Ae)throw new Jt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}let we=null;switch(r!==null&&me!==r&&(this.check?we="throw":j1(r).cacheKey!==j1(me).cacheKey?we="update":we=this.configuration.get("checksumBehavior")),we){case null:case"update":return{isValid:!0,hash:me};case"ignore":return{isValid:!0,hash:r};case"reset":return{isValid:!1,hash:r};default:case"throw":throw new Jt(18,"The remote archive doesn't match the expected checksum")}},I=async de=>{if(!n)throw new Error(`Cache check required but no loader configured for ${qr(this.configuration,e)}`);let Be=await n(),Ee=Be.getRealPath();Be.saveAndClose(),await oe.chmodPromise(Ee,420);let g=await E(de,{controlPath:Ee,isColdHit:!1});if(!g.isValid)throw new Error("Assertion failed: Expected a valid checksum");return g.hash},v=async()=>{if(A===null||!await oe.existsPromise(A)){let de=await n(),Be=de.getRealPath();return de.saveAndClose(),{source:"loader",path:Be}}return{source:"mirror",path:A}},x=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${qr(this.configuration,e)}`);if(this.immutable)throw new Jt(56,`Cache entry required but missing for ${qr(this.configuration,e)}`);let{path:de,source:Be}=await v(),{hash:Ee}=await E(de,{isColdHit:!0}),g=this.getLocatorPath(e,Ee),me=[];Be!=="mirror"&&A!==null&&me.push(async()=>{let Ae=`${A}${this.cacheId}`;await oe.copyFilePromise(de,Ae,t_.default.constants.COPYFILE_FICLONE),await oe.chmodPromise(Ae,420),await oe.renamePromise(Ae,A)}),(!u.mirrorWriteOnly||A===null)&&me.push(async()=>{let Ae=`${g}${this.cacheId}`;await oe.copyFilePromise(de,Ae,t_.default.constants.COPYFILE_FICLONE),await oe.chmodPromise(Ae,420),await oe.renamePromise(Ae,g)});let we=u.mirrorWriteOnly?A??g:g;return await Promise.all(me.map(Ae=>Ae())),[!1,we,Ee]},C=async()=>{let Be=(async()=>{let Ee=u.unstablePackages?.has(e.locatorHash),g=Ee||!r||this.isChecksumCompatible(r)?this.getLocatorPath(e,r):null,me=g!==null?this.markedFiles.has(g)||await p.existsPromise(g):!1,we=!!u.mockedPackages?.has(e.locatorHash)&&(!this.check||!me),Ae=we||me,ne=Ae?o:a;if(ne&&ne(),Ae){let Z=null,xe=g;if(!we)if(this.check)Z=await I(xe);else{let Ne=await E(xe,{isColdHit:!1});if(Ne.isValid)Z=Ne.hash;else return x()}return[we,xe,Z]}else{if(this.immutable&&Ee)throw new Jt(56,`Cache entry required but missing for ${qr(this.configuration,e)}; consider defining ${pe.pretty(this.configuration,"supportedArchitectures",pe.Type.CODE)} to cache packages for multiple systems`);return x()}})();this.mutexes.set(e.locatorHash,Be);try{return await Be}finally{this.mutexes.delete(e.locatorHash)}};for(let de;de=this.mutexes.get(e.locatorHash);)await de;let[R,L,U]=await C();R||this.markedFiles.add(L);let z,te=R?()=>h():()=>new Zi(L,{baseFs:p,readOnly:!0}),ae=new Gd(()=>uL(()=>z=te(),de=>`Failed to open the cache entry for ${qr(this.configuration,e)}: ${de}`),V),le=new Hu(L,{baseFs:ae,pathUtils:V}),ce=()=>{z?.discardAndClose()},Ce=u.unstablePackages?.has(e.locatorHash)?null:U;return[le,ce,Ce]}},uut=/^(?:(?<cacheKey>(?<cacheVersion>[0-9]+)(?<cacheSpec>.*))\/)?(?<hash>.*)$/});var Mx,Ape=Et(()=>{Mx=(r=>(r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE",r))(Mx||{})});var Aut,Ty,i_=Et(()=>{Pt();Nl();xf();So();Aut=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,o)=>`${r}#commit=${o}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>bb({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],Ty=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let o=V.join(e.cwd,dr.lockfile);if(!oe.existsSync(o))return;let a= Line truncated
`)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}reportFold(r,o){}async finalize(){this.errorCount>0&&(this.stdout.write(`
`),this.stdout.write(`${Ot(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command.
`),this.suggestInstall&&this.stdout.write(`${Ot(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help.
`))}formatNameWithHyperlink(r){return AU(r,{configuration:this.configuration,json:!1})}}});var Ny,s_=Et(()=>{So();Ny=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(vb(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){let a=o.project.storedResolutions.get(e.descriptorHash);if(a){let u=o.project.originalPackages.get(a);if(u)return[u]}let n=o.project.originalPackages.get(vb(e).locatorHash);if(n)return[n];throw new Error("Resolution expected from the lockfile data")}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.originalPackages.get(e.locatorHash);if(!o)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return o}}});function Yf(){}function fut(t,e,r,o,a){for(var n=0,u=e.length,A=0,p=0;n<u;n++){var h=e[n];if(h.removed){if(h.value=t.join(o.slice(p,p+h.count)),p+=h.count,n&&e[n-1].added){var I=e[n-1];e[n-1]=e[n],e[n]=I}}else{if(!h.added&&a){var E=r.slice(A,A+h.count);E=E.map(function(x,C){var R=o[p+C];return R.length>x.length?R:x}),h.value=t.join(E)}else h.value=t.join(r.slice(A,A+h.count));A+=h.count,h.added||(p+=h.count)}}var v=e[u-1];return u>1&&typeof v.value=="string"&&(v.added||v.removed)&&t.equals("",v.value)&&(e[u-2].value+=v.value,e.pop()),e}function put(t){return{newPos:t.newPos,components:t.components.slice(0)}}function hut(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function gpe(t,e,r){return r=hut(r,{ignoreWhitespace:!0}),u_.diff(t,e,r)}function gut(t,e,r){return A_.diff(t,e,r)}function Ox(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ox=function(e){return typeof e}:Ox=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ox(t)}function o_(t){return yut(t)||Eut(t)||Cut(t)||wut()}function yut(t){if(Array.isArray(t))return a_(t)}function Eut(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function Cut(t,e){if(t){if(typeof t=="string")return a_(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a_(t,e)}}function a_(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,o=new Array(e);r<e;r++)o[r]=t[r];return o}function wut(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function l_(t,e,r,o,a){e=e||[],r=r||[],o&&(t=o(a,t));var n;for(n=0;n<e.length;n+=1)if(e[n]===t)return r[n];var u;if(Iut.call(t)==="[object Array]"){for(e.push(t),u=new Array(t.length),r.push(u),n=0;n<t.length;n+=1)u[n]=l_(t[n],e,r,o,a);return e.pop(),r.pop(),u}if(t&&t.toJSON&&(t=t.toJSON()),Ox(t)==="object"&&t!==null){e.push(t),u={},r.push(u);var A=[],p;for(p in t)t.hasOwnProperty(p)&&A.push(p);for(A.sort(),n=0;n<A.length;n+=1)p=A[n],u[p]=l_(t[p],e,r,o,p);e.pop(),r.pop()}else u=t;return u}function dpe(t,e,r,o,a,n,u){u||(u={}),typeof u.context>"u"&&(u.context=4);var A=gut(r,o,u);if(!A)return;A.push({value:"",lines:[]});function p(U){return U.map(function(z){return" "+z})}for(var h=[],E=0,I=0,v=[],x=1,C=1,R=function(z){var te=A[z],ae=te.lines||te.value.replace(/\n$/,"").split(`
`);if(te.lines=ae,te.added||te.removed){var le;if(!E){var ce=A[z-1];E=x,I=C,ce&&(v=u.context>0?p(ce.lines.slice(-u.context)):[],E-=v.length,I-=v.length)}(le=v).push.apply(le,o_(ae.map(function(Ae){return(te.added?"+":"-")+Ae}))),te.added?C+=ae.length:x+=ae.length}else{if(E)if(ae.length<=u.context*2&&z<A.length-2){var Ce;(Ce=v).push.apply(Ce,o_(p(ae)))}else{var de,Be=Math.min(ae.length,u.context);(de=v).push.apply(de,o_(p(ae.slice(0,Be))));var Ee={oldStart:E,oldLines:x-E+Be,newStart:I,newLines:C-I+Be,lines:v};if(z>=A.length-2&&ae.length<=u.context){var g=/\n$/.test(r),me=/\n$/.test(o),we=ae.length==0&&v.length>Ee.oldLines;!g&&we&&r.length>0&&v.splice(Ee.oldLines,0,"\\ No newline at end of file"),(!g&&!we||!me)&&v.push("\\ No newline at end of file")}h.push(Ee),E=0,I=0,v=[]}x+=ae.length,C+=ae.length}},L=0;L<A.length;L++)R(L);return{oldFileName:t,newFileName:e,oldHeader:a,newHeader:n,hunks:h}}var u3t,ppe,hpe,u_,A_,dut,mut,Iut,G1,c_,f_=Et(()=>{Yf.prototype={diff:function(e,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=o.callback;typeof o=="function"&&(a=o,o={}),this.options=o;var n=this;function u(R){return a?(setTimeout(function(){a(void 0,R)},0),!0):R}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var A=r.length,p=e.length,h=1,E=A+p;o.maxEditLength&&(E=Math.min(E,o.maxEditLength));var I=[{newPos:-1,components:[]}],v=this.extractCommon(I[0],r,e,0);if(I[0].newPos+1>=A&&v+1>=p)return u([{value:this.join(r),count:r.length}]);function x(){for(var R=-1*h;R<=h;R+=2){var L=void 0,U=I[R-1],z=I[R+1],te=(z?z.newPos:0)-R;U&&(I[R-1]=void 0);var ae=U&&U.newPos+1<A,le=z&&0<=te&&te<p;if(!ae&&!le){I[R]=void 0;continue}if(!ae||le&&U.newPos<z.newPos?(L=put(z),n.pushComponent(L.components,void 0,!0)):(L=U,L.newPos++,n.pushComponent(L.components,!0,void 0)),te=n.extractCommon(L,r,e,R),L.newPos+1>=A&&te+1>=p)return u(fut(n,L.components,r,e,n.useLongestToken));I[R]=L}h++}if(a)(function R(){setTimeout(function(){if(h>E)return a();x()||R()},0)})();else for(;h<=E;){var C=x();if(C)return C}},pushComponent:function(e,r,o){var a=e[e.length-1];a&&a.added===r&&a.removed===o?e[e.length-1]={count:a.count+1,added:r,removed:o}:e.push({count:1,added:r,removed:o})},extractCommon:function(e,r,o,a){for(var n=r.length,u=o.length,A=e.newPos,p=A-a,h=0;A+1<n&&p+1<u&&this.equals(r[A+1],o[p+1]);)A++,p++,h++;return h&&e.components.push({count:h}),e.newPos=A,p},equals:function(e,r){return this.options.comparator?this.options.comparator(e,r):e===r||this.options.ignoreCase&&e.toLowerCase()===r.toLowerCase()},removeEmpty:function(e){for(var r=[],o=0;o<e.length;o++)e[o]&&r.push(e[o]);return r},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};u3t=new Yf;ppe=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,hpe=/\S/,u_=new Yf;u_.equals=function(t,e){return this.options.ignoreCase&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e||this.options.ignoreWhitespace&&!hpe.test(t)&&!hpe.test(e)};u_.tokenize=function(t){for(var e=t.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),r=0;r<e.length-1;r++)!e[r+1]&&e[r+2]&&ppe.test(e[r])&&ppe.test(e[r+2])&&(e[r]+=e[r+2],e.splice(r+1,2),r--);return e};A_=new Yf;A_.tokenize=function(t){var e=[],r=t.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var o=0;o<r.length;o++){var a=r[o];o%2&&!this.options.newlineIsToken?e[e.length-1]+=a:(this.options.ignoreWhitespace&&(a=a.trim()),e.push(a))}return e};dut=new Yf;dut.tokenize=function(t){return t.split(/(\S.+?[.!?])(?=\s+|$)/)};mut=new Yf;mut.tokenize=function(t){return t.split(/([{}:;,]|\s+)/)};Iut=Object.prototype.toString,G1=new Yf;G1.useLongestToken=!0;G1.tokenize=A_.tokenize;G1.castInput=function(t){var e=this.options,r=e.undefinedReplacement,o=e.stringifyReplacer,a=o===void 0?function(n,u){return typeof u>"u"?r:u}:o;return typeof t=="string"?t:JSON.stringify(l_(t,null,null,a),a," ")};G1.equals=function(t,e){return Yf.prototype.equals.call(G1,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};c_=new Yf;c_.tokenize=function(t){return t.slice()};c_.join=c_.removeEmpty=function(t){return t}});var ype=_((f3t,mpe)=>{var But=Hl(),vut=Ym(),Dut=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Put=/^\w*$/;function but(t,e){if(But(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||vut(t)?!0:Put.test(t)||!Dut.test(t)||e!=null&&t in Object(e)}mpe.exports=but});var wpe=_((p3t,Cpe)=>{var Epe=PP(),Sut="Expected a function";function p_(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(Sut);var r=function(){var o=arguments,a=e?e.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var u=t.apply(this,o);return r.cache=n.set(a,u)||n,u};return r.cache=new(p_.Cache||Epe),r}p_.Cache=Epe;Cpe.exports=p_});var Bpe=_((h3t,Ipe)=>{var xut=wpe(),kut=500;function Qut(t){var e=xut(t,function(o){return r.size===kut&&r.clear(),o}),r=e.cache;return e}Ipe.exports=Qut});var h_=_((g3t,vpe)=>{ Line truncated
`;await oe.changeFilePromise(r,o,{automaticNewlines:!0}),this.manifest.raw=e}}});function NAt({project:t,allDescriptors:e,allResolutions:r,allPackages:o,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:u=new Map,peerWarnings:A=[],peerRequirementNodes:p=new Map,volatileDescriptors:h=new Set}){let E=new Map,I=[],v=new Map,x=new Map,C=new Map,R=new Map,L=new Map(t.workspaces.map(le=>{let ce=le.anchoredLocator.locatorHash,Ce=o.get(ce);if(typeof Ce>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[ce,OI(Ce)]})),U=()=>{let le=oe.mktempSync(),ce=V.join(le,"stacktrace.log"),Ce=String(I.length+1).length,de=I.map((Be,Ee)=>`${`${Ee+1}.`.padStart(Ce," ")} ${ka(Be)}
`).join("");throw oe.writeFileSync(ce,de),oe.detachTemp(le),new Jt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${ue.fromPortablePath(ce)}`)},z=le=>{let ce=r.get(le.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: The resolution should have been registered");let Ce=o.get(ce);if(!Ce)throw new Error("Assertion failed: The package could not be found");return Ce},te=(le,ce,Ce,{top:de,optional:Be})=>{I.length>1e3&&U(),I.push(ce);let Ee=ae(le,ce,Ce,{top:de,optional:Be});return I.pop(),Ee},ae=(le,ce,Ce,{top:de,optional:Be})=>{if(Be||n.delete(ce.locatorHash),a.has(ce.locatorHash))return;a.add(ce.locatorHash);let Ee=o.get(ce.locatorHash);if(!Ee)throw new Error(`Assertion failed: The package (${qr(t.configuration,ce)}) should have been registered`);let g=[],me=new Map,we=[],Ae=[],ne=[],Z=[];for(let Ne of Array.from(Ee.dependencies.values())){if(Ee.peerDependencies.has(Ne.identHash)&&Ee.locatorHash!==de)continue;if(Pf(Ne))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");h.delete(Ne.descriptorHash);let ht=Be;if(!ht){let be=Ee.dependenciesMeta.get(rn(Ne));if(typeof be<"u"){let et=be.get(null);typeof et<"u"&&et.optional&&(ht=!0)}}let H=r.get(Ne.descriptorHash);if(!H)throw new Error(`Assertion failed: The resolution (${jn(t.configuration,Ne)}) should have been registered`);let rt=L.get(H)||o.get(H);if(!rt)throw new Error(`Assertion failed: The package (${H}, resolved from ${jn(t.configuration,Ne)}) should have been registered`);if(rt.peerDependencies.size===0){te(Ne,rt,new Map,{top:de,optional:ht});continue}let Te,Fe,ke=new Set,Ye=new Map;we.push(()=>{Te=KM(Ne,ce.locatorHash),Fe=VM(rt,ce.locatorHash),Ee.dependencies.delete(Ne.identHash),Ee.dependencies.set(Te.identHash,Te),r.set(Te.descriptorHash,Fe.locatorHash),e.set(Te.descriptorHash,Te),o.set(Fe.locatorHash,Fe),g.push([rt,Te,Fe])}),Ae.push(()=>{R.set(Fe.locatorHash,Ye);for(let be of Fe.peerDependencies.values()){let Ue=al(me,be.identHash,()=>{let S=Ce.get(be.identHash)??null,w=Ee.dependencies.get(be.identHash);return!w&&HI(ce,be)&&(le.identHash===ce.identHash?w=le:(w=In(ce,le.range),e.set(w.descriptorHash,w),r.set(w.descriptorHash,ce.locatorHash),h.delete(w.descriptorHash),S=null)),w||(w=In(be,"missing:")),{subject:ce,ident:be,provided:w,root:!S,requests:new Map,hash:`p${zi(ce.locatorHash,be.identHash).slice(0,5)}`}}).provided;if(Ue.range==="missing:"&&Fe.dependencies.has(be.identHash)){Fe.peerDependencies.delete(be.identHash);continue}Ye.set(be.identHash,{requester:Fe,descriptor:be,meta:Fe.peerDependenciesMeta.get(rn(be)),children:new Map}),Fe.dependencies.set(be.identHash,Ue),Pf(Ue)&&Sm(C,Ue.descriptorHash).add(Fe.locatorHash),v.set(Ue.identHash,Ue),Ue.range==="missing:"&&ke.add(Ue.identHash)}Fe.dependencies=new Map(Fs(Fe.dependencies,([be,et])=>rn(et)))}),ne.push(()=>{if(!o.has(Fe.locatorHash))return;let be=E.get(rt.locatorHash);typeof be=="number"&&be>=2&&U();let et=E.get(rt.locatorHash),Ue=typeof et<"u"?et+1:1;E.set(rt.locatorHash,Ue),te(Te,Fe,Ye,{top:de,optional:ht}),E.set(rt.locatorHash,Ue-1)}),Z.push(()=>{let be=Ee.dependencies.get(Ne.identHash);if(typeof be>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let et=r.get(be.descriptorHash);if(typeof et>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let Ue=R.get(et);if(typeof Ue>"u")throw new Error("Assertion failed: Expected the peer requests to be registered");for(let S of me.values()){let w=Ue.get(S.ident.identHash);w&&(S.requests.set(be.descriptorHash,w),p.set(S.hash,S),S.root||Ce.get(S.ident.identHash)?.children.set(be.descriptorHash,w))}if(o.has(Fe.locatorHash))for(let S of ke)Fe.dependencies.delete(S)})}for(let Ne of[...we,...Ae])Ne();let xe;do{xe=!0;for(let[Ne,ht,H]of g){let rt=kI(x,Ne.locatorHash),Te=zi(...[...H.dependencies.values()].map(be=>{let et=be.range!=="missing:"?r.get(be.descriptorHash):"missing:";if(typeof et>"u")throw new Error(`Assertion failed: Expected the resolution for ${jn(t.configuration,be)} to have been registered`);return et===de?`${et} (top)`:et}),ht.identHash),Fe=rt.get(Te);if(typeof Fe>"u"){rt.set(Te,ht);continue}if(Fe===ht)continue;o.delete(H.locatorHash),e.delete(ht.descriptorHash),r.delete(ht.descriptorHash),a.delete(H.locatorHash);let ke=C.get(ht.descriptorHash)||[],Ye=[Ee.locatorHash,...ke];C.delete(ht.descriptorHash);for(let be of Ye){let et=o.get(be);typeof et>"u"||(et.dependencies.get(ht.identHash).descriptorHash!==Fe.descriptorHash&&(xe=!1),et.dependencies.set(ht.identHash,Fe))}for(let be of me.values())be.provided.descriptorHash===ht.descriptorHash&&(be.provided=Fe)}}while(!xe);for(let Ne of[...ne,...Z])Ne()};for(let le of t.workspaces){let ce=le.anchoredLocator;h.delete(le.anchoredDescriptor.descriptorHash),te(le.anchoredDescriptor,ce,new Map,{top:ce.locatorHash,optional:!1})}for(let le of p.values()){if(!le.root)continue;let ce=o.get(le.subject.locatorHash);if(typeof ce>"u")co Line truncated
${[I,v,x].join(`
`)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=V.join(this.cwd,dr.lockfile),r=this.configuration.get("defaultLanguageName");if(oe.existsSync(e)){let o=await oe.readFilePromise(e,"utf8");this.lockFileChecksum=$pe(o);let a=Ki(o);if(a.__metadata){let n=a.__metadata.version,u=a.__metadata.cacheKey;this.lockfileLastVersion=n,this.lockfileNeedsRefresh=n<Gx;for(let A of Object.keys(a)){if(A==="__metadata")continue;let p=a[A];if(typeof p.resolution>"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${A})`);let h=bf(p.resolution,!0),E=new Ut;E.load(p,{yamlCompatibilityMode:!0});let I=E.version,v=E.languageName||r,x=p.linkType.toUpperCase(),C=p.conditions??null,R=E.dependencies,L=E.peerDependencies,U=E.dependenciesMeta,z=E.peerDependenciesMeta,te=E.bin;if(p.checksum!=null){let le=typeof u<"u"&&!p.checksum.includes("/")?`${u}/${p.checksum}`:p.checksum;this.storedChecksums.set(h.locatorHash,le)}let ae={...h,version:I,languageName:v,linkType:x,conditions:C,dependencies:R,peerDependencies:L,dependenciesMeta:U,peerDependenciesMeta:z,bin:te};this.originalPackages.set(ae.locatorHash,ae);for(let le of A.split(QAt)){let ce=nh(le);n<=6&&(ce=this.configuration.normalizeDependency(ce),ce=In(ce,ce.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,"$1npm%3A"))),this.storedDescriptors.set(ce.descriptorHash,ce),this.storedResolutions.set(ce.descriptorHash,h.locatorHash)}}}else o.includes("yarn lockfile v1")&&(this.lockfileLastVersion=-1)}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,r=(0,jx.default)(4),o=async(a,n)=>{if(e.has(n))return a;e.add(n);let u=new My(n,{project:this});await r(()=>u.setup());let A=a.then(()=>{this.addWorkspace(u)});return Array.from(u.workspacesCwds).reduce(o,A)};await o(Promise.resolve(),this.cwd)}addWorkspace(e){let r=this.workspacesByIdent.get(e.anchoredLocator.identHash);if(typeof r<"u")throw new Error(`Duplicate workspace name ${Oi(this.configuration,e.anchoredLocator)}: ${ue.fromPortablePath(e.cwd)} conflicts with ${ue.fromPortablePath(r.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.anchoredLocator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){V.isAbsolute(e)||(e=V.resolve(this.cwd,e)),e=V.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let o of this.workspaces)V.relative(o.cwd,e).startsWith("../")||r&&r.cwd.length>=o.cwd.length||(r=o);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r>"u"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${Oi(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){if(e.range.startsWith(ei.protocol)){let o=e.range.slice(ei.protocol.length);if(o!=="^"&&o!=="~"&&o!=="*"&&!Qa(o))return this.tryWorkspaceByCwd(o)}let r=this.tryWorkspaceByIdent(e);return r===null||(Pf(e)&&(e=UI(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${jn(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Gc(e)&&(e=_I(e)),r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${qr(this.configuration,e)})`);return r}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 r=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let o=new Set(this.storedResolutions.values());typeof r<"u"&&!o.has(r)&&this.deleteLocator(r)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[r,o]of this.storedResolutions)o===e.locatorHash&&this.deleteDescriptor(r)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),r=new Map;for(let[o,a]of this.storedResolutions.entries()){let n=r.get(a);n||r.set(a,n=new Set),n.add(o)}for(let o of this.originalPackages.values()){let a;try{a=e.shouldPersistResolution(o,{project:this,resolver:e})}catch{a=!1}if(!a){this.deleteLocator(o.locatorHash);let n=r.get(o.locatorHash);if(n){r.delete(o.locatorHash);for(let u of n)this.deleteDescriptor(u)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,o]of e.dependencies)Pf(o)&&e.dLine truncated
`;switch(rt.type){case 0:Te+=`# Script name: ${rt.script}
`;break;case 1:Te+=`# Script code: ${rt.script}
`;break}let Fe=null;if(!await oe.mktempPromise(async Ye=>{let be=V.join(Ye,"build.log"),{stdout:et,stderr:Ue}=this.configuration.getSubprocessStreams(be,{header:Te,prefix:qr(this.configuration,Z),report:r}),S;try{switch(rt.type){case 0:S=await NS(Z,rt.script,[],{cwd:H,project:this,stdin:Fe,stdout:et,stderr:Ue});break;case 1:S=await fU(Z,rt.script,[],{cwd:H,project:this,stdin:Fe,stdout:et,stderr:Ue});break}}catch(y){Ue.write(y.stack),S=1}if(et.end(),Ue.end(),S===0)return!0;oe.detachTemp(Ye);let w=`${qr(this.configuration,Z)} couldn't be built successfully (exit code ${Ot(this.configuration,S,yt.NUMBER)}, logs can be found here: ${Ot(this.configuration,be,yt.PATH)})`,b=this.optionalBuilds.has(Z.locatorHash);return b?r.reportInfo(9,w):r.reportError(9,w),Zce&&r.reportFold(ue.fromPortablePath(be),oe.readFileSync(be,"utf8")),b}))return!1}return!0});Ae.push(...ht,Promise.allSettled(ht).then(H=>{ae.delete(ne),H.every(rt=>rt.status==="fulfilled"&&rt.value===!0)&&Ee.set(Z.locatorHash,Ne)}))}if(await _c(Ae),we===ae.size){let ne=Array.from(ae).map(Z=>{let xe=this.storedPackages.get(Z);if(!xe)throw new Error("Assertion failed: The package should have been registered");return qr(this.configuration,xe)}).join(", ");r.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ne})`);break}}this.storedBuildState=Ee,this.skippedBuilds=L}async installWithNewReport(e,r){return(await Rt.start({configuration:this.configuration,json:e.json,stdout:e.stdout,forceSectionAlignment:!0,includeLogs:!e.json&&!e.quiet,includeVersion:!0},async a=>{await this.install({...r,report:a})})).exitCode()}async install(e){let r=this.configuration.get("nodeLinker");Ke.telemetry?.reportInstall(r);let o=!1;if(await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{this.configuration.get("enableOfflineMode")&&e.report.reportWarning(90,"Offline work is enabled; Yarn won't fetch packages from the remote registry if it can avoid it"),await this.configuration.triggerHook(E=>E.validateProject,this,{reportWarning:(E,I)=>{e.report.reportWarning(E,I)},reportError:(E,I)=>{e.report.reportError(E,I),o=!0}})}),o)return;let a=await this.configuration.getPackageExtensions();for(let E of a.values())for(let[,I]of E)for(let v of I)v.status="inactive";let n=V.join(this.cwd,dr.lockfile),u=null;if(e.immutable)try{u=await oe.readFilePromise(n,"utf8")}catch(E){throw E.code==="ENOENT"?new Jt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):E}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{MAt(this,e.report);for(let[,E]of a)for(let[,I]of E)for(let v of I)if(v.userProvided){let x=Ot(this.configuration,v,yt.PACKAGE_EXTENSION);switch(v.status){case"inactive":e.report.reportWarning(68,`${x}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${x}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(u!==null){let E=L0(u,this.generateLockfile());if(E!==u){let I=dpe(n,n,u,E,void 0,void 0,{maxEditLength:100});if(I){e.report.reportSeparator();for(let v of I.hunks){e.report.reportInfo(null,`@@ -${v.oldStart},${v.oldLines} +${v.newStart},${v.newLines} @@`);for(let x of v.lines)x.startsWith("+")?e.report.reportError(28,Ot(this.configuration,x,yt.ADDED)):x.startsWith("-")?e.report.reportError(28,Ot(this.configuration,x,yt.REMOVED)):e.report.reportInfo(null,Ot(this.configuration,x,"grey"))}e.report.reportSeparator()}throw new Jt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let E of a.values())for(let[,I]of E)for(let v of I)v.userProvided&&v.status==="active"&&Ke.telemetry?.reportPackageExtension(pg(v,yt.PACKAGE_EXTENSION));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e)});let A=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],p=await Promise.all(A.map(async E=>Bb(E,{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 ${Ot(this.configuration,"mode=update-lockfile",yt.CODE)}`);return}await this.linkEverything(e);let E=await Promise.all(A.map(async I=>Bb(I,{cwd:this.cwd})));for(let I=0;I<A.length;++I)p[I]!==E[I]&&e.report.reportError(64,`The checksum for ${A[I]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile();let h=!1;await e.report.startTimerPromise("Post-install validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(E=>E.validateProjectAfterInstall,this,{reportWarning:(E,I)=>{e.report.r Line truncated
`,`# Manual changes might be lost - proceed with caution!
`].join("")}
`+Da(r)}async persistLockfile(){let e=V.join(this.cwd,dr.lockfile),r="";try{r=await oe.readFilePromise(e,"utf8")}catch{}let o=this.generateLockfile(),a=L0(r,o);a!==r&&(await oe.writeFilePromise(e,a),this.lockFileChecksum=$pe(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let u of Object.values(w_))e.push(...u);let r=(0,qx.default)(this,e),o=I_.default.serialize(r),a=zi(o);if(this.installStateChecksum===a)return;let n=this.configuration.get("installStatePath");await oe.mkdirPromise(V.dirname(n),{recursive:!0}),await oe.writeFilePromise(n,await RAt(o)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:o=!0}={}){let a=this.configuration.get("installStatePath"),n;try{let u=await TAt(await oe.readFilePromise(a));n=I_.default.deserialize(u),this.installStateChecksum=zi(u)}catch{r&&await this.applyLightResolution();return}e&&typeof n.linkersCustomData<"u"&&(this.linkersCustomData=n.linkersCustomData),o&&Object.assign(this,(0,qx.default)(n,w_.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,(0,qx.default)(n,w_.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new ki}),await this.persistInstallStateFile()}async persist(){let e=(0,jx.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>e(()=>r.persistManifest()))])}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return null;let o=new Set([".gitignore"]);if(!fO(e.cwd,this.cwd)||!await oe.existsPromise(e.cwd))return null;let a=[];for(let u of await oe.readdirPromise(e.cwd)){if(o.has(u))continue;let A=V.resolve(e.cwd,u);e.markedFiles.has(A)||(e.immutable?r.reportError(56,`${Ot(this.configuration,V.basename(A),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(oe.lstatPromise(A).then(async p=>(await oe.removePromise(A),p.size))))}if(a.length===0)return null;let n=await Promise.all(a);return{count:a.length,size:n.reduce((u,A)=>u+A,0)}}}});function OAt(t){let o=Math.floor(t.timeNow/864e5),a=t.updateInterval*864e5,n=t.state.lastUpdate??t.timeNow+a+Math.floor(a*t.randomInitialInterval),u=n+a,A=t.state.lastTips??o*864e5,p=A+864e5+8*36e5-t.timeZone,h=u<=t.timeNow,E=p<=t.timeNow,I=null;return(h||E||!t.state.lastUpdate||!t.state.lastTips)&&(I={},I.lastUpdate=h?t.timeNow:n,I.lastTips=A,I.blocks=h?{}:t.state.blocks,I.displayedTips=t.state.displayedTips),{nextState:I,triggerUpdate:h,triggerTips:E,nextTips:E?o*864e5:A}}var Oy,rhe=Et(()=>{Pt();w1();rh();uS();ql();xf();Oy=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.nextTips=0;this.displayedTips=[];this.shouldCommitTips=!1;this.configuration=e;let o=this.getRegistryPath();this.isNew=!oe.existsSync(o),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(e){let r=new Set(this.displayedTips),o=A=>A&&nn?tA(nn,A):!1,a=e.map((A,p)=>p).filter(A=>e[A]&&o(e[A]?.selector));if(a.length===0)return null;let n=a.filter(A=>!r.has(A));if(n.length===0){let A=Math.floor(a.length*.2);this.displayedTips=A>0?this.displayedTips.slice(-A):[],n=a.filter(p=>!r.has(p))}let u=n[Math.floor(Math.random()*n.length)];return this.displayedTips.push(u),this.commitTips(),e[u]}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"<none>")}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,r){Sm(this.values,e).add(r)}reportEnumerator(e,r){Sm(this.enumerators,e).add(zi(r))}reportHit(e,r="*"){let o=kI(this.hits,e),a=al(o,r,()=>0);o.set(r,a+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return V.join(e,"telemetry.json")}sendReport(e){let r=this.getRegistryPath(),o;try{o=oe.readJsonSync(r)}catch{o={}}let{nextState:a,triggerUpdate:n,triggerTips:u,nextTips:A}=OAt({state:o,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=A,this.displayedTips=o.displayedTips??[],a!==null)try{oe.mkdirSync(V.dirname(r),{recursive:!0}),oe.writeJsonSync(r,a)}catch{return!1}if(u&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),n){let p=o.blocks??{};if(Object.keys(p).length===0){let h=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,E=I=>x4(h,I,{configuration:this.configuration}).catch(()=>{});for(let[I,v]of Object.entries(o.blocks??{})){if(Object.k Line truncated
`),h=u.length;for(h>0&&u.includes("unstyle")&&(u=[...new Set(["unstyle",...u])].reverse());h-- >0;)A=r(t.styles[u[h]],A,p);return A},a=(n,u,A)=>{t.styles[n]=e({name:n,codes:u}),(t.keys[A]||(t.keys[A]=[])).push(n),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(h){t.alias(n,h)},get(){let h=E=>o(E,h.stack);return Reflect.setPrototypeOf(h,t),h.stack=this.stack?this.stack.concat(n):[n],h}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=jAt,t.hasColor=t.hasAnsi=n=>(t.ansiRegex.lastIndex=0,typeof n=="string"&&n!==""&&t.ansiRegex.test(n)),t.alias=(n,u)=>{let A=typeof u=="string"?t[u]:u;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:n}),t.styles[n]=A,A.stack=[n]),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(p){t.alias(n,p)},get(){let p=h=>o(h,p.stack);return Reflect.setPrototypeOf(p,t),p.stack=this.stack?this.stack.concat(A.stack):A.stack,p}})},t.theme=n=>{if(!qAt(n))throw new TypeError("Expected theme to be an object");for(let u of Object.keys(n))t.alias(u,n[u]);return t},t.alias("unstyle",n=>typeof n=="string"&&n!==""?(t.ansiRegex.lastIndex=0,n.replace(t.ansiRegex,"")):""),t.alias("noop",n=>n),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=lhe(),t.define=a,t};P_.exports=che();P_.exports.create=che});var No=_(on=>{"use strict";var GAt=Object.prototype.toString,rc=zc(),uhe=!1,b_=[],Ahe={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};on.longest=(t,e)=>t.reduce((r,o)=>Math.max(r,e?o[e].length:o.length),0);on.hasColor=t=>!!t&&rc.hasColor(t);var Kx=on.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);on.nativeType=t=>GAt.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");on.isAsyncFn=t=>on.nativeType(t)==="asyncfunction";on.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";on.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;on.scrollDown=(t=[])=>[...t.slice(1),t[0]];on.scrollUp=(t=[])=>[t.pop(),...t];on.reorder=(t=[])=>{let e=t.slice();return e.sort((r,o)=>r.index>o.index?1:r.index<o.index?-1:0),e};on.swap=(t,e,r)=>{let o=t.length,a=r===o?0:r<0?o-1:r,n=t[e];t[e]=t[a],t[a]=n};on.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};on.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};on.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:o=`
`+r,width:a=80}=e,n=(o+r).match(/[^\S\n]/g)||[];a-=n.length;let u=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,A=t.trim(),p=new RegExp(u,"g"),h=A.match(p)||[];return h=h.map(E=>E.replace(/\n$/,"")),e.padEnd&&(h=h.map(E=>E.padEnd(a," "))),e.padStart&&(h=h.map(E=>E.padStart(a," "))),r+h.join(o)};on.unmute=t=>{let e=t.stack.find(o=>rc.keys.color.includes(o));return e?rc[e]:t.stack.find(o=>o.slice(2)==="bg")?rc[e.slice(2)]:o=>o};on.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";on.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>rc.keys.color.includes(o));if(e){let o=rc["bg"+on.pascal(e)];return o?o.black:t}let r=t.stack.find(o=>o.slice(0,2)==="bg");return r?rc[r.slice(2).toLowerCase()]||t:rc.none};on.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>rc.keys.color.includes(o)),r=t.stack.find(o=>o.slice(0,2)==="bg");if(e&&!r)return rc[Ahe[e]||e];if(r){let o=r.slice(2).toLowerCase(),a=Ahe[o];return a&&rc["bg"+on.pascal(a)]||t}return rc.none};on.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),o=e>=12?"pm":"am";e=e%12;let a=e===0?12:e,n=r<10?"0"+r:r;return a+":"+n+" "+o};on.set=(t={},e="",r)=>e.split(".").reduce((o,a,n,u)=>{let A=u.length-1>n?o[a]||{}:r;return!on.isObject(A)&&n<u.length-1&&(A={}),o[a]=A},t);on.get=(t={},e="",r)=>{let o=t[e]==null?e.split(".").reduce((a,n)=>a&&a[n],t):t[e];return o??r};on.mixin=(t,e)=>{if(!Kx(t))return e;if(!Kx(e))return t;for(let r of Object.keys(e)){let o=Object.getOwnPropertyDescriptor(e,r);if(o.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&Kx(o.value)){let a=Object.getOwnPropertyDescriptor(t,r);Kx(a.value)?t[r]=on.merge({},t[r],e[r]):Reflect.defineProperty(t,r,o)}else Reflect.defineProperty(t,r,o);else Reflect.defineProperty(t,r,o)}return t};on.merge=(...t)=>{let e={};for(let r of t)on.mixin(e,r);return e};on.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let o of Object.keys(r)){let a=r[o];typeof a=="function"?on.define(t,o,a.bind(e)):on.define(t,o,a)}};on.onExit=t=>{let e=(r,o)=>{uhe||(uhe=!0,b_.forEach(a=>a()),r===!0&&process.exit(128+o))};b_.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),b_.push(t)};on.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};on.defineExport=(t,e,r)=>{let o;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(a){o=a},get(){return o?o():r()}})}});var fhe=_(qy=>{"use strict";qy.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"};qy.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};qy.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};qy.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};qy.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 ghe=_((i8t,hhe)=>{"use strict";var phe=ve("readline"),YAt=fhe(),WAt=/^(?:\x1b)([a-zA-Z0-9])$/,KAt=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,VAt={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 zAt(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function JAt(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var Vx=(t="",e={})=>{let r,o={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,...e};if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=o.sequence||""),o.sequence=o.sequence||t||o.name,t==="\r")o.raw=void 0,o.name="return";else if(t===`
`)o.name="enter";else if(t===" ")o.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x1B\x7F"||t==="\x1B\b")o.name="backspace",o.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")o.name="escape",o.meta=t.length===2;else if(t===" "||t==="\x1B ")o.name="space",o.meta=t.length===2;else if(t<="")o.name=String.fromCharCode(t.charCodeAt(0)+97-1),o.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")o.name="number";else if(t.length===1&&t>="a"&&t<="z")o.name=t;else if(t.length===1&&t>="A"&&t<="Z")o.name=t.toLowerCase(),o.shift=!0;else if(r=WAt.exec(t))o.meta=!0,o.shift=/^[A-Z]$/.test(r[1]);else if(r=KAt.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(o.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),u=(r[3]||r[5]||1)-1;o.ctrl=!!(u&4),o.meta=!!(u&10),o.shift=!!(u&1),o.code=n,o.name=VAt[n],o.shift=zAt(n)||o.shift,o.ctrl=JAt(n)||o.ctrl}return o};Vx.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let o=phe.createInterface({terminal:!0,input:r});phe.emitKeypressEvents(r,o);let a=(A,p)=>e(A,Vx(A,p),o),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a),o.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener("keypress",a),o.pause(),o.close()}};Vx.action=(t,e,r)=>{let o={...YAt,...r};return e.ctrl?(e.action=o.ctrl[e.name],e):e.option&&o.option?(e.action=o.option[e.name],e):e.shift?(e.action=o.shift[e.name],e):(e.action=o.keys[e.name],e)};hhe.exports=Vx});var mhe=_((s8t,dhe)=>{"use strict";dhe.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(e)for(let r of Object.keys(e)){let o=e[r];typeof o=="number"&&(o={interval:o}),XAt(t,r,o)}};function XAt(t,e,r={}){let o=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},a=r.interval||120;o.frames=r.frames||[],o.loading=!0;let n=setInterval(()=>{o.ms=Date.now()-o.start,o.tick++,t.render()},a);return o.stop=()=>{o.loading=!1,clearInterval(n)},Reflect.defineProperty(o,"interval",{value:n}),t.once("close",()=>o.stop()),o.stop}});var Ehe=_((o8t,yhe)=>{"use strict";var{define:ZAt,width:$At}=No(),S_=class{constructor(e){let r=e.options;ZAt(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=$At(r.stdout||process.stdout),Object.assign(this,r),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 r=this._color||e[this.status];return typeof r=="function"?r: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"}};yhe.exports=S_});var whe=_((a8t,Che)=>{"use strict";var x_=No(),eo=zc(),k_={default:eo.noop,noop:eo.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||x_.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||x_.complement(this.primary)},primary:eo.cyan,success:eo.green,danger:eo.magenta,strong:eo.bold,warning:eo.yellow,muted:eo.dim,disabled:eo.gray,dark:eo.dim.gray,underline:eo.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};k_.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(eo.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(eo.visible=t.styles.visible);let e=x_.merge({},k_,t.styles);delete e.merge;for(let r of Object.keys(eo))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>eo[r]});for(let r of Object.keys(eo.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>eo[r]});return e};Che.exports=k_});var Bhe=_((l8t,Ihe)=>{"use strict";var Q_=process.platform==="win32",Wf=zc(),eft=No(),F_={...Wf.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301", Line truncated
`),h=p[0],E=p[p.length-1],v=(o+(r?" "+r:"")).length,x=v<h.length?h.slice(v+1):"";return{header:u,prompt:h,after:x,rest:p.slice(1),last:E}}async submit(){this.state.submitted=!0,this.state.validating=!0,this.options.onSubmit&&await this.options.onSubmit.call(this,this.name,this.value,this);let e=this.state.error||await this.validate(this.value,this.state);if(e!==!0){let r=`
`+this.symbols.pointer+" ";typeof e=="string"?r+=e.trim():r+="Invalid input",this.state.error=`
`+this.styles.danger(r),this.state.submitted=!1,await this.render(),await this.alert(),this.state.validating=!1,this.state.error=void 0;return}this.state.validating=!1,await this.render(),await this.close(),this.value=await this.result(this.value),this.emit("submit",this.value)}async cancel(e){this.state.cancelled=this.state.submitted=!0,await this.render(),await this.close(),typeof this.options.onCancel=="function"&&await this.options.onCancel.call(this,this.name,this.value,this),this.emit("cancel",await this.error(e))}async close(){this.state.closed=!0;try{let e=this.sections(),r=Math.ceil(e.prompt.length/this.width);e.rest&&this.write(Ug.cursor.down(e.rest.length)),this.write(`
`.repeat(r))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=L_.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:r,result:o}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>o.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),n=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),n())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,o){let{options:a,state:n,symbols:u,timers:A}=this,p=A&&A[e];n.timer=p;let h=a[e]||n[e]||u[e],E=r&&r[e]!=null?r[e]:await h;if(E==="")return E;let I=await this.resolve(E,n,r,o);return!I&&r&&r[e]?this.resolve(h,n,r,o):I}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,o=this.state;return o.timer=r,Na.isObject(e)&&(e=e[o.status]||e.pending),Na.hasColor(e)?e:(this.styles[o.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Na.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,o=this.state;o.timer=r;let a=e[o.status]||e.pending||o.separator,n=await this.resolve(a,o);return Na.isObject(n)&&(n=n[o.status]||n.pending),Na.hasColor(n)?n:this.styles.muted(n)}async pointer(e,r){let o=await this.element("pointer",e,r);if(typeof o=="string"&&Na.hasColor(o))return o;if(o){let a=this.styles,n=this.index===r,u=n?a.primary:h=>h,A=await this.resolve(o[n?"on":"off"]||o,this.state),p=Na.hasColor(A)?A:u(A);return n?p:" ".repeat(A.length)}}async indicator(e,r){let o=await this.element("indicator",e,r);if(typeof o=="string"&&Na.hasColor(o))return o;if(o){let a=this.styles,n=e.enabled===!0,u=n?a.success:a.dark,A=o[n?"on":"off"]||o;return Na.hasColor(A)?A:u(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 Na.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,...r){return Na.resolve(this,e,...r)}get base(){return t.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Na.height(this.stdout,25)}get width(){return this.options.columns||Na.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:r}=this.state,o=[r,e].find(this.isValue.bind(this));return this.isValue(o)?o:this.initial}static get prompt(){return e=>new this(e).run()}};function cft(t){let e=a=>t[a]===void 0||typeof t[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],o=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(t.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=t.options[a];typeof n=="function"&&e(a)?o.includes(a)||(t[a]=n.bind(t)):typeof t[a]!="function"&&(t[a]=n)}}function uft(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=a=>a%2===0?`
`:" ",o=[];for(let a=0;a<4;a++){let n=r(a);e[a]?o.push(n.repeat(e[a])):o.push("")}return o}Fhe.exports=M_});var Nhe=_((A8t,The)=>{"use strict";var Aft=No(),Rhe={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return Rhe.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};The.exports=(t,e={})=>{let r=Aft.merge({},Rhe,e.roles);return r[t]||r.default}});var V1=_((f8t,Ohe)=>{"use strict";var fft=zc(),pft=jy(),hft=Nhe(),zx=No(),{reorder:O_,scrollUp:gft,scrollDown:dft,isObject:Lhe,swap:mft}=zx,U_=class extends pft{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:r,autofocus:o,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(n=>n.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Lhe(r)&&(r=Object.keys(r)),Array.isArray(r)?(o!=null&&(this.index=this.findIndex(o)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(o!=null&&(r=o),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let o=[],a=0,n=async(u,A)=>{typeof u=="function"&&(u=await u.call(this)),u instanceof Promise&&(u=await u);for(let p=0;p<u.length;p++){let h=u[p]=await this.toChoice(u[p],a++,A);o.push(h),h.choices&&await n(h.choices,h)}return o};return n(e,r).then(u=>(this.state.loadingChoices=!1,u))}async toChoice(e,r,o){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 a=e.value;if(e=hft(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=r,e.cursor=0,zx.define(e,"parent",o),e.level=o?o.level+1:1,e.indent==null&&(e.indent=o?o.indent+" ":e.indent||""),e.path=o?o.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,fft.unstyle(e.message).length));let u={...e};return e.reset=(A=u.input,p=u.value)=>{for(let h of Object.keys(u))e[h]=u[h];e.input=A,e.value=p},a==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,o){let a=await this.toChoice(e,r,o);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(e,r,o){let a={name:"New choice name?",editable:!0,newChoice:!0,...e},n=await this.addChoice(a,r,o);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input="",n.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(r=>r.enabled);return this.choices.forEach(r=>r.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(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e. Line truncated
`),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,o].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:r}=this.state,o="",a=await this.header(),n=await this.prefix(),u=await this.separator(),A=await this.message();this.options.promptLine!==!1&&(o=[n,A,u,""].join(" "),this.state.prompt=o);let p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),I=await this.footer();p&&(o+=p),h&&!o.includes(h)&&(o+=" "+h),e&&!p&&!E.trim()&&this.multiple&&this.emptyError!=null&&(o+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,o,E,I].filter(Boolean).join(`
`)),this.write(this.margin[2]),this.restore()}};Uhe.exports=H_});var Hhe=_((h8t,_he)=>{"use strict";var Eft=Ph(),Cft=(t,e)=>{let r=t.toLowerCase();return o=>{let n=o.toLowerCase().indexOf(r),u=e(o.slice(n,n+r.length));return n>=0?o.slice(0,n)+u+o.slice(n+r.length):o}},q_=class extends Eft{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:r,input:o}=this.state;return this.input=o.slice(0,r)+e+o.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.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,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let o=e.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(o))}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,r=Cft(this.input,e),o=this.choices;this.choices=o.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=o}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};_he.exports=q_});var G_=_((g8t,qhe)=>{"use strict";var j_=No();qhe.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:o="",pos:a,showCursor:n=!0,color:u}=e,A=u||t.styles.placeholder,p=j_.inverse(t.styles.primary),h=R=>p(t.styles.black(R)),E=r,I=" ",v=h(I);if(t.blink&&t.blink.off===!0&&(h=R=>R,v=""),n&&a===0&&o===""&&r==="")return h(I);if(n&&a===0&&(r===o||r===""))return h(o[0])+A(o.slice(1));o=j_.isPrimitive(o)?`${o}`:"",r=j_.isPrimitive(r)?`${r}`:"";let x=o&&o.startsWith(r)&&o!==r,C=x?h(o[r.length]):v;if(a!==r.length&&n===!0&&(E=r.slice(0,a)+h(r[a])+r.slice(a+1),C=""),n===!1&&(C=""),x){let R=t.styles.unstyle(E+C);return E+C+A(o.slice(R.length))}return E+C}});var Jx=_((d8t,jhe)=>{"use strict";var wft=zc(),Ift=Ph(),Bft=G_(),Y_=class extends Ift{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=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(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:o,input:a}=r;return r.value=r.input=a.slice(0,o)+e+a.slice(o),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:o}=e;return e.value=e.input=o.slice(0,r-1)+o.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:o}=e;if(o[r]===void 0)return this.alert();let a=`${o}`.slice(0,r)+`${o}`.slice(r+1);return e.value=e.input=a,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,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:o}=e;return r&&r.startsWith(o)&&o!==r?(e.value=e.input=r,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,r){let o=await this.resolve(e.separator,this.state,e,r)||":";return o?" "+this.styles.disabled(o):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:o,styles:a}=this,{cursor:n,initial:u="",name:A,hint:p,input:h=""}=e,{muted:E,submitted:I,primary:v,danger:x}=a,C=p,R=this.index===r,L=e.validate||(()=>!0),U=await this.choiceSeparator(e,r),z=e.message;this.align==="right"&&(z=z.padStart(this.longest+1," ")),this.align==="left"&&(z=z.padEnd(this.longest+1," "));let te=this.values[A]=h||u,ae=h?"success":"dark";await L.call(e,te,thi Line truncated
`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};zhe.exports=K_});var Xhe=_((C8t,Jhe)=>{"use strict";var Qft=Xx(),V_=class extends Qft{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Jhe.exports=V_});var $he=_((w8t,Zhe)=>{"use strict";var Fft=Ph(),Rft=Jx(),Gy=Rft.prototype,z_=class extends Fft{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let o=this.focused,a=o.parent||{};return!o.editable&&!a.editable&&(e==="a"||e==="i")?super[e]():Gy.dispatch.call(this,e,r)}append(e,r){return Gy.append.call(this,e,r)}delete(e,r){return Gy.delete.call(this,e,r)}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?Gy.next.call(this):super.next()}prev(){return this.focused.editable?Gy.prev.call(this):super.prev()}async indicator(e,r){let o=e.indicator||"",a=e.editable?o:super.indicator(e,r);return await this.resolve(a,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?Gy.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let o=r.parent?this.value[r.parent.name]:this.value;if(r.editable?o=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(o=r.enabled===!0),e=await r.validate(o,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 r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Zhe.exports=z_});var _g=_((I8t,e0e)=>{"use strict";var Tft=jy(),Nft=G_(),{isPrimitive:Lft}=No(),J_=class extends Tft{constructor(e){super(e),this.initial=Lft(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let o=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!o||o.name!=="return")?this.append(`
`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:o}=this.state;this.input=`${o}`.slice(0,r)+e+`${o}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.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 r=this.input.slice(0,e),o=this.input.slice(e),a=r.split(" ");this.state.clipboard.push(a.pop()),this.input=a.join(" "),this.cursor=this.input.length,this.input+=o,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 r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):Nft(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),o=await this.separator(),a=await this.message(),n=[r,a,o].filter(Boolean).join(" ");this.state.prompt=n;let u=await this.header(),A=await this.format(),p=await this.error()||await this.hint(),h=await this.footer();p&&!A.includes(p)&&(A+=" "+p),n+=" "+A,this.clear(e),this.write([u,n,h].filter(Boolean).join(`
`)),this.restore()}};e0e.exports=J_});var r0e=_((B8t,t0e)=>{"use strict";var Mft=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),Zx=t=>Mft(t).filter(Boolean);t0e.exports=(t,e={},r="")=>{let{past:o=[],present:a=""}=e,n,u;switch(t){case"prev":case"undo":return n=o.slice(0,o.length-1),u=o[o.length-1]||"",{past:Zx([r,...n]),present:u};case"next":case"redo":return n=o.slice(1),u=o[0]||"",{past:Zx([...n,r]),present:u};case"save":return{past:Zx([...o,r]),present:""};case"remove":return u=Zx(o.filter(A=>A!==r)),a="",u.length&&(a=u.pop()),{past:u,present:a};default:throw new Error(`Invalid action: "${t}"`)}}});var Z_=_((v8t,i0e)=>{"use strict";var Oft=_g(),n0e=r0e(),X_=class extends Oft{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let o=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:o},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=n0e(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=n0e("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};i0e.exports=X_});var o0e=_((D8t,s0e)=>{"use strict";var Uft=_g(),$_=class extends Uft{format(){return""}};s0e.exports=$_});var l0e=_((P8t,a0e)=>{"use strict";var _ft=_g(),e8=class extends _ft{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:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};a0e.exports=e8});var u0e=_((b8t,c0e)=>{"use strict";var Hft=Ph(),t8=class extends Hft{constructor(e){super({...e,multiple:!0})}};c0e.exports=t8});var n8=_((S8t,A0e)=>{"use strict";var qft=_g(),r8=class extends qft{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 r=e||this.minor,o=this.toNumber(this.input);return o>this.max+r?this.alert():(this.input=`${o+r}`,this.render())}down(e){let r=e||this.minor,o=this.toNumber(this.input);return o<this.min-r?this.alert():(this.input=`${o-r}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(e=this.input){return typeof this.options.format=="function"?this.options.format.call(this,e):this.styles.info(e)}toNumber(e=""){return this.float?+e:Math.round(+e)}isValue(e){return/^[-+]?[0-9]+((\.)|(\.[0-9]+))?$/.test(e)}submit(){let e=[this.input,this.initial].find(r=>this.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};A0e.exports=r8});var p0e=_((x8t,f0e)=>{f0e.exports=n8()});var g0e=_((k8t,h0e)=>{"use strict";var jft=_g(),i8=class extends jft{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)):""}};h0e.exports=i8});var y0e=_((Q8t,m0e)=>{"use strict";var Gft=zc(),Yft=V1(),d0e=No(),s8=class extends Yft{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 r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((o,a)=>({name:a+r})))}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 r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let o=0;o<this.scale.length;o++)r.scale.push({index:o})}this.widths[0]=Math.min(this.widths[0],e+3)}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}heading(e,r,o){return this.styles.strong(e)}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIndex>=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(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(o=>` ${o.name} - ${o.message}`)].map(o=>this.styles.muted(o)).join(`
`)}renderScaleHeading(e){let r=this.scale.map(p=>p.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let o=this.scaleLength-r.join("").length,a=Math.round(o/(r.length-1)),u=r.map(p=>this.styles.strong(p)).join(" ".repeat(a)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+u}scaleIndicator(e,r,o){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,o);let a=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let o=e.scale.map(n=>this.scaleIndicator(e,n,r)),a=this.term==="Hyper"?"":" ";return o.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await e.hint;n&&!d0e.hasColor(n)&&(n=this.styles.muted(n));let u=C=>this.margin[3]+C.replace(/\s+$/,"").padEnd(this.widths[0]," "),A=this.newline,p=this.indent(e),h=await this.resolve(e.message,this.state,e,r),E=await this.renderScale(e,r),I=this.margin[1]+this.margin[3];this.scaleLength=Gft.unstyle(E).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-I.length);let x=d0e.wordWrap(h,{width:this.widths[0],newline:A}).split(`
`).map(C=>u(C)+this.margin[1]);return o&&(E=this.styles.info(E),x=x.map(C=>this.styles.info(C))),x[0]+=E,this.linebreak&&x.push(""),[p+a,x.join(`
`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(e),o=await this.renderScaleHeading();return this.margin[0]+[o,...r.map(a=>a.join(" "))].join(`
`)}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u="";this.options.promptLine!==!1&&(u=[o,n,a,""].join(" "),this.state.prompt=u);let A=await this.header(),p=await this.format(),h=await this.renderScaleKey(),E=await this.error()||await this.hint(),I=await this.renderChoices(),v=await this.footer(),x=this.emptyError;p&&(u+=p),E&&!u.includes(E)&&(u+=" "+E),e&&!p&&!I.trim()&&this.multiple&&x!=null&&(u+=this.styles.danger(x)),this.clear(r),this.write([A,u,h,I,v].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)}};m0e.exports=s8});var w0e=_((F8t,C0e)=>{"use strict";var E0e=zc(),Wft=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",a8=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=Wft(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Kft=async(t={},e={},r=o=>o)=>{let o=new Set,a=t.fields||[],n=t.template,u=[],A=[],p=[],h=1;typeof n=="function"&&(n=await n());let E=-1,I=()=>n[++E],v=()=>n[E+1],x=C=>{C.line=h,u.push(C)};for(x({type:"bos",value:""});E<n.length-1;){let C=I();if(/^[^\S\n ]$/.test(C)){x({type:"text",value:C});continue}if(C===`
`){x({type:"newline",value:C}),h++;continue}if(C==="\\"){C+=I(),x({type:"text",value:C});continue}if((C==="$"||C==="#"||C==="{")&&v()==="{"){let L=I();C+=L;let U={type:"template",open:C,inner:"",close:"",value:C},z;for(;z=I();){if(z==="}"){v()==="}"&&(z+=I()),U.value+=z,U.close=z;break}z===":"?(U.initial="",U.key=U.inner):U.initial!==void 0&&(U.initial+=z),U.value+=z,U.inner+=z}U.template=U.open+(U.initial||U.inner)+U.close,U.key=U.key||U.inner,e.hasOwnProperty(U.key)&&(U.initial=e[U.key]),U=r(U),x(U),p.push(U.key),o.add(U.key);let te=A.find(ae=>ae.name===U.key);U.field=a.find(ae=>ae.name===U.key),te||(te=new a8(U),A.push(te)),te.lines.push(U.line-1);continue}let R=u[u.length-1];R.type==="text"&&R.line===h?R.value+=C:x({type:"text",value:C})}return x({type:"eos",value:""}),{input:n,tabstops:u,unique:o,keys:p,items:A}};C0e.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),o={...e.values,...e.initial},{tabstops:a,items:n,keys:u}=await Kft(e,o),A=o8("result",t,e),p=o8("format",t,e),h=o8("validate",t,e,!0),E=t.isValue.bind(t);return async(I={},v=!1)=>{let x=0;I.required=r,I.items=n,I.keys=u,I.output="";let C=async(z,te,ae,le)=>{let ce=await h(z,te,ae,le);return ce===!1?"Invalid field "+ae.name:ce};for(let z of a){let te=z.value,ae=z.key;if(z.type!=="template"){te&&(I.output+=te);continue}if(z.type==="template"){let le=n.find(Ee=>Ee.name===ae);e.required===!0&&I.required.add(le.name);let ce=[le.input,I.values[le.value],le.value,te].find(E),de=(le.field||{}).message||z.inner;if(v){let Ee=await C(I.values[ae],I,le,x);if(Ee&&typeof Ee=="string"||Ee===!1){I.invalid.set(ae,Ee);continue}I.invalid.delete(ae);let g=await A(I.values[ae],I,le,x);I.output+=E0e.unstyle(g);continue}le.placeholder=!1;let Be=te;te=await p(te,I,le,x),ce!==te?(I.values[ae]=ce,te=t.styles.typing(ce),I.missing.delete(de)):(I.values[ae]=void 0,ce=`<${de}>`,te=t.styles.primary(ce),le.placeholder=!0,I.required.has(ae)&&I.missing.add(de)),I.missing.has(de)&&I.validating&&(te=t.styles.warning(ce)),I.invalid.has(ae)&&I.validating&&(te=t.styles.danger(ce)),x===I.index&&(Be!==te?te=t.styles.underline(te):te=t.styles.heading(E0e.unstyle(te))),x++}te&&(I.output+=te)}let R=I.output.split(`
`).map(z=>" "+z),L=n.length,U=0;for(let z of n)I.invalid.has(z.name)&&z.lines.forEach(te=>{R[te][0]===" "&&(R[te]=I.styles.danger(I.symbols.bullet)+R[te].slice(1))}),t.isValue(I.values[z.name])&&U++;return I.completed=(U/L*100).toFixed(0),I.output=R.join(`
`),I.output}};function o8(t,e,r,o){return(a,n,u,A)=>typeof u.field[t]=="function"?u.field[t].call(e,a,n,u,A):[o,a].find(p=>e.isValue(p))}});var B0e=_((R8t,I0e)=>{"use strict";var Vft=zc(),zft=w0e(),Jft=jy(),l8=class extends Jft{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await zft(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 r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let o=this.getItem(),a=o.input.slice(0,this.cursor),n=o.input.slice(this.cursor);this.input=o.input=`${a}${e}${n}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),o=e.input.slice(0,this.cursor-1);this.input=e.input=`${o}${r}`,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 r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:o,size:a}=this.state,n=[this.options.newline,`
`].find(z=>z!=null),u=await this.prefix(),A=await this.separator(),p=await this.message(),h=[u,p,A].filter(Boolean).join(" ");this.state.prompt=h;let E=await this.header(),I=await this.error()||"",v=await this.hint()||"",x=o?"":await this.interpolate(this.state),C=this.state.key=r[e]||"",R=await this.format(C),L=await this.footer();R&&(h+=" "+R),v&&!R&&this.state.completed===0&&(h+=" "+v),this.clear(a);let U=[E,h,x,L,I.trim()];this.write(U.filter(Boolean).join(n)),this.restore()}getItem(e){let{items:r,keys:o,index:a}=this.state,n=r.find(u=>u.name===o[a]);return n&&n.input!=null&&(this.input=n.input,this.cursor=n.cursor),n}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:o,values:a}=this.state;if(e.size){let A="";for(let[p,h]of e)A+=`Invalid ${p}: ${h}
`;return this.state.error=A,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let u=Vft.unstyle(o).split(`
`).map(A=>A.slice(1)).join(`
`);return this.value={values:a,result:u},super.submit()}};I0e.exports=l8});var D0e=_((T8t,v0e)=>{"use strict";var Xft="(Use <shift>+<up/down> to sort)",Zft=Ph(),c8=class extends Zft{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,Xft].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let o=await super.renderChoice(e,r),a=this.symbols.identicalTo+" ",n=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(n=""),this.options.numbered===!0?n+`${r+1} - `+o:n+o}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};v0e.exports=c8});var b0e=_((N8t,P0e)=>{"use strict";var $ft=V1(),u8=class extends $ft{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(o=>this.styles.muted(o)),this.state.header=r.join(`
`)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let o of r)o.scale=ept(5,this.options),o.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],o=r.selected;return e.scale.forEach(a=>a.selected=!1),r.selected=!o,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,r){await this.onChoice(e,r);let o=this.index===r,a=this.term==="Hyper",n=a?9:8,u=a?"":" ",A=this.symbols.line.repeat(n),p=" ".repeat(n+(a?0:1)),h=te=>(te?this.styles.success("\u25C9"):"\u25EF")+u,E=r+1+".",I=o?this.styles.heading:this.styles.noop,v=await this.resolve(e.message,this.state,e,r),x=this.indent(e),C=x+e.scale.map((te,ae)=>h(ae===e.scaleIdx)).join(A),R=te=>te===e.scaleIdx?I(te):te,L=x+e.scale.map((te,ae)=>R(ae)).join(p),U=()=>[E,v].filter(Boolean).join(" "),z=()=>[U(),C,L," "].filter(Boolean).join(`
`);return o&&(C=this.styles.cyan(C),L=this.styles.cyan(L)),z()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(o,a)=>await this.renderChoice(o,a)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(`
`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=[o,n,a].filter(Boolean).join(" ");this.state.prompt=u;let A=await this.header(),p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),I=await this.footer();(p||!h)&&(u+=" "+p),h&&!u.includes(h)&&(u+=" "+h),e&&!p&&!E&&this.multiple&&this.type!=="form"&&(u+=this.styles.danger(this.emptyError)),this.clear(r),this.write([u,A,E,I].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 ept(t,e={}){if(Array.isArray(e.scale))return e.scale.map(o=>({...o}));let r=[];for(let o=1;o<t+1;o++)r.push({i:o,selected:!1});return r}P0e.exports=u8});var x0e=_((L8t,S0e)=>{S0e.exports=Z_()});var Q0e=_((M8t,k0e)=>{"use strict";var tpt=Xx(),A8=class extends tpt{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="",r){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=o=>this.styles.primary.underline(o);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,r=await this.header(),o=await this.prefix(),a=await this.separator(),n=await this.message(),u=await this.format(),A=await this.error()||await this.hint(),p=await this.footer(),h=[o,n,a,u].join(" ");this.state.prompt=h,A&&!h.includes(A)&&(h+=" "+A),this.clear(e),this.write([r,h,p].filter(Boolean).join(`
`)),this.write(this.margin[2]),this.restore()}};k0e.exports=A8});var R0e=_((O8t,F0e)=>{"use strict";var rpt=Ph(),f8=class extends rpt{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,r){let o=await super.toChoices(e,r);if(o.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>o.length)throw new Error("Please specify the index of the correct answer from the list of choices");return o}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)}}};F0e.exports=f8});var N0e=_(p8=>{"use strict";var T0e=No(),ps=(t,e)=>{T0e.defineExport(p8,t,e),T0e.defineExport(p8,t.toLowerCase(),e)};ps("AutoComplete",()=>Hhe());ps("BasicAuth",()=>Vhe());ps("Confirm",()=>Xhe());ps("Editable",()=>$he());ps("Form",()=>Jx());ps("Input",()=>Z_());ps("Invisible",()=>o0e());ps("List",()=>l0e());ps("MultiSelect",()=>u0e());ps("Numeral",()=>p0e());ps("Password",()=>g0e());ps("Scale",()=>y0e());ps("Select",()=>Ph());ps("Snippet",()=>B0e());ps("Sort",()=>D0e());ps("Survey",()=>b0e());ps("Text",()=>x0e());ps("Toggle",()=>Q0e());ps("Quiz",()=>R0e())});var M0e=_((_8t,L0e)=>{L0e.exports={ArrayPrompt:V1(),AuthPrompt:W_(),BooleanPrompt:Xx(),NumberPrompt:n8(),StringPrompt:_g()}});var J1=_((H8t,U0e)=>{"use strict";var O0e=ve("assert"),g8=ve("events"),bh=No(),Xc=class extends g8{constructor(e,r){super(),this.options=bh.merge({},e),this.answers={...r}}register(e,r){if(bh.isObject(e)){for(let a of Object.keys(e))this.register(a,e[a]);return this}O0e.equal(typeof r,"function","expected a function");let o=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[o]=r:this.prompts[o]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(bh.merge({},this.options,r))}catch(o){return Promise.reject(o)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=bh.merge({},this.options,e),{type:o,name:a}=e,{set:n,get:u}=bh;if(typeof o=="function"&&(o=await o.call(this,e,this.answers)),!o)return this.answers[a];O0e(this.prompts[o],`Prompt "${o}" is not registered`);let A=new this.prompts[o](r),p=u(this.answers,a);A.state.answers=this.answers,A.enquirer=this,a&&A.on("submit",E=>{this.emit("answer",a,E,A),n(this.answers,a,E)});let h=A.emit.bind(A);return A.emit=(...E)=>(this.emit.call(this,...E),h(...E)),this.emit("prompt",A,this),r.autofill&&p!=null?(A.value=A.input=p,r.autofill==="show"&&await A.submit()):p=A.value=await A.run(),p}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||jy()}static get prompts(){return N0e()}static get types(){return M0e()}static get prompt(){let e=(r,...o)=>{let a=new this(...o),n=a.emit.bind(a);return a.emit=(...u)=>(e.emit(...u),n(...u)),a.prompt(r)};return bh.mixinEmitter(e,new g8),e}};bh.mixinEmitter(Xc,new g8);var h8=Xc.prompts;for(let t of Object.keys(h8)){let e=t.toLowerCase(),r=o=>new h8[t](o).run();Xc.prompt[e]=r,Xc[e]=r,Xc[t]||Reflect.defineProperty(Xc,t,{get:()=>h8[t]})}var z1=t=>{bh.defineExport(Xc,t,()=>Xc.types[t])};z1("ArrayPrompt");z1("AuthPrompt");z1("BooleanPrompt");z1("NumberPrompt");z1("StringPrompt");U0e.exports=Xc});var e2=_((BHt,W0e)=>{var lpt=Ux();function cpt(t,e,r){var o=t==null?void 0:lpt(t,e);return o===void 0?r:o}W0e.exports=cpt});var z0e=_((xHt,V0e)=>{function upt(t,e){for(var r=-1,o=t==null?0:t.length;++r<o&&e(t[r],r,t)!==!1;);return t}V0e.exports=upt});var X0e=_((kHt,J0e)=>{var Apt=Ag(),fpt=LP();function ppt(t,e){return t&&Apt(e,fpt(e),t)}J0e.exports=ppt});var $0e=_((QHt,Z0e)=>{var hpt=Ag(),gpt=bm();function dpt(t,e){return t&&hpt(e,gpt(e),t)}Z0e.exports=dpt});var tge=_((FHt,ege)=>{var mpt=Ag(),ypt=kP();function Ept(t,e){return mpt(t,ypt(t),e)}ege.exports=Ept});var w8=_((RHt,rge)=>{var Cpt=xP(),wpt=HP(),Ipt=kP(),Bpt=MN(),vpt=Object.getOwnPropertySymbols,Dpt=vpt?function(t){for(var e=[];t;)Cpt(e,Ipt(t)),t=wpt(t);return e}:Bpt;rge.exports=Dpt});var ige=_((THt,nge)=>{var Ppt=Ag(),bpt=w8();function Spt(t,e){return Ppt(t,bpt(t),e)}nge.exports=Spt});var I8=_((NHt,sge)=>{var xpt=LN(),kpt=w8(),Qpt=bm();function Fpt(t){return xpt(t,Qpt,kpt)}sge.exports=Fpt});var age=_((LHt,oge)=>{var Rpt=Object.prototype,Tpt=Rpt.hasOwnProperty;function Npt(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&Tpt.call(t,"index")&&(r.index=t.index,r.input=t.input),r}oge.exports=Npt});var cge=_((MHt,lge)=>{var Lpt=UP();function Mpt(t,e){var r=e?Lpt(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}lge.exports=Mpt});var Age=_((OHt,uge)= Line truncated
${z} at ${te}`:`
${z}`}).join("");h.push({text:`Conflict detected in constraint targeting ${pe.pretty(t.configuration,x,pe.Type.CODE)}; conflicting values are:${R}`,fixable:!1})}else{let[[R]]=C,L=(0,qde.default)(v,x);if(JSON.stringify(L)===JSON.stringify(R))continue;if(!o){let U=typeof L>"u"?`Missing field ${pe.pretty(t.configuration,x,pe.Type.CODE)}; expected ${pe.pretty(t.configuration,R,pe.Type.INSPECT)}`:typeof R>"u"?`Extraneous field ${pe.pretty(t.configuration,x,pe.Type.CODE)} currently set to ${pe.pretty(t.configuration,L,pe.Type.INSPECT)}`:`Invalid field ${pe.pretty(t.configuration,x,pe.Type.CODE)}; expected ${pe.pretty(t.configuration,R,pe.Type.INSPECT)}, found ${pe.pretty(t.configuration,L,pe.Type.INSPECT)}`;h.push({text:U,fixable:!0});continue}typeof R>"u"?(0,Yde.default)(v,x):(0,jde.default)(v,x,R),E=!0}E&&a.set(I,v)}h.length>0&&n.set(I,h)}return{changedWorkspaces:a,remainingErrors:n}}function Wde(t,{configuration:e}){let r={children:[]};for(let[o,a]of t){let n=[];for(let A of a){let p=A.text.split(/\n/);A.fixable&&(p[0]=`${pe.pretty(e,"\u2699","gray")} ${p[0]}`),n.push({value:pe.tuple(pe.Type.NO_HINT,p[0]),children:p.slice(1).map(h=>({value:pe.tuple(pe.Type.NO_HINT,h)}))})}let u={value:pe.tuple(pe.Type.LOCATOR,o.anchoredLocator),children:He.sortMap(n,A=>A.value[1])};r.children.push(u)}return r.children=He.sortMap(r.children,o=>o.value[1]),r}var qde,jde,Gde,Yde,QE,Ggt,Ygt,Wgt,l2=Et(()=>{Ge();qde=Ze(e2()),jde=Ze(D8()),Gde=Ze(Hde()),Yde=Ze(S8()),QE=class{constructor(e){this.indexedFields=e;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let e of this.indexedFields)this.indexes[e]=new Map}insert(e){this.items.push(e);for(let r of this.indexedFields){let o=Object.hasOwn(e,r)?e[r]:void 0;if(typeof o>"u")continue;He.getArrayWithDefault(this.indexes[r],o).push(e)}return e}find(e){if(typeof e>"u")return this.items;let r=Object.entries(e);if(r.length===0)return this.items;let o=[],a;for(let[u,A]of r){let p=u,h=Object.hasOwn(this.indexes,p)?this.indexes[p]:void 0;if(typeof h>"u"){o.push([p,A]);continue}let E=new Set(h.get(A)??[]);if(E.size===0)return[];if(typeof a>"u")a=E;else for(let I of a)E.has(I)||a.delete(I);if(a.size===0)break}let n=[...a??[]];return o.length>0&&(n=n.filter(u=>{for(let[A,p]of o)if(!(typeof p<"u"?Object.hasOwn(u,A)&&u[A]===p:Object.hasOwn(u,A)===!1))return!1;return!0})),n}},Ggt=/^[0-9]+$/,Ygt=/^[a-zA-Z0-9_]+$/,Wgt=new Set(["scripts",...Ut.allDependencies])});var Kde=_((o7t,$8)=>{var zgt;(function(t){var e=function(){return{"append/2":[new t.type.Rule(new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("L")]),new t.type.Term("foldl",[new t.type.Term("append",[]),new t.type.Var("X"),new t.type.Term("[]",[]),new t.type.Var("L")]))],"append/3":[new t.type.Rule(new t.type.Term("append",[new t.type.Term("[]",[]),new t.type.Var("X"),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("append",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("append",[new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("S")]))],"member/2":[new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("_")])]),null),new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")])]),new t.type.Term("member",[new t.type.Var("X"),new t.type.Var("Xs")]))],"permutation/2":[new t.type.Rule(new t.type.Term("permutation",[new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("permutation",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("permutation",[new t.type.Var("T"),new t.type.Var("P")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("P")]),new t.type.Term("append",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("Y")]),new t.type.Var("S")])])]))],"maplist/2":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("X")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("Xs")])]))],"maplist/3":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs")])]))],"maplist/4": Line truncated
`+p:"")),u.error.method="_execFileSync",u.error.program=a,u.error.args=n,u.error.extMessage=p,u.error.exitCode=+A),Yn.unlinkSync(h),Yn.unlinkSync(E),Yn.unlinkSync(I),Yn.unlinkSync(v),u}function $gt(t){var e,r={},o,a={env:process.env,encoding:t.encoding};if(xh||(jg?process.env.PSModulePath?(xh="powershell.exe",ok=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(xh="cscript.exe",ok=["//nologo",__dirname+"\\read.cs.js"]):(xh="/bin/sh",ok=[__dirname+"/read.sh"])),jg&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),rH.execFileSync){e=Zde(t),c2&&c2("execFileSync",e);try{r.input=rH.execFileSync(xh,e,a)}catch(n){o=n.stderr?(n.stderr+"").trim():"",r.error=new Error(Jde+(o?`
`+o:"")),r.error.method="execFileSync",r.error.program=xh,r.error.args=e,r.error.extMessage=o,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=Zgt(t,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),t.display=""),r}function sH(t){var e="",r=t.display,o=!t.display&&t.keyIn&&t.hideEchoBack&&!t.mask;function a(){var n=$gt(t);if(n.error)throw n.error;return n.input}return iH&&iH(t),function(){var n,u,A;function p(){return n||(n=process.binding("fs"),u=process.binding("constants")),n}if(typeof Kf=="string")if(Kf=null,jg){if(A=function(h){var E=h.replace(/^\D+/,"").split("."),I=0;return(E[0]=+E[0])&&(I+=E[0]*1e4),(E[1]=+E[1])&&(I+=E[1]*100),(E[2]=+E[2])&&(I+=E[2]),I}(process.version),!(A>=20302&&A<40204||A>=5e4&&A<50100||A>=50600&&A<60200)&&process.stdin.isTTY)process.stdin.pause(),Kf=process.stdin.fd,RE=process.stdin._handle;else try{Kf=p().open("CONIN$",u.O_RDWR,parseInt("0666",8)),RE=new Vde(Kf,!0)}catch{}if(process.stdout.isTTY)$c=process.stdout.fd;else{try{$c=Yn.openSync("\\\\.\\CON","w")}catch{}if(typeof $c!="number")try{$c=p().open("CONOUT$",u.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{Kf=Yn.openSync("/dev/tty","r"),RE=process.stdin._handle}catch{}}else try{Kf=Yn.openSync("/dev/tty","r"),RE=new Vde(Kf,!1)}catch{}if(process.stdout.isTTY)$c=process.stdout.fd;else try{$c=Yn.openSync("/dev/tty","w")}catch{}}}(),function(){var n,u,A=!t.hideEchoBack&&!t.keyIn,p,h,E,I,v;ak="";function x(C){return C===zde?!0:RE.setRawMode(C)!==0?!1:(zde=C,!0)}if(Xde||!RE||typeof $c!="number"&&(t.display||!A)){e=a();return}if(t.display&&(Yn.writeSync($c,t.display),t.display=""),!t.displayOnly){if(!x(!A)){e=a();return}for(h=t.keyIn?1:t.bufferSize,p=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(h):new Buffer(h),t.keyIn&&t.limit&&(u=new RegExp("[^"+t.limit+"]","g"+(t.caseSensitive?"":"i")));;){E=0;try{E=Yn.readSync(Kf,p,0,h)}catch(C){if(C.code!=="EOF"){x(!1),e+=a();return}}if(E>0?(I=p.toString(t.encoding,0,E),ak+=I):(I=`
`,ak+="\0"),I&&typeof(v=(I.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(I=v,n=!0),I&&(I=I.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),I&&u&&(I=I.replace(u,"")),I&&(A||(t.hideEchoBack?t.mask&&Yn.writeSync($c,new Array(I.length+1).join(t.mask)):Yn.writeSync($c,I)),e+=I),!t.keyIn&&n||t.keyIn&&e.length>=h)break}!A&&!o&&Yn.writeSync($c,`
`),x(!1)}}(),t.print&&!o&&t.print(r+(t.displayOnly?"":(t.hideEchoBack?new Array(e.length+1).join(t.mask):e)+`
`),t.encoding),t.displayOnly?"":lH=t.keepWhitespace||t.keyIn?e:e.trim()}function edt(t,e){var r=[];function o(a){a!=null&&(Array.isArray(a)?a.forEach(o):(!e||e(a))&&r.push(a))}return o(t),r}function cH(t){return t.replace(/[\x00-\x7f]/g,function(e){return"\\x"+("00"+e.charCodeAt().toString(16)).substr(-2)})}function Ns(){var t=Array.prototype.slice.call(arguments),e,r;return t.length&&typeof t[0]=="boolean"&&(r=t.shift(),r&&(e=Object.keys(nH),t.unshift(nH))),t.reduce(function(o,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(e=Object.keys(a)),e.forEach(function(n){var u;if(a.hasOwnProperty(n))switch(u=a[n],n){case"mask":case"limitMessage":case"defaultInput":case"encoding":u=u!=null?u+"":"",u&&n!=="limitMessage"&&(u=u.replace(/[\r\n]/g,"")),o[n]=u;break;case"bufferSize":!isNaN(u=parseInt(u,10))&&typeof u=="number"&&(o[n]=u);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":o[n]=!!u;break;case"limit":case"trueValue":case"falseValue":o[n]=edt(u,function(A){var p=typeof A;return p==="string"||p==="number"||p==="function"||A instanceof RegExp}).map(function(A){return typeof A=="string"?A.replace(/[\r\n]/g,""):A});break;case"print":case"phContent":case"preCheck":o[n]=typeof u=="function"?u:void 0;break;case"prompt":case"display":o[n]=u??"";break}})),o},{})}function oH(t,e,r){return e.some(function(o){var a=typeof o;return a==="string"?r?t===o:t.toLowerCase()===o.toLowerCase():a==="number"?parseFloat(t)===o:a==="function"?o(t):o instanceof RegExp?o.test(t):!1})}function uH(t,e){var r=kh.normalize(jg?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return t=kh.normalize(t),e?t.replace(/^~(?=\/|\\|$)/,r):t.replace(new RegExp("^"+cH(r)+"(?=\\/|\\\\|$)",jg?"i":""),"~")}function TE(t,e){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",o=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function n(u,A,p,h,E,I){var v;return A||typeof(v=e(E))!="string"?p:v?(h||"")+v+(I||""):""}return t.replace(o,n).replace(a,n)}function $de(t,e,r){var o,a=[],n=-1,u=0,A="",p;function h(E,I){return I.length>3?(E.push(I[0]+"..."+I[I.length-1]),p=!0):I.length&&(E=E.concat(I)),E}return o=t.reduce(function(E,I){return E.concat((I+"").split(""))},[]).reduce(function(E,I){var v,x;return e||(I=I.toLowerCase()),v=/^\d$/.test(I)?1:/^[A-Z]$/.test(I)?2:/^[a-z]$/.test(I)?3:0,r&&v===0?A+=I:(x=I.charCodeAt(0),v&&v===n&&x===u+1?a.push(I):(E=h(E,a),a=[I],n=v),u=x),E},[]),o=h(o,a),A&&(o.push(A),p=!0),{values:o,suppressed:p}}function eme(t,e){return t.join(t.length>2?", ":e?" / ":"/")}function tme(t,e){var r,o,a={},n;if(e.phContent&&(r=e.phContent(t,e)),typeof r!="string")switch(t){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=e.hasOwnProperty(t)?typeof e[t]=="boolean"?e[t]?"on":"off":e[t]+"":"";break;case"limit":case"trueValue":case"falseValue":o=e[e.hasOwnProperty(t+"Src")?t+"Src":t],e.keyIn?(a=$de(o,e.caseSensitive),o=a.values):o=o.filter(function(u){var A=typeof u;return A==="string"||A==="number"}),r=eme(o,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=e[e.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||t!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=lH;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),t==="CWD"?r=kh.basename(r):t==="cwdHome"&&(r=uH(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+t.replace(/^./,function(u){return u.toUpperCase()})+"String"]();break;default:typeof(n=(t.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=qg[qg.length-n]||"")}return r}function rme(t){var e=/^(.)-(.)$/.exec(t),r="",o,a,n,u;if(!e)return null;for(o=e[1].charCodeAt(0),a=e[2].charCodeAt(0),u=o<a?1:-1,n=o;n!==a+u;n+=u)r+=String.fromCharCode(n);return r}function aH(t){var e=new RegExp(/(\s*)(?:("|')(.*?)(?:\2|$)|(\S+))/g),r,o="",a=[],n;for(t=t.trim();r=e.exec(t);)n=r[3]||r[4]||"",r[1]&&(a.push(o),o=""),o+=n;return o&&a.push(o),a}function nme(t,e){return e.trueValue.length&&oH(t,e.trueValue,e.caseSensitive)?!0:e.falseValue.length&&oH(t,e.falseValue,e.caseSensitive)?!1:t}function ime(t){var e,r,o,a,n,u,A;function p(E){return tme(E,t)}function h(E){t.display+=(/[^\r\n]$/.test(t.display)?`
`:"")+E}for(t.limitSrc=t.limit,t.displaySrc=t.display,t.limit="",t.display=TE(t.display+"",p);;){if(e=sH(t),r=!1,o="",t.defaultInput&&!e&&(e=t.defaultInput),t.history&&((a=/^\s*\!(?:\!|-1)(:p)?\s*$/.exec(e))?(n=qg[0]||"",a[1]?r=!0:e=n,h(n+`
`),r||(t.displayOnly=!0,sH(t),t.displayOnly=!1)):e&&e!==qg[qg.length-1]&&(qg=[e])),!r&&t.cd&&e)switch(u=aH(e),u[0].toLowerCase()){case"cd":if(u[1])try{process.chdir(uH(u[1],!0))}catch(E){h(E+"")}r=!0;break;case"pwd":h(process.cwd()),r=!0;break}if(!r&&t.preCheck&&(A=t.preCheck(e,t),e=A.res,A.forceNext&&(r=!0)),!r){if(!t.limitSrc.length||oH(e,t.limitSrc,t.caseSensitive))break;t.limitMessage&&(o=TE(t.limitMessage,p))}h((o?o+`
`:"")+TE(t.displaySrc+"",p))}return nme(e,t)}Wr._DBG_set_useExt=function(t){Xde=t};Wr._DBG_set_checkOptions=function(t){iH=t};Wr._DBG_set_checkMethod=function(t){c2=t};Wr._DBG_clearHistory=function(){lH="",qg=[]};Wr.setDefaultOptions=function(t){return nH=Ns(!0,t),Ns(!0)};Wr.question=function(t,e){return ime(Ns(Ns(!0,e),{display:t}))};Wr.prompt=function(t){var e=Ns(!0,t);return e.display=e.prompt,ime(e)};Wr.keyIn=function(t,e){var r=Ns(Ns(!0,e),{display:t,keyIn:!0,keepWhitespace:!0});return r.limitSrc=r.limit.filter(function(o){var a=typeof o;return a==="string"||a==="number"}).map(function(o){return TE(o+"",rme)}),r.limit=cH(r.limitSrc.join("")),["trueValue","falseValue"].forEach(function(o){r[o]=r[o].reduce(function(a,n){var u=typeof n;return u==="string"||u==="number"?a=a.concat((n+"").split("")):a.push(n),a},[])}),r.display=TE(r.display+"",function(o){return tme(o,r)}),nme(sH(r),r)};Wr.questionEMail=function(t,e){return t==null&&(t="Input e-mail address: "),Wr.question(t,Ns({hideEchoBack:!1,limit:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,limitMessage:"Input valid e-mail address, please.",trueValue:null,falseValue:null},e,{keepWhitespace:!1,cd:!1}))};Wr.questionNewPassword=function(t,e){var r,o,a,n=Ns({hideEchoBack:!0,mask:"*",limitMessage:`It can include: $<charlist>
And the length must be: $<length>`,trueValue:null,falseValue:null,caseSensitive:!0},e,{history:!1,cd:!1,phContent:function(x){return x==="charlist"?r.text:x==="length"?o+"..."+a:null}}),u,A,p,h,E,I,v;for(e=e||{},u=TE(e.charlist?e.charlist+"":"$<!-~>",rme),(isNaN(o=parseInt(e.min,10))||typeof o!="number")&&(o=12),(isNaN(a=parseInt(e.max,10))||typeof a!="number")&&(a=24),h=new RegExp("^["+cH(u)+"]{"+o+","+a+"}$"),r=$de([u],n.caseSensitive,!0),r.text=eme(r.values,r.suppressed),A=e.confirmMessage!=null?e.confirmMessage:"Reinput a same one to confirm it: ",p=e.unmatchMessage!=null?e.unmatchMessage:"It differs from first one. Hit only the Enter key if you want to retry from first one.",t==null&&(t="Input new password: "),E=n.limitMessage;!v;)n.limit=h,n.limitMessage=E,I=Wr.question(t,n),n.limit=[I,""],n.limitMessage=p,v=Wr.question(A,n);return I};function sme(t,e,r){var o;function a(n){return o=r(n),!isNaN(o)&&typeof o=="number"}return Wr.question(t,Ns({limitMessage:"Input valid number, please."},e,{limit:a,cd:!1})),o}Wr.questionInt=function(t,e){return sme(t,e,function(r){return parseInt(r,10)})};Wr.questionFloat=function(t,e){return sme(t,e,parseFloat)};Wr.questionPath=function(t,e){var r,o="",a=Ns({hideEchoBack:!1,limitMessage:`$<error(
)>Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},e,{keepWhitespace:!1,limit:function(n){var u,A,p;n=uH(n,!0),o="";function h(E){E.split(/\/|\\/).reduce(function(I,v){var x=kh.resolve(I+=v+kh.sep);if(!Yn.existsSync(x))Yn.mkdirSync(x);else if(!Yn.statSync(x).isDirectory())throw new Error("Non directory already exists: "+x);return I},"")}try{if(u=Yn.existsSync(n),r=u?Yn.realpathSync(n):kh.resolve(n),!e.hasOwnProperty("exists")&&!u||typeof e.exists=="boolean"&&e.exists!==u)return o=(u?"Already exists":"No such file or directory")+": "+r,!1;if(!u&&e.create&&(e.isDirectory?h(r):(h(kh.dirname(r)),Yn.closeSync(Yn.openSync(r,"w"))),r=Yn.realpathSync(r)),u&&(e.min||e.max||e.isFile||e.isDirectory)){if(A=Yn.statSync(r),e.isFile&&!A.isFile())return o="Not file: "+r,!1;if(e.isDirectory&&!A.isDirectory())return o="Not directory: "+r,!1;if(e.min&&A.size<+e.min||e.max&&A.size>+e.max)return o="Size "+A.size+" is out of range: "+r,!1}if(typeof e.validate=="function"&&(p=e.validate(r))!==!0)return typeof p=="string"&&(o=p),!1}catch(E){return o=E+"",!1}return!0},phContent:function(n){return n==="error"?o:n!=="min"&&n!=="max"?null:e.hasOwnProperty(n)?e[n]+"":""}});return e=e||{},t==null&&(t='Input path (you can "cd" and "pwd"): '),Wr.question(t,a),r};function ome(t,e){var r={},o={};return typeof t=="object"?(Object.keys(t).forEach(function(a){typeof t[a]=="function"&&(o[e.caseSensitive?a:a.toLowerCase()]=t[a])}),r.preCheck=function(a){var n;return r.args=aH(a),n=r.args[0]||"",e.caseSensitive||(n=n.toLowerCase()),r.hRes=n!=="_"&&o.hasOwnProperty(n)?o[n].apply(a,r.args.slice(1)):o.hasOwnProperty("_")?o._.apply(a,r.args):null,{res:a,forceNext:!1}},o.hasOwnProperty("_")||(r.limit=function(){var a=r.args[0]||"";return e.caseSensitive||(a=a.toLowerCase()),o.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=aH(a),r.hRes=typeof t=="function"?t.apply(a,r.args):!0,{res:a,forceNext:!1}},r}Wr.promptCL=function(t,e){var r=Ns({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=ome(t,r);return r.limit=o.limit,r.preCheck=o.preCheck,Wr.prompt(r),o.args};Wr.promptLoop=function(t,e){for(var r=Ns({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},e);!t(Wr.prompt(r)););};Wr.promptCLLoop=function(t,e){var r=Ns({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=ome(t,r);for(r.limit=o.limit,r.preCheck=o.preCheck;Wr.prompt(r),!o.hRes;);};Wr.promptSimShell=function(t){return Wr.prompt(Ns({hideEchoBack:!1,history:!0},t,{prompt:function(){return jg?"$<cwd>>":(process.env.USER||"")+(process.env.HOSTNAME?"@"+process.env.HOSTNAME.replace(/\..*$/,""):"")+":$<cwdHome>$ "}()}))};function ame(t,e,r){var o;return t==null&&(t="Are you sure? "),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s*:?\s*$/,"")+" [y/n]: "),o=Wr.keyIn(t,Ns(e,{hideEchoBack:!1,limit:r,trueValue:"y",falseValue:"n",caseSensitive:!1})),typeof o=="boolean"?o:""}Wr.keyInYN=function(t,e){return ame(t,e)};Wr.keyInYNStrict=function(t,e){return ame(t,e,"yn")};Wr.keyInPause=function(t,e){t==null&&(t="Continue..."),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s+$/,"")+" (Hit any key)"),Wr.keyIn(t,Ns({limit:null},e,{hideEchoBack:!0,mask:""}))};Wr.keyInSelect=function(t,e,r){var o=Ns({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(p){return p==="itemsCount"?t.length+"":p==="firstItem"?(t[0]+"").trim():p==="lastItem"?(t[t.length-1]+"").trim():null}}),a="",n={},u=49,A=`
`;if(!Array.isArray(t)||!t.length||t.length>35)throw"`items` must be Array (max length: 35).";return t.forEach(function(p,h){var E=String.fromCharCode(u);a+=E,n[E]=h,A+="["+E+"] "+(p+"").trim()+`
`,u=u===57?97:u+1}),(!r||r.cancel!==!1)&&(a+="0",n[0]=-1,A+="[0] "+(r&&r.cancel!=null&&typeof r.cancel!="boolean"?(r.cancel+"").trim():"CANCEL")+`
`),o.limit=a,A+=`
`,e==null&&(e="Choose one from list: "),(e+="")&&((!r||r.guide!==!1)&&(e=e.replace(/\s*:?\s*$/,"")+" [$<limit>]: "),A+=e),n[Wr.keyIn(A,o).toLowerCase()]};Wr.getRawInput=function(){return ak};function u2(t,e){var r;return e.length&&(r={},r[t]=e[0]),Wr.setDefaultOptions(r)[t]}Wr.setPrint=function(){return u2("print",arguments)};Wr.setPrompt=function(){return u2("prompt",arguments)};Wr.setEncoding=function(){return u2("encoding",arguments)};Wr.setMask=function(){return u2("mask",arguments)};Wr.setBufferSize=function(){return u2("bufferSize",arguments)}});var AH=_((l7t,gl)=>{(function(){var t={major:0,minor:2,patch:66,status:"beta"};tau_file_system={files:{},open:function(w,b,y){var F=tau_file_system.files[w];if(!F){if(y==="read")return null;F={path:w,text:"",type:b,get:function(J,X){return X===this.text.length||X>this.text.length?"end_of_file":this.text.substring(X,X+J)},put:function(J,X){return X==="end_of_file"?(this.text+=J,!0):X==="past_end_of_file"?null:(this.text=this.text.substring(0,X)+J+this.text.substring(X+J.length),!0)},get_byte:function(J){if(J==="end_of_stream")return-1;var X=Math.floor(J/2);if(this.text.length<=X)return-1;var $=n(this.text[Math.floor(J/2)],0);return J%2===0?$&255:$/256>>>0},put_byte:function(J,X){var $=X==="end_of_stream"?this.text.length:Math.floor(X/2);if(this.text.length<$)return null;var ie=this.text.length===$?-1:n(this.text[Math.floor(X/2)],0);return X%2===0?(ie=ie/256>>>0,ie=(ie&255)<<8|J&255):(ie=ie&255,ie=(J&255)<<8|ie&255),this.text.length===$?this.text+=u(ie):this.text=this.text.substring(0,$)+u(ie)+this.text.substring($+1),!0},flush:function(){return!0},close:function(){var J=tau_file_system.files[this.path];return J?!0:null}},tau_file_system.files[w]=F}return y==="write"&&(F.text=""),F}},tau_user_input={buffer:"",get:function(w,b){for(var y;tau_user_input.buffer.length<w;)y=window.prompt(),y&&(tau_user_input.buffer+=y);return y=tau_user_input.buffer.substr(0,w),tau_user_input.buffer=tau_user_input.buffer.substr(w),y}},tau_user_output={put:function(w,b){return console.log(w),!0},flush:function(){return!0}},nodejs_file_system={open:function(w,b,y){var F=ve("fs"),J=F.openSync(w,y[0]);return y==="read"&&!F.existsSync(w)?null:{get:function(X,$){var ie=new Buffer(X);return F.readSync(J,ie,0,X,$),ie.toString()},put:function(X,$){var ie=Buffer.from(X);if($==="end_of_file")F.writeSync(J,ie);else{if($==="past_end_of_file")return null;F.writeSync(J,ie,0,ie.length,$)}return!0},get_byte:function(X){return null},put_byte:function(X,$){return null},flush:function(){return!0},close:function(){return F.closeSync(J),!0}}}},nodejs_user_input={buffer:"",get:function(w,b){for(var y,F=lme();nodejs_user_input.buffer.length<w;)nodejs_user_input.buffer+=F.question();return y=nodejs_user_input.buffer.substr(0,w),nodejs_user_input.buffer=nodejs_user_input.buffer.substr(w),y}},nodejs_user_output={put:function(w,b){return process.stdout.write(w),!0},flush:function(){return!0}};var e;Array.prototype.indexOf?e=function(w,b){return w.indexOf(b)}:e=function(w,b){for(var y=w.length,F=0;F<y;F++)if(b===w[F])return F;return-1};var r=function(w,b){if(w.length!==0){for(var y=w[0],F=w.length,J=1;J<F;J++)y=b(y,w[J]);return y}},o;Array.prototype.map?o=function(w,b){return w.map(b)}:o=function(w,b){for(var y=[],F=w.length,J=0;J<F;J++)y.push(b(w[J]));return y};var a;Array.prototype.filter?a=function(w,b){return w.filter(b)}:a=function(w,b){for(var y=[],F=w.length,J=0;J<F;J++)b(w[J])&&y.push(w[J]);return y};var n;String.prototype.codePointAt?n=function(w,b){return w.codePointAt(b)}:n=function(w,b){return w.charCodeAt(b)};var u;String.fromCodePoint?u=function(){return String.fromCodePoint.apply(null,arguments)}:u=function(){return String.fromCharCode.apply(null,arguments)};var A=0,p=1,h=/(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)|\\x([0-9a-fA-F]+)\\|\\([0-7]+)\\|(\\\\)|(\\')|('')|(\\")|(\\`)|(\\.)|(.)/g,E={"\\a":7,"\\b":8,"\\f":12,"\\n":10,"\\r":13,"\\t":9,"\\v":11};function I(w){var b=[],y=!1;return w.replace(h,function(F,J,X,$,ie,Se,Re,at,dt,jt,tr,bt,ln,kr,mr,Sr,Kr){switch(!0){case dt!==void 0:return b.push(parseInt(dt,16)),"";case jt!==void 0:return b.push(parseInt(jt,8)),"";case tr!==void 0:case bt!==void 0:case ln!==void 0:case kr!==void 0:case mr!==void 0:return b.push(n(F.substr(1),0)),"";case Kr!==void 0:return b.push(n(Kr,0)),"";case Sr!==void 0:y=!0;default:return b.push(E[F]),""}}),y?null:b}function v(w,b){var y="";if(w.length<2)return w;try{w=w.replace(/\\([0-7]+)\\/g,function($,ie){return u(parseInt(ie,8))}),w=w.replace(/\\x([0-9a-fA-F]+)\\/g,function($,ie){return u(parseInt(ie,16))})}catch{return null}for(var F=0;F<w.length;F++){var J=w.charAt(F),X=w.charAt(F+1);if(J===b&&X===b)F++,y+=b;else if(J==="\\")if(["a","b","f","n","r","t","v","'",'"',"\\","a","\b","\f",`
`,"\r"," ","\v"].indexOf(X)!==-1)switch(F+=1,X){case"a":y+="a";break;case"b":y+="\b";break;case"f":y+="\f";break;case"n":y+=`
`;break;case"r":y+="\r";break;case"t":y+=" ";break;case"v":y+="\v";break;case"'":y+="'";break;case'"':y+='"';break;case"\\":y+="\\";break}else return null;else y+=J}return y}function x(w){for(var b="",y=0;y<w.length;y++)switch(w.charAt(y)){case"'":b+="\\'";break;case"\\":b+="\\\\";break;case"\b":b+="\\b";break;case"\f":b+="\\f";break;case`
`:b+="\\n";break;case"\r":b+="\\r";break;case" ":b+="\\t";break;case"\v":b+="\\v";break;default:b+=w.charAt(y);break}return b}function C(w){var b=w.substr(2);switch(w.substr(0,2).toLowerCase()){case"0x":return parseInt(b,16);case"0b":return parseInt(b,2);case"0o":return parseInt(b,8);case"0'":return I(b)[0];default:return parseFloat(w)}}var R={whitespace:/^\s*(?:(?:%.*)|(?:\/\*(?:\n|\r|.)*?\*\/)|(?:\s+))\s*/,variable:/^(?:[A-Z_][a-zA-Z0-9_]*)/,atom:/^(\!|,|;|[a-z][0-9a-zA-Z_]*|[#\$\&\*\+\-\.\/\:\<\=\>\?\@\^\~\\]+|'(?:[^']*?(?:\\(?:x?\d+)?\\)*(?:'')*(?:\\')*)*')/,number:/^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\[abfnrtv\\'"`]|\\x?\d+\\|[^\\])|\d+(?:\.\d+(?:[eE][+-]?\d+)?)?)/,string:/^(?:"([^"]|""|\\")*"|`([^`]|``|\\`)*`)/,l_brace:/^(?:\[)/,r_brace:/^(?:\])/,l_bracket:/^(?:\{)/,r_bracket:/^(?:\})/,bar:/^(?:\|)/,l_paren:/^(?:\()/,r_paren:/^(?:\))/};function L(w,b){return w.get_flag("char_conversion").id==="on"?b.replace(/./g,function(y){return w.get_char_conversion(y)}):b}function U(w){this.thread=w,this.text="",this.tokens=[]}U.prototype.set_last_tokens=function(w){return this.tokens=w},U.prototype.new_text=function(w){this.text=w,this.tokens=[]},U.prototype.get_tokens=function(w){var b,y=0,F=0,J=0,X=[],$=!1;if(w){var ie=this.tokens[w-1];y=ie.len,b=L(this.thread,this.text.substr(ie.len)),F=ie.line,J=ie.start}else b=this.text;if(/^\s*$/.test(b))return null;for(;b!=="";){var Se=[],Re=!1;if(/^\n/.exec(b)!==null){F++,J=0,y++,b=b.replace(/\n/,""),$=!0;continue}for(var at in R)if(R.hasOwnProperty(at)){var dt=R[at].exec(b);dt&&Se.push({value:dt[0],name:at,matches:dt})}if(!Se.length)return this.set_last_tokens([{value:b,matches:[],name:"lexical",line:F,start:J}]);var ie=r(Se,function(kr,mr){return kr.value.length>=mr.value.length?kr:mr});switch(ie.start=J,ie.line=F,b=b.replace(ie.value,""),J+=ie.value.length,y+=ie.value.length,ie.name){case"atom":ie.raw=ie.value,ie.value.charAt(0)==="'"&&(ie.value=v(ie.value.substr(1,ie.value.length-2),"'"),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence"));break;case"number":ie.float=ie.value.substring(0,2)!=="0x"&&ie.value.match(/[.eE]/)!==null&&ie.value!=="0'.",ie.value=C(ie.value),ie.blank=Re;break;case"string":var jt=ie.value.charAt(0);ie.value=v(ie.value.substr(1,ie.value.length-2),jt),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence");break;case"whitespace":var tr=X[X.length-1];tr&&(tr.space=!0),Re=!0;continue;case"r_bracket":X.length>0&&X[X.length-1].name==="l_bracket"&&(ie=X.pop(),ie.name="atom",ie.value="{}",ie.raw="{}",ie.space=!1);break;case"r_brace":X.length>0&&X[X.length-1].name==="l_brace"&&(ie=X.pop(),ie.name="atom",ie.value="[]",ie.raw="[]",ie.space=!1);break}ie.len=y,X.push(ie),Re=!1}var bt=this.set_last_tokens(X);return bt.length===0?null:bt};function z(w,b,y,F,J){if(!b[y])return{type:A,value:S.error.syntax(b[y-1],"expression expected",!0)};var X;if(F==="0"){var $=b[y];switch($.name){case"number":return{type:p,len:y+1,value:new S.type.Num($.value,$.float)};case"variable":return{type:p,len:y+1,value:new S.type.Var($.value)};case"string":var ie;switch(w.get_flag("double_quotes").id){case"atom":ie=new H($.value,[]);break;case"codes":ie=new H("[]",[]);for(var Se=$.value.length-1;Se>=0;Se--)ie=new H(".",[new S.type.Num(n($.value,Se),!1),ie]);break;case"chars":ie=new H("[]",[]);for(var Se=$.value.length-1;Se>=0;Se--)ie=new H(".",[new S.type.Term($.value.charAt(Se),[]),ie]);break}return{type:p,len:y+1,value:ie};case"l_paren":var bt=z(w,b,y+1,w.__get_max_priority(),!0);return bt.type!==p?bt:b[bt.len]&&b[bt.len].name==="r_paren"?(bt.len++,bt):{type:A,derived:!0,value:S.error.syntax(b[bt.len]?b[bt.len]:b[bt.len-1],") or operator expected",!b[bt.len])};case"l_bracket":var bt=z(w,b,y+1,w.__get_max_priority(),!0);return bt.type!==p?bt:b[bt.len]&&b[bt.len].name==="r_bracket"?(bt.len++,bt.value=new H("{}",[bt.value]),bt):{type:A,derived:!0,value:S.error.syntax(b[bt.len]?b[bt.len]:b[bt.len-1],"} or operator expected",!b[bt.len])}}var Re=te(w,b,y,J);return Re.type===p||Re.derived||(Re=ae(w,b,y),Re.type===p||Re.derived)?Re:{type:A,derived:!1,value:S.error.syntax(b[y],"unexpected token")}}var at=w.__get_max_priority(),dt=w.__get_next_priority(F),jt=y;if(b[y].name==="atom"&&b[y+1]&&(b[y].space||b[y+1].name!=="l_paren")){var $=b[y++],tr=w.__lookup_operator_classes(F,$.value);if(tr&&tr.indexOf("fy")>-1){var bt=z(w,b,y,F,J);if(bt.type!==A)return $.value==="-"&&!$.space&&S.type.is_number(bt.value)?{value:new S.type.Num(-bt.value.value,bt.value.is_float),len:bt.len,type:p}:{value:new S.type.Term($.value,[bt.value]),len:bt.len,type:p};X=bt}else if(tr&&tr.indexOf("fx")>-1){var bt=z(w,b,y,dt,J);if(bt.type!==A)return{value:new S.type.Term($.value,[bt.value]),len:bt.len,type:p};X=bt}}y=jt;var bt=z(w,b,y,dt,J);if(bt.type===p){y=bt.len;var $=b[y];if(b[y]&&(b[y].name==="atom"&&w.__lookup_operator_classes(F,$.value)||b[y].name==="bar"&&w.__lookup_operator_classes(F,"|"))){var ln=dt,kr=F,tr=w.__lookup_operator_classes(F,$.value);if(tr.indexOf("xf")>-1Line truncated
`;b+=`
`;for(key in this.rules)for(y=0;y<this.rules[key].length;y++)b+=this.rules[key][y].toString(w),b+=`
`;return b},xe.prototype.clone=function(){return new xe(this.id)},Ne.prototype.clone=function(){return new Ne(this.value,this.is_float)},H.prototype.clone=function(){return new H(this.id,o(this.args,function(w){return w.clone()}))},Te.prototype.clone=function(){return new Stram(this.stream,this.mode,this.alias,this.type,this.reposition,this.eof_action)},Fe.prototype.clone=function(){var w={};for(var b in this.links)this.links.hasOwnProperty(b)&&(w[b]=this.links[b].clone());return new Fe(w)},ke.prototype.clone=function(){return new ke(this.goal.clone(),this.substitution.clone(),this.parent)},Ye.prototype.clone=function(){return new Ye(this.head.clone(),this.body!==null?this.body.clone():null)},xe.prototype.equals=function(w){return S.type.is_variable(w)&&this.id===w.id},Ne.prototype.equals=function(w){return S.type.is_number(w)&&this.value===w.value&&this.is_float===w.is_float},H.prototype.equals=function(w){if(!S.type.is_term(w)||this.indicator!==w.indicator)return!1;for(var b=0;b<this.args.length;b++)if(!this.args[b].equals(w.args[b]))return!1;return!0},Te.prototype.equals=function(w){return S.type.is_stream(w)&&this.id===w.id},Fe.prototype.equals=function(w){var b;if(!S.type.is_substitution(w))return!1;for(b in this.links)if(this.links.hasOwnProperty(b)&&(!w.links[b]||!this.links[b].equals(w.links[b])))return!1;for(b in w.links)if(w.links.hasOwnProperty(b)&&!this.links[b])return!1;return!0},ke.prototype.equals=function(w){return S.type.is_state(w)&&this.goal.equals(w.goal)&&this.substitution.equals(w.substitution)&&this.parent===w.parent},Ye.prototype.equals=function(w){return S.type.is_rule(w)&&this.head.equals(w.head)&&(this.body===null&&w.body===null||this.body!==null&&this.body.equals(w.body))},xe.prototype.rename=function(w){return w.get_free_variable(this)},Ne.prototype.rename=function(w){return this},H.prototype.rename=function(w){return new H(this.id,o(this.args,function(b){return b.rename(w)}))},Te.prototype.rename=function(w){return this},Ye.prototype.rename=function(w){return new Ye(this.head.rename(w),this.body!==null?this.body.rename(w):null)},xe.prototype.variables=function(){return[this.id]},Ne.prototype.variables=function(){return[]},H.prototype.variables=function(){return[].concat.apply([],o(this.args,function(w){return w.variables()}))},Te.prototype.variables=function(){return[]},Ye.prototype.variables=function(){return this.body===null?this.head.variables():this.head.variables().concat(this.body.variables())},xe.prototype.apply=function(w){return w.lookup(this.id)?w.lookup(this.id):this},Ne.prototype.apply=function(w){return this},H.prototype.apply=function(w){if(this.indicator==="./2"){for(var b=[],y=this;y.indicator==="./2";)b.push(y.args[0].apply(w)),y=y.args[1];for(var F=y.apply(w),J=b.length-1;J>=0;J--)F=new H(".",[b[J],F]);return F}return new H(this.id,o(this.args,function(X){return X.apply(w)}),this.ref)},Te.prototype.apply=function(w){return this},Ye.prototype.apply=function(w){return new Ye(this.head.apply(w),this.body!==null?this.body.apply(w):null)},Fe.prototype.apply=function(w){var b,y={};for(b in this.links)this.links.hasOwnProperty(b)&&(y[b]=this.links[b].apply(w));return new Fe(y)},H.prototype.select=function(){for(var w=this;w.indicator===",/2";)w=w.args[0];return w},H.prototype.replace=function(w){return this.indicator===",/2"?this.args[0].indicator===",/2"?new H(",",[this.args[0].replace(w),this.args[1]]):w===null?this.args[1]:new H(",",[w,this.args[1]]):w},H.prototype.search=function(w){if(S.type.is_term(w)&&w.ref!==void 0&&this.ref===w.ref)return!0;for(var b=0;b<this.args.length;b++)if(S.type.is_term(this.args[b])&&this.args[b].search(w))return!0;return!1},be.prototype.get_current_input=function(){return this.current_input},et.prototype.get_current_input=function(){return this.session.get_current_input()},be.prototype.get_current_output=function(){return this.current_output},et.prototype.get_current_output=function(){return this.session.get_current_output()},be.prototype.set_current_input=function(w){this.current_input=w},et.prototype.set_current_input=function(w){return this.session.set_current_input(w)},be.prototype.set_current_output=function(w){this.current_input=w},et.prototype.set_current_output=function(w){return this.session.set_current_output(w)},be.prototype.get_stream_by_alias=function(w){return this.streams[w]},et.prototype.get_stream_by_alias=function(w){return this.session.get_stream_by_alias(w)},be.prototype.file_system_open=function(w,b,y){return this.file_system.open(w,b,y)},et.prototype.file_system_open=function(w,b,y){return this.session.file_system_open(w,b,y)},be.prototype.get_char_conversion=function(w){return this.__char_conversion[w]||w},et.prototype.get_char_conversion=function(w){return this.session.get_char_conversion(w)},be.prototype.parse=function(w){return this.thread.parse(w)},et.prototype.parse=function(w){var b=new U(this);b.new_text(w);var y=b.get_tokens();if(y===null)return!1;var F=z(this,y,0,this.__get_max_priority(),!1);return F Line truncated
`,[])])])),b.substitution,b)])},"nl/1":function(w,b,y){var F=y.args[0];w.prepend([new ke(b.goal.replace(new H("put_char",[F,new H(`
`,[])])),b.substitution,b)])},"get_byte/1":function(w,b,y){var F=y.args[0];w.prepend([new ke(b.goal.replace(new H(",",[new H("current_input",[new xe("S")]),new H("get_byte",[new xe("S"),F])])),b.substitution,b)])},"get_byte/2":function(w,b,y){var F=y.args[0],J=y.args[1],X=S.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(S.type.is_variable(F))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_variable(J)&&!S.type.is_byte(J))w.throw_error(S.error.type("in_byte",char,y.indicator));else if(!S.type.is_stream(F)&&!S.type.is_atom(F))w.throw_error(S.error.domain("stream_or_alias",F,y.indicator));else if(!S.type.is_stream(X)||X.stream===null)w.throw_error(S.error.existence("stream",F,y.indicator));else if(X.output)w.throw_error(S.error.permission("input","stream",F,y.indicator));else if(X.type==="text")w.throw_error(S.error.permission("input","text_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")w.throw_error(S.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else{if($=X.stream.get_byte(X.position),$===null){w.throw_error(S.error.representation("byte",y.indicator));return}X.position++}w.prepend([new ke(b.goal.replace(new H("=",[new Ne($,!1),J])),b.substitution,b)])}},"peek_byte/1":function(w,b,y){var F=y.args[0];w.prepend([new ke(b.goal.replace(new H(",",[new H("current_input",[new xe("S")]),new H("peek_byte",[new xe("S"),F])])),b.substitution,b)])},"peek_byte/2":function(w,b,y){var F=y.args[0],J=y.args[1],X=S.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(S.type.is_variable(F))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_variable(J)&&!S.type.is_byte(J))w.throw_error(S.error.type("in_byte",char,y.indicator));else if(!S.type.is_stream(F)&&!S.type.is_atom(F))w.throw_error(S.error.domain("stream_or_alias",F,y.indicator));else if(!S.type.is_stream(X)||X.stream===null)w.throw_error(S.error.existence("stream",F,y.indicator));else if(X.output)w.throw_error(S.error.permission("input","stream",F,y.indicator));else if(X.type==="text")w.throw_error(S.error.permission("input","text_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")w.throw_error(S.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else if($=X.stream.get_byte(X.position),$===null){w.throw_error(S.error.representation("byte",y.indicator));return}w.prepend([new ke(b.goal.replace(new H("=",[new Ne($,!1),J])),b.substitution,b)])}},"put_byte/1":function(w,b,y){var F=y.args[0];w.prepend([new ke(b.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("put_byte",[new xe("S"),F])])),b.substitution,b)])},"put_byte/2":function(w,b,y){var F=y.args[0],J=y.args[1],X=S.type.is_stream(F)?F:w.get_stream_by_alias(F.id);S.type.is_variable(F)||S.type.is_variable(J)?w.throw_error(S.error.instantiation(y.indicator)):S.type.is_byte(J)?!S.type.is_variable(F)&&!S.type.is_stream(F)&&!S.type.is_atom(F)?w.throw_error(S.error.domain("stream_or_alias",F,y.indicator)):!S.type.is_stream(X)||X.stream===null?w.throw_error(S.error.existence("stream",F,y.indicator)):X.input?w.throw_error(S.error.permission("output","stream",F,y.indicator)):X.type==="text"?w.throw_error(S.error.permission("output","text_stream",F,y.indicator)):X.stream.put_byte(J.value,X.position)&&(typeof X.position=="number"&&X.position++,w.success(b)):w.throw_error(S.error.type("byte",J,y.indicator))},"read/1":function(w,b,y){var F=y.args[0];w.prepend([new ke(b.goal.replace(new H(",",[new H("current_input",[new xe("S")]),new H("read_term",[new xe("S"),F,new H("[]",[])])])),b.substitution,b)])},"read/2":function(w,b,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(b.goal.replace(new H("read_term",[F,J,new H("[]",[])])),b.substitution,b)])},"read_term/2":function(w,b,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(b.goal.replace(new H(",",[new H("current_input",[new xe("S")]),new H("read_term",[new xe("S"),F,J])])),b.substitution,b)])},"read_term/3":function(w,b,y){var F=y.args[0],J=y.args[1],X=y.args[2],$=S.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(S.type.is_variable(F)||S.type.is_variable(X))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_list(X))w.throw_error(S.error.type("list",X,y.indicator));else if(!S.type.is_stream(F)&&!S.type.is_atom(F))w.throw_error(S.error.domain("stream_or_alias",F,y.indicator));else if(!S.type.is_stream($)||$.stream===null)w.throw_error(S.error.existence("stream",F,y.indicator));else if($.output)w.throw_error(S.error.permission("input","stream",F,y.indicator));else if($.type==="binary")w.throw_error(S.error.permission("input","binary_stream",F,y.indicator));else if($.position==="past_end_of_stream"&&$.eof_action==="error")w.throw_error(S.error.permission("input","past_end_of_stream",F,y.indicator));else{for(var ie={},Se=X,Re; Line truncated
`;for(let r of this.project.workspacesByCwd.values()){let o=r.relativeCwd;e+=`workspace(${Fh(o)}).
`,e+=`workspace_ident(${Fh(o)}, ${Fh(G.stringifyIdent(r.anchoredLocator))}).
`,e+=`workspace_version(${Fh(o)}, ${Fh(r.manifest.version)}).
`;for(let a of hme)for(let n of r.manifest[a].values())e+=`workspace_has_dependency(${Fh(o)}, ${Fh(G.stringifyIdent(n))}, ${Fh(n.range)}, ${a}).
`}return e+=`workspace(_) :- false.
`,e+=`workspace_ident(_, _) :- false.
`,e+=`workspace_version(_, _) :- false.
`,e+=`workspace_has_dependency(_, _, _, _) :- false.
`,e}getDeclarations(){let e="";return e+=`gen_enforced_dependency(_, _, _, _) :- false.
`,e+=`gen_enforced_field(_, _, _) :- false.
`,e}get fullSource(){return`${this.getProjectDatabase()}
${this.source}
${this.getDeclarations()}`}createSession(){return new hH(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),o=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:u,dependencyType:A}of e){let p=a2([A,G.stringifyIdent(n)]),h=He.getMapWithDefault(o,a.cwd);He.getMapWithDefault(h,p).set(u??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:u}of r){let A=a2(n),p=He.getMapWithDefault(o,a.cwd);He.getMapWithDefault(p,A).set(JSON.parse(u)??void 0,new Set)}return{manifestUpdates:o,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=V.resolve(this.project.cwd,Gg(o.links.WorkspaceCwd)),n=Gg(o.links.DependencyIdent),u=Gg(o.links.DependencyRange),A=Gg(o.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=G.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:u,dependencyType:A})}return He.sortMap(r,[({dependencyRange:o})=>o!==null?"0":"1",({workspace:o})=>G.stringifyIdent(o.anchoredLocator),({dependencyIdent:o})=>G.stringifyIdent(o)])}async genEnforcedFields(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=V.resolve(this.project.cwd,Gg(o.links.WorkspaceCwd)),n=Gg(o.links.FieldPath),u=idt(o.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:n,fieldValue:u})}return He.sortMap(r,[({workspace:o})=>G.stringifyIdent(o.anchoredLocator),({fieldPath:o})=>o])}async*query(e){let r=this.createSession();for await(let o of r.makeQuery(e)){let a={};for(let[n,u]of Object.entries(o.links))n!=="_"&&(a[n]=Gg(u));yield a}}}});var Pme=_(Ak=>{"use strict";Object.defineProperty(Ak,"__esModule",{value:!0});function b2(t){let e=[...t.caches],r=e.shift();return r===void 0?Dme():{get(o,a,n={miss:()=>Promise.resolve()}){return r.get(o,a,n).catch(()=>b2({caches:e}).get(o,a,n))},set(o,a){return r.set(o,a).catch(()=>b2({caches:e}).set(o,a))},delete(o){return r.delete(o).catch(()=>b2({caches:e}).delete(o))},clear(){return r.clear().catch(()=>b2({caches:e}).clear())}}}function Dme(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}Ak.createFallbackableCache=b2;Ak.createNullCache=Dme});var Sme=_((OWt,bme)=>{bme.exports=Pme()});var xme=_(xH=>{"use strict";Object.defineProperty(xH,"__esModule",{value:!0});function Bdt(t={serializable:!0}){let e={};return{get(r,o,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let u=o(),A=a&&a.miss||(()=>Promise.resolve());return u.then(p=>A(p)).then(()=>u)},set(r,o){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(o):o,Promise.resolve(o)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}xH.createInMemoryCache=Bdt});var Qme=_((_Wt,kme)=>{kme.exports=xme()});var Rme=_(eu=>{"use strict";Object.defineProperty(eu,"__esModule",{value:!0});function vdt(t,e,r){let o={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===kH.WithinHeaders?o:{}},queryParameters(){return t===kH.WithinQueryParameters?o:{}}}}function Ddt(t){let e=0,r=()=>(e++,new Promise(o=>{setTimeout(()=>{o(t(r))},Math.min(100*e,1e3))}));return t(r)}function Fme(t,e=(r,o)=>Promise.resolve()){return Object.assign(t,{wait(r){return Fme(t.then(o=>Promise.all([e(o,r),o])).then(o=>o[1]))}})}function Pdt(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),o=t[e];t[e]=t[r],t[r]=o}return t}function bdt(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function Sdt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var xdt="4.22.1",kdt=t=>()=>t.transporter.requester.destroy(),kH={WithinQueryParameters:0,WithinHeaders:1};eu.AuthMode=kH;eu.addMethods=bdt;eu.createAuth=vdt;eu.createRetryablePromise=Ddt;eu.createWaitablePromise=Fme;eu.destroy=kdt;eu.encode=Sdt;eu.shuffle=Pdt;eu.version=xdt});var S2=_((qWt,Tme)=>{Tme.exports=Rme()});var Nme=_(QH=>{"use strict";Object.defineProperty(QH,"__esModule",{value:!0});var Qdt={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};QH.MethodEnum=Qdt});var x2=_((GWt,Lme)=>{Lme.exports=Nme()});var Xme=_(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});var Ome=x2();function FH(t,e){let r=t||{},o=r.data||{};return Object.keys(r).forEach(a=>{["timeout","head Line truncated
`;A!==o&&(o=A,t.write(uEe.default.eraseLines(r)+A),r=A.split(`
`).length)};return n.clear=()=>{t.write(uEe.default.eraseLines(r)),o="",r=0},n.done=()=>{o="",r=0,e||(AEe.default.show(),a=!1)},n};_2.default={create:jyt}});var hEe=_((mKt,Gyt)=>{Gyt.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:"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:"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:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{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_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{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"}}]});var mEe=_(dl=>{"use strict";var dEe=hEe(),pA=process.env;Object.defineProperty(dl,"_vendors",{value:dEe.map(function(t){return t.constant})});dl.name=null;dl.isPR=null;dEe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(o){return gEe(o)});if(dl[t.constant]=r,r)switch(dl.name=t.name,typeof t.pr){case"string":dl.isPR=!!pA[t.pr];break;case"object":"env"in t.pr?dl.isPR=t.pr.env in pA&&pA[t.pr.env]!==t.pr.ne:"any"in t.pr?dl.isPR=t.pr.any.some(function(o){return!!pA[o]}):dl.isPR=gEe(t.pr);break;default:dl.isPR=null}});dl.isCI=!!(pA.CI||pA.CONTINUOUS_INTEGRATION||pA.BUILD_NUMBER||pA.RUN_ID||dl.name);function gEe(t){return typeof t=="string"?!!pA[t]:Object.keys(t).every(function(e){return pA[e]===t[e]})}});var EEe=_((EKt,yEe)=>{"use strict";yEe.exports=mEe().isCI});var wEe=_((CKt,CEe)=>{"use strict";var Yyt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};CEe.exports=(t,{include:e,exclude:r}={})=>{let o=a=>{let n=u=>typeof u=="string"?a===u:u.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of Yyt(t.constructor.prototype)){if(n==="constructor"||!o(n))continue;let u=Reflect.getOwnPropertyDescriptor(a,n);u&&typeof u.value=="function"&&(t[n]=t[n].bind(t))}return t}});var SEe=_(kn=>{"use strict";Object.defineProperty(kn,"__esModule",{value:!0});var rC,j2,kk,Qk,m6;typeof window>"u"||typeof MessageChannel!="function"?(tC=null,A6=null,f6=function(){if(tC!==null)try{var t=kn.unstable_now();tC(!0,t),tC=null}catch(e){throw setTimeout(f6,0),e}},IEe=Date.now(),kn.unstable_now=function(){return Date.now()-IEe},rC=function(t){tC!==null?setTimeout(rC,0,t):(tC=t,setTimeout(f6,0))},j2=function(t,e){A6=setTimeout(t,e)},kk=function(){clearTimeout(A6)},Qk=function(){return!1},m6=kn.unstable_forceFrameRate=function(){}):(Pk=window.performance,p6=window.Date,BEe=window.setTimeout,vEe=window.clearTimeout,typeof console<"u"&&(DEe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof DEe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof Pk=="object"&&typeof Pk.now=="function"?kn.unstable_now=function(){return Pk.now()}:(PEe=p6.now(),kn.unstable_now=function(){return p6.now()-PEe}),H2=!1,q2=null,bk=-1,h6=5,g6=0,Qk=function(){return kn.unstable_now()>=g6},m6=function(){},kn.unstable_forceFrameRate=function(t){0>t||125<t?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps Line truncated
in `+(q||"Unknown")+fe}D+=T,P=P.return}while(P);return D}var yl=[],ao=-1;function Vn(P){0>ao||(P.current=yl[ao],yl[ao]=null,ao--)}function Mn(P,D){ao++,yl[ao]=P.current,P.current=D}var Ti={},On={current:Ti},_i={current:!1},ir=Ti;function Me(P,D){var T=P.type.contextTypes;if(!T)return Ti;var q=P.stateNode;if(q&&q.__reactInternalMemoizedUnmaskedChildContext===D)return q.__reactInternalMemoizedMaskedChildContext;var W={},fe;for(fe in T)W[fe]=D[fe];return q&&(P=P.stateNode,P.__reactInternalMemoizedUnmaskedChildContext=D,P.__reactInternalMemoizedMaskedChildContext=W),W}function ii(P){return P=P.childContextTypes,P!=null}function Ha(P){Vn(_i,P),Vn(On,P)}function hr(P){Vn(_i,P),Vn(On,P)}function Ac(P,D,T){if(On.current!==Ti)throw Error(n(168));Mn(On,D,P),Mn(_i,T,P)}function fu(P,D,T){var q=P.stateNode;if(P=D.childContextTypes,typeof q.getChildContext!="function")return T;q=q.getChildContext();for(var W in q)if(!(W in P))throw Error(n(108,de(D)||"Unknown",W));return r({},T,{},q)}function fc(P){var D=P.stateNode;return D=D&&D.__reactInternalMemoizedMergedChildContext||Ti,ir=On.current,Mn(On,D,P),Mn(_i,_i.current,P),!0}function El(P,D,T){var q=P.stateNode;if(!q)throw Error(n(169));T?(D=fu(P,D,ir),q.__reactInternalMemoizedMergedChildContext=D,Vn(_i,P),Vn(On,P),Mn(On,D,P)):Vn(_i,P),Mn(_i,T,P)}var vA=a.unstable_runWithPriority,pu=a.unstable_scheduleCallback,Ie=a.unstable_cancelCallback,Tt=a.unstable_shouldYield,pc=a.unstable_requestPaint,Hi=a.unstable_now,hu=a.unstable_getCurrentPriorityLevel,Yt=a.unstable_ImmediatePriority,Cl=a.unstable_UserBlockingPriority,DA=a.unstable_NormalPriority,lp=a.unstable_LowPriority,hc=a.unstable_IdlePriority,PA={},Qn=pc!==void 0?pc:function(){},hi=null,gc=null,bA=!1,aa=Hi(),Ni=1e4>aa?Hi:function(){return Hi()-aa};function _o(){switch(hu()){case Yt:return 99;case Cl:return 98;case DA:return 97;case lp:return 96;case hc:return 95;default:throw Error(n(332))}}function Xe(P){switch(P){case 99:return Yt;case 98:return Cl;case 97:return DA;case 96:return lp;case 95:return hc;default:throw Error(n(332))}}function lo(P,D){return P=Xe(P),vA(P,D)}function dc(P,D,T){return P=Xe(P),pu(P,D,T)}function gu(P){return hi===null?(hi=[P],gc=pu(Yt,du)):hi.push(P),PA}function qi(){if(gc!==null){var P=gc;gc=null,Ie(P)}du()}function du(){if(!bA&&hi!==null){bA=!0;var P=0;try{var D=hi;lo(99,function(){for(;P<D.length;P++){var T=D[P];do T=T(!0);while(T!==null)}}),hi=null}catch(T){throw hi!==null&&(hi=hi.slice(P+1)),pu(Yt,qi),T}finally{bA=!1}}}var SA=3;function qa(P,D,T){return T/=10,1073741821-(((1073741821-P+D/10)/T|0)+1)*T}function mc(P,D){return P===D&&(P!==0||1/P===1/D)||P!==P&&D!==D}var ds=typeof Object.is=="function"?Object.is:mc,Ht=Object.prototype.hasOwnProperty;function Fn(P,D){if(ds(P,D))return!0;if(typeof P!="object"||P===null||typeof D!="object"||D===null)return!1;var T=Object.keys(P),q=Object.keys(D);if(T.length!==q.length)return!1;for(q=0;q<T.length;q++)if(!Ht.call(D,T[q])||!ds(P[T[q]],D[T[q]]))return!1;return!0}function Ei(P,D){if(P&&P.defaultProps){D=r({},D),P=P.defaultProps;for(var T in P)D[T]===void 0&&(D[T]=P[T])}return D}var la={current:null},co=null,Hs=null,ca=null;function ua(){ca=Hs=co=null}function Ho(P,D){var T=P.type._context;S?(Mn(la,T._currentValue,P),T._currentValue=D):(Mn(la,T._currentValue2,P),T._currentValue2=D)}function Ci(P){var D=la.current;Vn(la,P),P=P.type._context,S?P._currentValue=D:P._currentValue2=D}function ms(P,D){for(;P!==null;){var T=P.alternate;if(P.childExpirationTime<D)P.childExpirationTime=D,T!==null&&T.childExpirationTime<D&&(T.childExpirationTime=D);else if(T!==null&&T.childExpirationTime<D)T.childExpirationTime=D;else break;P=P.return}}function ys(P,D){co=P,ca=Hs=null,P=P.dependencies,P!==null&&P.firstContext!==null&&(P.expirationTime>=D&&(jo=!0),P.firstContext=null)}function Es(P,D){if(ca!==P&&D!==!1&&D!==0)if((typeof D!="number"||D===1073741823)&&(ca=P,D=1073741823),D={context:P,observedBits:D,next:null},Hs===null){if(co===null)throw Error(n(308));Hs=D,co.dependencies={expirationTime:0,firstContext:D,responders:null}}else Hs=Hs.next=D;return S?P._currentValue:P._currentValue2}var qs=!1;function Un(P){return{baseState:P,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Pn(P){return{baseState:P.baseState,firstUpdate:P.firstUpdate,lastUpdate:P.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Cs(P,D){return{expirationTime:P,suspenseConfig:D,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function We(P,D){P.lastUpdate===null?P.firstUpdate=P.lastUpdate=D:(P.lastUpdate.next=D,P.lastUpdate=D)}function tt(P,D){var T=P.alternate;if(T===null){var q=P.updateQueue,W=null;q===null&&(q=P.updateQueue=Un(P.memoizedState))}else q=P.updateQueue,W=T.updateQueue,q===null?W===null?(q=P.updateQueue=Un(P.memoizedState),W=T.updateQueue=Un(T.memoiz Line truncated
Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.`+ml(W))}Yi!==bc&&(Yi=Ii),fe=g0(fe,W),wt=q;do{switch(wt.tag){case 3:De=fe,wt.effectTag|=4096,wt.expirationTime=D;var Ve=bv(wt,De,D);Bt(wt,Ve);break e;case 1:De=fe;var At=wt.type,Wt=wt.stateNode;if(!(wt.effectTag&64)&&(typeof At.getDerivedStateFromError=="function"||Wt!==null&&typeof Wt.componentDidCatch=="function"&&(bu===null||!bu.has(Wt)))){wt.effectTag|=4096,wt.expirationTime=D;var vr=Sv(wt,De,D);Bt(wt,vr);break e}}wt=wt.return}while(wt!==null)}Mr=Rv(Mr)}catch(bn){D=bn;continue}break}while(!0)}function jA(){var P=yp.current;return yp.current=Bu,P===null?Bu:P}function uw(P,D){P<Ka&&2<P&&(Ka=P),D!==null&&P<MA&&2<P&&(MA=P,vd=D)}function Sd(P){P>Ep&&(Ep=P)}function tF(){for(;Mr!==null;)Mr=Fv(Mr)}function rF(){for(;Mr!==null&&!Tt();)Mr=Fv(Mr)}function Fv(P){var D=Nv(P.alternate,P,ss);return P.memoizedProps=P.pendingProps,D===null&&(D=Rv(P)),sw.current=null,D}function Rv(P){Mr=P;do{var D=Mr.alternate;if(P=Mr.return,Mr.effectTag&2048){if(D=nw(Mr,ss),D!==null)return D.effectTag&=2047,D;P!==null&&(P.firstEffect=P.lastEffect=null,P.effectTag|=2048)}else{e:{var T=D;D=Mr;var q=ss,W=D.pendingProps;switch(D.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:ii(D.type)&&Ha(D);break;case 3:Ec(D),hr(D),W=D.stateNode,W.pendingContext&&(W.context=W.pendingContext,W.pendingContext=null),(T===null||T.child===null)&&Ga(D)&&ga(D),Bl(D);break;case 5:n0(D);var fe=Aa(yc.current);if(q=D.type,T!==null&&D.stateNode!=null)ns(T,D,q,W,fe),T.ref!==D.ref&&(D.effectTag|=128);else if(W){if(T=Aa(uo.current),Ga(D)){if(W=D,!y)throw Error(n(175));T=op(W.stateNode,W.type,W.memoizedProps,fe,T,W),W.updateQueue=T,T=T!==null,T&&ga(D)}else{var De=ht(q,W,fe,T,D);Dc(De,D,!1,!1),D.stateNode=De,rt(De,q,W,fe,T)&&ga(D)}D.ref!==null&&(D.effectTag|=128)}else if(D.stateNode===null)throw Error(n(166));break;case 6:if(T&&D.stateNode!=null)Yr(T,D,T.memoizedProps,W);else{if(typeof W!="string"&&D.stateNode===null)throw Error(n(166));if(T=Aa(yc.current),fe=Aa(uo.current),Ga(D)){if(T=D,!y)throw Error(n(176));(T=ap(T.stateNode,T.memoizedProps,T))&&ga(D)}else D.stateNode=Ye(W,T,fe,D)}break;case 11:break;case 13:if(Vn($n,D),W=D.memoizedState,D.effectTag&64){D.expirationTime=q;break e}W=W!==null,fe=!1,T===null?D.memoizedProps.fallback!==void 0&&Ga(D):(q=T.memoizedState,fe=q!==null,W||q===null||(q=T.child.sibling,q!==null&&(De=D.firstEffect,De!==null?(D.firstEffect=q,q.nextEffect=De):(D.firstEffect=D.lastEffect=q,q.nextEffect=null),q.effectTag=8))),W&&!fe&&D.mode&2&&(T===null&&D.memoizedProps.unstable_avoidThisFallback!==!0||$n.current&1?Yi===Du&&(Yi=da):((Yi===Du||Yi===da)&&(Yi=vl),Ep!==0&&gi!==null&&(WA(gi,ss),Mv(gi,Ep)))),b&&W&&(D.effectTag|=4),w&&(W||fe)&&(D.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:Ec(D),Bl(D);break;case 10:Ci(D);break;case 9:break;case 14:break;case 17:ii(D.type)&&Ha(D);break;case 19:if(Vn($n,D),W=D.memoizedState,W===null)break;if(fe=(D.effectTag&64)!==0,De=W.rendering,De===null){if(fe)Pc(W,!1);else if(Yi!==Du||T!==null&&T.effectTag&64)for(T=D.child;T!==null;){if(De=up(T),De!==null){for(D.effectTag|=64,Pc(W,!1),T=De.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),W.lastEffect===null&&(D.firstEffect=null),D.lastEffect=W.lastEffect,T=q,W=D.child;W!==null;)fe=W,q=T,fe.effectTag&=2,fe.nextEffect=null,fe.firstEffect=null,fe.lastEffect=null,De=fe.alternate,De===null?(fe.childExpirationTime=0,fe.expirationTime=q,fe.child=null,fe.memoizedProps=null,fe.memoizedState=null,fe.updateQueue=null,fe.dependencies=null):(fe.childExpirationTime=De.childExpirationTime,fe.expirationTime=De.expirationTime,fe.child=De.child,fe.memoizedProps=De.memoizedProps,fe.memoizedState=De.memoizedState,fe.updateQueue=De.updateQueue,q=De.dependencies,fe.dependencies=q===null?null:{expirationTime:q.expirationTime,firstContext:q.firstContext,responders:q.responders}),W=W.sibling;Mn($n,$n.current&1|2,D),D=D.child;break e}T=T.sibling}}else{if(!fe)if(T=up(De),T!==null){if(D.effectTag|=64,fe=!0,T=T.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),Pc(W,!0),W.tail===null&&W.tailMode==="hidden"&&!De.alternate){D=D.lastEffect=W.lastEffect,D!==null&&(D.nextEffect=null);break}}else Ni()>W.tailExpiration&&1<q&&(D.effectTag|=64,fe=!0,Pc(W,!1),D.expirationTime=D.childExpirationTime=q-1);W.isBackwards?(De.sibling=D.child,D.child=De):(T=W.last,T!==null?T.sibling=De:D.child=De,W.last=De)}if(W.tail!==null){W.tailExpiration===0&&(W.tailExpiration=Ni()+500),T=W.tail,W.rendering=T,W.tail=T.sibling,W.lastEffect=D.lastEffect,T.sibling=null,W=$n.current,W=fe?W&1|2:W&1,Mn($n,W,D),D=T;break e}break;case 20:break;case 21:break;default:throw Error(n(156,D.tag))}D=null}if(T=Mr,ss===1||T.childExpirationTime!==1){for(W=0,fe=T.child;fe!==null;)q=fe.expirationTime,De=fe.childExpirationTime,q>W&&(W=q),De>W&&(W=De),fe=fe.sibling;T.childExpirationTime=W}if(D!==null)return D;P!==null&&!(P.effectTag&2048)&&(P.firstEffect===null&&(P.firstEffect=Mr.firstEffect) Line truncated
`+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),Module.buffer?buffer=Module.buffer:buffer=new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}if(HEAP32[0]=1668509029,HEAP16[1]=25459,HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;function callRuntimeCallbacks(t){for(;t.length>0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var o=r>0?r:lengthBytesUTF8(t)+1,a=new Array(o),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r<t.length;r++){var o=t[r];o>255&&(o&=255),e.push(String.fromCharCode(o))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var o,a;r&&(a=e+lengthBytesUTF8(t),o=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=o)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var o=0;o<t.length;++o)HEAP8[e++>>0]=t.charCodeAt(o);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var o=e>>>16,a=e&65535,n=r>>>16,u=r&65535;return a*u+(o*u+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.cei Line truncated
If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+t+") at "+stackTrace()+e;throw abortDecorators&&abortDecorators.forEach(function(o){r=o(r,t)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var Jg=_((SKt,_Ee)=>{"use strict";var Xyt=OEe(),Zyt=UEe(),v6=!1,D6=null;Zyt({},function(t,e){if(!v6){if(v6=!0,t)throw t;D6=e}});if(!v6)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");_Ee.exports=Xyt(D6.bind,D6.lib)});var b6=_((xKt,P6)=>{"use strict";var HEe=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);P6.exports=HEe;P6.exports.default=HEe});var jEe=_((kKt,qEe)=>{"use strict";qEe.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E Line truncated
`))e=Math.max(e,rEt(r));return e};x6.exports=YEe;x6.exports.default=YEe});var WEe=_(W2=>{"use strict";var nEt=W2&&W2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(W2,"__esModule",{value:!0});var iEt=nEt(k6()),Q6={};W2.default=t=>{if(t.length===0)return{width:0,height:0};if(Q6[t])return Q6[t];let e=iEt.default(t),r=t.split(`
`).length;return Q6[t]={width:e,height:r},{width:e,height:r}}});var KEe=_(K2=>{"use strict";var sEt=K2&&K2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(K2,"__esModule",{value:!0});var dn=sEt(Jg()),oEt=(t,e)=>{"position"in e&&t.setPositionType(e.position==="absolute"?dn.default.POSITION_TYPE_ABSOLUTE:dn.default.POSITION_TYPE_RELATIVE)},aEt=(t,e)=>{"marginLeft"in e&&t.setMargin(dn.default.EDGE_START,e.marginLeft||0),"marginRight"in e&&t.setMargin(dn.default.EDGE_END,e.marginRight||0),"marginTop"in e&&t.setMargin(dn.default.EDGE_TOP,e.marginTop||0),"marginBottom"in e&&t.setMargin(dn.default.EDGE_BOTTOM,e.marginBottom||0)},lEt=(t,e)=>{"paddingLeft"in e&&t.setPadding(dn.default.EDGE_LEFT,e.paddingLeft||0),"paddingRight"in e&&t.setPadding(dn.default.EDGE_RIGHT,e.paddingRight||0),"paddingTop"in e&&t.setPadding(dn.default.EDGE_TOP,e.paddingTop||0),"paddingBottom"in e&&t.setPadding(dn.default.EDGE_BOTTOM,e.paddingBottom||0)},cEt=(t,e)=>{var r;"flexGrow"in e&&t.setFlexGrow((r=e.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in e&&t.setFlexShrink(typeof e.flexShrink=="number"?e.flexShrink:1),"flexDirection"in e&&(e.flexDirection==="row"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_ROW),e.flexDirection==="row-reverse"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_ROW_REVERSE),e.flexDirection==="column"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_COLUMN),e.flexDirection==="column-reverse"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in e&&(typeof e.flexBasis=="number"?t.setFlexBasis(e.flexBasis):typeof e.flexBasis=="string"?t.setFlexBasisPercent(Number.parseInt(e.flexBasis,10)):t.setFlexBasis(NaN)),"alignItems"in e&&((e.alignItems==="stretch"||!e.alignItems)&&t.setAlignItems(dn.default.ALIGN_STRETCH),e.alignItems==="flex-start"&&t.setAlignItems(dn.default.ALIGN_FLEX_START),e.alignItems==="center"&&t.setAlignItems(dn.default.ALIGN_CENTER),e.alignItems==="flex-end"&&t.setAlignItems(dn.default.ALIGN_FLEX_END)),"alignSelf"in e&&((e.alignSelf==="auto"||!e.alignSelf)&&t.setAlignSelf(dn.default.ALIGN_AUTO),e.alignSelf==="flex-start"&&t.setAlignSelf(dn.default.ALIGN_FLEX_START),e.alignSelf==="center"&&t.setAlignSelf(dn.default.ALIGN_CENTER),e.alignSelf==="flex-end"&&t.setAlignSelf(dn.default.ALIGN_FLEX_END)),"justifyContent"in e&&((e.justifyContent==="flex-start"||!e.justifyContent)&&t.setJustifyContent(dn.default.JUSTIFY_FLEX_START),e.justifyContent==="center"&&t.setJustifyContent(dn.default.JUSTIFY_CENTER),e.justifyContent==="flex-end"&&t.setJustifyContent(dn.default.JUSTIFY_FLEX_END),e.justifyContent==="space-between"&&t.setJustifyContent(dn.default.JUSTIFY_SPACE_BETWEEN),e.justifyContent==="space-around"&&t.setJustifyContent(dn.default.JUSTIFY_SPACE_AROUND))},uEt=(t,e)=>{var r,o;"width"in e&&(typeof e.width=="number"?t.setWidth(e.width):typeof e.width=="string"?t.setWidthPercent(Number.parseInt(e.width,10)):t.setWidthAuto()),"height"in e&&(typeof e.height=="number"?t.setHeight(e.height):typeof e.height=="string"?t.setHeightPercent(Number.parseInt(e.height,10)):t.setHeightAuto()),"minWidth"in e&&(typeof e.minWidth=="string"?t.setMinWidthPercent(Number.parseInt(e.minWidth,10)):t.setMinWidth((r=e.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in e&&(typeof e.minHeight=="string"?t.setMinHeightPercent(Number.parseInt(e.minHeight,10)):t.setMinHeight((o=e.minHeight)!==null&&o!==void 0?o:0))},AEt=(t,e)=>{"display"in e&&t.setDisplay(e.display==="flex"?dn.default.DISPLAY_FLEX:dn.default.DISPLAY_NONE)},fEt=(t,e)=>{if("borderStyle"in e){let r=typeof e.borderStyle=="string"?1:0;t.setBorder(dn.default.EDGE_TOP,r),t.setBorder(dn.default.EDGE_BOTTOM,r),t.setBorder(dn.default.EDGE_LEFT,r),t.setBorder(dn.default.EDGE_RIGHT,r)}};K2.default=(t,e={})=>{oEt(t,e),aEt(t,e),lEt(t,e),cEt(t,e),uEt(t,e),AEt(t,e),fEt(t,e)}});var JEe=_((NKt,zEe)=>{"use strict";var V2=Lk(),pEt=BP(),hEt=aI(),R6=new Set(["\x1B","\x9B"]),gEt=39,VEe=t=>`${R6.values().next().value}[${t}m`,dEt=t=>t.split(" ").map(e=>V2(e)),F6=(t,e,r)=>{let o=[...e],a=!1,n=V2(pEt(t[t.length-1]));for(let[u,A]of o.entries()){let p=V2(A);if(n+p<=r?t[t.length-1]+=A:(t.push(A),n=0),R6.has(A))a=!0;else if(a&&A==="m"){a=!1;continue}a||(n+=p,n===r&&u<o.length-1&&(t.push(""),n=0))}!n&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop())},mEt=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(V2(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},yEt=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let o="",a="",n,u=dEt(t),A=[""];for(let[p,h]of t.split(" ").entries()){r.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let E=V2(A[A.length-1]);if(p!==0&&(E>=e&&(r.wordWrap===!1||r.trim===!1)&&(A.push(""),E=0),(E>0||r.trim===!1)&&(A[A.length-1]+=" ",E++)),r.hard&&u[p]>e){let I=e-E,v=1+Math.floor((u[p]-I-1)/e);Math.floor((u[p]-1)/e)<v&&A.push(""),F6(A,h,e);continue}if(E+u[p]>e&&E>0&&u[p]>0){if(r.wordWrap===!1&&E<e){F6(A,h,e);continue}A.push("")}if(E+u[p]>e&&r.wordWrap===!1){F6(A,h,e);continue}A[A. Line truncated
`);for(let[p,h]of[...o].entries()){if(a+=h,R6.has(h)){let I=parseFloat(/\d[^m]*/.exec(o.slice(p,p+4)));n=I===gEt?null:I}let E=hEt.codes.get(Number(n));n&&E&&(o[p+1]===`
`?a+=VEe(E):h===`
`&&(a+=VEe(n)))}return a};zEe.exports=(t,e,r)=>String(t).normalize().replace(/\r\n/g,`
`).split(`
`).map(o=>yEt(o,e,r)).join(`
`)});var $Ee=_((LKt,ZEe)=>{"use strict";var XEe="[\uD800-\uDBFF][\uDC00-\uDFFF]",EEt=t=>t&&t.exact?new RegExp(`^${XEe}$`):new RegExp(XEe,"g");ZEe.exports=EEt});var T6=_((MKt,nCe)=>{"use strict";var CEt=b6(),wEt=$Ee(),eCe=aI(),rCe=["\x1B","\x9B"],Mk=t=>`${rCe[0]}[${t}m`,tCe=(t,e,r)=>{let o=[];t=[...t];for(let a of t){let n=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let u=eCe.codes.get(parseInt(a,10));if(u){let A=t.indexOf(u.toString());A>=0?t.splice(A,1):o.push(Mk(e?u:n))}else if(e){o.push(Mk(0));break}else o.push(Mk(n))}if(e&&(o=o.filter((a,n)=>o.indexOf(a)===n),r!==void 0)){let a=Mk(eCe.codes.get(parseInt(r,10)));o=o.reduce((n,u)=>u===a?[u,...n]:[...n,u],[])}return o.join("")};nCe.exports=(t,e,r)=>{let o=[...t.normalize()],a=[];r=typeof r=="number"?r:o.length;let n=!1,u,A=0,p="";for(let[h,E]of o.entries()){let I=!1;if(rCe.includes(E)){let v=/\d[^m]*/.exec(t.slice(h,h+18));u=v&&v.length>0?v[0]:void 0,A<r&&(n=!0,u!==void 0&&a.push(u))}else n&&E==="m"&&(n=!1,I=!0);if(!n&&!I&&++A,!wEt({exact:!0}).test(E)&&CEt(E.codePointAt())&&++A,A>e&&A<=r)p+=E;else if(A===e&&!n&&u!==void 0)p=tCe(a);else if(A>=r){p+=tCe(a,!0,u);break}}return p}});var sCe=_((OKt,iCe)=>{"use strict";var Nh=T6(),IEt=Lk();function Ok(t,e,r){if(t.charAt(e)===" ")return e;for(let o=1;o<=3;o++)if(r){if(t.charAt(e+o)===" ")return e+o}else if(t.charAt(e-o)===" ")return e-o;return e}iCe.exports=(t,e,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:o,space:a,preferTruncationOnSpace:n}=r,u="\u2026",A=1;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof e!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof e}`);if(e<1)return"";if(e===1)return u;let p=IEt(t);if(p<=e)return t;if(o==="start"){if(n){let h=Ok(t,p-e+1,!0);return u+Nh(t,h,p).trim()}return a===!0&&(u+=" ",A=2),u+Nh(t,p-e+A,p)}if(o==="middle"){a===!0&&(u=" "+u+" ",A=3);let h=Math.floor(e/2);if(n){let E=Ok(t,h),I=Ok(t,p-(e-h)+1,!0);return Nh(t,0,E)+u+Nh(t,I,p).trim()}return Nh(t,0,h)+u+Nh(t,p-(e-h)+A,p)}if(o==="end"){if(n){let h=Ok(t,e-1);return Nh(t,0,h)+u}return a===!0&&(u=" "+u,A=2),Nh(t,0,e-A)+u}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${o}`)}});var L6=_(z2=>{"use strict";var oCe=z2&&z2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(z2,"__esModule",{value:!0});var BEt=oCe(JEe()),vEt=oCe(sCe()),N6={};z2.default=(t,e,r)=>{let o=t+String(e)+String(r);if(N6[o])return N6[o];let a=t;if(r==="wrap"&&(a=BEt.default(t,e,{trim:!1,hard:!0})),r.startsWith("truncate")){let n="end";r==="truncate-middle"&&(n="middle"),r==="truncate-start"&&(n="start"),a=vEt.default(t,e,{position:n})}return N6[o]=a,a}});var O6=_(M6=>{"use strict";Object.defineProperty(M6,"__esModule",{value:!0});var aCe=t=>{let e="";if(t.childNodes.length>0)for(let r of t.childNodes){let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=aCe(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o))),e+=o}return e};M6.default=aCe});var U6=_(pi=>{"use strict";var J2=pi&&pi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pi,"__esModule",{value:!0});pi.setTextNodeValue=pi.createTextNode=pi.setStyle=pi.setAttribute=pi.removeChildNode=pi.insertBeforeNode=pi.appendChildNode=pi.createNode=pi.TEXT_NAME=void 0;var DEt=J2(Jg()),lCe=J2(WEe()),PEt=J2(KEe()),bEt=J2(L6()),SEt=J2(O6());pi.TEXT_NAME="#text";pi.createNode=t=>{var e;let r={nodeName:t,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:t==="ink-virtual-text"?void 0:DEt.default.Node.create()};return t==="ink-text"&&((e=r.yogaNode)===null||e===void 0||e.setMeasureFunc(xEt.bind(null,r))),r};pi.appendChildNode=(t,e)=>{var r;e.parentNode&&pi.removeChildNode(e.parentNode,e),e.parentNode=t,t.childNodes.push(e),e.yogaNode&&((r=t.yogaNode)===null||r===void 0||r.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&Uk(t)};pi.insertBeforeNode=(t,e,r)=>{var o,a;e.parentNode&&pi.removeChildNode(e.parentNode,e),e.parentNode=t;let n=t.childNodes.indexOf(r);if(n>=0){t.childNodes.splice(n,0,e),e.yogaNode&&((o=t.yogaNode)===null||o===void 0||o.insertChild(e.yogaNode,n));return}t.childNodes.push(e),e.yogaNode&&((a=t.yogaNode)===null||a===void 0||a.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&Uk(t)};pi.removeChildNode=(t,e)=>{var r,o;e.yogaNode&&((o=(r=e.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||o===void 0||o.removeChild(e.yogaNode)),e.parentNode=null;let a=t.childNodes.indexOf(e);a>=0&&t.childNodes.splice(a,1),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&Uk(t)};pi.setAttribute=(t,e,r)=>{t.attributes[e]=r};pi.setStyle=(t,e)=>{t.style=e,t.yogaNode&&PEt.default(t.yogaNode,e)};pi.createTextNode=t=>{let e={nodeName:"#text",nodeValue:t,yogaLine truncated
`:`
`)+r,a=o+1,o=t.indexOf(`
`,a)}while(o!==-1);return n+=t.substr(a),n};wCe.exports={stringReplaceAll:REt,stringEncaseCRLFWithFirstIndex:TEt}});var bCe=_((VKt,PCe)=>{"use strict";var NEt=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,BCe=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,LEt=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,MEt=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,OEt=new Map([["n",`
`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function DCe(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):OEt.get(t)||t}function UEt(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(LEt))r.push(a[2].replace(MEt,(A,p,h)=>p?DCe(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function _Et(t){BCe.lastIndex=0;let e=[],r;for(;(r=BCe.exec(t))!==null;){let o=r[1];if(r[2]){let a=UEt(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function vCe(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}PCe.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(NEt,(n,u,A,p,h,E)=>{if(u)a.push(DCe(u));else if(p){let I=a.join("");a=[],o.push(r.length===0?I:vCe(t,r)(I)),r.push({inverse:A,styles:_Et(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(vCe(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var Yk=_((zKt,RCe)=>{"use strict";var $2=aI(),{stdout:q6,stderr:j6}=aN(),{stringReplaceAll:HEt,stringEncaseCRLFWithFirstIndex:qEt}=ICe(),{isArray:Hk}=Array,xCe=["ansi","ansi","ansi256","ansi16m"],nC=Object.create(null),jEt=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=q6?q6.level:0;t.level=e.level===void 0?r:e.level},G6=class{constructor(e){return kCe(e)}},kCe=t=>{let e={};return jEt(e,t),e.template=(...r)=>FCe(e.template,...r),Object.setPrototypeOf(e,qk.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=G6,e.template};function qk(t){return kCe(t)}for(let[t,e]of Object.entries($2))nC[t]={get(){let r=jk(this,Y6(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};nC.visible={get(){let t=jk(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var QCe=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of QCe)nC[t]={get(){let{level:e}=this;return function(...r){let o=Y6($2.color[xCe[e]][t](...r),$2.color.close,this._styler);return jk(this,o,this._isEmpty)}}};for(let t of QCe){let e="bg"+t[0].toUpperCase()+t.slice(1);nC[e]={get(){let{level:r}=this;return function(...o){let a=Y6($2.bgColor[xCe[r]][t](...o),$2.bgColor.close,this._styler);return jk(this,a,this._isEmpty)}}}}var GEt=Object.defineProperties(()=>{},{...nC,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),Y6=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},jk=(t,e,r)=>{let o=(...a)=>Hk(a[0])&&Hk(a[0].raw)?SCe(o,FCe(o,...a)):SCe(o,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(o,GEt),o._generator=t,o._styler=e,o._isEmpty=r,o},SCe=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=HEt(e,r.close,r.open),r=r.parent;let n=e.indexOf(`
`);return n!==-1&&(e=qEt(e,a,o,n)),o+e+a},H6,FCe=(t,...e)=>{let[r]=e;if(!Hk(r)||!Hk(r.raw))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n<r.length;n++)a.push(String(o[n-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[n]));return H6===void 0&&(H6=bCe()),H6(t,a.join(""))};Object.defineProperties(qk.prototype,nC);var Gk=qk();Gk.supportsColor=q6;Gk.stderr=qk({level:j6?j6.level:0});Gk.stderr.supportsColor=j6;RCe.exports=Gk});var W6=_(tB=>{"use strict";var YEt=tB&&tB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(tB,"__esModule",{value:!0});var eB=YEt(Yk()),WEt=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,KEt=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,Wk=(t,e)=>e==="foreground"?t:"bg"+t[0].toUpperCase()+t.slice(1);tB.default=(t,e,r)=>{if(!e)return t;if(e in eB.default){let a=Wk(e,r);return eB.default[a](t)}if(e.startsWith("#")){let a=Wk("hex",r);return eB.default[a](e)(t)}if(e.startsWith("ansi")){let a=KEt.exec(e);if(!a)return t;let n=Wk(a[1],r),u=Number(a[2]);return eB.default[n](u)(t)}if(e.startsWith("rgb")||e.startsWith("hsl")||e.startsWith("hsv")||e.startsWith("hwb")){let a=WEt.exec(e);if(!a)return t;let n=Wk(a[1],r),u=Number(a[2]),A=Number(a[3]),p=Number(a[4]);return eB.default[n](u,A,p)(t)}return t}});var NCe=_(rB=>{"use strict";var TCe=rB&&rB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(rB,"__esModule",{value:!0});var VEt=TCe(CCe()),K6=TCe(W6());rB.default=(t,e,r,o)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),n=r.yogaNode.getComputedHeight(),u=r.style.borderColor,A=VEt.default[r.style.borderStyle],p=K6.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,u,"foreground"),h=(K6.default(A.vertical,u,"foreground")+`
`).repeat(n-2),E=K6.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,u,"foreground");o.write(t,e,p,{transformers:[]}),o.write(t,e+1,h,{transformers:[]}),o.write(t+a-1,e+1,h,{transformers:[]}),o.write(t,e+n-1,E,{transformers:[]})}}});var MCe=_(nB=>{"use strict";var Xg=nB&&nB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nB,"__esModule",{value:!0});var zEt=Xg(Jg()),JEt=Xg(k6()),XEt=Xg(dCe()),ZEt=Xg(L6()),$Et=Xg(mCe()),eCt=Xg(O6()),tCt=Xg(NCe()),rCt=(t,e)=>{var r;let o=(r=t.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(o){let a=o.getComputedLeft(),n=o.getComputedTop();e=`
`.repeat(n)+XEt.default(e,a)}return e},LCe=(t,e,r)=>{var o;let{offsetX:a=0,offsetY:n=0,transformers:u=[],skipStaticElements:A}=r;if(A&&t.internal_static)return;let{yogaNode:p}=t;if(p){if(p.getDisplay()===zEt.default.DISPLAY_NONE)return;let h=a+p.getComputedLeft(),E=n+p.getComputedTop(),I=u;if(typeof t.internal_transform=="function"&&(I=[t.internal_transform,...u]),t.nodeName==="ink-text"){let v=eCt.default(t);if(v.length>0){let x=JEt.default(v),C=$Et.default(p);if(x>C){let R=(o=t.style.textWrap)!==null&&o!==void 0?o:"wrap";v=ZEt.default(v,C,R)}v=rCt(t,v),e.write(h,E,v,{transformers:I})}return}if(t.nodeName==="ink-box"&&tCt.default(h,E,t,e),t.nodeName==="ink-root"||t.nodeName==="ink-box")for(let v of t.childNodes)LCe(v,e,{offsetX:h,offsetY:E,transformers:I,skipStaticElements:A})}};nB.default=LCe});var UCe=_(($Kt,OCe)=>{"use strict";OCe.exports=t=>{t=Object.assign({onlyFirst:!1},t);let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t.onlyFirst?void 0:"g")}});var HCe=_((eVt,V6)=>{"use strict";var nCt=UCe(),_Ce=t=>typeof t=="string"?t.replace(nCt(),""):t;V6.exports=_Ce;V6.exports.default=_Ce});var GCe=_((tVt,jCe)=>{"use strict";var qCe="[\uD800-\uDBFF][\uDC00-\uDFFF]";jCe.exports=t=>t&&t.exact?new RegExp(`^${qCe}$`):new RegExp(qCe,"g")});var WCe=_((rVt,z6)=>{"use strict";var iCt=HCe(),sCt=GCe(),YCe=t=>iCt(t).replace(sCt()," ").length;z6.exports=YCe;z6.exports.default=YCe});var zCe=_(iB=>{"use strict";var VCe=iB&&iB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(iB,"__esModule",{value:!0});var KCe=VCe(T6()),oCt=VCe(WCe()),J6=class{constructor(e){this.writes=[];let{width:r,height:o}=e;this.width=r,this.height=o}write(e,r,o,a){let{transformers:n}=a;o&&this.writes.push({x:e,y:r,text:o,transformers:n})}get(){let e=[];for(let o=0;o<this.height;o++)e.push(" ".repeat(this.width));for(let o of this.writes){let{x:a,y:n,text:u,transformers:A}=o,p=u.split(`
`),h=0;for(let E of p){let I=e[n+h];if(!I)continue;let v=oCt.default(E);for(let x of A)E=x(E);e[n+h]=KCe.default(I,0,a)+E+KCe.default(I,a+v),h++}}return{output:e.map(o=>o.trimRight()).join(`
`),height:e.length}}};iB.default=J6});var ZCe=_(sB=>{"use strict";var X6=sB&&sB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(sB,"__esModule",{value:!0});var aCt=X6(Jg()),JCe=X6(MCe()),XCe=X6(zCe());sB.default=(t,e)=>{var r;if(t.yogaNode.setWidth(e),t.yogaNode){t.yogaNode.calculateLayout(void 0,void 0,aCt.default.DIRECTION_LTR);let o=new XCe.default({width:t.yogaNode.getComputedWidth(),height:t.yogaNode.getComputedHeight()});JCe.default(t,o,{skipStaticElements:!0});let a;!((r=t.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new XCe.default({width:t.staticNode.yogaNode.getComputedWidth(),height:t.staticNode.yogaNode.getComputedHeight()}),JCe.default(t.staticNode,a,{skipStaticElements:!1}));let{output:n,height:u}=o.get();return{output:n,outputHeight:u,staticOutput:a?`${a.get().output}
`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var rwe=_((sVt,twe)=>{"use strict";var $Ce=ve("stream"),ewe=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],Z6={},lCt=t=>{let e=new $Ce.PassThrough,r=new $Ce.PassThrough;e.write=a=>t("stdout",a),r.write=a=>t("stderr",a);let o=new console.Console(e,r);for(let a of ewe)Z6[a]=console[a],console[a]=o[a];return()=>{for(let a of ewe)console[a]=Z6[a];Z6={}}};twe.exports=lCt});var eq=_($6=>{"use strict";Object.defineProperty($6,"__esModule",{value:!0});$6.default=new WeakMap});var rq=_(tq=>{"use strict";Object.defineProperty(tq,"__esModule",{value:!0});var cCt=an(),nwe=cCt.createContext({exit:()=>{}});nwe.displayName="InternalAppContext";tq.default=nwe});var iq=_(nq=>{"use strict";Object.defineProperty(nq,"__esModule",{value:!0});var uCt=an(),iwe=uCt.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});iwe.displayName="InternalStdinContext";nq.default=iwe});var oq=_(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});var ACt=an(),swe=ACt.createContext({stdout:void 0,write:()=>{}});swe.displayName="InternalStdoutContext";sq.default=swe});var lq=_(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});var fCt=an(),owe=fCt.createContext({stderr:void 0,write:()=>{}});owe.displayName="InternalStderrContext";aq.default=owe});var Kk=_(cq=>{"use strict";Object.defineProperty(cq,"__esModule",{value:!0});var pCt=an(),awe=pCt.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{}});awe.displayName="InternalFocusContext";cq.default=awe});var cwe=_((fVt,lwe)=>{"use strict";var hCt=/[|\\{}()[\]^$+*?.-]/g;lwe.exports=t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(hCt,"\\$&")}});var pwe=_((pVt,fwe)=>{"use strict";var gCt=cwe(),dCt=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",Awe=[].concat(ve("module").builtinModules,"bootstrap_node","node").map(t=>new RegExp(`(?:\\((?:node:)?${t}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${t}(?:\\.js)?:\\d+:\\d+$)`));Awe.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var uq=class t{constructor(e){e={ignoredPackages:[],...e},"internals"in e||(e.internals=t.nodeInternals()),"cwd"in e||(e.cwd=dCt),this._cwd=e.cwd.replace(/\\/g,"/"),this._internals=[].concat(e.internals,mCt(e.ignoredPackages)),this._wrapCallSite=e.wrapCallSite||!1}static nodeInternals(){return[...Awe]}clean(e,r=0){r=" ".repeat(r),Array.isArray(e)||(e=e.split(`
`)),!/^\s*at /.test(e[0])&&/^\s*at /.test(e[1])&&(e=e.slice(1));let o=!1,a=null,n=[];return e.forEach(u=>{if(u=u.replace(/\\/g,"/"),this._internals.some(p=>p.test(u)))return;let A=/^\s*at /.test(u);o?u=u.trimEnd().replace(/^(\s+)at /,"$1"):(u=u.trim(),A&&(u=u.slice(3))),u=u.replace(`${this._cwd}/`,""),u&&(A?(a&&(n.push(a),a=null),n.push(u)):(o=!0,a=u))}),n.map(u=>`${r}${u}
`).join("")}captureString(e,r=this.captureString){typeof e=="function"&&(r=e,e=1/0);let{stackTraceLimit:o}=Error;e&&(Error.stackTraceLimit=e);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=o,this.clean(n)}capture(e,r=this.capture){typeof e=="function"&&(r=e,e=1/0);let{prepareStackTrace:o,stackTraceLimit:a}=Error;Error.prepareStackTrace=(A,p)=>this._wrapCallSite?p.map(this._wrapCallSite):p,e&&(Error.stackTraceLimit=e);let n={};Error.captureStackTrace(n,r);let{stack:u}=n;return Object.assign(Error,{prepareStackTrace:o,stackTraceLimit:a}),u}at(e=this.at){let[r]=this.capture(1,e);if(!r)return{};let o={line:r.getLineNumber(),column:r.getColumnNumber()};uwe(o,r.getFileName(),this._cwd),r.isConstructor()&&(o.constructor=!0),r.isEval()&&(o.evalOrigin=r.getEvalOrigin()),r.isNative()&&(o.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(o.type=a);let n=r.getFunctionName();n&&(o.function=n);let u=r.getMethodName();return u&&n!==u&&(o.method=u),o}parseLine(e){let r=e&&e.match(yCt);if(!r)return null;let o=r[1]==="new",a=r[2],n=r[3],u=r[4],A=Number(r[5]),p=Number(r[6]),h=r[7],E=r[8],I=r[9],v=r[10]==="native",x=r[11]===")",C,R={};if(E&&(R.line=Number(E)),I&&(R.column=Number(I)),x&&h){let L=0;for(let U=h.length-1;U>0;U--)if(h.charAt(U)===")")L++;else if(h.charAt(U)==="("&&h.charAt(U-1)===" "&&(L--,L===-1&&h.charAt(U-1)===" ")){let z=h.slice(0,U-1);h=h.slice(U+1),a+=` (${z}`;break}}if(a){let L=a.match(ECt);L&&(a=L[1],C=L[2])}return uwe(R,h,this._cwd),o&&(R.constructor=!0),n&&(R.evalOrigin=n,R.evalLine=A,R.evalColumn=p,R.evalFile=u&&u.replace(/\\/g,"/")),v&&(R.native=!0),a&&(R.function=a),C&&a!==C&&(R.method=C),R}};function uwe(t,e,r){e&&(e=e.replace(/\\/g,"/"),e.startsWith(`${r}/`)&&(e=e.slice(r.length+1)),t.file=e)}function mCt(t){if(t.length===0)return[];let e=t.map(r=>gCt(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${e.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var yCt=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),ECt=/^(.*?) \[as (.*?)\]$/;fwe.exports=uq});var gwe=_((hVt,hwe)=>{"use strict";hwe.exports=(t,e)=>t.replace(/^\t+/gm,r=>" ".repeat(r.length*(e||2)))});var mwe=_((gVt,dwe)=>{"use strict";var CCt=gwe(),wCt=(t,e)=>{let r=[],o=t-e,a=t+e;for(let n=o;n<=a;n++)r.push(n);return r};dwe.exports=(t,e,r)=>{if(typeof t!="string")throw new TypeError("Source code is missing.");if(!e||e<1)throw new TypeError("Line number must start from `1`.");if(t=CCt(t).split(/\r?\n/),!(e>t.length))return r={around:3,...r},wCt(e,r.around).filter(o=>t[o-1]!==void 0).map(o=>({line:o,value:t[o-1]}))}});var Vk=_(iu=>{"use strict";var ICt=iu&&iu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),BCt=iu&&iu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),vCt=iu&&iu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&ICt(e,t,r);return BCt(e,t),e},DCt=iu&&iu.__rest||function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,o=Object.getOwnPropertySymbols(t);a<o.length;a++)e.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(t,o[a])&&(r[o[a]]=t[o[a]]);return r};Object.defineProperty(iu,"__esModule",{value:!0});var ywe=vCt(an()),Aq=ywe.forwardRef((t,e)=>{var{children:r}=t,o=DCt(t,["children"]);let a=Object.assign(Object.assign({},o),{marginLeft:o.marginLeft||o.marginX||o.margin||0,marginRight:o.marginRight||o.marginX||o.margin||0,marginTop:o.marginTop||o.marginY||o.margin||0,marginBottom:o.marginBottom||o.marginY||o.margin||0,paddingLeft:o.paddingLeft||o.paddingX||o.padding||0,paddingRight:o.paddingRight||o.paddingX||o.padding||0,paddingTop:o.paddingTop||o.paddingY||o.padding||0,paddingBottom:o.paddingBottom||o.paddingY||o.padding||0});return ywe.default.createElement("ink-box",{ref:e,style:a},r)});Aq.displayName="Box";Aq.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};iu.default=Aq});var hq=_(oB=>{"use strict";var fq=oB&&oB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(oB,"__esModule",{value:!0});var PCt=fq(an()),iC=fq(Yk()),Ewe=fq(W6()),pq=({color:t,backgroundColor:e,dimColor:r,bold:o,italic:a,underline:n,strikethrough:u,inverse:A,wrap:p,children:h})=>{if(h==null)return null;let E=I=>(r&&(I=iC.default.dim(I)),t&&(I=Ewe.default(I,t,"foreground")),e&&(I=Ewe.default(I,e,"background")),o&&(I=iC.default.bold(I)),a&&(I=iC.default.italic(I)),n&&(I=iC.default.underline(I)),u&&(I=iC.default.strikethrough(I)),A&&(I=iC.default.inverse(I)),I);return PCt.default.createElement("ink-text",{style:{flexGrow:0,flexSLine truncated
`).slice(1):void 0,r=e?Iwe.parseLine(e[0]):void 0,o,a=0;if(r?.file&&r?.line&&Cwe.existsSync(r.file)){let n=Cwe.readFileSync(r.file,"utf8");if(o=kCt.default(n,r.line),o)for(let{line:u}of o)a=Math.max(a,String(u).length)}return hs.default.createElement(zf.default,{flexDirection:"column",padding:1},hs.default.createElement(zf.default,null,hs.default.createElement(hA.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),hs.default.createElement(hA.default,null," ",t.message)),r&&hs.default.createElement(zf.default,{marginTop:1},hs.default.createElement(hA.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&o&&hs.default.createElement(zf.default,{marginTop:1,flexDirection:"column"},o.map(({line:n,value:u})=>hs.default.createElement(zf.default,{key:n},hs.default.createElement(zf.default,{width:a+1},hs.default.createElement(hA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0},String(n).padStart(a," "),":")),hs.default.createElement(hA.default,{key:n,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0}," "+u)))),t.stack&&hs.default.createElement(zf.default,{marginTop:1,flexDirection:"column"},t.stack.split(`
`).slice(1).map(n=>{let u=Iwe.parseLine(n);return u?hs.default.createElement(zf.default,{key:n},hs.default.createElement(hA.default,{dimColor:!0},"- "),hs.default.createElement(hA.default,{dimColor:!0,bold:!0},u.function),hs.default.createElement(hA.default,{dimColor:!0,color:"gray"}," ","(",u.file,":",u.line,":",u.column,")")):hs.default.createElement(zf.default,{key:n},hs.default.createElement(hA.default,{dimColor:!0},"- "),hs.default.createElement(hA.default,{dimColor:!0,bold:!0},n))})))};su.default=QCt});var Dwe=_(ou=>{"use strict";var FCt=ou&&ou.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),RCt=ou&&ou.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),TCt=ou&&ou.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&FCt(e,t,r);return RCt(e,t),e},$g=ou&&ou.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ou,"__esModule",{value:!0});var Zg=TCt(an()),vwe=$g(u6()),NCt=$g(rq()),LCt=$g(iq()),MCt=$g(oq()),OCt=$g(lq()),UCt=$g(Kk()),_Ct=$g(Bwe()),HCt=" ",qCt="\x1B[Z",jCt="\x1B",zk=class extends Zg.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=e=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),e){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=e=>{e===""&&this.props.exitOnCtrlC&&this.handleExit(),e===jCt&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(e===HCt&&this.focusNext(),e===qCt&&this.focusPrevious())},this.handleExit=e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focusNext=()=>{this.setState(e=>{let r=e.focusables[0].id;return{activeFocusId:this.findNextFocusable(e)||r}})},this.focusPrevious=()=>{this.setState(e=>{let r=e.focusables[e.focusables.length-1].id;return{activeFocusId:this.findPreviousFocusable(e)||r}})},this.addFocusable=(e,{autoFocus:r})=>{this.setState(o=>{let a=o.activeFocusId;return!a&&r&&(a=e),{activeFocusId:a,focusables:[...o.focusables,{id:e,isActive:!0}]}})},this.removeFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.filter(o=>o.id!==e)}))},this.activateFocusable=e=>{this.setState(r=>({focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!0})}))},this.deactivateFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!1})}))},this.findNextFocusable=e=>{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r+1;o<e.focusables.length;o++)if(e.focusables[o].isActive)return e.focusables[o].id},this.findPreviousFocusable=e=>{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r-1;o>=0;o--)if(e.focusables[o].isActive)return e.focusables[o].id}}static getDerivedStateFromError(e){return{error:e}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return Zg.default.createElement(NCt.default.Provider,{value:{exit:this.handleExit}},Zg.default.createElement(LCt.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},Zg.default.createElement(MCt.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},Zg.default.createElement(OCt.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},Zg.default.createElement(UCt.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious}},this.state.error?Zg.default.createElement(_Ct.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){vwe.default.hide(this.props.stdout)}componentWillUnmount(){vwe.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}};ou.default=zk;zk.displayName="InternalApp"});var Swe=_(au=>{"use strict";var GCt=au&&au.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),YCt=au&&au.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),WCt=au&&au.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&GCt(e,t,r);return YCt(e,t),e},lu=au&&au.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(au,"__esModule",{value:!0});var KCt=lu(an()),Pwe=eO(),VCt=lu(pEe()),zCt=lu(s6()),JCt=lu(EEe()),XCt=lu(wEe()),gq=lu(hCe()),ZCt=lu(ZCe()),$Ct=lu(c6()),ewt=lu(rwe()),twt=WCt(U6()),rwt=lu(eq()),nwt=lu(Dwe()),sC=process.env.CI==="false"?!1:JCt.default,bwe=()=>{},dq=class{constructor(e){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:o,staticOutput:a}=ZCt.default(this.rootNode,this.options.stdout.columns||80),n=a&&a!==`
`;if(this.options.debug){n&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(sC){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),o>=this.options.stdout.rows){this.options.stdout.write(zCt.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}n&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!n&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},XCt.default(this),this.options=e,this.rootNode=twt.createNode("ink-root"),this.rootNode.onRender=e.debug?this.onRender:Pwe(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=VCt.default.create(e.stdout),this.throttledLog=e.debug?this.log:Pwe(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=gq.default.createContainer(this.rootNode,!1,!1),this.unsubscribeExit=$Ct.default(this.unmount,{alwaysLast:!1}),e.patchConsole&&this.patchConsole(),sC||(e.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{e.stdout.off("resize",this.onRender)})}render(e){let r=KCt.default.createElement(nwt.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);gq.default.updateContainer(r,this.container,null,bwe)}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.fullStaticOutput+this.lastOutput);return}if(sC){this.options.stdout.write(e);return}this.log.clear(),this.options.stdout.write(e),this.log(this.lastOutput)}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(sC){this.options.stderr.write(e);return}this.log.clear(),this.options.stderr.write(e),this.log(this.lastOutput)}}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),sC?this.options.stdout.write(this.lastOutput+`
`):this.options.debug||this.log.done(),this.isUnmounted=!0,gq.default.updateContainer(null,this.container,null,bwe),rwt.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((e,r)=>{this.resolveExitPromise=e,this.rejectExitPromise=r})),this.exitPromise}clear(){!sC&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=ewt.default((e,r)=>{e==="stdout"&&this.writeToStdout(r),e==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};au.default=dq});var kwe=_(lB=>{"use strict";var xwe=lB&&lB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lB,"__esModule",{value:!0});var iwt=xwe(Swe()),Jk=xwe(eq()),swt=ve("stream"),owt=(t,e)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},awt(e)),o=lwt(r.stdout,()=>new iwt.default(r));return o.render(t),{rerender:o.render,unmount:()=>o.unmount(),waitUntilExit:o.waitUntilExit,cleanup:()=>Jk.default.delete(r.stdout),clear:o.clear}};lB.default=owt;var awt=(t={})=>t instanceof swt.Stream?{stdout:t,stdin:process.stdin}:t,lwt=(t,e)=>{let r;return Jk.default.has(t)?r=Jk.default.get(t):(r=e(),Jk.default.set(t,r)),r}});var Fwe=_(Jf=>{"use strict";var cwt=Jf&&Jf.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),uwt=Jf&&Jf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Awt=Jf&&Jf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&cwt(e,t,r);return uwt(e,t),e};Object.defineProperty(Jf,"__esModule",{value:!0});var cB=Awt(an()),Qwe=t=>{let{items:e,children:r,style:o}=t,[a,n]=cB.useState(0),u=cB.useMemo(()=>e.slice(a),[e,a]);cB.useLayoutEffect(()=>{n(e.length)},[e.length]);let A=u.map((h,E)=>r(h,a+E)),p=cB.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},o),[o]);return cB.default.createElement("ink-box",{internal_static:!0,style:p},A)};Qwe.displayName="Static";Jf.default=Qwe});var Twe=_(uB=>{"use strict";var fwt=uB&&uB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uB,"__esModule",{value:!0});var pwt=fwt(an()),Rwe=({children:t,transform:e})=>t==null?null:pwt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:e},t);Rwe.displayName="Transform";uB.default=Rwe});var Lwe=_(AB=>{"use strict";var hwt=AB&&AB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(AB,"__esModule",{value:!0});var gwt=hwt(an()),Nwe=({count:t=1})=>gwt.default.createElement("ink-text",null,`
`.repeat(t));Nwe.displayName="Newline";AB.default=Nwe});var Uwe=_(fB=>{"use strict";var Mwe=fB&&fB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fB,"__esModule",{value:!0});var dwt=Mwe(an()),mwt=Mwe(Vk()),Owe=()=>dwt.default.createElement(mwt.default,{flexGrow:1});Owe.displayName="Spacer";fB.default=Owe});var Xk=_(pB=>{"use strict";var ywt=pB&&pB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pB,"__esModule",{value:!0});var Ewt=an(),Cwt=ywt(iq()),wwt=()=>Ewt.useContext(Cwt.default);pB.default=wwt});var Hwe=_(hB=>{"use strict";var Iwt=hB&&hB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hB,"__esModule",{value:!0});var _we=an(),Bwt=Iwt(Xk()),vwt=(t,e={})=>{let{stdin:r,setRawMode:o,internal_exitOnCtrlC:a}=Bwt.default();_we.useEffect(()=>{if(e.isActive!==!1)return o(!0),()=>{o(!1)}},[e.isActive,o]),_we.useEffect(()=>{if(e.isActive===!1)return;let n=u=>{let A=String(u),p={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!p.return&&(A=String.fromCharCode(A.charCodeAt(0)+97-1),p.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),p.meta=!0);let h=A>="A"&&A<="Z",E=A>="\u0410"&&A<="\u042F";A.length===1&&(h||E)&&(p.shift=!0),p.tab&&A==="[Z"&&(p.shift=!0),(p.tab||p.backspace||p.delete)&&(A=""),(!(A==="c"&&p.ctrl)||!a)&&t(A,p)};return r?.on("data",n),()=>{r?.off("data",n)}},[e.isActive,r,a,t])};hB.default=vwt});var qwe=_(gB=>{"use strict";var Dwt=gB&&gB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(gB,"__esModule",{value:!0});var Pwt=an(),bwt=Dwt(rq()),Swt=()=>Pwt.useContext(bwt.default);gB.default=Swt});var jwe=_(dB=>{"use strict";var xwt=dB&&dB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(dB,"__esModule",{value:!0});var kwt=an(),Qwt=xwt(oq()),Fwt=()=>kwt.useContext(Qwt.default);dB.default=Fwt});var Gwe=_(mB=>{"use strict";var Rwt=mB&&mB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(mB,"__esModule",{value:!0});var Twt=an(),Nwt=Rwt(lq()),Lwt=()=>Twt.useContext(Nwt.default);mB.default=Lwt});var Wwe=_(EB=>{"use strict";var Ywe=EB&&EB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(EB,"__esModule",{value:!0});var yB=an(),Mwt=Ywe(Kk()),Owt=Ywe(Xk()),Uwt=({isActive:t=!0,autoFocus:e=!1}={})=>{let{isRawModeSupported:r,setRawMode:o}=Owt.default(),{activeId:a,add:n,remove:u,activate:A,deactivate:p}=yB.useContext(Mwt.default),h=yB.useMemo(()=>Math.random().toString().slice(2,7),[]);return yB.useEffect(()=>(n(h,{autoFocus:e}),()=>{u(h)}),[h,e]),yB.useEffect(()=>{t?A(h):p(h)},[t,h]),yB.useEffect(()=>{if(!(!r||!t))return o(!0),()=>{o(!1)}},[t]),{isFocused:!!h&&a===h}};EB.default=Uwt});var Kwe=_(CB=>{"use strict";var _wt=CB&&CB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(CB,"__esModule",{value:!0});var Hwt=an(),qwt=_wt(Kk()),jwt=()=>{let t=Hwt.useContext(qwt.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious}};CB.default=jwt});var Vwe=_(mq=>{"use strict";Object.defineProperty(mq,"__esModule",{value:!0});mq.default=t=>{var e,r,o,a;return{width:(r=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(o=t.yogaNode)===null||o===void 0?void 0:o.getComputedHeight())!==null&&a!==void 0?a:0}}});var ic=_(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});var Gwt=kwe();Object.defineProperty(ro,"render",{enumerable:!0,get:function(){return Gwt.default}});var Ywt=Vk();Object.defineProperty(ro,"Box",{enumerable:!0,get:function(){return Ywt.default}});var Wwt=hq();Object.defineProperty(ro,"Text",{enumerable:!0,get:function(){return Wwt.default}});var Kwt=Fwe();Object.defineProperty(ro,"Static",{enumerable:!0,get:function(){return Kwt.default}});var Vwt=Twe();Object.defineProperty(ro,"Transform",{enumerable:!0,get:function(){return Vwt.default}});var zwt=Lwe();Object.defineProperty(ro,"Newline",{enumerable:!0,get:function(){return zwt.default}});var Jwt=Uwe();Object.defineProperty(ro,"Spacer",{enumerable:!0,get:function(){return Jwt.default}});var Xwt=Hwe();Object.defineProperty(ro,"useInput",{enumerable:!0,get:function(){return Xwt.default}});var Zwt=qwe();Object.defineProperty(ro,"useApp",{enumerable:!0,get:function(){return Zwt.default}});var $wt=Xk();Object.defineProperty(ro,"useStdin",{enumerable:!0,get:function(){return $wt.default}});var eIt=jwe();Object.defineProperty(ro,"useStdout",{enumerable:!0,get:function(){return eIt.default}});var tIt=Gwe();Object.defineProperty(ro,"useStderr",{enumerable:!0,get:function(){return tIt.default}});var rIt=Wwe();Obj Line truncated
`:"";return u?I+=`@IF EXIST ${u} (\r
${u} ${p} ${a} ${E}%*\r
) ELSE (\r
@SETLOCAL\r
@SET PATHEXT=%PATHEXT:;.JS;=;%\r
${A} ${p} ${a} ${E}%*\r
)\r
`:I+=`@${A} ${p} ${a} ${E}%*\r
`,I}function g1t(t,e,r){let o=oc.relative(oc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n;o=o.split("\\").join("/");let u=oc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,A=r.args||"",p=oj(r.nodePath).posix;a?(n=`"$basedir/${r.prog}"`,o=u):(a=u,A="",o="");let h=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')")
case \`uname\` in
*CYGWIN*) basedir=\`cygpath -w "$basedir"\`;;
esac
`,I=r.nodePath?`export NODE_PATH="${p}"
`:"";return n?E+=`${I}if [ -x ${n} ]; then
exec ${n} ${A} ${o} ${h}"$@"
else
exec ${a} ${A} ${o} ${h}"$@"
fi
`:E+=`${I}${a} ${A} ${o} ${h}"$@"
exit $?
`,E}function d1t(t,e,r){let o=oc.relative(oc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n=a&&`"${a}$exe"`,u;o=o.split("\\").join("/");let A=oc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,p=r.args||"",h=oj(r.nodePath),E=h.win32,I=h.posix;n?(u=`"$basedir/${r.prog}$exe"`,o=A):(n=A,p="",o="");let v=r.progArgs?`${r.progArgs.join(" ")} `:"",x=`#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
${r.nodePath?`$env_node_path=$env:NODE_PATH
$env:NODE_PATH="${E}"
`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}`;return r.nodePath&&(x+=` else {
$env:NODE_PATH="${I}"
}`),u?x+=`
$ret=0
if (Test-Path ${u}) {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${u} ${p} ${o} ${v}$args
} else {
& ${u} ${p} ${o} ${v}$args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${n} ${p} ${o} ${v}$args
} else {
& ${n} ${p} ${o} ${v}$args
}
$ret=$LASTEXITCODE
}
${r.nodePath?`$env:NODE_PATH=$env_node_path
`:""}exit $ret
`:x+=`
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${n} ${p} ${o} ${v}$args
} else {
& ${n} ${p} ${o} ${v}$args
}
${r.nodePath?`$env:NODE_PATH=$env_node_path
`:""}exit $LASTEXITCODE
`,x}function m1t(t,e){return e.fs_.chmod(t,493)}function oj(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(oc.delimiter):Array.from(t),r={};for(let o=0;o<e.length;o++){let a=e[o].split("/").join("\\"),n=l1e()?e[o].split("\\").join("/").replace(/^([^:\\/]*):/,(u,A)=>`/mnt/${A.toLowerCase()}`):e[o];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[o]={win32:a,posix:n}}return r}u1e.exports=sj});var Cj=_((B$t,Q1e)=>{Q1e.exports=ve("stream")});var N1e=_((v$t,T1e)=>{"use strict";function F1e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function G1t(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?F1e(Object(r),!0).forEach(function(o){Y1t(t,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):F1e(Object(r)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(r,o))})}return t}function Y1t(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function W1t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function R1e(t,e){for(var r=0;r<e.length;r++){var o=e[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function K1t(t,e,r){return e&&R1e(t.prototype,e),r&&R1e(t,r),t}var V1t=ve("buffer"),yQ=V1t.Buffer,z1t=ve("util"),wj=z1t.inspect,J1t=wj&&wj.custom||"inspect";function X1t(t,e,r){yQ.prototype.copy.call(t,e,r)}T1e.exports=function(){function t(){W1t(this,t),this.head=null,this.tail=null,this.length=0}return K1t(t,[{key:"push",value:function(r){var o={data:r,next:null};this.length>0?this.tail.next=o:this.head=o,this.tail=o,++this.length}},{key:"unshift",value:function(r){var o={data:r,next:this.head};this.length===0&&(this.tail=o),this.head=o,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var o=this.head,a=""+o.data;o=o.next;)a+=r+o.data;return a}},{key:"concat",value:function(r){if(this.length===0)return yQ.alloc(0);for(var o=yQ.allocUnsafe(r>>>0),a=this.head,n=0;a;)X1t(a.data,o,n),n+=a.data.length,a=a.next;return o}},{key:"consume",value:function(r,o){var a;return r<this.head.data.length?(a=this.head.data.slice(0,r),this.head.data=this.head.data.slice(r)):r===this.head.data.length?a=this.shift():a=o?this._getString(r):this._getBuffer(r),a}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(r){var o=this.head,a=1,n=o.data;for(r-=n.length;o=o.next;){var u=o.data,A=r>u.length?u.length:r;if(A===u.length?n+=u:n+=u.slice(0,r),r-=A,r===0){A===u.length?(++a,o.next?this.head=o.next:this.head=this.tail=null):(this.head=o,o.data=u.slice(A));break}++a}return this.length-=a,n}},{key:"_getBuffer",value:function(r){var o=yQ.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(o),r-=a.data.length;a=a.next;){var u=a.data,A=r>u.length?u.length:r;if(u.copy(o,o.length-r,0,A),r-=A,r===0){A===u.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=u.slice(A));break}++n}return this.length-=n,o}},{key:J1t,value:function(r,o){return wj(this,G1t({},o,{depth:0,customInspect:!1}))}}]),t}()});var Bj=_((D$t,M1e)=>{"use strict";function Z1t(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return o||a?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Ij,this,t)):process.nextTick(Ij,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(n){!e&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(EQ,r):(r._writableState.errorEmitted=!0,process.nextTick(L1e,r,n)):process.nextTick(L1e,r,n):e?(process.nextTick(EQ,r),e(n)):process.nextTick(EQ,r)}),this)}function L1e(t,e){Ij(t,e),EQ(t)}function EQ(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function $1t(){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 Ij(t,e){t.emit("error",e)}function e2t(t,e){var r=t._readableState,o=t._writableState;r&& Line truncated
`)),t.linkname&&(e+=Xj(" linkpath="+t.linkname+`
`));var r=t.pax;if(r)for(var o in r)e+=Xj(" "+o+"="+r[o]+`
`);return Buffer.from(e)};IC.decodePax=function(t){for(var e={};t.length;){for(var r=0;r<t.length&&t[r]!==32;)r++;var o=parseInt(t.slice(0,r).toString(),10);if(!o)return e;var a=t.slice(r+1,o-1).toString(),n=a.indexOf("=");if(n===-1)return e;e[a.slice(0,n)]=a.slice(n+1),t=t.slice(o)}return e};IC.encode=function(t){var e=WBt(512),r=t.name,o="";if(t.typeflag===5&&r[r.length-1]!=="/"&&(r+="/"),Buffer.byteLength(r)!==r.length)return null;for(;Buffer.byteLength(r)>100;){var a=r.indexOf("/");if(a===-1)return null;o+=o?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(o)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(Jh(t.mode&ZBt,6),100),e.write(Jh(t.uid,6),108),e.write(Jh(t.gid,6),116),e.write(Jh(t.size,11),124),e.write(Jh(t.mtime.getTime()/1e3|0,11),136),e[156]=M2e+tvt(t.type),t.linkname&&e.write(t.linkname,157),O2e.copy(e,lv),zBt.copy(e,Zj),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(Jh(t.devmajor||0,6),329),e.write(Jh(t.devminor||0,6),337),o&&e.write(o,345),e.write(Jh(_2e(e),6),148),e)};IC.decode=function(t,e,r){var o=t[156]===0?0:t[156]-M2e,a=wC(t,0,100,e),n=Xh(t,100,8),u=Xh(t,108,8),A=Xh(t,116,8),p=Xh(t,124,12),h=Xh(t,136,12),E=evt(o),I=t[157]===0?null:wC(t,157,100,e),v=wC(t,265,32),x=wC(t,297,32),C=Xh(t,329,8),R=Xh(t,337,8),L=_2e(t);if(L===8*32)return null;if(L!==Xh(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(O2e.compare(t,lv,lv+6)===0)t[345]&&(a=wC(t,345,155,e)+"/"+a);else if(!(JBt.compare(t,lv,lv+6)===0&&XBt.compare(t,Zj,Zj+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return o===0&&a&&a[a.length-1]==="/"&&(o=5),{name:a,mode:n,uid:u,gid:A,size:p,mtime:new Date(1e3*h),type:E,linkname:I,uname:v,gname:x,devmajor:C,devminor:R}}});var K2e=_((Y$t,W2e)=>{var q2e=ve("util"),nvt=L2e(),cv=$j(),j2e=CC().Writable,G2e=CC().PassThrough,Y2e=function(){},H2e=function(t){return t&=511,t&&512-t},ivt=function(t,e){var r=new TQ(t,e);return r.end(),r},svt=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},TQ=function(t,e){this._parent=t,this.offset=e,G2e.call(this,{autoDestroy:!1})};q2e.inherits(TQ,G2e);TQ.prototype.destroy=function(t){this._parent.destroy(t)};var sp=function(t){if(!(this instanceof sp))return new sp(t);j2e.call(this,t),t=t||{},this._offset=0,this._buffer=nvt(),this._missing=0,this._partial=!1,this._onparse=Y2e,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,r=e._buffer,o=function(){e._continue()},a=function(v){if(e._locked=!1,v)return e.destroy(v);e._stream||o()},n=function(){e._stream=null;var v=H2e(e._header.size);v?e._parse(v,u):e._parse(512,I),e._locked||o()},u=function(){e._buffer.consume(H2e(e._header.size)),e._parse(512,I),o()},A=function(){var v=e._header.size;e._paxGlobal=cv.decodePax(r.slice(0,v)),r.consume(v),n()},p=function(){var v=e._header.size;e._pax=cv.decodePax(r.slice(0,v)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(v),n()},h=function(){var v=e._header.size;this._gnuLongPath=cv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},E=function(){var v=e._header.size;this._gnuLongLinkPath=cv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},I=function(){var v=e._offset,x;try{x=e._header=cv.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(C){e.emit("error",C)}if(r.consume(512),!x){e._parse(512,I),o();return}if(x.type==="gnu-long-path"){e._parse(x.size,h),o();return}if(x.type==="gnu-long-link-path"){e._parse(x.size,E),o();return}if(x.type==="pax-global-header"){e._parse(x.size,A),o();return}if(x.type==="pax-header"){e._parse(x.size,p),o();return}if(e._gnuLongPath&&(x.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(x.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=x=svt(x,e._pax),e._pax=null),e._locked=!0,!x.size||x.type==="directory"){e._parse(512,I),e.emit("entry",x,ivt(e,v),a);return}e._stream=new TQ(e,v),e.emit("entry",x,e._stream,a),e._parse(x.size,n),o()};this._onheader=I,this._parse(512,I)};q2e.inherits(sp,j2e);sp.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};sp.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};sp.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=Y2e,this._overflow?this._write(this._overflow,void 0,t):t()}};sp.prototype._write=function(t,e,r){if(!this._destroyed){var o=this._stream,a=this._buffer,n=this._missing;if(t.length&&(this._partial=!0),t.length<n)return this._missing-=t.length,this._overflow=null,o?o.write(t,r):(a.append(t), Line truncated
Wanted: ${r.size}
Found: ${t.length}`);throw A.code="EBADSIZE",A.found=t.length,A.expected=r.size,A.sri=e,A}else{let A=new Error(`Integrity checksum failed when using ${o}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw A.code="EINTEGRITY",A.found=n,A.expected=e,A.algorithm=o,A.sri=e,A}}IA.exports.checkStream=Lvt;function Lvt(t,e,r){r=oa(r);let o=r.Promise||Promise,a=u5(r.concat({integrity:e}));return new o((n,u)=>{t.pipe(a),t.on("error",u),a.on("error",u);let A;a.on("verified",p=>{A=p}),a.on("end",()=>n(A)),a.on("data",()=>{})})}IA.exports.integrityStream=u5;function u5(t){t=oa(t);let e=t.integrity&&wA(t.integrity,t),r=e&&Object.keys(e).length,o=r&&e.pickAlgorithm(t),a=r&&e[o],n=Array.from(new Set(t.algorithms.concat(o?[o]:[]))),u=n.map(pv.createHash),A=0,p=new bvt({transform(h,E,I){A+=h.length,u.forEach(v=>v.update(h,E)),I(null,h,E)}}).on("end",()=>{let h=t.options&&t.options.length?`?${t.options.join("?")}`:"",E=wA(u.map((v,x)=>`${n[x]}-${v.digest("base64")}${h}`).join(" "),t),I=r&&E.match(e,t);if(typeof t.size=="number"&&A!==t.size){let v=new Error(`stream size mismatch when checking ${e}.
Wanted: ${t.size}
Found: ${A}`);v.code="EBADSIZE",v.found=A,v.expected=t.size,v.sri=e,p.emit("error",v)}else if(t.integrity&&!I){let v=new Error(`${e} integrity checksum failed when using ${o}: wanted ${a} but got ${E}. (${A} bytes)`);v.code="EINTEGRITY",v.found=E,v.expected=a,v.algorithm=o,v.sri=e,p.emit("error",v)}else p.emit("size",A),p.emit("integrity",E),I&&p.emit("verified",I)});return p}IA.exports.create=Mvt;function Mvt(t){t=oa(t);let e=t.algorithms,r=t.options.length?`?${t.options.join("?")}`:"",o=e.map(pv.createHash);return{update:function(a,n){return o.forEach(u=>u.update(a,n)),this},digest:function(a){return e.reduce((u,A)=>{let p=o.shift().digest("base64"),h=new Zh(`${A}-${p}${r}`,t);if(h.algorithm&&h.digest){let E=h.algorithm;u[E]||(u[E]=[]),u[E].push(h)}return u},new fd)}}}var Ovt=new Set(pv.getHashes()),gBe=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>Ovt.has(t));function Uvt(t,e){return gBe.indexOf(t.toLowerCase())>=gBe.indexOf(e.toLowerCase())?t:e}});var YBe=_((mir,GBe)=>{var UDt=$N();function _Dt(t){return UDt(t)?void 0:t}GBe.exports=_Dt});var KBe=_((yir,WBe)=>{var HDt=xS(),qDt=B8(),jDt=b8(),GDt=Mg(),YDt=Ag(),WDt=YBe(),KDt=m_(),VDt=I8(),zDt=1,JDt=2,XDt=4,ZDt=KDt(function(t,e){var r={};if(t==null)return r;var o=!1;e=HDt(e,function(n){return n=GDt(n,t),o||(o=n.length>1),n}),YDt(t,VDt(t),r),o&&(r=qDt(r,zDt|JDt|XDt,WDt));for(var a=e.length;a--;)jDt(r,e[a]);return r});WBe.exports=ZDt});Pt();Ge();Pt();var ZBe=ve("child_process"),$Be=Ze(X0());qt();var Uy=new Map([]);var W1={};Vt(W1,{BaseCommand:()=>ut,WorkspaceRequiredError:()=>sr,getCli:()=>ihe,getDynamicLibs:()=>nhe,getPluginConfiguration:()=>Hy,openWorkspace:()=>_y,pluginCommands:()=>Uy,runExit:()=>Wx});qt();var ut=class extends it{constructor(){super(...arguments);this.cwd=ge.String("--cwd",{hidden:!0})}validateAndExecute(){if(typeof this.cwd<"u")throw new st("The --cwd option is ambiguous when used anywhere else than the very first parameter provided in the command line, before even the command path");return super.validateAndExecute()}};Ge();Pt();qt();var sr=class extends st{constructor(e,r){let o=V.relative(e,r),a=V.join(e,Ut.fileName);super(`This command can only be run from within a workspace of your project (${o} isn't a workspace of ${a}).`)}};Ge();Pt();nA();Nl();g1();qt();var UAt=Ze(Jn());el();var nhe=()=>new Map([["@yarnpkg/cli",W1],["@yarnpkg/core",Y1],["@yarnpkg/fslib",kw],["@yarnpkg/libzip",p1],["@yarnpkg/parsers",Ow],["@yarnpkg/shell",E1],["clipanion",Jw],["semver",UAt],["typanion",Vo]]);Ge();async function _y(t,e){let{project:r,workspace:o}=await kt.find(t,e);if(!o)throw new sr(r.cwd,e);return o}Ge();Pt();nA();Nl();g1();qt();var aPt=Ze(Jn());el();var K8={};Vt(K8,{AddCommand:()=>Yy,BinCommand:()=>Wy,CacheCleanCommand:()=>Ky,ClipanionCommand:()=>$y,ConfigCommand:()=>Xy,ConfigGetCommand:()=>Vy,ConfigSetCommand:()=>zy,ConfigUnsetCommand:()=>Jy,DedupeCommand:()=>Zy,EntryCommand:()=>tE,ExecCommand:()=>nE,ExplainCommand:()=>oE,ExplainPeerRequirementsCommand:()=>iE,HelpCommand:()=>eE,InfoCommand:()=>aE,LinkCommand:()=>cE,NodeCommand:()=>uE,PluginCheckCommand:()=>AE,PluginImportCommand:()=>hE,PluginImportSourcesCommand:()=>gE,PluginListCommand:()=>fE,PluginRemoveCommand:()=>dE,PluginRuntimeCommand:()=>mE,RebuildCommand:()=>yE,RemoveCommand:()=>EE,RunCommand:()=>wE,RunIndexCommand:()=>CE,SetResolutionCommand:()=>IE,SetVersionCommand:()=>sE,SetVersionSourcesCommand:()=>pE,UnlinkCommand:()=>BE,UpCommand:()=>vE,VersionCommand:()=>rE,WhyCommand:()=>DE,WorkspaceCommand:()=>kE,WorkspacesListCommand:()=>xE,YarnCommand:()=>lE,dedupeUtils:()=>rk,default:()=>Rgt,suggestUtils:()=>Zc});var Nde=Ze(X0());Ge();Ge();Ge();qt();var Y0e=Ze(J1());el();var Zc={};Vt(Zc,{Modifier:()=>m8,Strategy:()=>$x,Target:()=>X1,WorkspaceModifier:()=>_0e,applyModifier:()=>spt,extractDescriptorFromPath:()=>y8,extractRangeModifier:()=>H0e,fetchDescriptorFrom:()=>E8,findProjectDescriptors:()=>G0e,getModifier:()=>Z1,getSuggestedDescriptors:()=>$1,makeWorkspaceDescriptor:()=>j0e,toWorkspaceModifier:()=>q0e});Ge();Ge();Pt();var d8=Ze(Jn()),npt="workspace:",X1=(o=>(o.REGULAR="dependencies",o.DEVELOPMENT="devDependencies",o.PEER="peerDependencies",o))(X1||{}),m8=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="",o))(m8||{}),_0e=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="*",o))(_0e||{}),$x=(n=>(n.KEEP="keep",n.REUSE="reuse",n.PROJECT="project",n.LATEST="latest",n.CACHE="cache",n))($x||{});function Z1(t,e){return t.exact?"":t.caret?"^":t.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var ipt=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function H0e(t,{project:e}){let r=t.match(ipt);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function spt(t,e){let{protocol:r,source:o,params:a,selector:n}=G.parseRange(t.range);return d8.default.valid(n)&&(n=`${e}${t.range}`),G.makeDescriptor(t,G.makeRange({protocol:r,source:o,params:a,selector:n}))}function q0e(t){switch(t){case"^":return"^";case"~":retur Line truncated
Try running the command again with the package name prefixed: ${pe.pretty(r,"yarn add",pe.Type.CODE)} ${pe.pretty(r,G.makeDescriptor(G.makeIdent(null,"my-package"),`${te[0]}...`),pe.Type.DESCRIPTOR)}`);if(!z)throw new st(`The ${pe.pretty(r,U,pe.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let ae=apt(a,z,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(ae.map(async ce=>{let Ce=await $1(z,{project:o,workspace:a,cache:n,fixed:u,target:ce,modifier:h,strategies:E,maxResults:I});return{request:z,suggestedDescriptors:Ce,target:ce}}))})).then(U=>U.flat()),x=await AA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async U=>{for(let{request:z,suggestedDescriptors:{suggestions:te,rejections:ae}}of v)if(te.filter(ce=>ce.descriptor!==null).length===0){let[ce]=ae;if(typeof ce>"u")throw new Error("Assertion failed: Expected an error to have been set");o.configuration.get("enableNetwork")?U.reportError(27,`${G.prettyDescriptor(r,z)} can't be resolved to a satisfying range`):U.reportError(27,`${G.prettyDescriptor(r,z)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),U.reportSeparator(),U.reportExceptionOnce(ce)}});if(x.hasErrors())return x.exitCode();let C=!1,R=[],L=[];for(let{suggestedDescriptors:{suggestions:U},target:z}of v){let te,ae=U.filter(de=>de.descriptor!==null),le=ae[0].descriptor,ce=ae.every(de=>G.areDescriptorsEqual(de.descriptor,le));ae.length===1||ce?te=le:(C=!0,{answer:te}=await(0,Y0e.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:U.map(({descriptor:de,name:Be,reason:Ee})=>de?{name:Be,hint:Ee,descriptor:de}:{name:Be,hint:Ee,disabled:!0}),onCancel:()=>process.exit(130),result(de){return this.find(de,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let Ce=a.manifest[z].get(te.identHash);(typeof Ce>"u"||Ce.descriptorHash!==te.descriptorHash)&&(a.manifest[z].set(te.identHash,te),this.optional&&(z==="dependencies"?a.manifest.ensureDependencyMeta({...te,range:"unknown"}).optional=!0:z==="peerDependencies"&&(a.manifest.ensurePeerDependencyMeta({...te,range:"unknown"}).optional=!0)),typeof Ce>"u"?R.push([a,z,te,E]):L.push([a,z,Ce,te]))}return await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyAddition,R),await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyReplacement,L),C&&this.context.stdout.write(`
`),await o.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:n,mode:this.mode})}};function apt(t,e,{dev:r,peer:o,preferDev:a,optional:n}){let u=t.manifest.dependencies.has(e.identHash),A=t.manifest.devDependencies.has(e.identHash),p=t.manifest.peerDependencies.has(e.identHash);if((r||o)&&u)throw new st(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!o&&p)throw new st(`Package "${G.prettyIdent(t.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(n&&A)throw new st(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!o&&p)throw new st(`Package "${G.prettyIdent(t.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((r||a)&&n)throw new st(`Package "${G.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let h=[];return o&&h.push("peerDependencies"),(r||a)&&h.push("devDependencies"),n&&h.push("dependencies"),h.length>0?h:A?["devDependencies"]:p?["peerDependencies"]:["dependencies"]}Ge();Ge();qt();var Wy=class extends ut{constructor(){super(...arguments);this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=ge.String({required:!1})}static{this.paths=[["bin"]]}static{this.usage=it.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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await kt.find(r,this.context.cwd);if(await o.restoreInstallState(),this.name){let A=(await An.getPackageAccessibleBinaries(a,{project:o})).get(this.name);if(!A)throw new st(`Couldn't find a binary named "${this.name}" for package "${G.prettyLocator(r,a)}"`);let[,p]=A;return this.context.stdout.write(`${p}
`),0}return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async u=>{let A=await An.getPackageAccessibleBinaries(a,{project:o}),h=Array.from(A.keys()).reduce((E,I)=>Math.max(E,I.length),0);for(let[E,[I,v]]of A)u.reportJson({name:E,source:G.stringifyIdent(I),path:v});if(this.verbose)for(let[E,[I]]of A)u.reportInfo(null,`${E.padEnd(h," ")} ${G.prettyLocator(r,I)}`);else for(let E of A.keys())u.reportInfo(null,E)})).exitCode()}};Ge();Pt();qt();var Ky=class extends ut{constructor(){super(...arguments);this.mirror=ge.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=ge.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}static{this.paths=[["cache","clean"],["cache","clear"]]}static{this.usage=it.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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await Gr.find(r);return(await Rt.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&o.mirrorCwd!==null,u=!this.mirror;n&&(await oe.removePromise(o.mirrorCwd),await r.triggerHook(A=>A.cleanGlobalArtifacts,r)),u&&await oe.removePromise(o.cwd)})).exitCode()}};Ge();qt();var K0e=Ze(e2()),C8=ve("util"),Vy=class extends ut{constructor(){super(...arguments);this.why=ge.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=ge.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=ge.String()}static{this.paths=[["config","get"]]}static{this.usage=it.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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*/,"");if(typeof r.settings.get(o)>"u")throw new st(`Couldn't find a configuration settings named "${o}"`);let u=r.getSpecial(o,{hideSecrets:!this.unsafe,getNativePaths:!0}),A=He.convertMapsToIndexableObjects(u),p=a?(0,K0e.default)(A,a):A,h=await Rt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async E=>{E.reportJson(p)});if(!this.json){if(typeof p=="string")return this.context.stdout.write(`${p}
`),h.exitCode();C8.inspect.styles.name="cyan",this.context.stdout.write(`${(0,C8.inspect)(p,{depth:1/0,colors:r.get("enableColors"),compact:!1})}
`)}return h.exitCode()}};Ge();qt();var Mge=Ze(v8()),Oge=Ze(e2()),Uge=Ze(D8()),P8=ve("util"),zy=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String();this.value=ge.String()}static{this.paths=[["config","set"]]}static{this.usage=it.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"`]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new st("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new st(`Couldn't find a configuration settings named "${a}"`);if(a==="enableStrictSettings")throw new st("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?C=>Ke.updateHomeConfiguration(C):C=>Ke.updateConfiguration(o(),C))(C=>{if(n){let R=(0,Mge.default)(C);return(0,Uge.default)(R,this.name,A),R}else return{...C,[a]:A}});let E=(await Ke.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),I=He.convertMapsToIndexableObjects(E),v=n?(0,Oge.default)(I,n):I;return(await Rt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async C=>{P8.inspect.styles.name="cyan",C.reportInfo(0,`Successfully set ${this.name} to ${(0,P8.inspect)(v,{depth:1/0,colors:r.get("enableColors"),compact:!1})}`)})).exitCode()}};Ge();qt();var Jge=Ze(v8()),Xge=Ze(jge()),Zge=Ze(S8()),Jy=class extends ut{constructor(){super(...arguments);this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String()}static{this.paths=[["config","unset"]]}static{this.usage=it.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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new st("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new st(`Couldn't find a configuration settings named "${a}"`);let A=this.home?h=>Ke.updateHomeConfiguration(h):h=>Ke.updateConfiguration(o(),h);return(await Rt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async h=>{let E=!1;await A(I=>{if(!(0,Xge.default)(I,this.name))return h.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),E=!0,I;let v=n?(0,Jge.default)(I):{...I};return(0,Zge.default)(v,this.name),v}),E||h.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};Ge();Pt();qt();var tk=ve("util"),Xy=class extends ut{constructor(){super(...arguments);this.noDefaults=ge.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.verbose=ge.Boolean("-v,--verbose",{hidden:!0});this.why=ge.Boolean("--why",{hidden:!0});this.names=ge.Rest()}static{this.paths=[["config"]]}static{this.usage=it.Usage({description:"display the current configuration",details:`
This command prints the current active configuration settings.
`,examples:[["Print the active configuration settings","$0 config"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins,{strict:!1}),o=await uy({configuration:r,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(o!==null)return o;let a=this.names.length>0?[...new Set(this.names)].sort():[...r.settings.keys()].sort(),n,u=await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async A=>{if(r.invalid.size>0&&!this.json){for(let[p,h]of r.invalid)A.reportError(34,`Invalid configuration key "${p}" in ${h}`);A.reportSeparator()}if(this.json)for(let p of a){let h=r.settings.get(p);typeof h>"u"&&A.reportError(34,`No configuration key named "${p}"`);let E=r.getSpecial(p,{hideSecrets:!0,getNativePaths:!0}),I=r.sources.get(p)??"<default>",v=I&&I[0]!=="<"?ue.fromPortablePath(I):I;A.reportJson({key:p,effective:E,source:v,...h})}else{let p={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},h={},E={children:h};for(let I of a){if(this.noDefaults&&!r.sources.has(I))continue;let v=r.settings.get(I),x=r.sources.get(I)??"<default>",C=r.getSpecial(I,{hideSecrets:!0,getNativePaths:!0}),R={Description:{label:"Description",value:pe.tuple(pe.Type.MARKDOWN,{text:v.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:pe.tuple(x[0]==="<"?pe.Type.CODE:pe.Type.PATH,x)}};h[I]={value:pe.tuple(pe.Type.CODE,I),children:R};let L=(U,z)=>{for(let[te,ae]of z)if(ae instanceof Map){let le={};U[te]={children:le},L(le,ae)}else U[te]={label:te,value:pe.tuple(pe.Type.NO_HINT,(0,tk.inspect)(ae,p))}};C instanceof Map?L(R,C):R.Value={label:"Value",value:pe.tuple(pe.Type.NO_HINT,(0,tk.inspect)(C,p))}}a.length!==1&&(n=void 0),fs.emitTree(E,{configuration:r,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof n<"u"){let A=a[0],p=(0,tk.inspect)(r.getSpecial(A,{hideSecrets:!0,getNativePaths:!0}),{colors:r.get("enableColors")});this.context.stdout.write(`
`),this.context.stdout.write(`${p}
`)}return u.exitCode()}};Ge();qt();el();var rk={};Vt(rk,{Strategy:()=>t2,acceptedStrategies:()=>j0t,dedupe:()=>x8});Ge();Ge();var $ge=Ze($o()),t2=(e=>(e.HIGHEST="highest",e))(t2||{}),j0t=new Set(Object.values(t2)),G0t={highest:async(t,e,{resolver:r,fetcher:o,resolveOptions:a,fetchOptions:n})=>{let u=new Map;for(let[p,h]of t.storedResolutions){let E=t.storedDescriptors.get(p);if(typeof E>"u")throw new Error(`Assertion failed: The descriptor (${p}) should have been registered`);He.getSetWithDefault(u,E.identHash).add(h)}let A=new Map(He.mapAndFilter(t.storedDescriptors.values(),p=>G.isVirtualDescriptor(p)?He.mapAndFilter.skip:[p.descriptorHash,He.makeDeferred()]));for(let p of t.storedDescriptors.values()){let h=A.get(p.descriptorHash);if(typeof h>"u")throw new Error(`Assertion failed: The descriptor (${p.descriptorHash}) should have been registered`);let E=t.storedResolutions.get(p.descriptorHash);if(typeof E>"u")throw new Error(`Assertion failed: The resolution (${p.descriptorHash}) should have been registered`);let I=t.originalPackages.get(E);if(typeof I>"u")throw new Error(`Assertion failed: The package (${E}) should have been registered`);Promise.resolve().then(async()=>{let v=r.getResolutionDependencies(p,a),x=Object.fromEntries(await He.allSettledSafe(Object.entries(v).map(async([te,ae])=>{let le=A.get(ae.descriptorHash);if(typeof le>"u")throw new Error(`Assertion failed: The descriptor (${ae.descriptorHash}) should have been registered`);let ce=await le.promise;if(!ce)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[te,ce.updatedPackage]})));if(e.length&&!$ge.default.isMatch(G.stringifyIdent(p),e)||!r.shouldPersistResolution(I,a))return I;let C=u.get(p.identHash);if(typeof C>"u")throw new Error(`Assertion failed: The resolutions (${p.identHash}) should have been registered`);if(C.size===1)return I;let R=[...C].map(te=>{let ae=t.originalPackages.get(te);if(typeof ae>"u")throw new Error(`Assertion failed: The package (${te}) should have been registered`);return ae}),L=await r.getSatisfying(p,x,R,a),U=L.locators?.[0];if(typeof U>"u"||!L.sorted)return I;let z=t.originalPackages.get(U.locatorHash);if(typeof z>"u")throw new Error(`Assertion failed: The package (${U.locatorHash}) should have been registered`);return z}).then(async v=>{let x=await t.preparePackage(v,{resolver:r,resolveOptions:a});h.resolve({descriptor:p,currentPackage:I,updatedPackage:v,resolvedPackage:x})}).catch(v=>{h.reject(v)})}return[...A.values()].map(p=>p.promise)}};async function x8(t,{strategy:e,patterns:r,cache:o,report:a}){let{configuration:n}=t,u=new ki,A=n.makeResolver(),p=n.makeFetcher(),h={cache:o,checksums:t.storedChecksums,fetcher:p,project:t,report:u,cacheOptions:{skipIntegrityCheck:!0}},E={project:t,resolver:A,report:u,fetchOptions:h};return await a.startTimerPromise("Deduplication step",async()=>{let I=G0t[e],v=await I(t,r,{resolver:A,resolveOptions:E,fetcher:p,fetchOptions:h}),x=Zs.progressViaCounter(v.length);await a.reportProgress(x);let C=0;await Promise.all(v.map(U=>U.then(z=>{if(z===null||z.currentPackage.locatorHash===z.updatedPackage.locatorHash)return;C++;let{descriptor:te,currentPackage:ae,updatedPackage:le}=z;a.reportInfo(0,`${G.prettyDescriptor(n,te)} can be deduped from ${G.prettyLocator(n,ae)} to ${G.prettyLocator(n,le)}`),a.reportJson({descriptor:G.stringifyDescriptor(te),currentResolution:G.stringifyLocator(ae),updatedResolution:G.stringifyLocator(le)}),t.storedResolutions.set(te.descriptorHash,le.locatorHash)}).finally(()=>x.tick())));let R;switch(C){case 0:R="No packages";break;case 1:R="One package";break;default:R=`${C} packages`}let L=pe.pretty(n,e,pe.Type.CODE);return a.reportInfo(0,`${R} can be deduped using the ${L} strategy`),C})}var Zy=class extends ut{constructor(){super(...arguments);this.strategy=ge.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Js(t2)});this.check=ge.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Js(hl)});this.patterns=ge.Rest()}static{this.paths=[["dedupe"]]}static{this.usage=it.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 dow Line truncated
`)}};var eE=class extends ut{static{this.paths=[["help"],["--help"],["-h"]]}async execute(){this.context.stdout.write(this.cli.usage(null))}};Ge();Pt();qt();var tE=class extends ut{constructor(){super(...arguments);this.leadingArgument=ge.String();this.args=ge.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!G.tryParseIdent(this.leadingArgument)){let r=V.resolve(this.context.cwd,ue.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:r})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};Ge();var rE=class extends ut{static{this.paths=[["-v"],["--version"]]}async execute(){this.context.stdout.write(`${nn||"<unknown>"}
`)}};Ge();Ge();qt();var nE=class extends ut{constructor(){super(...arguments);this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[["exec"]]}static{this.usage=it.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"']]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await kt.find(r,this.context.cwd);return await o.restoreInstallState(),await An.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:o})}};Ge();qt();el();var iE=class extends ut{constructor(){super(...arguments);this.hash=ge.String({required:!1,validator:YD(om(),[qw(/^p[0-9a-f]{5}$/)])})}static{this.paths=[["explain","peer-requirements"]]}static{this.usage=it.Usage({description:"explain a set of peer requirements",details:`
A peer requirement represents all peer requests that a subject must satisfy when providing a requested package to requesters.
When the hash argument is specified, this command prints a detailed explanation of the peer requirement corresponding to the hash and whether it is satisfied or not.
When used without arguments, this command lists all peer requirements and the corresponding hash that can be used to get detailed information about a given requirement.
**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 peer requirement for a hash","$0 explain peer-requirements p1a4ed"],["List all peer requirements","$0 explain peer-requirements"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd);return await o.restoreInstallState({restoreResolutions:!1}),await o.applyLightResolution(),typeof this.hash<"u"?await W0t(this.hash,o,{stdout:this.context.stdout}):await K0t(o,{stdout:this.context.stdout})}};async function W0t(t,e,r){let o=e.peerRequirementNodes.get(t);if(typeof o>"u")throw new Error(`No peerDependency requirements found for hash: "${t}"`);let a=new Set,n=p=>a.has(p.requester.locatorHash)?{value:pe.tuple(pe.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:p.children.size>0?[{value:pe.tuple(pe.Type.NO_HINT,"...")}]:[]}:(a.add(p.requester.locatorHash),{value:pe.tuple(pe.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:Object.fromEntries(Array.from(p.children.values(),h=>[G.stringifyLocator(h.requester),n(h)]))}),u=e.peerWarnings.find(p=>p.hash===t);return(await Rt.start({configuration:e.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async p=>{let h=pe.mark(e.configuration),E=u?h.Cross:h.Check;if(p.reportInfo(0,`Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} is requested to provide ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)} by its descendants`),p.reportSeparator(),p.reportInfo(0,pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)),fs.emitTree({children:Object.fromEntries(Array.from(o.requests.values(),I=>[G.stringifyLocator(I.requester),n(I)]))},{configuration:e.configuration,stdout:r.stdout,json:!1}),p.reportSeparator(),o.provided.range==="missing:"){let I=u?"":" , but all peer requests are optional";p.reportInfo(0,`${E} Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} does not provide ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)}${I}.`)}else{let I=e.storedResolutions.get(o.provided.descriptorHash);if(!I)throw new Error("Assertion failed: Expected the descriptor to be registered");let v=e.storedPackages.get(I);if(!v)throw new Error("Assertion failed: Expected the package to be registered");p.reportInfo(0,`${E} Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} provides ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)} with version ${G.prettyReference(e.configuration,v.version??"0.0.0")}, ${u?"which does not satisfy all requests.":"which satisfies all requests"}`),u?.type===3&&(u.range?p.reportInfo(0,` The combined requested range is ${pe.pretty(e.configuration,u.range,pe.Type.RANGE)}`):p.reportInfo(0," Unfortunately, the requested ranges have no overlap"))}})).exitCode()}async function K0t(t,e){return(await Rt.start({configuration:t.configuration,stdout:e.stdout,includeFooter:!1,includePrefix:!1},async o=>{let a=pe.mark(t.configuration),n=He.sortMap(t.peerRequirementNodes,[([,u])=>G.stringifyLocator(u.subject),([,u])=>G.stringifyIdent(u.ident)]);for(let[,u]of n.values()){if(!u.root)continue;let A=t.peerWarnings.find(E=>E.hash===u.hash),p=[...G.allPeerRequests(u)],h;if(p.length>2?h=` and ${p.length-1} other dependencies`:p.length===2?h=" and 1 other dependency":h="",u.provided.range!=="missing:"){let E=t.storedResolutions.get(u.provided.descriptorHash);if(!E)throw new Error("Assertion failed: Expected the resolution to have been registered");let I=t.storedPackages.get(E);if(!I)throw new Error("Assertion failed: Expected the provided package to have been registered");let v=`${pe.pretty(t.configuration,u.hash,pe.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${G.prettyLocator(t.configuration,u.subject)} provides ${G.prettyLocator(t.configuration,I)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;A?o.reportWarning(0,v):o.reportInfo(0,v)}else{let E=`${pe.pretty(t.configuration,u.hash,pe.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${G.prettyLocator(t.configuration,u.subject)} doesn't provide ${G.prettyIdent(t.configuration,u.ident)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;A?o.reportWarning(0,E):o.reportInfo(0,E)}}})).exitCode()}Ge();qt();el();Ge();Ge();Pt();qt();var tde=Ze(Jn()),sE=class extends ut{constructor(){super(...arguments);this.useYarnPath=ge.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"});this.onlyIfNeeded=ge.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=ge.String()}static{this.paths=[["set","version"]]}static{this.usage=it.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set th Line truncated
${e}`)})}let A=t.projectCwd??t.startingCwd,p=V.resolve(A,".yarn/releases"),h=V.resolve(p,`yarn-${e}.cjs`),E=V.relative(t.startingCwd,h),I=He.isTaggedYarnVersion(e),v=t.get("yarnPath"),x=!I,C=x||!!v||!!a;if(a===!1){if(x)throw new Jt(0,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");C=!1}else!C&&!process.env.COREPACK_ROOT&&(o.reportWarning(0,`You don't seem to have ${pe.applyHyperlink(t,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${pe.applyHyperlink(t,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),C=!0);if(C){let te=await u();o.reportInfo(0,`Saving the new release in ${pe.pretty(t,E,"magenta")}`),await oe.removePromise(V.dirname(h)),await oe.mkdirPromise(V.dirname(h),{recursive:!0}),await oe.writeFilePromise(h,te,{mode:493}),await Ke.updateConfiguration(A,{yarnPath:V.relative(A,h)})}else await oe.removePromise(V.dirname(h)),await Ke.updateConfiguration(A,{yarnPath:Ke.deleteProperty});let R=await Ut.tryFind(A)||new Ut;R.packageManager=`yarn@${I?e:await r2(t,"stable")}`;let L={};R.exportTo(L);let U=V.join(A,Ut.fileName),z=`${JSON.stringify(L,null,R.indent)}
`;return await oe.changeFilePromise(U,z,{automaticNewlines:!0}),{bundleVersion:e}}function rde(t){return wr[ZD(t)]}var z0t=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function J0t(t){let r=`https://repo.yarnpkg.com/${He.isTaggedYarnVersion(nn)?nn:await r2(t,"canary")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,o=await sn.get(r,{configuration:t});return new Map(Array.from(o.toString().matchAll(z0t),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let n=rde(a.code);if(a.name!==n)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${n}"`);return[a.code,a.details]}))}var oE=class extends ut{constructor(){super(...arguments);this.code=ge.String({required:!1,validator:jw(om(),[qw(/^YN[0-9]{4}$/)])});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["explain"]]}static{this.usage=it.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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let o=rde(this.code),a=pe.pretty(r,o,pe.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),A=(await J0t(r)).get(this.code),p=typeof A<"u"?pe.jsonOrPretty(this.json,r,pe.tuple(pe.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}:
${pe.jsonOrPretty(this.json,r,pe.tuple(pe.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx"))}
`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:o,details:p})}
`):this.context.stdout.write(`${n}
${p}
`)}else{let o={children:He.mapAndFilter(Object.entries(wr),([a,n])=>Number.isNaN(Number(a))?He.mapAndFilter.skip:{label:Ku(Number(a)),value:pe.tuple(pe.Type.CODE,n)})};fs.emitTree(o,{configuration:r,stdout:this.context.stdout,json:this.json})}}};Ge();Pt();qt();var nde=Ze($o()),aE=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=ge.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=ge.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=ge.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=ge.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=ge.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=ge.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ge.Rest()}static{this.paths=[["info"]]}static{this.usage=it.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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a&&!this.all)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let u=new Set(this.extra);this.cache&&u.add("cache"),this.dependents&&u.add("dependents"),this.manifest&&u.add("manifest");let A=(ae,{recursive:le})=>{let ce=ae.anchoredLocator.locatorHash,Ce=new Map,de=[ce];for(;de.length>0;){let Be=de.shift();if(Ce.has(Be))continue;let Ee=o.storedPackages.get(Be);if(typeof Ee>"u")throw new Error("Assertion failed: Expected the package to be registered");if(Ce.set(Be,Ee),G.isVirtualLocator(Ee)&&de.push(G.devirtualizeLocator(Ee).locatorHash),!(!le&&Be!==ce))for(let g of Ee.dependencies.values()){let me=o.storedResolutions.get(g.descriptorHash);if(typeof me>"u")throw new Error("Assertion failed: Expected the resolution to be registered");de.push(me)}}return Ce.values()},p=({recursive:ae})=>{let le=new Map;for(let ce of o.workspaces)for(let Ce of A(ce,{recursive:ae}))le.set(Ce.locatorHash,Ce);return le.values()},h=({all:ae,recursive:le})=>ae&&le?o.storedPackages.values():ae?p({recursive:le}):A(a,{recursive:le}),E=({all:ae,recursive:le})=>{let ce=h({all:ae,recursive:le}),Ce=this.patterns.map(Ee=>{let g=G.parseLocator(Ee),me=nde.default.makeRe(G.stringifyIdent(g)),we=G.isVirtualLocator(g),Ae=we?G.devirtualizeLocator(g):g;return ne=>{let Z=G.stringifyIdent(ne);if(!me.test(Z))return!1;if(g.reference==="unknown")return!0;let xe=G.isVirtualLocator(ne),Ne=xe?G.devirtualizeLocator(ne):ne;return!(we&&xe&&g.reference!==ne.reference||Ae.reference!==Ne.reference)}}),de=He.sortMap([...ce],Ee=>G.stringifyLocator(Ee));return{selection:de.filter(Ee=>Ce.length===0||Ce.some(g=>g(Ee))),sortedLookup:de}},{selection:I,sortedLookup:v}=E({all:this.all,recursive:this.recursive});if(I.length===0)throw new st("No package matched your request");let x=new Map;if(this.dependents)for(let ae of v)for(let le of ae.dependencies.values()){let ce=o.storedResolutions.get(le.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: Expected the resolution to be registered");He.getArrayWithDefault(x,ce).push(ae)}let C=new Map;for(let ae of v){if(!G.isVirtualLocator(ae))continue;let le=G.devirtualizeLocator(ae);He.getArrayWithDefault(C,le.locatorHash).push(ae)}let R={},L={children:R},U=r.makeFetcher(),z={project:o,fetcher:U,cache:n,checksums:o.storedChecksum Line truncated
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"]]})}async execute(){return this.cli.run(["exec","node",...this.args])}};Ge();qt();var AE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","check"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:`
Check only the plugins from https.
If this command detects any plugin differences in the CI environment, it will throw an error.
`,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await Ke.findRcFiles(this.context.cwd);return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{for(let u of o)if(u.data?.plugins)for(let A of u.data.plugins){if(!A.checksum||!A.spec.match(/^https?:/))continue;let p=await sn.get(A.spec,{configuration:r}),h=wn.makeHash(p);if(A.checksum===h)continue;let E=pe.pretty(r,A.path,pe.Type.PATH),I=pe.pretty(r,A.spec,pe.Type.URL),v=`${E} is different from the file provided by ${I}`;n.reportJson({...A,newChecksum:h}),n.reportError(0,v)}})).exitCode()}};Ge();Ge();Pt();qt();var lde=ve("os");Ge();Pt();qt();var ide=ve("os");Ge();Nl();qt();var tgt="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Hg(t,e){let r=await sn.get(tgt,{configuration:t}),o=Ki(r.toString());return Object.fromEntries(Object.entries(o).filter(([a,n])=>!e||Lr.satisfiesWithPrereleases(e,n.range??"<4.0.0-rc.1")))}var fE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","list"]]}static{this.usage=it.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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await Hg(r,nn);for(let[u,{experimental:A,...p}]of Object.entries(n)){let h=u;A&&(h+=" [experimental]"),a.reportJson({name:u,experimental:A,...p}),a.reportInfo(null,h)}})).exitCode()}};var rgt=/^[0-9]+$/,ngt=process.platform==="win32";function sde(t){return rgt.test(t)?`pull/${t}/head`:t}var igt=({repository:t,branch:e},r)=>[["git","init",ue.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",sde(e)],["git","reset","--hard","FETCH_HEAD"]],sgt=({branch:t})=>[["git","fetch","origin","--depth=1",sde(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],ogt=({plugins:t,noMinify:e},r,o)=>[["yarn","build:cli",...new Array().concat(...t.map(a=>["--plugin",V.resolve(o,a)])),...e?["--no-minify"]:[],"|"],[ngt?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",ue.fromPortablePath(r),"|"]],pE=class extends ut{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=ge.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=ge.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}static{this.paths=[["set","version","from","sources"]]}static{this.usage=it.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 execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd),a=typeof this.installPath<"u"?V.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):V.resolve(ue.toPortablePath((0,ide.tmpdir)()),"yarnpkg-sources",wn.makeHash(this.repository).slice(0,6));return(await Rt.start({configuration:r,stdout:this.context.stdout},async u=>{await F8(this,{configuration:r,report:u,target:a}),u.reportSeparator(),u.reportInfo(0,"Building a fresh bundle"),u.reportSeparator();let A=await Ur.execvp("git",["rev-parse","--short","HEAD"],{cwd:a,strict:!0}),p=V.join(a,`packages/yarnpkg-cli/bundles/yarn-${A.stdout.trim()}.js`);oe.existsSync(p)||(await n2(ogt(this,p,a),{configuration:r,context:this.context,target:a}),u.reportSeparator());let h=await oe.readFilePromise(p);if(!this.dryRun){let{bundleVersion:E}=await k8(r,null,async()=>h,{report:u});this.skipPlugins||await agt(this,E,{project:o,report:u,target:a})}})).exitCode()}};async function n2(t,{configuration:e,context:r,target:o}){for(let[a,...n]of t){let u=n[n.length-1]==="|";if(u&&n.pop(),u)await Ur.pipevp(a,n,{cwd:o,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${pe.pretty(e,` $ ${[a,...n].join(" ")}`,"grey")}
`);try{await Ur.execvp(a,n,{cwd:o,strict:!0})}catch(A){throw r.stdout.write(A.stdout||A.stack),A}}}}async function F8(t,{configuration:e,report:r,target:o}){let a=!1;if(!t.force&&oe.existsSync(V.join(o,".git"))){r.reportInfo(0,"Fetching the latest commits"),r.reportSeparator();try{await n2(sgt(t),{configuration:e,context:t.context,target:o}),a=!0}catch{r.reportSeparator(),r.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(0,"Cloning the remote repository"),r.reportSeparator(),await oe.removePromise(o),await oe.mkdirPromise(o,{recursive:!0}),await n2(igt(t,o),{configuration:e,context:t.context,target:o}))}async function agt(t,e,{project:r,report:o,target:a}){let n=await Hg(r.configuration,e),u=new Set(Object.keys(n));for(let A of r.configuration.plugins.keys())u.has(A)&&await R8(A,t,{project:r,report:o,target:a})}Ge();Ge();Pt();qt();var ode=Ze(Jn()),ade=ve("vm");var hE=class extends ut{constructor(){super(...arguments);this.name=ge.String();this.checksum=ge.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}static{this.paths=[["plugin","import"]]}static{this.usage=it.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:
- If the plugin is stored within the Yarn repository, it can be referenced by name.
- Third-party plugins can be referenced directly through their public urls.
- Local plugins can be referenced by their path on the disk.
If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified.
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 execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Rt.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await kt.find(r,this.context.cwd),u,A;if(this.name.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.name)){let p=V.resolve(this.context.cwd,ue.toPortablePath(this.name));a.reportInfo(0,`Reading ${pe.pretty(r,p,pe.Type.PATH)}`),u=V.relative(n.cwd,p),A=await oe.readFilePromise(p)}else{let p;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new Jt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}u=this.name,p=this.name}else{let h=G.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(h.reference!=="unknown"&&!ode.default.valid(h.reference))throw new Jt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let E=G.stringifyIdent(h),I=await Hg(r,nn);if(!Object.hasOwn(I,E)){let v=`Couldn't find a plugin named ${G.prettyIdent(r,h)} on the remote registry.
`;throw r.plugins.has(E)?v+=`A plugin named ${G.prettyIdent(r,h)} is already installed; possibly attempting to import a built-in plugin.`:v+=`Note that only the plugins referenced on our website (${pe.pretty(r,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",pe.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${pe.pretty(r,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",pe.Type.URL)}).`,new Jt(51,v)}u=E,p=I[E].url,h.reference!=="unknown"?p=p.replace(/\/master\//,`/${E}/${h.reference}/`):nn!==null&&(p=p.replace(/\/master\//,`/@yarnpkg/cli/${nn}/`))}a.reportInfo(0,`Downloading ${pe.pretty(r,p,"green")}`),A=await sn.get(p,{configuration:r})}await T8(u,A,{checksum:this.checksum,project:n,report:a})})).exitCode()}};async function T8(t,e,{checksum:r=!0,project:o,report:a}){let{configuration:n}=o,u={},A={exports:u};(0,ade.runInNewContext)(e.toString(),{module:A,exports:u});let h=`.yarn/plugins/${A.exports.name}.cjs`,E=V.resolve(o.cwd,h);a.reportInfo(0,`Saving the new plugin in ${pe.pretty(n,h,"magenta")}`),await oe.mkdirPromise(V.dirname(E),{recursive:!0}),await oe.writeFilePromise(E,e);let I={path:h,spec:t};r&&(I.checksum=wn.makeHash(e)),await Ke.addPlugin(o.cwd,[I])}var lgt=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],gE=class extends ut{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=ge.String()}static{this.paths=[["plugin","import","from","sources"]]}static{this.usage=it.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 execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=typeof this.installPath<"u"?V.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):V.resolve(ue.toPortablePath((0,lde.tmpdir)()),"yarnpkg-sources",wn.makeHash(this.repository).slice(0,6));return(await Rt.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:u}=await kt.find(r,this.context.cwd),A=G.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),p=G.stringifyIdent(A),h=await Hg(r,nn);if(!Object.hasOwn(h,p))throw new Jt(51,`Couldn't find a plugin named "${p}" 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 E=p;await F8(this,{configuration:r,report:n,target:o}),await R8(E,this,{project:u,report:n,target:o})})).exitCode()}};async function R8(t,{context:e,noMinify:r},{project:o,report:a,target:n}){let u=t.replace(/@yarnpkg\//,""),{configuration:A}=o;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${u}`),a.reportSeparator(),await n2(lgt({pluginName:u,noMinify:r},n),{configuration:A,context:e,target:n}),a.reportSeparator();let p=V.resolve(n,`packages/${u}/bundles/${t}.js`),h=await oe.readFilePromise(p);await T8(t,h,{project:o,report:a})}Ge();Pt();qt();var dE=class extends ut{constructor(){super(...arguments);this.name=ge.String()}static{this.paths=[["plugin","remove"]]}static{this.usage=it.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.
`,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd);return(await Rt.start({configuration:r,stdout:this.context.stdout},async n=>{let u=this.name,A=G.parseIdent(u);if(!r.plugins.has(u))throw new st(`${G.prettyIdent(r,A)} isn't referenced by the current configuration`);let p=`.yarn/plugins/${u}.cjs`,h=V.resolve(o.cwd,p);oe.existsSync(h)&&(n.reportInfo(0,`Removing ${pe.pretty(r,p,pe.Type.PATH)}...`),await oe.removePromise(h)),n.reportInfo(0,"Updating the configuration..."),await Ke.updateConfiguration(o.cwd,{plugins:E=>{if(!Array.isArray(E))return E;let I=E.filter(v=>v.path!==p);return I.length===0?Ke.deleteProperty:I.length===E.length?E:I}})})).exitCode()}};Ge();qt();var mE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","runtime"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"list the active plugins",details:`
This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins.
`,examples:[["List the currently active plugins","$0 plugin runtime"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let u=this.context.plugins.plugins.has(n),A=n;u&&(A+=" [builtin]"),a.reportJson({name:n,builtin:u}),a.reportInfo(null,`${A}`)}})).exitCode()}};Ge();Ge();qt();var yE=class extends ut{constructor(){super(...arguments);this.idents=ge.Rest()}static{this.paths=[["rebuild"]]}static{this.usage=it.Usage({description:"rebuild the project's native packages",details:`
This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again.
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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);let u=new Set;for(let A of this.idents)u.add(G.parseIdent(A).identHash);if(await o.restoreInstallState({restoreResolutions:!1}),await o.resolveEverything({cache:n,report:new ki}),u.size>0)for(let A of o.storedPackages.values())u.has(A.identHash)&&(o.storedBuildState.delete(A.locatorHash),o.skippedBuilds.delete(A.locatorHash));else o.storedBuildState.clear(),o.skippedBuilds.clear();return await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ge();Ge();Ge();qt();var N8=Ze($o());el();var EE=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Js(hl)});this.patterns=ge.Rest()}static{this.paths=[["remove"]]}static{this.usage=it.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=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are:
- \`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.
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}'"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.all?o.workspaces:[a],A=["dependencies","devDependencies","peerDependencies"],p=[],h=!1,E=[];for(let C of this.patterns){let R=!1,L=G.parseIdent(C);for(let U of u){let z=[...U.manifest.peerDependenciesMeta.keys()];for(let te of(0,N8.default)(z,C))U.manifest.peerDependenciesMeta.delete(te),h=!0,R=!0;for(let te of A){let ae=U.manifest.getForScope(te),le=[...ae.values()].map(ce=>G.stringifyIdent(ce));for(let ce of(0,N8.default)(le,G.stringifyIdent(L))){let{identHash:Ce}=G.parseIdent(ce),de=ae.get(Ce);if(typeof de>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");U.manifest[te].delete(Ce),E.push([U,te,de]),h=!0,R=!0}}}R||p.push(C)}let I=p.length>1?"Patterns":"Pattern",v=p.length>1?"don't":"doesn't",x=this.all?"any":"this";if(p.length>0)throw new st(`${I} ${pe.prettyList(r,p,pe.Type.CODE)} ${v} match any packages referenced by ${x} workspace`);return h?(await r.triggerMultipleHooks(C=>C.afterWorkspaceDependencyRemoval,E),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})):0}};Ge();Ge();qt();var cde=ve("util"),CE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["run"]]}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);return(await Rt.start({configuration:r,stdout:this.context.stdout,json:this.json},async u=>{let A=a.manifest.scripts,p=He.sortMap(A.keys(),I=>I),h={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},E=p.reduce((I,v)=>Math.max(I,v.length),0);for(let[I,v]of A.entries())u.reportInfo(null,`${I.padEnd(E," ")} ${(0,cde.inspect)(v,h)}`),u.reportJson({name:I,script:v})})).exitCode()}};Ge();Ge();qt();var wE=class extends ut{constructor(){super(...arguments);this.inspect=ge.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=ge.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=ge.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=ge.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=ge.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=ge.Boolean("--silent",{hidden:!0});this.scriptName=ge.String();this.args=ge.Proxy()}static{this.paths=[["run"]]}static{this.usage=it.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.
- Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed.
- 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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a,locator:n}=await kt.find(r,this.context.cwd);await o.restoreInstallState();let u=this.topLevel?o.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await An.hasPackageScript(u,this.scriptName,{project:o}))return await An.executePackageScript(u,this.scriptName,this.args,{project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let A=await An.getPackageAccessibleBinaries(u,{project:o});if(A.get(this.scriptName)){let h=[];return this.inspect&&(typeof this.inspect=="string"?h.push(`--inspect=${this.inspect}`):h.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?h.push(`--inspect-brk=${this.inspectBrk}`):h.push("--inspect-brk")),this.require&&h.push(`--require=${this.require}`),await An.executePackageAccessibleBinary(u,this.scriptName,this.args,{cwd:this.context.cwd,project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:h,packageAccessibleBinaries:A})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(":")){let E=(await Promise.all(o.workspaces.map(async I=>I.manifest.scripts.has(this.scriptName)?I:null))).filter(I=>I!==null);if(E.length===1)return await An.executeWorkspaceScript(E[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 st(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}). 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 st(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}).`);{if(this.scriptName==="global")throw new st("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let h=[this.scriptName].concat(this.args);for(let[E,I]of Uy)for(let v of I)if(h.length>=v.length&&JSON.stringify(h.slice(0,v.length))===JSON.stringify(v))throw new st(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${E} plugin. You can install it with "yarn plugin import ${E}".`);throw new st(`Couldn't find a script named "${this.scriptName}".`)}}};Ge();Ge();qt();var IE=class extends ut{constructor(){super(...arguments);this.descriptor=ge.String();this.resolution=ge.String()}static{this.paths=[["set","resolution"]]}static{this.usage=it.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, edit the `resolutions` field in 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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(await o.restoreInstallState({restoreResolutions:!1}),!a)throw new sr(o.cwd,this.context.cwd);let u=G.parseDescriptor(this.descriptor,!0),A=G.makeDescriptor(u,this.resolution);return o.storedDescriptors.set(u.descriptorHash,u),o.storedDescriptors.set(A.descriptorHash,A),o.resolutionAliases.set(u.descriptorHash,A.descriptorHash),await o.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Ge();Pt();qt();var ude=Ze($o()),BE=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=ge.Rest()}static{this.paths=[["unlink"]]}static{this.usage=it.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}'"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);let u=o.topLevelWorkspace,A=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:p,reference:h}of u.manifest.resolutions)h.startsWith("portal:")&&A.add(p.descriptor.fullName);if(this.leadingArguments.length>0)for(let p of this.leadingArguments){let h=V.resolve(this.context.cwd,ue.toPortablePath(p));if(He.isPathLike(p)){let E=await Ke.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:I,workspace:v}=await kt.find(E,h);if(!v)throw new sr(I.cwd,h);if(this.all){for(let x of I.workspaces)x.manifest.name&&A.add(G.stringifyIdent(x.anchoredLocator));if(A.size===0)throw new st("No workspace found to be unlinked in the target project")}else{if(!v.manifest.name)throw new st("The target workspace doesn't have a name and thus cannot be unlinked");A.add(G.stringifyIdent(v.anchoredLocator))}}else{let E=[...u.manifest.resolutions.map(({pattern:I})=>I.descriptor.fullName)];for(let I of(0,ude.default)(E,p))A.add(I)}}return u.manifest.resolutions=u.manifest.resolutions.filter(({pattern:p})=>!A.has(p.descriptor.fullName)),await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ge();Ge();Ge();qt();var Ade=Ze(J1()),L8=Ze($o());el();var vE=class extends ut{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.fixed=ge.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ge.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ge.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ge.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Js(hl)});this.patterns=ge.Rest()}static{this.paths=[["up"]]}static{this.usage=it.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=<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`Line truncated
${ce}`):L.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range (note: network resolution has been disabled)
${ce}`)}else ae.length>1&&!A&&L.reportError(27,`${G.prettyDescriptor(r,U)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(x.hasErrors())return x.exitCode();let C=!1,R=[];for(let[L,U,,{suggestions:z}]of v){let te,ae=z.filter(de=>de.descriptor!==null),le=ae[0].descriptor,ce=ae.every(de=>G.areDescriptorsEqual(de.descriptor,le));ae.length===1||ce?te=le:(C=!0,{answer:te}=await(0,Ade.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${G.prettyWorkspace(r,L)} \u276F ${U}?`,choices:z.map(({descriptor:de,name:Be,reason:Ee})=>de?{name:Be,hint:Ee,descriptor:de}:{name:Be,hint:Ee,disabled:!0}),onCancel:()=>process.exit(130),result(de){return this.find(de,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let Ce=L.manifest[U].get(te.identHash);if(typeof Ce>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(Ce.descriptorHash!==te.descriptorHash)L.manifest[U].set(te.identHash,te),R.push([L,U,Ce,te]);else{let de=r.makeResolver(),Be={project:o,resolver:de},Ee=r.normalizeDependency(Ce),g=de.bindDescriptor(Ee,L.anchoredLocator,Be);o.forgetResolution(g)}}return await r.triggerMultipleHooks(L=>L.afterWorkspaceDependencyReplacement,R),C&&this.context.stdout.write(`
`),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}};Ge();Ge();Ge();qt();var DE=class extends ut{constructor(){super(...arguments);this.recursive=ge.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=ge.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=ge.String()}static{this.paths=[["why"]]}static{this.usage=it.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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=G.parseIdent(this.package).identHash,u=this.recursive?ugt(o,n,{configuration:r,peers:this.peers}):cgt(o,n,{configuration:r,peers:this.peers});fs.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};function cgt(t,e,{configuration:r,peers:o}){let a=He.sortMap(t.storedPackages.values(),A=>G.stringifyLocator(A)),n={},u={children:n};for(let A of a){let p={};for(let E of A.dependencies.values()){if(!o&&A.peerDependencies.has(E.identHash))continue;let I=t.storedResolutions.get(E.descriptorHash);if(!I)throw new Error("Assertion failed: The resolution should have been registered");let v=t.storedPackages.get(I);if(!v)throw new Error("Assertion failed: The package should have been registered");if(v.identHash!==e)continue;{let C=G.stringifyLocator(A);n[C]={value:[A,pe.Type.LOCATOR],children:p}}let x=G.stringifyLocator(v);p[x]={value:[{descriptor:E,locator:v},pe.Type.DEPENDENT]}}}return u}function ugt(t,e,{configuration:r,peers:o}){let a=He.sortMap(t.workspaces,v=>G.stringifyLocator(v.anchoredLocator)),n=new Set,u=new Set,A=v=>{if(n.has(v.locatorHash))return u.has(v.locatorHash);if(n.add(v.locatorHash),v.identHash===e)return u.add(v.locatorHash),!0;let x=!1;v.identHash===e&&(x=!0);for(let C of v.dependencies.values()){if(!o&&v.peerDependencies.has(C.identHash))continue;let R=t.storedResolutions.get(C.descriptorHash);if(!R)throw new Error("Assertion failed: The resolution should have been registered");let L=t.storedPackages.get(R);if(!L)throw new Error("Assertion failed: The package should have been registered");A(L)&&(x=!0)}return x&&u.add(v.locatorHash),x};for(let v of a)A(v.anchoredPackage);let p=new Set,h={},E={children:h},I=(v,x,C)=>{if(!u.has(v.locatorHash))return;let R=C!==null?pe.tuple(pe.Type.DEPENDENT,{locator:v,descriptor:C}):pe.tuple(pe.Type.LOCATOR,v),L={},U={value:R,children:L},z=G.stringifyLocator(v);if(x[z]=U,!(C!==null&&t.tryWorkspaceByLocator(v))&&!p.has(v.locatorHash)){p.add(v.locatorHash);for(let te of v.dependencies.values()){if(!o&&v.peerDependencies.has(te.identHash))continue;let ae=t.storedResolutions.get(te.descriptorHash);if(!ae)throw new Error("Assertion failed: The resolution should have been registered");let le=t.storedPackages.get(ae);if(!le)throw new Error("Assertion failed: The package should have been registered");I(le,L,te)}}};for(let v of a)I(v.anchoredPackage,h,null);return E}Ge();var W8={};Vt(W8,{GitFetcher:()=>s2,GitResolver:()=>o2,default:()=>Qgt,gitUtils:()=>ia});Ge();Pt();var ia={};Vt(ia,{TreeishProtocols:()=>i2,clone:()=>Y8,fetchBase:()=>Rde,fetchChangedFiles:()=>Tde,fetchChangedWorkspaces:()=>xgt,fetchRoot:()=>Fde,isGitUrl:()=>SE,lsRemote:()=>Qde,normalizeLocator:()=>Sgt,normalizeRepoUrl:()=>PE,resolveUrl:()=>G8,splitRepoUrl:()=>Sh,validateRepoUrl:()=>j8});Ge();Pt();qt();var Sde=Ze(Dde()),xde=Ze(uU()),bE=Ze(ve("querystring")),H8=Ze(Jn());function _8(t,e,r){let o=t.indexOf(r);return t.lastIndexOf(e,o>-1?o:1/0)}function Pde(t){try{return new URL(t)}catch{return}}function Pgt(t){let e=_8(t,"@","#"),r=_8(t,":","#");return r>e&&(t=`${t.slice(0,r)}/${t.slice(r+1)}`),_8(t,":","#")===-1&&t.indexOf("//")===-1&&(t=`ssh://${t}`),t}function bde(t){return Pde(t)||Pde(Pgt(t))}function PE(t,{git:e=!1}={}){if(t=t.replace(/^git\+https:/,"https:"),t=t.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"),t=t.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 r=bde(t);r&&(t=r.href),t=t.replace(/^git\+([^:]+):/,"$1:")}return t}function kde(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var bgt=[/^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\/(.+)?$/],i2=(a=>(a.Commit="commit",a.Head="head",a.Tag="tag",a.Semver="semver",a))(i2||{});function SE(t){return t?bgt.some(e=>!!t.match(e)):!1}function Sh(t){t=PE(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:"head",request:"HEAD"},extra:{}};let r=t.slice(0,e),o=t.slice(e+1);if(o.match(/^[a-z]+=/)){let a=bE.default.parse(o);for(let[p,h]of Object.entries(a))if(typeof h!="string")throw new Error(`Assertion failed: The ${p} parameter must be a literal string`);let n=Object.values(i2).find(p=>Object.hasOwn(a,p)),[u,A]= Line truncated
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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);let n=o.workspaces,u=new Map(n.map(p=>[G.stringifyIdent(p.anchoredLocator),p])),A=u.get(this.workspaceName);if(A===void 0){let p=Array.from(u.keys()).sort();throw new st(`Workspace '${this.workspaceName}' not found. Did you mean any of the following:
- ${p.join(`
- `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:A.cwd})}};var Fgt={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:Nde.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[Ky,Vy,zy,Jy,IE,pE,sE,xE,$y,eE,tE,rE,Yy,Wy,Xy,Zy,nE,iE,oE,aE,lE,cE,BE,uE,AE,gE,hE,dE,fE,mE,yE,EE,CE,wE,vE,DE,kE]},Rgt=Fgt;var Z8={};Vt(Z8,{default:()=>Ngt});Ge();var xt={optional:!0},V8=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/[email protected] || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:xt,zenObservable:xt}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:xt,zenObservable:xt}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{"supports-color":xt}}],["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":xt,"postcss-jsx":xt,"postcss-less":xt,"postcss-markdown":xt,"postcss-scss":xt}}],["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:xt}}],["snowpack@>=3.3.0",{dependencies:{"node-gyp":"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:xt}}],["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:xt,"vue-template-compiler":xt}}],["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:xt,"utf-8-validate":xt}}],["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":xt,"vuetify-loader":xt}}],["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":xt}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{deLine truncated
This command will output all matches to the given prolog query.
`,examples:[["List all dependencies throughout the workspace","yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(f2(),A2)),o=await Ke.find(this.context.cwd,this.context.plugins),{project:a}=await kt.find(o,this.context.cwd),n=await r.find(a),u=this.query;return u.endsWith(".")||(u=`${u}.`),(await Rt.start({configuration:o,json:this.json,stdout:this.context.stdout},async p=>{for await(let h of n.query(u)){let E=Array.from(Object.entries(h)),I=E.length,v=E.reduce((x,[C])=>Math.max(x,C.length),0);for(let x=0;x<I;x++){let[C,R]=E[x];p.reportInfo(null,`${odt(x,I)}${C.padEnd(v," ")} = ${sdt(R)}`)}p.reportJson(h)}})).exitCode()}};function sdt(t){return typeof t!="string"?`${t}`:t.match(/^[a-zA-Z][a-zA-Z0-9_]+$/)?t:`'${t}'`}function odt(t,e){let r=t===0,o=t===e-1;return r&&o?"":r?"\u250C ":o?"\u2514 ":"\u2502 "}Ge();qt();var ME=class extends ut{constructor(){super(...arguments);this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Also print the fact database automatically compiled from the workspace manifests"})}static{this.paths=[["constraints","source"]]}static{this.usage=it.Usage({category:"Constraints-related commands",description:"print the source code for the constraints",details:"\n This command will print the Prolog source code used by the constraints engine. Adding the `-v,--verbose` flag will print the *full* source code, including the fact database automatically compiled from the workspace manifests.\n ",examples:[["Prints the source code","yarn constraints source"],["Print the source code and the fact database","yarn constraints source -v"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(f2(),A2)),o=await Ke.find(this.context.cwd,this.context.plugins),{project:a}=await kt.find(o,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};Ge();Ge();qt();l2();var OE=class extends ut{constructor(){super(...arguments);this.fix=ge.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["constraints"]]}static{this.usage=it.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:`
This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code.
If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution.
For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints.
`,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd);await o.restoreInstallState();let a=await o.loadUserConfig(),n;if(a?.constraints)n=new FE(o);else{let{Constraints:h}=await Promise.resolve().then(()=>(f2(),A2));n=await h.find(o)}let u,A=!1,p=!1;for(let h=this.fix?10:1;h>0;--h){let E=await n.process();if(!E)break;let{changedWorkspaces:I,remainingErrors:v}=ik(o,E,{fix:this.fix}),x=[];for(let[C,R]of I){let L=C.manifest.indent;C.manifest=new Ut,C.manifest.indent=L,C.manifest.load(R),x.push(C.persistManifest())}if(await Promise.all(x),!(I.size>0&&h>1)){u=Wde(v,{configuration:r}),A=!1,p=!0;for(let[,C]of v)for(let R of C)R.fixable?A=!0:p=!1}}if(u.children.length===0)return 0;if(A){let h=p?`Those errors can all be fixed by running ${pe.pretty(r,"yarn constraints --fix",pe.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${pe.pretty(r,"yarn constraints --fix",pe.Type.CODE)}`;await Rt.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async E=>{E.reportInfo(0,h),E.reportSeparator()})}return u.children=He.sortMap(u.children,h=>h.value[1]),fs.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};l2();var adt={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:"BOOLEAN",default:!1},constraintsPath:{description:"The path of the constraints file.",type:"ABSOLUTE_PATH",default:"./constraints.pro"}},commands:[LE,ME,OE],hooks:{async validateProjectAfterInstall(t,{reportError:e}){if(!t.configuration.get("enableConstraintsChecks"))return;let r=await t.loadUserConfig(),o;if(r?.constraints)o=new FE(t);else{let{Constraints:u}=await Promise.resolve().then(()=>(f2(),A2));o=await u.find(t)}let a=await o.process();if(!a)return;let{remainingErrors:n}=ik(t,a);if(n.size!==0)if(t.configuration.isCI)for(let[u,A]of n)for(let p of A)e(84,`${pe.pretty(t.configuration,u.anchoredLocator,pe.Type.IDENT)}: ${p.text}`);else e(84,`Constraint check failed; run ${pe.pretty(t.configuration,"yarn constraints",pe.Type.CODE)} for more details`)}}},ldt=adt;var mH={};Vt(mH,{CreateCommand:()=>UE,DlxCommand:()=>_E,default:()=>udt});Ge();qt();var UE=class extends ut{constructor(){super(...arguments);this.pkg=ge.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}static{this.paths=[["create"]]}async execute(){let r=[];this.pkg&&r.push("--package",this.pkg),this.quiet&&r.push("--quiet");let o=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),a=G.parseDescriptor(o),n=a.name.match(/^create(-|$)/)?a:a.scope?G.makeIdent(a.scope,`create-${a.name}`):G.makeIdent(null,`create-${a.name}`),u=G.stringifyIdent(n);return a.range!=="unknown"&&(u+=`@${a.range}`),this.cli.run(["dlx",...r,u,...this.args])}};Ge();Ge();Pt();qt();var _E=class extends ut{constructor(){super(...arguments);this.packages=ge.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}static{this.paths=[["dlx"]]}static{this.usage=it.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!')"`]]})}async execute(){return Ke.telemetry=null,await oe.mktempPromise(async r=>{let o=V.join(r,`dlx-${process.pid}`);await oe.mkdirPromise(o),await oe.writeFilePromise(V.join(o,"package.json"),`{}
`),await oe.writeFilePromise(V.join(o,"yarn.lock"),"");let a=V.join(o,".yarnrc.yml"),n=await Ke.findProjectCwd(this.context.cwd),A={enableGlobalCache:!(await Ke.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:Ku(68),level:pe.LogLevel.Discard}]},p=n!==null?V.join(n,".yarnrc.yml"):null;p!==null&&oe.existsSync(p)?(await oe.copyFilePromise(p,a),await Ke.updateConfiguration(o,L=>{let U=He.toMerged(L,A);return Array.isArray(L.plugins)&&(U.plugins=L.plugins.map(z=>{let te=typeof z=="string"?z:z.path,ae=ue.isAbsolute(te)?te:ue.resolve(ue.fromPortablePath(n),te);return typeof z=="string"?ae:{path:ae,spec:z.spec}})),U})):await oe.writeJsonPromise(a,A);let h=this.packages??[this.command],E=G.parseDescriptor(this.command).name,I=await this.cli.run(["add","--fixed","--",...h],{cwd:o,quiet:this.quiet});if(I!==0)return I;this.quiet||this.context.stdout.write(`
`);let v=await Ke.find(o,this.context.plugins),{project:x,workspace:C}=await kt.find(v,o);if(C===null)throw new sr(x.cwd,o);await x.restoreInstallState();let R=await An.getWorkspaceAccessibleBinaries(C);return R.has(E)===!1&&R.size===1&&typeof this.packages>"u"&&(E=Array.from(R)[0][0]),await An.executeWorkspaceAccessibleBinary(C,E,this.args,{packageAccessibleBinaries:R,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};var cdt={commands:[UE,_E]},udt=cdt;var CH={};Vt(CH,{ExecFetcher:()=>h2,ExecResolver:()=>g2,default:()=>pdt,execUtils:()=>lk});Ge();Ge();Pt();var fA="exec:";var lk={};Vt(lk,{loadGeneratorFile:()=>p2,makeLocator:()=>EH,makeSpec:()=>yme,parseSpec:()=>yH});Ge();Pt();function yH(t){let{params:e,selector:r}=G.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:o}}function yme({parentLocator:t,path:e,generatorHash:r,protocol:o}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function EH(t,{parentLocator:e,path:r,generatorHash:o,protocol:a}){return G.makeLocator(t,yme({parentLocator:e,path:r,generatorHash:o,protocol:a}))}async function p2(t,e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(t,{protocol:e}),n=V.isAbsolute(a)?{packageFs:new gn(It.root),prefixPath:It.dot,localPath:It.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new gn(It.root),prefixPath:V.relative(It.root,n.localPath)}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=V.join(u.prefixPath,a);return await A.readFilePromise(p,"utf8")}var h2=class{supports(e,r){return!!e.reference.startsWith(fA)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:fA});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){let o=await p2(e.reference,fA,r);return oe.mktempPromise(async a=>{let n=V.join(a,"generator.js");return await oe.writeFilePromise(n,o),oe.mktempPromise(async u=>{if(await this.generatePackage(u,e,n,r),!oe.existsSync(V.join(u,"build")))throw new Error("The script should have generated a build directory");return await $i.makeArchiveFromDirectory(V.join(u,"build"),{prefixPath:G.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(e,r,o,a){return await oe.mktempPromise(async n=>{let u=await An.makeScriptEnv({project:a.project,binFolder:n}),A=V.join(e,"runtime.js");return await oe.mktempPromise(async p=>{let h=V.join(p,"buildfile.log"),E=V.join(e,"generator"),I=V.join(e,"build");await oe.mkdirPromise(E),await oe.mkdirPromise(I);let v={tempDir:ue.fromPortablePath(E),buildDir:ue.fromPortablePath(I),locator:G.stringifyLocator(r)};await oe.writeFilePromise(A,`
// Expose 'Module' as a global variable
Object.defineProperty(global, 'Module', {
get: () => require('module'),
configurable: true,
enumerable: false,
});
// Expose non-hidden built-in modules as global variables
for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) {
Object.defineProperty(global, name, {
get: () => require(name),
configurable: true,
enumerable: false,
});
}
// Expose the 'execEnv' global variable
Object.defineProperty(global, 'execEnv', {
value: {
...${JSON.stringify(v)},
},
enumerable: true,
});
`);let x=u.NODE_OPTIONS||"",C=/\s*--require\s+\S*\.pnp\.c?js\s*/g;x=x.replace(C," ").trim(),u.NODE_OPTIONS=x;let{stdout:R,stderr:L}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${G.stringifyLocator(r)})
`,prefix:G.prettyLocator(a.project.configuration,r),report:a.report}),{code:U}=await Ur.pipevp(process.execPath,["--require",ue.fromPortablePath(A),ue.fromPortablePath(o),G.stringifyIdent(r)],{cwd:e,env:u,stdin:null,stdout:R,stderr:L});if(U!==0)throw oe.detachTemp(p),new Error(`Package generation failed (exit code ${U}, logs can be found here: ${pe.pretty(a.project.configuration,h,pe.Type.PATH)})`)})})}};Ge();Ge();var Adt=2,g2=class{supportsDescriptor(e,r){return!!e.range.startsWith(fA)}supportsLocator(e,r){return!!e.reference.startsWith(fA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=yH(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await p2(G.makeRange({protocol:fA,source:a,selector:a,params:{locator:G.stringifyLocator(n)}}),fA,o.fetchOptions),A=wn.makeHash(`${Adt}`,u).slice(0,6);return[EH(e,{parentLocator:n,path:a,generatorHash:A,protocol:fA})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await He.releaseAfterUseAsync(async()=>await Ut.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var fdt={fetchers:[h2],resolvers:[g2]},pdt=fdt;var IH={};Vt(IH,{FileFetcher:()=>E2,FileResolver:()=>C2,TarballFileFetcher:()=>w2,TarballFileResolver:()=>I2,default:()=>ddt,fileUtils:()=>Yg});Ge();Pt();var HE=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,d2=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Ui="file:";var Yg={};Vt(Yg,{fetchArchiveFromLocator:()=>y2,makeArchiveFromLocator:()=>ck,makeBufferFromLocator:()=>wH,makeLocator:()=>qE,makeSpec:()=>Eme,parseSpec:()=>m2});Ge();Pt();function m2(t){let{params:e,selector:r}=G.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:o}}function Eme({parentLocator:t,path:e,hash:r,protocol:o}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function qE(t,{parentLocator:e,path:r,hash:o,protocol:a}){return G.makeLocator(t,Eme({parentLocator:e,path:r,hash:o,protocol:a}))}async function y2(t,e){let{parentLocator:r,path:o}=G.parseFileStyleRange(t.reference,{protocol:Ui}),a=V.isAbsolute(o)?{packageFs:new gn(It.root),prefixPath:It.dot,localPath:It.root}:await e.fetcher.fetch(r,e),n=a.localPath?{packageFs:new gn(It.root),prefixPath:V.relative(It.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let u=n.packageFs,A=V.join(n.prefixPath,o);return await He.releaseAfterUseAsync(async()=>await u.readFilePromise(A),n.releaseFs)}async function ck(t,{protocol:e,fetchOptions:r,inMemory:o=!1}){let{parentLocator:a,path:n}=G.parseFileStyleRange(t.reference,{protocol:e}),u=V.isAbsolute(n)?{packageFs:new gn(It.root),prefixPath:It.dot,localPath:It.root}:await r.fetcher.fetch(a,r),A=u.localPath?{packageFs:new gn(It.root),prefixPath:V.relative(It.root,u.localPath)}:u;u!==A&&u.releaseFs&&u.releaseFs();let p=A.packageFs,h=V.join(A.prefixPath,n);return await He.releaseAfterUseAsync(async()=>await $i.makeArchiveFromDirectory(h,{baseFs:p,prefixPath:G.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:o}),A.releaseFs)}async function wH(t,{protocol:e,fetchOptions:r}){return(await ck(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var E2=class{supports(e,r){return!!e.reference.startsWith(Ui)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:Ui});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){return ck(e,{protocol:Ui,fetchOptions:r})}};Ge();Ge();var hdt=2,C2=c Line truncated
`,{automaticNewlines:!0});let h=[p],E=V.join(this.context.cwd,"README.md");if(oe.existsSync(E)||(await oe.writeFilePromise(E,`# ${G.stringifyIdent(n.name)}
`),h.push(E)),!o||o.cwd===this.context.cwd){let I=V.join(this.context.cwd,dr.lockfile);oe.existsSync(I)||(await oe.writeFilePromise(I,""),h.push(I));let x=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/caching#zero-installs","","#!.yarn/cache",".pnp.*"].map(le=>`${le}
`).join(""),C=V.join(this.context.cwd,".gitignore");oe.existsSync(C)||(await oe.writeFilePromise(C,x),h.push(C));let L=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(le=>`${le}
`).join(""),U=V.join(this.context.cwd,".gitattributes");oe.existsSync(U)||(await oe.writeFilePromise(U,L),h.push(U));let z={"*":{endOfLine:"lf",insertFinalNewline:!0},"*.{js,json,yml}":{charset:"utf-8",indentStyle:"space",indentSize:2}};He.mergeIntoTarget(z,r.get("initEditorConfig"));let te=`root = true
`;for(let[le,ce]of Object.entries(z)){te+=`
[${le}]
`;for(let[Ce,de]of Object.entries(ce)){let Be=Ce.replace(/[A-Z]/g,Ee=>`_${Ee.toLowerCase()}`);te+=`${Be} = ${de}
`}}let ae=V.join(this.context.cwd,".editorconfig");oe.existsSync(ae)||(await oe.writeFilePromise(ae,te),h.push(ae)),await this.cli.run(["install"],{quiet:!0}),oe.existsSync(V.join(this.context.cwd,".git"))||(await Ur.execvp("git",["init"],{cwd:this.context.cwd}),await Ur.execvp("git",["add","--",...h],{cwd:this.context.cwd}),await Ur.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};var wdt={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:[jE]},Idt=wdt;var kq={};Vt(kq,{SearchCommand:()=>oC,UpgradeInteractiveCommand:()=>aC,default:()=>uIt});Ge();var vme=Ze(ve("os"));function GE({stdout:t}){if(vme.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!t.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}qt();var Lye=Ze(YH()),WH={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},Eyt=(0,Lye.default)(WH.appId,WH.apiKey).initIndex(WH.indexName),KH=async(t,e=0)=>await Eyt.search(t,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:e,hitsPerPage:10});var vB=["regular","dev","peer"],oC=class extends ut{static{this.paths=[["search"]]}static{this.usage=it.Usage({category:"Interactive commands",description:"open the search interface",details:`
This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry.
`,examples:[["Open the search window","yarn search"]]})}async execute(){GE(this.context);let{Gem:e}=await Promise.resolve().then(()=>(Zk(),Eq)),{ScrollableItems:r}=await Promise.resolve().then(()=>(rQ(),tQ)),{useKeypress:o}=await Promise.resolve().then(()=>(wB(),Xwe)),{useMinistore:a}=await Promise.resolve().then(()=>(Dq(),vq)),{renderForm:n}=await Promise.resolve().then(()=>(oQ(),sQ)),{default:u}=await Promise.resolve().then(()=>Ze(aIe())),{Box:A,Text:p}=await Promise.resolve().then(()=>Ze(ic())),{default:h,useEffect:E,useState:I}=await Promise.resolve().then(()=>Ze(an())),v=await Ke.find(this.context.cwd,this.context.plugins),x=()=>h.createElement(A,{flexDirection:"row"},h.createElement(A,{flexDirection:"column",width:48},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<up>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<down>")," to move between packages.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<space>")," to select a package.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<space>")," again to change the target."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<enter>")," to install the selected packages.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),C=()=>h.createElement(h.Fragment,null,h.createElement(A,{width:15},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Owner")),h.createElement(A,{width:11},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Version")),h.createElement(A,{width:10},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Downloads"))),R=()=>h.createElement(A,{width:17},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Target")),L=({hit:de,active:Be})=>{let[Ee,g]=a(de.name,null);o({active:Be},(Ae,ne)=>{if(ne.name!=="space")return;if(!Ee){g(vB[0]);return}let Z=vB.indexOf(Ee)+1;Z===vB.length?g(null):g(vB[Z])},[Ee,g]);let me=G.parseIdent(de.name),we=G.prettyIdent(v,me);return h.createElement(A,null,h.createElement(A,{width:45},h.createElement(p,{bold:!0,wrap:"wrap"},we)),h.createElement(A,{width:14,marginLeft:1},h.createElement(p,{bold:!0,wrap:"truncate"},de.owner.name)),h.createElement(A,{width:10,marginLeft:1},h.createElement(p,{italic:!0,wrap:"truncate"},de.version)),h.createElement(A,{width:16,marginLeft:1},h.createElement(p,null,de.humanDownloadsLast30Days)))},U=({name:de,active:Be})=>{let[Ee]=a(de,null),g=G.parseIdent(de);return h.createElement(A,null,h.createElement(A,{width:47},h.createElement(p,{bold:!0}," - ",G.prettyIdent(v,g))),vB.map(me=>h.createElement(A,{key:me,width:14,marginLeft:1},h.createElement(p,null," ",h.createElement(e,{active:Ee===me})," ",h.createElement(p,{bold:!0},me)))))},z=()=>h.createElement(A,{marginTop:1},h.createElement(p,null,"Powered by Algolia.")),ae=await n(({useSubmit:de})=>{let Be=a();de(Be);let Ee=Array.from(Be.keys()).filter(H=>Be.get(H)!==null),[g,me]=I(""),[we,Ae]=I(0),[ne,Z]=I([]),xe=H=>{H.match(/\t| /)||me(H)},Ne=async()=>{Ae(0);let H=await KH(g);H.query===g&&Z(H.hits)},ht=async()=>{let H=await KH(g,we+1);H.query===g&&H.page-1===we&&(Ae(H.page),Z([...ne,...H.hits]))};return E(()=>{g?Ne():Z([])},[g]),h.createElement(A,{flexDirection:"column"},h.createElement(x,null),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(p,{bold:!0},"Search: "),h.createElement(A,{width:41},h.createElement(u,{value:g,onChange:xe,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),h.createElement(C,null)),ne.length?h.createElement(r,{radius:2,loop:!1,children:ne.map(H=>h.createElement(L,{key:H.name,hit:H,active:!1})),willReachEnd:ht}):h.createElement(p,{color:"gray"},"Start typing..."),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(A,{width:49},h.createElement(p,{bold:!0},"Selected:")),h.createElement(R,null)),Ee.length?Ee.map(H=>h.createElement(U,{key:H,name:H,active:!1})):h.createElement(p,{color:"gray"},"No selected packages..."),h.createElement(z,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ae>"u")return 1;let le=Array.from(ae.keys()).filter(de=>ae.get(de)==="regular"),ce=Array.from(ae.keys()).filter(de=>ae.get(de)==="dev"),Ce=Array.from(ae.keys()).filter(de=>ae.get(de)==="peer");return le.length&&await this.cli.run(["add",...le]),ce.length&&await this.cli.run(["add","--dev",...ce]),Ce&&await this.cli.run(["add","--peer",...Ce]),0}};Ge();qt();f_();var hIe=Ze(Jn()),pIe=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/,gIe=(t,e)=>t.length>0?[t.slice(0,e)].concat(gIe(t.slice(e),e)):[],aC=class extends ut{static{this.paths=[["upgrade-interactive"]]}static{this.usage=it.Usage({category:"Interactive commands",description:"open the upgrade interf Line truncated
This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade.
`,examples:[["Open the upgrade window","yarn upgrade-interactive"]]})}async execute(){GE(this.context);let{ItemOptions:e}=await Promise.resolve().then(()=>(fIe(),AIe)),{Pad:r}=await Promise.resolve().then(()=>(xq(),uIe)),{ScrollableItems:o}=await Promise.resolve().then(()=>(rQ(),tQ)),{useMinistore:a}=await Promise.resolve().then(()=>(Dq(),vq)),{renderForm:n}=await Promise.resolve().then(()=>(oQ(),sQ)),{Box:u,Text:A}=await Promise.resolve().then(()=>Ze(ic())),{default:p,useEffect:h,useRef:E,useState:I}=await Promise.resolve().then(()=>Ze(an())),v=await Ke.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await kt.find(v,this.context.cwd),R=await Gr.find(v);if(!C)throw new sr(x.cwd,this.context.cwd);await x.restoreInstallState({restoreResolutions:!1});let L=this.context.stdout.rows-7,U=(me,we)=>{let Ae=gpe(me,we),ne="";for(let Z of Ae)Z.added?ne+=pe.pretty(v,Z.value,"green"):Z.removed||(ne+=Z.value);return ne},z=(me,we)=>{if(me===we)return we;let Ae=G.parseRange(me),ne=G.parseRange(we),Z=Ae.selector.match(pIe),xe=ne.selector.match(pIe);if(!Z||!xe)return U(me,we);let Ne=["gray","red","yellow","green","magenta"],ht=null,H="";for(let rt=1;rt<Ne.length;++rt)ht!==null||Z[rt]!==xe[rt]?(ht===null&&(ht=Ne[rt-1]),H+=pe.pretty(v,xe[rt],ht)):H+=xe[rt];return H},te=async(me,we,Ae)=>{let ne=await Zc.fetchDescriptorFrom(me,Ae,{project:x,cache:R,preserveModifier:we,workspace:C});return ne!==null?ne.range:me.range},ae=async me=>{let we=hIe.default.valid(me.range)?`^${me.range}`:me.range,[Ae,ne]=await Promise.all([te(me,me.range,we).catch(()=>null),te(me,me.range,"latest").catch(()=>null)]),Z=[{value:null,label:me.range}];return Ae&&Ae!==me.range?Z.push({value:Ae,label:z(me.range,Ae)}):Z.push({value:null,label:""}),ne&&ne!==Ae&&ne!==me.range?Z.push({value:ne,label:z(me.range,ne)}):Z.push({value:null,label:""}),Z},le=()=>p.createElement(u,{flexDirection:"row"},p.createElement(u,{flexDirection:"column",width:49},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<up>"),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"<down>")," to select packages.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<left>"),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"<right>")," to select versions."))),p.createElement(u,{flexDirection:"column"},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<enter>")," to install.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),ce=()=>p.createElement(u,{flexDirection:"row",paddingTop:1,paddingBottom:1},p.createElement(u,{width:50},p.createElement(A,{bold:!0},p.createElement(A,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Current")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Range")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Latest"))),Ce=({active:me,descriptor:we,suggestions:Ae})=>{let[ne,Z]=a(we.descriptorHash,null),xe=G.stringifyIdent(we),Ne=Math.max(0,45-xe.length);return p.createElement(p.Fragment,null,p.createElement(u,null,p.createElement(u,{width:45},p.createElement(A,{bold:!0},G.prettyIdent(v,we)),p.createElement(r,{active:me,length:Ne})),p.createElement(e,{active:me,options:Ae,value:ne,skewer:!0,onChange:Z,sizes:[17,17,17]})))},de=({dependencies:me})=>{let[we,Ae]=I(me.map(()=>null)),ne=E(!0),Z=async xe=>{let Ne=await ae(xe);return Ne.filter(ht=>ht.label!=="").length<=1?null:{descriptor:xe,suggestions:Ne}};return h(()=>()=>{ne.current=!1},[]),h(()=>{let xe=Math.trunc(L*1.75),Ne=me.slice(0,xe),ht=me.slice(xe),H=gIe(ht,L),rt=Ne.map(Z).reduce(async(Te,Fe)=>{await Te;let ke=await Fe;ke!==null&&ne.current&&Ae(Ye=>{let be=Ye.findIndex(Ue=>Ue===null),et=[...Ye];return et[be]=ke,et})},Promise.resolve());H.reduce((Te,Fe)=>Promise.all(Fe.map(ke=>Promise.resolve().then(()=>Z(ke)))).then(async ke=>{ke=ke.filter(Ye=>Ye!==null),await Te,ne.current&&Ae(Ye=>{let be=Ye.findIndex(et=>et===null);return Ye.slice(0,be).concat(ke).concat(Ye.slice(be+ke.length))})}),rt).then(()=>{ne.current&&Ae(Te=>Te.filter(Fe=>Fe!==null))})},[]),we.length?p.createElement(o,{radius:L>>1,children:we.map((xe,Ne)=>xe!==null?p.createElement(Ce,{key:Ne,active:!1,descriptor:xe.descriptor,suggestions:xe.suggestions}):p.createElement(A,{key:Ne},"Loading..."))}):p.createElement(A,null,"No upgrades found")},Ee=await n(({useSubmit:me})=>{me(a());let we=new Map;for(let ne of x.workspaces)for(let Z of["dependencies","devDependencies"])for(let xe of ne.manifest[Z].values())x.tryWorkspaceByDescriptor(xe)===null&&(xe.range.startsWith("link:")||we.set(xe.descriptorHash,xe));let Ae=He.sortMap(we.values(),ne=>G.stringifyDescriptor(ne));return p.createEleme Line truncated
${E}, next tree:
${kB(A)}`);let v=EIe(A);if(v)throw new Error(`${v}, after hoisting finished:
${kB(A)}`)}return n.debugLevel>=2&&console.log(kB(A)),CIt(A)},pIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=n=>{if(!o.has(n)){o.add(n);for(let u of n.hoistedDependencies.values())r.set(u.name,u);for(let u of n.dependencies.values())n.peerNames.has(u.name)||a(u)}};return a(e),r},hIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=new Set,n=(u,A)=>{if(o.has(u))return;o.add(u);for(let h of u.hoistedDependencies.values())if(!A.has(h.name)){let E;for(let I of t)E=I.dependencies.get(h.name),E&&r.set(E.name,E)}let p=new Set;for(let h of u.dependencies.values())p.add(h.name);for(let h of u.dependencies.values())u.peerNames.has(h.name)||n(h,p)};return n(e,a),r},mIe=(t,e)=>{if(e.decoupled)return e;let{name:r,references:o,ident:a,locator:n,dependencies:u,originalDependencies:A,hoistedDependencies:p,peerNames:h,reasons:E,isHoistBorder:I,hoistPriority:v,dependencyKind:x,hoistedFrom:C,hoistedTo:R}=e,L={name:r,references:new Set(o),ident:a,locator:n,dependencies:new Map(u),originalDependencies:new Map(A),hoistedDependencies:new Map(p),peerNames:new Set(h),reasons:new Map(E),decoupled:!0,isHoistBorder:I,hoistPriority:v,dependencyKind:x,hoistedFrom:new Map(C),hoistedTo:new Map(R)},U=L.dependencies.get(r);return U&&U.ident==L.ident&&L.dependencies.set(r,L),t.dependencies.set(L.name,L),L},gIt=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let a of t.dependencies.values())t.peerNames.has(a.name)||r.set(a.name,[a.ident]);let o=Array.from(e.keys());o.sort((a,n)=>{let u=e.get(a),A=e.get(n);return A.hoistPriority!==u.hoistPriority?A.hoistPriority-u.hoistPriority:A.peerDependents.size!==u.peerDependents.size?A.peerDependents.size-u.peerDependents.size:A.dependents.size-u.dependents.size});for(let a of o){let n=a.substring(0,a.indexOf("@",1)),u=a.substring(n.length+1);if(!t.peerNames.has(n)){let A=r.get(n);A||(A=[],r.set(n,A)),A.indexOf(u)<0&&A.push(u)}}return r},Fq=t=>{let e=new Set,r=(o,a=new Set)=>{if(!a.has(o)){a.add(o);for(let n of o.peerNames)if(!t.peerNames.has(n)){let u=t.dependencies.get(n);u&&!e.has(u)&&r(u,a)}e.add(o)}};for(let o of t.dependencies.values())t.peerNames.has(o.name)||r(o);return e},Tq=(t,e,r,o,a,n=new Set)=>{let u=e[e.length-1];if(n.has(u))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(u);let A=wIt(u),p=gIt(u,A),h=t==u?new Map:a.fastLookupPossible?pIt(e):hIt(e),E,I=!1,v=!1,x=new Map(Array.from(p.entries()).map(([R,L])=>[R,L[0]])),C=new Map;do{let R=yIt(t,e,r,h,x,p,o,C,a);R.isGraphChanged&&(v=!0),R.anotherRoundNeeded&&(I=!0),E=!1;for(let[L,U]of p)U.length>1&&!u.dependencies.has(L)&&(x.delete(L),U.shift(),x.set(L,U[0]),E=!0)}while(E);for(let R of u.dependencies.values())if(!u.peerNames.has(R.name)&&!r.has(R.locator)){r.add(R.locator);let L=Tq(t,[...e,R],r,C,a);L.isGraphChanged&&(v=!0),L.anotherRoundNeeded&&(I=!0),r.delete(R.locator)}return{anotherRoundNeeded:I,isGraphChanged:v}},dIt=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},mIt=(t,e,r,o,a,n,u,A,{outputReason:p,fastLookupPossible:h})=>{let E,I=null,v=new Set;p&&(E=`${Array.from(e).map(L=>no(L)).join("\u2192")}`);let x=r[r.length-1],R=!(o.ident===x.ident);if(p&&!R&&(I="- self-reference"),R&&(R=o.dependencyKind!==1,p&&!R&&(I="- workspace")),R&&o.dependencyKind===2&&(R=!dIt(o),p&&!R&&(I="- external soft link with unhoisted dependencies")),R&&(R=!t.peerNames.has(o.name),p&&!R&&(I=`- cannot shadow peer: ${no(t.originalDependencies.get(o.name).locator)} at ${E}`)),R){let L=!1,U=a.get(o.name);if(L=!U||U.ident===o.ident,p&&!L&&(I=`- filled by: ${no(U.locator)} at ${E}`),L)for(let z=r.length-1;z>=1;z--){let ae=r[z].dependencies.get(o.name);if(ae&&ae.ident!==o.ident){L=!1;let le=A.get(x);le||(le=new Set,A.set(x,le)),le.add(o.name),p&&(I=`- filled by ${no(ae.locator)} at ${r.slice(0,z).map(ce=>no(ce.locator)).join("\u2192")}`);break}}R=L}if(R&&(R=n.get(o.name)===o.ident,p&&!R&&(I=`- filled by: ${no(u.get(o.name)[0])} at ${E}`)),R){let L=!0,U=new Set(o.peerNames);for(let z=r.length-1;z>=1;z--){let te=r[z];for(let ae of U){if(te.peerNames.has(ae)&&te.originalDependencies.has(ae))continue;let le=te.dependencies.get(ae);le&&t.dependencies.get(ae)!==le&&(z===r.length-1?v.add(le):(v=null,L=!1,p&&(I=`- peer dependency ${no(le.locator)} from parent ${no(te.locator)} was not hoisted to ${E}`))),U.delete(ae)}if(!L)break}R=L}if(R&&!h)for(let L of o.hoistedDependencies.values()){let U=a.get(L.name)||t.dependencies.get(L.name);if(!U||L.ident!==U.ident){R=!1,p&&(I=`- previously hoisted dependency mismatch, needed: ${no(L.locator)}, available: ${no(U?.locator)}`);break}}return v!==null&&v.size>0?{isHoistable:2,dependsOn:v,reason:I}:{isHoistable:R?0:1,reason:I}},aQ=t=>`${t.name}@${t.locator}`,yIt=(t,e,r,o,a,n,u,A,p)=>{let h=e[e.length-1],E=new Set,I=!1,v=!1,x=(U,z,te,ae,le)=>{if(E.has(ae))return;let ce=[...z,aQ(ae)],Ce=[...te,aQ(ae)],de=new Map,Be=new Map;for(let Ae of Fq(ae)){let ne=mIt(h,r,[h,...U,ae],Ae,o,a,n,A,{outputReason:p.debugLevel>=2,fastLookupPossible:p.fastLookupPossible});if(Be.set(Ae,ne),ne.isHoistable===2)for( Line truncated
${kB(t)}`)}let we=Fq(ae);for(let Ae of we)if(Ee.has(Ae)){let ne=Be.get(Ae);if((a.get(Ae.name)===Ae.ident||!ae.reasons.has(Ae.name))&&ne.isHoistable!==0&&ae.reasons.set(Ae.name,ne.reason),!Ae.isHoistBorder&&Ce.indexOf(aQ(Ae))<0){E.add(ae);let xe=mIe(ae,Ae);x([...U,ae],ce,Ce,xe,R),E.delete(ae)}}},C,R=new Set(Fq(h)),L=Array.from(e).map(U=>aQ(U));do{C=R,R=new Set;for(let U of C){if(U.locator===h.locator||U.isHoistBorder)continue;let z=mIe(h,U);x([],Array.from(r),L,z,R)}}while(R.size>0);return{anotherRoundNeeded:I,isGraphChanged:v}},EIe=t=>{let e=[],r=new Set,o=new Set,a=(n,u,A)=>{if(r.has(n)||(r.add(n),o.has(n)))return;let p=new Map(u);for(let h of n.dependencies.values())n.peerNames.has(h.name)||p.set(h.name,h);for(let h of n.originalDependencies.values()){let E=p.get(h.name),I=()=>`${Array.from(o).concat([n]).map(v=>no(v.locator)).join("\u2192")}`;if(n.peerNames.has(h.name)){let v=u.get(h.name);(v!==E||!v||v.ident!==h.ident)&&e.push(`${I()} - broken peer promise: expected ${h.ident} but found ${v&&v.ident}`)}else{let v=A.hoistedFrom.get(n.name),x=n.hoistedTo.get(h.name),C=`${v?` hoisted from ${v.join(", ")}`:""}`,R=`${x?` hoisted to ${x}`:""}`,L=`${I()}${C}`;E?E.ident!==h.ident&&e.push(`${L} - broken require promise for ${h.name}${R}: expected ${h.ident}, but found: ${E.ident}`):e.push(`${L} - broken require promise: no required dependency ${h.name}${R} found`)}}o.add(n);for(let h of n.dependencies.values())n.peerNames.has(h.name)||a(h,p,n);o.delete(n)};return a(t,t.dependencies,t),e.join(`
`)},EIt=(t,e)=>{let{identName:r,name:o,reference:a,peerNames:n}=t,u={name:o,references:new Set([a]),locator:Rq(r,a),ident:dIe(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(n),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},A=new Map([[t,u]]),p=(h,E)=>{let I=A.get(h),v=!!I;if(!I){let{name:x,identName:C,reference:R,peerNames:L,hoistPriority:U,dependencyKind:z}=h,te=e.hoistingLimits.get(E.locator);I={name:x,references:new Set([R]),locator:Rq(C,R),ident:dIe(C,R),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(L),reasons:new Map,decoupled:!0,isHoistBorder:te?te.has(x):!1,hoistPriority:U||0,dependencyKind:z||0,hoistedFrom:new Map,hoistedTo:new Map},A.set(h,I)}if(E.dependencies.set(h.name,I),E.originalDependencies.set(h.name,I),v){let x=new Set,C=R=>{if(!x.has(R)){x.add(R),R.decoupled=!1;for(let L of R.dependencies.values())R.peerNames.has(L.name)||C(L)}};C(I)}else for(let x of h.dependencies)p(x,I)};for(let h of t.dependencies)p(h,u);return u},Nq=t=>t.substring(0,t.indexOf("@",1)),CIt=t=>{let e={name:t.name,identName:Nq(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),o=(a,n,u)=>{let A=r.has(a),p;if(n===a)p=u;else{let{name:h,references:E,locator:I}=a;p={name:h,identName:Nq(I),references:E,dependencies:new Set}}if(u.dependencies.add(p),!A){r.add(a);for(let h of a.dependencies.values())a.peerNames.has(h.name)||o(h,a,p);r.delete(a)}};for(let a of t.dependencies.values())o(a,t,e);return e},wIt=t=>{let e=new Map,r=new Set([t]),o=u=>`${u.name}@${u.ident}`,a=u=>{let A=o(u),p=e.get(A);return p||(p={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(A,p)),p},n=(u,A)=>{let p=!!r.has(A);if(a(A).dependents.add(u.ident),!p){r.add(A);for(let E of A.dependencies.values()){let I=a(E);I.hoistPriority=Math.max(I.hoistPriority,E.hoistPriority),A.peerNames.has(E.name)?I.peerDependents.add(A.ident):n(A,E)}}};for(let u of t.dependencies.values())t.peerNames.has(u.name)||n(t,u);return e},no=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let o=t.substring(e+1);if(o==="workspace:.")return".";if(o){let a=(o.indexOf("#")>0?o.split("#")[1]:o).replace("npm:","");return o.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`};var kB=t=>{let e=0,r=(a,n,u="")=>{if(e>5e4||n.has(a))return"";e++;let A=Array.from(a.dependencies.values()).sort((h,E)=>h.name===E.name?0:h.name>E.name?1:-1),p="";n.add(a);for(let h=0;h<A.length;h++){let E=A[h];if(!a.peerNames.has(E.name)&&E!==a){let I=a.reasons.get(E.name),v=Nq(E.locator);p+=`${u}${h<A.length-1?"\u251C\u2500":"\u2514\u2500"}${(n.has(E)?">":"")+(v!==E.name?`a:${E.name}:`:"")+no(E.locator)+(I?` ${I}`:"")}
`,p+=r(E,n,`${u}${h<A.length-1?"\u2502 ":" "}`)}}return n.delete(a),p};return r(t,new Set)+(e>5e4?`
Tree is too large, part of the tree has been dunped
`:"")};var QB=(o=>(o.WORKSPACES="workspaces",o.DEPENDENCIES="dependencies",o.NONE="none",o))(QB||{}),CIe="node_modules",Oh="$wsroot$";var FB=(t,e)=>{let{packageTree:r,hoistingLimits:o,errors:a,preserveSymlinksRequired:n}=BIt(t,e),u=null;if(a.length===0){let A=yIe(r,{hoistingLimits:o});u=DIt(t,A,e)}return{tree:u,errors:a,preserveSymlinksRequired:n}},gA=t=>`${t.name}@${t.reference}`,Mq=t=>{let e=new Map;for(let[r,o]of t.entries())if(!o.dirList){let a=e.get(o.locator);a||(a={target:o.target,linkType:o.linkType,locations:[],aliases:o.aliases},e.set(o.locator,a)),a.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((o,a)=>{let n=o.split(V.delimiter).length,u=a.split(V.delimiter).length;return a===o?0:n!==u?u-n:a>o?1:-1});return e},wIe=(t,e)=>{let r=G.isVirtualLocator(t)?G.devirtualizeLocator(t):t,o=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e;return G.areLocatorsEqual(r,o)},Lq=(t,e,r,o)=>{if(t.linkType!=="SOFT")return!1;let a=ue.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return V.contains(o,a)===null},IIt=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let o=ue.toPortablePath(e.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},u=t.getDependencyTreeRoots(),A=new Map,p=new Set,h=(v,x)=>{let C=gA(v);if(p.has(C))return;p.add(C);let R=t.getPackageInformation(v);if(R){let L=x?gA(x):"";if(gA(v)!==L&&R.linkType==="SOFT"&&!v.reference.startsWith("link:")&&!Lq(R,v,t,o)){let U=IIe(R,v,t);(!A.get(U)||v.reference.startsWith("workspace:"))&&A.set(U,v)}for(let[U,z]of R.packageDependencies)z!==null&&(R.packagePeers.has(U)||h(t.getLocator(U,z),v))}};for(let v of u)h(v,null);let E=o.split(V.sep);for(let v of A.values()){let x=t.getPackageInformation(v),R=ue.toPortablePath(x.packageLocation.slice(0,-1)).split(V.sep).slice(E.length),L=n;for(let U of R){let z=L.children.get(U);z||(z={children:new Map},L.children.set(U,z)),L=z}L.workspaceLocator=v}let I=(v,x)=>{if(v.workspaceLocator){let C=gA(x),R=a.get(C);R||(R=new Set,a.set(C,R)),R.add(v.workspaceLocator)}for(let C of v.children.values())I(C,v.workspaceLocator||x)};for(let v of n.children.values())I(v,n.workspaceLocator);return a},BIt=(t,e)=>{let r=[],o=!1,a=new Map,n=IIt(t),u=t.getPackageInformation(t.topLevel);if(u===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let A=t.findPackageLocator(u.packageLocation);if(A===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let p=ue.toPortablePath(u.packageLocation.slice(0,-1)),h={name:A.name,identName:A.name,reference:A.reference,peerNames:u.packagePeers,dependencies:new Set,dependencyKind:1},E=new Map,I=(x,C)=>`${gA(C)}:${x}`,v=(x,C,R,L,U,z,te,ae)=>{let le=I(x,R),ce=E.get(le),Ce=!!ce;!Ce&&R.name===A.name&&R.reference===A.reference&&(ce=h,E.set(le,h));let de=Lq(C,R,t,p);if(!ce){let Ae=0;de?Ae=2:C.linkType==="SOFT"&&R.name.endsWith(Oh)&&(Ae=1),ce={name:x,identName:R.name,reference:R.reference,dependencies:new Set,peerNames:Ae===1?new Set:C.packagePeers,dependencyKind:Ae},E.set(le,ce)}let Be;if(de?Be=2:U.linkType==="SOFT"?Be=1:Be=0,ce.hoistPriority=Math.max(ce.hoistPriority||0,Be),ae&&!de){let Ae=gA({name:L.identName,reference:L.reference}),ne=a.get(Ae)||new Set;a.set(Ae,ne),ne.add(ce.name)}let Ee=new Map(C.packageDependencies);if(e.project){let Ae=e.project.workspacesByCwd.get(ue.toPortablePath(C.packageLocation.slice(0,-1)));if(Ae){let ne=new Set([...Array.from(Ae.manifest.peerDependencies.values(),Z=>G.stringifyIdent(Z)),...Array.from(Ae.manifest.peerDependenciesMeta.keys())]);for(let Z of ne)Ee.has(Z)||(Ee.set(Z,z.get(Z)||null),ce.peerNames.add(Z))}}let g=gA({name:R.name.replace(Oh,""),reference:R.reference}),me=n.get(g);if(me)for(let Ae of me)Ee.set(`${Ae.name}${Oh}`,Ae.reference);(C!==U||C.linkType!=="SOFT"||!de&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(te)))&&L.dependencies.add(ce);let we=R!==A&&C.linkType==="SOFT"&&!R.name.endsWith(Oh)&&!de;if(!Ce&&!we){let Ae=new Map;for(let[ne,Z]of Ee)if(Z!==null){let xe=t.getLocator(ne,Z),Ne=t.getLocator(ne.replace(Oh,""),Z),ht=t.getPackageInformation(Ne);if(ht===null)throw new Error("Assertion failed: Expected the package to have been registered");let H=Lq(ht,xe,t,p);if(e.validateExternalSoftLinks&&e.project&&H){ht.packageDependencies.size>0&&(o=!0);for(let[Ye,be]of ht.packageDependencies)if(be!==null){let et=G.parseLocator(Array.isArray(be)?`${be[0]}@${be[1]}`:`${Ye}@${be}`);if(gA(et)!==gA(xe)){let Ue=Ee.get(Ye);if(Ue){let S=G.parseLocator(Array.isArray(Ue)?`${Ue[0]}@${Ue[1]}`:`${Ye}@${Ue}`);wIe(S,et)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(xe.name))} into ${G.pretLine truncated
`;for(let n=0,u=t.length;n<u;++n)a+=o+lQ(String(n),t[n],e,o).replace(/^ +/,""),n+1<u&&(a+=","),a+=`
`;return a+=r,a+="]",a}function SIt(t,e,r){let o=Object.keys(t),a="";a+="{";for(let n=0,u=o.length,A=0;n<u;++n){let p=o[n],h=t[p];typeof h>"u"||(A!==0&&(a+=", "),a+=JSON.stringify(p),a+=": ",a+=lQ(p,h,e,r).replace(/^ +/g,""),A+=1)}return a+="}",a}function xIt(t,e,r){let o=Object.keys(t),a=`${r} `,n="";n+=r,n+=`{
`;let u=0;for(let A=0,p=o.length;A<p;++A){let h=o[A],E=t[h];typeof E>"u"||(u!==0&&(n+=",",n+=`
`),n+=a,n+=JSON.stringify(h),n+=": ",n+=lQ(h,E,e,a).replace(/^ +/g,""),u+=1)}return u!==0&&(n+=`
`),n+=r,n+="}",n}function lQ(t,e,r,o){let{next:a}=BIe[r],n=a[t]||a["*"];return vIe(e,n,o)}function vIe(t,e,r){let{collapsed:o}=BIe[e];return Array.isArray(t)?o?PIt(t,e,r):bIt(t,e,r):typeof t=="object"&&t!==null?o?SIt(t,e,r):xIt(t,e,r):JSON.stringify(t)}function DIe(t){return vIe(t,"TOP_LEVEL","")}function RB(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]<A[u]?-1:A[n]>A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function kIt(t){let e=new Map,r=RB(t.fallbackExclusionList||[],[({name:o,reference:a})=>o,({name:o,reference:a})=>a]);for(let{name:o,reference:a}of r){let n=e.get(o);typeof n>"u"&&e.set(o,n=new Set),n.add(a)}return Array.from(e).map(([o,a])=>[o,Array.from(a)])}function QIt(t){return RB(t.fallbackPool||[],([e])=>e)}function FIt(t){let e=[];for(let[r,o]of RB(t.packageRegistry,([a])=>a===null?"0":`1${a}`)){let a=[];e.push([r,a]);for(let[n,{packageLocation:u,packageDependencies:A,packagePeers:p,linkType:h,discardFromLookup:E}]of RB(o,([I])=>I===null?"0":`1${I}`)){let I=[];r!==null&&n!==null&&!A.has(r)&&I.push([r,n]);for(let[C,R]of RB(A.entries(),([L])=>L))I.push([C,R]);let v=p&&p.size>0?Array.from(p):void 0,x=E||void 0;a.push([n,{packageLocation:u,packageDependencies:I,packagePeers:v,linkType:h,discardFromLookup:x}])}}return e}function TB(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,fallbackExclusionList:kIt(t),fallbackPool:QIt(t),packageRegistryData:FIt(t)}}var SIe=Ze(bIe());function xIe(t,e){return[t?`${t}
`:"",`/* eslint-disable */
`,`// @ts-nocheck
`,`"use strict";
`,`
`,e,`
`,(0,SIe.default)()].join("")}function RIt(t){return JSON.stringify(t,null,2)}function TIt(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\
`)}'`}function NIt(t){return[`const RAW_RUNTIME_STATE =
`,`${TIt(DIe(t))};
`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) {
`,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname});
`,`}
`].join("")}function LIt(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) {
`,` const fs = require('fs');
`,` const path = require('path');
`,` const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(dr.pnpData)});
`,` return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname});
`,`}
`].join("")}function kIe(t){let e=TB(t),r=NIt(e);return xIe(t.shebang,r)}function QIe(t){let e=TB(t),r=LIt(),o=xIe(t.shebang,r);return{dataFile:RIt(e),loaderFile:o}}Pt();function Uq(t,{basePath:e}){let r=ue.toPortablePath(e),o=V.resolve(r),a=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,n=new Map,u=new Map(t.packageRegistryData.map(([I,v])=>[I,new Map(v.map(([x,C])=>{if(I===null!=(x===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let R=C.discardFromLookup??!1,L={name:I,reference:x},U=n.get(C.packageLocation);U?(U.discardFromLookup=U.discardFromLookup&&R,R||(U.locator=L)):n.set(C.packageLocation,{locator:L,discardFromLookup:R});let z=null;return[x,{packageDependencies:new Map(C.packageDependencies),packagePeers:new Set(C.packagePeers),linkType:C.linkType,discardFromLookup:R,get packageLocation(){return z||(z=V.join(o,C.packageLocation))}}]}))])),A=new Map(t.fallbackExclusionList.map(([I,v])=>[I,new Set(v)])),p=new Map(t.fallbackPool),h=t.dependencyTreeRoots,E=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:h,enableTopLevelFallback:E,fallbackExclusionList:A,fallbackPool:p,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:u}}Pt();Pt();var tp=ve("module"),id=ve("url"),zq=ve("util");var Oo=ve("url");var NIe=Ze(ve("assert"));var _q=Array.isArray,NB=JSON.stringify,LB=Object.getOwnPropertyNames,nd=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),Hq=(t,e)=>RegExp.prototype.exec.call(t,e),qq=(t,...e)=>RegExp.prototype[Symbol.replace].apply(t,e),Uh=(t,...e)=>String.prototype.endsWith.apply(t,e),jq=(t,...e)=>String.prototype.includes.apply(t,e),Gq=(t,...e)=>String.prototype.lastIndexOf.apply(t,e),MB=(t,...e)=>String.prototype.indexOf.apply(t,e),FIe=(t,...e)=>String.prototype.replace.apply(t,e),_h=(t,...e)=>String.prototype.slice.apply(t,e),dA=(t,...e)=>String.prototype.startsWith.apply(t,e),RIe=Map,TIe=JSON.parse;function OB(t,e,r){return class extends r{constructor(...o){super(e(...o)),this.code=t,this.name=`${r.name} [${t}]`}}}var LIe=OB("ERR_PACKAGE_IMPORT_NOT_DEFINED",(t,e,r)=>`Package import specifier "${t}" is not defined${e?` in package ${e}package.json`:""} imported from ${r}`,TypeError),Yq=OB("ERR_INVALID_MODULE_SPECIFIER",(t,e,r=void 0)=>`Invalid module "${t}" ${e}${r?` imported from ${r}`:""}`,TypeError),MIe=OB("ERR_INVALID_PACKAGE_TARGET",(t,e,r,o=!1,a=void 0)=>{let n=typeof r=="string"&&!o&&r.length&&!dA(r,"./");return e==="."?((0,NIe.default)(o===!1),`Invalid "exports" main target ${NB(r)} defined in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`):`Invalid "${o?"imports":"exports"}" target ${NB(r)} defined for '${e}' in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`},Error),UB=OB("ERR_INVALID_PACKAGE_CONFIG",(t,e,r)=>`Invalid package config ${t}${e?` while importing ${e}`:""}${r?`. ${r}`:""}`,Error),OIe=OB("ERR_PACKAGE_PATH_NOT_EXPORTED",(t,e,r=void 0)=>e==="."?`No "exports" main defined in ${t}package.json${r?` imported from ${r}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${t}package.json${r?` imported from ${r}`:""}`,Error);var uQ=ve("url");function UIe(t,e){let r=Object.create(null);for(let o=0;o<e.length;o++){let a=e[o];nd(t,a)&&(r[a]=t[a])}return r}var cQ=new RIe;function MIt(t,e,r,o){let a=cQ.get(t);if(a!==void 0)return a;let n=o(t);if(n===void 0){let x={pjsonPath:t,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return cQ.set(t,x),x}let u;try{u=TIe(n)}catch(x){throw new UB(t,(r?`"${e}" from `:"")+(0,uQ.fileURLToPath)(r||e),x.message)}let{imports:A,main:p,name:h,type:E}=UIe(u,["imports","main","name","type"]),I=nd(u,"exports")?u.exports:void 0;(typeof A!="object"||A===null)&&(A=void 0),typeof p!="string"&&(p=void 0),typeof h!="string"&&(h=void 0),E!=="module"&&E!=="commonjs"&&(E="none");let v={pjsonPath:t,exists:!0,main:p,name:h,type:E,exports:I,imports:A};return cQ.set(t,v),v}function _Ie(t,e){let r=new URL("./package.json",t);for(;;){let n=r.pathname;if(Uh(n,"node_modules/package.json"))break;let u=MIt((0,uQ.fileURLToPath)(r),t,void 0,e);if(u.exists)return u;let A=r;if(r=new URL("../package.json",r),r.pathname===A.pathname)break}let o=(0,uQ.fileURLToPath)(r),a={pjsonPath:o,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return cQ.set(o,a),a}function OIt(t,e,r){throw new LIe(t,e&&(0,Oo.fileURLToPath)(new URL(".",e)),(0,Oo.fileURLToPath)(r))}function UIt(t,e,r,o){let a=`request is not a valid subpath for the "${r?"imports":"exports"}" resolution of ${(0,Oo.fileURLToPath)(e)}`;throw new Yq(t,a,o&&(0,Oo.fileURLToPath)(o))}function _B(t,e,r,o,a){throw typeof e=="object"&&e!==null?e=NB(e,null,""):e=`${e}`,new MIe((0,Oo.fileURLToPath)(new URL(".",r)),t,e,o,a&&(0,Oo.fileURLToPath)(a))}var HIe=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l| Line truncated
`),r;u=t[++n]}else if(u===" "&&!o){a=!0;continue}else if(u==='"'){o=!o;continue}a?(r.push(u),a=!1):r[r.length-1]+=u}return o&&e.push(`invalid value for NODE_OPTIONS (unterminated string)
`),r}Pt();var[Ua,ep]=process.versions.node.split(".").map(t=>parseInt(t,10)),ZIe=Ua>19||Ua===19&&ep>=2||Ua===18&&ep>=13,kJt=Ua===20&&ep<6||Ua===19&&ep>=3,QJt=Ua>19||Ua===19&&ep>=6,FJt=Ua>=21||Ua===20&&ep>=10||Ua===18&&ep>=19,RJt=Ua>=21||Ua===20&&ep>=10||Ua===18&&ep>=20,TJt=Ua>=22;function $Ie(t){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(t=t.map(e=>ue.fromPortablePath(zs.resolveVirtual(ue.toPortablePath(e)))),ZIe)process.send({"watch:require":t});else for(let e of t)process.send({"watch:require":e})}function Jq(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,o=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,n=/^(\/|\.{1,2}(\/|$))/,u=/\/$/,A=/^\.{0,2}\//,p={name:null,reference:null},h=[],E=new Set;if(t.enableTopLevelFallback===!0&&h.push(p),e.compatibilityMode!==!1)for(let Te of["react-scripts","gatsby"]){let Fe=t.packageRegistry.get(Te);if(Fe)for(let ke of Fe.keys()){if(ke===null)throw new Error("Assertion failed: This reference shouldn't be null");h.push({name:Te,reference:ke})}}let{ignorePattern:I,packageRegistry:v,packageLocatorsByLocations:x}=t;function C(Te,Fe){return{fn:Te,args:Fe,error:null,result:null}}function R(Te){let Fe=process.stderr?.hasColors?.()??process.stdout.isTTY,ke=(et,Ue)=>`\x1B[${et}m${Ue}\x1B[0m`,Ye=Te.error;console.error(Ye?ke("31;1",`\u2716 ${Te.error?.message.replace(/\n.*/s,"")}`):ke("33;1","\u203C Resolution")),Te.args.length>0&&console.error();for(let et of Te.args)console.error(` ${ke("37;1","In \u2190")} ${(0,zq.inspect)(et,{colors:Fe,compact:!0})}`);Te.result&&(console.error(),console.error(` ${ke("37;1","Out \u2192")} ${(0,zq.inspect)(Te.result,{colors:Fe,compact:!0})}`));let be=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(be.length>0){console.error();for(let et of be)console.error(` ${ke("38;5;244",et)}`)}console.error()}function L(Te,Fe){if(e.allowDebug===!1)return Fe;if(Number.isFinite(o)){if(o>=2)return(...ke)=>{let Ye=C(Te,ke);try{return Ye.result=Fe(...ke)}catch(be){throw Ye.error=be}finally{R(Ye)}};if(o>=1)return(...ke)=>{try{return Fe(...ke)}catch(Ye){let be=C(Te,ke);throw be.error=Ye,R(be),Ye}}}return Fe}function U(Te){let Fe=g(Te);if(!Fe)throw ts("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Fe}function z(Te){if(Te.name===null)return!0;for(let Fe of t.dependencyTreeRoots)if(Fe.name===Te.name&&Fe.reference===Te.reference)return!0;return!1}let te=new Set(["node","require",...XIe("--conditions")]);function ae(Te,Fe=te,ke){let Ye=Ae(V.join(Te,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(Ye===null)throw ts("INTERNAL",`The locator that owns the "${Te}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:be}=U(Ye),et=V.join(be,dr.manifest);if(!e.fakeFs.existsSync(et))return null;let Ue=JSON.parse(e.fakeFs.readFileSync(et,"utf8"));if(Ue.exports==null)return null;let S=V.contains(be,Te);if(S===null)throw ts("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");S!=="."&&!A.test(S)&&(S=`./${S}`);try{let w=YIe({packageJSONUrl:(0,id.pathToFileURL)(ue.fromPortablePath(et)),packageSubpath:S,exports:Ue.exports,base:ke?(0,id.pathToFileURL)(ue.fromPortablePath(ke)):null,conditions:Fe});return ue.toPortablePath((0,id.fileURLToPath)(w))}catch(w){throw ts("EXPORTS_RESOLUTION_FAILED",w.message,{unqualifiedPath:cu(Te),locator:Ye,pkgJson:Ue,subpath:cu(S),conditions:Fe},w.code)}}function le(Te,Fe,{extensions:ke}){let Ye;try{Fe.push(Te),Ye=e.fakeFs.statSync(Te)}catch{}if(Ye&&!Ye.isDirectory())return e.fakeFs.realpathSync(Te);if(Ye&&Ye.isDirectory()){let be;try{be=JSON.parse(e.fakeFs.readFileSync(V.join(Te,dr.manifest),"utf8"))}catch{}let et;if(be&&be.main&&(et=V.resolve(Te,be.main)),et&&et!==Te){let Ue=le(et,Fe,{extensions:ke});if(Ue!==null)return Ue}}for(let be=0,et=ke.length;be<et;be++){let Ue=`${Te}${ke[be]}`;if(Fe.push(Ue),e.fakeFs.existsSync(Ue))return Ue}if(Ye&&Ye.isDirectory())for(let be=0,et=ke.length;be<et;be++){let Ue=V.format({dir:Te,name:"index",ext:ke[be]});if(Fe.push(Ue),e.fakeFs.existsSync(Ue))return Ue}return null}function ce(Te){let Fe=new tp.Module(Te,null);return Fe.filename=Te,Fe.paths=tp.Module._nodeModulePaths(Te),Fe}function Ce(Te,Fe){return Fe.endsWith("/")&&(Fe=V.join(Fe,"internal.js")),tp.Module._resolveFilename(ue.fromPortablePath(Te),ce(ue.fromPortablePath(Fe)),!1,{plugnplay:!1})}function de(Te){if(I===null)return!1;let Fe=V.contains(t.basePath,Te);return Fe===null?!1:!!I.test(Fe.replace(/\/$/,""))}let Be={std:3,resolveVirtual:1,getAllLocators:1},Ee=p;function g({name:Te,reference:Fe}){let ke=v.get(Te);if(!ke)return null;let Ye=ke.get(Fe);return Ye||null}function me({name:Te,reference:Fe}){let ke=[];for(let[Ye,be]of v)if(Ye!==null)for(let[et,Ue]of be)et===null||Ue.packageDependencies.get(Te)!==Fe||Ye===Te&&et===Fe||ke.push({name:Ye,reLine truncated
Require request: "${Ye}"
Required by: ${be}
`,{request:Ye,issuer:be});return ue.toPortablePath(S)}let et,Ue=Te.match(a);if(Ue){if(!Fe)throw ts("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ye,issuer:be});let[,S,w]=Ue,b=Ae(Fe);if(!b){let Re=Ce(Te,Fe);if(Re===!1)throw ts("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 doesn't seem to be part of the Yarn-managed dependency tree).
Require path: "${Ye}"
Required by: ${be}
`,{request:Ye,issuer:be});return ue.toPortablePath(Re)}let F=U(b).packageDependencies.get(S),J=null;if(F==null&&b.name!==null){let Re=t.fallbackExclusionList.get(b.name);if(!Re||!Re.has(b.reference)){for(let dt=0,jt=h.length;dt<jt;++dt){let bt=U(h[dt]).packageDependencies.get(S);if(bt!=null){r?J=bt:F=bt;break}}if(t.enableTopLevelFallback&&F==null&&J===null){let dt=t.fallbackPool.get(S);dt!=null&&(J=dt)}}}let X=null;if(F===null)if(z(b))X=ts("MISSING_PEER_DEPENDENCY",`Your application tried to access ${S} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.
Required package: ${S}${S!==Ye?` (via "${Ye}")`:""}
Required by: ${be}
`,{request:Ye,issuer:be,dependencyName:S});else{let Re=we(S,b);Re.every(at=>z(at))?X=ts("MISSING_PEER_DEPENDENCY",`${b.name} tried to access ${S} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.
Required package: ${S}${S!==Ye?` (via "${Ye}")`:""}
Required by: ${b.name}@${b.reference} (via ${be})
${Re.map(at=>`Ancestor breaking the chain: ${at.name}@${at.reference}
`).join("")}
`,{request:Ye,issuer:be,issuerLocator:Object.assign({},b),dependencyName:S,brokenAncestors:Re}):X=ts("MISSING_PEER_DEPENDENCY",`${b.name} tried to access ${S} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.
Required package: ${S}${S!==Ye?` (via "${Ye}")`:""}
Required by: ${b.name}@${b.reference} (via ${be})
${Re.map(at=>`Ancestor breaking the chain: ${at.name}@${at.reference}
`).join("")}
`,{request:Ye,issuer:be,issuerLocator:Object.assign({},b),dependencyName:S,brokenAncestors:Re})}else F===void 0&&(!ke&&(0,tp.isBuiltin)(Te)?z(b)?X=ts("UNDECLARED_DEPENDENCY",`Your application tried to access ${S}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${S} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.
Required package: ${S}${S!==Ye?` (via "${Ye}")`:""}
Required by: ${be}
`,{request:Ye,issuer:be,dependencyName:S}):X=ts("UNDECLARED_DEPENDENCY",`${b.name} tried to access ${S}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${S} isn't otherwise declared in ${b.name}'s dependencies, this makes the require call ambiguous and unsound.
Required package: ${S}${S!==Ye?` (via "${Ye}")`:""}
Required by: ${be}
`,{request:Ye,issuer:be,issuerLocator:Object.assign({},b),dependencyName:S}):z(b)?X=ts("UNDECLARED_DEPENDENCY",`Your application tried to access ${S}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.
Required package: ${S}${S!==Ye?` (via "${Ye}")`:""}
Required by: ${be}
`,{request:Ye,issuer:be,dependencyName:S}):X=ts("UNDECLARED_DEPENDENCY",`${b.name} tried to access ${S}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.
Required package: ${S}${S!==Ye?` (via "${Ye}")`:""}
Required by: ${b.name}@${b.reference} (via ${be})
`,{request:Ye,issuer:be,issuerLocator:Object.assign({},b),dependencyName:S}));if(F==null){if(J===null||X===null)throw X||new Error("Assertion failed: Expected an error to have been set");F=J;let Re=X.message.replace(/\n.*/g,"");X.message=Re,!E.has(Re)&&o!==0&&(E.add(Re),process.emitWarning(X))}let $=Array.isArray(F)?{name:F[0],reference:F[1]}:{name:S,reference:F},ie=U($);if(!ie.packageLocation)throw ts("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.
Required package: ${$.name}@${$.reference}${$.name!==Ye?` (via "${Ye}")`:""}
Required by: ${b.name}@${b.reference} (via ${be})
`,{request:Ye,issuer:be,dependencyLocator:Object.assign({},$)});let Se=ie.packageLocation;w?et=V.join(Se,w):et=Se}else if(V.isAbsolute(Te))et=V.normalize(Te);else{if(!Fe)throw ts("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ye,issuer:be});let S=V.resolve(Fe);Fe.match(u)?et=V.normalize(V.join(S,Te)):et=V.normalize(V.join(V.dirname(S),Te))}return V.normalize(et)}function xe(Te,Fe,ke=te,Ye){if(n.test(Te))return Fe;let be=ae(Fe,ke,Ye);return be?V.normalize(be):Fe}function Ne(Te,{extensions:Fe=Object.keys(tp.Module._extensions)}={}){let ke=[],Ye=le(Te,ke,{extensions:Fe});if(Ye)return V.normalize(Ye);{$Ie(ke.map(Ue=>ue.fromPortablePath(Ue)));let be=cu(Te),et=Ae(Te);if(et){let{packageLocation:Ue}=U(et),S=!0;try{e.fakeFs.accessSync(Ue)}catch(w){if(w?.code==="ENOENT")S=!1;else{let b=(w?.message??w??"empty exception thrown").replace(/^[A-Z]/,y=>y.toLowerCase());throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${b}).
Missing package: ${et.name}@${et.reference}
Expected package location: ${cu(Ue)}
`,{unqualifiedPath:be,extensions:Fe})}}if(!S){let w=Ue.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 ts("QUALIFIED_PATH_RESOLUTION_FAILED",`${w}
Missing package: ${et.name}@${et.reference}
Expected package location: ${cu(Ue)}
`,{unqualifiedPath:be,extensions:Fe})}}throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed.
Source path: ${be}
${ke.map(Ue=>`Not found: ${cu(Ue)}
`).join("")}`,{unqualifiedPath:be,extensions:Fe})}}function ht(Te,Fe,ke){if(!Fe)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let Ye=WIe({name:Te,base:(0,id.pathToFileURL)(ue.fromPortablePath(Fe)),conditions:ke.conditions??te,readFileSyncFn:ne});if(Ye instanceof URL)return Ne(ue.toPortablePath((0,id.fileURLToPath)(Ye)),{extensions:ke.extensions});if(Ye.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return H(Ye,Fe,ke)}function H(Te,Fe,ke={}){try{if(Te.startsWith("#"))return ht(Te,Fe,ke);let{considerBuiltins:Ye,extensions:be,conditions:et}=ke,Ue=Z(Te,Fe,{considerBuiltins:Ye});if(Te==="pnpapi")return Ue;if(Ue===null)return null;let S=()=>Fe!==null?de(Fe):!1,w=(!Ye||!(0,tp.isBuiltin)(Te))&&!S()?xe(Te,Ue,et,Fe):Ue;return Ne(w,{extensions:be})}catch(Ye){throw Object.hasOwn(Ye,"pnpCode")&&Object.assign(Ye.data,{request:cu(Te),issuer:Fe&&cu(Fe)}),Ye}}function rt(Te){let Fe=V.normalize(Te),ke=zs.resolveVirtual(Fe);return ke!==Fe?ke:null}return{VERSIONS:Be,topLevel:Ee,getLocator:(Te,Fe)=>Array.isArray(Fe)?{name:Fe[0],reference:Fe[1]}:{name:Te,reference:Fe},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let Te=[];for(let[Fe,ke]of v)for(let Ye of ke.keys())Fe!==null&&Ye!==null&&Te.push({name:Fe,reference:Ye});return Te},getPackageInformation:Te=>{let Fe=g(Te);if(Fe===null)return null;let ke=ue.fromPortablePath(Fe.packageLocation);return{...Fe,packageLocation:ke}},findPackageLocator:Te=>Ae(ue.toPortablePath(Te)),resolveToUnqualified:L("resolveToUnqualified",(Te,Fe,ke)=>{let Ye=Fe!==null?ue.toPortablePath(Fe):null,be=Z(ue.toPortablePath(Te),Ye,ke);return be===null?null:ue.fromPortablePath(be)}),resolveUnqualified:L("resolveUnqualified",(Te,Fe)=>ue.fromPortablePath(Ne(ue.toPortablePath(Te),Fe))),resolveRequest:L("resolveRequest",(Te,Fe,ke)=>{let Ye=Fe!==null?ue.toPortablePath(Fe):null,be=H(ue.toPortablePath(Te),Ye,ke);return be===null?null:ue.fromPortablePath(be)}),resolveVirtual:L("resolveVirtual",Te=>{let Fe=rt(ue.toPortablePath(Te));return Fe!==null?ue.fromPortablePath(Fe):null})}}Pt();var e1e=(t,e,r)=>{let o=TB(t),a=Uq(o,{basePath:e}),n=ue.join(e,dr.pnpCjs);return Jq(a,{fakeFs:r,pnpapiResolution:n})};var Zq=Ze(r1e());qt();var mA={};Vt(mA,{checkManifestCompatibility:()=>n1e,extractBuildRequest:()=>AQ,getExtractHint:()=>$q,hasBindingGyp:()=>ej});Ge();Pt();function n1e(t){return G.isPackageCompatible(t,Xi.getArchitectureSet())}function AQ(t,e,r,{configuration:o}){let a=[];for(let n of["preinstall","install","postinstall"])e.manifest.scripts.has(n)&&a.push({type:0,script:n});return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&a.push({type:1,script:"node-gyp rebuild"}),a.length===0?null:t.linkType!=="HARD"?{skipped:!0,explain:n=>n.reportWarningOnce(6,`${G.prettyLocator(o,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:n=>n.reportInfoOnce(5,`${G.prettyLocator(o,t)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!o.get("enableScripts")&&!r.built?{skipped:!0,explain:n=>n.reportWarningOnce(4,`${G.prettyLocator(o,t)} lists build scripts, but all build scripts have been disabled.`)}:n1e(t)?{skipped:!1,directives:a}:{skipped:!0,explain:n=>n.reportWarningOnce(76,`${G.prettyLocator(o,t)} The ${Xi.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var zIt=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function $q(t){return t.packageFs.getExtractHint({relevantExtensions:zIt})}function ej(t){let e=V.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var jB={};Vt(jB,{getUnpluggedPath:()=>qB});Ge();Pt();function qB(t,{configuration:e}){return V.resolve(e.get("pnpUnpluggedFolder"),G.slugifyLocator(t))}var JIt=new Set([G.makeIdent(null,"open").identHash,G.makeIdent(null,"opn").identHash]),Hh=class{constructor(){this.mode="strict";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let o=qh(r.project).cjs;if(!oe.existsSync(o))throw new st(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=He.getFactoryWithDefault(this.pnpCache,o,()=>He.dynamicRequire(o,{cachingStrategy:He.CachingStrategy.FsTime})),n={name:G.stringifyIdent(e),reference:e.reference},u=a.getPackageInformation(n);if(!u)throw new st(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return ue.toPortablePath(u.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return nullLine truncated
`,n+=`# cause your node_modules installation to become invalidated.
`,n+=`
`,n+=`__metadata:
`,n+=` version: ${d1e}
`,n+=` nmMode: ${o.value}
`;let u=Array.from(e.keys()).sort(),A=G.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let E of u){let I=e.get(E);n+=`
`,n+=`${JSON.stringify(E)}:
`,n+=` locations:
`;for(let v of I.locations){let x=V.contains(t.cwd,v);if(x===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` - ${JSON.stringify(x)}
`}if(I.aliases.length>0){n+=` aliases:
`;for(let v of I.aliases)n+=` - ${JSON.stringify(v)}
`}if(E===A&&r.size>0){n+=` bin:
`;for(let[v,x]of r){let C=V.contains(t.cwd,v);if(C===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` ${JSON.stringify(C)}:
`;for(let[R,L]of x){let U=V.relative(V.join(v,Di),L);n+=` ${JSON.stringify(R)}: ${JSON.stringify(U)}
`}}}}let p=t.cwd,h=V.join(p,Di,m1e);a&&await oe.removePromise(h),await oe.changeFilePromise(h,n,{automaticNewlines:!0})}async function lj(t,{unrollAliases:e=!1}={}){let r=t.cwd,o=V.join(r,Di,m1e),a;try{a=await oe.statPromise(o)}catch{}if(!a)return null;let n=Ki(await oe.readFilePromise(o,"utf8"));if(n.__metadata.version>d1e)return null;let u=n.__metadata.nmMode||"classic",A=new Map,p=new Map;delete n.__metadata;for(let[h,E]of Object.entries(n)){let I=E.locations.map(x=>V.join(r,x)),v=E.bin;if(v)for(let[x,C]of Object.entries(v)){let R=V.join(r,ue.toPortablePath(x)),L=He.getMapWithDefault(p,R);for(let[U,z]of Object.entries(C))L.set(U,ue.toPortablePath([R,Di,z].join(V.sep)))}if(A.set(h,{target:It.dot,linkType:"HARD",locations:I,aliases:E.aliases||[]}),e&&E.aliases)for(let x of E.aliases){let{scope:C,name:R}=G.parseLocator(h),L=G.makeLocator(G.makeIdent(C,R),x),U=G.stringifyLocator(L);A.set(U,{target:It.dot,linkType:"HARD",locations:I,aliases:[]})}}return{locatorMap:A,binSymlinks:p,locationTree:y1e(A,{skipPrefix:t.cwd}),nmMode:u,mtimeMs:a.mtimeMs}}var AC=async(t,e)=>{if(t.split(V.sep).indexOf(Di)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{let r;if(!e.innerLoop&&(r=await oe.lstatPromise(t),!r.isDirectory()&&!r.isSymbolicLink()||r.isSymbolicLink()&&!e.isWorkspaceDir)){await oe.unlinkPromise(t);return}let o=await oe.readdirPromise(t,{withFileTypes:!0});for(let n of o){let u=V.join(t,n.name);n.isDirectory()?(n.name!==Di||e&&e.innerLoop)&&await AC(u,{innerLoop:!0,contentsOnly:!1}):await oe.unlinkPromise(u)}let a=!e.innerLoop&&e.isWorkspaceDir&&r?.isSymbolicLink();!e.contentsOnly&&!a&&await oe.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},f1e=4,pQ=(t,{skipPrefix:e})=>{let r=V.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let o=r.split(V.sep).filter(p=>p!==""),a=o.indexOf(Di),n=o.slice(0,a).join(V.sep),u=V.join(e,n),A=o.slice(a);return{locationRoot:u,segments:A}},y1e=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let o=()=>({children:new Map,linkType:"HARD"});for(let[a,n]of t.entries()){if(n.linkType==="SOFT"&&V.contains(e,n.target)!==null){let A=He.getFactoryWithDefault(r,n.target,o);A.locator=a,A.linkType=n.linkType}for(let u of n.locations){let{locationRoot:A,segments:p}=pQ(u,{skipPrefix:e}),h=He.getFactoryWithDefault(r,A,o);for(let E=0;E<p.length;++E){let I=p[E];if(I!=="."){let v=He.getFactoryWithDefault(h.children,I,o);h.children.set(I,v),h=v}E===p.length-1&&(h.locator=a,h.linkType=n.linkType)}}}return r},Aj=async(t,e,r)=>{if(process.platform==="win32"&&r==="junctions"){let o;try{o=await oe.lstatPromise(t)}catch{}if(!o||o.isDirectory()){await oe.symlinkPromise(t,e,"junction");return}}await oe.symlinkPromise(V.relative(V.dirname(e),t),e)};async function E1e(t,e,r){let o=V.join(t,`${cj.default.randomBytes(16).toString("hex")}.tmp`);try{await oe.writeFilePromise(o,r);try{await oe.linkPromise(o,e)}catch{}}finally{await oe.unlinkPromise(o)}}async function w1t({srcPath:t,dstPath:e,entry:r,globalHardlinksStore:o,baseFs:a,nmMode:n}){if(r.kind==="file"){if(n.value==="hardlinks-global"&&o&&r.digest){let A=V.join(o,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),p;try{let h=await oe.statPromise(A);if(h&&(!r.mtimeMs||h.mtimeMs>r.mtimeMs||h.mtimeMs<r.mtimeMs-y1t))if(await wn.checksumFile(A,{baseFs:oe,algorithm:"sha1"})!==r.digest){let I=V.join(o,`${cj.default.randomBytes(16).toString("hex")}.tmp`);await oe.renamePromise(A,I);let v=await a.readFilePromise(t);await oe.writeFilePromise(I,v);try{await oe.linkPromise(I,A),r.mtimeMs=new Date().getTime(),await oe.unlinkPromise(I)}catch{}}else r.mtimeMs||(r.mtimeMs=Math.ceil(h.mtimeMs));await oe.linkPromise(A,e),p=!0}catch{p=!1}if(!p){let h=await a.readFilePromise(t);await E1e(o,A,h),r.mtimeMs=new Date().getTime();try{await oe.linkPromise(A,e)}catch(E){E&&E.code&&E.code=="EXDEV"&&(n.value="hardlinks-local",await a.copyFilePromise(t,e))}}}else await a.copyFilePromise(t,e);let u=r.mode&511;u!==420&&await oe.chmodPromise(e,u)}}var I1t=async(t,e,{baseFs:r,globalHardlinksStore:o,nmMode:a,windowsLinkType:n,packageChecksum:u})=>{await oe.mkdirPromise(t,{recursive:!0});let A=async(E=It.dot)=>{let I=V.join(e,E),v=await r.readdirPromise(I,{withFileTypes:!0}),x=new Map;for(let C of v){let R=V.join(E,C.name),L,U=V.join(I,C.name);if(C.isFile()){if(L={kind:"file",mode:(await r.lstatPromise(U)).mode},a.value==="hardlinks-global"){let z=await wn.checksumFile(U,{baseFs:r,algorithm:"sha1"});L.digest=z}}else if(C.isDirectory())L={kind:"directory"};else if(C.isSymbolicLink())L={kind:"symlink",symlinkTo:await r.readlinkPromise(U)};else throw new Error(`Unsupported file type (file: ${U}, mode: 0o${await r.statSync(U).mode.toString(8).padStart(6,"0")})`);if(x.set(R,L),C.isDirectory()&&R!==Di){let z=await A(R);for(let[te,ae]of z)x.set(te,ae)}}return x},p;if(a.value==="hardlinks-global"&&o&&u){let E=V.join(o,u.sub Line truncated
`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:o}=await(0,mj.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(`
`),o}function dQ(t){if(t.originalError?.name!=="HTTPError")return!1;try{return(t.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function pC(t){return{"npm-otp":t}}var VB=class{supports(e,r){if(!e.reference.startsWith(Wn))return!1;let{selector:o,params:a}=G.parseRange(e.reference);return!(!S1e.default.valid(o)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let{params:o}=G.parseRange(e.reference);if(o===null||typeof o.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await ad(o.__archiveUrl,{customErrorMessage:od,configuration:r.project.configuration,ident:e});return await $i.convertToZip(a,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ge();var zB=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Wn)||!G.tryParseDescriptor(e.range.slice(Wn.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){let o=r.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Wn.length),!0));return r.resolver.getResolutionDependencies(o,r)}async getCandidates(e,r,o){let a=o.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Wn.length),!0));return await o.resolver.getCandidates(a,r,o)}async getSatisfying(e,r,o,a){let n=a.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Wn.length),!0));return a.resolver.getSatisfying(n,r,o,a)}resolve(e,r){throw new Error("Unreachable")}};Ge();Ge();var x1e=Ze(Jn());var rp=class t{supports(e,r){if(!e.reference.startsWith(Wn))return!1;let o=new URL(e.reference);return!(!x1e.default.valid(o.pathname)||o.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o;try{o=await ad(t.getLocatorUrl(e),{customErrorMessage:od,configuration:r.project.configuration,ident:e})}catch{o=await ad(t.getLocatorUrl(e).replace(/%2f/g,"/"),{customErrorMessage:od,configuration:r.project.configuration,ident:e})}return await $i.convertToZip(o,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:o}){let a=fC(e.scope,{configuration:o}),n=t.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+n||r===a+n.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=Lr.clean(e.reference.slice(Wn.length));if(r===null)throw new Jt(10,"The npm semver resolver got selected, but the version isn't semver");return`${hQ(e)}/-/${e.name}-${r}.tgz`}};Ge();Ge();Ge();var Ej=Ze(Jn());var mQ=G.makeIdent(null,"node-gyp"),j1t=/\b(node-gyp|prebuild-install)\b/,JB=class{supportsDescriptor(e,r){return e.range.startsWith(Wn)?!!Lr.validRange(e.range.slice(Wn.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(Wn))return!1;let{selector:o}=G.parseRange(e.reference);return!!Ej.default.valid(o)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=Lr.validRange(e.range.slice(Wn.length));if(a===null)throw new Error(`Expected a valid range, got ${e.range.slice(Wn.length)}`);let n=await hC(e,{cache:o.fetchOptions?.cache,project:o.project,version:Ej.default.valid(a.raw)?a.raw:void 0}),u=He.mapAndFilter(Object.keys(n.versions),h=>{try{let E=new Lr.SemVer(h);if(a.test(E))return E}catch{}return He.mapAndFilter.skip}),A=u.filter(h=>!n.versions[h.raw].deprecated),p=A.length>0?A:u;return p.sort((h,E)=>-h.compare(E)),p.map(h=>{let E=G.makeLocator(e,`${Wn}${h.raw}`),I=n.versions[h.raw].dist.tarball;return rp.isConventionalTarballUrl(E,I,{configuration:o.project.configuration})?E:G.bindLocator(E,{__archiveUrl:I})})}async getSatisfying(e,r,oLine truncated
`;try{a=await oe.readFilePromise(e,"utf8")}catch(n){if(n.code==="ENOENT")return a;throw n}return a}var A5={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}},wBe={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"}},qvt={configuration:{...A5,...wBe,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...A5,...wBe}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:ac,valueDefinition:{description:"",type:"SHAPE",properties:{...A5}}}},fetchers:[VB,rp],resolvers:[zB,JB,XB]},jvt=qvt;var w5={};Vt(w5,{NpmAuditCommand:()=>SC,NpmInfoCommand:()=>xC,NpmLoginCommand:()=>kC,NpmLogoutCommand:()=>FC,NpmPublishCommand:()=>RC,NpmTagAddCommand:()=>NC,NpmTagListCommand:()=>TC,NpmTagRemoveCommand:()=>LC,NpmWhoamiCommand:()=>MC,default:()=>Jvt,npmAuditTypes:()=>dv,npmAuditUtils:()=>HQ});Ge();Ge();qt();var m5=Ze($o());el();var dv={};Vt(dv,{Environment:()=>hv,Severity:()=>gv});var hv=(o=>(o.All="all",o.Production="production",o.Development="development",o))(hv||{}),gv=(n=>(n.Info="info",n.Low="low",n.Moderate="moderate",n.High="high",n.Critical="critical",n))(gv||{});var HQ={};Vt(HQ,{allSeverities:()=>bC,getPackages:()=>d5,getReportTree:()=>h5,getSeverityInclusions:()=>p5,getTopLevelDependencies:()=>g5});Ge();var IBe=Ze(Jn());var bC=["info","low","moderate","high","critical"];function p5(t){if(typeof t>"u")return new Set(bC);let e=bC.indexOf(t),r=bC.slice(e);return new Set(r)}function h5(t){let e={},r={children:e};for(let[o,a]of He.sortMap(Object.entries(t),n=>n[0]))for(let n of He.sortMap(a,u=>`${u.id}`))e[`${o}/${n.id}`]={value:pe.tuple(pe.Type.IDENT,G.parseIdent(o)),children:{ID:typeof n.id<"u"&&{label:"ID",value:pe.tuple(pe.Type.ID,n.id)},Issue:{label:"Issue",value:pe.tuple(pe.Type.NO_HINT,n.title)},URL:typeof n.url<"u"&&{label:"URL",value:pe.tuple(pe.Type.URL,n.url)},Severity:{label:"Severity",value:pe.tuple(pe.Type.NO_HINT,n.severity)},"Vulnerable Versions":{label:"Vulnerable Versions",value:pe.tuple(pe.Type.RANGE,n.vulnerable_versions)},"Tree Versions":{label:"Tree Versions",children:[...n.versions].sort(IBe.default.compare).map(u=>({value:pe.tuple(pe.Type.REFERENCE,u)}))},Dependents:{label:"Dependents",children:He.sortMap(n.dependents,u=>G.stringifyLocator(u)).map(u=>({value:pe.tuple(pe.Type.LOCATOR,u)}))}}};return r}function g5(t,e,{all:r,environment:o}){let a=[],n=r?t.workspaces:[e],u=["all","production"].includes(o),A=["all","development"].includes(o);for(let p of n)for(let h of p.anchoredPackage.dependencies.values())(p.manifest.devDependencies.has(h.identHash)?!A:!u)||a.push({workspace:p,dependency:h});return a}function d5(t,e,{recursive:r}){let o=new Map,a=new Set,n=[],u=(A,p)=>{let h=t.storedResolutions.get(p.descriptorHash);if(typeof h>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(h))a.add(h);else return;let E=t.storedPackages.get(h);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");if(G.ensureDevirtualizedLocator(E).reference.startsWith("npm:")&&E.version!==null){let v=G.stringifyIdent(E),x=He.getMapWithDefault(o,v);He.getArrayWithDefault(x,E.version).push(A)}if(r)for(let v of E.dependencies.values())n.push([E,v])};for(let{workspace:A,dependency:p}of e)n.push([A.anchoredLocator,p]);for(;n.length>0;){let[A,p]=n.shift();u(A,p)}return o}var SC=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=ge.String("--environment","all",{description:"Which environments to cover",validator:Js(hv)});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.noDeprecations=ge.Boolean("--no-deprecations",!1,{description:"Don't warn about deprecated packages"});this.severity=ge.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Js(gv)});this.excludes=ge.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=ge.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}static{this.paths=[["npm","audit"]]}static{this.usage=it.Usage({descript Line truncated
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\`.
Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${bC.map(r=>`\`${r}\``).join(", ")}.
If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages.
If certain packages produce false positives for a particular environment, the \`--exclude\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \`npmAuditExcludePackages\` option.
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 package\` 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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=g5(o,a,{all:this.all,environment:this.environment}),u=d5(o,n,{recursive:this.recursive}),A=Array.from(new Set([...r.get("npmAuditExcludePackages"),...this.excludes])),p=Object.create(null);for(let[L,U]of u)A.some(z=>m5.default.isMatch(L,z))||(p[L]=[...U.keys()]);let h=Zn.getAuditRegistry({configuration:r}),E,I=await AA.start({configuration:r,stdout:this.context.stdout},async()=>{let L=Zr.post("/-/npm/v1/security/advisories/bulk",p,{authType:Zr.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:h}),U=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(p),async([te,ae])=>{let le=await Zr.getPackageMetadata(G.parseIdent(te),{project:o});return He.mapAndFilter(ae,ce=>{let{deprecated:Ce}=le.versions[ce];return Ce?[te,ce,Ce]:He.mapAndFilter.skip})})),z=await L;for(let[te,ae,le]of U.flat(1))Object.hasOwn(z,te)&&z[te].some(ce=>Lr.satisfiesWithPrereleases(ae,ce.vulnerable_versions))||(z[te]??=[],z[te].push({id:`${te} (deprecation)`,title:le.trim()||"This package has been deprecated.",severity:"moderate",vulnerable_versions:ae}));E=z});if(I.hasErrors())return I.exitCode();let v=p5(this.severity),x=Array.from(new Set([...r.get("npmAuditIgnoreAdvisories"),...this.ignores])),C=Object.create(null);for(let[L,U]of Object.entries(E)){let z=U.filter(te=>!m5.default.isMatch(`${te.id}`,x)&&v.has(te.severity));z.length>0&&(C[L]=z.map(te=>{let ae=u.get(L);if(typeof ae>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let le=[...ae.keys()].filter(Ce=>Lr.satisfiesWithPrereleases(Ce,te.vulnerable_versions)),ce=new Map;for(let Ce of le)for(let de of ae.get(Ce))ce.set(de.locatorHash,de);return{...te,versions:le,dependents:[...ce.values()]}}))}let R=Object.keys(C).length>0;return R?(fs.emitTree(h5(C),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Rt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async L=>{L.reportInfo(1,"No audit suggestions")}),R?1:0)}};Ge();Ge();Pt();qt();var y5=Ze(Jn()),E5=ve("util"),xC=class extends ut{constructor(){super(...arguments);this.fields=ge.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=ge.Rest()}static{this.paths=[["npm","info"]]}static{this.usage=it.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 `@<range>` 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 [email protected]","yarn npm info [email protected]"],["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"],["Sh Line truncated
`),this.context.stdout.write(`${(0,E5.inspect)(p,{depth:1/0,colors:!0,compact:!1})}
`);return A.exitCode()}};function C5(t){if(Array.isArray(t)){let e=[];for(let r of t)r=C5(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let o=C5(t[r]);o&&(e[r]=o)}return e}else return t||null}Ge();Ge();qt();var BBe=Ze(J1()),kC=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=ge.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}static{this.paths=[["npm","login"]]}static{this.usage=it.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 execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await qQ({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Rt.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let u=await Wvt({configuration:r,registry:o,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),A=await Gvt(o,u,r);return await Yvt(o,A,{alwaysAuth:this.alwaysAuth,scope:this.scope}),n.reportInfo(0,"Successfully logged in")})).exitCode()}};async function qQ({scope:t,publish:e,configuration:r,cwd:o}){return t&&e?Zn.getScopeRegistry(t,{configuration:r,type:Zn.RegistryType.PUBLISH_REGISTRY}):t?Zn.getScopeRegistry(t,{configuration:r}):e?Zn.getPublishRegistry((await _y(r,o)).manifest,{configuration:r}):Zn.getDefaultRegistry({configuration:r})}async function Gvt(t,e,r){let o=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,a={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},n={attemptedAs:e.name,configuration:r,registry:t,jsonResponse:!0,authType:Zr.AuthType.NO_AUTH};try{return(await Zr.put(o,a,n)).token}catch(E){if(!(E.originalError?.name==="HTTPError"&&E.originalError?.response.statusCode===409))throw E}let u={...n,authType:Zr.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},A=await Zr.get(o,u);for(let[E,I]of Object.entries(A))(!a[E]||E==="roles")&&(a[E]=I);let p=`${o}/-rev/${a._rev}`;return(await Zr.put(p,a,u)).token}async function Yvt(t,e,{alwaysAuth:r,scope:o}){let a=u=>A=>{let p=He.isIndexableObject(A)?A:{},h=p[u],E=He.isIndexableObject(h)?h:{};return{...p,[u]:{...E,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:e}}},n=o?{npmScopes:a(o)}:{npmRegistries:a(t)};return await Ke.updateHomeConfiguration(n)}async function Wvt({configuration:t,registry:e,report:r,stdin:o,stdout:a}){r.reportInfo(0,`Logging in to ${pe.pretty(t,e,pe.Type.URL)}`);let n=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),r.reportSeparator(),t.env.YARN_IS_TEST_ENV)return{name:t.env.YARN_INJECT_NPM_USER||"",password:t.env.YARN_INJECT_NPM_PASSWORD||""};let u=await(0,BBe.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a}]);return r.reportSeparator(),u}Ge();Ge();qt();var QC=new Set(["npmAuthIdent","npmAuthToken"]),FC=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=ge.Boolean("-A,--all",!1,{description:"Logout of all registries"})}static{this.paths=[["npm","logout"]]}static{this.usage=it.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.\Line truncated
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 execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n;if(typeof this.package<"u")n=G.parseIdent(this.package);else{if(!a)throw new sr(o.cwd,this.context.cwd);if(!a.manifest.name)throw new st(`Missing 'name' field in ${ue.fromPortablePath(V.join(a.cwd,dr.manifest))}`);n=a.manifest.name}let u=await mv(n,r),p={children:He.sortMap(Object.entries(u),([h])=>h).map(([h,E])=>({value:pe.tuple(pe.Type.RESOLUTION,{descriptor:G.makeDescriptor(n,h),locator:G.makeLocator(n,E)})}))};return fs.emitTree(p,{configuration:r,json:this.json,stdout:this.context.stdout})}};async function mv(t,e){let r=`/-/package${Zr.getIdentUrl(t)}/dist-tags`;return Zr.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:Zr.customPackageError})}var NC=class extends ut{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}static{this.paths=[["npm","tag","add"]]}static{this.usage=it.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 [email protected] beta"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);let n=G.parseDescriptor(this.package,!0),u=n.range;if(!DBe.default.valid(u))throw new st(`The range ${pe.pretty(r,n.range,pe.Type.RANGE)} must be a valid semver version`);let A=Zn.getPublishRegistry(a.manifest,{configuration:r}),p=pe.pretty(r,n,pe.Type.IDENT),h=pe.pretty(r,u,pe.Type.RANGE),E=pe.pretty(r,this.tag,pe.Type.CODE);return(await Rt.start({configuration:r,stdout:this.context.stdout},async v=>{let x=await mv(n,r);Object.hasOwn(x,this.tag)&&x[this.tag]===u&&v.reportWarning(0,`Tag ${E} is already set to version ${h}`);let C=`/-/package${Zr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Zr.put(C,u,{configuration:r,registry:A,ident:n,jsonRequest:!0,jsonResponse:!0}),v.reportInfo(0,`Tag ${E} added to version ${h} of package ${p}`)})).exitCode()}};Ge();qt();var LC=class extends ut{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}static{this.paths=[["npm","tag","remove"]]}static{this.usage=it.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"]]})}async execute(){if(this.tag==="latest")throw new st("The 'latest' tag cannot be removed.");let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);let n=G.parseIdent(this.package),u=Zn.getPublishRegistry(a.manifest,{configuration:r}),A=pe.pretty(r,this.tag,pe.Type.CODE),p=pe.pretty(r,n,pe.Type.IDENT),h=await mv(n,r);if(!Object.hasOwn(h,this.tag))throw new st(`${A} is not a tag of package ${p}`);return(await Rt.start({configuration:r,stdout:this.context.stdout},async I=>{let v=`/-/package${Zr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Zr.del(v,{configuration:r,registry:u,ident:n,jsonResponse:!0}),I.reportInfo(0,`Tag ${A} removed from package ${p}`)})).exitCode()}};Ge();Ge();qt();var MC=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Print username for the publish registry"})}static{this.paths=[["npm","whoami"]]}static{this.usage=it.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"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o;return this.scope&&this.publish?o=Zn.getScopeRegistry(this.scope,{configuration:r,type:Zn.RegistryType.PUBLISH_REGISTRY}):this.scope?o=Zn.getScopeRegistry(this.scope,{configuration:r}):this.publish?o=Zn.getPublishRegistry((await _y(r,this.context.cwd)).manifest,{configuration:r}):o=Zn.getDefaultRegistry({configuration:r}),(await Rt.start({configuration:r,stdout:this.context.stdout},async n=>{let u;try{u=await Zr.get("/-/whoami",{configuration:r,registry:o,authType:Zr.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?G.makeIdent(this.scope,""):void 0})}catch(A){if(A.response?.statusCode===401||A.response?.statusCode===403){n.reportError(41,"Authentication failed - your credentials may have expired");return}else throw A}n.reportInfo(0,u.username)})).exitCode()}};var zvt={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:[SC,xC,kC,FC,RC,NC,TC,LC,MC]},Jvt=zvt;var S5={};Vt(S5,{PatchCommand:()=>jC,PatchCommitCommand:()=>qC,PatchFetcher:()=>Iv,PatchResolver:()=>Bv,default:()=>hDt,patchUtils:()=>pd});Ge();Ge();Pt();nA();var pd={};Vt(pd,{applyPatchFile:()=>GQ,diffFolders:()=>P5,ensureUnpatchedDescriptor:()=>I5,ensureUnpatchedLocator:()=>WQ,extractPackageToDisk:()=>D5,extractPatchFlags:()=>FBe,isParentRequired:()=>v5,isPatchDescriptor:()=>YQ,isPatchLocator:()=>$h,loadPatchFiles:()=>wv,makeDescriptor:()=>KQ,makeLocator:()=>B5,makePatchHash:()=>b5,parseDescriptor:()=>Ev,parseLocator:()=>Cv,parsePatchFile:()=>yv,unpatchDescriptor:()=>ADt,unpatchLocator:()=>fDt});Ge();Pt();Ge();Pt();var Xvt=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function OC(t){return V.relative(It.root,V.resolve(It.root,ue.toPortablePath(t)))}function Zvt(t){let e=t.trim().match(Xvt);if(!e)throw new Error(`Bad header line: '${t}'`);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 $vt=420,eDt=493;var PBe=()=>({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}),tDt=t=>({header:Zvt(t),parts:[]}),rDt={"@":"header","-":"deletion","+":"insertion"," ":"context","\\":"pragma",undefined:"context"};function nDt(t){let e=[],r=PBe(),o="parsing header",a=null,n=null;function u(){a&&(n&&(a.parts.push(n),n=null),r.hunks.push(a),a=null)}function A(){Line truncated
`)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":`
`):"";await e.mkdirpPromise(V.dirname(a.path),{chmod:493,utimes:[Bi.SAFE_TIME,Bi.SAFE_TIME]}),await e.writeFilePromise(a.path,n,{mode:a.mode}),await e.utimesPromise(a.path,Bi.SAFE_TIME,Bi.SAFE_TIME)}break;case"patch":await _C(e,a.path,async()=>{await lDt(a,{baseFs:e,dryRun:r})});break;case"mode change":{let u=(await e.statPromise(a.path)).mode;if(bBe(a.newMode)!==bBe(u))continue;await _C(e,a.path,async()=>{await e.chmodPromise(a.path,a.newMode)})}break;default:He.assertNever(a);break}}function bBe(t){return(t&64)>0}function SBe(t){return t.replace(/\s+$/,"")}function aDt(t,e){return SBe(t)===SBe(e)}async function lDt({hunks:t,path:e},{baseFs:r,dryRun:o=!1}){let a=await r.statSync(e).mode,u=(await r.readFileSync(e,"utf8")).split(/\n/),A=[],p=0,h=0;for(let I of t){let v=Math.max(h,I.header.patched.start+p),x=Math.max(0,v-h),C=Math.max(0,u.length-v-I.header.original.length),R=Math.max(x,C),L=0,U=0,z=null;for(;L<=R;){if(L<=x&&(U=v-L,z=xBe(I,u,U),z!==null)){L=-L;break}if(L<=C&&(U=v+L,z=xBe(I,u,U),z!==null))break;L+=1}if(z===null)throw new UC(t.indexOf(I),I);A.push(z),p+=L,h=U+I.header.original.length}if(o)return;let E=0;for(let I of A)for(let v of I)switch(v.type){case"splice":{let x=v.index+E;u.splice(x,v.numToDelete,...v.linesToInsert),E+=v.linesToInsert.length-v.numToDelete}break;case"pop":u.pop();break;case"push":u.push(v.line);break;default:He.assertNever(v);break}await r.writeFilePromise(e,u.join(`
`),{mode:a})}function xBe(t,e,r){let o=[];for(let a of t.parts)switch(a.type){case"context":case"deletion":{for(let n of a.lines){let u=e[r];if(u==null||!aDt(u,n))return null;r+=1}a.type==="deletion"&&(o.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&o.push({type:"push",line:""}))}break;case"insertion":o.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&o.push({type:"pop"});break;default:He.assertNever(a.type);break}return o}var uDt=/^builtin<([^>]+)>$/;function HC(t,e){let{protocol:r,source:o,selector:a,params:n}=G.parseRange(t);if(r!=="patch:")throw new Error("Invalid patch range");if(o===null)throw new Error("Patch locators must explicitly define their source");let u=a?a.split(/&/).map(E=>ue.toPortablePath(E)):[],A=n&&typeof n.locator=="string"?G.parseLocator(n.locator):null,p=n&&typeof n.version=="string"?n.version:null,h=e(o);return{parentLocator:A,sourceItem:h,patchPaths:u,sourceVersion:p}}function YQ(t){return t.range.startsWith("patch:")}function $h(t){return t.reference.startsWith("patch:")}function Ev(t){let{sourceItem:e,...r}=HC(t.range,G.parseDescriptor);return{...r,sourceDescriptor:e}}function Cv(t){let{sourceItem:e,...r}=HC(t.reference,G.parseLocator);return{...r,sourceLocator:e}}function ADt(t){let{sourceItem:e}=HC(t.range,G.parseDescriptor);return e}function fDt(t){let{sourceItem:e}=HC(t.reference,G.parseLocator);return e}function I5(t){if(!YQ(t))return t;let{sourceItem:e}=HC(t.range,G.parseDescriptor);return e}function WQ(t){if(!$h(t))return t;let{sourceItem:e}=HC(t.reference,G.parseLocator);return e}function kBe({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:o,patchHash:a},n){let u=t!==null?{locator:G.stringifyLocator(t)}:{},A=typeof o<"u"?{version:o}:{},p=typeof a<"u"?{hash:a}:{};return G.makeRange({protocol:"patch:",source:n(e),selector:r.join("&"),params:{...A,...p,...u}})}function KQ(t,{parentLocator:e,sourceDescriptor:r,patchPaths:o}){return G.makeDescriptor(t,kBe({parentLocator:e,sourceItem:r,patchPaths:o},G.stringifyDescriptor))}function B5(t,{parentLocator:e,sourcePackage:r,patchPaths:o,patchHash:a}){return G.makeLocator(t,kBe({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:o,patchHash:a},G.stringifyLocator))}function QBe({onAbsolute:t,onRelative:e,onProject:r,onBuiltin:o},a){let n=a.lastIndexOf("!");n!==-1&&(a=a.slice(n+1));let u=a.match(uDt);return u!==null?o(u[1]):a.startsWith("~/")?r(a.slice(2)):V.isAbsolute(a)?t(a):e(a)}function FBe(t){let e=t.lastIndexOf("!");return{optional:(e!==-1?new Set(t.slice(0,e).split(/!/)):new Set).has("optional")}}function v5(t){return QBe({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},t)}async function wv(t,e,r){let o=t!==null?await r.fetcher.fetch(t,r):null,a=o&&o.localPath?{packageFs:new gn(It.root),prefixPath:V.relative(It.root,o.localPath)}:o;o&&o!==a&&o.releaseFs&&o.releaseFs();let n=await He.releaseAfterUseAsync(async()=>await Promise.all(e.map(async u=>{let A=FBe(u),p=await QBe({onAbsolute:async h=>await oe.readFilePromise(h,"utf8"),onRelative:async h=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(V.join(a.prefixPath,h),"utf8")},onProject:async h=>await oe.readFilePromise(V.join(r.project.cwd,h),"utf8"),onBuiltin:async h=>await r.project.configuration.firstHook(E=>E.getBuiltinPatch,r.project,h)},u);return{...A,source:p}})));for(let u of n)typeof u.source=="string"&&(u.source=u.source.replace(/\r\n?/g,`
`));return n}async function D5(t,{cache:e,project:r}){let o=r.storedPackages.get(t.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=WQ(t),n=r.storedChecksums,u=new ki,A=await oe.mktempPromise(),p=V.join(A,"source"),h=V.join(A,"user"),E=V.join(A,".yarn-patch.json"),I=r.configuration.makeFetcher(),v=[];try{let x,C;if(t.locatorHash===a.locatorHash){let R=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u});v.push(()=>R.releaseFs?.()),x=R,C=R}else x=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u}),v.push(()=>x.releaseFs?.()),C=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u}),v.push(()=>C.releaseFs?.());await Promise.all([oe.copyPromise(p,x.prefixPath,{baseFs:x.packageFs}),oe.copyPromise(h,C.prefixPath,{baseFs:C.packageFs}),oe.writeJsonPromise(E,{locator:G.stringifyLocator(t),version:o.version})])}finally{for(let x of v)x()}return oe.detachTemp(A),h}async function P5(t,e){let r=ue.fromPortablePath(t).replace(/\\/g,"/"),o=ue.fromPortablePath(e).replace(/\\/g,"/"),{stdout:a,stderr:n}=await Ur.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,o],{cwd:ue.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(n.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':
${n}`);let u=r.startsWith("/")?A=>A.slice(1):A=>A;return a.replace(new RegExp(`(a|b)(${He.escapeRegExp(`/${u(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${He.escapeRegExp(`/${u(o)}/`)}`,"g"),"$1/").replace(new RegExp(He.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(He.escapeRegExp(`${o}/`),"g"),"")}function b5(t,e){let r=[];for(let{source:o}of t){if(o===null)continue;let a=yv(o);for(let n of a){let{semverExclusivity:u,...A}=n;u!==null&&e!==null&&!Lr.satisfiesWithPrereleases(e,u)||r.push(JSON.stringify(A))}}return wn.makeHash(`${3}`,...r).slice(0,6)}Ge();function RBe(t,{configuration:e,report:r}){for(let o of t.parts)for(let a of o.lines)switch(o.type){case"context":r.reportInfo(null,` ${pe.pretty(e,a,"grey")}`);break;case"deletion":r.reportError(28,`- ${pe.pretty(e,a,pe.Type.REMOVED)}`);break;case"insertion":r.reportError(28,`+ ${pe.pretty(e,a,pe.Type.ADDED)}`);break;default:He.assertNever(o.type)}}var Iv=class{supports(e,r){return!!$h(e)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async patchPackage(e,r){let{parentLocator:o,sourceLocator:a,sourceVersion:n,patchPaths:u}=Cv(e),A=await wv(o,u,r),p=await oe.mktempPromise(),h=V.join(p,"current.zip"),E=await r.fetcher.fetch(a,r),I=G.getIdentVendorPath(e),v=new Zi(h,{create:!0,level:r.project.configuration.get("compressionLevel")});await He.releaseAfterUseAsync(async()=>{await v.copyPromise(I,E.prefixPath,{baseFs:E.packageFs,stableSort:!0})},E.releaseFs),v.saveAndClose();for(let{source:x,optional:C}of A){if(x===null)continue;let R=new Zi(h,{level:r.project.configuration.get("compressionLevel")}),L=new gn(V.resolve(It.root,I),{baseFs:R});try{await GQ(yv(x),{baseFs:L,version:n})}catch(U){if(!(U instanceof UC))throw U;let z=r.project.configuration.get("enableInlineHunks"),te=!z&&!C?" (set enableInlineHunks for details)":"",ae=`${G.prettyLocator(r.project.configuration,e)}: ${U.message}${te}`,le=ce=>{z&&RBe(U.hunk,{configuration:r.project.configuration,report:ce})};if(R.discardAndClose(),C){r.report.reportWarningOnce(66,ae,{reportExtra:le});continue}else throw new Jt(66,ae,le)}R.saveAndClose()}return new Zi(h,{level:r.project.configuration.get("compressionLevel")})}};Ge();var Bv=class{supportsDescriptor(e,r){return!!YQ(e)}supportsLocator(e,r){return!!$h(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){let{patchPaths:a}=Ev(e);return a.every(n=>!v5(n))?e:G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:o}=Ev(e);return{sourceDescriptor:r.project.configuration.normalizeDependency(o)}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:n}=Ev(e),u=await wv(a,n,o.fetchOptions),A=r.sourceDescriptor;if(typeof A>"u")throw new Error("Assertion failed: The dependency should have been resolved");let p=b5(u,A.version);return[B5(e,{parentLocator:a,sourcePackage:A,patchPaths:n,patchHash:p})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let{sourceLocator:o}=Cv(e);return{...await r.resolver.resolve(o,r),...e}}};Ge();Pt();qt();var qC=class extends ut{constructor(){super(...arguments);this.save=ge.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=ge.String()}static{this.paths=[["patch-commit"]]}static{this.usage=it.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 "})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=V.resolve(this.context.cwd,ue.toPortablePath(this.patchFolder)),u=V.join(n,"../source"),A=V.join(n,"../.yarn-patch.json");if(!oe.existsSLine truncated
${A.map(p=>`
- ${G.prettyLocator(r,p)}`).join("")}`);u=A[0]}if(!o.storedPackages.has(u.locatorHash))throw new st("No package found in the project for the given locator");await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=WQ(u),h=await D5(u,{cache:n,project:o});A.reportJson({locator:G.stringifyLocator(p),path:ue.fromPortablePath(h)});let E=this.update?" along with its current modifications":"";A.reportInfo(0,`Package ${G.prettyLocator(r,p)} got extracted with success${E}!`),A.reportInfo(0,`You can now edit the following folder: ${pe.pretty(r,ue.fromPortablePath(h),"magenta")}`),A.reportInfo(0,`Once you are done run ${pe.pretty(r,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${ue.fromPortablePath(h)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};var pDt={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:[qC,jC],fetchers:[Iv],resolvers:[Bv]},hDt=pDt;var Q5={};Vt(Q5,{PnpmLinker:()=>vv,default:()=>EDt});Ge();Pt();qt();var vv=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new st(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(e.locatorHash);if(typeof n>"u")throw new st(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new st(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(n){let p=a.locatorByPath.get(n[1]);if(p)return p}let u=e,A=e;do{A=u,u=V.dirname(A);let p=a.locatorByPath.get(A);if(p)return p}while(u!==A);return null}makeInstaller(e){return new x5(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},x5=class{constructor(e){this.opts=e;this.asyncActions=new He.AsyncActions(10);this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.indexFolderPromise=cD(oe,{indexPath:V.join(e.project.configuration.get("globalFolder"),"index")})}attachCustomData(e){}async installPackage(e,r,o){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,r,o);case"HARD":return this.installPackageHard(e,r,o)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,o){let a=V.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(e)?V.join(a,dr.nodeModules):null;return this.customData.pathsByLocator.set(e.locatorHash,{packageLocation:a,dependenciesLocation:n}),{packageLocation:a,buildRequest:null}}async installPackageHard(e,r,o){let a=gDt(e,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,G.stringifyLocator(e)),this.customData.pathsByLocator.set(e.locatorHash,a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await oe.mkdirPromise(n,{recursive:!0}),await oe.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let A=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e,p={manifest:await Ut.tryFind(r.prefixPath,{baseFs:r.packageFs})??new Ut,misc:{hasBindingGyp:mA.hasBindingGyp(r)}},h=this.opts.project.getDependencyMeta(A,e.version),E=mA.extractBuildRequest(e,p,h,{configuration:this.opts.project.configuration});return{packageLocation:n,buildRequest:E}}async attachInternalDependencies(e,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!TBe(e,{project:this.opts.project}))return;let o=this.customData.pathsByLocator.get(e.locatorHash);if(typeof o>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(e)})`);let{dependenciesLocation:a}=o;a&&this.asyncActions.reduce(e.locatorHash,async n=>{await oe.mkdirPromise(a,{recursive:!0});let u=await dDt(a),A=new Map(u),p=[n],h=(I,v)=>{let x=v;TBe(v,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),x=G.devirtualizeLocator(v));let C=this.customData.pathsByLocator.get(x.locatorHash);if(typeof C>"Line truncated
${wDt}
`,"--",...o],{cwd:t,strict:!0})},async makeReset(t,e){let r=e.map(o=>ue.fromPortablePath(o.path));await Ur.execvp("git",["reset","HEAD","--",...r],{cwd:t,strict:!0})}};var PDt=[UBe],GC=class extends ut{constructor(){super(...arguments);this.commit=ge.Boolean("-c,--commit",!1,{description:"Commit the staged files"});this.reset=ge.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"});this.update=ge.Boolean("-u,--update",!1,{hidden:!0})}static{this.paths=[["stage"]]}static{this.usage=it.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd),{driver:a,root:n}=await bDt(o.cwd),u=[r.get("cacheFolder"),r.get("globalFolder"),r.get("virtualFolder"),r.get("yarnPath")];await r.triggerHook(I=>I.populateYarnPaths,o,I=>{u.push(I)});let A=new Set;for(let I of u)for(let v of SDt(n,I))A.add(v);let p=new Set([r.get("rcFilename"),dr.lockfile,dr.manifest]),h=await a.filterChanges(n,A,p),E=await a.genCommitMessage(n,h);if(this.dryRun)if(this.commit)this.context.stdout.write(`${E}
`);else for(let I of h)this.context.stdout.write(`${ue.fromPortablePath(I.path)}
`);else if(this.reset){let I=await a.filterChanges(n,A,p,{staged:!0});I.length===0?this.context.stdout.write("No staged changes found!"):await a.makeReset(n,I)}else h.length===0?this.context.stdout.write("No changes found!"):this.commit?await a.makeCommit(n,h,E):(await a.makeStage(n,h),this.context.stdout.write(E))}};async function bDt(t){let e=null,r=null;for(let o of PDt)if((r=await o.findRoot(t))!==null){e=o;break}if(e===null||r===null)throw new st("No stage driver has been found for your current project");return{driver:e,root:r}}function SDt(t,e){let r=[];if(e===null)return r;for(;;){(e===t||e.startsWith(`${t}/`))&&r.push(e);let o;try{o=oe.statSync(e)}catch{break}if(o.isSymbolicLink())e=V.resolve(V.dirname(e),oe.readlinkSync(e));else break}return r}var xDt={commands:[GC]},kDt=xDt;var U5={};Vt(U5,{default:()=>ODt});Ge();Ge();Pt();var qBe=Ze(Jn());Ge();var _Be=Ze(YH()),QDt="e8e1bd300d860104bb8c58453ffa1eb4",FDt="OFCNCOG2CU",HBe=async(t,e)=>{let r=G.stringifyIdent(t),a=RDt(e).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}},RDt=t=>(0,_Be.default)(FDt,QDt,{requester:{async send(r){try{let o=await sn.request(r.url,r.data||null,{configuration:t,headers:r.headers});return{content:o.body,isTimedOut:!1,status:o.statusCode}}catch(o){return{content:o.response.body,isTimedOut:!1,status:o.response.statusCode}}}}});var jBe=t=>t.scope?`${t.scope}__${t.name}`:`${t.name}`,TDt=async(t,e,r,o)=>{if(r.scope==="types")return;let{project:a}=t,{configuration:n}=a;if(!(n.get("tsEnableAutoTypes")??(oe.existsSync(V.join(t.cwd,"tsconfig.json"))||oe.existsSync(V.join(a.cwd,"tsconfig.json")))))return;let A=n.makeResolver(),p={project:a,resolver:A,report:new ki};if(!await HBe(r,n))return;let E=jBe(r),I=G.parseRange(r.range).selector;if(!Lr.validRange(I)){let L=n.normalizeDependency(r),U=await A.getCandidates(L,{},p);I=G.parseRange(U[0].reference).selector}let v=qBe.default.coerce(I);if(v===null)return;let x=`${Zc.Modifier.CARET}${v.major}`,C=G.makeDescriptor(G.makeIdent("types",E),x),R=He.mapAndFind(a.workspaces,L=>{let U=L.manifest.dependencies.get(r.identHash)?.descriptorHash,z=L.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(U!==r.descriptorHash&&z!==r.descriptorHash)return He.mapAndFind.skip;let te=[];for(let ae of Ut.allDependencies){let le=L.manifest[ae].get(C.identHash);typeof le>"u"||te.push([ae,le])}return te.length===0?He.mapAndFind.skip:te});if(typeof R<"u")for(let[L,U]of R)t.manifest[L].set(U.identHash,U);else{try{let L=n.normalizeDependency(C);if((await A.getCandidates(L,{},p)).length===0)return}catch{return}t.manifest[Zc.Target.DEVELOPMENT].set(C.identHash,C)}},NDt=async(t,e,r)=>{if(r.scope==="types")return;let{project:o}=t,{configuration:a}=o;if(!(a.get("tsEnableAutoTypes")??(oe.existsSync(V.join(t.cwd,"tsconfig.json"))||oe.existsSync(V.join(o.cwd,"tsconfig.json")))))return;let u=jBe(r),A=G.makeIdent("types",u);for(let p of Ut.allDependencies)typeof t.manifest[p].get(A.identHash)>"u"||t.manifest[p].delete(A.identHash)},LDt=(t,e)=>{e.publishConfig&&e.publishConfig.typings&&(e.typings=e.publishConfig.typings),e.publishConfig&&e.publishConfig.types&&(e.types=e.publishConfig.types)},MDt={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:"BOOLEAN",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:TDt,afterWorkspaceDependencyRemoval:NDt,beforeWorkspacePacking:LDt}},ODt=MDt;var G5={};Vt(G5,{VersionApplyCommand:()=>zC,VersionCheckCommand:()=>JC,VersionCommand:()=>XC,default:()=>nPt,versionUtils:()=>VC});Ge();Ge();qt();var VC={};Vt(VC,{Decision:()=>WC,applyPrerelease:()=>zBe,applyReleases:()=>j5,applyStrategy:()=>XQ,clearVersionFiles:()=>_5,getUndecidedDependentWorkspaces:()=>Pv,getUndecidedWorkspaces:()=>JQ,openVersionFile:()=>KC,requireMoreDecisions:()=>ePt,resolveVersionFiles:()=>Dv,suggestStrategy:()=>q5,updateVersionFiles:()=>H5,validateReleaseDecision:()=>YC});Ge();Pt();Nl();qt();var VBe=Ze(KBe()),BA=Ze(Jn()),$Dt=/^(>=|[~^]|)(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-]+)*)?$/,WC=(u=>(u.UNDECIDED="undecided",u.DECLINE="decline",u.MAJOR="major",u.MINOR="minor",u.PATCH="patch",u.PRERELEASE="prerelease",u))(WC||{});function YC(t){let e=BA.default.valid(t);return e||He.validateEnum((0,VBe.default)(WC,"UNDECIDED"),t)}async function Dv(t,{prerelease:e=null}={}){let r=new Map,o=t.configuration.get("deferredVersionFolder");if(!oe.existsSync(o))return r;let a=await oe.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=V.join(o,n),A=await oe.readFilePromise(u,"utf8"),p=Ki(A);for(let[h,E]of Object.entries(p.releases||{})){if(E==="decline")continue;let I=G.parseIdent(h),v=t.tryWorkspaceByIdent(I);if(v===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspacesLine truncated
- ${A.map(x=>ue.fromPortablePath(x)).join(`
- `)}`);let p=new Set(He.mapAndFilter(n,x=>{let C=t.tryWorkspaceByFilePath(x);return C===null?He.mapAndFilter.skip:C}));if(A.length===0&&p.size===0&&!e)return null;let h=A.length===1?A[0]:V.join(u,`${wn.makeHash(Math.random().toString()).slice(0,8)}.yml`),E=oe.existsSync(h)?await oe.readFilePromise(h,"utf8"):"{}",I=Ki(E),v=new Map;for(let x of I.declined||[]){let C=G.parseIdent(x),R=t.getWorkspaceByIdent(C);v.set(R,"decline")}for(let[x,C]of Object.entries(I.releases||{})){let R=G.parseIdent(x),L=t.getWorkspaceByIdent(R);v.set(L,YC(C))}return{project:t,root:o,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(n),changedWorkspaces:p,releaseRoots:new Set([...p].filter(x=>x.manifest.version!==null)),releases:v,async saveAll(){let x={},C=[],R=[];for(let L of t.workspaces){if(L.manifest.version===null)continue;let U=G.stringifyIdent(L.anchoredLocator),z=v.get(L);z==="decline"?C.push(U):typeof z<"u"?x[U]=YC(z):p.has(L)&&R.push(U)}await oe.mkdirPromise(V.dirname(h),{recursive:!0}),await oe.changeFilePromise(h,Da(new Da.PreserveOrdering({releases:Object.keys(x).length>0?x:void 0,declined:C.length>0?C:void 0,undecided:R.length>0?R:void 0})))}}}function ePt(t){return JQ(t).size>0||Pv(t).length>0}function JQ(t){let e=new Set;for(let r of t.changedWorkspaces)r.manifest.version!==null&&(t.releases.has(r)||e.add(r));return e}function Pv(t,{include:e=new Set}={}){let r=[],o=new Map(He.mapAndFilter([...t.releases],([n,u])=>u==="decline"?He.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(He.mapAndFilter([...t.releases],([n,u])=>u!=="decline"?He.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of t.project.workspaces)if(!(!e.has(n)&&(a.has(n.anchoredLocator.locatorHash)||o.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let u of Ut.hardDependencies)for(let A of n.manifest.getForScope(u).values()){let p=t.project.tryWorkspaceByDescriptor(A);p!==null&&o.has(p.anchoredLocator.locatorHash)&&r.push([n,p])}return r}function q5(t,e){let r=BA.default.clean(e);for(let o of Object.values(WC))if(o!=="undecided"&&o!=="decline"&&BA.default.inc(t,o)===r)return o;return null}function XQ(t,e){if(BA.default.valid(e))return e;if(t===null)throw new st(`Cannot apply the release strategy "${e}" unless the workspace already has a valid version`);if(!BA.default.valid(t))throw new st(`Cannot apply the release strategy "${e}" on a non-semver version (${t})`);let r=BA.default.inc(t,e);if(r===null)throw new st(`Cannot apply the release strategy "${e}" on the specified version (${t})`);return r}function j5(t,e,{report:r}){let o=new Map;for(let a of t.workspaces)for(let n of Ut.allDependencies)for(let u of a.manifest[n].values()){let A=t.tryWorkspaceByDescriptor(u);if(A===null||!e.has(A))continue;He.getArrayWithDefault(o,A).push([a,n,u.identHash])}for(let[a,n]of e){let u=a.manifest.version;a.manifest.version=n,BA.default.prerelease(n)===null?delete a.manifest.raw.stableVersion:a.manifest.raw.stableVersion||(a.manifest.raw.stableVersion=u);let A=a.manifest.name!==null?G.stringifyIdent(a.manifest.name):null;r.reportInfo(0,`${G.prettyLocator(t.configuration,a.anchoredLocator)}: Bumped to ${n}`),r.reportJson({cwd:ue.fromPortablePath(a.cwd),ident:A,oldVersion:u,newVersion:n});let p=o.get(a);if(!(typeof p>"u"))for(let[h,E,I]of p){let v=h.manifest[E].get(I);if(typeof v>"u")throw new Error("Assertion failed: The dependency should have existed");let x=v.range,C=!1;if(x.startsWith(ei.protocol)&&(x=x.slice(ei.protocol.length),C=!0,x===a.relativeCwd))continue;let R=x.match($Dt);if(!R){r.reportWarning(0,`Couldn't auto-upgrade range ${x} (in ${G.prettyLocator(t.configuration,h.anchoredLocator)})`);continue}let L=`${R[1]}${n}`;C&&(L=`${ei.protocol}${L}`);let U=G.makeDescriptor(v,L);h.manifest[E].set(I,U)}}}var tPt=new Map([["%n",{extract:t=>t.length>=1?[t[0],t.slice(1)]:null,generate:(t=0)=>`${t+1}`}]]);function zBe(t,{current:e,prerelease:r}){let o=new BA.default.SemVer(e),a=o.prerelease.slice(),n=[];o.prerelease=[],o.format()!==t&&(a.length=0);let u=!0,A=r.split(/\./g);for(let p of A){let h=tPt.get(p);if(typeof h>"u")n.push(p),a[0]===p?a.shift():u=!1;else{let E=u?h.extract(a):null;E!==null&&typeof E[0]=="number"?(n.push(h.generate(E[0])),a=E[1]):(n.push(h.generate()),u=!1)}}return o.prerelease&&(o.prerelease=[]),`${t}-${n.join(".")}`}var zC=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=ge.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=ge.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.recursive=ge.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["version","apply"]]}static{this.usage=it.Usage({catLine truncated
This command will apply the deferred version changes and remove their definitions from the repository.
Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%n\`) will be used on all new versions and the version definitions will be kept as-is.
By default only the current workspace will be bumped, but you can configure this behavior by using one of:
- \`--recursive\` to also apply the version bump on its dependencies
- \`--all\` to apply the version bump on all packages in the repository
Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump.
`,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,h=await Dv(o,{prerelease:p}),E=new Map;if(this.all)E=h;else{let I=this.recursive?a.getRecursiveWorkspaceDependencies():[a];for(let v of I){let x=h.get(v);typeof x<"u"&&E.set(v,x)}}if(E.size===0){let I=h.size>0?" Did you want to add --all?":"";A.reportWarning(0,`The current workspace doesn't seem to require a version bump.${I}`);return}j5(o,E,{report:A}),this.dryRun||(p||(this.all?await _5(o):await H5(o,[...E.keys()])),A.reportSeparator())});return this.dryRun||u.hasErrors()?u.exitCode():await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};Ge();Pt();qt();var ZQ=Ze(Jn());var JC=class extends ut{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}static{this.paths=[["version","check"]]}static{this.usage=it.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){GE(this.context);let{Gem:r}=await Promise.resolve().then(()=>(Zk(),Eq)),{ScrollableItems:o}=await Promise.resolve().then(()=>(rQ(),tQ)),{FocusRequest:a}=await Promise.resolve().then(()=>(wq(),$we)),{useListInput:n}=await Promise.resolve().then(()=>(eQ(),eIe)),{renderForm:u}=await Promise.resolve().then(()=>(oQ(),sQ)),{Box:A,Text:p}=await Promise.resolve().then(()=>Ze(ic())),{default:h,useCallback:E,useState:I}=await Promise.resolve().then(()=>Ze(an())),v=await Ke.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await kt.find(v,this.context.cwd);if(!C)throw new sr(x.cwd,this.context.cwd);await x.restoreInstallState();let R=await KC(x);if(R===null||R.releaseRoots.size===0)return 0;if(R.root===null)throw new st("This command can only be run on Git repositories");let L=()=>h.createElement(A,{flexDirection:"row",paddingBottom:1},h.createElement(A,{flexDirection:"column",width:60},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<up>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<down>")," to select workspaces.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<left>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<right>")," to select release strategies."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<enter>")," to save.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),U=({workspace:Ce,active:de,decision:Be,setDecision:Ee})=>{let g=Ce.manifest.raw.stableVersion??Ce.manifest.version;if(g===null)throw new Error(`Assertion failed: The version should have been set (${G.prettyLocator(v,Ce.anchoredLocator)})`);if(ZQ.default.prerelease(g)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${g})`);let me=["undecided","decline","patch","minor","major"];n(Be,me,{active:de,minus:"left",plus:"right",set:Ee});let we=Be==="undecided"?h.createElement(p,{color:"yellow"},g):Be==="decline"?h.createElement(p,{color:"green"},g):h.createElement(p,null,h.createElement(p,{color:"magenta"},g)," \u2192 ",h.createElement(p,{color:"green"},ZQ.default.valid(Be)?Be:ZQ.default.inc(g,Be)));return h.createElement(A,{flexDirection:"column"},h.createElement(A,null,h.createElement(p,null,G.prettyLocator(v,Ce.anchoredLocator)," - ",we)),h.createElement(A,null,me.map(Ae=>h.createElementLine truncated
`)},p=()=>{let Ee=this.from.map(g=>$C.default.matcher(g));return o.workspaces.filter(g=>{let me=G.stringifyIdent(g.anchoredLocator),we=g.relativeCwd;return Ee.some(Ae=>Ae(me)||Ae(we))})},h=[];if(this.since?(A("Option --since is set; selecting the changed workspaces as root for workspace selection"),h=Array.from(await ia.fetchChangedWorkspaces({ref:this.since,project:o}))):this.from?(A("Option --from is set; selecting the specified workspaces"),h=[...p()]):this.worktree?(A("Option --worktree is set; selecting the current workspace"),h=[a]):this.recursive?(A("Option --recursive is set; selecting the current workspace"),h=[a]):this.all&&(A("Option --all is set; selecting all workspaces"),h=[...o.workspaces]),this.dryRun&&!this.all){for(let Ee of h)A(`
- ${Ee.relativeCwd}
${G.prettyLocator(r,Ee.anchoredLocator)}`);h.length>0&&A("")}let E;if(this.recursive?this.since?(A("Option --recursive --since is set; recursively selecting all dependent workspaces"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceDependents()]).flat())):(A("Option --recursive is set; recursively selecting all transitive dependencies"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(A("Option --worktree is set; recursively selecting all nested workspaces"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceChildren()]).flat())):E=null,E!==null&&(h=[...new Set([...h,...E])],this.dryRun))for(let Ee of E)A(`
- ${Ee.relativeCwd}
${G.prettyLocator(r,Ee.anchoredLocator)}`);let I=[],v=!1;if(u?.includes(":")){for(let Ee of o.workspaces)if(Ee.manifest.scripts.has(u)&&(v=!v,v===!1))break}for(let Ee of h){if(u&&!Ee.manifest.scripts.has(u)&&!v&&!(await An.getWorkspaceAccessibleBinaries(Ee)).has(u)){A(`Excluding ${Ee.relativeCwd} because it doesn't have a "${u}" script`);continue}if(!(u===r.env.npm_lifecycle_event&&Ee.cwd===a.cwd)){if(this.include.length>0&&!$C.default.isMatch(G.stringifyIdent(Ee.anchoredLocator),this.include)&&!$C.default.isMatch(Ee.relativeCwd,this.include)){A(`Excluding ${Ee.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&($C.default.isMatch(G.stringifyIdent(Ee.anchoredLocator),this.exclude)||$C.default.isMatch(Ee.relativeCwd,this.exclude))){A(`Excluding ${Ee.relativeCwd} because it matches the --include filter`);continue}if(this.publicOnly&&Ee.manifest.private===!0){A(`Excluding ${Ee.relativeCwd} because it's a private workspace and --no-private was set`);continue}I.push(Ee)}}if(this.dryRun)return 0;let x=this.verbose??(this.context.stdout.isTTY?1/0:0),C=x>0,R=x>1,L=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(Xi.availableParallelism()/2):1,U=L===1?!1:this.parallel,z=U?this.interlaced:!0,te=(0,XBe.default)(L),ae=new Map,le=new Set,ce=0,Ce=null,de=!1,Be=await Rt.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async Ee=>{let g=async(me,{commandIndex:we})=>{if(de)return-1;!U&&R&&we>1&&Ee.reportSeparator();let Ae=iPt(me,{configuration:r,label:C,commandIndex:we}),[ne,Z]=JBe(Ee,{prefix:Ae,interlaced:z}),[xe,Ne]=JBe(Ee,{prefix:Ae,interlaced:z});try{R&&Ee.reportInfo(null,`${Ae?`${Ae} `:""}Process started`);let ht=Date.now(),H=await this.cli.run([this.commandName,...this.args],{cwd:me.cwd,stdout:ne,stderr:xe})||0;ne.end(),xe.end(),await Z,await Ne;let rt=Date.now();if(R){let Te=r.get("enableTimers")?`, completed in ${pe.pretty(r,rt-ht,pe.Type.DURATION)}`:"";Ee.reportInfo(null,`${Ae?`${Ae} `:""}Process exited (exit code ${H})${Te}`)}return H===130&&(de=!0,Ce=H),H}catch(ht){throw ne.end(),xe.end(),await Z,await Ne,ht}};for(let me of I)ae.set(me.anchoredLocator.locatorHash,me);for(;ae.size>0&&!Ee.hasErrors();){let me=[];for(let[ne,Z]of ae){if(le.has(Z.anchoredDescriptor.descriptorHash))continue;let xe=!0;if(this.topological||this.topologicalDev){let Ne=this.topologicalDev?new Map([...Z.manifest.dependencies,...Z.manifest.devDependencies]):Z.manifest.dependencies;for(let ht of Ne.values()){let H=o.tryWorkspaceByDescriptor(ht);if(xe=H===null||!ae.has(H.anchoredLocator.locatorHash),!xe)break}}if(xe&&(le.add(Z.anchoredDescriptor.descriptorHash),me.push(te(async()=>{let Ne=await g(Z,{commandIndex:++ce});return ae.delete(ne),le.delete(Z.anchoredDescriptor.descriptorHash),Ne})),!U))break}if(me.length===0){let ne=Array.from(ae.values()).map(Z=>G.prettyLocator(r,Z.anchoredLocator)).join(", ");Ee.reportError(3,`Dependency cycle detected (${ne})`);return}let Ae=(await Promise.all(me)).find(ne=>ne!==0);Ce===null&&(Ce=typeof Ae<"u"?1:Ce),(this.topological||this.topologicalDev)&&typeof Ae<"u"&&Ee.reportError(0,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return Ce!==null?Ce:Be.exitCode()}};function JBe(t,{prefix:e,interlaced:r}){let o=t.createStreamReporter(e),a=new He.DefaultStream;a.pipe(o,{end:!1}),a.on("finish",()=>{o.end()});let n=new Promise(A=>{o.on("finish",()=>{A(a.active)})});if(r)return[a,n];let u=new He.BufferStream;return u.pipe(a,{end:!1}),u.on("finish",()=>{a.end()}),[u,n]}function iPt(t,{configuration:e,commandIndex:r,label:o}){if(!o)return null;let n=`[${G.stringifyIdent(t.anchoredLocator)}]:`,u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[r%u.length];return pe.pretty(e,n,A)}var sPt={commands:[ZC,ew]},oPt=sPt;var Hy=()=>({modules:new Map([["@yarnpkg/cli",W1],["@yarnpkg/core",Y1],["@yarnpkg/fslib",kw],["@yarnpkg/libzip",p1],["@yarnpkg/parsers",Ow],["@yarnpkg/shell",E1],["clipanion",Jw],["semver",aPt],["typanion",Vo],["@yarnpkg/plugin-essentials",K8],["@yarnpkg/plugin-compat",Z8],["@yarnpkg/plugin-constraints",dH],["@yarnpkg/plugin-dlx",mH],["@yarnpkg/plugin-exec",CH],["@yarnpkg/plugin-file",IH],["@yarnpkg/plugin-git",W8],["@yarnpkg/plugin-github",DH],["@yarnpkg/plugin-http",PH],["@yarnpkg/plugin-init",bH],["@yarnpkg/plugin-interactive-tools",kq],["@yarnpkg/plugin-link",Qq],["@yarnpkg/plugin-nm",hj],["@yarnpkg/plugin-npm",f5],["@yarnpkg/plugin-npm-cli",w5],["@yarnpkg/plugin-pack",a5],["@yarnpkg/plugin-patch",S5],["@yarnpkg/plugin-pnp",rj],["@yarnpkg/plugin-pnpm",Q5],["@yarnpkg/plugin-stage",O5],["@yarnpkg/plugin-typescript",U5],["@yarnpkg/plugin-version",G5],["@yarnpkg/plugin-workspace-tools",Y5]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-inLine truncated
Please report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once("beforeExit",n);try{process.exitCode=42,process.exitCode=await fPt(a,t,{selfPath:r,pluginConfiguration:o})}catch(u){Jo.defaultContext.stdout.write(a.error(u)),process.exitCode=1}finally{process.off("beforeExit",n),await oe.rmtempPromise()}}Wx(process.argv.slice(2),{cwd:V.cwd(),selfPath:ue.toPortablePath(ue.resolve(process.argv[1])),pluginConfiguration:Hy()});})();
/**
@license
Copyright (c) 2015, Rebecca Turner
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
/**
@license
Copyright Node.js contributors. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
*/
/**
@license
The MIT License (MIT)
Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/**
@license
Copyright Joyent, Inc. and other Node contributors.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the
following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/*! Bundled license information:
is-number/index.js:
(*!
* is-number <https://github.com/jonschlinkert/is-number>
*
* Copyright (c) 2014-present, Jon Schlinkert.
* Released under the MIT License.
*)
to-regex-range/index.js:
(*!
* to-regex-range <https://github.com/micromatch/to-regex-range>
*
* Copyright (c) 2015-present, Jon Schlinkert.
* Released under the MIT License.
*)
fill-range/index.js:
(*!
* fill-range <https://github.com/jonschlinkert/fill-range>
*
* Copyright (c) 2014-present, Jon Schlinkert.
* Licensed under the MIT License.
*)
is-extglob/index.js:
(*!
* is-extglob <https://github.com/jonschlinkert/is-extglob>
*
* Copyright (c) 2014-2016, Jon Schlinkert.
* Licensed under the MIT License.
*)
is-glob/index.js:
(*!
* is-glob <https://github.com/jonschlinkert/is-glob>
*
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*)
queue-microtask/index.js:
(*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
run-parallel/index.js:
(*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
git-url-parse/lib/index.js:
(*!
* buildToken
* Builds OAuth token prefix (helper function)
*
* @name buildToken
* @function
* @param {GitUrl} obj The parsed Git url object.
* @return {String} token prefix
*)
object-assign/index.js:
(*
object-assign
(c) Sindre Sorhus
@license MIT
*)
react/cjs/react.production.min.js:
(** @license React v16.13.1
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
scheduler/cjs/scheduler.production.min.js:
(** @license React v0.18.0
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
react-reconciler/cjs/react-reconciler.production.min.js:
(** @license React v0.24.0
* react-reconciler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
is-windows/index.js:
(*!
* is-windows <https://github.com/jonschlinkert/is-windows>
*
* Copyright © 2015-2018, Jon Schlinkert.
* Released under the MIT License.
*)
*/
+7 -7
View File
@@ -1,9 +1,9 @@
compressionLevel: mixed
defaultSemverRangePrefix: ""
enableGlobalCache: false
nodeLinker: node-modules
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-typescript.cjs
spec: "@yarnpkg/plugin-typescript"
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
spec: "@yarnpkg/plugin-interactive-tools"
yarnPath: .yarn/releases/yarn-3.3.1.cjs
yarnPath: .yarn/releases/yarn-4.5.0.cjs
+2
View File
@@ -27,3 +27,5 @@ A complete guide can be found at the following [link](https://www.home-assistant
Home Assistant is open-source and Apache 2 licensed. Feel free to browse the repository, learn and reuse parts in your own projects.
We use [BrowserStack](https://www.browserstack.com) to test Home Assistant on a large variety of devices.
[![Home Assistant - A project from the Open Home Foundation](https://www.openhomefoundation.org/badges/home-assistant.png)](https://www.openhomefoundation.org/)
@@ -0,0 +1,182 @@
import defineProvider from "@babel/helper-define-polyfill-provider";
import { join } from "node:path";
import paths from "../paths.cjs";
const POLYFILL_DIR = join(paths.polymer_dir, "src/resources/polyfills");
// List of polyfill keys with supported browser targets for the functionality
const PolyfillSupport = {
// Note states and shadowRoot properties should be supported.
"element-internals": {
android: 90,
chrome: 90,
edge: 90,
firefox: 126,
ios: 17.4,
opera: 76,
opera_mobile: 64,
safari: 17.4,
samsung: 15.0,
},
"element-append": {
android: 54,
chrome: 54,
edge: 17,
firefox: 49,
ios: 10.0,
opera: 41,
opera_mobile: 41,
safari: 10.0,
samsung: 6.0,
},
"element-getattributenames": {
android: 61,
chrome: 61,
edge: 18,
firefox: 45,
ios: 10.3,
opera: 48,
opera_mobile: 45,
safari: 10.1,
samsung: 8.0,
},
"element-toggleattribute": {
android: 69,
chrome: 69,
edge: 18,
firefox: 63,
ios: 12.0,
opera: 56,
opera_mobile: 48,
safari: 12.0,
samsung: 10.0,
},
fetch: {
android: 42,
chrome: 42,
edge: 14,
firefox: 39,
ios: 10.3,
opera: 29,
opera_mobile: 29,
safari: 10.1,
samsung: 4.0,
},
"intl-getcanonicallocales": {
android: 54,
chrome: 54,
edge: 16,
firefox: 48,
ios: 10.3,
opera: 41,
opera_mobile: 41,
safari: 10.1,
samsung: 6.0,
},
"intl-locale": {
android: 74,
chrome: 74,
edge: 79,
firefox: 75,
ios: 14.0,
opera: 62,
opera_mobile: 53,
safari: 14.0,
samsung: 11.0,
},
"intl-other": {
// Not specified (i.e. always try polyfill) since compatibility depends on supported locales
},
proxy: {
android: 49,
chrome: 49,
edge: 12,
firefox: 18,
ios: 10.0,
opera: 36,
opera_mobile: 36,
safari: 10.0,
samsung: 5.0,
},
"resize-observer": {
android: 64,
chrome: 64,
edge: 79,
firefox: 69,
ios: 13.4,
opera: 51,
opera_mobile: 47,
safari: 13.1,
samsung: 9.0,
},
};
// Map of global variables and/or instance and static properties to the
// corresponding polyfill key and actual module to import
const polyfillMap = {
global: {
fetch: { key: "fetch", module: "unfetch/polyfill" },
Proxy: { key: "proxy", module: "proxy-polyfill" },
ResizeObserver: {
key: "resize-observer",
module: join(POLYFILL_DIR, "resize-observer.ts"),
},
},
instance: {
attachInternals: {
key: "element-internals",
module: "element-internals-polyfill",
},
...Object.fromEntries(
["append", "getAttributeNames", "toggleAttribute"].map((prop) => {
const key = `element-${prop.toLowerCase()}`;
return [prop, { key, module: join(POLYFILL_DIR, `${key}.ts`) }];
})
),
},
static: {
Intl: {
getCanonicalLocales: {
key: "intl-getcanonicallocales",
module: join(POLYFILL_DIR, "intl-polyfill.ts"),
},
Locale: {
key: "intl-locale",
module: join(POLYFILL_DIR, "intl-polyfill.ts"),
},
...Object.fromEntries(
[
"DateTimeFormat",
"DisplayNames",
"ListFormat",
"NumberFormat",
"PluralRules",
"RelativeTimeFormat",
].map((obj) => [
obj,
{ key: "intl-other", module: join(POLYFILL_DIR, "intl-polyfill.ts") },
])
),
},
},
};
// Create plugin using the same factory as for CoreJS
export default defineProvider(
({ createMetaResolver, debug, shouldInjectPolyfill }) => {
const resolvePolyfill = createMetaResolver(polyfillMap);
return {
name: "custom-polyfill",
polyfills: PolyfillSupport,
usageGlobal(meta, utils) {
const polyfill = resolvePolyfill(meta);
if (polyfill && shouldInjectPolyfill(polyfill.desc.key)) {
debug(polyfill.desc.key);
utils.injectGlobalImport(polyfill.desc.module);
return true;
}
return false;
},
};
}
);
+331
View File
@@ -0,0 +1,331 @@
const path = require("path");
const env = require("./env.cjs");
const paths = require("./paths.cjs");
const { dependencies } = require("../package.json");
const BABEL_PLUGINS = path.join(__dirname, "babel-plugins");
// GitHub base URL to use for production source maps
// Nightly builds use the commit SHA, otherwise assumes there is a tag that matches the version
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}/`;
};
// Files from NPM Packages that should not be imported
module.exports.ignorePackages = () => [];
// Files from NPM packages that we should replace with empty file
module.exports.emptyPackages = ({ latestBuild, isHassioBuild }) =>
[
// Contains all color definitions for all material color sets.
// We don't use it
require.resolve("@polymer/paper-styles/color.js"),
require.resolve("@polymer/paper-styles/default-theme.js"),
// Loads stuff from a CDN
require.resolve("@polymer/font-roboto/roboto.js"),
require.resolve("@vaadin/vaadin-material-styles/typography.js"),
require.resolve("@vaadin/vaadin-material-styles/font-icons.js"),
// Compatibility not needed for latest builds
latestBuild &&
// wrapped in require.resolve so it blows up if file no longer exists
require.resolve(
path.resolve(paths.polymer_dir, "src/resources/compatibility.ts")
),
// Icons in supervisor conflict with icons in HA so we don't load.
isHassioBuild &&
require.resolve(
path.resolve(paths.polymer_dir, "src/components/ha-icon.ts")
),
isHassioBuild &&
require.resolve(
path.resolve(paths.polymer_dir, "src/components/ha-icon-picker.ts")
),
].filter(Boolean);
module.exports.definedVars = ({ isProdBuild, latestBuild, defineOverlay }) => ({
__DEV__: !isProdBuild,
__BUILD__: JSON.stringify(latestBuild ? "modern" : "legacy"),
__VERSION__: JSON.stringify(env.version()),
__DEMO__: false,
__SUPERVISOR__: false,
__BACKWARDS_COMPAT__: false,
__STATIC_PATH__: "/static/",
"process.env.NODE_ENV": JSON.stringify(
isProdBuild ? "production" : "development"
),
...defineOverlay,
});
module.exports.htmlMinifierOptions = {
caseSensitive: true,
collapseWhitespace: true,
conservativeCollapse: true,
decodeEntities: true,
removeComments: true,
removeRedundantAttributes: true,
minifyCSS: {
compatibility: "*,-properties.zeroUnits",
},
};
module.exports.terserOptions = ({ latestBuild, isTestBuild }) => ({
safari10: !latestBuild,
ecma: latestBuild ? 2015 : 5,
module: latestBuild,
format: { comments: false },
sourceMap: !isTestBuild,
});
module.exports.babelOptions = ({
latestBuild,
isProdBuild,
isTestBuild,
sw,
}) => ({
babelrc: false,
compact: false,
assumptions: {
privateFieldsAsProperties: true,
setPublicClassFields: true,
setSpreadProperties: true,
},
browserslistEnv: latestBuild ? "modern" : `legacy${sw ? "-sw" : ""}`,
presets: [
[
"@babel/preset-env",
{
useBuiltIns: "usage",
corejs: dependencies["core-js"],
bugfixes: true,
shippedProposals: true,
},
],
"@babel/preset-typescript",
],
plugins: [
[
path.join(BABEL_PLUGINS, "inline-constants-plugin.cjs"),
{
modules: ["@mdi/js"],
ignoreModuleNotFound: true,
},
],
// Minify template literals for production
isProdBuild && [
"template-html-minifier",
{
modules: {
...Object.fromEntries(
["lit", "lit-element", "lit-html"].map((m) => [
m,
[
"html",
{ name: "svg", encapsulation: "svg" },
{ name: "css", encapsulation: "style" },
],
])
),
"@polymer/polymer/lib/utils/html-tag.js": ["html"],
},
strictCSS: true,
htmlMinifier: module.exports.htmlMinifierOptions,
failOnError: false, // we can turn this off in case of false positives
},
],
// Import helpers and regenerator from runtime package
[
"@babel/plugin-transform-runtime",
{ version: dependencies["@babel/runtime"] },
],
// Transpile decorators (still in TC39 process)
// Modern browsers support class fields and private methods, but transform is required with the older decorator version dictated by Lit
[
"@babel/plugin-proposal-decorators",
{ version: "2018-09", decoratorsBeforeExport: true },
],
"@babel/plugin-transform-class-properties",
"@babel/plugin-transform-private-methods",
].filter(Boolean),
exclude: [
// \\ for Windows, / for Mac OS and Linux
/node_modules[\\/]core-js/,
/node_modules[\\/]webpack[\\/]buildin/,
],
sourceMaps: !isTestBuild,
overrides: [
{
// Add plugin to inject various polyfills, excluding the polyfills
// themselves to prevent self-injection.
plugins: [
[
path.join(BABEL_PLUGINS, "custom-polyfill-plugin.js"),
{ method: "usage-global" },
],
],
exclude: [
path.join(paths.polymer_dir, "src/resources/polyfills"),
...[
"@formatjs/(?:ecma402-abstract|intl-\\w+)",
"@lit-labs/virtualizer/polyfills",
"@webcomponents/scoped-custom-element-registry",
"element-internals-polyfill",
"proxy-polyfill",
"unfetch",
].map((p) => new RegExp(`/node_modules/${p}/`)),
],
},
{
// Use unambiguous for dependencies so that require() is correctly injected into CommonJS files
// Exclusions are needed in some cases where ES modules have no static imports or exports, such as polyfills
sourceType: "unambiguous",
include: /\/node_modules\//,
exclude: [
"element-internals-polyfill",
"@?lit(?:-labs|-element|-html)?",
].map((p) => new RegExp(`/node_modules/${p}/`)),
},
],
});
const nameSuffix = (latestBuild) => (latestBuild ? "-modern" : "-legacy");
const outputPath = (outputRoot, latestBuild) =>
path.resolve(outputRoot, latestBuild ? "frontend_latest" : "frontend_es5");
const publicPath = (latestBuild, root = "") =>
latestBuild ? `${root}/frontend_latest/` : `${root}/frontend_es5/`;
/*
BundleConfig {
// Object with entrypoints that need to be bundled
entry: { [name: string]: pathToFile },
// Folder where bundled files need to be written
outputPath: string,
// absolute url-path where bundled files can be found
publicPath: string,
// extra definitions that we need to replace in source
defineOverlay: {[name: string]: value },
// if this is a production build
isProdBuild: boolean,
// If we're targeting latest browsers
latestBuild: boolean,
// If we're doing a stats build (create nice chunk names)
isStatsBuild: boolean,
// If it's just a test build in CI, skip time on source map generation
isTestBuild: boolean,
// Names of entrypoints that should not be hashed
dontHash: Set<string>
}
*/
module.exports.config = {
app({ isProdBuild, latestBuild, isStatsBuild, isTestBuild, isWDS }) {
return {
name: "frontend" + nameSuffix(latestBuild),
entry: {
"service-worker":
!env.useRollup() && !latestBuild
? {
import: "./src/entrypoints/service-worker.ts",
layer: "sw",
}
: "./src/entrypoints/service-worker.ts",
app: "./src/entrypoints/app.ts",
authorize: "./src/entrypoints/authorize.ts",
onboarding: "./src/entrypoints/onboarding.ts",
core: "./src/entrypoints/core.ts",
"custom-panel": "./src/entrypoints/custom-panel.ts",
},
outputPath: outputPath(paths.app_output_root, latestBuild),
publicPath: publicPath(latestBuild),
isProdBuild,
latestBuild,
isStatsBuild,
isTestBuild,
isWDS,
};
},
demo({ isProdBuild, latestBuild, isStatsBuild }) {
return {
name: "demo" + nameSuffix(latestBuild),
entry: {
main: path.resolve(paths.demo_dir, "src/entrypoint.ts"),
},
outputPath: outputPath(paths.demo_output_root, latestBuild),
publicPath: publicPath(latestBuild),
defineOverlay: {
__VERSION__: JSON.stringify(`DEMO-${env.version()}`),
__DEMO__: true,
},
isProdBuild,
latestBuild,
isStatsBuild,
};
},
cast({ isProdBuild, latestBuild }) {
const entry = {
launcher: path.resolve(paths.cast_dir, "src/launcher/entrypoint.ts"),
media: path.resolve(paths.cast_dir, "src/media/entrypoint.ts"),
};
if (latestBuild) {
entry.receiver = path.resolve(
paths.cast_dir,
"src/receiver/entrypoint.ts"
);
}
return {
name: "cast" + nameSuffix(latestBuild),
entry,
outputPath: outputPath(paths.cast_output_root, latestBuild),
publicPath: publicPath(latestBuild),
isProdBuild,
latestBuild,
defineOverlay: {
__BACKWARDS_COMPAT__: true,
},
};
},
hassio({ isProdBuild, latestBuild, isStatsBuild, isTestBuild }) {
return {
name: "supervisor" + nameSuffix(latestBuild),
entry: {
entrypoint: path.resolve(paths.hassio_dir, "src/entrypoint.ts"),
},
outputPath: outputPath(paths.hassio_output_root, latestBuild),
publicPath: publicPath(latestBuild, paths.hassio_publicPath),
isProdBuild,
latestBuild,
isStatsBuild,
isTestBuild,
isHassioBuild: true,
defineOverlay: {
__SUPERVISOR__: true,
__STATIC_PATH__: `"${paths.hassio_publicPath}/static/"`,
},
};
},
gallery({ isProdBuild, latestBuild }) {
return {
name: "gallery" + nameSuffix(latestBuild),
entry: {
entrypoint: path.resolve(paths.gallery_dir, "src/entrypoint.js"),
},
outputPath: outputPath(paths.gallery_output_root, latestBuild),
publicPath: publicPath(latestBuild),
isProdBuild,
latestBuild,
defineOverlay: {
__DEMO__: true,
},
};
},
};
-229
View File
@@ -1,229 +0,0 @@
const path = require("path");
const env = require("./env.js");
const paths = require("./paths.js");
// Files from NPM Packages that should not be imported
// eslint-disable-next-line unused-imports/no-unused-vars
module.exports.ignorePackages = ({ latestBuild }) => [
// Part of yaml.js and only used for !!js functions that we don't use
require.resolve("esprima"),
];
// Files from NPM packages that we should replace with empty file
module.exports.emptyPackages = ({ latestBuild, isHassioBuild }) =>
[
// Contains all color definitions for all material color sets.
// We don't use it
require.resolve("@polymer/paper-styles/color.js"),
require.resolve("@polymer/paper-styles/default-theme.js"),
// Loads stuff from a CDN
require.resolve("@polymer/font-roboto/roboto.js"),
require.resolve("@vaadin/vaadin-material-styles/typography.js"),
require.resolve("@vaadin/vaadin-material-styles/font-icons.js"),
// Compatibility not needed for latest builds
latestBuild &&
// wrapped in require.resolve so it blows up if file no longer exists
require.resolve(
path.resolve(paths.polymer_dir, "src/resources/compatibility.ts")
),
// This polyfill is loaded in workers to support ES5, filter it out.
latestBuild && require.resolve("proxy-polyfill/src/index.js"),
// Icons in supervisor conflict with icons in HA so we don't load.
isHassioBuild &&
require.resolve(
path.resolve(paths.polymer_dir, "src/components/ha-icon.ts")
),
isHassioBuild &&
require.resolve(
path.resolve(paths.polymer_dir, "src/components/ha-icon-picker.ts")
),
].filter(Boolean);
module.exports.definedVars = ({ isProdBuild, latestBuild, defineOverlay }) => ({
__DEV__: !isProdBuild,
__BUILD__: JSON.stringify(latestBuild ? "latest" : "es5"),
__VERSION__: JSON.stringify(env.version()),
__DEMO__: false,
__SUPERVISOR__: false,
__BACKWARDS_COMPAT__: false,
__STATIC_PATH__: "/static/",
"process.env.NODE_ENV": JSON.stringify(
isProdBuild ? "production" : "development"
),
...defineOverlay,
});
module.exports.terserOptions = (latestBuild) => ({
safari10: !latestBuild,
ecma: latestBuild ? undefined : 5,
output: { comments: false },
});
module.exports.babelOptions = ({ latestBuild }) => ({
babelrc: false,
compact: false,
presets: [
!latestBuild && [
"@babel/preset-env",
{
useBuiltIns: "entry",
corejs: { version: "3.28", proposals: true },
bugfixes: true,
},
],
"@babel/preset-typescript",
].filter(Boolean),
plugins: [
[
path.resolve(
paths.polymer_dir,
"build-scripts/babel-plugins/inline-constants-plugin.js"
),
{
modules: ["@mdi/js"],
ignoreModuleNotFound: true,
},
],
// Part of ES2018. Converts {...a, b: 2} to Object.assign({}, a, {b: 2})
!latestBuild && [
"@babel/plugin-proposal-object-rest-spread",
{ loose: true, useBuiltIns: true },
],
// Only support the syntax, Webpack will handle it.
"@babel/plugin-syntax-import-meta",
"@babel/plugin-syntax-dynamic-import",
"@babel/plugin-syntax-top-level-await",
"@babel/plugin-proposal-optional-chaining",
"@babel/plugin-proposal-nullish-coalescing-operator",
["@babel/plugin-proposal-decorators", { decoratorsBeforeExport: true }],
["@babel/plugin-proposal-private-methods", { loose: true }],
["@babel/plugin-proposal-private-property-in-object", { loose: true }],
["@babel/plugin-proposal-class-properties", { loose: true }],
].filter(Boolean),
exclude: [
// \\ for Windows, / for Mac OS and Linux
/node_modules[\\/]core-js/,
/node_modules[\\/]webpack[\\/]buildin/,
],
});
const outputPath = (outputRoot, latestBuild) =>
path.resolve(outputRoot, latestBuild ? "frontend_latest" : "frontend_es5");
const publicPath = (latestBuild, root = "") =>
latestBuild ? `${root}/frontend_latest/` : `${root}/frontend_es5/`;
/*
BundleConfig {
// Object with entrypoints that need to be bundled
entry: { [name: string]: pathToFile },
// Folder where bundled files need to be written
outputPath: string,
// absolute url-path where bundled files can be found
publicPath: string,
// extra definitions that we need to replace in source
defineOverlay: {[name: string]: value },
// if this is a production build
isProdBuild: boolean,
// If we're targeting latest browsers
latestBuild: boolean,
// If we're doing a stats build (create nice chunk names)
isStatsBuild: boolean,
// Names of entrypoints that should not be hashed
dontHash: Set<string>
}
*/
module.exports.config = {
app({ isProdBuild, latestBuild, isStatsBuild, isWDS }) {
return {
entry: {
service_worker: "./src/entrypoints/service_worker.ts",
app: "./src/entrypoints/app.ts",
authorize: "./src/entrypoints/authorize.ts",
onboarding: "./src/entrypoints/onboarding.ts",
core: "./src/entrypoints/core.ts",
"custom-panel": "./src/entrypoints/custom-panel.ts",
},
outputPath: outputPath(paths.app_output_root, latestBuild),
publicPath: publicPath(latestBuild),
isProdBuild,
latestBuild,
isStatsBuild,
isWDS,
};
},
demo({ isProdBuild, latestBuild, isStatsBuild }) {
return {
entry: {
main: path.resolve(paths.demo_dir, "src/entrypoint.ts"),
},
outputPath: outputPath(paths.demo_output_root, latestBuild),
publicPath: publicPath(latestBuild),
defineOverlay: {
__VERSION__: JSON.stringify(`DEMO-${env.version()}`),
__DEMO__: true,
},
isProdBuild,
latestBuild,
isStatsBuild,
};
},
cast({ isProdBuild, latestBuild }) {
const entry = {
launcher: path.resolve(paths.cast_dir, "src/launcher/entrypoint.ts"),
media: path.resolve(paths.cast_dir, "src/media/entrypoint.ts"),
};
if (latestBuild) {
entry.receiver = path.resolve(
paths.cast_dir,
"src/receiver/entrypoint.ts"
);
}
return {
entry,
outputPath: outputPath(paths.cast_output_root, latestBuild),
publicPath: publicPath(latestBuild),
isProdBuild,
latestBuild,
defineOverlay: {
__BACKWARDS_COMPAT__: true,
},
};
},
hassio({ isProdBuild, latestBuild }) {
return {
entry: {
entrypoint: path.resolve(paths.hassio_dir, "src/entrypoint.ts"),
},
outputPath: outputPath(paths.hassio_output_root, latestBuild),
publicPath: publicPath(latestBuild, paths.hassio_publicPath),
isProdBuild,
latestBuild,
isHassioBuild: true,
defineOverlay: {
__SUPERVISOR__: true,
},
};
},
gallery({ isProdBuild, latestBuild }) {
return {
entry: {
entrypoint: path.resolve(paths.gallery_dir, "src/entrypoint.js"),
},
outputPath: outputPath(paths.gallery_output_root, latestBuild),
publicPath: publicPath(latestBuild),
isProdBuild,
latestBuild,
defineOverlay: {
__DEMO__: true,
},
};
},
};
@@ -1,6 +1,6 @@
const fs = require("fs");
const path = require("path");
const paths = require("./paths.js");
const paths = require("./paths.cjs");
module.exports = {
useRollup() {
@@ -17,7 +17,7 @@ module.exports = {
isStatsBuild() {
return process.env.STATS === "1";
},
isTest() {
isTestBuild() {
return process.env.IS_TEST === "true";
},
isNetlify() {
@@ -32,4 +32,7 @@ module.exports = {
}
return version[1];
},
isDevContainer() {
return process.env.DEV_CONTAINER === "1";
},
};
+18 -26
View File
@@ -1,19 +1,16 @@
// Run HA develop mode
const gulp = require("gulp");
const env = require("../env");
require("./clean.js");
require("./translations.js");
require("./locale-data.js");
require("./gen-icons-json.js");
require("./gather-static.js");
require("./compress.js");
require("./webpack.js");
require("./service-worker.js");
require("./entry-html.js");
require("./rollup.js");
require("./wds.js");
import gulp from "gulp";
import env from "../env.cjs";
import "./clean.js";
import "./compress.js";
import "./entry-html.js";
import "./gather-static.js";
import "./gen-icons-json.js";
import "./locale-data.js";
import "./rollup.js";
import "./service-worker.js";
import "./translations.js";
import "./wds.js";
import "./webpack.js";
gulp.task(
"develop-app",
@@ -25,8 +22,7 @@ gulp.task(
gulp.parallel(
"gen-service-worker-app-dev",
"gen-icons-json",
"gen-pages-dev",
"gen-index-app-dev",
"gen-pages-app-dev",
"build-translations",
"build-locale-data"
),
@@ -34,8 +30,8 @@ gulp.task(
env.useWDS()
? "wds-watch-app"
: env.useRollup()
? "rollup-watch-app"
: "webpack-watch-app"
? "rollup-watch-app"
: "webpack-watch-app"
)
);
@@ -49,12 +45,8 @@ gulp.task(
gulp.parallel("gen-icons-json", "build-translations", "build-locale-data"),
"copy-static-app",
env.useRollup() ? "rollup-prod-app" : "webpack-prod-app",
gulp.parallel("gen-pages-app-prod", "gen-service-worker-app-prod"),
// Don't compress running tests
...(env.isTest() ? [] : ["compress-app"]),
gulp.parallel(
"gen-pages-prod",
"gen-index-app-prod",
"gen-service-worker-app-prod"
)
...(env.isTestBuild() ? [] : ["compress-app"])
)
);
+11 -13
View File
@@ -1,14 +1,12 @@
const gulp = require("gulp");
const env = require("../env");
require("./clean.js");
require("./translations.js");
require("./gather-static.js");
require("./webpack.js");
require("./service-worker.js");
require("./entry-html.js");
require("./rollup.js");
import gulp from "gulp";
import env from "../env.cjs";
import "./clean.js";
import "./entry-html.js";
import "./gather-static.js";
import "./rollup.js";
import "./service-worker.js";
import "./translations.js";
import "./webpack.js";
gulp.task(
"develop-cast",
@@ -20,7 +18,7 @@ gulp.task(
"translations-enable-merge-backend",
gulp.parallel("gen-icons-json", "build-translations", "build-locale-data"),
"copy-static-cast",
"gen-index-cast-dev",
"gen-pages-cast-dev",
env.useRollup() ? "rollup-dev-server-cast" : "webpack-dev-server-cast"
)
);
@@ -36,6 +34,6 @@ gulp.task(
gulp.parallel("gen-icons-json", "build-translations", "build-locale-data"),
"copy-static-cast",
env.useRollup() ? "rollup-prod-cast" : "webpack-prod-cast",
"gen-index-cast-prod"
"gen-pages-cast-prod"
)
);
+9 -9
View File
@@ -1,37 +1,37 @@
const del = import("del");
const gulp = require("gulp");
const paths = require("../paths");
require("./translations");
import { deleteSync } from "del";
import gulp from "gulp";
import paths from "../paths.cjs";
import "./translations.js";
gulp.task(
"clean",
gulp.parallel("clean-translations", async () =>
(await del).deleteSync([paths.app_output_root, paths.build_dir])
deleteSync([paths.app_output_root, paths.build_dir])
)
);
gulp.task(
"clean-demo",
gulp.parallel("clean-translations", async () =>
(await del).deleteSync([paths.demo_output_root, paths.build_dir])
deleteSync([paths.demo_output_root, paths.build_dir])
)
);
gulp.task(
"clean-cast",
gulp.parallel("clean-translations", async () =>
(await del).deleteSync([paths.cast_output_root, paths.build_dir])
deleteSync([paths.cast_output_root, paths.build_dir])
)
);
gulp.task("clean-hassio", async () =>
(await del).deleteSync([paths.hassio_output_root, paths.build_dir])
deleteSync([paths.hassio_output_root, paths.build_dir])
);
gulp.task(
"clean-gallery",
gulp.parallel("clean-translations", async () =>
(await del).deleteSync([
deleteSync([
paths.gallery_output_root,
paths.gallery_build,
paths.build_dir,
+58 -35
View File
@@ -1,45 +1,68 @@
// Tasks to compress
const gulp = require("gulp");
const zopfli = require("gulp-zopfli-green");
const merge = require("merge-stream");
const path = require("path");
const paths = require("../paths");
import { constants } from "node:zlib";
import gulp from "gulp";
import brotli from "gulp-brotli";
import zopfli from "gulp-zopfli-green";
import paths from "../paths.cjs";
const filesGlob = "*.{js,json,css,svg,xml}";
const brotliOptions = {
skipLarger: true,
params: {
[constants.BROTLI_PARAM_QUALITY]: constants.BROTLI_MAX_QUALITY,
},
};
const zopfliOptions = { threshold: 150 };
gulp.task("compress-app", function compressApp() {
const jsLatest = gulp
.src(path.resolve(paths.app_output_latest, "**/*.js"))
.pipe(zopfli(zopfliOptions))
.pipe(gulp.dest(paths.app_output_latest));
const compressDistBrotli = (rootDir, modernDir, compressServiceWorker = true) =>
gulp
.src(
[
`${modernDir}/**/${filesGlob}`,
compressServiceWorker ? `${rootDir}/sw-modern.js` : undefined,
].filter(Boolean),
{
base: rootDir,
}
)
.pipe(brotli(brotliOptions))
.pipe(gulp.dest(rootDir));
const jsEs5 = gulp
.src(path.resolve(paths.app_output_es5, "**/*.js"))
const compressDistZopfli = (rootDir, modernDir, compressModern = false) =>
gulp
.src(
[
`${rootDir}/**/${filesGlob}`,
compressModern ? undefined : `!${modernDir}/**/${filesGlob}`,
`!${rootDir}/{sw-modern,service_worker}.js`,
`${rootDir}/{authorize,onboarding}.html`,
].filter(Boolean),
{ base: rootDir }
)
.pipe(zopfli(zopfliOptions))
.pipe(gulp.dest(paths.app_output_es5));
.pipe(gulp.dest(rootDir));
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 compressAppBrotli = () =>
compressDistBrotli(paths.app_output_root, paths.app_output_latest);
const compressHassioBrotli = () =>
compressDistBrotli(
paths.hassio_output_root,
paths.hassio_output_latest,
false
);
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 compressAppZopfli = () =>
compressDistZopfli(paths.app_output_root, paths.app_output_latest);
const compressHassioZopfli = () =>
compressDistZopfli(
paths.hassio_output_root,
paths.hassio_output_latest,
true
);
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", gulp.parallel(compressAppBrotli, compressAppZopfli));
gulp.task(
"compress-hassio",
gulp.parallel(compressHassioBrotli, compressHassioZopfli)
);
+12 -15
View File
@@ -1,16 +1,13 @@
// Run demo develop mode
const gulp = require("gulp");
const env = require("../env");
require("./clean.js");
require("./translations.js");
require("./gen-icons-json.js");
require("./gather-static.js");
require("./webpack.js");
require("./service-worker.js");
require("./entry-html.js");
require("./rollup.js");
import gulp from "gulp";
import env from "../env.cjs";
import "./clean.js";
import "./entry-html.js";
import "./gather-static.js";
import "./gen-icons-json.js";
import "./rollup.js";
import "./service-worker.js";
import "./translations.js";
import "./webpack.js";
gulp.task(
"develop-demo",
@@ -22,7 +19,7 @@ gulp.task(
"translations-enable-merge-backend",
gulp.parallel(
"gen-icons-json",
"gen-index-demo-dev",
"gen-pages-demo-dev",
"build-translations",
"build-locale-data"
),
@@ -43,6 +40,6 @@ gulp.task(
gulp.parallel("gen-icons-json", "build-translations", "build-locale-data"),
"copy-static-demo",
env.useRollup() ? "rollup-prod-demo" : "webpack-prod-demo",
"gen-index-demo-prod"
"gen-pages-demo-prod"
)
);
+180
View File
@@ -0,0 +1,180 @@
import fs from "fs/promises";
import gulp from "gulp";
import path from "path";
import mapStream from "map-stream";
import transform from "gulp-json-transform";
import { LokaliseApi } from "@lokalise/node-api";
import JSZip from "jszip";
const inDir = "translations";
const inDirFrontend = `${inDir}/frontend`;
const inDirBackend = `${inDir}/backend`;
const srcMeta = "src/translations/translationMetadata.json";
const encoding = "utf8";
function hasHtml(data) {
return /<[a-z][\s\S]*>/i.test(data);
}
function recursiveCheckHasHtml(file, data, errors, recKey) {
Object.keys(data).forEach(function (key) {
if (typeof data[key] === "object") {
const nextRecKey = recKey ? `${recKey}.${key}` : key;
recursiveCheckHasHtml(file, data[key], errors, nextRecKey);
} else if (hasHtml(data[key])) {
errors.push(`HTML found in ${file.path} at key ${recKey}.${key}`);
}
});
}
function checkHtml() {
const errors = [];
return mapStream(function (file, cb) {
const content = file.contents;
let error;
if (content) {
if (hasHtml(String(content))) {
const data = JSON.parse(String(content));
recursiveCheckHasHtml(file, data, errors);
if (errors.length > 0) {
error = errors.join("\r\n");
}
}
}
cb(error, file);
});
}
function convertBackendTranslations(data, _file) {
const output = { component: {} };
if (!data.component) {
return output;
}
Object.keys(data.component).forEach((domain) => {
if (!("entity_component" in data.component[domain])) {
return;
}
output.component[domain] = { entity_component: {} };
Object.keys(data.component[domain].entity_component).forEach((key) => {
output.component[domain].entity_component[key] =
data.component[domain].entity_component[key];
});
});
return output;
}
gulp.task("convert-backend-translations", function () {
return gulp
.src([`${inDirBackend}/*.json`])
.pipe(transform((data, file) => convertBackendTranslations(data, file)))
.pipe(gulp.dest(inDirBackend));
});
gulp.task("check-translations-html", function () {
return gulp
.src([`${inDirFrontend}/*.json`, `${inDirBackend}/*.json`])
.pipe(checkHtml());
});
gulp.task("check-all-files-exist", async function () {
const file = await fs.readFile(srcMeta, { encoding });
const meta = JSON.parse(file);
const writings = [];
Object.keys(meta).forEach((lang) => {
writings.push(
fs.writeFile(`${inDirFrontend}/${lang}.json`, JSON.stringify({}), {
flag: "wx",
}),
fs.writeFile(`${inDirBackend}/${lang}.json`, JSON.stringify({}), {
flag: "wx",
})
);
});
await Promise.allSettled(writings);
});
const lokaliseProjects = {
backend: "130246255a974bd3b5e8a1.51616605",
frontend: "3420425759f6d6d241f598.13594006",
};
gulp.task("fetch-lokalise", async function () {
let apiKey;
try {
apiKey =
process.env.LOKALISE_TOKEN ||
(await fs.readFile(".lokalise_token", { encoding }));
} catch {
throw new Error(
"An Administrator Lokalise API token is required to download the latest set of translations. Place your token in a new file `.lokalise_token` in the repo root directory."
);
}
const lokaliseApi = new LokaliseApi({ apiKey });
const mkdirPromise = Promise.all([
fs.mkdir(inDirFrontend, { recursive: true }),
fs.mkdir(inDirBackend, { recursive: true }),
]);
await Promise.all(
Object.entries(lokaliseProjects).map(([project, projectId]) =>
lokaliseApi
.files()
.download(projectId, {
format: "json",
original_filenames: false,
replace_breaks: false,
json_unescaped_slashes: true,
export_empty_as: "skip",
})
.then((download) => fetch(download.bundle_url))
.then((response) => {
if (response.status === 200 || response.status === 0) {
return response.arrayBuffer();
}
throw new Error(response.statusText);
})
.then(JSZip.loadAsync)
.then(async (contents) => {
await mkdirPromise;
return Promise.all(
Object.keys(contents.files).map(async (filename) => {
const file = contents.file(filename);
if (!file) {
// no file, probably a directory
return Promise.resolve();
}
return file
.async("nodebuffer")
.then((content) =>
fs.writeFile(
path.join(
inDir,
project,
filename.split("/").splice(-1)[0]
),
content,
{ flag: "w", encoding }
)
);
})
);
})
.catch((err) => {
console.error(err);
throw err;
})
)
);
});
gulp.task(
"download-translations",
gulp.series(
"fetch-lokalise",
"convert-backend-translations",
"check-translations-html",
"check-all-files-exist"
)
);
@@ -1,69 +0,0 @@
const gulp = require("gulp");
const fs = require("fs/promises");
const mapStream = require("map-stream");
const inDirFrontend = "translations/frontend";
const inDirBackend = "translations/backend";
const srcMeta = "src/translations/translationMetadata.json";
const encoding = "utf8";
function hasHtml(data) {
return /<[a-z][\s\S]*>/i.test(data);
}
function recursiveCheckHasHtml(file, data, errors, recKey) {
Object.keys(data).forEach(function (key) {
if (typeof data[key] === "object") {
const nextRecKey = recKey ? `${recKey}.${key}` : key;
recursiveCheckHasHtml(file, data[key], errors, nextRecKey);
} else if (hasHtml(data[key])) {
errors.push(`HTML found in ${file.path} at key ${recKey}.${key}`);
}
});
}
function checkHtml() {
const errors = [];
return mapStream(function (file, cb) {
const content = file.contents;
let error;
if (content) {
if (hasHtml(String(content))) {
const data = JSON.parse(String(content));
recursiveCheckHasHtml(file, data, errors);
if (errors.length > 0) {
error = errors.join("\r\n");
}
}
}
cb(error, file);
});
}
// Backend translations do not currently pass HTML check so are excluded here for now
gulp.task("check-translations-html", function () {
return gulp.src([`${inDirFrontend}/*.json`]).pipe(checkHtml());
});
gulp.task("check-all-files-exist", async function () {
const file = await fs.readFile(srcMeta, { encoding });
const meta = JSON.parse(file);
const writings = [];
Object.keys(meta).forEach((lang) => {
writings.push(
fs.writeFile(`${inDirFrontend}/${lang}.json`, JSON.stringify({}), {
flag: "wx",
}),
fs.writeFile(`${inDirBackend}/${lang}.json`, JSON.stringify({}), {
flag: "wx",
})
);
});
await Promise.allSettled(writings);
});
gulp.task(
"check-downloaded-translations",
gulp.series("check-translations-html", "check-all-files-exist")
);
+254 -313
View File
@@ -1,344 +1,285 @@
// Tasks to generate entry HTML
const gulp = require("gulp");
const fs = require("fs-extra");
const path = require("path");
const template = require("lodash.template");
const minify = require("html-minifier").minify;
const paths = require("../paths.js");
const env = require("../env.js");
const templatePath = (tpl) =>
path.resolve(paths.polymer_dir, "src/html/", `${tpl}.html.template`);
import {
applyVersionsToRegexes,
compileRegex,
getPreUserAgentRegexes,
} from "browserslist-useragent-regexp";
import fs from "fs-extra";
import gulp from "gulp";
import { minify } from "html-minifier-terser";
import template from "lodash.template";
import { dirname, extname, resolve } from "node:path";
import { htmlMinifierOptions, terserOptions } from "../bundle.cjs";
import env from "../env.cjs";
import paths from "../paths.cjs";
const readFile = (pth) => fs.readFileSync(pth).toString();
// macOS companion app has no way to obtain the Safari version used by WKWebView,
// and it is not in the default user agent string. So we add an additional regex
// to serve modern based on a minimum macOS version. We take the minimum Safari
// major version from browserslist and manually map that to a supported macOS
// version. Note this assumes the user has kept Safari updated.
const HA_MACOS_REGEX =
/Home Assistant\/[\d.]+ \(.+; macOS (\d+)\.(\d+)(?:\.(\d+))?\)/;
const SAFARI_TO_MACOS = {
15: [10, 15, 0],
16: [11, 0, 0],
17: [12, 0, 0],
18: [13, 0, 0],
};
const renderTemplate = (pth, data = {}, pathFunc = templatePath) => {
const compiled = template(readFile(pathFunc(pth)));
return compiled({
...data,
const getCommonTemplateVars = () => {
const browserRegexes = getPreUserAgentRegexes({
env: "modern",
allowHigherVersions: true,
mobileToDesktop: true,
throwOnMissing: true,
});
const minSafariVersion = browserRegexes.find(
(regex) => regex.family === "safari"
)?.matchedVersions[0][0];
const minMacOSVersion = SAFARI_TO_MACOS[minSafariVersion];
if (!minMacOSVersion) {
throw Error(
`Could not find minimum MacOS version for Safari ${minSafariVersion}.`
);
}
const haMacOSRegex = applyVersionsToRegexes(
[
{
family: "ha_macos",
regex: HA_MACOS_REGEX,
matchedVersions: [minMacOSVersion],
requestVersions: [minMacOSVersion],
},
],
{ ignorePatch: true, allowHigherVersions: true }
);
return {
useRollup: env.useRollup(),
useWDS: env.useWDS(),
renderTemplate,
modernRegex: compileRegex(browserRegexes.concat(haMacOSRegex)).toString(),
};
};
const renderTemplate = (templateFile, data = {}) => {
const compiled = template(
fs.readFileSync(templateFile, { encoding: "utf-8" })
);
return compiled({
...data,
// Resolve any child/nested templates relative to the parent and pass the same data
renderTemplate: (childTemplate) =>
renderTemplate(resolve(dirname(templateFile), childTemplate), data),
});
};
const renderDemoTemplate = (pth, data = {}) =>
renderTemplate(pth, data, (tpl) =>
path.resolve(paths.demo_dir, "src/html/", `${tpl}.html.template`)
const WRAP_TAGS = { ".js": "script", ".css": "style" };
const minifyHtml = (content, ext) => {
const wrapTag = WRAP_TAGS[ext] || "";
const begTag = wrapTag && `<${wrapTag}>`;
const endTag = wrapTag && `</${wrapTag}>`;
return minify(begTag + content + endTag, {
...htmlMinifierOptions,
conservativeCollapse: false,
minifyJS: terserOptions({
latestBuild: false, // Shared scripts should be ES5
isTestBuild: true, // Don't need source maps
}),
}).then((wrapped) =>
wrapTag ? wrapped.slice(begTag.length, -endTag.length) : wrapped
);
};
const renderCastTemplate = (pth, data = {}) =>
renderTemplate(pth, data, (tpl) =>
path.resolve(paths.cast_dir, "src/html/", `${tpl}.html.template`)
);
// Function to generate a dev task for each project's configuration
// Note Currently WDS paths are hard-coded to only work for app
const genPagesDevTask =
(
pageEntries,
inputRoot,
outputRoot,
useWDS = false,
inputSub = "src/html",
publicRoot = ""
) =>
async () => {
const commonVars = getCommonTemplateVars();
for (const [page, entries] of Object.entries(pageEntries)) {
const content = renderTemplate(
resolve(inputRoot, inputSub, `${page}.template`),
{
...commonVars,
latestEntryJS: entries.map((entry) =>
useWDS
? `http://localhost:8000/src/entrypoints/${entry}.ts`
: `${publicRoot}/frontend_latest/${entry}.js`
),
es5EntryJS: entries.map(
(entry) => `${publicRoot}/frontend_es5/${entry}.js`
),
latestCustomPanelJS: useWDS
? "http://localhost:8000/src/entrypoints/custom-panel.ts"
: `${publicRoot}/frontend_latest/custom-panel.js`,
es5CustomPanelJS: `${publicRoot}/frontend_es5/custom-panel.js`,
}
);
fs.outputFileSync(resolve(outputRoot, page), content);
}
};
const renderGalleryTemplate = (pth, data = {}) =>
renderTemplate(pth, data, (tpl) =>
path.resolve(paths.gallery_dir, "src/html/", `${tpl}.html.template`)
);
const minifyHtml = (content) =>
minify(content, {
collapseWhitespace: true,
minifyJS: true,
minifyCSS: true,
removeComments: true,
});
const PAGES = ["onboarding", "authorize"];
gulp.task("gen-pages-dev", (done) => {
for (const page of PAGES) {
const content = renderTemplate(page, {
latestPageJS: `/frontend_latest/${page}.js`,
es5PageJS: `/frontend_es5/${page}.js`,
});
fs.outputFileSync(
path.resolve(paths.app_output_root, `${page}.html`),
content
// Same as previous but for production builds
// (includes minification and hashed file names from manifest)
const genPagesProdTask =
(
pageEntries,
inputRoot,
outputRoot,
outputLatest,
outputES5,
inputSub = "src/html"
) =>
async () => {
const latestManifest = fs.readJsonSync(
resolve(outputLatest, "manifest.json")
);
}
done();
});
const es5Manifest = outputES5
? fs.readJsonSync(resolve(outputES5, "manifest.json"))
: {};
const commonVars = getCommonTemplateVars();
const minifiedHTML = [];
for (const [page, entries] of Object.entries(pageEntries)) {
const content = renderTemplate(
resolve(inputRoot, inputSub, `${page}.template`),
{
...commonVars,
latestEntryJS: entries.map((entry) => latestManifest[`${entry}.js`]),
es5EntryJS: entries.map((entry) => es5Manifest[`${entry}.js`]),
latestCustomPanelJS: latestManifest["custom-panel.js"],
es5CustomPanelJS: es5Manifest["custom-panel.js"],
}
);
minifiedHTML.push(
minifyHtml(content, extname(page)).then((minified) =>
fs.outputFileSync(resolve(outputRoot, page), minified)
)
);
}
await Promise.all(minifiedHTML);
};
gulp.task("gen-pages-prod", (done) => {
const latestManifest = require(path.resolve(
// Map HTML pages to their required entrypoints
const APP_PAGE_ENTRIES = {
"authorize.html": ["authorize"],
"onboarding.html": ["onboarding"],
"index.html": ["core", "app"],
};
gulp.task(
"gen-pages-app-dev",
genPagesDevTask(
APP_PAGE_ENTRIES,
paths.polymer_dir,
paths.app_output_root,
env.useWDS()
)
);
gulp.task(
"gen-pages-app-prod",
genPagesProdTask(
APP_PAGE_ENTRIES,
paths.polymer_dir,
paths.app_output_root,
paths.app_output_latest,
"manifest.json"
));
const es5Manifest = require(path.resolve(
paths.app_output_es5,
"manifest.json"
));
paths.app_output_es5
)
);
for (const page of PAGES) {
const content = renderTemplate(page, {
latestPageJS: latestManifest[`${page}.js`],
const CAST_PAGE_ENTRIES = {
"faq.html": ["launcher"],
"index.html": ["launcher"],
"media.html": ["media"],
"receiver.html": ["receiver"],
};
es5PageJS: es5Manifest[`${page}.js`],
});
gulp.task(
"gen-pages-cast-dev",
genPagesDevTask(CAST_PAGE_ENTRIES, paths.cast_dir, paths.cast_output_root)
);
fs.outputFileSync(
path.resolve(paths.app_output_root, `${page}.html`),
minifyHtml(content)
);
}
done();
});
gulp.task("gen-index-app-dev", (done) => {
let latestAppJS;
let latestCoreJS;
let latestCustomPanelJS;
if (env.useWDS()) {
latestAppJS = "http://localhost:8000/src/entrypoints/app.ts";
latestCoreJS = "http://localhost:8000/src/entrypoints/core.ts";
latestCustomPanelJS =
"http://localhost:8000/src/entrypoints/custom-panel.ts";
} else {
latestAppJS = "/frontend_latest/app.js";
latestCoreJS = "/frontend_latest/core.js";
latestCustomPanelJS = "/frontend_latest/custom-panel.js";
}
const content = renderTemplate("index", {
latestAppJS,
latestCoreJS,
latestCustomPanelJS,
es5AppJS: "/frontend_es5/app.js",
es5CoreJS: "/frontend_es5/core.js",
es5CustomPanelJS: "/frontend_es5/custom-panel.js",
}).replace(/#THEMEC/g, "{{ theme_color }}");
fs.outputFileSync(path.resolve(paths.app_output_root, "index.html"), content);
done();
});
gulp.task("gen-index-app-prod", (done) => {
const latestManifest = require(path.resolve(
paths.app_output_latest,
"manifest.json"
));
const es5Manifest = require(path.resolve(
paths.app_output_es5,
"manifest.json"
));
const content = renderTemplate("index", {
latestAppJS: latestManifest["app.js"],
latestCoreJS: latestManifest["core.js"],
latestCustomPanelJS: latestManifest["custom-panel.js"],
es5AppJS: es5Manifest["app.js"],
es5CoreJS: es5Manifest["core.js"],
es5CustomPanelJS: es5Manifest["custom-panel.js"],
});
const minified = minifyHtml(content).replace(/#THEMEC/g, "{{ theme_color }}");
fs.outputFileSync(
path.resolve(paths.app_output_root, "index.html"),
minified
);
done();
});
gulp.task("gen-index-cast-dev", (done) => {
const contentReceiver = renderCastTemplate("receiver", {
latestReceiverJS: "/frontend_latest/receiver.js",
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "receiver.html"),
contentReceiver
);
const contentMedia = renderCastTemplate("media", {
latestMediaJS: "/frontend_latest/media.js",
es5MediaJS: "/frontend_es5/media.js",
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "media.html"),
contentMedia
);
const contentFAQ = renderCastTemplate("launcher-faq", {
latestLauncherJS: "/frontend_latest/launcher.js",
es5LauncherJS: "/frontend_es5/launcher.js",
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "faq.html"),
contentFAQ
);
const contentLauncher = renderCastTemplate("launcher", {
latestLauncherJS: "/frontend_latest/launcher.js",
es5LauncherJS: "/frontend_es5/launcher.js",
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "index.html"),
contentLauncher
);
done();
});
gulp.task("gen-index-cast-prod", (done) => {
const latestManifest = require(path.resolve(
gulp.task(
"gen-pages-cast-prod",
genPagesProdTask(
CAST_PAGE_ENTRIES,
paths.cast_dir,
paths.cast_output_root,
paths.cast_output_latest,
"manifest.json"
));
const es5Manifest = require(path.resolve(
paths.cast_output_es5,
"manifest.json"
));
paths.cast_output_es5
)
);
const contentReceiver = renderCastTemplate("receiver", {
latestReceiverJS: latestManifest["receiver.js"],
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "receiver.html"),
contentReceiver
);
const DEMO_PAGE_ENTRIES = { "index.html": ["main"] };
const contentMedia = renderCastTemplate("media", {
latestMediaJS: latestManifest["media.js"],
es5MediaJS: es5Manifest["media.js"],
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "media.html"),
contentMedia
);
gulp.task(
"gen-pages-demo-dev",
genPagesDevTask(DEMO_PAGE_ENTRIES, paths.demo_dir, paths.demo_output_root)
);
const contentFAQ = renderCastTemplate("launcher-faq", {
latestLauncherJS: latestManifest["launcher.js"],
es5LauncherJS: es5Manifest["launcher.js"],
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "faq.html"),
contentFAQ
);
const contentLauncher = renderCastTemplate("launcher", {
latestLauncherJS: latestManifest["launcher.js"],
es5LauncherJS: es5Manifest["launcher.js"],
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "index.html"),
contentLauncher
);
done();
});
gulp.task("gen-index-demo-dev", (done) => {
const content = renderDemoTemplate("index", {
latestDemoJS: "/frontend_latest/main.js",
es5DemoJS: "/frontend_es5/main.js",
});
fs.outputFileSync(
path.resolve(paths.demo_output_root, "index.html"),
content
);
done();
});
gulp.task("gen-index-demo-prod", (done) => {
const latestManifest = require(path.resolve(
gulp.task(
"gen-pages-demo-prod",
genPagesProdTask(
DEMO_PAGE_ENTRIES,
paths.demo_dir,
paths.demo_output_root,
paths.demo_output_latest,
"manifest.json"
));
const es5Manifest = require(path.resolve(
paths.demo_output_es5,
"manifest.json"
));
const content = renderDemoTemplate("index", {
latestDemoJS: latestManifest["main.js"],
paths.demo_output_es5
)
);
es5DemoJS: es5Manifest["main.js"],
});
const minified = minifyHtml(content);
const GALLERY_PAGE_ENTRIES = { "index.html": ["entrypoint"] };
fs.outputFileSync(
path.resolve(paths.demo_output_root, "index.html"),
minified
);
done();
});
gulp.task(
"gen-pages-gallery-dev",
genPagesDevTask(
GALLERY_PAGE_ENTRIES,
paths.gallery_dir,
paths.gallery_output_root
)
);
gulp.task("gen-index-gallery-dev", (done) => {
const content = renderGalleryTemplate("index", {
latestGalleryJS: "./frontend_latest/entrypoint.js",
});
gulp.task(
"gen-pages-gallery-prod",
genPagesProdTask(
GALLERY_PAGE_ENTRIES,
paths.gallery_dir,
paths.gallery_output_root,
paths.gallery_output_latest
)
);
fs.outputFileSync(
path.resolve(paths.gallery_output_root, "index.html"),
content
);
done();
});
const HASSIO_PAGE_ENTRIES = { "entrypoint.js": ["entrypoint"] };
gulp.task("gen-index-gallery-prod", (done) => {
const latestManifest = require(path.resolve(
paths.gallery_output_latest,
"manifest.json"
));
const content = renderGalleryTemplate("index", {
latestGalleryJS: latestManifest["entrypoint.js"],
});
const minified = minifyHtml(content);
gulp.task(
"gen-pages-hassio-dev",
genPagesDevTask(
HASSIO_PAGE_ENTRIES,
paths.hassio_dir,
paths.hassio_output_root,
undefined,
"src",
paths.hassio_publicPath
)
);
fs.outputFileSync(
path.resolve(paths.gallery_output_root, "index.html"),
minified
);
done();
});
gulp.task("gen-index-hassio-dev", async () => {
writeHassioEntrypoint(
`${paths.hassio_publicPath}/frontend_latest/entrypoint.js`,
`${paths.hassio_publicPath}/frontend_es5/entrypoint.js`
);
});
gulp.task("gen-index-hassio-prod", async () => {
const latestManifest = require(path.resolve(
gulp.task(
"gen-pages-hassio-prod",
genPagesProdTask(
HASSIO_PAGE_ENTRIES,
paths.hassio_dir,
paths.hassio_output_root,
paths.hassio_output_latest,
"manifest.json"
));
const es5Manifest = require(path.resolve(
paths.hassio_output_es5,
"manifest.json"
));
writeHassioEntrypoint(
latestManifest["entrypoint.js"],
es5Manifest["entrypoint.js"]
);
});
function writeHassioEntrypoint(latestEntrypoint, es5Entrypoint) {
fs.mkdirSync(paths.hassio_output_root, { recursive: true });
// Safari 12 and below does not have a compliant ES2015 implementation of template literals, so we ship ES5
fs.writeFileSync(
path.resolve(paths.hassio_output_root, "entrypoint.js"),
`
function loadES5() {
var el = document.createElement('script');
el.src = '${es5Entrypoint}';
document.body.appendChild(el);
}
if (/.*Version\\/(?:11|12)(?:\\.\\d+)*.*Safari\\//.test(navigator.userAgent)) {
loadES5();
} else {
try {
new Function("import('${latestEntrypoint}')")();
} catch (err) {
loadES5();
}
}
`,
{ encoding: "utf-8" }
);
}
"src"
)
);
@@ -1,14 +1,15 @@
// Task to download the latest Lokalise translations from the nightly workflow artifacts
const del = import("del");
const fs = require("fs/promises");
const path = require("path");
const process = require("process");
const gulp = require("gulp");
const jszip = require("jszip");
const tar = require("tar");
const { Octokit } = require("@octokit/rest");
const { createOAuthDeviceAuth } = require("@octokit/auth-oauth-device");
import { createOAuthDeviceAuth } from "@octokit/auth-oauth-device";
import { retry } from "@octokit/plugin-retry";
import { Octokit } from "@octokit/rest";
import { deleteAsync } from "del";
import { mkdir, readFile, writeFile } from "fs/promises";
import gulp from "gulp";
import jszip from "jszip";
import path from "path";
import process from "process";
import { extract } from "tar";
const MAX_AGE = 24; // hours
const OWNER = "home-assistant";
@@ -37,7 +38,7 @@ gulp.task("fetch-nightly-translations", async function () {
// and stop if they are not old enough
let currentArtifact;
try {
currentArtifact = JSON.parse(await fs.readFile(ARTIFACT_FILE, "utf-8"));
currentArtifact = JSON.parse(await readFile(ARTIFACT_FILE, "utf-8"));
const currentAge =
(Date.now() - Date.parse(currentArtifact.created_at)) / 3600000;
if (currentAge < MAX_AGE) {
@@ -52,7 +53,7 @@ gulp.task("fetch-nightly-translations", async function () {
}
// To store file writing promises
const createExtractDir = fs.mkdir(EXTRACT_DIR, { recursive: true });
const createExtractDir = mkdir(EXTRACT_DIR, { recursive: true });
const writings = [];
// Authenticate to GitHub using GitHub action token if it exists,
@@ -62,7 +63,7 @@ gulp.task("fetch-nightly-translations", async function () {
tokenAuth = { token: process.env.GITHUB_TOKEN };
} else {
try {
tokenAuth = JSON.parse(await fs.readFile(TOKEN_FILE, "utf-8"));
tokenAuth = JSON.parse(await readFile(TOKEN_FILE, "utf-8"));
} catch {
if (!allowTokenSetup) {
console.log("No token found so build wil continue with English only");
@@ -87,7 +88,7 @@ gulp.task("fetch-nightly-translations", async function () {
tokenAuth = await auth({ type: "oauth" });
writings.push(
createExtractDir.then(
fs.writeFile(TOKEN_FILE, JSON.stringify(tokenAuth, null, 2))
writeFile(TOKEN_FILE, JSON.stringify(tokenAuth, null, 2))
)
);
}
@@ -95,7 +96,7 @@ gulp.task("fetch-nightly-translations", async function () {
// Authenticate with token and request workflow runs from GitHub
console.log("Fetching new translations...");
const octokit = new Octokit({
const octokit = new (Octokit.plugin(retry))({
userAgent: "Fetch Nightly Translations",
auth: tokenAuth.token,
});
@@ -131,17 +132,13 @@ gulp.task("fetch-nightly-translations", async function () {
}
writings.push(
createExtractDir.then(
fs.writeFile(ARTIFACT_FILE, JSON.stringify(latestArtifact, null, 2))
writeFile(ARTIFACT_FILE, JSON.stringify(latestArtifact, null, 2))
)
);
// Remove the current translations
const deleteCurrent = Promise.all(writings).then(
(await del).deleteAsync([
`${EXTRACT_DIR}/*`,
`!${ARTIFACT_FILE}`,
`!${TOKEN_FILE}`,
])
deleteAsync([`${EXTRACT_DIR}/*`, `!${ARTIFACT_FILE}`, `!${TOKEN_FILE}`])
);
// Get the download URL and follow the redirect to download (stored as ArrayBuffer)
@@ -159,7 +156,7 @@ gulp.task("fetch-nightly-translations", async function () {
console.log("Unpacking downloaded translations...");
const zip = await jszip.loadAsync(downloadResponse.data);
await deleteCurrent;
const extractStream = zip.file(/.*/)[0].nodeStream().pipe(tar.extract());
const extractStream = zip.file(/.*/)[0].nodeStream().pipe(extract());
await new Promise((resolve, reject) => {
extractStream.on("close", resolve).on("error", reject);
});
+20 -25
View File
@@ -1,26 +1,23 @@
// Run demo develop mode
const gulp = require("gulp");
const fs = require("fs");
const path = require("path");
const { marked } = require("marked");
const glob = require("glob");
const yaml = require("js-yaml");
const env = require("../env");
const paths = require("../paths");
require("./clean.js");
require("./translations.js");
require("./gen-icons-json.js");
require("./gather-static.js");
require("./webpack.js");
require("./service-worker.js");
require("./entry-html.js");
require("./rollup.js");
import fs from "fs";
import { glob } from "glob";
import gulp from "gulp";
import yaml from "js-yaml";
import { marked } from "marked";
import path from "path";
import env from "../env.cjs";
import paths from "../paths.cjs";
import "./clean.js";
import "./entry-html.js";
import "./gather-static.js";
import "./gen-icons-json.js";
import "./rollup.js";
import "./service-worker.js";
import "./translations.js";
import "./webpack.js";
gulp.task("gather-gallery-pages", async function gatherPages() {
const pageDir = path.resolve(paths.gallery_dir, "src/pages");
const files = glob.sync(path.resolve(pageDir, "**/*"));
const files = await glob(path.resolve(pageDir, "**/*"));
const galleryBuild = path.resolve(paths.gallery_dir, "build");
fs.mkdirSync(galleryBuild, { recursive: true });
@@ -89,9 +86,7 @@ gulp.task("gather-gallery-pages", async function gatherPages() {
// Generate sidebar
const sidebarPath = path.resolve(paths.gallery_dir, "sidebar.js");
// To make watch work during development
delete require.cache[sidebarPath];
const sidebar = require(sidebarPath);
const sidebar = (await import(sidebarPath)).default;
const pagesToProcess = {};
for (const key of processed) {
@@ -161,7 +156,7 @@ gulp.task(
"gather-gallery-pages"
),
"copy-static-gallery",
"gen-index-gallery-dev",
"gen-pages-gallery-dev",
gulp.parallel(
env.useRollup()
? "rollup-dev-server-gallery"
@@ -195,6 +190,6 @@ gulp.task(
),
"copy-static-gallery",
env.useRollup() ? "rollup-prod-gallery" : "webpack-prod-gallery",
"gen-index-gallery-prod"
"gen-pages-gallery-prod"
)
);
+16 -5
View File
@@ -1,9 +1,10 @@
// Gulp task to gather all static files.
const gulp = require("gulp");
const path = require("path");
const fs = require("fs-extra");
const paths = require("../paths");
import fs from "fs-extra";
import gulp from "gulp";
import path from "path";
import paths from "../paths.cjs";
import env from "../env.cjs";
const npmPath = (...parts) =>
path.resolve(paths.polymer_dir, "node_modules", ...parts);
@@ -59,9 +60,18 @@ function copyPolyfills(staticDir) {
npmPath("@webcomponents/webcomponentsjs/webcomponents-bundle.js.map"),
staticPath("polyfills/")
);
// dialog-polyfill css
copyFileDir(
npmPath("dialog-polyfill/dialog-polyfill.css"),
staticPath("polyfills/")
);
}
function copyLoaderJS(staticDir) {
if (!env.useRollup()) {
return;
}
const staticPath = genStaticPath(staticDir);
copyFileDir(npmPath("systemjs/dist/s.min.js"), staticPath("js"));
copyFileDir(npmPath("systemjs/dist/s.min.js.map"), staticPath("js"));
@@ -111,9 +121,10 @@ gulp.task("copy-translations-supervisor", async () => {
copyTranslations(staticDir);
});
gulp.task("copy-locale-data-supervisor", async () => {
gulp.task("copy-static-supervisor", async () => {
const staticDir = paths.hassio_output_static;
copyLocaleData(staticDir);
copyFonts(staticDir);
});
gulp.task("copy-static-app", async () => {
+10 -12
View File
@@ -1,17 +1,15 @@
const gulp = require("gulp");
const path = require("path");
const fs = require("fs");
const hash = require("object-hash");
import fs from "fs";
import gulp from "gulp";
import hash from "object-hash";
import path from "path";
import paths from "../paths.cjs";
const ICON_PACKAGE_PATH = path.resolve(
__dirname,
"../../node_modules/@mdi/svg/"
);
const ICON_PACKAGE_PATH = path.resolve("node_modules/@mdi/svg/");
const META_PATH = path.resolve(ICON_PACKAGE_PATH, "meta.json");
const PACKAGE_PATH = path.resolve(ICON_PACKAGE_PATH, "package.json");
const ICON_PATH = path.resolve(ICON_PACKAGE_PATH, "svg");
const OUTPUT_DIR = path.resolve(__dirname, "../../build/mdi");
const REMOVED_ICONS_PATH = path.resolve(__dirname, "../removedIcons.json");
const OUTPUT_DIR = path.resolve(paths.build_dir, "mdi");
const REMOVED_ICONS_PATH = new URL("../removedIcons.json", import.meta.url);
const encoding = "utf8";
@@ -134,11 +132,11 @@ gulp.task("gen-icons-json", (done) => {
});
const file = fs.readFileSync(PACKAGE_PATH, { encoding });
const package = JSON.parse(file);
const packageMeta = JSON.parse(file);
fs.writeFileSync(
path.resolve(OUTPUT_DIR, "iconMetadata.json"),
JSON.stringify({ version: package.version, parts })
JSON.stringify({ version: packageMeta.version, parts })
);
fs.writeFileSync(
+15 -17
View File
@@ -1,15 +1,13 @@
const gulp = require("gulp");
const env = require("../env");
require("./clean.js");
require("./gen-icons-json.js");
require("./webpack.js");
require("./compress.js");
require("./rollup.js");
require("./gather-static.js");
require("./translations.js");
require("./gen-icons-json.js");
import gulp from "gulp";
import env from "../env.cjs";
import "./clean.js";
import "./compress.js";
import "./entry-html.js";
import "./gather-static.js";
import "./gen-icons-json.js";
import "./rollup.js";
import "./translations.js";
import "./webpack.js";
gulp.task(
"develop-hassio",
@@ -19,11 +17,11 @@ gulp.task(
},
"clean-hassio",
"gen-dummy-icons-json",
"gen-index-hassio-dev",
"gen-pages-hassio-dev",
"build-supervisor-translations",
"copy-translations-supervisor",
"build-locale-data",
"copy-locale-data-supervisor",
"copy-static-supervisor",
env.useRollup() ? "rollup-watch-hassio" : "webpack-watch-hassio"
)
);
@@ -39,10 +37,10 @@ gulp.task(
"build-supervisor-translations",
"copy-translations-supervisor",
"build-locale-data",
"copy-locale-data-supervisor",
"copy-static-supervisor",
env.useRollup() ? "rollup-prod-hassio" : "webpack-prod-hassio",
"gen-index-hassio-prod",
"gen-pages-hassio-prod",
...// Don't compress running tests
(env.isTest() ? [] : ["compress-hassio"])
(env.isTestBuild() ? [] : ["compress-hassio"])
)
);
+72 -58
View File
@@ -1,72 +1,86 @@
const del = import("del");
const path = require("path");
const gulp = require("gulp");
const fs = require("fs");
const paths = require("../paths");
import { deleteSync } from "del";
import { mkdir, readFile, writeFile } from "fs/promises";
import gulp from "gulp";
import { join, resolve } from "node:path";
import paths from "../paths.cjs";
const outDir = "build/locale-data";
const formatjsDir = join(paths.polymer_dir, "node_modules", "@formatjs");
const outDir = join(paths.build_dir, "locale-data");
gulp.task("clean-locale-data", async () => (await del).deleteSync([outDir]));
gulp.task("ensure-locale-data-build-dir", (done) => {
if (!fs.existsSync(outDir)) {
fs.mkdirSync(outDir, { recursive: true });
}
done();
});
const modules = {
"intl-relativetimeformat": "RelativeTimeFormat",
const INTL_POLYFILLS = {
"intl-datetimeformat": "DateTimeFormat",
"intl-displaynames": "DisplayNames",
"intl-listformat": "ListFormat",
"intl-numberformat": "NumberFormat",
"intl-relativetimeformat": "RelativeTimeFormat",
};
gulp.task("create-locale-data", (done) => {
const convertToJSON = async (
pkg,
lang,
subDir = "locale-data",
addFunc = "__addLocaleData",
skipMissing = true
) => {
let localeData;
try {
localeData = await readFile(
join(formatjsDir, pkg, subDir, `${lang}.js`),
"utf-8"
);
} catch (e) {
// Ignore if language is missing (i.e. not supported by @formatjs)
if (e.code === "ENOENT" && skipMissing) {
console.warn(`Skipped missing data for language ${lang} from ${pkg}`);
return;
}
throw e;
}
// Convert to JSON
const obj = INTL_POLYFILLS[pkg];
const dataRegex = new RegExp(
`Intl\\.${obj}\\.${addFunc}\\((?<data>.*)\\)`,
"s"
);
localeData = localeData.match(dataRegex)?.groups?.data;
if (!localeData) {
throw Error(`Failed to extract data for language ${lang} from ${pkg}`);
}
// Parse to validate JSON, then stringify to minify
localeData = JSON.stringify(JSON.parse(localeData));
await writeFile(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(
resolve(paths.translations_src, "translationMetadata.json"),
"utf-8"
)
);
Object.entries(modules).forEach(([module, className]) => {
Object.keys(translationMeta).forEach((lang) => {
try {
const localeData = String(
fs.readFileSync(
require.resolve(`@formatjs/${module}/locale-data/${lang}.js`)
)
)
.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);
if (!fs.existsSync(path.join(outDir, module))) {
fs.mkdirSync(path.join(outDir, module), { recursive: true });
}
fs.writeFileSync(
path.join(outDir, `${module}/${lang}.json`),
localeData
);
} catch (e) {
if (e.code !== "MODULE_NOT_FOUND") {
throw e;
}
}
});
done();
});
const conversions = [];
for (const pkg of Object.keys(INTL_POLYFILLS)) {
// eslint-disable-next-line no-await-in-loop
await mkdir(join(outDir, pkg), { recursive: true });
for (const lang of Object.keys(translationMeta)) {
conversions.push(convertToJSON(pkg, lang));
}
}
conversions.push(
convertToJSON(
"intl-datetimeformat",
"add-all-tz",
".",
"__addTZData",
false
)
);
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")
);
+11 -10
View File
@@ -1,13 +1,14 @@
// Tasks to run Rollup
const path = require("path");
const gulp = require("gulp");
const rollup = require("rollup");
const handler = require("serve-handler");
const http = require("http");
const log = require("fancy-log");
const open = require("open");
const rollupConfig = require("../rollup");
const paths = require("../paths");
import log from "fancy-log";
import gulp from "gulp";
import http from "http";
import open from "open";
import path from "path";
import { rollup } from "rollup";
import handler from "serve-handler";
import paths from "../paths.cjs";
import rollupConfig from "../rollup.cjs";
const bothBuilds = (createConfigFunc, params) =>
gulp.series(
@@ -46,7 +47,7 @@ function createServer(serveOptions) {
);
}
function watchRollup(createConfig, extraWatchSrc = [], serveOptions) {
function watchRollup(createConfig, extraWatchSrc = [], serveOptions = null) {
const { inputOptions, outputOptions } = createConfig({
isProdBuild: false,
latestBuild: true,
+74 -81
View File
@@ -1,19 +1,19 @@
// Generate service worker.
// Based on manifest, create a file with the content as service_worker.js
const gulp = require("gulp");
const path = require("path");
const fs = require("fs-extra");
const workboxBuild = require("workbox-build");
const sourceMapUrl = require("source-map-url");
const paths = require("../paths.js");
// Generate service workers
const swDest = path.resolve(paths.app_output_root, "service_worker.js");
import { deleteAsync } from "del";
import gulp from "gulp";
import { mkdir, readFile, symlink, writeFile } from "node:fs/promises";
import { basename, join, relative } from "node:path";
import { injectManifest } from "workbox-build";
import paths from "../paths.cjs";
const writeSW = (content) => fs.outputFileSync(swDest, content.trim() + "\n");
const SW_MAP = {
[paths.app_output_latest]: "modern",
[paths.app_output_es5]: "legacy",
};
gulp.task("gen-service-worker-app-dev", (done) => {
writeSW(
`
const SW_DEV =
`
console.debug('Service worker disabled in development');
self.addEventListener('install', (event) => {
@@ -21,74 +21,67 @@ self.addEventListener('install', (event) => {
// removing any prod service worker the dev might have running
self.skipWaiting();
});
`
`.trim() + "\n";
gulp.task("gen-service-worker-app-dev", async () => {
await mkdir(paths.app_output_root, { recursive: true });
await Promise.all(
Object.values(SW_MAP).map((build) =>
writeFile(join(paths.app_output_root, `sw-${build}.js`), SW_DEV, {
encoding: "utf-8",
})
)
);
done();
});
gulp.task("gen-service-worker-app-prod", async () => {
// Read bundled source file
const bundleManifestLatest = require(path.resolve(
paths.app_output_latest,
"manifest.json"
));
let serviceWorkerContent = fs.readFileSync(
paths.app_output_root + bundleManifestLatest["service_worker.js"],
"utf-8"
);
// Delete old file from frontend_latest so manifest won't pick it up
fs.removeSync(
paths.app_output_root + bundleManifestLatest["service_worker.js"]
);
fs.removeSync(
paths.app_output_root + bundleManifestLatest["service_worker.js.map"]
);
// Remove ES5
const bundleManifestES5 = require(path.resolve(
paths.app_output_es5,
"manifest.json"
));
fs.removeSync(paths.app_output_root + bundleManifestES5["service_worker.js"]);
fs.removeSync(
paths.app_output_root + bundleManifestES5["service_worker.js.map"]
);
const workboxManifest = await workboxBuild.getManifest({
// Files that mach this pattern will be considered unique and skip revision check
// ignore JS files + translation files
dontCacheBustURLsMatching: /(frontend_latest\/.+|static\/translations\/.+)/,
globDirectory: paths.app_output_root,
globPatterns: [
"frontend_latest/*.js",
// Cache all English translations because we catch them as fallback
// Using pattern to match hash instead of * to avoid caching en-GB
// 'v' added as valid hash letter because in dev we hash with 'dev'
"static/translations/**/en-+([a-fv0-9]).json",
// Icon shown on splash screen
"static/icons/favicon-192x192.png",
"static/icons/favicon.ico",
// Common fonts
"static/fonts/roboto/Roboto-Light.woff2",
"static/fonts/roboto/Roboto-Medium.woff2",
"static/fonts/roboto/Roboto-Regular.woff2",
"static/fonts/roboto/Roboto-Bold.woff2",
],
});
for (const warning of workboxManifest.warnings) {
console.warn(warning);
}
// remove source map and add WB manifest
serviceWorkerContent = sourceMapUrl.removeFrom(serviceWorkerContent);
serviceWorkerContent = serviceWorkerContent.replace(
"WB_MANIFEST",
JSON.stringify(workboxManifest.manifestEntries)
);
// Write new file to root
fs.writeFileSync(swDest, serviceWorkerContent);
});
gulp.task("gen-service-worker-app-prod", () =>
Promise.all(
Object.entries(SW_MAP).map(async ([outPath, build]) => {
const manifest = JSON.parse(
await readFile(join(outPath, "manifest.json"), "utf-8")
);
const swSrc = join(paths.app_output_root, manifest["service-worker.js"]);
const swDest = join(paths.app_output_root, `sw-${build}.js`);
const buildDir = relative(paths.app_output_root, outPath);
const { warnings } = await injectManifest({
swSrc,
swDest,
injectionPoint: "__WB_MANIFEST__",
// Files that mach this pattern will be considered unique and skip revision check
// ignore JS files + translation files
dontCacheBustURLsMatching: new RegExp(
`(?:${buildDir}/.+|static/translations/.+)`
),
globDirectory: paths.app_output_root,
globPatterns: [
`${buildDir}/*.js`,
// Cache all English translations because we catch them as fallback
// Using pattern to match hash instead of * to avoid caching en-GB
// 'v' added as valid hash letter because in dev we hash with 'dev'
"static/translations/**/en-+([a-fv0-9]).json",
// Icon shown on splash screen
"static/icons/favicon-192x192.png",
"static/icons/favicon.ico",
// Common fonts
"static/fonts/roboto/Roboto-Light.woff2",
"static/fonts/roboto/Roboto-Medium.woff2",
"static/fonts/roboto/Roboto-Regular.woff2",
"static/fonts/roboto/Roboto-Bold.woff2",
],
globIgnores: [`${buildDir}/service-worker*`],
});
if (warnings.length > 0) {
console.warn(
`Problems while injecting ${build} service worker:\n`,
warnings.join("\n")
);
}
await deleteAsync(`${swSrc}?(.map)`);
// Needed to install new SW from a cached HTML
if (build === "modern") {
const swOld = join(paths.app_output_root, "service_worker.js");
await symlink(basename(swDest), swOld);
}
})
)
);
+240 -361
View File
@@ -1,87 +1,112 @@
const del = import("del");
const crypto = require("crypto");
const path = require("path");
const source = require("vinyl-source-stream");
const vinylBuffer = require("vinyl-buffer");
const gulp = require("gulp");
const fs = require("fs");
const flatmap = require("gulp-flatmap");
const merge = require("gulp-merge-json");
const rename = require("gulp-rename");
const transform = require("gulp-json-transform");
const { mapFiles } = require("../util");
const env = require("../env");
const paths = require("../paths");
/* eslint-disable max-classes-per-file */
require("./fetch-nightly-translations");
import { deleteAsync } from "del";
import { glob } from "glob";
import gulp from "gulp";
import rename from "gulp-rename";
import merge from "lodash.merge";
import { createHash } from "node:crypto";
import { mkdir, readFile } from "node:fs/promises";
import { basename, join } from "node:path";
import { PassThrough, Transform } from "node:stream";
import { finished } from "node:stream/promises";
import env from "../env.cjs";
import paths from "../paths.cjs";
import "./fetch-nightly-translations.js";
const inFrontendDir = "translations/frontend";
const inBackendDir = "translations/backend";
const workDir = "build/translations";
const fullDir = workDir + "/full";
const coreDir = workDir + "/core";
const outDir = workDir + "/output";
const outDir = join(workDir, "output");
const EN_SRC = join(paths.translations_src, "en.json");
const TEST_LOCALE = "en-x-test";
let mergeBackend = false;
gulp.task(
"translations-enable-merge-backend",
gulp.parallel((done) => {
gulp.parallel(async () => {
mergeBackend = true;
done();
}, "allow-setup-fetch-nightly-translations")
);
// Panel translations which should be split from the core translations.
const TRANSLATION_FRAGMENTS = Object.keys(
require("../../src/translations/en.json").ui.panel
);
// Transform stream to apply a function on Vinyl JSON files (buffer mode only).
// The provided function can either return a new object, or an array of
// [object, subdirectory] pairs for fragmentizing the JSON.
class CustomJSON extends Transform {
constructor(func, reviver = null) {
super({ objectMode: true });
this._func = func;
this._reviver = reviver;
}
function recursiveFlatten(prefix, data) {
let output = {};
Object.keys(data).forEach((key) => {
if (typeof data[key] === "object") {
output = {
...output,
...recursiveFlatten(prefix + key + ".", data[key]),
};
async _transform(file, _, callback) {
try {
let obj = JSON.parse(file.contents.toString(), this._reviver);
if (this._func) obj = this._func(obj, file.path);
for (const [outObj, dir] of Array.isArray(obj) ? obj : [[obj, ""]]) {
const outFile = file.clone({ contents: false });
outFile.contents = Buffer.from(JSON.stringify(outObj));
outFile.dirname += `/${dir}`;
this.push(outFile);
}
callback(null);
} catch (err) {
callback(err);
}
}
}
// Transform stream to merge Vinyl JSON files (buffer mode only).
class MergeJSON extends Transform {
_objects = [];
constructor(stem, startObj = {}, reviver = null) {
super({ objectMode: true, allowHalfOpen: false });
this._stem = stem;
this._startObj = structuredClone(startObj);
this._reviver = reviver;
}
async _transform(file, _, callback) {
try {
this._objects.push(JSON.parse(file.contents.toString(), this._reviver));
if (!this._outFile) this._outFile = file.clone({ contents: false });
callback(null);
} catch (err) {
callback(err);
}
}
async _flush(callback) {
try {
const mergedObj = merge(this._startObj, ...this._objects);
this._outFile.contents = Buffer.from(JSON.stringify(mergedObj));
this._outFile.stem = this._stem;
callback(null, this._outFile);
} catch (err) {
callback(err);
}
}
}
// Utility to flatten object keys to single level using separator
const flatten = (data, prefix = "", sep = ".") => {
const output = {};
for (const [key, value] of Object.entries(data)) {
if (typeof value === "object") {
Object.assign(output, flatten(value, prefix + key + sep, sep));
} else {
output[prefix + key] = data[key];
output[prefix + key] = value;
}
});
}
return output;
}
};
function flatten(data) {
return recursiveFlatten("", data);
}
function emptyFilter(data) {
const newData = {};
Object.keys(data).forEach((key) => {
if (data[key]) {
if (typeof data[key] === "object") {
newData[key] = emptyFilter(data[key]);
} else {
newData[key] = data[key];
}
}
});
return newData;
}
function recursiveEmpty(data) {
const newData = {};
Object.keys(data).forEach((key) => {
if (data[key]) {
if (typeof data[key] === "object") {
newData[key] = recursiveEmpty(data[key]);
} else {
newData[key] = "TRANSLATED";
}
}
});
return newData;
}
// Filter functions that can be passed directly to JSON.parse()
const emptyReviver = (_key, value) => value || undefined;
const testReviver = (_key, value) =>
value && typeof value === "string" ? "TRANSLATED" : value;
/**
* Replace Lokalise key placeholders with their actual values.
@@ -90,67 +115,44 @@ function recursiveEmpty(data) {
* be included in src/translations/en.json, but still be usable while
* developing locally.
*
* @link https://docs.lokalise.co/article/KO5SZWLLsy-key-referencing
* @link https://docs.lokalise.com/en/articles/1400528-key-referencing
*/
const re_key_reference = /\[%key:([^%]+)%\]/;
function lokaliseTransform(data, original, file) {
const KEY_REFERENCE = /\[%key:([^%]+)%\]/;
const lokaliseTransform = (data, path, original = data) => {
const output = {};
Object.entries(data).forEach(([key, value]) => {
if (value instanceof Object) {
output[key] = lokaliseTransform(value, original, file);
for (const [key, value] of Object.entries(data)) {
if (typeof value === "object") {
output[key] = lokaliseTransform(value, path, original);
} else {
output[key] = value.replace(re_key_reference, (_match, lokalise_key) => {
output[key] = value.replace(KEY_REFERENCE, (_match, lokalise_key) => {
const replace = lokalise_key.split("::").reduce((tr, k) => {
if (!tr) {
throw Error(
`Invalid key placeholder ${lokalise_key} in ${file.path}`
);
throw Error(`Invalid key placeholder ${lokalise_key} in ${path}`);
}
return tr[k];
}, original);
if (typeof replace !== "string") {
throw Error(
`Invalid key placeholder ${lokalise_key} in ${file.path}`
);
throw Error(`Invalid key placeholder ${lokalise_key} in ${path}`);
}
return replace;
});
}
});
return output;
}
gulp.task("clean-translations", async () => (await del).deleteSync([workDir]));
gulp.task("ensure-translations-build-dir", (done) => {
if (!fs.existsSync(workDir)) {
fs.mkdirSync(workDir, { recursive: true });
}
done();
});
return output;
};
gulp.task("create-test-metadata", (cb) => {
fs.writeFile(
workDir + "/testMetadata.json",
JSON.stringify({
test: {
nativeName: "Test",
},
}),
cb
);
});
gulp.task("clean-translations", () => deleteAsync([workDir]));
gulp.task(
"create-test-translation",
gulp.series("create-test-metadata", () =>
gulp
.src(path.join(paths.translations_src, "en.json"))
.pipe(transform((data, _file) => recursiveEmpty(data)))
.pipe(rename("test.json"))
.pipe(gulp.dest(workDir))
)
);
const makeWorkDir = () => mkdir(workDir, { recursive: true });
const createTestTranslation = () =>
env.isProdBuild()
? Promise.resolve()
: gulp
.src(EN_SRC)
.pipe(new CustomJSON(null, testReviver))
.pipe(rename(`${TEST_LOCALE}.json`))
.pipe(gulp.dest(workDir));
/**
* This task will build a master translation file, to be used as the base for
@@ -161,287 +163,164 @@ gulp.task(
* project is buildable immediately after merging new translation keys, since
* the Lokalise update to translations/en.json will not happen immediately.
*/
gulp.task("build-master-translation", () => {
const src = [path.join(paths.translations_src, "en.json")];
const createMasterTranslation = () =>
gulp
.src([EN_SRC, ...(mergeBackend ? [`${inBackendDir}/en.json`] : [])])
.pipe(new CustomJSON(lokaliseTransform))
.pipe(new MergeJSON("en"))
.pipe(gulp.dest(workDir));
if (mergeBackend) {
src.push(path.join(inBackendDir, "en.json"));
const FRAGMENTS = ["base"];
const toggleSupervisorFragment = async () => {
FRAGMENTS[0] = "supervisor";
};
const panelFragment = (fragment) =>
fragment !== "base" && fragment !== "supervisor";
const HASHES = new Map();
const createTranslations = async () => {
// Parse and store the master to avoid repeating this for each locale, then
// add the panel fragments when processing the app.
const enMaster = JSON.parse(await readFile(`${workDir}/en.json`, "utf-8"));
if (FRAGMENTS[0] === "base") {
FRAGMENTS.push(...Object.keys(enMaster.ui.panel));
}
return gulp
.src(src)
.pipe(transform((data, file) => lokaliseTransform(data, data, file)))
// The downstream pipeline is setup first. It hashes the merged data for
// each locale, then fragmentizes and flattens the data for final output.
const translationFiles = await glob([
`${inFrontendDir}/!(en).json`,
...(env.isProdBuild() ? [] : [`${workDir}/${TEST_LOCALE}.json`]),
]);
const hashStream = new Transform({
objectMode: true,
transform: async (file, _, callback) => {
const hash = env.isProdBuild()
? createHash("md5").update(file.contents).digest("hex")
: "dev";
HASHES.set(file.stem, hash);
file.stem += `-${hash}`;
callback(null, file);
},
}).setMaxListeners(translationFiles.length + 1);
const fragmentsStream = hashStream
.pipe(
merge({
fileName: "en.json",
})
)
.pipe(gulp.dest(fullDir));
});
gulp.task("build-merged-translations", () =>
gulp
.src(
[
inFrontendDir + "/*.json",
"!" + inFrontendDir + "/en.json",
workDir + "/test.json",
],
{
allowEmpty: true,
}
)
.pipe(transform((data, file) => lokaliseTransform(data, data, file)))
.pipe(
flatmap((stream, file) => {
// For each language generate a merged json file. It begins with the master
// translation as a failsafe for untranslated strings, and merges all parent
// tags into one file for each specific subtag
//
// TODO: This is a naive interpretation of BCP47 that should be improved.
// Will be OK for now as long as we don't have anything more complicated
// than a base translation + region.
const tr = path.basename(file.history[0], ".json");
const subtags = tr.split("-");
const src = [fullDir + "/en.json"];
for (let i = 1; i <= subtags.length; i++) {
const lang = subtags.slice(0, i).join("-");
if (lang === "test") {
src.push(workDir + "/test.json");
} else if (lang !== "en") {
src.push(inFrontendDir + "/" + lang + ".json");
if (mergeBackend) {
src.push(inBackendDir + "/" + lang + ".json");
}
new CustomJSON((data) =>
FRAGMENTS.map((fragment) => {
switch (fragment) {
case "base":
// Remove the panels and supervisor to create the base translations
return [
flatten({
...data,
ui: { ...data.ui, panel: undefined },
supervisor: undefined,
}),
"",
];
case "supervisor":
// Supervisor key is at the top level
return [flatten(data.supervisor), ""];
default:
// Create a fragment with only the given panel
return [
flatten(data.ui.panel[fragment], `ui.panel.${fragment}.`),
fragment,
];
}
}
return gulp
.src(src, { allowEmpty: true })
.pipe(transform((data) => emptyFilter(data)))
.pipe(
merge({
fileName: tr + ".json",
})
)
.pipe(gulp.dest(fullDir));
})
)
);
let taskName;
const splitTasks = [];
TRANSLATION_FRAGMENTS.forEach((fragment) => {
taskName = "build-translation-fragment-" + fragment;
gulp.task(taskName, () =>
// Return only the translations for this fragment.
gulp
.src(fullDir + "/*.json")
.pipe(
transform((data) => ({
ui: {
panel: {
[fragment]: data.ui.panel[fragment],
},
},
}))
)
.pipe(gulp.dest(workDir + "/" + fragment))
);
splitTasks.push(taskName);
});
taskName = "build-translation-core";
gulp.task(taskName, () =>
// Remove the fragment translations from the core translation.
gulp
.src(fullDir + "/*.json")
.pipe(
transform((data, _file) => {
TRANSLATION_FRAGMENTS.forEach((fragment) => {
delete data.ui.panel[fragment];
});
delete data.supervisor;
return data;
})
)
.pipe(gulp.dest(coreDir))
);
splitTasks.push(taskName);
gulp.task("build-flattened-translations", () =>
// Flatten the split versions of our translations, and move them into outDir
gulp
.src(
TRANSLATION_FRAGMENTS.map(
(fragment) => workDir + "/" + fragment + "/*.json"
).concat(coreDir + "/*.json"),
{ base: workDir }
)
.pipe(
transform((data) =>
// Polymer.AppLocalizeBehavior requires flattened json
flatten(data)
})
)
)
.pipe(
rename((filePath) => {
if (filePath.dirname === "core") {
filePath.dirname = "";
.pipe(gulp.dest(outDir));
// Send the English master downstream first, then for each other locale
// generate merged JSON data to continue piping. It begins with the master
// translation as a failsafe for untranslated strings, and merges all parent
// tags into one file for each specific subtag
//
// TODO: This is a naive interpretation of BCP47 that should be improved.
// Will be OK for now as long as we don't have anything more complicated
// than a base translation + region.
const masterStream = gulp
.src(`${workDir}/en.json`)
.pipe(new PassThrough({ objectMode: true }));
masterStream.pipe(hashStream, { end: false });
const mergesFinished = [finished(masterStream)];
for (const translationFile of translationFiles) {
const locale = basename(translationFile, ".json");
const subtags = locale.split("-");
const mergeFiles = [];
for (let i = 1; i <= subtags.length; i++) {
const lang = subtags.slice(0, i).join("-");
if (lang === TEST_LOCALE) {
mergeFiles.push(`${workDir}/${TEST_LOCALE}.json`);
} else if (lang !== "en") {
mergeFiles.push(`${inFrontendDir}/${lang}.json`);
if (mergeBackend) {
mergeFiles.push(`${inBackendDir}/${lang}.json`);
}
// In dev we create the file with the fake hash in the filename
if (!env.isProdBuild()) {
filePath.basename += "-dev";
}
})
)
.pipe(gulp.dest(outDir))
);
const fingerprints = {};
gulp.task("build-translation-fingerprints", () => {
// Fingerprint full file of each language
const files = fs.readdirSync(fullDir);
for (let i = 0; i < files.length; i++) {
fingerprints[files[i].split(".")[0]] = {
// In dev we create fake hashes
hash: env.isProdBuild()
? crypto
.createHash("md5")
.update(fs.readFileSync(path.join(fullDir, files[i]), "utf-8"))
.digest("hex")
: "dev",
};
}
// In dev we create the file with the fake hash in the filename
if (env.isProdBuild()) {
mapFiles(outDir, ".json", (filename) => {
const parsed = path.parse(filename);
// nl.json -> nl-<hash>.json
if (!(parsed.name in fingerprints)) {
throw new Error(`Unable to find hash for ${filename}`);
}
fs.renameSync(
filename,
`${parsed.dir}/${parsed.name}-${fingerprints[parsed.name].hash}${
parsed.ext
}`
);
});
}
const mergeStream = gulp
.src(mergeFiles, { allowEmpty: true })
.pipe(new MergeJSON(locale, enMaster, emptyReviver));
mergesFinished.push(finished(mergeStream));
mergeStream.pipe(hashStream, { end: false });
}
const stream = source("translationFingerprints.json");
stream.write(JSON.stringify(fingerprints));
process.nextTick(() => stream.end());
return stream.pipe(vinylBuffer()).pipe(gulp.dest(workDir));
});
// Wait for all merges to finish, then it's safe to end writing to the
// downstream pipeline and wait for all fragments to finish writing.
await Promise.all(mergesFinished);
hashStream.end();
await finished(fragmentsStream);
};
gulp.task("build-translation-fragment-supervisor", () =>
const writeTranslationMetaData = () =>
gulp
.src(fullDir + "/*.json")
.pipe(transform((data) => data.supervisor))
.src([`${paths.translations_src}/translationMetadata.json`])
.pipe(
rename((filePath) => {
// In dev we create the file with the fake hash in the filename
new CustomJSON((meta) => {
// Add the test translation in development.
if (!env.isProdBuild()) {
filePath.basename += "-dev";
meta[TEST_LOCALE] = { nativeName: "Translation Test" };
}
})
)
.pipe(gulp.dest(workDir + "/supervisor"))
);
gulp.task("build-translation-flatten-supervisor", () =>
gulp
.src(workDir + "/supervisor/*.json")
.pipe(
transform((data) =>
// Polymer.AppLocalizeBehavior requires flattened json
flatten(data)
)
)
.pipe(gulp.dest(outDir))
);
gulp.task("build-translation-write-metadata", () =>
gulp
.src(
[
path.join(paths.translations_src, "translationMetadata.json"),
workDir + "/testMetadata.json",
workDir + "/translationFingerprints.json",
],
{ allowEmpty: true }
)
.pipe(merge({}))
.pipe(
transform((data) => {
const newData = {};
Object.entries(data).forEach(([key, value]) => {
// Filter out translations without native name.
if (value.nativeName) {
newData[key] = value;
} else {
// Filter out locales without a native name, and add the hashes.
for (const locale of Object.keys(meta)) {
if (!meta[locale].nativeName) {
meta[locale] = undefined;
console.warn(
`Skipping language ${key}. Native name was not translated.`
`Skipping locale ${locale} because native name is not translated.`
);
} else {
meta[locale].hash = HASHES.get(locale);
}
});
return newData;
}
return {
fragments: FRAGMENTS.filter(panelFragment),
translations: meta,
};
})
)
.pipe(
transform((data) => ({
fragments: TRANSLATION_FRAGMENTS,
translations: data,
}))
)
.pipe(rename("translationMetadata.json"))
.pipe(gulp.dest(workDir))
);
gulp.task(
"create-translations",
gulp.series(
env.isProdBuild() ? (done) => done() : "create-test-translation",
"build-master-translation",
"build-merged-translations",
gulp.parallel(...splitTasks),
"build-flattened-translations"
)
);
.pipe(gulp.dest(workDir));
gulp.task(
"build-translations",
gulp.series(
gulp.parallel(
"fetch-nightly-translations",
gulp.series("clean-translations", "ensure-translations-build-dir")
gulp.series("clean-translations", makeWorkDir)
),
"create-translations",
"build-translation-fingerprints",
"build-translation-write-metadata"
createTestTranslation,
createMasterTranslation,
createTranslations,
writeTranslationMetaData
)
);
gulp.task(
"build-supervisor-translations",
gulp.series(
gulp.parallel(
"fetch-nightly-translations",
gulp.series("clean-translations", "ensure-translations-build-dir")
),
"build-master-translation",
"build-merged-translations",
"build-translation-fragment-supervisor",
"build-translation-flatten-supervisor",
"build-translation-fingerprints",
"build-translation-write-metadata"
)
gulp.series(toggleSupervisorFragment, "build-translations")
);
+3 -4
View File
@@ -1,8 +1,7 @@
// Tasks to run Rollup
const gulp = require("gulp");
const { startDevServer } = require("@web/dev-server");
import gulp from "gulp";
import { startDevServer } from "@web/dev-server";
gulp.task("wds-watch-app", () => {
gulp.task("wds-watch-app", async () => {
startDevServer({
config: {
watch: true,
+33 -17
View File
@@ -1,18 +1,20 @@
// Tasks to run webpack.
const fs = require("fs");
const gulp = require("gulp");
const webpack = require("webpack");
const WebpackDevServer = require("webpack-dev-server");
const log = require("fancy-log");
const path = require("path");
const paths = require("../paths");
const {
import fs from "fs";
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";
import paths from "../paths.cjs";
import {
createAppConfig,
createDemoConfig,
createCastConfig,
createHassioConfig,
createDemoConfig,
createGalleryConfig,
} = require("../webpack");
createHassioConfig,
} from "../webpack.cjs";
const bothBuilds = (createConfigFunc, params) => [
createConfigFunc({ ...params, latestBuild: true }),
@@ -38,10 +40,15 @@ const runDevServer = async ({
compiler,
contentBase,
port,
listenHost = "localhost",
listenHost = undefined,
}) => {
if (listenHost === undefined) {
// For dev container, we need to listen on all hosts
listenHost = env.isDevContainer() ? "0.0.0.0" : "localhost";
}
const server = new WebpackDevServer(
{
hot: false,
open: true,
host: listenHost,
port,
@@ -96,7 +103,7 @@ gulp.task("webpack-watch-app", () => {
).watch({ poll: isWsl }, doneHandler());
gulp.watch(
path.join(paths.translations_src, "en.json"),
gulp.series("create-translations", "copy-translations-app")
gulp.series("build-translations", "copy-translations-app")
);
});
@@ -104,13 +111,17 @@ gulp.task("webpack-prod-app", () =>
prodBuild(
bothBuilds(createAppConfig, {
isProdBuild: true,
isStatsBuild: env.isStatsBuild(),
isTestBuild: env.isTestBuild(),
})
)
);
gulp.task("webpack-dev-server-demo", () =>
runDevServer({
compiler: webpack(bothBuilds(createDemoConfig, { isProdBuild: false })),
compiler: webpack(
createDemoConfig({ isProdBuild: false, latestBuild: true })
),
contentBase: paths.demo_output_root,
port: 8090,
})
@@ -126,7 +137,9 @@ gulp.task("webpack-prod-demo", () =>
gulp.task("webpack-dev-server-cast", () =>
runDevServer({
compiler: webpack(bothBuilds(createCastConfig, { isProdBuild: false })),
compiler: webpack(
createCastConfig({ isProdBuild: false, latestBuild: true })
),
contentBase: paths.cast_output_root,
port: 8080,
// Accessible from the network, because that's how Cast hits it.
@@ -161,14 +174,17 @@ gulp.task("webpack-prod-hassio", () =>
prodBuild(
bothBuilds(createHassioConfig, {
isProdBuild: true,
isStatsBuild: env.isStatsBuild(),
isTestBuild: env.isTestBuild(),
})
)
);
gulp.task("webpack-dev-server-gallery", () =>
runDevServer({
// We don't use the es5 build, but the dev server will fuck up the publicPath if we don't
compiler: webpack(bothBuilds(createGalleryConfig, { isProdBuild: false })),
compiler: webpack(
createGalleryConfig({ isProdBuild: false, latestBuild: true })
),
contentBase: paths.gallery_output_root,
port: 8100,
listenHost: "0.0.0.0",
+83
View File
@@ -0,0 +1,83 @@
#!/usr/bin/env node
// Script to print Babel plugins and Core JS polyfills that will be used by browserslist environments
import { version as babelVersion } from "@babel/core";
import presetEnv from "@babel/preset-env";
import compilationTargets from "@babel/helper-compilation-targets";
import coreJSCompat from "core-js-compat";
import { logPlugin } from "@babel/preset-env/lib/debug.js";
// eslint-disable-next-line import/no-relative-packages
import shippedPolyfills from "../node_modules/babel-plugin-polyfill-corejs3/lib/shipped-proposals.js";
import { babelOptions } from "./bundle.cjs";
const detailsOpen = (heading) =>
`<details>\n<summary><h4>${heading}</h4></summary>\n`;
const detailsClose = "</details>\n";
const dummyAPI = {
version: babelVersion,
assertVersion: () => {},
caller: (callback) =>
callback({
name: "Dummy Bundler",
supportsStaticESM: true,
supportsDynamicImport: true,
supportsTopLevelAwait: true,
supportsExportNamespaceFrom: true,
}),
targets: () => ({}),
};
// Generate filter function based on proposal/method inputs
// Copied and adapted from babel-plugin-polyfill-corejs3/esm/index.mjs
const polyfillFilter = (method, proposals, shippedProposals) => (name) => {
if (proposals || method === "entry-global") return true;
if (shippedProposals && shippedPolyfills.default.has(name)) {
return true;
}
if (name.startsWith("esnext.")) {
const esName = `es.${name.slice(7)}`;
// If its imaginative esName is not in latest compat data, it means the proposal is not stage 4
return esName in coreJSCompat.data;
}
return true;
};
// Log the plugins and polyfills for each build environment
for (const buildType of ["Modern", "Legacy"]) {
const browserslistEnv = buildType.toLowerCase();
const babelOpts = babelOptions({ latestBuild: browserslistEnv === "modern" });
const presetEnvOpts = babelOpts.presets[0][1];
// Invoking preset-env in debug mode will log the included plugins
console.log(detailsOpen(`${buildType} Build Babel Plugins`));
presetEnv.default(dummyAPI, {
...presetEnvOpts,
browserslistEnv,
debug: true,
});
console.log(detailsClose);
// Manually log the Core-JS polyfills using the same technique
if (presetEnvOpts.useBuiltIns) {
console.log(detailsOpen(`${buildType} Build Core-JS Polyfills`));
const targets = compilationTargets.default(babelOpts?.targets, {
browserslistEnv,
});
const polyfillList = coreJSCompat({ targets }).list.filter(
polyfillFilter(
`${presetEnvOpts.useBuiltIns}-global`,
presetEnvOpts?.corejs?.proposals,
presetEnvOpts?.shippedProposals
)
);
console.log(
"The following %i polyfills may be injected by Babel:\n",
polyfillList.length
);
for (const polyfill of polyfillList) {
logPlugin(polyfill, targets, coreJSCompat.data);
}
console.log(detailsClose);
}
}
File renamed without changes.
+1 -30
View File
@@ -1,30 +1 @@
[
{
"path": "M20,20H7A2,2 0 0,1 5,18V8.94L2.23,5.64C2.09,5.47 2,5.24 2,5A1,1 0 0,1 3,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20M8.5,7A0.5,0.5 0 0,0 8,7.5V8.5A0.5,0.5 0 0,0 8.5,9H18.5A0.5,0.5 0 0,0 19,8.5V7.5A0.5,0.5 0 0,0 18.5,7H8.5M8.5,11A0.5,0.5 0 0,0 8,11.5V12.5A0.5,0.5 0 0,0 8.5,13H18.5A0.5,0.5 0 0,0 19,12.5V11.5A0.5,0.5 0 0,0 18.5,11H8.5M8.5,15A0.5,0.5 0 0,0 8,15.5V16.5A0.5,0.5 0 0,0 8.5,17H13.5A0.5,0.5 0 0,0 14,16.5V15.5A0.5,0.5 0 0,0 13.5,15H8.5Z",
"name": "android-messages"
},
{
"path": "M4,6H2V20A2,2 0 0,0 4,22H18V20H4V6M20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M20,12L17.5,10.5L15,12V4H20V12Z",
"name": "book-variant-multiple"
},
{
"path": "M21,14H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10L8,21V22H16V21L14,18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z",
"name": "desktop-mac"
},
{
"path": "M21,14V4H3V14H21M21,2A2,2 0 0,1 23,4V16A2,2 0 0,1 21,18H14L16,21V22H8V21L10,18H3C1.89,18 1,17.1 1,16V4C1,2.89 1.89,2 3,2H21M4,5H15V10H4V5M16,5H20V7H16V5M20,8V13H16V8H20M4,11H9V13H4V11M10,11H15V13H10V11Z",
"name": "desktop-mac-dashboard"
},
{
"path": "M22,24L16.75,19L17.38,21H4.5A2.5,2.5 0 0,1 2,18.5V3.5A2.5,2.5 0 0,1 4.5,1H19.5A2.5,2.5 0 0,1 22,3.5V24M12,6.8C9.32,6.8 7.44,7.95 7.44,7.95C8.47,7.03 10.27,6.5 10.27,6.5L10.1,6.33C8.41,6.36 6.88,7.53 6.88,7.53C5.16,11.12 5.27,14.22 5.27,14.22C6.67,16.03 8.75,15.9 8.75,15.9L9.46,15C8.21,14.73 7.42,13.62 7.42,13.62C7.42,13.62 9.3,14.9 12,14.9C14.7,14.9 16.58,13.62 16.58,13.62C16.58,13.62 15.79,14.73 14.54,15L15.25,15.9C15.25,15.9 17.33,16.03 18.73,14.22C18.73,14.22 18.84,11.12 17.12,7.53C17.12,7.53 15.59,6.36 13.9,6.33L13.73,6.5C13.73,6.5 15.53,7.03 16.56,7.95C16.56,7.95 14.68,6.8 12,6.8M9.93,10.59C10.58,10.59 11.11,11.16 11.1,11.86C11.1,12.55 10.58,13.13 9.93,13.13C9.29,13.13 8.77,12.55 8.77,11.86C8.77,11.16 9.28,10.59 9.93,10.59M14.1,10.59C14.75,10.59 15.27,11.16 15.27,11.86C15.27,12.55 14.75,13.13 14.1,13.13C13.46,13.13 12.94,12.55 12.94,11.86C12.94,11.16 13.45,10.59 14.1,10.59Z",
"name": "discord"
},
{
"path": "M8.06,7.78C7.5,7.78 7.17,7.73 7.08,7.64L6.66,13.73C7.19,14.05 7.88,14.3 8.72,14.5C9.56,14.71 10.78,14.77 12.38,14.67C13.97,14.58 15.63,14.23 17.34,13.64L16.55,4.22C15.67,5.09 14.38,5.91 12.66,6.66C11.13,7.31 9.81,7.69 8.72,7.78H8.06M7.97,5.34C7.28,5.94 7,6.34 7.13,6.56C7.22,6.78 7.7,6.84 8.58,6.75C9.67,6.66 10.91,6.31 12.28,5.72C13.22,5.31 14.03,4.88 14.72,4.41C15.41,3.94 15.88,3.55 16.13,3.23C16.38,2.92 16.47,2.7 16.41,2.58C16.34,2.42 16.03,2.34 15.47,2.34C14.34,2.34 12.94,2.7 11.25,3.42C9.81,4.05 8.72,4.69 7.97,5.34M17.34,2.2C17.41,2.33 17.44,2.47 17.44,2.63L18.61,17C18.61,18.73 18,20.09 16.83,21.07C15.64,22.05 14.03,22.55 12,22.55C10,22.55 8.4,22.04 7.2,21C6,20 5.39,18.64 5.39,16.92L6.09,6.47C6.09,6.22 6.2,5.94 6.42,5.63C6.64,5.31 6.84,5.06 7.03,4.88L7.36,4.59C8.33,3.78 9.5,3.08 10.88,2.5C11.81,2.08 12.73,1.77 13.62,1.57C14.5,1.37 15.3,1.3 16,1.38C16.71,1.46 17.16,1.73 17.34,2.2Z",
"name": "google-home"
},
{
"path": "M19.25,19H4.75V3H19.25M14,22H10V21H14M18,0H6A3,3 0 0,0 3,3V21A3,3 0 0,0 6,24H18A3,3 0 0,0 21,21V3A3,3 0 0,0 18,0Z",
"name": "tablet-android"
}
]
[]
@@ -103,7 +103,7 @@ module.exports = function (opts = {}) {
}
delete optionsObject.type;
if (!new RegExp("^.*/").test(workerFile)) {
if (!/^.*\//.test(workerFile)) {
this.warn(
`Paths passed to the Worker constructor must be relative or absolute, i.e. start with /, ./ or ../ (just like dynamic import!). Ignoring "${workerFile}".`
);
@@ -3,18 +3,18 @@ const path = require("path");
const commonjs = require("@rollup/plugin-commonjs");
const resolve = require("@rollup/plugin-node-resolve");
const json = require("@rollup/plugin-json");
const babel = require("@rollup/plugin-babel").babel;
const { babel } = require("@rollup/plugin-babel");
const replace = require("@rollup/plugin-replace");
const visualizer = require("rollup-plugin-visualizer");
const { string } = require("rollup-plugin-string");
const { terser } = require("rollup-plugin-terser");
const manifest = require("./rollup-plugins/manifest-plugin");
const worker = require("./rollup-plugins/worker-plugin");
const dontHashPlugin = require("./rollup-plugins/dont-hash-plugin");
const ignore = require("./rollup-plugins/ignore-plugin");
const manifest = require("./rollup-plugins/manifest-plugin.cjs");
const worker = require("./rollup-plugins/worker-plugin.cjs");
const dontHashPlugin = require("./rollup-plugins/dont-hash-plugin.cjs");
const ignore = require("./rollup-plugins/ignore-plugin.cjs");
const bundle = require("./bundle");
const paths = require("./paths");
const bundle = require("./bundle.cjs");
const paths = require("./paths.cjs");
const extensions = [".js", ".ts"];
@@ -39,11 +39,18 @@ const createRollupConfig = ({
inputOptions: {
input: entry,
// Some entry points contain no JavaScript. This setting silences a warning about that.
// https://rollupjs.org/guide/en/#preserveentrysignatures
// https://rollupjs.org/configuration-options/#preserveentrysignatures
preserveEntrySignatures: false,
plugins: [
ignore({
files: bundle.emptyPackages({ latestBuild }),
files: bundle
.emptyPackages({ latestBuild })
// TEMP HACK: Makes Rollup build work again
.concat(
require.resolve(
"@webcomponents/scoped-custom-element-registry/scoped-custom-element-registry.min"
)
),
}),
resolve({
extensions,
@@ -54,7 +61,7 @@ const createRollupConfig = ({
commonjs(),
json(),
babel({
...bundle.babelOptions({ latestBuild }),
...bundle.babelOptions({ latestBuild, isProdBuild }),
extensions,
babelHelpers: isWDS ? "inline" : "bundled",
}),
@@ -69,7 +76,7 @@ const createRollupConfig = ({
}),
!isWDS && worker(),
!isWDS && dontHashPlugin({ dontHash }),
!isWDS && isProdBuild && terser(bundle.terserOptions(latestBuild)),
!isWDS && isProdBuild && terser(bundle.terserOptions({ latestBuild })),
!isWDS &&
isStatsBuild &&
visualizer({
@@ -83,20 +90,20 @@ const createRollupConfig = ({
* @type { import("rollup").OutputOptions }
*/
outputOptions: {
// https://rollupjs.org/guide/en/#outputdir
// https://rollupjs.org/configuration-options/#output-dir
dir: outputPath,
// https://rollupjs.org/guide/en/#outputformat
// https://rollupjs.org/configuration-options/#output-format
format: latestBuild ? "es" : "systemjs",
// https://rollupjs.org/guide/en/#outputexternallivebindings
// https://rollupjs.org/configuration-options/#output-externallivebindings
externalLiveBindings: false,
// https://rollupjs.org/guide/en/#outputentryfilenames
// https://rollupjs.org/guide/en/#outputchunkfilenames
// https://rollupjs.org/guide/en/#outputassetfilenames
// https://rollupjs.org/configuration-options/#output-entryfilenames
// https://rollupjs.org/configuration-options/#output-chunkfilenames
// https://rollupjs.org/configuration-options/#output-assetfilenames
entryFileNames:
isProdBuild && !isStatsBuild ? "[name]-[hash].js" : "[name].js",
chunkFileNames: isProdBuild && !isStatsBuild ? "c.[hash].js" : "[name].js",
assetFileNames: isProdBuild && !isStatsBuild ? "a.[hash].js" : "[name].js",
// https://rollupjs.org/guide/en/#outputsourcemap
// https://rollupjs.org/configuration-options/#output-sourcemap
sourcemap: isProdBuild ? true : "inline",
},
});
@@ -135,4 +142,5 @@ module.exports = {
createCastConfig,
createHassioConfig,
createGalleryConfig,
createRollupConfig,
};
-16
View File
@@ -1,16 +0,0 @@
const path = require("path");
const fs = require("fs");
// Helper function to map recursively over files in a folder and it's subfolders
module.exports.mapFiles = function mapFiles(startPath, filter, mapFunc) {
const files = fs.readdirSync(startPath);
for (let i = 0; i < files.length; i++) {
const filename = path.join(startPath, files[i]);
const stat = fs.lstatSync(filename);
if (stat.isDirectory()) {
mapFiles(filename, filter, mapFunc);
} else if (filename.indexOf(filter) >= 0) {
mapFunc(filename);
}
}
};
@@ -1,12 +1,18 @@
const webpack = require("webpack");
const { existsSync } = require("fs");
const path = require("path");
const webpack = require("webpack");
const { StatsWriterPlugin } = require("webpack-stats-plugin");
const filterStats = require("@bundle-stats/plugin-webpack-filter").default;
const TerserPlugin = require("terser-webpack-plugin");
const { WebpackManifestPlugin } = require("webpack-manifest-plugin");
const CompressionWebpackPlugin = require("compression-webpack-plugin");
const log = require("fancy-log");
const WebpackBar = require("webpackbar");
const paths = require("./paths.js");
const bundle = require("./bundle.js");
const {
TransformAsyncModulesPlugin,
} = require("transform-async-modules-webpack-plugin");
const { dependencies } = require("../package.json");
const paths = require("./paths.cjs");
const bundle = require("./bundle.cjs");
class LogStartCompilePlugin {
ignoredFirst = false;
@@ -23,6 +29,7 @@ class LogStartCompilePlugin {
}
const createWebpackConfig = ({
name,
entry,
outputPath,
publicPath,
@@ -30,6 +37,7 @@ const createWebpackConfig = ({
isProdBuild,
latestBuild,
isStatsBuild,
isTestBuild,
isHassioBuild,
dontHash,
}) => {
@@ -38,24 +46,41 @@ const createWebpackConfig = ({
}
const ignorePackages = bundle.ignorePackages({ latestBuild });
return {
name,
mode: isProdBuild ? "production" : "development",
target: ["web", latestBuild ? "es2017" : "es5"],
devtool: isProdBuild
? "cheap-module-source-map"
: "eval-cheap-module-source-map",
target: `browserslist:${latestBuild ? "modern" : "legacy"}`,
// For tests/CI, source maps are skipped to gain build speed
// For production, generate source maps for accurate stack traces without source code
// For development, generate "cheap" versions that can map to original line numbers
devtool: isTestBuild
? false
: isProdBuild
? "nosources-source-map"
: "eval-cheap-module-source-map",
entry,
node: false,
module: {
rules: [
{
test: /\.m?js$|\.ts$/,
use: {
use: (info) => ({
loader: "babel-loader",
options: {
...bundle.babelOptions({ latestBuild }),
...bundle.babelOptions({
latestBuild,
isProdBuild,
isTestBuild,
sw: info.issuerLayer === "sw",
}),
cacheDirectory: !isProdBuild,
cacheCompression: false,
},
}),
resolve: {
fullySpecified: false,
},
parser: {
worker: ["*context.audioWorklet.addModule()", "..."],
},
},
{
@@ -69,14 +94,24 @@ const createWebpackConfig = ({
new TerserPlugin({
parallel: true,
extractComments: true,
terserOptions: bundle.terserOptions(latestBuild),
terserOptions: bundle.terserOptions({ latestBuild, isTestBuild }),
}),
],
moduleIds: isProdBuild && !isStatsBuild ? "deterministic" : "named",
chunkIds: isProdBuild && !isStatsBuild ? "deterministic" : "named",
splitChunks: {
// Disable splitting for web workers and worklets because imports of
// external chunks are broken for:
// - ESM output: https://github.com/webpack/webpack/issues/17014
// - Worklets use `importScripts`: https://github.com/webpack/webpack/issues/11543
chunks: (chunk) =>
!chunk.canBeInitial() &&
!new RegExp(`^.+-work${latestBuild ? "(?:let|er)" : "let"}$`).test(
chunk.name
),
},
},
plugins: [
new CompressionWebpackPlugin(),
!isStatsBuild && new WebpackBar({ fancy: !isProdBuild }),
new WebpackManifestPlugin({
// Only include the JS of entrypoints
@@ -124,10 +159,25 @@ const createWebpackConfig = ({
path.resolve(paths.polymer_dir, "src/util/empty.js")
),
!isProdBuild && new LogStartCompilePlugin(),
isProdBuild &&
new StatsWriterPlugin({
filename: path.relative(
outputPath,
path.join(paths.build_dir, "stats", `${name}.json`)
),
stats: { assets: true, chunks: true, modules: true },
transform: (stats) => JSON.stringify(filterStats(stats)),
}),
!latestBuild &&
new TransformAsyncModulesPlugin({
browserslistEnv: "legacy",
runtime: { version: dependencies["@babel/runtime"] },
}),
].filter(Boolean),
resolve: {
extensions: [".ts", ".js", ".json"],
alias: {
"lit/static-html$": "lit/static-html.js",
"lit/decorators$": "lit/decorators.js",
"lit/directive$": "lit/directive.js",
"lit/directives/until$": "lit/directives/until.js",
@@ -137,34 +187,73 @@ const createWebpackConfig = ({
"lit/directives/guard$": "lit/directives/guard.js",
"lit/directives/cache$": "lit/directives/cache.js",
"lit/directives/repeat$": "lit/directives/repeat.js",
"lit/directives/live$": "lit/directives/live.js",
"lit/polyfill-support$": "lit/polyfill-support.js",
"@lit-labs/virtualizer/layouts/grid":
"@lit-labs/virtualizer/layouts/grid.js",
"@lit-labs/virtualizer/polyfills/resize-observer-polyfill/ResizeObserver":
"@lit-labs/virtualizer/polyfills/resize-observer-polyfill/ResizeObserver.js",
"@lit-labs/observers/resize-controller":
"@lit-labs/observers/resize-controller.js",
},
},
output: {
filename: ({ chunk }) => {
if (!isProdBuild || isStatsBuild || dontHash.has(chunk.name)) {
return `${chunk.name}.js`;
}
return `${chunk.name}.${chunk.hash.substr(0, 8)}.js`;
},
module: latestBuild,
filename: ({ chunk }) =>
!isProdBuild || isStatsBuild || dontHash.has(chunk.name)
? "[name].js"
: "[name].[contenthash].js",
chunkFilename:
isProdBuild && !isStatsBuild ? "[chunkhash:8].js" : "[id].chunk.js",
isProdBuild && !isStatsBuild ? "[name].[contenthash].js" : "[name].js",
assetModuleFilename:
isProdBuild && !isStatsBuild ? "[id].[contenthash][ext]" : "[id][ext]",
crossOriginLoading: "use-credentials",
hashFunction: "xxhash64",
hashDigest: "base64url",
hashDigestLength: 11, // full length of 64 bit base64url
path: outputPath,
publicPath,
// To silence warning in worker plugin
globalObject: "self",
// 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
...Object.fromEntries(
["", "Fallback"].map((v) => [
`devtool${v}ModuleFilenameTemplate`,
!isTestBuild && isProdBuild
? (info) => {
if (
!path.isAbsolute(info.absoluteResourcePath) ||
!existsSync(info.resourcePath) ||
info.resourcePath.startsWith("./node_modules")
) {
// 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;
}
: undefined,
])
),
},
experiments: {
topLevelAwait: true,
layers: true,
outputModule: true,
},
};
};
const createAppConfig = ({ isProdBuild, latestBuild, isStatsBuild }) =>
const createAppConfig = ({
isProdBuild,
latestBuild,
isStatsBuild,
isTestBuild,
}) =>
createWebpackConfig(
bundle.config.app({ isProdBuild, latestBuild, isStatsBuild })
bundle.config.app({ isProdBuild, latestBuild, isStatsBuild, isTestBuild })
);
const createDemoConfig = ({ isProdBuild, latestBuild, isStatsBuild }) =>
@@ -175,8 +264,20 @@ const createDemoConfig = ({ isProdBuild, latestBuild, isStatsBuild }) =>
const createCastConfig = ({ isProdBuild, latestBuild }) =>
createWebpackConfig(bundle.config.cast({ isProdBuild, latestBuild }));
const createHassioConfig = ({ isProdBuild, latestBuild }) =>
createWebpackConfig(bundle.config.hassio({ isProdBuild, latestBuild }));
const createHassioConfig = ({
isProdBuild,
latestBuild,
isStatsBuild,
isTestBuild,
}) =>
createWebpackConfig(
bundle.config.hassio({
isProdBuild,
latestBuild,
isStatsBuild,
isTestBuild,
})
);
const createGalleryConfig = ({ isProdBuild, latestBuild }) =>
createWebpackConfig(bundle.config.gallery({ isProdBuild, latestBuild }));
@@ -187,4 +288,5 @@ module.exports = {
createCastConfig,
createHassioConfig,
createGalleryConfig,
createWebpackConfig,
};
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

-3
View File
@@ -1,3 +0,0 @@
self.addEventListener("fetch", function(event) {
event.respondWith(fetch(event.request));
});
+5
View File
@@ -0,0 +1,5 @@
"use strict";
self.addEventListener("fetch", (event) => {
event.respondWith(fetch(event.request));
});
+3
View File
@@ -0,0 +1,3 @@
self.addEventListener("fetch", (event) => {
event.respondWith(fetch(event.request));
});
+3 -3
View File
@@ -1,5 +1,5 @@
const rollup = require("../build-scripts/rollup.js");
const env = require("../build-scripts/env.js");
import rollup from "../build-scripts/rollup.cjs";
import env from "../build-scripts/env.cjs";
const config = rollup.createCastConfig({
isProdBuild: env.isProdBuild(),
@@ -7,4 +7,4 @@ const config = rollup.createCastConfig({
isStatsBuild: env.isStatsBuild(),
});
module.exports = { ...config.inputOptions, output: config.outputOptions };
export default { ...config.inputOptions, output: config.outputOptions };
+24
View File
@@ -0,0 +1,24 @@
<meta property="fb:app_id" content="338291289691179" />
<meta property="og:title" content="Home Assistant Cast" />
<meta property="og:site_name" content="Home Assistant Cast" />
<meta property="og:url" content="https://cast.home-assistant.io/" />
<meta property="og:type" content="website" />
<meta
property="og:description"
content="Show Home Assistant on your Chromecast or Google Assistant devices with a screen."
/>
<meta
property="og:image"
content="https://cast.home-assistant.io/images/google-nest-hub.png"
/>
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@home_assistant" />
<meta name="twitter:title" content="Home Assistant Cast" />
<meta
name="twitter:description"
content="Show Home Assistant on your Chromecast or Google Assistant devices with a screen."
/>
<meta
name="twitter:image"
content="https://cast.home-assistant.io/images/google-nest-hub.png"
/>
@@ -3,7 +3,7 @@
<head>
<title>Home Assistant Cast - FAQ</title>
<link rel="icon" href="/images/ha-cast-icon.png" type="image/png" />
<%= renderTemplate('_style_base') %>
<%= renderTemplate("../../../src/html/_style_base.html.template") %>
<style>
body {
background-color: #e5e5e5;
@@ -35,25 +35,8 @@
/>
</head>
<body>
<%= renderTemplate('_js_base') %>
<script>
import("<%= latestLauncherJS %>");
window.latestJS = true;
</script>
<script>
if (!window.latestJS) {
<% if (useRollup) { %>
_ls("/static/js/s.min.js").onload = function() {
System.import("<%= es5LauncherJS %>");
};
<% } else { %>
_ls("<%= es5LauncherJS %>");
<% } %>
}
</script>
<%= renderTemplate("../../../src/html/_js_base.html.template") %>
<%= renderTemplate("../../../src/html/_script_loader.html.template") %>
<hc-layout subtitle="FAQ">
<style>
a {
@@ -156,7 +139,7 @@
</p>
</div>
<div class="section-header">Wat does Home Assistant Cast do?</div>
<div class="section-header">What does Home Assistant Cast do?</div>
<div class="card-content">
<p>
Home Assistant Cast is a receiver application for the Chromecast. When
@@ -243,17 +226,5 @@ http:
</p>
</div>
</hc-layout>
<script>
var _gaq = [["_setAccount", "UA-57927901-9"], ["_trackPageview"]];
(function (d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
g.src =
("https:" == location.protocol ? "//ssl" : "//www") +
".google-analytics.com/ga.js";
s.parentNode.insertBefore(g, s);
})(document, "script");
</script>
</body>
</html>
+29
View File
@@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<head>
<title>Home Assistant Cast</title>
<link rel="manifest" href="/manifest.json" />
<link rel="icon" href="/images/ha-cast-icon.png" type="image/png" />
<%= renderTemplate("../../../src/html/_style_base.html.template") %>
<style>
body {
background-color: #e5e5e5;
}
</style>
<%= renderTemplate("_social_meta.html.template") %>
</head>
<body>
<hc-connect></hc-connect>
<%= renderTemplate("../../../src/html/_js_base.html.template") %>
<%= renderTemplate("../../../src/html/_script_loader.html.template") %>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-57927901-9', 'auto');
ga('send', 'pageview', location.pathname.includes("auth_callback") === -1 ? location.pathname : "/");
</script>
</body>
</html>
-57
View File
@@ -1,57 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Home Assistant Cast</title>
<link rel="manifest" href="/manifest.json" />
<link rel="icon" href="/images/ha-cast-icon.png" type="image/png" />
<%= renderTemplate('_style_base') %>
<style>
body {
background-color: #e5e5e5;
}
</style>
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Home Assistant Cast">
<meta property="og:site_name" content="Home Assistant Cast">
<meta property="og:url" content="https://cast.home-assistant.io/">
<meta property="og:type" content="website">
<meta property="og:description" content="Show Home Assistant on your Chromecast or Google Assistant devices with a screen.">
<meta property="og:image" content="https://cast.home-assistant.io/images/google-nest-hub.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="Home Assistant Cast">
<meta name="twitter:description" content="Show Home Assistant on your Chromecast or Google Assistant devices with a screen.">
<meta name="twitter:image" content="https://cast.home-assistant.io/images/google-nest-hub.png">
</head>
<body>
<%= renderTemplate('_js_base') %>
<hc-connect></hc-connect>
<script>
import("<%= latestLauncherJS %>");
window.latestJS = true;
</script>
<script>
if (!window.latestJS) {
<% if (useRollup) { %>
_ls("/static/js/s.min.js").onload = function() {
System.import("<%= es5LauncherJS %>");
};
<% } else { %>
_ls("<%= es5LauncherJS %>");
<% } %>
}
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-57927901-9', 'auto');
ga('send', 'pageview', location.pathname.includes("auth_callback") === -1 ? location.pathname : "/");
</script>
</body>
</html>
+2 -25
View File
@@ -14,33 +14,10 @@
--background-color: #41bdf5;
}
</style>
<script>
var _gaq=[['_setAccount','UA-57927901-10'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
s.parentNode.insertBefore(g,s)}(document,'script'));
</script>
</head>
<body>
<%= renderTemplate('_js_base') %>
<cast-media-player></cast-media-player>
<script>
import("<%= latestMediaJS %>");
window.latestJS = true;
</script>
<script>
if (!window.latestJS) {
<% if (useRollup) { %>
_ls("/static/js/s.min.js").onload = function() {
System.import("<%= es5MediaJS %>");
};
<% } else { %>
_ls("<%= es5MediaJS %>");
<% } %>
}
</script>
<%= renderTemplate("../../../src/html/_js_base.html.template") %>
<%= renderTemplate("../../../src/html/_script_loader.html.template") %>
</body>
</html>
+4 -8
View File
@@ -1,18 +1,14 @@
<!DOCTYPE html>
<html>
<script src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script type="module" src="<%= latestReceiverJS %>"></script>
<%= renderTemplate('_style_base') %>
<% for (const entry of latestEntryJS) { %>
<script type="module" src="<%= entry %>"></script>
<% } %>
<%= renderTemplate("../../../src/html/_style_base.html.template") %>
<style>
body {
background-color: white;
font-size: initial;
}
</style>
<script>
var _gaq=[['_setAccount','UA-57927901-10'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
s.parentNode.insertBefore(g,s)}(document,'script'));
</script>
</html>
+2 -3
View File
@@ -1,4 +1,3 @@
import "../../../src/resources/safari-14-attachshadow-patch";
import "../../../src/resources/ha-style";
import "../../../src/resources/roboto";
import "./layout/hc-connect";
import("../../../src/resources/ha-style");
+66 -68
View File
@@ -1,9 +1,8 @@
import "@material/mwc-button/mwc-button";
import { mdiCast, mdiCastConnected } from "@mdi/js";
import "@polymer/paper-item/paper-icon-item";
import "@polymer/paper-listbox/paper-listbox";
import { ActionDetail } from "@material/mwc-list/mwc-list";
import { mdiCast, mdiCastConnected, mdiViewDashboard } from "@mdi/js";
import { Auth, Connection } from "home-assistant-js-websocket";
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
import { CSSResultGroup, LitElement, TemplateResult, css, html } from "lit";
import { customElement, property, state } from "lit/decorators";
import { CastManager } from "../../../../src/cast/cast_manager";
import {
@@ -22,26 +21,28 @@ import "../../../../src/components/ha-svg-icon";
import {
getLegacyLovelaceCollection,
getLovelaceCollection,
LovelaceConfig,
} from "../../../../src/data/lovelace";
import { isStrategyDashboard } from "../../../../src/data/lovelace/config/types";
import { LovelaceViewConfig } from "../../../../src/data/lovelace/config/view";
import "../../../../src/layouts/hass-loading-screen";
import { generateDefaultViewConfig } from "../../../../src/panels/lovelace/common/generate-lovelace-config";
import "./hc-layout";
import "../../../../src/components/ha-list-item";
@customElement("hc-cast")
class HcCast extends LitElement {
@property() public auth!: Auth;
@property({ attribute: false }) public auth!: Auth;
@property() public connection!: Connection;
@property({ attribute: false }) public connection!: Connection;
@property() public castManager!: CastManager;
@property({ attribute: false }) public castManager!: CastManager;
@state() private askWrite = false;
@state() private lovelaceConfig?: LovelaceConfig | null;
@state() private lovelaceViews?: LovelaceViewConfig[] | null;
protected render(): TemplateResult {
if (this.lovelaceConfig === undefined) {
if (this.lovelaceViews === undefined) {
return html`<hass-loading-screen no-toolbar></hass-loading-screen>`;
}
@@ -72,43 +73,47 @@ class HcCast extends LitElement {
${error
? html` <div class="card-content">${error}</div> `
: !this.castManager.status
? html`
<p class="center-item">
<mwc-button raised @click=${this._handleLaunch}>
<ha-svg-icon .path=${mdiCast}></ha-svg-icon>
Start Casting
</mwc-button>
</p>
`
: html`
<div class="section-header">PICK A VIEW</div>
<paper-listbox
attr-for-selected="data-path"
.selected=${this.castManager.status.lovelacePath || ""}
>
${(this.lovelaceConfig
? this.lovelaceConfig.views
: [generateDefaultViewConfig({}, {}, {}, {}, () => "")]
).map(
(view, idx) => html`
<paper-icon-item
@click=${this._handlePickView}
data-path=${view.path || idx}
>
${view.icon
? html`
<ha-icon
.icon=${view.icon}
? html`
<p class="center-item">
<mwc-button raised @click=${this._handleLaunch}>
<ha-svg-icon .path=${mdiCast}></ha-svg-icon>
Start Casting
</mwc-button>
</p>
`
: html`
<div class="section-header">PICK A VIEW</div>
<mwc-list @action=${this._handlePickView} activatable>
${(
this.lovelaceViews ?? [
generateDefaultViewConfig({}, {}, {}, {}, () => ""),
]
).map(
(view, idx) =>
html`<ha-list-item
graphic="avatar"
.activated=${this.castManager.status?.lovelacePath ===
(view.path ?? idx)}
.selected=${this.castManager.status?.lovelacePath ===
(view.path ?? idx)}
>
${view.title || view.path || "Unnamed view"}
${view.icon
? html`
<ha-icon
.icon=${view.icon}
slot="graphic"
></ha-icon>
`
: html`<ha-svg-icon
slot="item-icon"
></ha-icon>
`
: ""}
${view.title || view.path}
</paper-icon-item>
`
)}
</paper-listbox>
`}
.path=${mdiViewDashboard}
></ha-svg-icon>`}</ha-list-item
> `
)}</mwc-list
>
`}
<div class="card-actions">
${this.castManager.status
? html`
@@ -136,11 +141,15 @@ class HcCast extends LitElement {
llColl.refresh().then(
() => {
llColl.subscribe((config) => {
this.lovelaceConfig = config;
if (isStrategyDashboard(config)) {
this.lovelaceViews = null;
} else {
this.lovelaceViews = config.views;
}
});
},
async () => {
this.lovelaceConfig = null;
this.lovelaceViews = null;
}
);
@@ -159,9 +168,7 @@ class HcCast extends LitElement {
toggleAttribute(
this,
"hide-icons",
this.lovelaceConfig
? !this.lovelaceConfig.views.some((view) => view.icon)
: true
this.lovelaceViews ? !this.lovelaceViews.some((view) => view.icon) : true
);
}
@@ -178,8 +185,8 @@ class HcCast extends LitElement {
this.castManager.requestSession();
}
private async _handlePickView(ev: Event) {
const path = (ev.currentTarget as any).getAttribute("data-path");
private async _handlePickView(ev: CustomEvent<ActionDetail>) {
const path = this.lovelaceViews![ev.detail.index].path ?? ev.detail.index;
await ensureConnectedCastSession(this.castManager!, this.auth!);
castSendShowLovelaceView(this.castManager, this.auth.data.hassUrl, path);
}
@@ -237,28 +244,19 @@ class HcCast extends LitElement {
mwc-button ha-svg-icon {
margin-right: 8px;
margin-inline-end: 8px;
margin-inline-start: initial;
height: 18px;
}
paper-listbox {
padding-top: 0;
}
paper-listbox ha-icon {
ha-list-item ha-icon,
ha-list-item ha-svg-icon {
padding: 12px;
color: var(--secondary-text-color);
}
paper-icon-item {
cursor: pointer;
}
paper-icon-item[disabled] {
cursor: initial;
}
:host([hide-icons]) paper-icon-item {
--paper-item-icon-width: 0px;
:host([hide-icons]) ha-icon {
display: none;
}
.spacer {
+19 -17
View File
@@ -1,6 +1,5 @@
import "@material/mwc-button";
import { mdiCastConnected, mdiCast } from "@mdi/js";
import "@polymer/paper-input/paper-input";
import {
Auth,
Connection,
@@ -24,6 +23,7 @@ import "../../../../src/components/ha-svg-icon";
import "../../../../src/layouts/hass-loading-screen";
import { registerServiceWorker } from "../../../../src/util/register-service-worker";
import "./hc-layout";
import "../../../../src/components/ha-textfield";
const seeFAQ = (qid) => html`
See <a href="./faq.html${qid ? `#${qid}` : ""}">the FAQ</a> for more
@@ -33,13 +33,13 @@ const translateErr = (err) =>
err === ERR_CANNOT_CONNECT
? "Unable to connect"
: err === ERR_HASS_HOST_REQUIRED
? "Please enter a Home Assistant URL."
: err === ERR_INVALID_HTTPS_TO_HTTP
? html`
Cannot connect to Home Assistant instances over "http://".
${seeFAQ("https")}
`
: `Unknown error (${err}).`;
? "Please enter a Home Assistant URL."
: err === ERR_INVALID_HTTPS_TO_HTTP
? html`
Cannot connect to Home Assistant instances over "http://".
${seeFAQ("https")}
`
: `Unknown error (${err}).`;
const INTRO = html`
<p>
@@ -116,13 +116,11 @@ export class HcConnect extends LitElement {
To get started, enter your Home Assistant URL and click authorize.
If you want a preview instead, click the show demo button.
</p>
<p>
<paper-input
label="Home Assistant URL"
placeholder="https://abcdefghijklmnop.ui.nabu.casa"
@keydown=${this._handleInputKeyDown}
></paper-input>
</p>
<ha-textfield
label="Home Assistant URL"
placeholder="https://abcdefghijklmnop.ui.nabu.casa"
@keydown=${this._handleInputKeyDown}
></ha-textfield>
${this.error ? html` <p class="error">${this.error}</p> ` : ""}
</div>
<div class="card-actions">
@@ -190,13 +188,13 @@ export class HcConnect extends LitElement {
private _handleInputKeyDown(ev: KeyboardEvent) {
// Handle pressing enter.
if (ev.keyCode === 13) {
if (ev.key === "Enter") {
this._handleConnect();
}
}
private async _handleConnect() {
const inputEl = this.shadowRoot!.querySelector("paper-input")!;
const inputEl = this.shadowRoot!.querySelector("ha-textfield")!;
const value = inputEl.value || "";
this.error = undefined;
@@ -315,6 +313,10 @@ export class HcConnect extends LitElement {
.spacer {
flex: 1;
}
ha-textfield {
width: 100%;
}
`;
}
}
+4 -4
View File
@@ -10,13 +10,13 @@ import "../../../../src/components/ha-card";
@customElement("hc-layout")
class HcLayout extends LitElement {
@property() public subtitle?: string | undefined;
@property() public subtitle?: string;
@property() public auth?: Auth;
@property({ attribute: false }) public auth?: Auth;
@property() public connection?: Connection;
@property({ attribute: false }) public connection?: Connection;
@property() public user?: HassUser;
@property({ attribute: false }) public user?: HassUser;
protected render(): TemplateResult {
return html`
+6 -4
View File
@@ -1,19 +1,21 @@
const castContext = cast.framework.CastReceiverContext.getInstance();
import { framework } from "../receiver/cast_framework";
const castContext = framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD,
framework.messages.MessageType.LOAD,
(loadRequestData) => {
const media = loadRequestData.media;
// Special handling if it came from Google Assistant
if (media.entity) {
media.contentId = media.entity;
media.streamType = cast.framework.messages.StreamType.LIVE;
media.streamType = framework.messages.StreamType.LIVE;
media.contentType = "application/vnd.apple.mpegurl";
// @ts-ignore
media.hlsVideoSegmentFormat =
cast.framework.messages.HlsVideoSegmentFormat.FMP4;
framework.messages.HlsVideoSegmentFormat.FMP4;
}
return loadRequestData;
}
+3 -2
View File
@@ -1,2 +1,3 @@
/* eslint-disable no-undef */
export const castContext = cast.framework.CastReceiverContext.getInstance();
import { framework } from "./cast_framework";
export const castContext = framework.CastReceiverContext.getInstance();
+3
View File
@@ -0,0 +1,3 @@
import type { cast as ReceiverCast } from "chromecast-caf-receiver";
export const framework = (cast as unknown as typeof ReceiverCast).framework;
+2 -4
View File
@@ -1,7 +1,5 @@
import {
LovelaceCardConfig,
LovelaceConfig,
} from "../../../../src/data/lovelace";
import { LovelaceCardConfig } from "../../../../src/data/lovelace/config/card";
import { LovelaceConfig } from "../../../../src/data/lovelace/config/types";
import { castContext } from "../cast_context";
export const castDemoLovelace: () => LovelaceConfig = () => {
+14 -16
View File
@@ -1,4 +1,4 @@
/* eslint-disable no-undef */
import { framework } from "./cast_framework";
import { CAST_NS } from "../../../src/cast/const";
import { HassMessage } from "../../../src/cast/receiver_messages";
import "../../../src/resources/custom-card-support";
@@ -34,14 +34,14 @@ const setTouchControlsVisibility = (visible: boolean) => {
let timeOut: number | undefined;
const playDummyMedia = (viewTitle?: string) => {
const loadRequestData = new cast.framework.messages.LoadRequestData();
const loadRequestData = new framework.messages.LoadRequestData();
loadRequestData.autoplay = true;
loadRequestData.media = new cast.framework.messages.MediaInformation();
loadRequestData.media = new framework.messages.MediaInformation();
loadRequestData.media.contentId =
"https://cast.home-assistant.io/images/google-nest-hub.png";
loadRequestData.media.contentType = "image/jpeg";
loadRequestData.media.streamType = cast.framework.messages.StreamType.NONE;
const metadata = new cast.framework.messages.GenericMediaMetadata();
loadRequestData.media.streamType = framework.messages.StreamType.NONE;
const metadata = new framework.messages.GenericMediaMetadata();
metadata.title = viewTitle;
loadRequestData.media.metadata = metadata;
@@ -86,10 +86,10 @@ const showMediaPlayer = () => {
}
};
const options = new cast.framework.CastReceiverOptions();
const options = new framework.CastReceiverOptions();
options.disableIdleTimeout = true;
options.customNamespaces = {
[CAST_NS]: cast.framework.system.MessageType.JSON,
[CAST_NS]: framework.system.MessageType.JSON,
};
castContext.addCustomMessageListener(
@@ -98,8 +98,7 @@ castContext.addCustomMessageListener(
(ev: ReceivedMessage<HassMessage>) => {
// We received a show Lovelace command, stop media from playing, hide media player and show Lovelace controller
if (
playerManager.getPlayerState() !==
cast.framework.messages.PlayerState.IDLE
playerManager.getPlayerState() !== framework.messages.PlayerState.IDLE
) {
playerManager.stop();
} else {
@@ -114,7 +113,7 @@ castContext.addCustomMessageListener(
const playerManager = castContext.getPlayerManager();
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD,
framework.messages.MessageType.LOAD,
(loadRequestData) => {
if (
loadRequestData.media.contentId ===
@@ -128,25 +127,24 @@ playerManager.setMessageInterceptor(
// Special handling if it came from Google Assistant
if (media.entity) {
media.contentId = media.entity;
media.streamType = cast.framework.messages.StreamType.LIVE;
media.streamType = framework.messages.StreamType.LIVE;
media.contentType = "application/vnd.apple.mpegurl";
// @ts-ignore
media.hlsVideoSegmentFormat =
cast.framework.messages.HlsVideoSegmentFormat.FMP4;
framework.messages.HlsVideoSegmentFormat.FMP4;
}
return loadRequestData;
}
);
playerManager.addEventListener(
cast.framework.events.EventType.MEDIA_STATUS,
framework.events.EventType.MEDIA_STATUS,
(event) => {
if (
event.mediaStatus?.playerState ===
cast.framework.messages.PlayerState.IDLE &&
event.mediaStatus?.playerState === framework.messages.PlayerState.IDLE &&
event.mediaStatus?.idleReason &&
event.mediaStatus?.idleReason !==
cast.framework.messages.IdleReason.INTERRUPTED
framework.messages.IdleReason.INTERRUPTED
) {
// media finished or stopped, return to default Lovelace
showLovelaceController();
+4 -4
View File
@@ -1,7 +1,7 @@
import { html, TemplateResult } from "lit";
import { html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { mockHistory } from "../../../../demo/src/stubs/history";
import { LovelaceConfig } from "../../../../src/data/lovelace";
import { LovelaceConfig } from "../../../../src/data/lovelace/config/types";
import {
MockHomeAssistant,
provideHass,
@@ -18,9 +18,9 @@ class HcDemo extends HassElement {
@state() private _lovelaceConfig?: LovelaceConfig;
protected render(): TemplateResult {
protected render() {
if (!this._lovelaceConfig) {
return html``;
return nothing;
}
return html`
<hc-lovelace
+9 -9
View File
@@ -12,8 +12,8 @@ class HcLaunchScreen extends LitElement {
return html`
<div class="container">
<img
alt="Home Assistant logo on left, Nabu Casa logo on right, and red heart in center"
src="https://www.home-assistant.io/images/blog/2018-09-thinking-big/social.png"
alt="Nabu Casa logo on left, Home Assistant logo on right, and red heart in center"
src="https://cast.home-assistant.io/images/nabu-loves-hass.png"
/>
<div class="status">
${this.hass ? "Connected" : "Not Connected"}
@@ -28,23 +28,23 @@ class HcLaunchScreen extends LitElement {
:host {
display: block;
height: 100vh;
padding-top: 64px;
background-color: white;
background-color: #f2f4f9;
font-size: 24px;
}
.container {
display: flex;
flex-direction: column;
text-align: center;
align-items: center;
height: 100%;
justify-content: space-evenly;
}
img {
width: 717px;
height: 376px;
display: block;
margin: 0 auto;
max-width: 80%;
object-fit: cover;
}
.status {
padding-right: 54px;
color: #1d2126;
}
`;
}
+23 -6
View File
@@ -1,7 +1,8 @@
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
import { customElement, property, query } from "lit/decorators";
import { fireEvent } from "../../../../src/common/dom/fire_event";
import { LovelaceConfig } from "../../../../src/data/lovelace";
import { LovelaceConfig } from "../../../../src/data/lovelace/config/types";
import { getPanelTitleFromUrlPath } from "../../../../src/data/panel";
import { Lovelace } from "../../../../src/panels/lovelace/types";
import "../../../../src/panels/lovelace/views/hui-view";
import { HomeAssistant } from "../../../../src/types";
@@ -14,9 +15,10 @@ import "./hc-launch-screen";
class HcLovelace extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
@property({ attribute: false }) public lovelaceConfig!: LovelaceConfig;
@property({ attribute: false })
public lovelaceConfig!: LovelaceConfig;
@property() public viewPath?: string | number;
@property() public viewPath?: string | number | null;
@property() public urlPath: string | null = null;
@@ -60,7 +62,12 @@ class HcLovelace extends LitElement {
const index = this._viewIndex;
if (index !== undefined) {
const dashboardTitle = this.lovelaceConfig.title || this.urlPath;
const title = getPanelTitleFromUrlPath(
this.hass,
this.urlPath || "lovelace"
);
const dashboardTitle = title || this.urlPath;
const viewTitle =
this.lovelaceConfig.views[index].title ||
@@ -79,10 +86,17 @@ class HcLovelace extends LitElement {
this.lovelaceConfig.views[index].background ||
this.lovelaceConfig.background;
if (configBackground) {
const backgroundStyle =
typeof configBackground === "string"
? configBackground
: configBackground?.image
? `center / cover no-repeat url('${configBackground.image}')`
: undefined;
if (backgroundStyle) {
this._huiView!.style.setProperty(
"--lovelace-background",
configBackground
backgroundStyle
);
} else {
this._huiView!.style.removeProperty("--lovelace-background");
@@ -92,6 +106,9 @@ class HcLovelace extends LitElement {
}
private get _viewIndex() {
if (this.viewPath === null) {
return 0;
}
const selectedView = this.viewPath;
const selectedViewInt = parseInt(selectedView as string, 10);
for (let i = 0; i < this.lovelaceConfig.views.length; i++) {
+64 -26
View File
@@ -21,16 +21,28 @@ import {
import { atLeastVersion } from "../../../../src/common/config/version";
import { isNavigationClick } from "../../../../src/common/dom/is-navigation-click";
import {
fetchResources,
getLegacyLovelaceCollection,
getLovelaceCollection,
} from "../../../../src/data/lovelace";
import {
isStrategyDashboard,
LegacyLovelaceConfig,
LovelaceConfig,
} from "../../../../src/data/lovelace";
LovelaceDashboardStrategyConfig,
} from "../../../../src/data/lovelace/config/types";
import { fetchResources } from "../../../../src/data/lovelace/resource";
import { loadLovelaceResources } from "../../../../src/panels/lovelace/common/load-resources";
import { HassElement } from "../../../../src/state/hass-element";
import { castContext } from "../cast_context";
import "./hc-launch-screen";
import { getPanelTitleFromUrlPath } from "../../../../src/data/panel";
import { checkLovelaceConfig } from "../../../../src/panels/lovelace/common/check-lovelace-config";
const DEFAULT_CONFIG: LovelaceDashboardStrategyConfig = {
strategy: {
type: "original-states",
},
};
let resourcesLoaded = false;
@customElement("hc-main")
@@ -41,10 +53,10 @@ export class HcMain extends HassElement {
@state() private _lovelacePath: string | number | null = null;
@state() private _error?: string;
@state() private _urlPath?: string | null;
@state() private _error?: string;
private _hassUUID?: string;
private _unsubLovelace?: UnsubscribeFunc;
@@ -71,7 +83,7 @@ export class HcMain extends HassElement {
if (
!this._lovelaceConfig ||
this._lovelacePath === null ||
this._urlPath === undefined ||
// Guard against part of HA not being loaded yet.
!this.hass ||
!this.hass.states ||
@@ -89,16 +101,18 @@ export class HcMain extends HassElement {
<hc-lovelace
.hass=${this.hass}
.lovelaceConfig=${this._lovelaceConfig}
.viewPath=${this._lovelacePath}
.urlPath=${this._urlPath}
@config-refresh=${this._generateLovelaceConfig}
.viewPath=${this._lovelacePath}
@config-refresh=${this._generateDefaultLovelaceConfig}
></hc-lovelace>
`;
}
protected firstUpdated(changedProps) {
super.firstUpdated(changedProps);
import("../second-load");
import("./hc-lovelace");
import("../../../../src/resources/ha-style");
window.addEventListener("location-changed", () => {
const panelPath = `/${this._urlPath || "lovelace"}/`;
if (location.pathname.startsWith(panelPath)) {
@@ -193,7 +207,6 @@ export class HcMain extends HassElement {
expires_in: 0,
}),
});
this._hassUUID = msg.hassUUID;
} catch (err: any) {
const errorMessage = this._getErrorMessage(err);
this._error = errorMessage;
@@ -213,6 +226,17 @@ export class HcMain extends HassElement {
this.hass.connection.close();
}
this.initializeHass(auth, connection);
if (this._hassUUID !== msg.hassUUID) {
this._hassUUID = msg.hassUUID;
this._lovelaceConfig = undefined;
this._urlPath = undefined;
this._lovelacePath = null;
if (this._unsubLovelace) {
this._unsubLovelace();
this._unsubLovelace = undefined;
}
resourcesLoaded = false;
}
this._error = undefined;
this._sendStatus();
}
@@ -221,7 +245,7 @@ export class HcMain extends HassElement {
this._showDemo = false;
// We should not get this command before we are connected.
// Means a client got out of sync. Let's send status to them.
if (!this.hass) {
if (!this.hass?.connected) {
this._sendStatus(msg.senderId!);
this._error = "Cannot show Lovelace because we're not connected.";
this._sendError(
@@ -248,7 +272,7 @@ export class HcMain extends HassElement {
}
this._error = undefined;
if (msg.urlPath === "lovelace") {
if (msg.urlPath === "lovelace" || msg.urlPath === undefined) {
msg.urlPath = null;
}
this._lovelacePath = msg.viewPath;
@@ -258,13 +282,12 @@ export class HcMain extends HassElement {
{
strategy: {
type: "energy",
options: { show_date_selection: true },
},
},
],
};
this._urlPath = "energy";
this._lovelacePath = 0;
this._lovelacePath = null;
this._sendStatus();
return;
}
@@ -273,6 +296,7 @@ export class HcMain extends HassElement {
this._lovelaceConfig = undefined;
if (this._unsubLovelace) {
this._unsubLovelace();
this._unsubLovelace = undefined;
}
const llColl = atLeastVersion(this.hass.connection.haVersion, 0, 107)
? getLovelaceCollection(this.hass.connection, msg.urlPath)
@@ -281,9 +305,20 @@ export class HcMain extends HassElement {
// configuration.
try {
await llColl.refresh();
this._unsubLovelace = llColl.subscribe((lovelaceConfig) =>
this._handleNewLovelaceConfig(lovelaceConfig)
);
this._unsubLovelace = llColl.subscribe(async (rawConfig) => {
if (isStrategyDashboard(rawConfig)) {
const { generateLovelaceDashboardStrategy } = await import(
"../../../../src/panels/lovelace/strategies/get-strategy"
);
const config = await generateLovelaceDashboardStrategy(
rawConfig.strategy,
this.hass!
);
this._handleNewLovelaceConfig(config);
} else {
this._handleNewLovelaceConfig(rawConfig);
}
});
} catch (err: any) {
if (
atLeastVersion(this.hass.connection.haVersion, 0, 107) &&
@@ -297,7 +332,7 @@ export class HcMain extends HassElement {
}
// Generate a Lovelace config.
this._unsubLovelace = () => undefined;
await this._generateLovelaceConfig();
await this._generateDefaultLovelaceConfig();
}
}
if (!resourcesLoaded) {
@@ -306,31 +341,34 @@ export class HcMain extends HassElement {
? await fetchResources(this.hass!.connection)
: (this._lovelaceConfig as LegacyLovelaceConfig).resources;
if (resources) {
loadLovelaceResources(resources, this.hass!.auth.data.hassUrl);
loadLovelaceResources(resources, this.hass!);
}
}
this._sendStatus();
}
private async _generateLovelaceConfig() {
private async _generateDefaultLovelaceConfig() {
const { generateLovelaceDashboardStrategy } = await import(
"../../../../src/panels/lovelace/strategies/get-strategy"
);
this._handleNewLovelaceConfig(
await generateLovelaceDashboardStrategy(
{
hass: this.hass!,
narrow: false,
},
"original-states"
DEFAULT_CONFIG.strategy,
this.hass!
)
);
}
private _handleNewLovelaceConfig(lovelaceConfig: LovelaceConfig) {
castContext.setApplicationState(lovelaceConfig.title || "");
this._lovelaceConfig = lovelaceConfig;
const title = getPanelTitleFromUrlPath(
this.hass!,
this._urlPath || "lovelace"
);
castContext.setApplicationState(title || "");
this._lovelaceConfig = checkLovelaceConfig(
lovelaceConfig
) as LovelaceConfig;
}
private _handleShowDemo(_msg: ShowDemoMessage) {
-3
View File
@@ -1,3 +0,0 @@
import "../../../src/resources/ha-style";
import "../../../src/resources/roboto";
import "./layout/hc-lovelace";
+5 -5
View File
@@ -1,8 +1,8 @@
const { createCastConfig } = require("../build-scripts/webpack.js");
const { isProdBuild, isStatsBuild } = require("../build-scripts/env.js");
import webpack from "../build-scripts/webpack.cjs";
import env from "../build-scripts/env.cjs";
module.exports = createCastConfig({
isProdBuild: isProdBuild(),
isStatsBuild: isStatsBuild(),
export default webpack.createCastConfig({
isProdBuild: env.isProdBuild(),
isStatsBuild: env.isStatsBuild(),
latestBuild: true,
});
Loaded 100 of 1983 files, more files were not shown because too many files have changed in this diff. Show more