Compare commits

...
Author SHA1 Message Date
Laurent Cozic 87211d1996 update 2026-07-24 13:16:00 +01:00
Laurent Cozic 26f7166200 update 2026-07-24 13:06:20 +01:00
Laurent Cozic 09f6a209dd Chore: Retry "Install yarn" CI step on failure 2026-07-22 11:34:47 +01:00
renovate[bot] e983444b96 fix(deps): update dependency @react-native-documents/picker to v12 (#16008)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-22 11:29:33 +01:00
Henry Heino aed692d5c6 Chore: Server: Prevent regenerating database types when there are migrations left over from switching branches (#16006) 2026-07-22 11:29:18 +01:00
Laurent Cozic 96e78ad023 Desktop: Sync Wizard: Make Joplin Cloud the primary sync option (#16004) 2026-07-22 11:29:05 +01:00
Laurent Cozic b598fa2911 Doc: Fixed price of JSB license 2026-07-21 19:22:40 +01:00
Laurent Cozic 248ef10ab2 Doc: enable self-hosting self-service 2026-07-21 18:29:05 +01:00
Henry Heino 9395c9fa87 Desktop: Resolves #15880: Avoid including unused onnxruntime-node files in the built application (#15997) 2026-07-21 17:16:31 +01:00
Henry Heino 151faf9f88 Mobile: Note actions menu: Decrease padding size (#15998) 2026-07-21 10:15:40 +01:00
Henry Heino 4246e09f89 Mobile: Note action menu: Vertically align icons (#15996) 2026-07-21 00:17:53 +01:00
renovate[bot] 75cdbafba9 chore(deps): update nvidia/cuda docker tag to v13.2.1 (#15992)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-20 00:04:48 +01:00
renovate[bot] 341948e0ba fix(deps): update dependency @react-native-vector-icons/material-design-icons to v12.5.0 (#15980)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-19 09:04:26 +01:00
renovate[bot] e3b51d850f fix(deps): update dependency @fortawesome/react-fontawesome to v3.3.1 (#15989)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-19 09:04:12 +01:00
renovate[bot] e6a32029b4 chore(deps): update dependency @types/serviceworker to v0.0.195 (#15988)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-19 09:03:54 +01:00
renovate[bot] 7798a33739 fix(deps): update dependency @react-native-vector-icons/material-icons to v12.5.0 (#15984)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-19 00:15:58 +01:00
mrjo118 f5941b28d4 Desktop, Mobile, Cli: Fixes #15975: Fix WebDAV support for Koofr (#15983) 2026-07-18 21:05:39 +01:00
Laurent Cozic 70846df6b1 Desktop: Make links in the table editor clickable with Ctrl/Cmd+click (#15977) 2026-07-18 20:52:51 +01:00
renovate[bot] 1321b154da fix(deps): update dependency @react-native-vector-icons/ionicons to v12.5.0 (#15979)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-18 20:51:28 +01:00
renovate[bot] 6a21ec6cc1 fix(deps): update dependency @react-native-vector-icons/fontawesome5 to v12.4.0 (#15978)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-18 20:51:24 +01:00
Laurent Cozic b5ed2c944e Desktop, Server: Record which app screen a Joplin Cloud sign-up started from
Adds an optional "source" label to the Joplin Cloud sign-up link (e.g.
"desktop-sync-wizard") so we can see which screens lead people to subscribe.
The label is a fixed string naming the button that was clicked - it carries
no personal or device information. It travels with the checkout as Stripe
metadata and is saved on the subscription record.
2026-07-18 16:05:00 +01:00
mrjo118andLaurent Cozic fa6d4a259b Mobile: Fixes #15914: Fix auto navigate to latest notebook shortly after app start, when the selected notebook was previously deleted (#15950)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-07-18 11:03:52 +01:00
Jonatan NybergandLaurent Cozic 32c29dd2f6 Improve Swedish PO localisation (#15936)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-07-18 11:03:21 +01:00
Stephan Paternotte de93ebed45 Update nl_NL.po (#15921) 2026-07-18 11:02:58 +01:00
Aissa BenfoddaandLaurent Cozic 154f12744d Desktop, Mobile: Resolves #15828:Provide a clear message on what needs to be done when sync fails due to wrong version (#15837)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-07-18 11:01:46 +01:00
Aissa Benfodda 2c11cbbb6b Desktop: Publish a notebook (#15276) 2026-07-18 10:58:57 +01:00
Henry Heino fca026f0d9 Android: Fixes #15928: Fix menu animations and drag-to-dismiss (#15971) 2026-07-18 10:58:16 +01:00
renovate[bot] e51d9f2670 fix(deps): update dependency @fortawesome/react-fontawesome to v3.3.0 (#15976)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-18 10:57:49 +01:00
Henry Heino 4c2c38f43e Android, Web: Fixes #15959: Increase minimum prompt button width (#15966) 2026-07-17 23:52:20 +01:00
Will Hanstedt dafe4cd010 Doc: Fixes 15953: dead link to pandoc deflist documentation (#15967) 2026-07-17 23:51:06 +01:00
Laurent Cozic 6aa4040762 Desktop: Fixes #15918: Keep trailing spaces in table cells while editing (#15964) 2026-07-17 23:50:33 +01:00
Laurent Cozic 22689817c7 Desktop: Whiteboard: Fix edge keeping the blue selection colour after reconnecting 2026-07-17 12:42:27 +01:00
Laurent Cozic 3515c6aee1 Desktop: Whiteboard: Allow selecting which arrow to move when two arrows share an anchor 2026-07-17 12:26:38 +01:00
mrjo118 a180f9151a Mobile: Fixes #15915: Add file extension validation to import actions (#15960) 2026-07-17 11:22:01 +01:00
Laurent Cozic 15207dc931 Desktop: Fix layout divider behaviour in nested layouts and move mode (#15955) 2026-07-17 09:39:35 +01:00
mrjo118 193a17274a Desktop: Fixes #15867: Fix cycling of the active note when other notes in the notebook are moved (#15868) 2026-07-16 23:29:35 +01:00
Keshav b0c977b2b6 Desktop: Resolves #15786: Add note lock configuration screen (#15852) 2026-07-16 23:22:27 +01:00
Henry Heino 45309e1d0a Desktop: AI chat panel: Improve accessibility (#15956) 2026-07-16 23:16:44 +01:00
Laurent Cozic f410aced1e Desktop: Whiteboard: Fixed newline handling within cards 2026-07-16 17:58:59 +01:00
renovate[bot] 6d5444565b chore(deps): update dependency @axe-core/playwright to v4.11.2 (#15952)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-16 16:42:02 +01:00
Henry Heino 54b8e69750 Chore: Fix CI (#15949) 2026-07-16 01:37:55 +01:00
Henry Heino 2e99bd00ae Desktop: AI chat panel: Fix failure when tool responses are invalid JSON (#15886) 2026-07-15 22:33:57 +01:00
Henry Heino 7524c73526 Desktop: AI chat panel: Stop retry loop after several repeated failures (#15944) 2026-07-15 22:29:31 +01:00
Henry Heino 655806e79c Chore: Server: Add Joplin Server Business-related config logic (#15945) 2026-07-15 22:29:15 +01:00
Henry Heino 68ef1623ab Desktop: AI chat panel: Support cancelling in-progress responses (#15946) 2026-07-15 22:28:48 +01:00
renovate[bot] b0f27acaf7 chore(deps): update dependency nan to v2.26.0 (#15938)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-15 18:15:56 +01:00
renovate[bot] ce475ea22e chore(deps): update nvidia/cuda docker tag to v13.2.0 (#15929)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-15 12:55:34 +01:00
Henry Heino 0faa20d827 Chore: Server: Store Stripe period start/end in the database (#15925) 2026-07-14 22:03:54 +01:00
renovate[bot] a7d1e41c09 fix(deps): update dependency nanoid to v5.1.9 (#15926)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-14 20:56:23 +01:00
Joplin Bot 4dbbf2c3f8 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-07-14 13:52:11 +00:00
Henry Heino 24ab23045b Chore: Build: Add build-time LICENSE_REQUIRED config flag to Joplin Server (#15913) 2026-07-14 11:24:48 +01:00
Henry Heino bbc8999a45 Chore: Server: Add logic to customize the home screen for external users (#15912) 2026-07-14 11:24:37 +01:00
Henry Heino 0ef2649edd Chore: Server: Add logic for displaying Joplin Server Business status (#15909) 2026-07-14 11:24:26 +01:00
Aissa Benfodda 974198b3a6 Mobile: Update Search screen (#15736) 2026-07-14 10:26:04 +01:00
Laurent Cozic d58a0bb461 Desktop release v3.7.9 2026-07-14 09:54:16 +01:00
Laurent Cozic 5480a56ff5 Revert "Web: Fixes #15601: Fix S3 sync failing with getReader TypeError (#15851)"
This reverts commit c2b04f26df.

May have caused https://github.com/laurent22/joplin/issues/15916
2026-07-14 09:53:36 +01:00
Joplin Bot 7b2ee03091 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-07-14 02:38:33 +00:00
Laurent Cozic 66cbacca6e Revert "Chore: Set IPHONEOS_DEPLOYMENT_TARGET to 15.6 for tests to match application version"
It appears we need v18.x for the test units

This reverts commit 1f9cec33d8.
2026-07-14 00:12:54 +01:00
Laurent Cozic 6baede235e Chore: Update ignoreDeps in renovate.json5
Added 'node-gyp', 'nitrogen', and 'react-native-nitro-modules' to ignoreDeps in renovate.json5.
2026-07-13 21:39:00 +01:00
Henry Heino 84035e579b Desktop: Fix dependencies used for semantic search (#15891) 2026-07-13 21:33:14 +01:00
Henry Heino ca7cc0fd31 Doc: Resolves #15823: Docker compose template: Don't expose PostgreSQL container port (#15908) 2026-07-13 21:32:41 +01:00
Henry Heino 34ea6c7d8e Chore: Server: Add a utility function for determining the number of enabled non-admin users (#15907) 2026-07-13 20:49:34 +01:00
Joplin Bot ac4d934ebb Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-07-13 19:33:13 +00:00
Laurent Cozic 06a49e6988 iOS 13.7.1 2026-07-13 20:31:46 +01:00
Laurent Cozic 1f9cec33d8 Chore: Set IPHONEOS_DEPLOYMENT_TARGET to 15.6 for tests to match application version 2026-07-13 20:31:00 +01:00
renovate[bot] 39aefb1ad0 fix(deps): update dependency react-native-paper to v5.15.1 (#15905)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-13 20:09:37 +01:00
Laurent Cozic 103ab78b09 Android 3.7.3 2026-07-13 16:07:54 +01:00
Laurent Cozic 674f45d06b Desktop release v3.7.8 2026-07-13 15:52:47 +01:00
Aissa Benfodda 9367ec21f0 Desktop: Resolves #15842: Unable to select text within links (#15871) 2026-07-13 15:52:34 +01:00
Laurent Cozic 5178633558 Desktop: Whiteboard: Place new groups in empty space instead of viewport centre (#15901) 2026-07-13 13:54:29 +01:00
Laurent Cozic 8949fa25f7 Chore: Desktop: Fixed action dispatching error on startup 2026-07-13 00:02:27 +01:00
Laurent Cozic 2ab3b6e00a Desktop release v3.7.7 2026-07-12 23:54:00 +01:00
Laurent Cozic e94a3677f3 Desktop: Surface Joplin Cloud AI degraded state and map error codes (#15849) 2026-07-12 23:53:27 +01:00
Joplin Bot 194ff99911 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-07-12 19:16:00 +00:00
Laurent Cozic 47a3dbb3f3 Doc: Update sponsors 2026-07-12 17:16:21 +01:00
renovate[bot] df770ba38f chore(deps): update dependency lint-staged to v16.4.0 (#15898)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-12 15:41:53 +01:00
Henry Heino 01bcd2b52a Desktop: AI chat panel: Improve reliability of the Joplin Cloud AI provider (#15885) 2026-07-12 15:39:03 +01:00
mrjo118 5de4777ae0 Mobile: Fixes #12962: Improve sidebar swipe gestures and reduce the likelihood of gesture navigation conflicts (#15875) 2026-07-12 15:38:24 +01:00
Henry Heino d7fb11789e Mobile: Implement redesigned note action menu (#15873) 2026-07-12 15:35:25 +01:00
Martino Dell'Ambrogio 526a0037ee Server: Fixes #15857: Fixed LDAP connection leak when login exits early (#15855) 2026-07-12 14:46:27 +01:00
Aissa Benfodda 4efbc6c3fa Desktop: Resolves #15723: Notes issued from an imported .one file show a double title on the published page (#15735) 2026-07-12 14:22:06 +01:00
Joplin Bot fb8628b687 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-07-12 02:54:16 +00:00
Laurent Cozic 71693142df Desktop: Whiteboard: Also color the background of cards and groups 2026-07-10 20:02:55 +01:00
Laurent Cozic 90c1d1ec85 Desktop: Whiteboard: keep wheel scrolling inside scrollable cards 2026-07-10 19:37:18 +01:00
Laurent Cozic 0d4534e546 Desktop: Whiteboard: Improve card content styling 2026-07-10 19:17:07 +01:00
Laurent Cozic affb456b46 Desktop: Whiteboard: Add support for colors 2026-07-10 18:29:57 +01:00
Laurent Cozic d17d84590d Desktop: Whiteboard: Double-click an edge label to edit it 2026-07-10 18:09:10 +01:00
Laurent Cozic a8100e3467 Desktop: Whiteboard: Allow changing the origin of an edge by dragging it 2026-07-10 17:55:58 +01:00
Henry Heino d05a24ef7a Desktop: Resolves #15862: AI chat panel: Change APIs used to expose note edit operations (#15881) 2026-07-10 09:30:35 +01:00
Antonio VargasandLaurent Cozic c2b04f26df Web: Fixes #15601: Fix S3 sync failing with getReader TypeError (#15851)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-07-09 18:22:31 +01:00
renovate[bot] 0f52c0cfb5 chore(deps): update dependency sass to v1.98.0 (#15876)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-09 17:30:46 +01:00
Henry Heino 845a92eae8 Chore: Server: Allow specifying an image name during build and fix license specifiers (#15861) 2026-07-08 22:46:49 +01:00
Henry Heino 081444cd2c Desktop: Resolves #15834: AI chat panel: Render markdown (#15836) 2026-07-08 22:44:13 +01:00
Henry Heino 74b6545689 Chore: Fixes #15864: Fix CI (#15866) 2026-07-07 08:59:16 +01:00
Laurent Cozic 97fff14326 Doc: Add AI Sidebar tools spec 2026-07-06 18:34:23 +01:00
Laurent Cozic 694cbd957d Plugins: Change joplin.ai.chat to return an object with a text property 2026-07-05 00:39:17 +01:00
Keshav 4dad8a7fb6 Mobile, Desktop, Cli: Resolves #15772: Update note lock session state (#15773) 2026-07-04 22:29:06 +01:00
Henry Heino b64d970b5c Chore: Server package refactoring (#15843) 2026-07-04 22:26:02 +01:00
Henry Heino ebaac5c216 Desktop: Fix secondary widnows have visible scrollbars while/after resizing (#15844) 2026-07-04 22:25:52 +01:00
Henry Heino 6fdc78aa1e Desktop: AI chat panel: Make edit operations more likely to succeed (#15845) 2026-07-04 22:25:37 +01:00
Laurent Cozic 52e56deb61 Mobile: Fixes #13901: Fix auto-derived title being cleared after saving a new note (#15846) 2026-07-04 22:25:05 +01:00
Henry Heino 418e8657fe Server: Fixes #15725: Fix LDAP user auto-creation (#15847) 2026-07-04 22:23:28 +01:00
Laurent Cozic f7f7ba10e2 Chore: Desktop: Do no display tooltips over links on desktop 2026-07-03 19:40:41 +01:00
Laurent Cozic 7979cf8702 Mobile: Editor: Display tooltip above links to allow opening the link 2026-07-03 19:19:49 +01:00
Laurent Cozic c6cc90a509 Desktop, Mobile: Editor: Ensure checkbox size is proportional to font size 2026-07-03 18:57:50 +01:00
Laurent Cozic 89884e941e Desktop, Mobile: Editor: Fixed vertical alignement of checkboxes 2026-07-03 18:56:18 +01:00
Laurent Cozic 8d90057453 Server: Allow searching emails by full name or email 2026-07-03 18:50:28 +01:00
Laurent Cozic 8e5d29f058 Desktop: Hide "Sign up to Joplin Cloud" button once the user is logged in 2026-07-03 18:44:31 +01:00
Laurent Cozic 380401c8fc Server: Give focus to MFA field when it is displayed 2026-07-03 18:37:48 +01:00
Laurent Cozic 221b2593ff Server: Silence Katex warnings (#15839) 2026-07-03 14:15:54 +01:00
Laurent Cozic c227b66bb2 Desktop: AI Chat: Added warning in console when structured output schema is not accepted by the model 2026-07-03 12:12:30 +01:00
Henry Heino b3d467839c Desktop: AI chat panel: Make model responses more likely to be valid (#15801) 2026-07-03 12:04:59 +01:00
renovate[bot] 99d51ccecb fix(deps): update dependency pg to v8.20.0 (#15835)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-03 12:04:30 +01:00
renovate[bot] 894b29c9d3 chore(deps): update dependency tesseract.js to v7 (#15838)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-03 12:01:16 +01:00
renovate[bot] 3c6a500889 chore(deps): update dependency turndown to v7.2.4 (#15832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-02 18:31:53 +00:00
Daniel Nylander 05c7b2f032 All: Translation: Update sv.po (#15833) 2026-07-02 14:29:22 -04:00
Laurent Cozic 7160fbfe20 Doc: Mention that Joplin Cloud AI is beta and added it to the feature list 2026-07-02 16:44:18 +01:00
mrjo118 0c70b1b1eb Mobile: Fixes #15663: Prevent data loss when toggling the checkbox on a todo immediately after changing note data (#15815) 2026-07-02 16:25:41 +01:00
mrjo118 2c71aee90b Desktop, Mobile, Cli: Fixes #15811: Add safeguard to prevent revision chains being broken by revision cleaning, where old revisions still exist unexpectedly (#15812) 2026-07-02 16:23:05 +01:00
mrjo118 2fa1ecbd98 Mobile: Fixes #11479: Harden share to Joplin logic, to prevent overwriting existing notes in certain cases (#15794) 2026-07-02 16:21:28 +01:00
Henry Heino 5cd3445cae Desktop: Markdown editor: Fix certain types of note edits can't be undone with ctrl-z (#15806) 2026-07-02 16:19:11 +01:00
Henry Heino e67b50764f Desktop: AI chat panel: Support multiple windows (#15803) 2026-07-02 16:19:03 +01:00
Aissa Benfodda 2c3fac7b12 Desktop: Resolves #15763: Reveal markup on mouseup instead of mousedown (#15778) 2026-07-02 16:18:17 +01:00
renovate[bot] c5390d4f80 chore(deps): update dependency turndown to v7.2.3 (#15829)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-02 14:59:56 +01:00
Aissa Benfodda f7675413ec Desktop: Resolves #15716: Published note issued from an imported .one file breaks UI (#15734) 2026-07-02 14:57:23 +01:00
Henry Heino e63b96be5c Mobile: Update appearance of dialogs (#15706) 2026-07-02 14:55:51 +01:00
Laurent Cozic d97a5091a3 Server: Validate transcribe job ID to prevent path traversal in proxy endpoint 2026-07-01 22:39:35 +01:00
Laurent Cozic dff533ccbd Server: Prevent pending share recipients from writing items into shared folders before accepting the invitation 2026-07-01 22:31:25 +01:00
renovate[bot] a5d7dbdd17 chore(deps): update actions/upload-artifact action to v6 (#15809)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-01 15:16:18 +01:00
Laurent Cozic c7841670cd Server: Fixes #15802: Allow SVG resources to be served inline (#15814) 2026-07-01 12:28:51 +01:00
renovate[bot] 5101b72a3c fix(deps): update dependency slugify to v1.6.9 (#15817)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-01 12:28:41 +01:00
Joplin Bot 658e741029 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-07-01 04:03:54 +00:00
renovate[bot] 9884e7f0ca chore(deps): update dependency esbuild to v0.27.5 (#15816)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-01 03:12:32 +00:00
Laurent Cozic 1a2501e85f Desktop: Fixes #4238: Make the editor absorb space on window resize, regardless of layout position (#15774) 2026-06-30 18:18:48 +01:00
renovate[bot] 600c8d0f8f fix(deps): update dependency adm-zip to v0.5.17 (#15805)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-30 18:05:24 +01:00
Laurent Cozic a67f1bf1fe Desktop: Add joplin.ai.getEmbeddings() plugin API for raw vector access (#15799) 2026-06-30 09:58:46 +01:00
Laurent Cozic 952ae75ef4 Desktop: Add joplin.ai.getIndexStatus() plugin API (#15800) 2026-06-30 00:14:46 +01:00
Laurent Cozic 0065760e88 Chore: Mobile: Add perf logging for NoteBodyViewer WebView load and renderer RPC (#15796) 2026-06-29 15:43:53 +01:00
Laurent Cozic 31be269339 Chore: Desktop: Check that vectors are all numeric before saving them (#15792) 2026-06-29 09:26:27 +01:00
Laurent Cozic 1f612b398e Chore: Update lockfile 2026-06-28 23:44:26 +01:00
renovate[bot] 4e4d48e28e chore(deps): update dependency lint-staged to v16.3.4 (#15791)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-28 17:56:25 +00:00
renovate[bot] 1449b5faf5 chore(deps): update dependency lint-staged to v16.3.0 (#15790)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-28 15:03:05 +01:00
Laurent Cozic 920cd8f463 Server: Harden user-content responses against XSS via uploaded resources (#15787) 2026-06-28 10:11:17 +01:00
Joplin Bot 1cd7af30e0 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-06-27 19:30:20 +00:00
Laurent Cozic ee10ebf76b Chore: Desktop: Added helper functions to check AI availability (#15785) 2026-06-27 19:08:32 +01:00
Laurent Cozic 2887e3f29e Doc: Update sponsors 2026-06-27 18:07:32 +01:00
Laurent Cozic cd75b3e9c8 Desktop: Add AI chat panel for the active note (#15771) 2026-06-27 15:05:10 +01:00
renovate[bot] 2be2c152af fix(deps): update dependency @react-native-vector-icons/ionicons to v12.4.3 (#15782)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-27 12:46:39 +00:00
Laurent Cozic befc5686dc Desktop: Resolves #1449: Improve usability of Link to note command 2026-06-27 12:56:45 +01:00
renovate[bot] 24e5354001 fix(deps): update dependency @react-native-vector-icons/ionicons to v12.4.1 (#15777)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-27 11:46:55 +01:00
Laurent Cozic 22d0894b08 Desktop: Fixes #15779: Update GotoAnything selection on mouse hover 2026-06-27 11:45:55 +01:00
Laurent Cozic 4742fdfc8d Desktop: Fixes #15780: Fix "Link to note" command not working from command palette 2026-06-27 10:37:45 +01:00
Laurent Cozic 34b5e8cbe1 Desktop: Fix crash on startup when layout references a component that no longer exists 2026-06-27 10:28:43 +01:00
Laurent Cozic 7fa42e06f3 Desktop: Fix issue with Chat API not working with max_completion_tokens parameter of OpenAI 2026-06-26 15:40:08 +01:00
Henry Heino c444bfd4f4 Desktop, Mobile: Slightly adjust button colors and add new theme variable (#15764) 2026-06-26 12:22:59 +01:00
Henry Heino aa39146662 Chore: Server: Update Stripe config to match new backend products (#15769) 2026-06-26 12:19:19 +01:00
renovate[bot] 7c0f6ba93f fix(deps): update dependency pg to v8.19.0 (#15768)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-25 20:46:20 +01:00
Henry Heino 6396caaa4c Chore: Server: Retry Stripe events interrupted by server shutdown (#15755) 2026-06-25 11:09:24 +01:00
Henry Heino 24c6fa7194 Server: Hardening: Disable the __proto__ property (#15765) 2026-06-25 11:00:04 +01:00
renovate[bot] b9ca2a2ffd fix(deps): update dependency react-native-safe-area-context to v5.7.0 (#15766)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-25 10:33:20 +01:00
Aissa Benfodda 92b46ad541 Desktop: Resolves #15720: Tests in lib package print OneNote related warnings (#15767) 2026-06-25 10:30:12 +01:00
Joplin Bot a114f7355a Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-06-25 03:43:39 +00:00
Laurent Cozic 3eb2260b60 Desktop release v3.7.6 2026-06-24 21:05:11 +01:00
Laurent Cozic 6668375ae5 Desktop: Speed up embedding indexer during initial scan 2026-06-24 21:02:07 +01:00
Laurent Cozic 4a6da2c0d2 Desktop: Wipe orphan vec rows before insert in NoteEmbedding.saveChunks 2026-06-24 20:53:08 +01:00
Laurent Cozic 109d1b1114 Desktop: Cap ONNX embedding batch size to prevent renderer OOM 2026-06-24 20:51:58 +01:00
Laurent Cozic 9de4a11e35 Desktop: Fix sqlite-vec extension path inside packaged Electron app 2026-06-24 20:50:33 +01:00
Laurent Cozic 821ebbbb78 Desktop release v3.7.5 2026-06-24 18:02:41 +01:00
Keshav a8291bb4c2 Chore: Mobile, Desktop, Cli: Resolves #15737: Exclude locked notes from search indexes (#15756) 2026-06-24 16:52:13 +01:00
Laurent Cozic 7f1d39b75a Linux: Fixed loading of note embeddings 2026-06-24 16:44:06 +01:00
Joplin Bot be41fecb23 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-06-24 14:39:48 +00:00
Laurent Cozic cd9d5c1255 Desktop release v3.7.4 2026-06-24 11:52:39 +01:00
Laurent Cozic f6d97e4871 Desktop: Fixes #15761: Fix renderer crash loop when sqlite-vec is unavailable (#15762) 2026-06-24 11:52:19 +01:00
Henry Heino c1d60df234 Server: Fix "password has not been changed" warning not shown in some cases where it should be (#15747) 2026-06-23 15:16:03 +01:00
mrjo118 1346d29e25 Mobile: Fixes #15618: Fix sharing to Joplin when opening in edit mode with the RTE enabled (#15746) 2026-06-23 15:15:18 +01:00
Henry Heino e56c997554 Mobile: Adjust UI padding to match the mobile app redesign (#15741) 2026-06-23 15:13:36 +01:00
Keshav 86e07b64e3 Mobile, Desktop, Cli: Resolves #15714: Index locked note resources (#15717) 2026-06-23 15:10:21 +01:00
Keshav bdc1b64f48 Mobile: Fixes #15729: Hide private feature flags (#15730) 2026-06-23 14:47:40 +01:00
renovate[bot] df740e68ff fix(deps): update dependency @react-native-documents/picker to v11.0.4 (#15754)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-23 11:39:33 +01:00
Joplin Bot 578e7fae8e Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-06-23 09:48:02 +00:00
renovate[bot] e92af6ac23 fix(deps): update dependency @react-native-documents/picker to v11 (#15752)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-23 09:53:54 +01:00
Henry Heino 25a93ff554 Cli: Fixes #15738: Fix version command when published to NPM (#15740) 2026-06-23 06:33:05 +01:00
Laurent Cozic 49c083f995 Chore: Removed unused module short-uuid 2026-06-23 06:13:49 +01:00
Laurent Cozic f18ef2f0c1 Chore: Improved date handling when signing canary 2026-06-23 05:50:13 +01:00
Laurent Cozic 483e63474e Doc: Fix warrant canary signature by restoring valid-until date
The date had been hand-edited from 18 to 19 August after signing,
which invalidated the PGP signature. Restore the original signed
value so the signature verifies.
2026-06-23 05:19:02 +01:00
renovate[bot] 9ba9665476 Update dependency react-native-localize to v3.7.0 (#15742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-23 01:33:46 +01:00
renovate[bot] 60c9c4d275 Update dependency nitrogen to v0.33.9 (#15743)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-23 01:33:37 +01:00
Joplin Bot bc1d468c81 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-06-22 20:58:25 +00:00
Laurent Cozic a0bed69a77 Android 3.7.2 2026-06-22 21:31:27 +01:00
Laurent Cozic 08bdff221f Desktop release v3.7.3 2026-06-22 21:13:05 +01:00
renovate[bot] cce0dd864a fix(deps): update dependency tar to v7.5.13 (#15733)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-21 23:11:20 +01:00
Laurent Cozic dc21be248d Desktop: Add tooltip on note title in note list (#15732) 2026-06-21 18:36:53 +01:00
Laurent Cozic d85f4305b6 Desktop, Cli, Mobile: Fixed crash when the profile database is updated 2026-06-21 15:57:29 +01:00
Joplin Bot 945de8d17b Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-06-21 04:23:29 +00:00
Laurent Cozic a0b6f2a937 Mobile, Desktop, Cli: Preserve customised note history settings when syncing across clients (#15728) 2026-06-20 22:36:33 +01:00
Joplin Bot c3a71ba203 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-06-20 14:14:00 +00:00
Laurent Cozic 4072194e9a Android 3.7.1 2026-06-20 14:21:06 +01:00
Laurent Cozic d9767bd2c6 Desktop release v3.7.2 2026-06-20 13:11:24 +01:00
Laurent Cozic 3f2000a9dd Merge branch 'release-3.6' into dev 2026-06-20 13:10:09 +01:00
Laurent Cozic fb82b929d9 iOS: Set ITSAppUsesNonExemptEncryption key to false 2026-06-20 12:59:58 +01:00
Laurent Cozic 45c8501b7e Chore: build file 2026-06-20 12:59:58 +01:00
Sriram Varun Kumar 045b2d8c2b Mobile, Desktop, Cli: Resolves #15722: Give conflict_note_states table a numeric primary key and set note_id as unique (#15724) 2026-06-20 12:45:05 +01:00
Laurent Cozic dd7acaff31 iOS 13.6.10 2026-06-20 12:30:40 +01:00
Laurent Cozic f251427d34 Android 3.6.21 2026-06-20 12:04:32 +01:00
Laurent Cozic 18e0b08c28 All: Reject malformed item IDs during sync (#15540) 2026-06-20 11:29:13 +01:00
Laurent Cozic c615726603 Desktop release v3.6.15 2026-06-20 11:27:46 +01:00
Laurent Cozic a658e68276 Chore: Clarify when warrant canary is udpated 2026-06-19 12:37:19 +01:00
Laurent Cozic f2d8f4fb18 Doc: Update warrant canary 2026-06-19 12:29:54 +01:00
Joplin Bot 34aebb46f2 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-06-19 10:35:36 +00:00
Laurent Cozic d6d50ce650 Chore: Silence MCP server warnings in tests 2026-06-19 11:25:27 +01:00
renovate[bot] 38c94f318e fix(deps): update dependency short-uuid to v6 (#15713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-19 09:39:16 +01:00
Henry Heino 9578125b22 Web: Display fewer sync options when hosted on app.joplincloud.com (#15715) 2026-06-19 09:39:00 +01:00
Sriram Varun Kumar 871178fa7d Chore: Desktop, Mobile: Resolves #15570: Populate base and conflict note state during sync (#15669) 2026-06-19 08:22:30 +01:00
Henry Heino fa2900709e Chore: Server: Allow the tagServerLatest script to push to other repositories (#15712) 2026-06-18 20:22:31 +01:00
Aissa Benfodda 7b219b7ab2 Desktop: Resolves #15578: OneNote Import: Handwriting/pen strokes imported incorrectly (#15681) 2026-06-18 19:54:18 +01:00
Akshaj Rawat 98eeb4bd01 Plugins: Fixes #15710: removed semver and used regex for version check (#15711) 2026-06-18 19:54:05 +01:00
Laurent Cozic 1cc68739fb Chore: Update supported prefixes in check-pr-title 2026-06-18 18:53:03 +01:00
Laurent Cozic f7812d283e Server: Add OrphanTrace logging to investigate orphaned items bug (#15709) 2026-06-18 11:32:01 +01:00
Aissa Benfodda d4030c4225 Desktop: Resolves #15690: Padding between bottom of setting screen and button bar doesn't appear (#15698) 2026-06-18 11:31:53 +01:00
Akshaj Rawat 364b22c5b6 Plugin-generator: Resolves #15595: Added local validations for new publish workflow (#15596) 2026-06-18 10:02:20 +01:00
renovate[bot] d37b6f3751 fix(deps): update dependency tar to v7.5.12 (#15708)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-18 09:18:03 +01:00
Henry Heino 7c36f326ac Server: Make LDAP login logic safer (#15707) 2026-06-18 08:54:11 +01:00
Keshav d7594a3bb0 Chore: Resolves #15597: Add note lock backend path (#15673) 2026-06-18 00:16:12 +01:00
Laurent Cozic 4e737f397a Server: Fix orphaned items task timing out on large databases (#15704) 2026-06-17 23:50:47 +01:00
Laurent Cozic 42af5e7339 Server: Speed up batch deletes by using whereIn instead of OR chains (#15705) 2026-06-17 23:48:57 +01:00
Henry Heino 6701668e69 Chore: Doc: Add (currently disabled) website/checkout logic for a self-hosted plan (#15675) 2026-06-17 22:22:01 +01:00
renovate[bot]andLaurent Cozic dafb6b05f1 fix(deps): update dependency rate-limiter-flexible to v9.1.1 (#15703)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-06-17 19:18:56 +01:00
Laurent Cozic 6b8b8d0694 Doc: Fixed docu build 2026-06-17 13:47:36 +01:00
Laurent Cozic 9853882787 Doc: Improve AI-related documentation 2026-06-17 13:18:43 +01:00
renovate[bot] 324fa333d4 fix(deps): update dependency rate-limiter-flexible to v9 (#15702)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-17 13:15:10 +01:00
renovate[bot] 0818e7856e fix(deps): update dependency react-native-svg to v15.15.4 (#15697)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-17 10:37:33 +00:00
Laurent Cozic 4020986f29 Desktop: Add MCP server (#15699) 2026-06-17 11:31:51 +01:00
renovate[bot] 68543655ce chore(deps): update dependency @types/serviceworker to v0.0.194 (#15700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-17 09:04:36 +01:00
Laurent Cozic 1106aa85be Plugin Generator release v3.7.2 2026-06-16 08:13:46 +01:00
Laurent Cozic e58fcf9402 Chore: Update plugin API types 2026-06-16 08:13:08 +01:00
Laurent Cozic 5fb43fdfbc Chore: Revert "unknown" types to "any" in plugin API (#15695) 2026-06-16 08:12:26 +01:00
Laurent Cozic ad5cd9def7 Plugin Generator release v3.7.1 2026-06-16 01:04:29 +01:00
Laurent Cozic a76b6ea6b2 Chore: Fixed releasePluginGenerator script 2026-06-16 00:55:52 +01:00
Laurent Cozic 4060100d15 Chore: Update plugin API 2026-06-16 00:54:08 +01:00
Laurent Cozic 557a454012 Revise title of AI embeddings documentation
Updated the title of the AI embeddings documentation.
2026-06-16 00:49:31 +01:00
renovate[bot] a12c763a10 chore(deps): update dependency git to v2.52.0 (#15693)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-16 00:49:04 +01:00
Laurent Cozic 30c38f8e48 Chore: Do initial scan of notes when enabling embedding indexer (#15694) 2026-06-16 00:48:47 +01:00
Laurent Cozic 235307e8a2 Chore: Clean up embeddings feature and add doc (#15692) 2026-06-15 18:38:15 +01:00
Laurent Cozic 89487ca172 Chore: Fixed translation of "Idle" in French 2026-06-15 14:22:43 +01:00
Laurent Cozic 58e9c4c8d1 Desktop: Add embedding indexer status panel and existing-note backfill (#15691) 2026-06-15 14:19:58 +01:00
renovate[bot] a3a5771456 fix(deps): update dependency @react-native-vector-icons/material-icons to v12.4.3 (#15689)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-15 11:25:29 +00:00
Laurent Cozic 6b2b3d06d6 Chore: Fixed lock file 2026-06-15 12:13:49 +01:00
renovate[bot] 91eda2d063 fix(deps): update dependency @react-native-vector-icons/fontawesome5 to v12.3.3 (#15687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-15 10:18:09 +00:00
renovate[bot] 2c198406e4 fix(deps): update dependency @react-native-vector-icons/material-design-icons to v12.4.3 (#15688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-15 11:06:27 +01:00
Laurent Cozic 7ca02505e8 Plugins: Add semantic search plugin API (joplin.ai.search) (#15686) 2026-06-15 10:08:23 +01:00
krevad c17dab43a1 All: Translation: Update sv.po (#15685) 2026-06-15 03:44:03 -04:00
renovate[bot] d1b8c582ad chore(deps): update dependency @types/adm-zip to v0.5.8 (#15684)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-14 22:14:53 +01:00
Laurent Cozic ee4edd3e97 Desktop: Add local embedding provider for note indexing (#15683) 2026-06-14 22:06:42 +01:00
Laurent Cozic 8c3cd1248d Desktop: Add embedding model downloader (#15679) 2026-06-14 10:47:39 +01:00
renovate[bot] 8d62c1b5c9 fix(deps): update dependency nanoid to v5.1.7 (#15677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-14 00:53:21 +00:00
renovate[bot] beeb1a4701 fix(deps): update dependency dotenv to v17.3.1 (#15676)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-13 21:17:45 +01:00
Laurent Cozic 1eea1f8183 Desktop: Embeddings indexer: Also index note titles 2026-06-13 01:09:31 +01:00
Laurent Cozic 179a58a718 Desktop: Add note embeddings indexer (#15674) 2026-06-13 01:04:39 +01:00
Laurent Cozic 2242d86fb8 Doc: Update how we credit security vulnerability disclosure
Due to most if not all security vulnerabilities now being discovered by LLM we no longer credit reports. Most of the work is in verifying the finding, implementing a solution and releasing a new version, and this is works that we do.
2026-06-12 22:17:50 +01:00
Joplin Bot 1d94d6e292 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-06-12 20:20:43 +00:00
Laurent Cozic d9d10a79fe Desktop: Add note embeddings storage layer (#15671) 2026-06-12 18:28:33 +01:00
Henry Heino 5051807374 All: Improve how resource filenames are determined (#15672) 2026-06-12 18:28:20 +01:00
mrjo118 fd6b86dc5e Mobile: Fixes #15483: Disable external embeds on mobile and hide the setting (#15602) 2026-06-12 16:20:11 +01:00
mrjo118andLaurent Cozic 62bab6ece5 All: Fixes #15608: Fix duplicate tag creation for special unicode characters (#15613)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-06-12 16:19:55 +01:00
Aissa Benfodda 4faa5f6ecf Desktop: Resolves #14211: Error importing from format: one (#15615) 2026-06-12 16:19:29 +01:00
Laurent Cozic c21954d91a Desktop: Add sqlite-vec extension loading for vector search (#15666) 2026-06-12 14:25:50 +01:00
Sriram Varun Kumar 70a493f151 All: Resolves #15549: add migration 51 for conflict resolution columns (#15565) 2026-06-12 11:40:04 +01:00
renovate[bot] dec13b5b1e fix(deps): update dependency react-native-device-info to v15.0.2 (#15664)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-12 11:28:27 +01:00
Laurent Cozic 5b11e303f4 Desktop: Add AI chat backend and plugin API (#15643) 2026-06-12 11:28:14 +01:00
Henry Heino 98372a362c Desktop: Upgrade to Electron 42.3.0 (#15571) 2026-06-12 09:20:48 +01:00
Henry Heino 8e0812de9d Desktop,Mobile,Server: Fix Fountain rendering issue (#15659) 2026-06-12 09:19:32 +01:00
Henry Heino f533dc153d Server: Improve UUID generation logic (#15656) 2026-06-12 09:19:16 +01:00
Henry Heino 63dfa3b5ab Server: Improve items/ route validation logic (#15657) 2026-06-12 09:19:03 +01:00
Henry Heino e476f13cce Server: Upgrade samlify to v2.13.1 (#15658) 2026-06-12 09:18:52 +01:00
renovate[bot] 416fbb1db4 fix(deps): update dependency react-native-device-info to v15 (#15661)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-12 09:18:38 +01:00
renovate[bot] 55e3b3c27a fix(deps): update dependency slugify to v1.6.8 (#15660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-12 02:36:58 +00:00
renovate[bot] a7c3cdad74 chore(deps): update actions/checkout action to v6 (#15649)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-11 23:08:48 +01:00
Henry Heino 04692ea820 Server: Allow configuring the default admin password with an environment variable (#15655) 2026-06-11 23:07:54 +01:00
Aissa Benfodda 74f7fdf448 Plugins: Filter what values joplin.settings.globalValues can return (#15651) 2026-06-11 19:34:49 +01:00
renovate[bot] bd585becbe chore(deps): update github artifact actions to v5 (#15650)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-11 18:35:40 +01:00
renovate[bot] f7d0dc9ef5 fix(deps): update dependency dayjs to v1.11.20 (#15648)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-11 18:35:32 +01:00
Joplin Bot b18f4b3971 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-06-11 16:10:35 +00:00
Keshav 005497b6c0 All: Resolves #15556: Add local note encryption schema metadata (#15557) 2026-06-11 14:41:05 +01:00
Aissa BenfoddaandLaurent Cozic 26096d9ae9 Desktop: Fixes#15277: Copying and pasting image from Affinity adds the image as Base64 (#15566)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-06-11 14:32:16 +01:00
aguasa4 2f9562e7e2 Mobile: Fixes #15479: Fixed mobile "new notebook" instructions (#15590) 2026-06-11 14:23:54 +01:00
renovate[bot] 7e2adfa36c fix(deps): update dependency tar-stream to v3.1.8 (#15593)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-11 12:45:22 +00:00
mrjo118 54060df947 Desktop: Fixes #15482: Fix external embeds originating from Youtube on mobile not working (#15605) 2026-06-11 13:45:12 +01:00
Aissa Benfodda 591baf4214 Desktop: Resolves #15334: Importing from OneNote: Note order should be preserved (#15609) 2026-06-11 13:44:22 +01:00
renovate[bot]andLaurent Cozic 9645abc9db fix(deps): update dependency react-native-paper to v5.15.0 (#15638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-06-11 13:36:55 +01:00
mrjo118 d62df4beb5 Mobile, Desktop: Fixes #15498: Upgrade CodeMirror view to 6.42.1 (#15639) 2026-06-11 13:36:43 +01:00
Aissa Benfodda 4cab09fdaa Desktop: Fixes #15575: Crash on deleting ca. 4000 notes (#15640) 2026-06-11 13:36:09 +01:00
Henry Heino 17ff5974f8 Chore: TypeScript: Set esModuleInterop to true (#15642) 2026-06-11 13:34:29 +01:00
Henry Heino 5216b47b0d Chore: Fix CI on the release-3.6 branch (#15644) 2026-06-11 13:34:15 +01:00
renovate[bot] dfe848628d chore(deps): update dependency esbuild to v0.27.4 (#15645)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-11 13:34:05 +01:00
Laurent Cozic b6d69d0729 Server: Prevent SAML login from accessing existing local password accounts (#15647) 2026-06-11 10:39:53 +01:00
Henry Heino 877938f304 Doc: Enable the Pro 100 GB plan (#15646) 2026-06-10 21:55:27 +01:00
Laurent Cozic abd07c5a16 Doc: Enable Joplin Cloud Pro 100GB on plan page 2026-06-10 21:01:40 +01:00
Aissa BenfoddaandLaurent Cozic f6ac99085c Chore: Resolves: Fix CI Yarn install failure (#15641)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-06-10 16:54:07 +01:00
renovate[bot] 7b1ba72864 fix(deps): update dependency pg to v8.18.0 (#15637)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-09 23:30:07 +01:00
Laurent Cozic ab886109d0 Chore: Update lock files 2026-06-09 23:11:33 +01:00
Laurent Cozic 071f205c44 Chore: Upgrade to yarn 4.16.0 2026-06-09 23:11:21 +01:00
Laurent Cozic 9876a3f845 Chore: Ignore Playwright flaky tests that succeeded on second try on CI 2026-06-09 23:10:16 +01:00
Laurent Cozic c4c8df5ba8 Chore: Retry docker compose on CI 2026-06-09 23:02:26 +01:00
renovate[bot] 19762552f7 fix(deps): update dependency @react-native-community/netinfo to v11.5.2 (#15636)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-09 22:21:22 +01:00
renovate[bot] 44cdc669f4 fix(deps): update dependency react-native-share to v12.2.6 (#15635)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-09 20:36:45 +01:00
renovate[bot] b3ba45585f fix(deps): update dependency @fortawesome/react-fontawesome to v3.2.0 (#15634)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-09 19:16:36 +01:00
Laurent Cozic 9f1f567e6b Doc: Add spec for AI primitives (#15494) 2026-06-09 12:39:19 +01:00
renovate[bot] 8b52de1519 fix(deps): update dependency dompurify to v3.3.3 (#15633)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-09 12:33:51 +01:00
renovate[bot] e8dfda45ba chore(deps): update playwright monorepo to v1.58.2 (#15632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-09 10:47:32 +01:00
renovate[bot] 671f81b4c5 fix(deps): update dependency @react-native-vector-icons/fontawesome5 to v12.3.2 (#15629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-09 05:50:16 +00:00
renovate[bot] 5c3e28934e fix(deps): update dependency @react-native-vector-icons/material-design-icons to v12.4.2 (#15630)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-09 02:47:41 +00:00
renovate[bot] 5833f311b0 fix(deps): update dependency tar to v7.5.11 (#15622)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-08 22:57:22 +01:00
Henry Heino 46873ccb11 Chore: iOS: Simplify UI test build output and retry tests on failure (#15628) 2026-06-08 22:56:28 +01:00
renovate[bot] bfe8b827af chore(deps): update dependency @types/semver to v7.7.1 (#15623)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-08 09:49:08 +01:00
renovate[bot] 450f771820 fix(deps): update dependency dompurify to v3.3.2 (#15620)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-08 02:36:12 +00:00
renovate[bot] eb5d82cf69 chore(deps): update dependency @rollup/plugin-commonjs to v29.0.2 (#15619)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-08 02:34:11 +00:00
Henry Heino dd60a77e98 Chore: iOS: Run end-to-end tests in CI (#15564) 2026-06-07 21:50:53 +01:00
Henry HeinoandClaude Opus 4.8 6faefb82bd Chore: TypeScript: Strengthen and replace most Function types (#15600)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 21:48:44 +01:00
Henry HeinoandClaude Opus 4.8 cfcf796211 Chore: Upgrade ESLint to v9 (#15586)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 23:57:08 +02:00
Henry HeinoandClaude Opus 4.8 c73d47063d Chore: TypeScript: Migrate more any types (#15599)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 23:55:51 +02:00
renovate[bot] f7645a0f9b fix(deps): update dependency react-native-webview to v13.16.1 (#15592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 13:08:26 +00:00
renovate[bot] f1007eb89c fix(deps): update dependency ldapts to v8.1.7 (#15591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 11:09:30 +00:00
renovate[bot] 45fee00d47 fix(deps): update dependency fs-extra to v11.3.4 (#15589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 05:00:08 +00:00
renovate[bot] 5b016ebaba chore(deps): update dependency axios to v1.13.6 (#15587)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 00:59:06 +00:00
renovate[bot] 20845bf7e7 chore(deps): update dependency @types/serviceworker to v0.0.193 (#15584)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-01 19:51:39 +00:00
renovate[bot] 8baee6f296 fix(deps): update dependency @react-native-vector-icons/material-icons to v12.4.1 (#15537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-01 15:29:28 +00:00
Henry Heino 2ff7dc15ef MacOS: Fix Electron build/download failure (#15579) 2026-06-01 17:18:37 +02:00
Joplin Bot 4942005157 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-06-01 04:14:18 +00:00
Henry Heino f92f605d47 Chore: Fixes #15563: CI: Fix Electron fails to install in CI (#15573) 2026-05-30 13:34:15 +02:00
Henry Heino 620c24ef6a Chore: Fix randomClipperPort.js has unstaged changes after each build (#15553) 2026-05-29 11:01:18 +02:00
Aissa Benfodda bc1f0e806c Desktop, CLI: Fixes #15217: Importing from OneNote: Notebooks can be imported as subfolders of the trash (#15555) 2026-05-29 11:00:55 +02:00
Henry HeinoandClaude Opus 4.7 c277fb0090 Chore: Migrate more JavaScript files to TypeScript in packages/lib (#15558)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-29 10:59:39 +02:00
Laurent Cozic b15472bc96 Desktop: Restrict KaTeX \href to safe URL schemes (#15538) 2026-05-27 04:33:11 +01:00
Laurent Cozic 853659edf5 Desktop: Set Windows publisher name for installer verification (#15539) 2026-05-27 04:32:47 +01:00
Henry Heino 313373853a Mobile: Fix startup failure (#15554) 2026-05-27 04:31:29 +01:00
renovate[bot] 8bfb75ef83 fix(deps): update dependency koa to v2.16.4 (#15546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-26 21:38:10 +01:00
Henry HeinoandClaude Opus 4.7 24b088d73a Chore: Convert JavaScript to TypeScript in packages/lib (#15547)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 21:37:55 +01:00
renovate[bot] 482fb37b91 fix(deps): update dependency @react-native-vector-icons/material-design-icons to v12.4.1 (#15536)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-26 12:19:00 +00:00
renovate[bot] f1e0bcfe7a fix(deps): update dependency @react-native-vector-icons/fontawesome5 to v12.3.1 (#15535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-26 12:47:46 +01:00
Henry Heino 7540ca142b Chore: Server: Add a larger plan type (#15528) 2026-05-26 08:40:30 +01:00
renovate[bot] e8ddcf04b5 chore(deps): update dependency nan to v2.25.0 (#15529)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-26 08:40:18 +01:00
Henry Heino 62713263ef Web: Fixes #15530: Fix plugin support (#15531) 2026-05-26 08:40:02 +01:00
Henry HeinoandClaude Opus 4.7 137fa3d75c Chore: Convert JavaScript to TypeScript in packages/renderer (#15532)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 08:39:26 +01:00
Henry HeinoandClaude Opus 4.7 2a4219fae6 Chore: Convert more requires to typed imports (#15533)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 08:39:10 +01:00
Henry Heino d7a2337485 Chore: Fix "yarn generatePluginTypes" command (#15534) 2026-05-26 08:38:52 +01:00
ef7acdd55e Chore: Convert JavaScript files to TypeScript in packages/app-cli (#15523)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-05-25 22:03:21 +01:00
Henry HeinoandClaude Opus 4.7 5df182d871 Chore: Convert most requires to imports in TypeScript files (#15527)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 22:02:07 +01:00
Laurent Cozic 1a7da853d2 Doc: Mention Joplin Web App in Joplin Cloud UI 2026-05-25 11:50:51 +01:00
Laurent Cozic 7dda2a5138 Doc: Add end-user doc for Joplin Web App 2026-05-25 11:38:16 +01:00
Laurent Cozic c11ab596c3 Doc: Mention Joplin Web App in plan page 2026-05-25 11:20:35 +01:00
Laurent Cozic 7f55a566e5 Chore: Trying to fix flaky Tesseract test 2026-05-24 23:17:15 +01:00
Henry Heino 256eceed78 iOS: Fixes #15490: Fix scroll jumps while editing long paragraphs (#15499) 2026-05-24 18:45:00 +01:00
Laurent Cozic 7f898133d6 Chore: Trying to fix buffer overflow error on Windows CI 2026-05-24 16:19:17 +01:00
renovate[bot]andLaurent Cozic 3537289b75 chore(deps): update dependency @types/serviceworker to v0.0.192 (#15518)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-05-24 13:19:47 +01:00
Laurent Cozic cbe3748185 Chore: Trying to fix flaky mobile test 2026-05-24 11:13:48 +01:00
Laurent Cozic d61990c4d2 Chore: Trying to fix flaky mobile test 2026-05-24 10:08:15 +01:00
Laurent Cozic 14c6937339 Chore: Trying to fix random crash on Windows CI 2026-05-23 08:58:25 +01:00
Mihai Vasiliu 37a48d1166 All: Translation: Update ro_RO.po and ro_MD.po (#15508) 2026-05-23 02:25:10 -04:00
renovate[bot] 4895882843 chore(deps): update nvidia/cuda docker tag to v13.1.1 (#15511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-22 21:59:29 +01:00
Laurent Cozic 130c7548e8 Chore: Free more disk space before Android release build to prevent random CI failures (#15510) 2026-05-22 20:07:16 +01:00
Laurent Cozic d4878ac2de Server: Fixes #15507: Auto-unlock database after failed server migration (#15509) 2026-05-22 16:51:23 +01:00
Joplin Bot 435314bd16 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-05-22 14:50:19 +00:00
Laurent Cozic 16426de329 Chore: Retry flaky test on CI 2026-05-22 12:12:51 +01:00
Laurent Cozic 4eb1ab4850 Chore: Update build files 2026-05-22 12:01:57 +01:00
Laurent Cozic c015adfa22 Merge branch 'release-3.6' into dev 2026-05-22 12:01:31 +01:00
Laurent Cozic a37c9167f8 iOS 13.6.9 2026-05-22 11:10:10 +01:00
Laurent Cozic 7fccb02541 Android 3.6.20 2026-05-22 11:09:10 +01:00
renovate[bot] a940bdaf8a fix(deps): update dependency nodemon to v3.1.14 (#15506)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-22 05:40:09 +00:00
renovate[bot] 08e7b56d6a chore(deps): update dependency @types/nodemailer to v6.4.23 (#15505)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-22 01:02:10 +00:00
Laurent Cozic f30b5efa9a Chore: Retry one-converter build when it fails to reduce random CI failures 2026-05-21 21:48:57 +01:00
Laurent Cozic baad680ecd Chore: Prevent delete-coderabbit-comments workflow from failing when secrets are not available 2026-05-21 21:48:57 +01:00
renovate[bot] 0b55378590 fix(deps): update dependency abcjs to v6.6.2 (#15503)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-21 20:10:17 +01:00
Henry Heino a8c3e34be9 Chore: Mobile: Remove duplicate Prosemirror dependencies (#15502) 2026-05-21 20:09:28 +01:00
renovate[bot] 9750d2ea22 fix(deps): update dependency prosemirror-transform to v1.11.0 (#15501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-21 13:09:40 +01:00
Henry Heino 5751788a78 iOS: Fixes #15490: Fix scroll jumps while editing long paragraphs (#15495) 2026-05-21 11:32:08 +01:00
Henry Heino 385a78dc20 Android: Fixes #15496: Fix file system sync (#15500) 2026-05-21 11:31:10 +01:00
renovate[bot] 217cef47b0 fix(deps): update dependency nodemon to v3.1.13 (#15497)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-21 05:37:24 +00:00
mrjo118 42d4b17980 Mobile: Fixes #15442: Match desktop behaviour for sanitising inline search queries copied from the global search (#15452) 2026-05-20 15:09:42 +01:00
Henry HeinoandLaurent Cozic f529849b20 Server: Resolves #15432: Don't include dev dependencies in the built image (#15472)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-05-20 14:30:28 +01:00
Aissa BenfoddaandLaurent Cozic 818174bb8e Chore: Update koa/cors version (#15488)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-05-20 14:29:27 +01:00
renovate[bot] 1ac6ca592c chore(deps): update actions/create-github-app-token action to v2 (#15492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 14:27:59 +01:00
Laurent Cozic 491696c021 Chore: Trying to reduce random CI failures by retrying apt-get calls 2026-05-20 11:31:21 +01:00
Henry Heino 908a104c36 Chore: Server: Test server Docker image using the sync fuzzer in CI (#15486) 2026-05-20 11:16:52 +01:00
Aissa Benfodda 98c20ab6a4 Chore: Update node-forge and moment versions (#15487) 2026-05-20 11:11:19 +01:00
Laurent Cozic 10d6411332 Chore: Use more secure token for CodeRabbit clean up task and make it work on fork PRs 2026-05-20 10:55:59 +01:00
Laurent Cozic f038a847ff Server: Reject items with a null byte in any field (#15489) 2026-05-20 08:57:28 +01:00
Laurent Cozic b99705cab7 All: Prevent notes with null bytes in title or body from being saved (#15485) 2026-05-20 08:57:11 +01:00
Joplin Bot afb06ac023 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-05-20 03:44:43 +00:00
Joplin Bot 951dcda52d Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-05-19 15:32:11 +00:00
Laurent Cozic 22ea89f5f1 Merge branch 'release-3.6' into dev 2026-05-19 16:13:04 +01:00
Laurent Cozic f5f0acee9f Chore: Retry yarn install when it randomly fails on CI (#15484) 2026-05-19 15:49:39 +01:00
Laurent Cozic 134064c829 iOS 13.6.8 2026-05-19 15:45:31 +01:00
Laurent Cozic ccfa610b8a Android 3.6.19 2026-05-19 15:44:56 +01:00
Laurent Cozic 7e2765a385 Desktop release v3.6.14 2026-05-19 15:33:24 +01:00
Henry Heino b3af2089c9 Desktop,Mobile: Fixes #15467: In-editor rendering: Do not render empty inline HTML (#15470) 2026-05-19 15:29:43 +01:00
Aissa Benfodda de1fad63f6 Server: Fixes #15373: Fixed published notes reusing disabled owner shares (#15454) 2026-05-19 15:29:27 +01:00
Henry Heino 7bdb08b94a Desktop, Mobile: Fixes #15425: In-editor rendering: Render URLs when the link text is empty (#15444) 2026-05-19 15:27:07 +01:00
Henry Heino 256572957c Web: Improve sync wizard help text when only one sync option is shown (#15471) 2026-05-19 15:25:55 +01:00
Henry Heino 22ab66d0b0 Mobile: Fixes #15473: Fix long note titles hide "unpublish" in the publish notes dialog (#15475) 2026-05-19 15:25:20 +01:00
Henry Heino c1d574ce13 Desktop: Fixes #15430: Importing from OneNote: Fix importing .zip files containing .onetoc2 files (#15476) 2026-05-19 15:24:54 +01:00
summoner d61d14ae72 ALL: Translation: Update hu_HU.po (#15481) 2026-05-19 07:49:44 -04:00
renovate[bot] 1d2a1939a9 chore(deps): update dependency @rollup/plugin-commonjs to v29 (#15477)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-18 22:31:29 +01:00
Laurent Cozic eba3a14b94 Chore: Fix tagServerLatest script - do not fail when local latest label does not exist 2026-05-18 14:20:06 +01:00
Laurent Cozic 1d7bae02f6 Chore: Retry macOS desktop build on CI for random hdiutil failures 2026-05-18 14:14:26 +01:00
Laurent Cozic 23978fd605 Server v3.7.1 2026-05-18 11:41:57 +01:00
Laurent Cozic 9e46f80713 Chore: Trying to fix random CI failure 2026-05-18 00:00:08 +01:00
Laurent Cozic d3fbe29913 Chore: Trying to fix random CI failure 2026-05-17 21:37:48 +01:00
renovate[bot] f3edc53452 chore(deps): update nvidia/cuda docker tag to v13.0.2 (#15466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-17 20:16:18 +01:00
renovate[bot] ebb098e4f2 chore(deps): update nvidia/cuda docker tag to v13 (#15464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-17 19:17:56 +01:00
Aissa Benfodda ee14d66b48 Desktop, Cli: Fixes #15374: Fix Markdown export folder paths with dot in parent path (#15455) 2026-05-17 15:25:58 +01:00
Laurent Cozic bc71b1641e Mobile: Improve view/edit toggle button appearance in note header (#15450) 2026-05-17 15:23:39 +01:00
Henry Heino 46df907d53 Chore: Add a precommit check to prevent generated .js files from being committed (#15446) 2026-05-17 15:23:30 +01:00
Laurent Cozic 40174a5107 Revert "Desktop: Fixes #15425: Prevent links with empty title from disappearing in the Markdown editor" (#15465) 2026-05-17 15:21:41 +01:00
Aissa Benfodda 18fd4d3b87 Desktop: Resolves #15202: Importing from OneNote: Issues with XPS-Printouts (#15290) 2026-05-17 15:18:26 +01:00
Aissa BenfoddaandLaurent Cozic 71078ab246 Desktop: Added email autocomplete when sharing a notebook (#15241)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-05-17 15:17:57 +01:00
Aissa Benfodda c73242ec33 Transcribe: Resolves #14253: Add optional GPU support to Transcribe server (#15182) 2026-05-17 15:14:38 +01:00
Laurent Cozic e0db7e3dc6 Desktop: Fixes #15425: Prevent links with empty title from disappearing in the Markdown editor (#15462) 2026-05-17 14:45:47 +01:00
renovate[bot] 4856d5b7fa fix(deps): update dependency tar to v7.5.9 (#15459)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-17 13:14:38 +00:00
Laurent Cozic a36b659146 Chore: Trying to fix CI random failure (#15461) 2026-05-17 14:12:56 +01:00
Laurent Cozic b8b0545edf Merge pull request #15451 from laurent22/whiteboard_fixes 2026-05-17 11:25:14 +01:00
Henry Heino c4f231eec6 Mobile: Add padding to the bottom of the viewer and editor (#15418) 2026-05-17 11:24:18 +01:00
renovate[bot] cf5a54161a chore(deps): update dependency @types/serviceworker to v0.0.191 (#15458)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-17 09:01:05 +00:00
Eugene Lesnov 3b0d6c9318 All: Translation: Update ru_RU.po (#15453) 2026-05-16 16:31:07 -04:00
renovate[bot] 2f2dbdc072 chore(deps): update dependency @types/serviceworker to v0.0.190 (#15449)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-16 14:06:33 +01:00
Laurent Cozic 5a35660387 Chore: Whiteboard: Fix dropping a card inside a group and then moving the group 2026-05-16 14:05:47 +01:00
Laurent Cozic e856627ddb Desktop: Whiteboard: Add support for drag and dropping files on whiteboard 2026-05-16 14:03:38 +01:00
Laurent Cozic 345b7b67e1 Desktop: Whiteboard: Add support for groups 2026-05-16 13:46:24 +01:00
Laurent Cozic 2119a8b91e Desktop: Fixes #15375: Desktop: Whiteboard unusable in Secondary Window 2026-05-16 11:52:16 +01:00
Laurent Cozic 70cd1ccbe4 Doc: Update CLAUDE.md with comments and styling guidelines
Added guidelines for comments and styling in the desktop app.
2026-05-16 11:44:37 +01:00
Laurent Cozic 17c042b102 Chore: Whiteboard: Moved styling to RSCSS 2026-05-16 11:39:40 +01:00
Laurent Cozic 968c7b0902 Desktop: Fixes #15386: Prevent text selection inside whiteboard action buttons 2026-05-16 11:03:10 +01:00
Laurent Cozic 554ee18e5b Desktop: Whiteboard: Use clearer "Linked item" label on file cards 2026-05-16 10:56:16 +01:00
Laurent Cozic 667f8d9c07 Desktop: Fixes #15385: Show clearer message on whiteboard cards when the linked note or resource has been deleted or moved to the trash 2026-05-16 10:49:45 +01:00
Laurent Cozic 9e28e59c1e Chore: Trying to fix flaky test on CI 2026-05-15 23:35:18 +01:00
Henry HeinoandLaurent Cozic 8ff77ec9e7 Chore: Testing: Fix warnings logged while running ProseMirror tests (#15441)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-05-15 23:28:56 +01:00
Laurent Cozic 14eb3dd42b Desktop: Highlight matching cells when searching tables in the CodeMirror editor (#15440) 2026-05-15 23:28:41 +01:00
Laurent Cozic 7d9ee49991 Desktop: Allow arrow keys to move past tables in the CodeMirror editor (#15439) 2026-05-15 23:20:40 +01:00
Laurent Cozic f209c3e188 Desktop: Show selection highlight on tables in the CodeMirror editor (#15438) 2026-05-15 23:14:13 +01:00
Laurent Cozic f4ad0b399f Desktop: Render inline markdown formatting inside table cells (#15437) 2026-05-15 23:07:56 +01:00
Laurent Cozic e78e108bbd Chore: Disable irrelevant JSOM warnings when running server tests 2026-05-15 23:04:40 +01:00
Laurent Cozic 8b46682a87 Chore: delete-coderabbit-comments: Handle PRs that orginate from forks 2026-05-15 19:48:49 +01:00
Laurent Cozic 9fdc2d4adb Server, Desktop, Mobile: Fix XSS vulnerability in HTML notes (#15435) 2026-05-15 19:07:17 +01:00
Laurent Cozic 5b8795da44 Desktop, Mobile: Fix possible crash when creating a note or notebook with an excessively long title (#15434) 2026-05-15 17:30:50 +01:00
mrjo118 b957f42f24 Mobile: Add setting to choose the default view / edit state (#15423) 2026-05-15 17:11:49 +01:00
Henry Heino 6e274a7f86 Chore: Web: Fix startup failure (#15415) 2026-05-15 17:11:26 +01:00
Laurent Cozic fd8c1fb53f Server: Add rate limiter on SAML auth code endpoint (#15433) 2026-05-15 16:51:56 +01:00
Laurent Cozic 1c319c6b5b Chore: Fix check-pr-title logic, to not fail for whitelisted contributors 2026-05-15 11:46:05 +01:00
renovate[bot] cee7364da3 chore(deps): update dependency @types/serviceworker to v0.0.189 (#15427)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-15 11:04:50 +01:00
renovate[bot] 364fb04a02 fix(deps): update dependency pg to v8.17.2 (#15424)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-15 09:10:56 +01:00
Laurent Cozic 9ac4aac4e5 Chore: Replace any with proper types in lib (#15416) 2026-05-15 01:28:50 +01:00
renovate[bot] a79db7ccd5 fix(deps): update dependency pg to v8.17.0 (#15420)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-15 00:55:02 +01:00
renovate[bot] af022acee6 chore(deps): update dependency @types/serviceworker to v0.0.188 (#15419)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-14 22:34:10 +00:00
Laurent Cozic 51637d6ef6 Server: Fix banner handling 2026-05-14 19:28:38 +01:00
Henry Heino 31409d321e Chore: Pull request title check: Allow the "Web" prefix (#15417) 2026-05-14 18:20:48 +01:00
Henry Heino 2de1742097 Android: Fixes #15363: Voice typing: Fix speech-to-text accuracy regression for non-English languages (#15412) 2026-05-14 12:05:29 +01:00
renovate[bot] aa66a455cc fix(deps): update dependency react-native-nitro-modules to v0.33.9 (#15409)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-14 00:19:56 +00:00
Laurent Cozic 1a648085f3 Chore: Replace any with proper types in app-desktop (#15401) 2026-05-14 01:17:41 +01:00
renovate[bot] 482326a504 chore(deps): update dependency @types/serviceworker to v0.0.187 (#15404)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-13 22:40:27 +01:00
Henry Heino 79f465bc62 iOS: Fixes #15407: Fix JEX import on iOS (#15408) 2026-05-13 22:39:06 +01:00
Henry Heino 2196f3524e Desktop,Mobile,Cli,Server: Joplin Server/Cloud sync: Improve item deletion performance (#15392) 2026-05-13 20:58:58 +01:00
Laurent Cozic 38fa615af0 Chore: Replace any with proper types in app-cli (#15400) 2026-05-13 13:17:17 +01:00
Blind Dev 0503a1513e Doc: Fix website keyboard focus indicator (#15378) 2026-05-13 10:16:44 +01:00
Aissa Benfodda ee89ae602b Server: Fixes #15395: Static asset resolution fails on Windows due to backslash path separators (#15396) 2026-05-13 10:15:43 +01:00
Laurent Cozic 9fc2d76fa3 Chore: Replace "any" with proper types in server (#15391) 2026-05-13 10:04:58 +01:00
renovate[bot] 8b72b0aad7 fix(deps): update dependency react-native-get-random-values to v2 (#15388)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 20:26:34 +01:00
renovate[bot] 60766a7c61 fix(deps): update dependency rate-limiter-flexible to v8.3.0 (#15387)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 20:25:48 +01:00
Laurent Cozic 0c51344221 All: Fixes #15382: Revert PR #14612 (#15384) 2026-05-12 20:25:32 +01:00
Laurent Cozic 5dc234a960 Chore: Replace "any" with proper types in app-mobile (#15377) 2026-05-12 19:22:36 +01:00
renovate[bot] 4dd8235711 fix(deps): update dependency rate-limiter-flexible to v8 (#15380)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 17:58:28 +01:00
Joplin Bot e71f3b3b32 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-05-12 14:35:52 +00:00
Laurent Cozic cac3f8c337 Mobile: Fix Joplin Cloud login failing when Android kills the app during OAuth (#15111) 2026-05-12 15:32:30 +01:00
renovate[bot] 679c299ea4 fix(deps): update dependency nanoid to v5 (#15370)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 15:22:41 +01:00
Laurent Cozic f2badeb556 Chore: Simplify generated doc for any_cleanup task 2026-05-12 14:27:51 +01:00
renovate[bot] 2cc9a7886d fix(deps): update dependency node-cron to v4 (#15371)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 14:21:57 +01:00
Laurent Cozic b62824b60e iOS 13.6.7 2026-05-12 11:08:06 +01:00
Laurent Cozic 7e21762954 Desktop release v3.6.13 2026-05-12 10:52:21 +01:00
Laurent Cozic c7af53bda9 Desktop release v3.6.12 2026-05-12 10:51:49 +01:00
Laurent Cozic 564c7543c6 Merge branch 'release-3.6' into dev 2026-05-12 10:50:45 +01:00
Laurent Cozic d497147d1e Desktop: Fixes #15308: Fix importing legacy keyboard shortcuts 2026-05-12 10:48:59 +01:00
Self Not Found 226c2c7db9 Mobile: Resolves #15287: Refactor (native) Crypto module to improve encryption performance on mobile (#15288) 2026-05-12 09:16:26 +01:00
Laurent Cozic a4533b4136 Desktop: Fixes #15346: Fix fatal startup crash when sync target upgrade is required (#15348) 2026-05-12 09:07:44 +01:00
Laurent Cozic 3cbf2e0e33 Desktop: Resolves #15328: Front matter: Wrap long lines in the viewer (#15356) 2026-05-12 09:07:32 +01:00
Henry Heino a51a8e9ad4 Desktop: Fixes #15307: Note list: Don't detect checkbox-like markup in tables and paragraphs as checkboxes (#15357) 2026-05-12 09:07:20 +01:00
Henry Heino 7ac128aa48 iOS: Fixes #15311: Fix plugins fail to start (#15362) 2026-05-12 09:06:18 +01:00
Laurent Cozic 26a81c9d63 Chore: Replace "any" with proper types (#15339) 2026-05-11 22:56:59 +01:00
Joplin Bot 33aa43bd7d Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-05-11 19:57:12 +00:00
summoner 32ecd1e3f4 ALL: Translation: Update hu_HU.po (#15351) 2026-05-11 14:36:27 -04:00
Laurent Cozic 51d393e273 Merge branch 'release-3.6' into dev 2026-05-11 19:08:45 +01:00
Joplin Bot ad597cc371 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-05-11 15:01:21 +00:00
Laurent Cozic f1abdf8b78 Chore: Avoid excessive comments from check_pr_title workflow 2026-05-11 14:43:05 +01:00
Laurent Cozic 004bf71103 Chore: Trying to fix Rabbit Comment deletion 2026-05-11 14:41:11 +01:00
Joplin Bot acfab6894a Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-05-11 13:24:40 +00:00
Laurent Cozicandcoderabbitai[bot] e012c701be Doc: Release note v3.6 (#15279)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-05-11 14:12:19 +01:00
renovate[bot] 4fe445de63 chore(deps): update dependency @types/serviceworker to v0.0.186 (#15335)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-11 11:20:55 +00:00
Laurent Cozic 95a53f6695 Desktop release v3.7.1 2026-05-11 11:26:15 +01:00
Laurent Cozic bdfae85691 Chore: Setup release 3.7 2026-05-11 11:25:57 +01:00
Laurent Cozic 8c03a90d7f Desktop release v3.6.12 2026-05-11 11:25:08 +01:00
Self Not Found 076d6cc263 Mobile: Resolves #15313: Remove old workaround for S3 and Dropbox sync to improve performance (#15314) 2026-05-11 11:24:28 +01:00
Laurent Cozic d4008780b1 Chore: Update build assets 2026-05-11 11:23:30 +01:00
mrjo118 7a2135a77b All: Fix silent sync failure which prevents new changes being synced, when a single server object has an updated_time in the future (#15262) 2026-05-11 10:46:57 +01:00
Laurent Cozic aa55a450cf Desktop: Resolves #15193: Add support for whiteboards (#15305) 2026-05-11 09:59:09 +01:00
renovate[bot] c26551c171 fix(deps): update dependency @react-native-community/datetimepicker to v8.6.0 (#15330)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-11 09:58:20 +01:00
renovate[bot] 58cea24934 chore(deps): update actions/github-script action to v8 (#15331)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-11 09:57:31 +01:00
Laurent Cozic 4c4733faf1 Chore: Add Transcribe to check_pr_title 2026-05-11 09:28:00 +01:00
renovate[bot] 4809d9f1fa fix(deps): update dependency react-native-svg to v15.15.3 (#15329)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-11 00:54:22 +00:00
renovate[bot] 222dbc5aab fix(deps): update dependency dotenv to v17.2.4 (#15326)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-10 20:33:53 +00:00
renovate[bot] 28e0152531 chore(deps): update dependency esbuild to v0.27.3 (#15323)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-10 20:32:25 +00:00
renovate[bot] fd7c03bb68 fix(deps): update dependency abcjs to v6.6.1 (#15324)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-10 19:15:47 +01:00
renovate[bot] adc527b562 chore(deps): update dependency @types/serviceworker to v0.0.185 (#15322)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-10 17:09:45 +00:00
和泉砂锅 024012e666 Desktop: Fixes #15263: Preserve timestamps when converting HTML notes (#15275) 2026-05-10 16:55:20 +01:00
Henry HeinoandLaurent Cozic 31de8851a1 Server: Performance: Store update changes per-user, rather than per-item (#14712)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-05-10 15:16:26 +01:00
Laurent Cozic 6decb8099c Desktop: Fixes #15248: Prevent trashed notes from opening in edit mode 2026-05-10 14:58:57 +01:00
Vinayreddy765 095f8ac0d6 Desktop: Fixes #15247: When a note is deleted, tags can still be added or removed (#15253) 2026-05-10 14:56:27 +01:00
Henry Heino 539dcceda3 Server: Fix conditions for sending oversized account emails (#15271) 2026-05-10 14:47:59 +01:00
Henry Heino 68af7c5bae Chore: Fixes #13644: Fuzzer: Fix fuzzer failure caused by invalid expected state (#15282) 2026-05-10 14:41:46 +01:00
mrjo118 dec9a5aa82 Mobile: Fixes #15292: Fix gap when side menus are opened in landscape on some devices (#15302) 2026-05-10 14:38:04 +01:00
Henry Heino bac899e12e Desktop: Fixes #15297: Rich Text Editor: Fix find/replace dialog fails to scroll to the next match (#15298) 2026-05-09 21:51:13 +01:00
Henry Heino 8c666935a5 Chore: Sync fuzzer: Fix failure caused by invalid expected state (#15300) 2026-05-09 21:50:57 +01:00
Henry Heino 38f88f3286 Server: Fix startup can fail after downgrading if an interrupted task no longer exists (#15301) 2026-05-09 21:50:10 +01:00
Laurent Cozic f3d2065a79 Chore: check-pr-title: Handle case where PR is eligible for reopening, but contributor has already opened a new PR on same branch 2026-05-09 10:29:38 +01:00
Laurent Cozic 749390153a Chore: Improve check-pr-title action reliability, and reopen once the title is fixed 2026-05-09 10:24:46 +01:00
Joplin Bot 0b3372b00a Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-05-08 19:27:39 +00:00
Laurent Cozic bd73122bf7 CLI v3.6.2 2026-05-08 17:57:09 +01:00
Laurent Cozic 503333c2a7 Lock file 2026-05-08 17:47:07 +01:00
Laurent Cozic 6f5839ad0f Releasing sub-packages 2026-05-08 17:46:41 +01:00
Laurent Cozic 500e4c0280 Releasing sub-packages 2026-05-08 17:27:51 +01:00
Laurent Cozic 502da70dd7 Releasing sub-packages 2026-05-08 17:24:30 +01:00
Laurent Cozic 59cec25f54 Chore: Trying to fix package resolution format so that it works with Lerna 2026-05-08 17:13:34 +01:00
Laurent Cozic da1b8394f5 Chore: Trying to fix package resolution format so that it works with Lerna 2026-05-08 17:08:24 +01:00
Laurent Cozic c7ea2c71bc Chore: Update CLA consent records 2026-05-08 16:12:09 +01:00
Laurent Cozic 54add1e9a3 iOS 13.6.5 2026-05-08 15:53:29 +01:00
Laurent Cozic 887ba6fefe Android 3.6.18 2026-05-08 15:53:28 +01:00
Laurent Cozic 44f542d459 Desktop release v3.6.11 2026-05-08 15:53:28 +01:00
Sriram Varun Kumar 698b59b8fc Mobile: Fixes #13134: Fix Android IME text corruption by upgrading @codemirror/view to 6.39.9 (#15283) 2026-05-07 14:56:20 +01:00
Laurent Cozic 81efd996e9 Revert "Doc: Document Terminal sync.target configuration for OneDrive" (#15284) 2026-05-07 12:51:47 +01:00
rubalo 411959fd3f Doc: Document Terminal sync.target configuration for OneDrive (#15281) 2026-05-07 09:21:53 +01:00
Laurent Cozic 272c0f862c Chore: Exclude Doc prefix 2026-05-07 09:21:09 +01:00
renovate[bot] 59210161cb fix(deps): update dependency react-native-nitro-modules to v0.33.7 (#15272)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 21:50:58 +01:00
renovate[bot] d741e1ae57 fix(deps): update dependency abcjs to v6.6.0 (#15273)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 21:50:35 +01:00
Laurent Cozic d0555e344d Chore: Add Rygaa to list of exception for check_pr_title 2026-05-06 17:52:44 +01:00
Laurent Cozic 99e979f383 Chore: Add images for news post 2026-05-06 13:37:03 +01:00
Laurent Cozic 28163caf86 Chore: Add images for news post 2026-05-06 11:30:11 +01:00
Laurent Cozic b8d9f0c1d2 CI: Add Check PR Title action 2026-05-06 10:36:48 +01:00
renovate[bot] 9eebfe49f9 fix(deps): update dependency react-native-svg to v15.15.2 (#15270)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 00:33:14 +01:00
renovate[bot] 63926d7d87 chore(deps): update dependency nitrogen to v0.33.7 (#15269)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 00:33:06 +01:00
renovate[bot]andLaurent Cozic 25a1b141cb chore(deps): update dependency @axe-core/playwright to v4.11.1 (#15266)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-05-06 00:32:40 +01:00
Laurent Cozic a5792b3760 iOS 13.6.6 2026-05-05 23:16:27 +01:00
Laurent Cozic b45c14001b iOS 13.6.5 2026-05-05 16:24:13 +01:00
Laurent Cozic ada232f161 Android 3.6.18 2026-05-05 16:15:59 +01:00
Laurent Cozic 7f6fda78fe Desktop release v3.6.11 2026-05-05 15:29:28 +01:00
renovate[bot] ff88777e67 fix(deps): update dependency ldapts to v8.1.6 (#15259)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-05 13:52:06 +01:00
renovate[bot] d0a6803f47 chore(deps): update dependency @types/serviceworker to v0.0.183 (#15267)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-05 13:51:25 +01:00
renovate[bot] 96e5b53c2a fix(deps): update dependency react-native-share to v12.2.5 (#15261)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-05 09:06:41 +01:00
renovate[bot] a22fdaa5c9 fix(deps): update dependency react-native-nitro-modules to v0.33.3 (#15260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-05 09:06:32 +01:00
Alon Diament Carmel 25048623ce All: Exclude user_data from note revisions (#15245) 2026-05-04 11:19:42 +01:00
renovate[bot] 21367da256 chore(deps): update dependency nitrogen to v0.33.3 (#15256)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-03 23:30:25 +00:00
renovate[bot] 00f25718e6 fix(deps): update dependency @fortawesome/react-fontawesome to v3 (#15251)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-03 23:15:14 +01:00
renovate[bot] 08fb54f9f3 fix(deps): update dependency ldapts to v8.1.4 (#15238)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-02 22:14:28 +00:00
renovate[bot] 8d2c0a52d2 chore(deps): update dependency npm-package-json-lint to v9.1.0 (#15250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-02 23:12:35 +01:00
mrjo118 af9a4f076a All: Fix inability to cancel the sync during the deletion step (#15243) 2026-05-02 21:36:00 +01:00
renovate[bot] 8cc2e56a4a chore(deps): update node.js to v22 (#15240)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-02 21:31:00 +01:00
Joplin Bot 6aed6bf97b Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-05-02 19:10:26 +00:00
Joplin Bot 80e951dfef Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-05-02 13:23:27 +00:00
Himanshu Mishra bbcd8c83fa Desktop: Display inline error instead of smalltalk dialog for invalid master password (#15236) 2026-05-02 10:00:02 +01:00
renovate[bot] a93998ea9d fix(deps): update dependency expo to v54.0.33 (#15237)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 17:09:18 +00:00
renovate[bot] a81088c33f chore(deps): update actions/setup-python action to v6 (#15234)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 16:06:12 +01:00
renovate[bot] 2326202db7 fix(deps): update dependency ldapts to v8.1.3 (#15233)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 16:06:03 +01:00
renovate[bot] 34b0a9b2f3 chore(deps): update dependency nodejs to v24.12.0 (#15230)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 13:33:49 +01:00
renovate[bot] 7ac3710f5c chore(deps): update actions/setup-java action to v5 (#15232)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 13:33:41 +01:00
renovate[bot] b9f287904f fix(deps): update dependency ldapts to v8.1.2 (#15231)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 13:33:31 +01:00
Self Not Found d1d492622c Mobile: Add notebook sort options in config screen (#15203) 2026-05-01 11:16:28 +01:00
renovate[bot] 7637829d2d fix(deps): update dependency pg-boss to v10.4.2 (#15229)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 11:15:35 +01:00
renovate[bot] 47b8b0a16f chore(deps): update dependency python to v3.14.2 (#15228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 11:15:18 +01:00
renovate[bot] 3969b450b4 chore(deps): update dependency @types/serviceworker to v0.0.182 (#15227)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 11:15:14 +01:00
Himanshu Mishra d0f87f0c69 Desktop: Update Disable Encryption dialog (#15211) 2026-05-01 09:57:17 +01:00
mrjo118 147738ec52 Desktop, Mobile: Fixes #14506: Add the ability to delete the default profile (#15153) 2026-05-01 09:56:22 +01:00
mrjo118 ec85b1a7e6 Desktop, CLI: Fix potential unresolved promise race conditions when scheduling the sync (#15216) 2026-05-01 09:55:11 +01:00
renovate[bot] 57bd5ff14a chore(deps): update dependency @types/serviceworker to v0.0.181 (#15222)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 08:57:54 +01:00
renovate[bot] 55b2b8c49b chore(deps): update dependency @types/nodemailer to v6.4.22 (#15221)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 08:57:49 +01:00
renovate[bot] 4759ab151e chore(deps): update eslint (#15224)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 08:57:09 +01:00
Joplin Bot 074dd6ed35 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-05-01 03:34:54 +00:00
mrjo118 f16f6ea5ad Mobile: Fix log screen auto-scroll loop when toggling errors (#15219) 2026-04-30 18:50:46 +01:00
Laurent Cozic 99e3a2eaec Chore: gitignore merge temp files 2026-04-30 16:49:15 +01:00
Henry Heino 293f6661c1 Desktop: Upgrade Electron to v40.9.2 (#15192) 2026-04-30 16:38:08 +01:00
Sriram Varun Kumar 8aa8e648ca Mobile: Fixes #15120: RTE heading links scroll to bottom instead of top in Editing mode (#15128) 2026-04-30 16:31:23 +01:00
Ehtesham Zahid 570d2cc1f3 Mobile: Fix #15104: Truncate verbose decryption error payloads in Status screen (#15112) 2026-04-30 16:26:37 +01:00
Laurent Cozic 8e8a6dd656 Mobile: Load plugin scripts directly from filesystem instead of passing through bridge (#15095) 2026-04-30 16:23:55 +01:00
Laurent Cozic c1b5e0dade Web: Fix crash that happens when the app receives an unknown message (#15087) 2026-04-30 16:19:44 +01:00
Laurent Cozic 22eb606a53 Desktop, Mobile: Resolves #15081: Speed up app startup by skipping unnecessary plugin file processing (#15085) 2026-04-30 16:08:28 +01:00
Kanishka.. b9fddca475 Desktop: Resolves #12372: Add table editing commands (add/delete rows and columns) (#14519) 2026-04-30 15:59:52 +01:00
mrjo118 5fdd648954 Desktop, Mobile: Fixes #14647: Fix inconsistent note order upon note creation, when custom order is set (#14656) 2026-04-30 15:54:15 +01:00
d744db5063 Desktop: Resolves #14763: Add settings search to config screen (#14820)
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-04-30 15:52:05 +01:00
Aissa Benfodda 98b1502a4a Desktop: Fixes #13903: Avoid OOM when printing notes with large attachment links (#15026) 2026-04-30 15:51:45 +01:00
Alex Martens ae5ab0bfc1 CLI, Desktop: Add support for post-quantum cryptography (PQS) TLS (#15055) 2026-04-30 15:50:48 +01:00
Laurent Cozic bb983ff1d4 Desktop, Cli: Do not load plugin if it is disabled (#15083) 2026-04-30 15:49:27 +01:00
Henry Heino 9a69dab777 Desktop: Importing from OneNote: Import created/updated timestamps and support special characters in titles (#15213) 2026-04-30 15:46:13 +01:00
Henry Heino ef8bba3a36 Desktop: Fixes #15189: Fix Rich Text Editor fails to load in secondary windows (#15190) 2026-04-28 09:17:02 +01:00
Henry Heino 9815165e75 Desktop: Importing from OneNote: Support large attachments (#15195) 2026-04-28 09:16:50 +01:00
Henry Heino f7ee44376f Desktop: Fixes #15194: Fix positioning of nested ink containers (#15196) 2026-04-28 09:16:42 +01:00
Henry Heino 65d6ef2b97 Desktop: Importing from OneNote: Convert an ink-related import error to a warning (#15197) 2026-04-28 09:16:30 +01:00
Henry Heino 8b9fd40cbc Mobile: Fixes #15206: Rich Text Editor: Fix undo/redo keyboard shortcuts (#15207) 2026-04-28 09:14:35 +01:00
Henry Heino d4dd8944b6 Android: Fixes #15205: Fix images fail to be resized (#15208) 2026-04-28 09:13:40 +01:00
SomeMichael 0492849066 All: Translation: Update de_DE.po (#15200) 2026-04-26 14:03:46 -04:00
Joplin Bot a774c52fc0 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-04-25 13:14:26 +00:00
Joplin Bot 85044eebdd Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-04-24 19:02:54 +00:00
Laurent Cozic 3f7c6c3ccd Android 3.6.17 2026-04-24 16:22:37 +01:00
Laurent Cozic 722e22f31e Desktop release v3.6.10 2026-04-24 16:09:53 +01:00
Laurent Cozic a8e8ac215b Chore: Trying to clean up CodeRabbit comments on CI 2026-04-24 14:58:32 +01:00
Henry Heino 3b07bc24be Desktop: Importing from OneNote: Improve display of note tags after converting to Markdown (#15181) 2026-04-24 14:54:28 +01:00
Laurent Cozic 2f4f0a5bbd Server: Fix database connection pool corruption when processing orphaned items 2026-04-24 14:38:04 +01:00
Laurent Cozic e7631bc34b Server: Fix database connection pool corruption after transaction failures 2026-04-24 14:33:14 +01:00
Henry Heino 18521e0693 MacOS: Importing from OneNote: Fix imported notes are often displayed in a Serif font (#15186) 2026-04-23 22:18:02 +01:00
Henry Heino 050659e1d8 Desktop: Importing from OneNote: Fix imported bold and italic aren't converted to Markdown (#15187) 2026-04-23 20:48:07 +01:00
Laurent Cozic c9b493ed1d Chore: Trying to delete and hide useless CodeRabbit comments 2026-04-23 20:41:40 +01:00
Henry Heino b13827db75 Desktop: Importing from OneNote: Fix incorrectly positioned ink (#15178) 2026-04-23 15:39:45 +01:00
Henry Heino 73f6013b11 Desktop: Importing from OneNote: Fix text objects are displayed in a Serif font, when Calibri is unavailable (#15179) 2026-04-23 15:39:23 +01:00
renovate[bot] 82a6b4df5d fix(deps): update dependency react-native-share to v12.2.4 (#15175)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-22 20:17:48 +00:00
renovate[bot] 368ea3cbb1 chore(deps): update dependency @types/serviceworker to v0.0.179 (#15173)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-22 15:29:16 +01:00
renovate[bot] baccdbf890 fix(deps): update dependency lodash to v4.17.23 (#15174)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-22 15:29:00 +01:00
renovate[bot] 3044cb6a35 chore(deps): update dependency sass to v1.97.3 (#15172)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-22 10:49:05 +01:00
renovate[bot] 6dff2bc3ea fix(deps): update dependency expo to v54.0.32 (#15171)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-22 02:58:47 +00:00
renovate[bot] 65127a9f16 chore(deps): update dependency @types/serviceworker to v0.0.178 (#15170)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-21 22:27:39 +00:00
Nick 04ccdbfe17 All: Translation: Update sv.po (#15169) 2026-04-21 18:25:06 -04:00
Henry HeinoandslimuCS a2bcb69303 Desktop,Mobile: Resolves #14854: Apply Markdown formatting commands per-line (#15164)
Co-authored-by: slimuCS <slimuCS@users.noreply.github.com>
2026-04-21 14:18:51 +01:00
Henry Heino 8b46ac32fd Android: Fixes #14548: Accessibility: Fix tab ordering in the note viewer screen (#15166) 2026-04-21 14:18:36 +01:00
Henry Heino 0554db62b5 Mobile: Accessibility: View/edit toggle: Improve screen reader accessibility (#15167) 2026-04-21 14:18:26 +01:00
Henry Heino 02e5769a65 Mobile: Fixes #13437: Fix conflicts notebook has low contrast when selected (#15168) 2026-04-21 14:18:16 +01:00
Henry Heino 5e0829dc0d Desktop: Fixes #15132: Fix hang when importing certain OneNote files (#15159) 2026-04-20 18:44:31 +01:00
Laurent Cozic 105dd5c61b Server v3.6.1 2026-04-20 17:55:32 +01:00
Laurent Cozic 46bb145107 Doc: Update Warrant Canary 2026-04-20 15:49:46 +01:00
Laurent Cozic 4a50caa3d6 Revert "Mobile: Fixes #13134: Fix Android markdown editor text replacement (characters disappearing during typing)" (#15155) 2026-04-20 11:26:02 +01:00
Laurent Cozic 44a5a8a4bf Chore: Trying to get CI to hide useless CodeRabbit comments 2026-04-19 23:23:10 +01:00
Laurent Cozic d7f701c8db Server: Fix tasks getting permanently stuck after database errors (#15137) 2026-04-19 23:13:46 +01:00
Henry Heino b49047ed9f Chore: Coding style: Avoid ${{ }} within run blocks (#15144) 2026-04-19 11:16:17 +01:00
Laurent Cozic 0d7c17b7b3 Server: Fix savepoint not being rolled back on unique constraint errors during sync (#15140) 2026-04-19 11:15:35 +01:00
Laurent Cozic 6632f19e01 Server: Downgrade password reset log for non-existent users to info (#15139) 2026-04-19 11:15:29 +01:00
Laurent Cozic 8a1daac826 Server: Optimize orphaned items query using NOT EXISTS (#15138) 2026-04-19 11:15:21 +01:00
Laurent Cozic 7b1eefe3d8 Server: Fixed heartbeat task hanging (#15136) 2026-04-19 11:10:55 +01:00
Henry Heino 6ecb3e02e8 Desktop: Importing from OneNote: Fix PDF printouts are imported as broken images (#15124) 2026-04-19 11:08:45 +01:00
mrjo118 27ade59ab4 Mobile: Remove confirm password field when a key already exists, and prevent invalid key creation scenario (#15122) 2026-04-19 11:08:37 +01:00
Keshav e1072c73c7 Desktop: Fixes #15107: Defer sync after master password save to prevent encryption enable race (#15118) 2026-04-19 11:08:17 +01:00
Oct326andHelmut K. C. Tessarek a28f4f8137 All: Translation: Update it_IT.po (#15146)
Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
2026-04-18 18:01:06 -04:00
Laurent Cozic 538914963b Chore: Hide CodeRabbit review summaries 2026-04-18 10:05:06 +01:00
Sigma 52b1570d5b All: Translation: Update ja_JP.po (#15135) 2026-04-17 19:57:07 -04:00
Laurent Cozic 63ed88eb38 Doc: Fix typo in CLAUDE.md regarding cSpell handling 2026-04-17 21:33:20 +01:00
Laurent Cozic 1fc8790497 Chore: Trying to fix delete-coderabbit-comments workflow 2026-04-17 21:30:48 +01:00
Laurent Cozic f5694d7f84 Chore: Automatically delete useless CodeRabbit comments 2026-04-17 10:32:06 +01:00
Laurent Cozic 02d92228ec Server: Downgrade unsupported image format log to info level 2026-04-17 08:37:58 +01:00
renovate[bot] 0fe4de184d chore(deps): update dependency sass to v1.97.2 (#15131)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-17 00:05:57 +00:00
summoner 594d70fc88 ALL: Translation: Update hu_HU.po (#15125) 2026-04-16 17:15:38 -04:00
renovate[bot] 8358a2a9f2 chore(deps): update dependency sass to v1.97.0 (#15121)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-16 21:41:43 +01:00
Henry Heino 67e51bff41 Desktop: Importing from OneNote: Disable unresponsiveness warning while importing (#15127) 2026-04-16 21:35:52 +01:00
renovate[bot] 7acdb9b67e fix(deps): update dependency @react-native-community/push-notification-ios to v1.12.0 (#15126)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-16 21:06:08 +01:00
renovate[bot] e0410db26c chore(deps): update dependency @docusaurus/plugin-sitemap to v3.9.2 (#15123)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-16 15:56:34 +00:00
Henry Heino 4387c82fda Desktop: Fixes #15092: Importing from OneNote: Support importing nested ink containers (#15109) 2026-04-16 16:54:00 +01:00
Sriram Varun Kumar 7f2e78bee5 Mobile: Fixes #15071: Fix share error toast cut off on Android 15+ (#15072) 2026-04-16 12:16:53 +01:00
Dmitriy Q b9fb6cbd33 Update russian translate (#15080) 2026-04-16 12:15:53 +01:00
renovate[bot] 953d8fc050 chore(deps): update dependency @docusaurus/plugin-sitemap to v3 (#15096)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-16 12:15:10 +01:00
Laurent Cozic 26160b7924 Desktop: Fix copy/paste not working in Settings text fields (#15099) 2026-04-16 12:04:09 +01:00
Henry Heino 738a83c57c Mobile: Fixes #14975: Fix E2EE password validation: Upgrade react-native-quick-crypto to v1.0.19 (#15103) 2026-04-16 12:03:31 +01:00
Henry Heino b5abc12486 Desktop: Importing from OneNote: Fix incorrect import of vertically-scaled ink (#15110) 2026-04-16 12:02:12 +01:00
Henry Heino 9a1b978288 Chore: Desktop: Importing from OneNote: Fix character escaping when building output (#15114) 2026-04-16 11:53:59 +01:00
Laurent Cozic 270a2d0a3a Desktop: Resolves #14788: Add sync status icon and collapsible sync report to sidebar (#15115) 2026-04-16 11:53:44 +01:00
Henry Heino 4b9918a770 Desktop: Importing from OneNote: Fix large .one files with many attachments fail to import (#15117) 2026-04-16 11:53:35 +01:00
Sriram Varun Kumar 400dc70f32 Mobile: Fixes #15116: Fix markdown editor not scrolling to search results (#15119) 2026-04-16 11:52:55 +01:00
Laurent Cozic babea9f388 Desktop: Fixes #15100: Fix pasting images from clipboard when no image/* format is reported (#15101) 2026-04-16 11:42:25 +01:00
Laurent Cozic 3279ea227a Chore: Trying to make CodeRabbit less noisy 2026-04-15 21:39:05 +01:00
mrjo118 cbdb3f124a Mobile: Remove unnecessary padding at bottom of note in view mode (#15108) 2026-04-15 10:46:59 +01:00
Joplin Bot 94560fb340 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-04-14 19:26:05 +00:00
Laurent Cozic 1f0519722f Android 3.6.16 2026-04-14 17:01:31 +01:00
Laurent Cozic 1548d7008f Doc: Tell Claude what commands to use to compile TypeScript files 2026-04-14 16:08:15 +01:00
Laurent Cozic d406e27f28 Doc: Update Claude instructions for spell checking 2026-04-14 13:07:03 +01:00
Laurent Cozic e3a55ad1c6 Chore: Handle new Renovate commit message format in git-changelog 2026-04-14 13:06:40 +01:00
Laurent Cozic be1a018746 Desktop release v3.6.9 2026-04-14 13:00:42 +01:00
Laurent Cozic ae390469b5 Lock file 2026-04-14 12:57:10 +01:00
Laurent Cozic c31a7392cc Chore: Add android-log command to package.json 2026-04-14 12:56:50 +01:00
Henry Heino 9ca213cefd Desktop: Fixes #15029: Accessibility: Fix focus unexpectedly jumps to the note list while editing/navigating (#15090) 2026-04-14 11:12:12 +01:00
Henry Heino a6a5ab9bc9 Desktop: Markdown editor: Fix unselected <span>s are hidden in HTML notes (#15089) 2026-04-14 11:12:01 +01:00
Henry Heino 0a94d02795 Chore: Importing from OneNote: Add debug tool for inspecting .one files (#15084) 2026-04-14 11:07:46 +01:00
Sriram Varun Kumar 222bb002c8 Mobile: Fixes #15061: Fix profile list not scrollable to last item on Manage Profiles screen (#15074) 2026-04-14 10:53:27 +01:00
Sriram Varun Kumar af8eb30844 Mobile: Fixes #15060: Fix shared note not persisted to active notebook (#15064) 2026-04-14 10:51:34 +01:00
Ashutosh SinghandAshutoshx7 cb009cb084 Desktop: Fixes #11805: Add global shortcut to show/hide Joplin (#15013)
Co-authored-by: Ashutoshx7 <ashutoshx7@gmail.com>
2026-04-14 10:03:01 +01:00
Laurent Cozic fc212d0144 Add note on running yarn updateIgnored for TypeScript
Added a note about running 'yarn updateIgnored' after adding a new TypeScript file.
2026-04-13 18:38:14 +01:00
renovate[bot] 1bbd60318a fix(deps): update dependency prosemirror-gapcursor to v1.4.0 (#15069)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-13 15:56:00 +01:00
renovate[bot] 489b77af56 chore(deps): update dependency webpack-dev-server to v5.2.3 (#15078)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-13 06:11:14 +00:00
renovate[bot] ff24ad7c9f chore(deps): update dependency @types/serviceworker to v0.0.176 (#15077)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-13 01:15:08 +00:00
Laurent Cozic 0021339f36 Desktop: Fixes #14208: OCR not working with Chinese and Norwegian language (#15076) 2026-04-12 16:08:05 +01:00
renovate[bot] f545726339 chore(deps): update dependency @types/serviceworker to v0.0.175 (#15067)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-11 13:12:06 +01:00
renovate[bot] 825a5d4bc0 chore(deps): update dependency sass to v1.96.0 (#15068)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-11 13:11:53 +01:00
racehd 1a1f3cdd03 Doc: Note nginx webdav ext module requirement (#15050) 2026-04-11 11:38:43 +01:00
renovate[bot] 0d1b2aaa8b chore(deps): update contributor-assistant/github-action action to v2.6.1 (#15053)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-11 11:36:46 +01:00
renovate[bot] 171b979bc4 chore(deps): update dependency xcodeproj to '< 1.27.1' (#15054)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-11 11:36:14 +01:00
Ashutosh Singh e19856a6d0 Desktop: Fixes #14852: Text copied from note viewer and pasted in an external rich text editor duplicates the codeblocks (#14860) 2026-04-11 11:21:46 +01:00
renovate[bot] 9a180fcd50 chore(deps): update dependency @types/react-redux to v7.1.34 (#15051)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-09 01:54:07 +00:00
Henry Heino 0473dd3116 MacOS: Fixes #15023: Fix undo/redo in plugins and the note titlebar (#15042) 2026-04-08 14:49:38 +01:00
Laurent Cozic cbf443de34 Desktop: Fix pasting in YesYouKan while Markdown editor is hidden (#15037) 2026-04-08 14:47:00 +01:00
Henry Heino 9a28c65baf Desktop: Resolves #14968: Fix freeze/crash when rapidly closing secondary windows (#15035) 2026-04-08 14:46:11 +01:00
Sriram Varun Kumar 623da377db Mobile: Fixes #15004: Fix back button disabled after navigating away from a deleted notebook (#15028) 2026-04-08 14:45:56 +01:00
Vishal PatelandClaude Sonnet 4.6 de6378473f Mobile: Add 'Go to start/end of note' toolbar buttons (#15015)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 14:41:00 +01:00
Sriram Varun Kumar 886a8cc1a1 Mobile: Fixes #13134: Fix Android markdown editor text replacement (characters disappearing during typing) (#15007) 2026-04-08 14:37:58 +01:00
Manvendra Kumar Singh 000d321f56 Desktop: Fixes #14946: Auto-generated note title retains inline markdown due to incomplete filtering (#14947) 2026-04-08 14:30:54 +01:00
Dipanshu Rawat f1e4545813 Desktop: Fixes #14788: Prevent sync panel from jumping (v2 with startup fix) (#14881) 2026-04-08 14:28:29 +01:00
Victor Gherardi e794176171 Mobile: Fixes #14804: Migrate expo-av to expo-audio (#14847) 2026-04-08 14:21:47 +01:00
renovate[bot] 04d0626ede Update dependency sass to v1.95.1 (#15047)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-08 09:26:16 +00:00
renovate[bot] 4421bf8bde Update dependency sass to v1.95.0 (#15044)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-08 08:57:41 +01:00
renovate[bot] f0eb41fe6c Update dependency @types/serviceworker to v0.0.173 (#15046)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-08 08:57:31 +01:00
Joplin Bot 9e997503a1 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-04-07 13:30:00 +00:00
renovate[bot] 3a6b4b12e7 Update dependency react-native-share to v12.2.2 (#15039)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-07 04:40:17 +00:00
Laurent Cozic f0a7f55366 Desktop release v3.6.8 2026-04-06 22:55:35 +01:00
Joplin Bot cb2756160b Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-04-05 18:53:39 +00:00
Laurent Cozic 379a53eca5 Revert "Desktop: Fixes #14613: Fix JPEG image paste from clipboard on Linux (#14750)"
This reverts commit 05fc3e9104.

Ref: https://github.com/laurent22/joplin/issues/15022#issuecomment-4189250496
2026-04-05 18:48:56 +01:00
renovate[bot] 548d1a49ba Update dependency @types/uuid to v11 (#15018)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-05 18:46:19 +01:00
Laurent Cozic 7e08d0c77d iOS 13.6.4 2026-04-05 18:44:40 +01:00
Laurent Cozic cb3878afa6 Android 3.6.15 2026-04-05 16:20:59 +01:00
Laurent Cozic af0cab64cf Desktop release v3.6.7 2026-04-05 13:49:51 +01:00
Aissa Benfodda 671a7c9acf Server: Fixes #583: Redirect to correct share when following links between independently published notes (#14963) 2026-04-05 13:44:50 +01:00
Sriram Varun Kumar a8a6fe2520 Mobile: Fixes #14984: Fix encrypted notes not decrypting after updating master password (#14996) 2026-04-05 13:44:18 +01:00
Zain Ul Abedin c5bcb170e9 Mobile: Fixes #14771: Prevent Note Tags dialog from closing before discard confirmation on web (#14998) 2026-04-05 13:43:49 +01:00
Sriram Varun Kumar b6ce57aad5 Chore: Mobile: Fixes #14974: Settings > Editor > Editor font has no effect on the Rich Text Editor (#15014) 2026-04-05 13:37:14 +01:00
renovate[bot] d26c2cc96f Update dependency esbuild to v0.27.2 (#15011)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-05 13:34:47 +01:00
Harsh Gupta c9cebd6016 Desktop: Fixes #12910: Fixed Custom Dictionary.txt being saved to wrong directory (#14749) 2026-04-05 13:16:30 +01:00
renovate[bot] b90458f387 Update dependency esbuild to v0.27.1 (#15009)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-04 18:15:55 +01:00
renovate[bot] 1a2d045ed2 Update dependency @crowdin/cli to v4.12.0 (#14985)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-04 16:44:25 +01:00
renovate[bot] 719d5ce4bb Update dependency nan to v2.24.0 (#14986)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-04 16:44:20 +01:00
Henry Heino 76f0f1494e Chore: Development: Fix VSCode 1.114.0 shows a large number of tsc errors (#14989) 2026-04-04 16:44:12 +01:00
Harsh Gupta e4f916bea5 Desktop: Fixes #14990: Fix inline formatting with trailing/leading whitespace (#14991) 2026-04-04 16:43:57 +01:00
Sriram Varun Kumar cf9098e6a3 Mobile: Fixes #14974: Fix editor font setting being ignored in the Rich Text Editor (#14995) 2026-04-04 16:38:21 +01:00
18ffdb2f50 Mobile: Add toolbar button reordering with up/down arrows (#14485)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Happy <yesreply@happy.engineering>
2026-04-04 16:23:30 +01:00
Himanshu Mishra acd2ef4edf Desktop: Replace smalltalk with React Dialog to add password visibility in encryption setup (#14739) 2026-04-02 16:43:52 +01:00
Aissa Benfodda 9d91d4f85c Desktop: Fixes #12994: Share owner sees "Leave notebook" instead of "Share notebook" when server is offline (#14923) 2026-04-02 16:34:48 +01:00
Devrajsinh Gohil 635af9748a macOS: Resolves #9637: Added fullscreen shortcut (Ctrl + Cmd + F) (#14926) 2026-04-02 16:34:20 +01:00
Harsh Gupta 612e5a08f3 Desktop: Fixes #14950: Inline computed styles when copying from the Markdown preview pane (#14973) 2026-04-02 16:29:13 +01:00
Henry Heino d3477f8626 Desktop: Importing from OneNote: Fix import of ink with negative bounding box coordinates (#14981) 2026-04-02 16:22:49 +01:00
Zain Ul Abedin 9e836a8984 Mobile: Fixes #14771: Show confirmation dialog before closing tags dialog with unsaved changes (#14777) 2026-04-02 16:08:26 +01:00
Laurent Cozic 3f14ffdf73 lock file 2026-04-02 14:42:35 +01:00
Joplin Bot fd9f6c11ab Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-04-01 02:47:55 +00:00
FischLu 0cc79724c3 Desktop: Enable Copy and Select All in viewer and read-only modes (#14956) 2026-03-31 19:30:44 +01:00
mrjo118 e6fddd054a Desktop: Fixes #14628: Fix incorrectly re-instated code (#14962) 2026-03-31 15:58:12 +01:00
Henry Heino 860b22b0e7 Desktop,Cli: Fixes #14954: Fix changes made in an external editor are sometimes ignored (#14957) 2026-03-31 15:57:52 +01:00
Fardin96 281b0ed124 Mobile: Fixes #11122: Tag's note list fails to update after removing the tag from a note (#14944) 2026-03-31 15:47:27 +01:00
krevad 5dc5cb62db All: Translation: Update sv.po (#14943) 2026-03-31 15:45:46 +01:00
renovate[bot]andLaurent Cozic 28bb43b3b5 Update dependency @playwright/test to v1.57.0 (#14902)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-03-31 15:33:32 +01:00
Dipanshu Rawat c8bfcb16be Desktop: Fixes #14890: Disable "Expand all notebooks" button when no sub-notebooks exist (#14891) 2026-03-31 15:24:36 +01:00
Alex 634956bcc6 Desktop: Fixes #9436: Fix Markdown export losing folders that differ only by special characters (#14869) 2026-03-31 15:13:22 +01:00
Henry Heino 346ab98133 Desktop: Upgrade Electron to v40.8.3 (#14882) 2026-03-31 15:11:15 +01:00
Henry Heino 55008c9de9 Chore: Mobile: Add /pluginAssets to .gitignore (#14961) 2026-03-31 11:30:42 +01:00
mrjo118 f4ba70c49c Desktop: Fixes #14628: Fix renderer crashes still occuring due to incorrect merge (#14953) 2026-03-30 13:06:52 +01:00
renovate[bot] e61379ed59 Update dependency git to v2.51.2 (#14951)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-29 20:28:09 +01:00
Sandesh Prakash Dawkhar 75cd9b4cb7 Desktop: Fixes #14919: Prevent Plugin API callback registry memory leak (#14920) 2026-03-29 20:21:30 +01:00
Kaushalendra Singh 43120d2b3e Desktop: Fixes #14628: prevent renderer crash when closing secondary window (#14849) 2026-03-29 11:40:30 +01:00
jellyfrostt 5656731dca Chore: Mobile: Fixes #14834: Fix JSDOM scrollIntoView error in tests (#14870) 2026-03-29 11:39:22 +01:00
Laurent Cozic 4cfe54161d Chore: Add appClose logger statements to desktop app (#14927) 2026-03-29 11:38:05 +01:00
renovate[bot] 7f2a95f66e Update dependency ldapts to v8.0.36 (#14938)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-29 05:53:44 +00:00
renovate[bot] 75819f3be3 Update dependency react-native-localize to v3.6.1 (#14932)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-28 14:30:05 +00:00
Manvendra Kumar Singh e709921310 Chore: Fixes #14878: Prevent focusing undefined titleInputRef in dialog (#14879) 2026-03-27 12:25:28 +00:00
renovate[bot] b19d47ca4a Update dependency python to v3.14.0 (#14884)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 12:22:53 +00:00
Henry Heino 516981b80c Desktop: Fixes #14628: Fix crash when closing secondary windows (#14892) 2026-03-27 12:21:13 +00:00
Laurent Cozic a90d162989 Server: Move deletion of objects outside of transaction block (#14898) 2026-03-27 12:18:40 +00:00
Henry Heino 6cf9f1cc11 Windows: Fixes #14903: Fix most Windows-specific test failures (#14904) 2026-03-27 12:17:12 +00:00
Henry Heino ee7362564c Chore: CI: Fix test warnings (#14907) 2026-03-27 12:13:25 +00:00
Muhammad Zohaib Irshad cdf5367934 Clipper: Make the styling of dialogues consistent (#14908) 2026-03-27 12:13:18 +00:00
Henry Heino 7a76c31c26 Chore: Server: Fix incorrect error message (#14915) 2026-03-27 12:10:56 +00:00
Sandesh Prakash Dawkhar 004ab78a7a Desktop: Fixes #14914: RTE checklists should create unchecked items on Enter (#14918) 2026-03-27 12:10:27 +00:00
Ashutosh Singh a7067c30c4 Desktop: Fixes #9673: Frontmatter export: Include notebook icon in frontmatter export (#14582) 2026-03-27 11:47:41 +00:00
renovate[bot] be081316b3 Update dependency @types/serviceworker to v0.0.172 (#14901)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-25 15:05:36 +00:00
renovate[bot] c9fb33cb20 Update dependency ldapts to v8.0.35 (#14894)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-25 13:47:05 +00:00
renovate[bot] dfdc0f3c35 Update dependency ldapts to v8.0.33 (#14887)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-24 12:42:21 +00:00
Laurent Cozic 0fa3a509d6 Mobile, Desktop: Revert: Start sync when app opens or resumes (#14889) 2026-03-24 12:39:45 +00:00
renovate[bot] 18cf0a95ad Update dependency @types/serviceworker to v0.0.171 (#14885)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-24 09:05:36 +00:00
Laurent Cozic 7d454123f9 CI: Revert cancel-in-progress change as it does not do anything 2026-03-23 20:39:37 +00:00
renovate[bot] e4fb72cd08 Update dependency ldapts to v8.0.32 (#14876)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-23 20:28:25 +00:00
Laurent Cozic 741e1b19e5 Revert "Desktop Fix: #14788 prevent sync panel from jumping during sync" (#14875) 2026-03-23 15:51:59 +00:00
dipok 6637c05cc8 CLI: Add clear command to clear console output (#14844) 2026-03-23 12:37:18 +00:00
Yousef Genedy 5877670e33 Mobile: Resolves #14789: Implement note attachments management screen (#14818) 2026-03-23 12:33:19 +00:00
Dipanshu Rawat 2320beec39 Desktop Fixes #14788: Prevent sync panel from jumping during sync (#14792) 2026-03-23 12:26:14 +00:00
Ehtesham Zahid a0effc9ff8 Desktop: Resolves #14778: Improve checkbox completion icon in detailed note list (#14780) 2026-03-23 12:12:34 +00:00
Henry Heino 92cd5630f7 Chore: OneNote importer: Fix linter errors and standardize formatting (#14858) 2026-03-23 09:19:18 +00:00
Laurent Cozic 9fbca68062 Chore: Removed some "any" variables (#14825) 2026-03-22 23:14:16 +00:00
Jose Riha 953fb20006 All: Translation: Update sk_SK.po (#14867) 2026-03-22 14:25:27 -04:00
renovate[bot] fb18be14a1 Update dependency ldapts to v8.0.31 (#14866)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-22 14:02:33 +00:00
Eric Duarteandcoderabbitai[bot] 75c4dbc9df All: Translation: Update es_ES.po (#14862)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-03-21 18:15:22 -04:00
renovate[bot]andLaurent Cozic 1f5b4269ab Update dependency pg-boss to v10.4.0 (#14837)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-03-21 12:21:29 +00:00
Henry Heino 9c23574977 Chore: Server: Remove auto-generated explicit any in types.ts (#14855) 2026-03-21 12:17:43 +00:00
Henry Heino fe5ff98429 Chore: Editor: Strengthen compatibility layer event types (#14856) 2026-03-21 12:17:30 +00:00
Henry Heino b721b3ac77 Chore: OneNote importer: Remove unused callback (#14859) 2026-03-21 12:17:06 +00:00
Rohit 638485376c All: Fixes #14540: Prevent duplicate tags caused by Unicode normalization (#14599) 2026-03-21 12:14:37 +00:00
Victor Gherardi 575f4235c3 iOS: Fixes #12968: Fix mobile app unable to attach file with special characters in the name (#14736) 2026-03-21 12:05:55 +00:00
renovate[bot] 8184d3ef37 Update Slashgear/action-check-pr-title action to v5 (#14857)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-20 22:58:59 +00:00
renovate[bot] 1262a5a1ff Update dependency ldapts to v8.0.30 (#14853)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-20 21:19:49 +00:00
moaaz 05fc3e9104 Desktop: Fixes #14613: Fix JPEG image paste from clipboard on Linux (#14750) 2026-03-20 20:02:06 +00:00
Laurent Cozic 064e72c43a Revert "Desktop: Resolves #7914: Add support for Ctrl/Cmd+Wheel to zoom in and out (#14684)"
This reverts commit 21d12a2b46.

Due to: https://github.com/laurent22/joplin/pull/14817
2026-03-20 10:20:10 +00:00
mrjo118 088d8eb159 Mobile: Disable auto correct, auto complete and auto capitalize for setting search field (#14810) 2026-03-20 10:18:42 +00:00
renovate[bot] 333bc5d123 Update dependency ldapts to v8.0.29 (#14842)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-20 10:17:47 +00:00
Henry Heino 93f4c97433 Chore: Desktop: Fix warning during build: Migrate away from the deprecated Sass API (#14803) 2026-03-20 10:17:23 +00:00
Henry Heino eeeb7d6ba1 Desktop: Accessibility: Fix accessibility issues flagged by automated tools in the note properties dialog (#14798) 2026-03-20 10:16:04 +00:00
renovate[bot] bda1dc2aa8 Update dependency @types/serviceworker to v0.0.170 (#14838)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-20 08:45:24 +00:00
Victor Gherardi 4073596373 Chore: Fixes #14832: CI: Update handleAnchorClick tests to use dispatchEvent for click simulation (#14833) 2026-03-20 00:46:43 +00:00
Henry Heino c16eb16af4 Chore: Desktop: Re-enable settings screen accessibility tests (#14793) 2026-03-19 07:20:02 -07:00
renovate[bot] 0c0d7713df Update dependency ldapts to v8.0.28 (#14829)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-19 08:20:01 +00:00
renovate[bot] 5161d18d19 Update dependency fs-extra to v11.3.3 (#14819)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-18 21:05:09 +00:00
renovate[bot] 2dcb5374fa Update dependency ldapts to v8.0.27 (#14814)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-18 11:37:22 +00:00
Vinayreddy765andLaurent Cozic 4c103173ba Desktop: Resolves #14717: Improve clarity of master password warning message (#14724)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-03-18 10:03:42 +00:00
Moaz Hashem 6d919376dc Desktop: Resolves #14797: Completed date/time is shown as a number (#14808) 2026-03-18 09:55:44 +00:00
Harsh Gupta 08dac7f60b Desktop: Fixes #14245: Incomplete (out of screen) ABC Sheet Music rendering (#14767) 2026-03-18 09:55:33 +00:00
Kaushalendra Singh 087e271f61 Desktop: Fixes #14223: Fix OneNote zip import path when .one files are at root level (#14605) 2026-03-18 09:54:50 +00:00
renovate[bot] 7713bbf65d Update dependency @types/serviceworker to v0.0.169 (#14813)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-18 08:43:54 +00:00
Laurent Cozic ea4efa6a16 Revert "Resolves #12208 Joplin Desktop UI overlap in top left corner on small screens (#14667)"
This reverts commit 745a68f26b.

Due to: https://github.com/laurent22/joplin/issues/14801
2026-03-17 20:50:00 +00:00
renovate[bot] c6dc7aa05c Update dependency glob to v11.1.0 (#14799)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-17 19:41:51 +00:00
Henry HeinoandLaurent Cozic 0e6cafbe9f Server: Fix share processing task failure (#14795)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-03-17 17:53:05 +00:00
Joplin Bot 559559c2d1 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-03-17 13:25:32 +00:00
Laurent Cozic 3223d9c6f9 Desktop release v3.6.6 2026-03-17 09:06:13 +00:00
renovate[bot] 991cbc4dc0 Update dependency nodejs to v24.11.1 (#14783)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-17 03:38:46 +00:00
Joplin Bot af0318293c Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-03-17 02:17:20 +00:00
Laurent Cozic 6033f9c6e6 iOS 13.6.3 2026-03-16 22:30:03 +00:00
Laurent Cozic f400f3839d Android 3.6.14 2026-03-16 22:17:00 +00:00
Laurent Cozic c7736f9e80 Desktop release v3.6.5 2026-03-16 22:05:59 +00:00
mrjo118 5abd5803fb Mobile: Fixes #14722: Fix incorrect sizing of the tag association screen when opening and dismissing the onscreen keyboard (#14772) 2026-03-16 21:34:40 +00:00
Kareem Abu Al Enein 615677cf18 Mobile: Fixes #13957: Fixed log screen auto-scroll loop during search (#14757) 2026-03-16 21:33:42 +00:00
Ashutosh Singh 21d12a2b46 Desktop: Resolves #7914: Add support for Ctrl/Cmd+Wheel to zoom in and out (#14684) 2026-03-16 21:25:28 +00:00
Anuradha Verma 11c17d43eb Desktop: Fix note list losing focus after moving note to trash (#14650) 2026-03-16 21:23:40 +00:00
Laurent Cozic 120cdaabac Chore: Upgrade gettext-extractor to fix broken CI
The package was printing thousands of debugging statement due to the developer forgetting console.error statements in his lib
2026-03-16 21:08:15 +00:00
Keshav 3a9fbc7e67 Mobile: Fixes #14727: Fix OneDrive auth code double-encoding on mobile (#14776) 2026-03-16 20:51:16 +00:00
madhan112007 c9aaaa952e Mobile: Fixes #14286: Fix openFolder x-callback-url link on Android (#14765) 2026-03-16 20:50:39 +00:00
Keshav d97121a63a Mobile: Fixes #14685: Restrict sidebar gestures to notebook list (#14733) 2026-03-16 20:50:11 +00:00
Moaz Hashemandcoderabbitai[bot] 4bd98f4819 Desktop: Resolves #14621: Application crashes when deleting a notebook (#14651)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-03-16 20:49:41 +00:00
Henry Heino 426500437d All: Sync: Fix notebook sharing can fail due to incorrect read-only share state (#14770) 2026-03-16 20:48:07 +00:00
Avanish Gupta c9dace8b4d Desktop: Make encryption-related strings translatable (#14752) 2026-03-16 12:10:44 +00:00
mrjo118 f9654a3438 Mobile: Disable auto correct, auto complete and auto capitalize for search fields (#14759) 2026-03-16 11:22:27 +00:00
renovate[bot] 7d888a50af Update dependency ldapts to v8.0.25 (#14762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-16 08:36:22 +00:00
renovate[bot] 65eb5e3afe Update dependency nodejs to v24.11.0 (#14744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-15 09:49:05 +00:00
renovate[bot] 7a9dc4a607 Update dependency ldapts to v8.0.24 (#14743)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-15 08:50:00 +00:00
Surendra Manjhi d20cc87756 Chore: Regression: Skip base64 conversion for svg images (#14721)
Ref: https://github.com/laurent22/joplin/pull/14632
2026-03-14 12:50:02 +00:00
Justin Charles 6d310f6b27 Desktop: Fixes #14658: Always require password confirmation when changing master password after encryption (#14692)
Signed-off-by: justin212407 <charlesjustin2124@gmail.com>
2026-03-14 12:45:51 +00:00
Ehtesham Zahid d2b273bfb0 Desktop: Fixes #14687: Prevent TypeError in handleAppFailure when window is destroyed (#14689) 2026-03-14 12:44:10 +00:00
Ash092016 1ff71a64e1 All: Fixes #14419: Added validation for Joplin Server URL protocol (#14612) 2026-03-14 12:38:00 +00:00
renovate[bot] e442544070 Update dependency ldapts to v8.0.23 (#14731)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-14 11:09:58 +00:00
renovate[bot] ba93bcc06d Update dependency ldapts to v8.0.22 (#14729)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-14 09:55:31 +00:00
ChimzyFire 2d545158d0 Desktop: Fixes #10795: Add WCAG 2.2 accessibility labels to Mermaid chart button (#14617) 2026-03-14 01:14:23 +00:00
renovate[bot] 364ea03e5d Update dependency prosemirror-history to v1.5.0 (#14725)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-13 10:36:23 +00:00
renovate[bot] 082aa70a48 Update dependency ldapts to v8.0.21 (#14723)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-13 08:45:59 +00:00
renovate[bot] e9fe4036b1 Update dependency react-native-svg to v15.15.1 (#14718)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-12 22:33:54 +00:00
renovate[bot] 5ab02cfe52 Update dependency sass to v1.94.3 (#14720)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-12 22:33:45 +00:00
Ashutosh Singh ce8d9a1cdf Desktop: Resolves #14659: Reuse master password dialog when enabling E2EE (#14664) 2026-03-12 18:58:16 +00:00
Jalina Hirushan 745a68f26b Resolves #12208 Joplin Desktop UI overlap in top left corner on small screens (#14667) 2026-03-12 18:51:53 +00:00
bwat47 667ff1797d Desktop: Fixes #13107: html to markdown conversion sometimes converting links to plaintext with <ins> tags (#14683) 2026-03-12 18:47:49 +00:00
renovate[bot] e5274c5cff Update dependency sass to v1.94.0 (#14690)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-12 18:41:09 +00:00
Dev Gupta 03c3d6ae4a Desktop: Fixes #14660: Text inputs are disabled after re-encrypt notes dialog journey (#14691) 2026-03-12 18:40:55 +00:00
Aayushi Rajesh 9a3673a38f Doc: Fixes #14645: Fix for navigation order mentioned (#14715) 2026-03-12 18:36:02 +00:00
renovate[bot] 99124e4feb Update dependency react-native-svg to v15.15.0 (#14716)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-12 18:35:33 +00:00
Laurent Cozic cf51782f4f Desktop: Fixes #14637: cut/copy context menu options don't appear when right clicking joplin resource links in markdown editor (#14711) 2026-03-12 18:35:17 +00:00
Ashutosh Singh 8bde0bf0ec Desktop: Fixes #14079: Improve updater error message on rate limit (#14549) 2026-03-12 18:25:18 +00:00
Kanishka.. e8372c76aa Desktop: Resolves #8611: Add toggle button to hide/show sync panel (#14593) 2026-03-12 18:16:52 +00:00
Ash092016 e1dc36c0a5 Mobile: Resolves #14603: Password and confirm password fields when enabling encryption auto capitalise first character (#14611) 2026-03-12 18:13:06 +00:00
Henry Heino 8d168dc330 Server: Fix delta API can return changes in wrong order (#14713) 2026-03-12 12:22:26 +00:00
renovate[bot] 321afbe110 Update dependency ldapts to v8.0.20 (#14693)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-12 10:24:18 +00:00
Henry Heino 2e3daad78e Desktop: Fixes #14663: Fix crash when rapidly closing secondary windows (#14702) 2026-03-12 01:18:56 +00:00
Laurent Cozic 2132c2cdf4 Revert "Desktop: Fix context menu missing cut/copy when selecting resource links in markdown editor" (#14710) 2026-03-11 21:19:55 +00:00
Sergio 67aff20e39 Desktop: Fixes #14676: Toggling checkboxes in the note history viewer opens an open with prompt on Windows (#14679) 2026-03-11 16:19:46 +00:00
Gnana Pragadeesh K 3719e1eee0 Mobile: Fixes #14152: Fix font-size inconsistency of code block and inline code (#14463) 2026-03-11 16:19:08 +00:00
Laurent Cozic 4abe83fdb6 Doc: Fix broken language selector on website 2026-03-10 18:49:04 +00:00
Laurent Cozic 6ba912e5aa Chore: Fixed website localisation issue 2026-03-10 15:32:29 +00:00
Surendra Manjhi 8533083730 Desktop: Fixes #14627: use resourceUrl() for base64 images in pasteAsMarkdown (#14632) 2026-03-10 12:38:00 +00:00
Yugal Kaushik 754ff28b36 Desktop: Fixes #101111: ENEX import no longer breaks bullet items with a line break into separate paragraphs (#14642) 2026-03-10 12:36:48 +00:00
Ahmed Idani b663c64def All: Fixes #14412: Skip share consistency check when not using Joplin Server/Cloud (#14649) 2026-03-10 12:35:55 +00:00
Laurent Cozic 998b26d9a4 Doc: Update CLAUDE.md to specify whitespace rules
Clarified guidelines on whitespace changes in code.
2026-03-10 12:31:00 +00:00
Veivel P b097cf9a6a Desktop: Resolves #14143: Fixed scrolling behaviour in long lines for TinyMCE and CodeMirror (#14669) 2026-03-10 12:26:03 +00:00
Vinayreddy765andLaurent Cozic e22c367566 Desktop: Fixes #14637: Fix context menu missing cut/copy when selecting resource links in markdown editor (#14638)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-03-10 12:20:40 +00:00
Justin Charles 71a2e98155 Desktop: Fixes #14661: hide new note/todo buttons when no notebook exists (#14674)
Signed-off-by: justin212407 <charlesjustin2124@gmail.com>
2026-03-10 12:15:34 +00:00
Davideb18 714bbd6d23 Desktop: Fixes #11823: Fixed cancel behavior labels when switching config screens (#14677) 2026-03-10 12:14:04 +00:00
Akshaj Rawat eda03333a6 Desktop: Fixes #12394: Fix search bar remaining empty when navigating back (#14488) 2026-03-10 12:01:16 +00:00
divyanshkhurana06 93f17a87fa Desktop: Fixes #14142: Fix search highlights breaking mermaid diagram rendering (#14516) 2026-03-10 11:57:15 +00:00
Dipanshu RawatandLaurent Cozic c765306e6f Chore: ArrayUtils optimize unique and removeElement functions, improve type handling (#14552)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-03-10 11:38:28 +00:00
Justin Charles f05fe5754d Desktop: Fixes #14542: Fix Prevent unclosed frontmatter from breaking Markdown rendering (#14563)
Signed-off-by: justin212407 <charlesjustin2124@gmail.com>
2026-03-10 11:31:38 +00:00
Keshav d046bfa14b Desktop: Resolves #10562: Preserve table customization made on RTE (#14572) 2026-03-10 11:29:59 +00:00
Yousef Genedy 2a681008dd Mobile, Desktop: Resolves #9481: Start sync when app opens or resumes (#14574) 2026-03-10 11:27:46 +00:00
Ashutosh Singh 7214823c74 Chore: Resolves #12037: Remove JSDOM from Turndown package (#14653) 2026-03-09 14:09:08 +00:00
renovate[bot] ed5b92a91e Update dependency ldapts to v8.0.18 (#14655)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-09 10:27:43 +00:00
Aayushi Rajesh 2c8a9eee61 Doc: Add Plugins link to website navigation (#14645) 2026-03-09 09:10:33 +00:00
renovate[bot] 6451305c89 Update dependency esbuild to v0.26.0 (#14654)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-09 09:05:27 +00:00
Henry Heino 5fd0dc23da Desktop: Fixes #14584: Fix changes to editor settings not applied until editor reloads (#14586) 2026-03-08 21:11:54 +00:00
renovate[bot] fd3b133b16 Update dependency dompurify to v3.3.1 (#14648)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-08 17:12:46 +00:00
renovate[bot] 118bc3edf1 Update dependency git to v2.51.0 (#14646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-08 14:39:59 +00:00
renovate[bot] d90836bc50 Update dependency ldapts to v8.0.17 (#14641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-08 13:45:27 +00:00
Dipanshu RawatandLaurent Cozic 9a477dbeb9 Chore: Fix typo for enum for Right value (#14575)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-03-08 12:01:31 +00:00
Justin Charles 5271081b3a Docs: Add plugin website link in README (#14626)
Signed-off-by: justin212407 <charlesjustin2124@gmail.com>
2026-03-08 11:58:25 +00:00
bwat47 b26370fc5a Desktop, Mobile: Fixes #14630: underline disappearing from ++insert++ syntax when cursor is on that line (#14631) 2026-03-08 11:57:51 +00:00
Laurent Cozic 737c7dcdb4 CI: Do not cancel CI execution on dev branch 2026-03-08 11:17:08 +00:00
Joplin Bot 04babe0261 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-03-07 18:44:23 +00:00
Laurent Cozic 85e5bbd246 Desktop release v3.6.4 2026-03-07 16:17:05 +00:00
bwat47 f819e1c88b Desktop, Mobile: Fixes #14564: Implement cursor-aware markup rendering and hide bulletpoints on task lists (#14573) 2026-03-07 16:15:48 +00:00
Ashutosh Singh 79c153c498 Desktop, Mobile: Fixes #12793: Prevent a failing plugin from blocking other plugins (#14577) 2026-03-07 16:14:05 +00:00
Harsh Gupta 1db9903926 Desktop: Fixes #12355: Auto-scroll to selected note from 'Go to Anything' search results (#14591) 2026-03-07 16:12:31 +00:00
Surendra Manjhi e736e05d1c Desktop: Fixes #13140: Normalize img alt line breaks and convert data: URLs when pasting from Word (#14518) 2026-03-07 15:44:35 +00:00
Surendra Manjhi 5ef10676d8 Desktop: Fixes #14525: Show only relevant options in context menu when right-clicking a note link (#14528) 2026-03-07 15:42:55 +00:00
yentropysackandLaurent Cozic b38613ca22 Mobile: Fixes #9938: Fix in-page links don't work if clicked in succession (#14538)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-03-07 15:42:08 +00:00
Justin CharlesandLaurent Cozic ea486fbe13 All: Fixes #14543: Fix ++insert++ syntax rendering fix in markdown (#14547)
Signed-off-by: justin212407 <charlesjustin2124@gmail.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-03-07 15:39:53 +00:00
Laurent Cozic d2784aff54 Plugins: Add support for joplin.fs.archiveExtract plugin method (#14625) 2026-03-07 15:33:27 +00:00
renovate[bot] 7308d9541e Update dependency ldapts to v8.0.14 (#14614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-07 00:57:38 +00:00
renovate[bot] d6ac709e5f Update dependency ldapts to v8.0.13 (#14592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-05 22:46:54 +00:00
Sriram Varun Kumar b290046e66 Mobile: Fixes #14555: Fix tapping rendered image scrolling to cursor position (#14580) 2026-03-05 13:20:23 +00:00
Henry Heino c2321a04ae Chore: Importing from OneNote: Add test to verify that errors are reported to JavaScript (#14550) 2026-03-05 09:13:18 +00:00
mrjo118 3df77a4395 Desktop, Mobile: Fix issue where the revision service does not start on the first launch of the app (#14554) 2026-03-05 09:06:04 +00:00
mrjo118 38fd790719 Mobile: Add ability to set per notebook sorting on mobile (#14562) 2026-03-05 09:04:26 +00:00
Vinayreddy765 40bfa9dd3d Desktop: Show feedback message when master passwords do not match (#14566) 2026-03-05 09:01:03 +00:00
Henry Heino 8d08e5df60 Desktop: Importing from OneNote: Fix importing cross-page links (#14567) 2026-03-05 09:00:16 +00:00
Ash092016 4121c47e18 CI: Add concurrency block to cancel outdated workflow runs (#14570) 2026-03-05 09:00:02 +00:00
Yugal KaushikandHenry Heino d30e6ad0da Desktop: Fixes #13178: Invisible cursor in legacy editor when using dark theme in separate window (#14557)
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
2026-03-05 08:32:09 +00:00
Yugal Kaushik be712df89d Mobile: Fixes #14534: Call unmount() in Note.test.tsx tests to suppress act() warnings (#14535) 2026-03-05 08:31:44 +00:00
Sriram Varun Kumar f7762c403e Mobile: Rich Text Editor: Fix extra blank line above nested lists (#14504) 2026-03-05 08:31:22 +00:00
renovate[bot] b89d37de84 Update dependency @types/serviceworker to v0.0.168 (#14578)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-05 08:26:56 +00:00
Ashutosh Singh a7b9af61c0 Desktop: Fixes #14500: Fixes zh_TW locale detection on first start (#14527) 2026-03-04 20:00:12 +00:00
Laurent Cozic a3186cdfe1 Doc: Add CLAUDE.md rule regarding duplicate tests 2026-03-04 18:48:05 +00:00
Laurent Cozic 0a580493a2 Doc: Added YouTube link to main website page and removed Lemmy link 2026-03-04 16:07:39 +00:00
Laurent Cozic 7a7bf72aa8 Chore: Minor fix to Paste as Markdown feature 2026-03-04 16:06:27 +00:00
Laurent Cozic a20a584273 Desktop: Add "Paste as Markdown" command for Markdown editor (#14556) 2026-03-04 14:31:54 +00:00
Sriram Varun Kumar ae30e8cf00 CLI: Fix trailing spaces in ls -l output (#14559) 2026-03-04 10:16:22 +00:00
Joplin Bot 1a7bb9131a Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-03-04 02:14:13 +00:00
Harsh Gupta 81ed35b117 Desktop: Resolves #12210: Translate Find and Replace dialog in Rich Text editor (#14529) 2026-03-03 16:48:40 +00:00
Sriram Varun Kumar 2704495ac6 Desktop: Fixes #14196: Fix file:// links with backslashes for Windows UNC paths (#14541) 2026-03-03 16:38:08 +00:00
Parth ThirwaniandLaurent Cozic a96f7c6ee7 Desktop: Fixes #13883: Secondary windows no longer follow primary selection after moving notes (#14498)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-03-03 15:32:04 +00:00
Henry Heino af706ac1b3 Web: Add welcome notes specific to the web app (#14499) 2026-03-03 15:30:03 +00:00
Henry Heino 766ef933b9 Web: Link to the official web app when attempting to sync with Joplin Cloud (#14523) 2026-03-03 15:09:14 +00:00
Surendra Manjhi 35de2aca18 Desktop: Fixes #12313: Prevent All Notes sort order from overwriting shared notebook sort on relaunch (#14524) 2026-03-03 15:08:35 +00:00
Ahmed Idani c1827e1b9e Desktop: Fixes #14522: App fails to restart on Linux AppImage (#14530) 2026-03-03 14:59:53 +00:00
Henry Heino 89e3544a0c Chore: Desktop: Fix automated tests fail when the system locale is not English (#14531) 2026-03-03 14:58:47 +00:00
mrjo118 7f40e9e661 Mobile: Prevent focus issues and keyboard opening when opening a note in view mode (#14533) 2026-03-03 14:58:10 +00:00
Akshaj Rawat 20405ea95f Desktop: Resolves #12326: Add keyboard shortcuts to toolbar buttons (#14408) 2026-03-03 13:39:57 +00:00
Akshaj Rawat 2574e18c2f Desktop: Fixes #14271: Error message is incorrect when plugin manifest is invalid (#14374) 2026-03-03 13:36:08 +00:00
Joplin Bot 36b25a9517 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-03-03 02:18:36 +00:00
Laurent Cozic b3e0575361 iOS 13.6.2 2026-03-02 22:16:27 +00:00
Joplin Bot f9f40b3c9b Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-03-02 18:59:44 +00:00
Laurent Cozic b59721f4b3 Android 3.6.13 2026-03-02 17:47:33 +00:00
Laurent Cozic 891ab3e317 Desktop release v3.6.3 2026-03-02 17:26:21 +00:00
Laurent Cozic 0e156796bc Desktop: Fix editor plugins receiving stale note body during navigation (#14513) 2026-03-01 18:54:42 +00:00
renovate[bot] f2b558cb75 Update dependency react-native-localize to v3.6.0 (#14511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-01 15:47:39 +00:00
renovate[bot] 322657ef72 Update dependency gettext-extractor to v4.0.3 (#14508)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-01 13:17:45 +00:00
renovate[bot] c1e99afd2e Update dependency samlify to v2.10.2 (#14509)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-01 13:12:44 +00:00
Sriram Varun KumarandHenry Heino b3822e2700 CLI: Fixes #13158: Fix null crash in e2ee decrypt command (#14461)
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
2026-03-01 12:21:21 +00:00
Nagmani Upadhyay a43f46fc01 Mobile: Fixes #11793: uses consistent padding in plugin info dialog (#14466) 2026-03-01 12:20:22 +00:00
Kanishka.. 50a26b63c8 Desktop: Fixes #13679: Fix sidebar scroll jump when expanding/collapsing folders (#14467) 2026-03-01 12:20:02 +00:00
Harsh Gupta 02c1c75587 Desktop: Fixes #12401: copying from markdown preview including theme background colour (#14474) 2026-03-01 12:11:16 +00:00
Sriram Varun KumarandHenry Heino 345632324d Desktop: Fix UI freeze when closing plugin dialog with Escape key (#14477)
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
2026-03-01 12:08:58 +00:00
mrjo118 8073e03daf Mobile: Prevent race condition when refreshing note contents on mobile (#14486) 2026-03-01 11:58:15 +00:00
Laurent Cozic 7feb953c70 Chore: Trying to use CodeRabbit to validate pull request descriptions 2026-03-01 11:57:51 +00:00
yentropysack 8e895fb2c0 Desktop: Fixes #12385: Copy and paste from markdown preview includes search highlight effect (#14493) 2026-03-01 11:24:41 +00:00
Harsh Gupta ee97c41309 Desktop, Mobile: Resolves #12220: Add new option to disable the Joplin icon for internal note links (#14503) 2026-03-01 11:16:14 +00:00
Joplin Bot c9a55563b5 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-03-01 02:33:23 +00:00
GeorgiPopovIT 39f5dc8c95 All: Translation: Update bg_BG.po (#14505) 2026-02-28 19:48:02 -05:00
Joplin Bot 9256ab197a Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-02-28 18:44:15 +00:00
Laurent Cozic ee2869da86 Doc: Fix sponsor link 2026-02-28 17:51:48 +00:00
Henry Heino e11441cfbc Web: Move web app out of beta (#14497) 2026-02-28 12:01:50 +00:00
Yugal Kaushik 2b5be639ce All: Resolves #14336: Store note history settings in sync info (#14449)
Signed-off-by: yugalkaushik <yugalkaushik14@gmail.com>
2026-02-28 12:01:23 +00:00
GeorgiPopovIT cf3d7f5b88 All: Translation: Update bg_BG.po (#14482) 2026-02-27 12:32:19 -05:00
Mihai Vasiliu 595452f30e All: Translation: Update ro_RO.po and ro_MD.po (#14470) 2026-02-27 12:30:11 -05:00
Henry Heino 33c4029547 Server: Performance: Improve performance of share maintenance task (#14484) 2026-02-27 14:31:48 +00:00
Laurent Cozic eb238efc7b Transcribe v3.6.6 2026-02-26 21:08:39 +00:00
Laurent Cozic 513341f103 Transcribe: Upgraded image to node:24-bookworm to fix build issue 2026-02-26 21:08:18 +00:00
Henry Heino 65b7c4be26 Doc: Link to GSoC pull request guidelines in the pull request template (#14478) 2026-02-26 17:45:58 +00:00
Henry Heino 344a3c2605 Server: Fixes #14107: Update item ownership information when the original owner no longer has access (#14469) 2026-02-26 15:25:22 +00:00
Laurent Cozic 3fc724c076 Transcribe v3.6.5 2026-02-26 15:06:58 +00:00
Laurent Cozic 044fab96c2 Chore: Update dictionary 2026-02-26 15:06:36 +00:00
Laurent Cozic df10bbdf2d Transcribe: Fixed location of llamacpp library 2026-02-26 15:05:38 +00:00
Joplin Bot 65d7d12533 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-02-26 02:14:48 +00:00
Laurent Cozic 814a09035a Transcribe v3.6.3 2026-02-25 21:20:24 +00:00
Laurent Cozic aadc05bd6c Merge branch 'release-3.5' into dev 2026-02-25 17:50:37 +00:00
Laurent Cozic 0c1511f39e Desktop release v3.5.13 2026-02-25 17:46:43 +00:00
Laurent Cozic d75d0df88a Chore: Refactor and simplify Transcribe server (#14462) 2026-02-25 17:46:08 +00:00
Henry Heino 2249b3aa7f Desktop: Upgrade tar to v7.5.8 (#14464) 2026-02-25 17:38:10 +00:00
Henry Heino 5d9a6151ea Merge remote-tracking branch 'origin/release-3.5' into dev 2026-02-25 07:41:50 -08:00
Henry HeinoandLaurent Cozic d3ea5bc4a2 Mobile,Desktop: Resolves #13215: Markdown editor: Enable in-editor rendering by default (#13878)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-02-25 08:56:54 +00:00
0ea374cc87 All: Fix status 400 error on Tomcat WebDAV servers (#14332)
Co-authored-by: horvatkm <horvatkm@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
Co-authored-by: mrjo118 <jo.118@hotmail.com>
2026-02-25 08:56:24 +00:00
Sriram Varun Kumar a53f196cae All: Fixes #14335: Support include_deleted parameter for GET /folders endpoint (#14421) 2026-02-25 08:46:59 +00:00
Ashutosh Singh 7b73b4ba87 Desktop: Resolves #9336: Add editor and sync target to about dialog (#14443) 2026-02-25 08:46:35 +00:00
Henry Heino 99e6d3961f All: Fix unexpected conflicts created during sync (#14453) 2026-02-25 08:45:42 +00:00
renovate[bot] d0f82fb03b Update dependency nodejs to v24.10.0 (#14454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 08:45:18 +00:00
mrjo118 b1b96e9529 Mobile: Fixes #14452: Make the view / edit note button hidden when an editor plugin is visible (#14458) 2026-02-25 08:42:48 +00:00
Henry Heino 18e178e6cf Chore: Update plugin types (#14457) 2026-02-25 08:41:55 +00:00
Harsh GuptaandHenry Heino 075b16a4d2 Desktop: Fixes #12569: Prevent 4th backtick when closing fenced code block (#14423)
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
2026-02-24 22:19:09 +00:00
mrjo118 6d50a947dd Mobile: Fixes #14387: Reset undo/redo button state when toggling an editor plugin (#14444) 2026-02-24 22:18:14 +00:00
Kanishka.. cb12e4efb0 All: Fixes #12545: Handle missing script assets in HTML export (#14442) 2026-02-24 22:17:46 +00:00
renovate[bot] c63eac19c9 Update dependency axios to v1.13.0 (#14450)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-24 22:15:30 +00:00
Henry Heino 2544a55373 Chore: Fix incorrect test for versionInfo (#14451) 2026-02-24 22:13:40 +00:00
Henry Heino 932dbbed1a Server: Fix user can incorrectly retain access to shared items in some cases (#14438) 2026-02-24 22:08:15 +00:00
renovate[bot] af040cbb79 Update dependency @pmmmwh/react-refresh-webpack-plugin to v0.6.2 (#14448)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-24 13:11:46 +00:00
Henry Heino 9833250bea Chore: Sync fuzzer: Include the step at which an action happened in the action log (#14407) 2026-02-24 09:54:05 +00:00
Henry HeinoandLaurent Cozic 3bcdc1b362 Server: Fix user can incorrectly retain access to shared items in some cases (#14445)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-02-24 09:50:02 +00:00
renovate[bot] 036e503d39 Update dependency @react-native-community/datetimepicker to v8.5.1 (#14441)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-23 21:15:58 +00:00
Joplin Bot 8667b28db3 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-02-23 19:12:48 +00:00
renovate[bot] 3c317ccdc1 Update dependency @react-native-community/datetimepicker to v8.5.0 (#14439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-23 19:02:07 +00:00
Laurent Cozic 6a0fc3e36e Doc: Added news item for warrant canary 2026-02-23 18:34:55 +00:00
Laurent Cozic a95b5744ad Doc: Update sponsors 2026-02-23 16:32:31 +00:00
Sriram Varun Kumar 33eb2f02f8 Desktop: Fixes #14328: "Copy dev mode command to clipboard" does not work when path contains spaces (#14432) 2026-02-23 13:48:55 +00:00
Yugal Kaushik 93732f8df6 Desktop, Cli: Fixes #14139: Remove empty hidden divs from ENEX imports (#14411) 2026-02-22 18:15:17 +00:00
Kanishka.. f589197915 All: Resolves #13216: Move editor settings to dedicated editor section (#14403) 2026-02-22 09:00:16 +00:00
Harsh Gupta 55199244ba Doc: Added video tutorials to documentation pages (#14410) 2026-02-22 08:54:31 +00:00
Ashutosh Singh 6ea3180aee Desktop, Mobile: Resolves #13755: Add waving hand emoji to welcome notebook (#14398) 2026-02-21 11:15:48 +00:00
Laurent Cozic 471bb1bf2b Chore: Fix Code Rabbit auto-labelling 2026-02-20 21:47:30 +00:00
Laurent Cozic e3948dab24 Desktop: Add context menu to non-image resources in Markdown editor (#14402) 2026-02-20 21:30:32 +00:00
Henry Heino 950cc54bf0 Docs: Add information about the sync fuzzer to the "Debugging the server project" page (#14404) 2026-02-20 21:29:41 +00:00
Anmol Garg 56d43fc3a5 Server: Fixes #14355: Admin emails sorting fails due to invalid user_id column (#14399) 2026-02-20 19:46:39 +00:00
Yugal KaushikandHenry Heino 45ad3ee078 Server: Fixes #14384: Remove warning logged on first startup (#14401)
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
2026-02-20 19:35:37 +00:00
Laurent Cozic 8b2b0dfd8b Update CLAUDE.md 2026-02-20 19:15:39 +00:00
mrjo118 90de267c62 Desktop, Mobile: Fixes #13660: Defer starting revision service maintenance until the initial sync has completed (#14394) 2026-02-20 11:27:39 +00:00
Henry Heino 085fe0a1cf Server: Remove support for DELTA_INCLUDES_ITEMS (#14393) 2026-02-20 11:26:46 +00:00
Henry Heino 009f3ed692 Desktop,Mobile,Cli: Fixes #14383: Fix unexpected conflicts sometimes created after a full sync (#14388) 2026-02-20 11:26:36 +00:00
Henry Heino 2763a219e4 Chore: Sync fuzzer: Add utilities to allow reproducing a conflict-related share issue (#14382) 2026-02-20 11:26:24 +00:00
Henry Heino 01a51589fd Server: Fixes #14343: Fix certain note content is corrupted when uploaded to the server (#14379) 2026-02-20 11:26:16 +00:00
mrjo118 ba414a4e01 Mobile: Refresh note when updated via the API when in edit mode (#14378) 2026-02-20 11:26:05 +00:00
mrjo118 2da78b37b8 Mobile: Resolves #11521: Remember the viewing / editing mode (updated) (#14363) 2026-02-20 11:22:34 +00:00
Henry Heino 3ef21b0fff Server: Improve name generation for uploaded files (#14392) 2026-02-20 11:04:55 +00:00
Laurent Cozic 77353b015e Desktop: Resolves #12400: Add a text layer over OCR-ed PDF files to make them accessible (#14390) 2026-02-20 11:04:36 +00:00
Laurent Cozic b6dc7730fc Chore: Update Code Rabbit auto-tagging feature 2026-02-20 10:42:21 +00:00
Laurent Cozic e96b8d1079 Add comment guideline for duplicated code
Add guideline for commenting on duplicated code.
2026-02-19 22:58:21 +00:00
renovate[bot] 16abb027c2 Update dependency raw-body to v3.0.2 (#14389)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-19 22:24:11 +00:00
Laurent Cozic 8af0c451c6 Chore: Add CLAUDE.md to configure Claude 2026-02-19 21:57:22 +00:00
Joplin Bot 9badf985cb Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-02-19 19:02:02 +00:00
Laurent Cozic 59c6be2234 Doc: Update sponsors 2026-02-19 17:19:42 +00:00
Laurent Cozic f418b0cc6f Transcribe v3.6.2 2026-02-19 17:03:00 +00:00
Laurent Cozic 9649beea4e Transcribe v3.6.1 2026-02-19 13:58:14 +00:00
Laurent Cozic 440b93f40f Chore: Fixed git-changelog for Transcribe 2026-02-19 13:57:02 +00:00
Laurent Cozic 5beccb9a86 Chore: Refactor Transcribe server (#14381) 2026-02-19 12:51:42 +00:00
Laurent Cozic 8aca7445c7 Doc: Update canary warrant 2026-02-19 10:31:44 +00:00
Laurent Cozic 89f9c6a5e1 Refine instructions for PR labels in .coderabbit.yaml 2026-02-18 23:01:08 +00:00
Laurent CozicandHenry Heino b240c7fafc Doc: Resolves #13124: Create a warrant canary page (#14375)
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
2026-02-18 20:45:57 +00:00
renovate[bot] d893680a84 Update dependency @axe-core/playwright to v4.11.0 (#14377)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-18 20:44:24 +00:00
Laurent Cozic d1b316516a Chore: Fixed issue with image path in Transcribe 2026-02-18 19:15:37 +00:00
Laurent Cozic 535158e07a Chore: Clean up Code Rabbit config and add knowledge_base property 2026-02-18 12:08:53 +00:00
mrjo118 5776aff0df Mobile: Remove redundant navigation history for notes or folders which were deleted (#13428) 2026-02-18 10:48:31 +00:00
Laurent Cozic 59e38bac45 Update .coderabbit.yaml 2026-02-18 08:26:45 +00:00
Henry Heino e581c4cd67 Mobile: Fixes #14195: Fix biometric 'try again' button is off-screen on certain devices (#14373) 2026-02-18 08:01:35 +00:00
Henry Heino e6604e369f Web: Fixes #11799: Fix "delete plugin" confirm dialog shown beneath plugin info dialog (#14337) 2026-02-18 07:57:09 +00:00
Henry Heino 60f76afa54 Mobile: Fixes #13871: Fix profile data not deleted when removing profiles (#14369) 2026-02-18 07:56:34 +00:00
Henry Heino fc2f0994fa Web: Fix save button is greyed out after saving settings, then changing a setting (#14349) 2026-02-18 01:03:33 +00:00
Henry Heino 908d568f6e Chore: Editor CI: Retry flaky test on failure (#14364) 2026-02-18 00:24:12 +00:00
Laurent Cozic 45b44b962e All: Fixes #14352: YouTube videos are displayed inline too (#14370) 2026-02-17 22:49:21 +00:00
renovate[bot] ced97edb52 Update dependency lint-staged to v16.2.7 (#14371)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-17 22:49:09 +00:00
Laurent Cozic ed620b7ec0 Doc: Add support for multiple language on website front page (#14365) 2026-02-17 22:48:59 +00:00
Laurent Cozic 44f77fa04b Chore: Auto-apply labels to PR using Code Rabbit 2026-02-17 21:30:51 +00:00
Laurent Cozic 730f7074fd Chore: Make Code Rabbit comments less noisy 2026-02-17 20:54:03 +00:00
Laurent Cozic 3dc6c6d272 Chore: Make Code Rabbit comments less noisy 2026-02-17 20:53:26 +00:00
Joplin Bot 6edc74ed3a Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-02-17 19:08:04 +00:00
mrjo118 0192033845 Mobile: Fixes #14255: Add a reveal in notebook option for notes (#14338) 2026-02-17 17:21:11 +00:00
mrjo118 7285270df3 API: Add a delete revisions for note API (#13882) 2026-02-17 17:20:52 +00:00
Dwong33 ab05bb8cc5 All: Translation: Update zh_TW.po (#14362) 2026-02-17 10:35:34 -05:00
Henry Heino 887084a6a0 Chore: Sync fuzzer: Support saving and restoring fuzzer state (#14340) 2026-02-17 11:11:37 +00:00
Ronald Eddy Jr a2f6906668 Desktop: Resolves #14301: Fix Escape key not closing PromptDialog (#14325) 2026-02-17 11:07:19 +00:00
Laurent Cozic 5ad4c31b44 Desktop: Display context menu when right-clicking an image in Markdown editor (#14209) 2026-02-17 11:05:28 +00:00
mrjo118 b099840f97 Mobile: Fixes #14194: Hide the expand / collapse title button when the title is too long (#14203) 2026-02-17 11:04:40 +00:00
mrjo118 60fec1ce69 Chore: Move resetting of revision 'oldNote' content to the model and broadcast a new event instead of mutating the value (#13881) 2026-02-17 11:01:59 +00:00
mrjo118 231c9a2343 Desktop: Synchronise pending changes when closing the app (#13845) 2026-02-17 10:59:40 +00:00
mrjo118 a72ea3f2ae All: Fixes #13782: When cleaning old revisions, ensure revisions are merged for all revision branches (#13795) 2026-02-17 10:58:08 +00:00
mrjo118andLaurent Cozic 9f89fee494 Mobile: Add an import txt function (#13742)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-02-17 10:57:32 +00:00
mrjo118 2c3e6d5e11 Mobile: Trigger a note refresh when viewing or editing a note and the contents are updated via the API (#13671) 2026-02-17 10:52:57 +00:00
mrjo118 dbf7b6195e All: Fixes #13611: Fix missing conflict scenario (#13624) 2026-02-17 10:51:44 +00:00
mrjo118 365729c759 Desktop: Exclude trashed notebooks from the list of notebooks on the move to notebook dialog (#13572) 2026-02-17 10:51:08 +00:00
Henry Heino 34dfcb9668 Mobile: Upgrade React Native to v0.81.6 (#14330) 2026-02-17 09:59:05 +00:00
Yousef Genedy 32585576a9 Desktop: Fixes #14350: Make notebook search accent-insensitive in GotoAnything (#14360) 2026-02-17 08:37:13 +00:00
renovate[bot] ef32d53f72 Update dependency form-data to v4.0.5 (#14357)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-15 09:39:24 +00:00
renovate[bot] 232ff19824 Update dependency style-to-js to v1.1.21 (#14354)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-14 09:27:37 +00:00
renovate[bot] d3d32fc072 Update dependency style-to-js to v1.1.20 (#14353)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-14 08:28:36 +00:00
renovate[bot] a7ac7535b7 Update dependency node-gyp to v11.5.0 (#14344)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-13 21:06:55 +00:00
renovate[bot] cdb1de52eb Update dependency @types/yargs to v17.0.35 (#14346)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-12 22:50:18 +00:00
mrjo118 e7a4227f6f Chore: Change getValidActiveFolder to ignore virtual folders (#13761) 2026-02-11 18:53:29 +00:00
Laurent Cozic 4d9c161c43 Chore: Make CodeRabbit ignore pull requests from Renovate 2026-02-11 16:20:53 +00:00
Laurent Cozic 8eaca2edf9 Desktop: Resolves #14292: Display percentage completion of checkbox lists in note list (#14312) 2026-02-11 12:42:55 +00:00
35bb52302f Update dependency react to v19.1.5 (#14327)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
Co-authored-by: Henry Heino <personalizedrefrigerator@gmail.com>
2026-02-11 12:41:41 +00:00
renovate[bot] e181fef1ae Update dependency dompurify to v3.3.0 (#14329)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-10 18:38:48 +00:00
Joplin Bot f6c8f5b6ca Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-02-10 18:37:06 +00:00
Laurent Cozic 0ec4571540 Doc: Add press release for HMD Terra M 2026-02-10 18:26:05 +00:00
Laurent Cozic 7bd8255e26 Doc: Add press release for HMD Terra M 2026-02-10 18:21:01 +00:00
Joplin Bot a7050f678e Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-02-10 13:24:13 +00:00
renovate[bot] c4895bdb7b Update dependency nodemon to v3.1.11 (#14314)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-10 12:57:21 +00:00
Laurent Cozic 452a3663b9 Chore: Change "Sync" dialog title to "Synchronisation" 2026-02-10 11:06:40 +00:00
Laurent Cozic f5843e4651 Update renovate.json5 2026-02-10 10:30:42 +00:00
Lakshay Manchanda 9bdf5f4a63 Desktop: Fixes #14080: Dark mode not respected in emoji window (#14303) 2026-02-10 10:20:44 +00:00
Henry Heino e3028e39fe Desktop: Security: Strengthen Content-Security-Policy (#14316) 2026-02-10 10:15:13 +00:00
Ronald Eddy Jr 14284be1c2 Desktop: Resolves #13794: Add Close Window shortcut and menu item on Windows/Linux (#14317) 2026-02-10 10:14:28 +00:00
Ronald Eddy Jr bfa0a80772 Doc: Fix broken internal links in documentation (#14318) 2026-02-10 10:12:20 +00:00
Ronald Eddy Jr 5b99c40fbd Fix typos and grammar in user-facing documentation (#14319) 2026-02-10 10:11:38 +00:00
Ronald Eddy Jr adab482fb1 Doc: Fix typos and grammar in developer documentation (#14320) 2026-02-10 10:10:51 +00:00
Henry Heino df7a04f552 Desktop: Importing from OneNote: Enable stricter path sanitization on Windows (#14321) 2026-02-10 10:09:34 +00:00
Henry Heino 68073e4ad8 Desktop: Importing from OneNote: Make "module not found" message more useful (#14324) 2026-02-10 10:09:21 +00:00
Henry Heino 8ad1dfa2bf Desktop, Cli: Upgrade tar to v7.5.7 (#14313) 2026-02-10 08:41:12 +00:00
renovate[bot] 38e1ede8b4 Update dependency react-native-svg to v15.14.0 (#14310)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-09 18:05:25 +00:00
renovate[bot] 4afa3aa1ee Update dependency react-native-webview to v13.16.0 (#14311)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-09 18:05:04 +00:00
renovate[bot] 413db88fc9 Update dependency nodejs to v24.9.0 (#14308)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-09 14:09:00 +00:00
renovate[bot] 20d88a2add Update dependency prosemirror-transform to v1.10.5 (#14307)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-09 14:08:15 +00:00
Henry Heino 0da94b2f8e Android: Fixes #14267: Fix titlebar underline missing on some Android devices (#14273) 2026-02-09 14:05:10 +00:00
Laurent Cozic 6d306267d8 Doc: Clarify our stance regarding AI-generated code in CLA (#14026) 2026-02-09 12:54:12 +00:00
Henry Heino adb1367dcc Android: Fixes #14268: Fix additional space included above keyboard (#14272) 2026-02-09 12:52:09 +00:00
Henry Heino 1d9864fae7 Android: Fixes #14265: Opt out of Android 16 predictive back behavior (#14281) 2026-02-09 12:51:14 +00:00
Henry Heino a5a1634fb0 Android: Fixes #14266: Fix import/export buttons have wrong background after task completes (#14282) 2026-02-09 12:51:06 +00:00
Henry Heino fdaf9c4b5d Chore: Sync fuzzer: Fix fuzzer failure caused by incorrect expected state (#14283) 2026-02-09 12:50:45 +00:00
Henry Heino 767c9cd587 Chore: Simplify and refactor the "should support hiding and showing panels" test (#14284) 2026-02-09 12:50:33 +00:00
Henry Heino 266b177047 Web: Fix production build (#14285) 2026-02-09 12:50:23 +00:00
Henry Heino 1d4478c28e Mobile: Fixes #14275: Improve dropdown menu positioning (#14288) 2026-02-09 12:50:15 +00:00
Henry Heino 47f15b6c32 Server: Fixes #14110: Fix new clients on an existing account can download previously unshared items (#14289) 2026-02-09 12:50:07 +00:00
Henry Heino 9edfa0c2b0 Cli: Fix help text for unpublish command (#14293) 2026-02-09 12:49:16 +00:00
Henry Heino 9d4506a6f8 Chore: Sync fuzzer: Do not attempt to unpublish read-only notes (#14294) 2026-02-09 12:49:09 +00:00
Henry Heino 4cd9501165 Desktop: Importing from OneNote: Improve handwriting import (#14305) 2026-02-09 12:46:35 +00:00
renovate[bot]andLaurent Cozic 335ba15784 Update dependency python to 3.14 (#14270)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-02-09 10:34:56 +00:00
renovate[bot] f88c1df7ff Update dependency react-native-share to v12.2.1 (#14304)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-09 10:34:41 +00:00
renovate[bot] a6c42898df Update dependency @types/serviceworker to v0.0.167 (#14297)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-08 23:43:14 +00:00
Laurent Cozic cbc9b452e1 Chore: Add CodeRabbit config 2026-02-08 22:48:23 +00:00
renovate[bot] 3739fac751 Update dependency @playwright/test to v1.56.1 (#14295)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-07 12:45:09 +00:00
renovate[bot] 7a745b872a Update dependency @playwright/test to v1.56.0 (#14269)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-07 09:28:20 +00:00
Laurent Cozic 97a18f722d Chore: Convert WebDavAPI.js to TypeScript (#14291) 2026-02-06 13:28:35 +00:00
luzpaz 554e6efaab Doc: fixed a few dev-facing typos (#14279) 2026-02-05 00:11:51 +00:00
Joplin Bot cd7af20bc1 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-02-04 19:02:12 +00:00
renovate[bot] 4346616cae Update dependency sharp to v0.34.5 (#14264)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-04 18:02:14 +00:00
Laurent Cozic ef646adafa Doc: Added mobile performance analysis report 2026-02-04 15:21:52 +00:00
Laurent Cozic 4ce47807b1 iOS 13.6.1 2026-02-04 15:13:08 +00:00
Laurent Cozic 9b0bc4d600 Chore: Limit build cleaning function to just Android 2026-02-04 15:13:08 +00:00
renovate[bot] 91b8e4d34d Update dependency style-to-js to v1.1.19 (#14244)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-04 14:51:04 +00:00
renovate[bot] 9e9bd662dc Update dependency nan to v2.23.1 (#14263)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-04 14:48:21 +00:00
Laurent Cozic defbbd5d72 Android 3.6.12 2026-02-04 14:45:02 +00:00
Laurent Cozic b2c9dd40dc Chore: Fixed Android release script 2026-02-04 14:43:56 +00:00
Laurent Cozic a9049111e4 Chore: Add a marker to tell when the application is ready on mobile 2026-02-04 12:40:51 +00:00
renovate[bot] 55f642c625 Update dependency @types/serviceworker to v0.0.165 (#14250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-04 11:29:26 +00:00
Henry Heino dee9ec3495 Chore: Testing: Give the plugin panel test more time to pass (#14199) 2026-02-04 10:10:01 +00:00
Henry Heino 97bf020150 Chore: Mobile: Migrate folder screen to TypeScript (#14200) 2026-02-04 10:09:35 +00:00
Henry Heino eeaed07a53 Mobile: Fix heading links (#14201) 2026-02-04 10:09:19 +00:00
Henry Heino 2cb2680a5a All: Sync: Make resource processing in read-only shares more reliable (#14204) 2026-02-04 10:08:29 +00:00
Henry Heino 242c6ec3b8 Chore: Sync fuzzer: Don't attempt to publish read-only notes (#14205) 2026-02-04 10:08:14 +00:00
Henry Heino ed0b1ae390 Desktop: Fixes #14216: Fix undo/redo menu items in the Rich Text and Markdown editors (#14218) 2026-02-04 10:07:34 +00:00
Henry Heino de29e4ff92 Docs: Update SECURITY.md to suggest using GitHub private vulnerability reporting (#14221) 2026-02-04 10:03:36 +00:00
Henry Heino 9d96e31b83 Desktop: Fixes #14210: OneNote importer: Skip importing ink when ID lookup fails (#14230) 2026-02-04 10:03:28 +00:00
Henry Heino aad460e9a1 Chore: Fixes #14222: Retry failing editor test in CI (#14231) 2026-02-04 10:03:11 +00:00
Henry Heino 00248a9177 Mobile: Upgrade to React Native 0.81 (#14232) 2026-02-04 10:03:02 +00:00
Henry HeinoandHimanshu af2926b634 Desktop: OneNote import: Fix onepkg import stops after the first section fails to import (#14246)
Co-authored-by: Himanshu <h-jangra@users.noreply.github.com>
2026-02-04 09:59:17 +00:00
Henry Heino 916ed9bbfb Chore: Desktop: Fix warning logged when opening the note viewer (#14247) 2026-02-04 09:59:01 +00:00
Laurent Cozic b32015864e All: Add support for FrontMatter block rendering in notes (#14256) 2026-02-04 09:58:12 +00:00
Henry Heino 8939ef1c19 Desktop,Mobile: Resolves #9745: Markdown: Allow specifying the start/end of audio, videos, and PDFs (#14257) 2026-02-04 09:56:05 +00:00
Henry Heino 31bba39ae9 Chore: Fix HTML to Markdown conversion fails for certain rendered code block HTML (#14259) 2026-02-04 09:55:50 +00:00
Henry Heino 9dc49f0c24 Chore: Sync fuzzer: Fix "moveFolderToToplevel" command (#14261) 2026-02-04 09:55:03 +00:00
Henry Heino 02dfef11aa Desktop: Fixes #13540: Improve context menu handling in secondary windows (#14262) 2026-02-04 09:53:09 +00:00
renovate[bot] c278b45c78 Update dependency nodejs to v24.8.0 (#14229)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-01 23:54:22 +00:00
renovate[bot] 0dafd21db0 Update dependency electron-updater to v6.6.8 (#14239)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-01 23:53:58 +00:00
Sebastian 490d35919c All: Translation: Update de_DE.po (#14242) 2026-02-01 06:24:59 -05:00
Nick 4c1ca5480d All: Translation: Update sv.po (#14241) 2026-02-01 06:20:55 -05:00
Joplin Bot d414c6354a Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-02-01 02:36:23 +00:00
rnbastos 7651d8e3c4 All: Translation: Update pt_BR.po (#14238) 2026-01-31 17:23:25 -05:00
renovate[bot] d5c72c13cb Update dependency @types/serviceworker to v0.0.164 (#14237)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-31 09:49:32 +00:00
renovate[bot] 4377634e7b Update dependency esbuild to v0.25.12 (#14236)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-31 04:59:05 +00:00
renovate[bot] 69ec5c7f86 Update dependency @types/serviceworker to v0.0.163 (#14234)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-30 17:50:22 +00:00
renovate[bot] f02b0f48d8 Update dependency react-refresh to v0.18.0 (#14233)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-30 14:33:32 +01:00
renovate[bot] 4d77c1385f Update dependency sass to v1.93.3 (#14228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-29 16:51:56 +00:00
renovate[bot] c83f9ddeac Update dependency dayjs to v1.11.19 (#14227)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-29 14:49:50 +00:00
renovate[bot] 1b9c11df7b Update dependency @types/serviceworker to v0.0.162 (#14225)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-29 09:28:36 +00:00
Nick 333a8723e8 All: Translation: Update sv.po (#14220) 2026-01-28 18:14:28 -05:00
Laurent Cozic e030c8271d Chore: Try to fix app-desktop tests on local 2026-01-28 12:55:08 +00:00
renovate[bot] 560bc31445 Update dependency gettext-extractor to v4.0.1 (#14217)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-28 01:45:26 +00:00
renovate[bot] c71aeb74b2 Update dependency gettext-extractor to v4 (#14213)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-27 23:36:41 +00:00
renovate[bot] ffaf2acb66 Update dependency @rollup/plugin-replace to v6.0.3 (#14212)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-27 18:16:02 +00:00
renovate[bot] f442f1fb23 Update dependency @types/serviceworker to v0.0.161 (#14206)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-27 11:12:24 +00:00
renovate[bot] 81a1451820 Update dependency react-native-safe-area-context to v5.6.2 (#14202)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-27 02:16:37 +00:00
renovate[bot] b3a3d71461 Update dependency @react-native-community/datetimepicker to v8.4.7 (#14191)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-26 22:47:00 +00:00
Henry Heino f497d898bc Windows: Fixes #14084: .onepkg file import: Fix import failure when notebook titles contain certain Unicode characters (#14090) 2026-01-26 16:56:39 +00:00
bwat47 1db38c3232 Desktop, Mobile: Fixes #13933: Markdown editor: Scroll jumps in notes with many inline images (#13955) 2026-01-26 15:21:08 +00:00
Fardin96 42e645eb70 Mobile: Fixes #13243: Align tag search-input-clear behavior across input methods (#14042) 2026-01-26 15:12:06 +00:00
mrjo118 3860f44d06 Mobile: Fixes #14153: Prevent the back button sometimes disappearing when switching between editors (#14164) 2026-01-26 15:09:37 +00:00
Henry Heino 4df0f8668d Desktop,Mobile: Resolves #14158: Markdown Editor: Make code block highlighting closer to the viewer (#14168) 2026-01-26 15:06:37 +00:00
Henry Heino 306d0fddd8 Desktop: OneNote import: Import invalid attachments as empty attachments (#14177) 2026-01-26 15:06:24 +00:00
Henry Heino 56d12b28f2 All: Unlinked resource deletion: Fix resources attached only via reference links are auto-deleted (#14178) 2026-01-26 15:06:15 +00:00
Henry Heino 6c5ea4872a Desktop,Mobile: Markdown editor: Fix error logged in "hide markdown" mode for certain markup (#14179) 2026-01-26 15:06:06 +00:00
Henry Heino 9856e8ae93 Chore: Sync fuzzer: Test adding, removing resources from notes (#14185) 2026-01-26 15:05:50 +00:00
Henry Heino 5712da4c0f Desktop,Mobile: Fixes #14009: Markdown editor: Upgrade most CodeMirror dependencies (#14186) 2026-01-26 15:04:35 +00:00
Henry Heino 4f7ee56444 Desktop: Fixes #13793: Make conflicts caused by resource duplication less likely (#14188) 2026-01-26 15:04:26 +00:00
Laurent Cozic 8e2b6ca296 Chore: Improved performance log consistency, and log to console on Android production too 2026-01-26 14:47:19 +00:00
Laurent Cozic 0172bb0ad8 Chore: Fix error in release-android script when the main apk is not built 2026-01-26 14:46:33 +00:00
Laurent Cozic 1d38e443ba Chore: Do not create GitHub release when there is no APK to publish 2026-01-26 13:58:57 +00:00
Laurent Cozic 5ad19b7261 Chore: Make Android app profileable 2026-01-26 13:46:27 +00:00
Arda Kılıçdağı 70293478a2 All: Translation: Update tr_TR.po (#14193) 2026-01-25 18:14:39 -05:00
custiq 3aaa20254f All: Translation: Update fi_FI.po (#14189) 2026-01-24 23:46:32 -05:00
renovate[bot] 42c248f7ca Update dependency @types/serviceworker to v0.0.160 (#14190)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-24 09:11:54 +00:00
Joplin Bot ac1e94a8df Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-01-23 06:47:06 +00:00
renovate[bot] daff4496cf Update dependency turndown to v7.2.2 (#14181)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-23 02:15:02 +00:00
Joplin Bot 1e00078228 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-01-23 01:56:25 +00:00
renovate[bot] 03a1de9370 Update dependency @rollup/plugin-commonjs to v28.0.9 (#14175)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-22 17:46:44 +00:00
renovate[bot] 55ef256c65 Update dependency rate-limiter-flexible to v7.4.0 (#14174)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-22 17:46:38 +00:00
renovate[bot] 6d115db16f Update dependency @types/yargs to v17.0.34 (#14173)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-22 16:25:50 +00:00
renovate[bot] 5853031fde Update dependency @types/serviceworker to v0.0.159 (#14172)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-22 09:05:01 +00:00
renovate[bot] 47db2ae962 Update dependency @types/nodemailer to v6.4.21 (#14171)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-22 09:02:54 +00:00
Laurent Cozic b960a2a8b0 Doc: Updated JSB contact link 2026-01-21 09:27:55 +00:00
renovate[bot] fcaa7d2a98 Update dependency lint-staged to v16.2.6 (#14165)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 18:18:59 +00:00
renovate[bot] 99284ae135 Update dependency lint-staged to v16.2.0 (#14162)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 13:20:03 +00:00
Joplin Bot 66ae58c81b Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-01-19 18:43:09 +00:00
Laurent Cozic 484d6a866d Doc: Remove "(Pre-release)" marker from Android changelog since all versions are pre-releases 2026-01-19 18:03:05 +00:00
Laurent Cozic b45fd09e38 Merge branch 'release-3.5' into dev 2026-01-19 16:44:41 +00:00
Laurent Cozic 903a369c13 Android 3.5.9 2026-01-19 16:43:41 +00:00
Laurent Cozic 1fb79315e4 Chore: lock files 2026-01-19 16:13:04 +00:00
Henry Heino 4dc021b523 Android: Remove unnecessary READ_PHONE_STATE permission (#14157) 2026-01-19 16:04:56 +00:00
Joplin Bot bbb4b46dd9 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-01-19 02:01:31 +00:00
renovate[bot] 063dc46f50 Update dependency dotenv to v17.2.3 (#14155)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-19 00:02:36 +00:00
renovate[bot] aa400b52be Update dependency short-uuid to v5 (#14156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-19 00:02:26 +00:00
renovate[bot] be7de2f08a Update dependency dotenv to v17.2.2 (#14145)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-18 22:01:23 +00:00
renovate[bot] f8a129e4dc Update dependency npm-package-json-lint to v9 (#14146)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-18 22:01:11 +00:00
Laurent Cozic c5d9646908 Desktop release v3.6.2 2026-01-18 11:33:16 +00:00
Henry HeinoandLaurent Cozic 876ec80911 Desktop: Fixes #14084: .onepkg import: Fix Unicode issues, support Linux and MacOS (#14094)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-01-18 11:31:48 +00:00
mrjo118andLaurent Cozic 4051f88ce7 Chore: Fix intermittent Synchronizer.revisions test failure (#14096)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-01-18 11:31:42 +00:00
Laurent Cozic f194c111e4 All: Fixes #14144: Application crashes when profile database has been analyzed 2026-01-18 11:30:05 +00:00
Henry HeinoandLaurent Cozic e386246bc9 Chore: Sync fuzzer: Improve error logging (#14108)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-01-18 11:29:32 +00:00
Henry HeinoandLaurent Cozic 292b269f1d Desktop: Resolves #14086: Accessibility: Include accessibility information in exported PDFs (#14111)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-01-18 11:29:25 +00:00
renovate[bot]andLaurent Cozic b2fc43da2b Update dependency short-uuid to v4.2.2 (#14114)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-01-18 11:29:17 +00:00
Henry HeinoandLaurent Cozic 4a23a1ed3e Desktop: Fixes #14092: Built-in plugins: Upgrade Freehand Drawing to v4.3.0 (#14123)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-01-18 11:29:07 +00:00
Henry Heino c8878a18bf Desktop, Mobile: Editor: Inline rendering: Render inline HTML (colorized text, superscript, subscript, strikethrough) (#14133) 2026-01-18 11:28:15 +00:00
Henry Heino 340fba7af5 Server: Fixes #14107: Fix warning when unsharing folder (#14134) 2026-01-18 11:25:52 +00:00
Henry Heino 271c4f4a2a Server: Fixes #14131: Allow changing the password for the admin account when SAML is enabled (#14135) 2026-01-18 11:25:38 +00:00
Henry HeinoandLaurent Cozic c9dba20f59 Chore: Sync fuzzer: Allow specifying a set of initial actions (#14136)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-01-18 11:25:07 +00:00
renovate[bot] b474cc206a Update dependency dotenv to v17 (#14138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-18 11:24:46 +00:00
Milo Ivir 9d4df8cc6e All: Translation: Update hr_HR.po (#14140) 2026-01-17 20:57:39 -05:00
Joplin Bot a4ddfe1f58 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-01-17 18:38:35 +00:00
renovate[bot] 7d15215e66 Update dependency react-native-device-info to v14.1.1 (#14132)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-17 14:23:02 +00:00
Laurent Cozic 449555c8e9 Desktop release v3.5.12 2026-01-17 11:21:02 +00:00
Laurent Cozic 5b74e206ed Desktop release v3.6.1 2026-01-17 11:19:55 +00:00
Laurent Cozic 9873d02b0b Chore: Setup new release 3.6 2026-01-17 11:19:43 +00:00
Laurent Cozic 57b7d98d8a Merge branch 'release-3.5' into dev 2026-01-17 11:18:39 +00:00
Laurent Cozic f075b561a2 All: Add more error information when the profile is corrupted 2026-01-17 11:17:43 +00:00
renovate[bot] 483d051de0 Update dependency rate-limiter-flexible to v7.3.2 (#14130)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-16 15:59:43 +00:00
renovate[bot] 106cd2778f Update dependency rate-limiter-flexible to v7.3.1 (#14128)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-16 13:57:49 +00:00
Eric Duarte c3aea2db80 All: Translation: Update ca.po (#14129) 2026-01-16 08:10:45 -05:00
Liffindra Angga ZaaldianandLaurent Cozic 3f067b0f77 All: Translation: Update id_ID.po (#14127)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-01-16 08:08:49 -05:00
Laurent Cozic 15cf025bc2 All: Resolves #14106: Improve Fountain notes exported as PDF (#14120) 2026-01-16 11:30:54 +00:00
Henry Heino 4677586e3b Desktop: Rich Text Editor: Fix cut, copy, paste, and select all menu items (#14125) 2026-01-16 11:30:39 +00:00
Laurent Cozic b8c5b7a153 Doc: Added Contribution Scope Policy 2026-01-16 10:19:32 +00:00
renovate[bot]andLaurent Cozic e46e634c2e Update dependency style-to-js to v1.1.18 (#14118)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-01-16 09:44:18 +00:00
Henry Heino b3cf4e5a35 Chore: Fix CI (#14124) 2026-01-16 09:43:30 +00:00
Laurent Cozic 8589e10d6e Chore: Trying to fix CI 2026-01-15 14:23:00 +00:00
renovate[bot] 18942f0d6a Update dependency babel-plugin-react-native-web to v0.21.2 (#14104)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 13:25:14 +00:00
Eric Duarte 3be354cdcb All: Translation: Update es_ES.po (#14117) 2026-01-15 08:22:26 -05:00
renovate[bot] 0575f1aa3e Update dependency react-native-web to v0.21.2 (#14113)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 05:12:54 +00:00
renovate[bot] caa9baa460 Update dependency react-native-localize to v3.5.4 (#14112)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 02:04:45 +00:00
renovate[bot] b5284804d8 Update dependency qrcode to v1.5.4 (#14109)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 00:07:22 +00:00
renovate[bot] 6053b4296c Update dependency esbuild to v0.25.11 (#14101)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-14 13:56:24 +00:00
renovate[bot] 615fec1d2c Update dependency @rollup/plugin-node-resolve to v16.0.3 (#14100)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-14 13:54:35 +00:00
Laurent Cozic 0bbcd9a59b All: Add support for external embeds, eg. YouTube videos (#14012) 2026-01-14 13:52:17 +00:00
renovate[bot] 6931b32f17 Update dependency @rollup/plugin-commonjs to v28.0.8 (#14099)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-14 12:09:18 +00:00
renovate[bot]andLaurent Cozic 17ac501ddb Update dependency @types/serviceworker to v0.0.158 (#14060)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-01-14 09:32:41 +00:00
renovate[bot]andLaurent Cozic 94161c5f93 Update dependency @types/react to v18.3.26 (#14050)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2026-01-14 09:32:34 +00:00
Jozef Gaal 196255e960 All: Translation: Update sk_SK.po (#14095) 2026-01-13 19:55:13 -05:00
Self Not Found f936390ee4 All: Translation: Update zh_CN.po (#14091) 2026-01-13 16:48:20 -05:00
Laurent Cozic 5638c4b812 Chore: Fixed various typo and grammar mistakes 2026-01-13 16:28:24 +00:00
Linkosred 4222caa423 Docs : Add video tutorial link for several pages of the documentation (#14068) 2026-01-13 16:20:52 +00:00
Henry Heino bc705acc5c Windows: Fixes #13430: Experimental auto-updater: Fix application crash on update failure (#14083) 2026-01-13 16:19:51 +00:00
Laurent Cozic f1c968c19a Chore: Remove usage of watchman when running Jest tests (#14087) 2026-01-13 15:40:53 +00:00
Laurent Cozic 26c5a6181e Chore: Retry Apple Silicon test build when it fails (#14088) 2026-01-13 15:40:36 +00:00
Laurent Cozic a3bf0cfdeb Server: Add support for MFA (#14081) 2026-01-13 14:14:46 +00:00
Joplin Bot 606b397326 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-01-13 01:53:11 +00:00
krevad fbd157283d All: Translation: Update sv.po (#14082) 2026-01-12 19:38:43 -05:00
Laurent Cozic 2e879f65fc Chore: Fixed Markdown filename 2026-01-12 19:32:54 +00:00
Joplin Bot c727156a46 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-01-12 18:43:05 +00:00
Laurent Cozic 4e31f1918d Doc: Added instructions on how to create a custom profile for deployments 2026-01-12 16:18:17 +00:00
Laurent Cozic a1cdf67779 Chore: Also release pkg files for macOS 2026-01-12 16:08:56 +00:00
Laurent Cozic 5cb1db197f Doc: Add release notes 3.5 2026-01-12 15:12:18 +00:00
Joplin Bot 05c3065c72 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-01-10 12:49:51 +00:00
Laurent Cozic 25a5be09bf Merge branch 'release-3.5' into dev 2026-01-10 10:16:56 +00:00
Laurent Cozic f0a3f73ddb iOS 13.5.3 2026-01-10 10:09:40 +00:00
Laurent Cozic 1bb5d9ade5 Android 3.5.8 2026-01-10 10:09:18 +00:00
Laurent Cozic e75875c1b0 Desktop release v3.5.11 2026-01-10 10:01:41 +00:00
mrjo118 cce4b76e3f Mobile: Fixes #13544: Fixed keyboard input issue in note title (#14070) 2026-01-10 09:53:21 +00:00
Henry Heino b310bfd0c2 iOS: Fixes #14063: Fix icon rendering (#14071) 2026-01-10 09:44:23 +00:00
Henry Heino e19e1ac040 Desktop: OneNote importer: Simplify error report (#14074) 2026-01-10 09:44:09 +00:00
ERYpTION 3bba2f6b2a All: Translation: Update da_DK.po (#14073) 2026-01-09 17:22:08 -05:00
summoner ca9addcda0 ALL: Translation: Update hu-HU.po (#14069) 2026-01-09 16:16:33 -05:00
Nick c42a49c1cf All: Translation: Update sv.po (#14064) 2026-01-09 15:58:20 -05:00
Laurent Cozic a1e056670d Chore: Ignore .watchman-cookie- files 2026-01-09 17:45:27 +00:00
Laurent Cozic 6d7a70c21a Chore: Update translations 2026-01-09 10:06:42 +00:00
Henry Heino 14fd3c66c1 Chore: Fix CI (#14061) 2026-01-09 09:26:17 +00:00
Joplin Bot 376f44a0ce Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-01-09 01:56:03 +00:00
Laurent Cozic 4d81ee4c7f Chore: Exclude katex and mermaid from Renovate 2026-01-08 19:44:50 +00:00
Laurent Cozic d9011800b2 iOS 13.5.2 2026-01-08 19:43:11 +00:00
Laurent Cozic e64f141b28 Android 3.5.7 2026-01-08 19:42:31 +00:00
Laurent Cozic 8bba68d920 Chore: Katex build files 2026-01-08 19:42:23 +00:00
Laurent Cozic e342f2d572 Desktop release v3.5.10 2026-01-08 19:21:20 +00:00
Henry Heino 5951a66fef Desktop, Mobile: Resolves #13753: Markdown editor: Make header styles more closely match the note viewer (#14053) 2026-01-08 09:24:00 +00:00
Henry Heino 04f9bda128 Desktop: OneNote import: Fix all imported notes have the language marked as "English" (#14054) 2026-01-08 09:23:35 +00:00
Henry Heino 7a8a94f557 Mobile: Rich Text Editor: Add shortcuts for inserting code blocks (#14055) 2026-01-08 09:22:19 +00:00
Henry Heino ad000fb521 Desktop,Mobile: Fixes #14049: Fix ABC Sheet Music setting includes "Translation error" in description (#14058) 2026-01-08 09:21:55 +00:00
Henry Heino 435b896142 Desktop, Mobile: Accessibility: In-editor rendering: Fix rendered checkboxes are very small on mobile (#14056) 2026-01-08 09:19:56 +00:00
renovate[bot] b12f31c802 Update dependency katex to v0.16.23 (#14018)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-07 16:43:31 +00:00
Laurent Cozic ddb6d7a677 Desktop: Fixes #14040: Rich Text Editor: ABC sheet music options lost on edit 2026-01-07 12:14:54 +00:00
AlterWill f0a1d05284 Chore: Fixes #13629: Fix focusHandler warning when navigating (#13973) 2026-01-07 11:56:45 +00:00
Alejandro SaucedoandHenry Heino 27f7cb7ca6 Cli: Added keymap command to print existing keybinds in CLI and TUI (#13984)
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
2026-01-07 11:56:06 +00:00
Alejandro Saucedo 9e43ebcf43 Chore: Fixes #13983: Remove conflicting macos dependency for devbox (#13985) 2026-01-07 11:54:33 +00:00
Ahmed Idani 05cc0fa798 Desktop, Mobile: Fixes #13229: Insert time command not respecting locale settings (#13994) 2026-01-07 11:48:15 +00:00
Henry Heino ee5b631d13 Desktop: Built-in plugins: Update Freehand Drawing to v4.2.0 (#14002) 2026-01-07 11:47:46 +00:00
Henry Heino e4b6b34d37 Desktop: Built-in plugins: Update Backup to v1.5.1 (#14003) 2026-01-07 11:47:38 +00:00
Gerd Naschenweng 6f1280f0f5 Doc: Add Mailbox.org WebDAV to sync options (#14016) 2026-01-07 11:44:03 +00:00
bwat47 4c9015dab4 Desktop, Mobile: Fixes #13963: Images sometimes don't render until you click somewhere in the note (#14019) 2026-01-07 11:39:58 +00:00
Henry Heino 1adcafce9d Desktop, Mobile: Fixes #14030: Fix "Check synchronization configuration" button (#14031) 2026-01-07 11:37:35 +00:00
Henry Heino cc9f55e115 Chore: Refactoring: Improve ObjectUtils types (#14032) 2026-01-07 11:36:43 +00:00
Henry Heino e8b3b039df Desktop: Accessibility: Make sidebar "jump to next match" case insensitive (#14033) 2026-01-07 11:36:30 +00:00
Henry Heino d9295a69d1 Chore: OneNote importer: Don't require IS_CONTINUOUS_INTEGRATION for a dev build (#14034) 2026-01-07 11:36:11 +00:00
Henry Heino b92743b068 Desktop: Resolves #14004: OneNote import: Improve ID resolution (#14035) 2026-01-07 11:35:53 +00:00
Henry Heino 03f65a3fb1 Windows: Fixes #13549: Importing from OneNote: Fix badly encoded accents in notebook titles (#14037) 2026-01-07 11:35:42 +00:00
Henry Heino 32a22174f7 Desktop, Mobile: Resolves #13159: Markdown editor: Prevent layout shift when hiding/showing rendered checkboxes (#14044) 2026-01-07 11:34:51 +00:00
Henry Heino d154ef4f5c Chore: Desktop: Fix "net::ERR_FILE_NOT_FOUND" logged to stdout when an invalid resource is requested from the note viewer (#14045) 2026-01-07 11:34:40 +00:00
Henry Heino b8dd660c28 Desktop: OneNote import: Fix video embeds aren't imported: Import video embeds as links (#14046) 2026-01-07 11:34:31 +00:00
Henry Heino 2b20315bf5 Desktop: OneNote import: Simplify imported HTML (#14047) 2026-01-07 11:34:23 +00:00
nickprotop 93b9108832 All: Translation: Update el_GR.po (#14036) 2026-01-06 19:20:52 -05:00
renovate[bot] 0538bf0720 Update dependency @rollup/plugin-node-resolve to v16.0.2 (#14023)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-02 20:29:47 +00:00
renovate[bot] 54018c3a94 Update dependency @types/serviceworker to v0.0.157 (#14020)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-02 09:35:32 +00:00
renovate[bot] 0cb120c321 Update dependency @types/serviceworker to v0.0.156 (#14010)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-01 09:52:01 +00:00
Joplin Bot 0dab436420 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-01-01 02:03:48 +00:00
renovate[bot] 77331ca471 Update dependency @types/react to v18.3.25 (#13999)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-29 11:45:37 +00:00
krevad d467205b91 All: Translation: Update sv.po (#13997) 2025-12-28 23:47:32 -05:00
renovate[bot] 7a2f686228 Update dependency @types/nodemailer to v6.4.20 (#13998)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-28 23:26:56 +00:00
Joplin Bot fa37b87c98 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-12-28 02:03:41 +00:00
Laurent Cozic 0eed352684 Android 3.5.6 2025-12-27 20:38:40 +00:00
Laurent Cozic 6ab281d299 Revert "All: Apache Tomcat WebDAV compatibility for sync (#13614)"
Trying to fix #13992

This reverts commit 5be124b54a.
2025-12-27 20:26:36 +00:00
Laurent Cozic 5b94e0d470 Chore: CI: Disable mobile tests on macOS (#13987) 2025-12-27 01:28:15 +00:00
Joplin Bot 5372eeb64a Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-12-26 12:52:51 +00:00
Laurent Cozic f6baf036dc Android 3.5.5 2025-12-26 10:53:47 +00:00
Henry Heino 610f00029f Mobile: Update js-draw to v1.33.0 (#13990) 2025-12-26 10:19:30 +00:00
renovate[bot] 10be1a0240 Update dependency @types/serviceworker to v0.0.154 (#13991)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-26 09:41:24 +00:00
Laurent Cozic 99a9be535c Update renovate.json5 2025-12-25 18:47:55 +00:00
renovate[bot] 614a95abb8 Update dependency react-native-webview to v13.16.0 (#13982)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-24 12:16:03 +00:00
Henry Heino 7cbaae3847 Mobile: Editor: Fix search/replace UI is partially offscreen on small-screen devices (#13978) 2025-12-24 10:11:23 +00:00
Henry Heino 9e2a6d22ea Chore: Mobile: Allow disabling features known to be incompatible with small screens at build time (#13980) 2025-12-24 10:10:56 +00:00
Henry Heino f576e116a8 Mobile: Feature flags: Fix "voice typing" feature flag (#13981) 2025-12-24 10:10:12 +00:00
Joplin Bot b0e912157b Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-12-24 01:52:27 +00:00
Laurent Cozic c5598242f9 Android 3.5.4 2025-12-23 21:06:18 +00:00
Laurent Cozic 57980ae916 Lock files and prebuild assets 2025-12-23 19:44:54 +00:00
renovate[bot] 9d1720b6e1 Update dependency sass to v1.93.2 (#13972)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-23 19:41:31 +00:00
Henry Heino c4e0ed18eb Android: Attempt to fix application hang when opening the camera (#13974) 2025-12-23 19:41:13 +00:00
Henry Heino 150f6c9a3f Android: Fix react-native-vector-icons error when opening a note (#13975) 2025-12-23 19:40:44 +00:00
Henry Heino 6f3781f27a Mobile: Toolbar editor: Fix toolbar editor dismiss button is rendered outside the dialog on small screens (#13976) 2025-12-23 19:40:38 +00:00
Henry Heino 37c3d24650 Chore: Android: Allow disabling the voice typing feature at build time (#13977) 2025-12-23 19:40:29 +00:00
renovate[bot] bcb3f69d15 Update dependency expo to v53.0.23 (#13968)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-23 13:00:10 +00:00
renovate[bot] 70ffb29af4 Update dependency @playwright/test to v1.55.1 (#13970)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-23 12:59:49 +00:00
Henry Heino 5f61bee712 Mobile: Resolves #520: Viewer, Rich Text Editor: Save/restore the cursor and scroll position when switching notes (#13962) 2025-12-23 11:51:15 +00:00
Henry Heino 496d007f74 Mobile: Rich Text Editor: Fix indent/de-indent buttons do nothing when not in a list (#13961) 2025-12-23 11:50:26 +00:00
renovate[bot] 5a9b389504 Update dependency sass to v1.93.1 (#13969)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-22 04:56:42 +00:00
Henry Heino 107290177e Web: Note viewer: Fix assets from development plugins don't load (#13954) 2025-12-21 10:16:28 +00:00
renovate[bot] 5055c9af3e Update dependency @react-native-documents/picker to v10.1.7 (#13964)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 15:30:20 +00:00
renovate[bot] 2ed6650136 Update bitnamilegacy/postgresql Docker tag to v17.6.0 (#13966)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 15:30:07 +00:00
Laurent Cozic e80db6afb5 Server v3.5.2 2025-12-19 21:28:55 +00:00
renovate[bot]andLaurent Cozic 6a06922633 Update dependency @playwright/test to v1.55.0 (#13945)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-12-19 17:36:07 +00:00
renovate[bot] fd02d88739 Update dependency node-gyp to v11.4.2 (#13953)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-18 22:56:07 +00:00
renovate[bot] dacd460f64 Update dependency node-gyp to v11.4.0 (#13950)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-18 19:41:16 +00:00
Henry Heino 3279485f44 Mobile: Fixes #13081: Rich Text Editor: Fix checklists saved with extra space (#13951) 2025-12-18 19:41:03 +00:00
Henry Heino eaf8d15be7 Mobile: Rich Text Editor: Set the default math/code block content to the selection (#13952) 2025-12-18 19:40:48 +00:00
Henry Heino 6b186b965a Chore: Fix CI (#13948) 2025-12-18 17:56:09 +00:00
cedecode 7a8ac14c99 All: Translation: Update de_DE.po (#13937) 2025-12-18 12:12:53 -05:00
renovate[bot] 73291fa355 Update dependency mermaid to v11.10.1 (#13930)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-18 02:41:28 +00:00
Henry HeinoandLaurent Cozic 27ff8be432 Desktop: OneNote import: Fix certain embedded files are positioned under the header (#13898)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-12-18 01:12:35 +00:00
Linkosred 0904838311 Docs: Add video tutorial link for publish notes documentation (#13902) 2025-12-18 01:12:27 +00:00
Henry Heino 2798cc6027 Mobile: Fixes #13854: Fix some icons are invisible: Upgrade react-native-vector-icons to v12 (#13905) 2025-12-18 01:12:14 +00:00
Linkosred 1ede5bc499 Docs: Add video tutorial link for importing and exporting documentation (#13914) 2025-12-18 01:11:58 +00:00
Henry Heino 418a660a66 Chore: Allow specifying a custom API key at build time (#13917) 2025-12-18 01:11:29 +00:00
Linkosred 5bc073e888 Docs: Add section and video tutorial link about Rich text editor on mobile for Rich text documentation (#13921) 2025-12-18 01:10:50 +00:00
Henry Heino 87b443e051 Mobile: Accessibility: Dark mode: Improve contrast of conflicts notebook title, error messages in "Logs" (#13925) 2025-12-18 01:09:47 +00:00
Henry Heino 8e36644068 Desktop: OneNote importer: Add partial support for importing internal links (#13926) 2025-12-18 01:09:30 +00:00
Henry Heino 1833de789a Desktop: Fix search markers vanish when moving focus to a secondary window (#13927) 2025-12-18 01:09:09 +00:00
Henry Heino 0b18fd988b Desktop: Editor plugins: Fix error logged when pressing enter and a plugin-created input is focused (#13932) 2025-12-18 00:55:34 +00:00
Henry Heino 2ce65b9315 Clipper: Support importing math from Wikipedia and other websites (#13934) 2025-12-18 00:54:58 +00:00
renovate[bot] 8f4f0ee321 Update dependency sharp to v0.34.4 (#13923)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-17 10:25:11 +00:00
renovate[bot] 6a83cc95ee Update dependency mermaid to v11.10.0 (#13929)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-17 10:24:42 +00:00
renovate[bot] 5134b63075 Update dependency esbuild to v0.25.10 (#13924)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-16 21:43:32 +00:00
renovate[bot] 74527d7006 Update dependency dompurify to v3.2.7 (#13922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-16 19:43:18 +00:00
renovate[bot] ad909ac6f0 Update dependency @types/serviceworker to v0.0.153 (#13919)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-16 08:55:40 +00:00
summoner 5ff0285b85 ALL: Translation: Update hu_HU.po (#13915) 2025-12-15 13:11:08 -05:00
renovate[bot] bcb509a965 Update dependency @react-native-documents/picker to v10.1.6 (#13911)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-15 11:00:15 +00:00
renovate[bot] 075c98175e Update dependency fs-extra to v11.3.2 (#13910)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-15 00:48:20 +00:00
Joplin Bot 212112d4b6 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-12-14 18:38:22 +00:00
renovate[bot] 74bf0cb655 Update dependency @react-native-community/datetimepicker to v8.4.5 (#13900)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-14 17:46:57 +00:00
Laurent Cozic b2bdf84f06 Add 'yargs' to renovate.json5 dependencies 2025-12-14 15:36:37 +00:00
Laurent Cozic a2156a0548 Add yargs-parser to renovate.json5 dependencies 2025-12-14 14:41:48 +00:00
Laurent Cozic 620afdaab1 Android 3.5.3 2025-12-14 13:48:19 +00:00
Laurent Cozic 3f8928000e Chore: Clean up Android release script 2025-12-14 13:37:22 +00:00
Laurent Cozic 5caec161f2 Mobile: Add a link to the list of open-source licenses 2025-12-13 00:03:26 +00:00
Laurent Cozic daab2223e7 Chore: Fix CI 2025-12-12 16:46:53 +00:00
Laurent Cozic f96071870c All: Fixes #12172: Markdown import incorrectly parses a link as a file path 2025-12-12 14:53:35 +00:00
Laurent Cozic 5e08abb7a9 Desktop: Fixes #12367: When using RTE, switching to a note from go to anything search results with keyboard immediately updates note last modified date 2025-12-12 14:31:50 +00:00
Laurent Cozic 2c71557d88 All: Fixes #12770: Import Error: Note date incorrect when import notes with import MD - Markdown + Front Matter 2025-12-12 12:35:38 +00:00
Laurent Cozic d551963669 All: Fixes #13008: Importing MD + frontmatter fails on empty variable 2025-12-12 11:53:03 +00:00
Laurent Cozic 7dae90c9f3 Linux: Fixes #13038: Do not suggest downgrading the app when a version has been unpublished 2025-12-12 11:29:40 +00:00
Laurent Cozic 46820fb21b Server: Fixes #13059: Confusing error message if a published note has not been synced to the server 2025-12-12 10:56:22 +00:00
Laurent Cozic a18e49ab54 Chore: Fixes #13358: Fix randomly failing test on app/command-rmnote.test 2025-12-12 10:27:25 +00:00
Laurent Cozic 2c6eaca442 Desktop: Fixes #13814: Remove architecture warning on Windows ARM with Apple silicon 2025-12-12 10:05:37 +00:00
Laurent Cozic 44de1246d9 Desktop: Fixes #13880: Warning logged on startup when ABC Sheet Music plugin is not installed 2025-12-12 09:49:57 +00:00
renovate[bot] ab3a0ab69f Update dependency pg-boss to v10.3.3 (#13894)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-12 04:13:14 +00:00
Laurent Cozic 896f0e0bc5 Doc: Clarify difference between JS and JSB 2025-12-11 18:29:56 +00:00
Henry Heino e2c933db82 Chore: Resolves #13866: Create a tool that lists dependencies of a package and its licenses (#13874) 2025-12-11 15:16:41 +00:00
Henry Heino 30c5031611 Mobile: Rich Text Editor: Fix table delete row/delete column buttons can't remove the last row/column from a table (#13877) 2025-12-11 15:16:13 +00:00
Henry Heino e7f14a0995 Desktop: Fixes #13872: Fix importing HTML links with multi-line titles as Markdown (#13876) 2025-12-11 15:15:28 +00:00
Henry Heino 319bf79bc1 Mobile: Upgrade js-draw to v1.32.0 (#13875) 2025-12-11 08:17:37 +00:00
renovate[bot] 02f94adb96 Update dependency nodejs to v24.5.0 (#13890)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-10 16:25:17 +00:00
Laurent Cozic 2370c12129 Revert "Update dependency @react-native/babel-preset to v0.81.0" (#13888) 2025-12-10 12:56:15 +00:00
Laurent Cozic 8d074a563b Update renovate.json5 2025-12-10 12:55:48 +00:00
renovate[bot] 1014edfdeb Update dependency @react-native/babel-preset to v0.81.0 (#13886)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-10 12:54:43 +00:00
Laurent Cozic 364bdd9bb0 Chore: Allow specifying a custom API key at build time 2025-12-09 15:33:07 +00:00
Laurent Cozic 8d6b219191 lock file 2025-12-09 15:07:45 +00:00
Laurent Cozic 2455245f86 Chore: Allow creating a custom build of the Android app 2025-12-09 15:07:28 +00:00
Laurent Cozic c669a3986e Tools: Allow generating Android images using generate-imgae script 2025-12-09 10:53:57 +00:00
Laurent Cozic 5f1a1e50d9 Doc: Add forum background images 2025-12-09 00:06:48 +00:00
Self Not Found 819a591cc0 Desktop: Add CJK characters counter in statistics panel (#13840) 2025-12-08 18:52:09 +00:00
mrjo118 421b82c86d Mobile: Add the ability to rename and delete tags (#13731) 2025-12-08 10:15:34 +00:00
Henry Heino 16169b2780 Server: Periodically delete old backups for archived accounts (#13741) 2025-12-08 10:15:18 +00:00
49ed4ae920 Docs: add links to clarify "plugins" references (#13763)
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-12-08 10:11:26 +00:00
mrjo118 13777d261c Desktop: Replace the edit profile config menu option with a gui to manage profiles (#13771) 2025-12-08 10:08:58 +00:00
Henry Heino 1c7b0e6266 Mac: Fixes #13214: Markdown editor: Don't open links on ctrl-click (#13792) 2025-12-08 10:07:41 +00:00
Henry Heino 4589670126 Chore: Server: Debug: Add debug benchmarkDeltaPerformance API (#13801) 2025-12-08 10:07:25 +00:00
marph91 b6ab6e0b46 Desktop: Use the "--no-sandbox" flag for Tuxedo OS (#13810) 2025-12-08 10:06:42 +00:00
mrjo118 9b28b618bb Desktop, Mobile: Do no re-use the 'Restored Notes' folder if it is trashed (#13813) 2025-12-08 10:06:25 +00:00
Bartolomeo bf7cc6be03 Desktop: Resolves: #13804: Change search Resources feature to case insensitive (#13824) 2025-12-08 10:04:31 +00:00
mrjo118 e5e5b342a7 Mobile: Fixes #13825: Fix incompatible plugins cannot be uninstalled (#13828) 2025-12-08 10:03:23 +00:00
Henry Heino 9709721a73 Desktop: OneNote importer: Fix missing content in imported notebooks, improve math formula import (#13829) 2025-12-08 09:59:58 +00:00
Henry Heino a34010ef62 Chore: Tests: Make renderBlockImages.test.ts less likely to fail in CI (#13835) 2025-12-08 09:59:50 +00:00
Henry Heino 9a6043e6a6 Chore: Desktop: Migrate the "Share note" dialog to RSCSS (#13842) 2025-12-08 09:53:15 +00:00
Henry Heino 992bf683c4 Chore: Server: Create more realistic test data (#13843) 2025-12-08 09:53:05 +00:00
Henry Heino b40c2b8a41 Desktop: Fixes #13844: OneNote importer: Fix wrong page version imported (#13850) 2025-12-08 09:52:51 +00:00
Henry Heino 8dcd08e21d Server: Ensure that shared items are processed in the correct order (#13858) 2025-12-08 09:52:39 +00:00
mrjo118 cb2b32520d Mobile: Prevent opening the edit / delete dialog when long pressing the conflicts notebook (#13860) 2025-12-08 09:51:12 +00:00
Henry Heino 315b1d8275 Desktop: Markdown Editor: Collapse selection to a single cursor when pressing "escape" (#13864) 2025-12-08 09:49:50 +00:00
renovate[bot] 8018f1269a Update dependency react-native-share to v12.2.0 (#13861)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-07 10:17:21 +00:00
renovate[bot] c2d186188b Update dependency react-native-safe-area-context to v5.6.1 (#13868)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-06 11:05:56 +00:00
renovate[bot] d5798e558b Update dependency react-native-safe-area-context to v5.6.0 (#13865)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-06 09:37:17 +00:00
renovate[bot] 224bcd54f1 Update dependency fs-extra to v11.3.1 (#13849)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-03 23:45:31 +00:00
Laurent Cozic 1a3d572498 Server v3.5.1 2025-12-03 11:56:50 +00:00
Laurent Cozic 848a2c986a Chore: Remove the need for yarn when bumping version number
Since "yarn version patch" also performs "yarn install" which is usually unnecessary
2025-12-03 11:56:04 +00:00
renovate[bot] fc61a2bc6a Update dependency raw-body to v3.0.1 (#13846)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-03 06:55:14 +00:00
Henry Heino f9d58742c0 Desktop: Support converting multiple notes from HTML to Markdown at once (#13802) 2025-12-01 18:52:01 +00:00
renovate[bot] 5ba8cefe7c Update dependency nodejs to v24.4.1 (#13833)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-01 18:51:35 +00:00
renovate[bot] 74484f194e Update Node.js to v24 (#13834)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-01 18:51:30 +00:00
renovate[bot] eae569aff8 Update dependency lint-staged to v16.1.6 (#13831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-01 13:58:57 +00:00
renovate[bot] 8734bc8467 Update dependency nodejs to v24 (#13832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-01 13:58:50 +00:00
renovate[bot] 612d09d16f Update dependency lint-staged to v16.1.2 (#13822)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-01 12:07:32 +00:00
Joplin Bot eb2e9419b9 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-12-01 02:04:54 +00:00
renovate[bot] 17935458e6 Update dependency react-native-web to v0.21.1 (#13823)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-01 01:24:20 +00:00
renovate[bot] a69a5d98ee Update dependency react-native-web to v0.21.0 (#13819)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 19:10:02 +00:00
renovate[bot] 48c9c1112c Update dependency lint-staged to v16 (#13820)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 19:09:41 +00:00
Kachelkaiser a6585a67d0 All: Translation: Update de_DE.po (#13815) 2025-11-30 13:16:12 -05:00
renovate[bot] 959e1522d4 Update dependency babel-plugin-react-native-web to v0.21.1 (#13818)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 18:12:52 +00:00
renovate[bot] 8605e5aad5 Update dependency ts-loader to v9.5.4 (#13808)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 16:02:04 +00:00
renovate[bot] 88af5208f5 Update dependency babel-plugin-react-native-web to v0.21.0 (#13811)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 16:01:48 +00:00
renovate[bot] bef73dbbf5 Update dependency rate-limiter-flexible to v7.2.0 (#13817)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 16:01:41 +00:00
renovate[bot] b23c50cc7d Update dependency node-gyp to v11.3.0 (#13812)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 12:41:42 +00:00
Joplin Bot 3e90a9392d Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-11-29 18:37:14 +00:00
renovate[bot] e2a32c5993 Update dependency git to v2.50.1 (#13807)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 16:59:17 +00:00
renovate[bot] 759761086d Update dependency dayjs to v1.11.18 (#13806)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 16:57:30 +00:00
Laurent Cozic ca29ed94cc Chore: Updated CLA signatures and consent record 2025-11-29 14:07:08 +00:00
Laurent Cozic f815933ad0 Chore: Improved saveClaConsentRecords script to display any mistake in data 2025-11-29 14:06:46 +00:00
Laurent Cozic 67af879d38 Chore: Updated signatures.json 2025-11-29 13:51:23 +00:00
Laurent Cozic 2e310e0f79 iOS 13.5.1 2025-11-29 12:56:34 +00:00
Laurent Cozic e63041766f Android 3.5.1 2025-11-29 12:45:14 +00:00
renovate[bot] 93997277b6 Update dependency @types/serviceworker to v0.0.152 (#13805)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 12:29:27 +00:00
Laurent Cozic 4afac412ce Desktop release v3.5.9 2025-11-29 12:27:27 +00:00
Laurent Cozic b79bf11680 Chore: Fixed version patching 2025-11-29 12:25:58 +00:00
Laurent Cozic 10d727f183 Desktop release 3.5.8 2025-11-29 12:14:40 +00:00
Laurent Cozic 50e2dc7749 Chore: Replaced npm version patch by yarn version patch
`npm version patch` now seems to run `npm install` too and messes up the repository
2025-11-29 12:14:05 +00:00
Laurent Cozic 5108fe5b24 Chore: lock files 2025-11-29 11:41:19 +00:00
Laurent Cozic 3536a68cfe Chore: lock files 2025-11-29 10:58:53 +00:00
Henry Heino d94d057f1d Desktop: Plugins: Add an "importFrom" command to allow importing notes and notebooks (#13534) 2025-11-29 10:53:58 +00:00
mrjo118 8ec11bddc2 Mobile: Extend notebook selection dropdowns when the dropdown is opened (#13726) 2025-11-29 10:51:56 +00:00
mrjo118 4813c79b35 Mobile: Add the ability to search on the tag list screen (#13733) 2025-11-29 10:49:39 +00:00
renovate[bot] 7778a68764 Update dependency git to v2.50.0 (#13759)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 10:42:37 +00:00
renovate[bot] 503e748ca8 Update dependency react-native-vector-icons to v10.3.0 (#13760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 10:42:26 +00:00
Henry Heino b6297b609e Chore: Refactor: Make custom MultiTouchableOpacity component closer to a drop-in-replacement for TouchableOpacity (#13762) 2025-11-29 10:28:05 +00:00
Henry Heino 31d37b30b0 Docs: Fix lower half of Markdown documentation is marked as a code block (#13766) 2025-11-29 10:26:56 +00:00
Henry Heino 0ccd7e474d Desktop: Upgrade to Electron 39.2.3 (#13767) 2025-11-29 10:26:47 +00:00
renovate[bot] 046cfece32 Update dependency ldapts to v8.0.9 (#13768)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 10:26:39 +00:00
bwat47 0280bb80b9 Desktop,Mobile: Hide backslash escapes when "Markdown editor: Render markup in editor" is enabled (#13773) 2025-11-29 10:05:13 +00:00
Henry Heino 8a61f4ec54 Mobile: Rich Text Editor: Support inserting code blocks (#13776) 2025-11-29 10:04:28 +00:00
Henry Heino d7dd16aac1 Desktop: OneNote importer: Change source label from ZIP to ONE (#13778) 2025-11-29 10:04:13 +00:00
Henry Heino e1ed573c33 Chore: Mobile plugin IPC: Fix possible error format issue (#13780) 2025-11-29 10:03:36 +00:00
Henry Heino b6c8347549 Chore: Renderer: Convert resourceId to a string in a safer way (#13781) 2025-11-29 10:03:28 +00:00
Henry Heino b150d6453d Mobile: Rich Text Editor: Improve support for ABC sheet music and Mermaid code blocks (#13784) 2025-11-29 10:03:22 +00:00
Henry Heino 9feba9345d Mobile: Rich Text Editor: Fix error when pressing enter (#13788) 2025-11-29 10:03:15 +00:00
Henry Heino 7fa3a3b545 Desktop: OneNote importer: Handle the case where an entity GUID is missing (#13789) 2025-11-29 10:02:57 +00:00
Henry HeinoandLinkosed fed2438bc3 Docs: OneNote import: Update import documentation (#13790)
Co-authored-by: Linkosed <linkosed@users.noreply.github.com>
2025-11-29 09:58:22 +00:00
Henry Heino 31cb404854 Desktop: Fixes #13745: Prevent cut events from being merged with other actions in the undo history (#13791) 2025-11-29 09:57:46 +00:00
Henry Heino dba3a3f68f Desktop: Add loading indicator to the sync status screen (#13796) 2025-11-29 09:55:00 +00:00
Henry Heino 14f8f51cd1 Desktop: Accessibility: Disable the loading animation when 'reduce motion' is enabled (#13797) 2025-11-29 09:54:47 +00:00
Henry Heino 2240cf77b5 Chore: Server: Debug: Add debug populateDatabase API (#13800) 2025-11-29 09:54:05 +00:00
Milo Ivir 599f7a24ce All: Translation: Update hr_HR.po (#13769) 2025-11-26 17:33:21 -05:00
Henry Heino f177563c4a Chore: Mobile: Fix test warnings (#13798) 2025-11-26 22:11:50 +00:00
Laurent Cozic a0bdc1fa9b Doc: Update donate links 2025-11-22 16:11:16 +00:00
Joplin Bot f566e5c336 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-11-22 12:45:34 +00:00
renovate[bot] 87d07eff4a Update dependency ldapts to v8 (#13765)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-22 12:41:50 +00:00
github-actions[bot] 3caf41984f @carehart has signed the CLA in laurent22/joplin#13763 2025-11-22 05:01:45 +00:00
Laurent Cozic 7a31f1f156 Desktop release v3.5.7 2025-11-21 19:32:11 +00:00
Henry Heino 090c1d9706 Desktop: Accessibility: Fix last items in note actions menu cannot be accessed on small screens (#13756) 2025-11-21 19:28:33 +00:00
Henry Heino 5e2b79557c Server: Fix report service fails when there are a very large number of items to be processed (#13721) 2025-11-21 19:28:10 +00:00
Henry Heino 74fa2a6eb9 Server: Slightly improve delta performance (#13730) 2025-11-21 19:27:28 +00:00
Henry Heino 791668455e Desktop: Resolves #13464: OneNote importer: Don't stop the import process when a page fails to render (#13736) 2025-11-21 19:26:14 +00:00
renovate[bot] 91aedc5efa Update bitnamilegacy/postgresql Docker tag to v17.5.0 (#13737)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-21 19:26:07 +00:00
Henry Heino 6b2d9ba5ec Server: Save and query less data when creating and updating items (#13739) 2025-11-21 19:25:47 +00:00
bwat47 d8920840f2 Desktop: Fixes #13707: Fix text contrast issues with Aritim, Dracula, and Nord themes (#13740) 2025-11-21 19:24:18 +00:00
bwat47 bf571c5961 Desktop,Mobile: Add support for rendering html images when "Markdown editor: Render images" is enabled (#13743) 2025-11-21 19:19:19 +00:00
Henry Heino a7b22edbc4 Chore: Remove unused type definition dependency (#13747) 2025-11-21 19:18:37 +00:00
Henry Heino f4904d8155 Chore: Remove no-longer-necessary Promise polyfill (#13748) 2025-11-21 19:18:28 +00:00
Henry Heino fab633bbb4 Cli: Fix startup failure (#13749) 2025-11-21 19:17:20 +00:00
Henry Heino cda4073bfc Chore: Cli: Run integration tests in CI (#13750) 2025-11-21 19:17:13 +00:00
Henry Heino 903edb8fa2 Chore: Desktop: Remove unused dependency (#13752) 2025-11-21 19:16:49 +00:00
Laurent Cozic f3409600e1 All: Allow using share permission with Joplin Server Business 2025-11-21 19:14:00 +00:00
Laurent Cozic 9f36b44842 All: Fix issue with shared notebooks and SAML sync 2025-11-21 18:21:28 +00:00
Laurent Cozic 6f41234db3 Doc: Improve SAML doc 2025-11-21 18:20:27 +00:00
Laurent Cozic 2feebf504e Doc: Update donate page 2025-11-21 16:09:39 +00:00
Laurent Cozic 3312e96b0d Doc: Update donate page 2025-11-21 15:24:11 +00:00
renovate[bot] af5108d702 Update dependency @fortawesome/react-fontawesome to v0.2.6 (#13744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-20 08:24:51 +00:00
Henry HeinoandLaurent Cozic 0f4877f263 Chore: Sync fuzzer: Allow generating large amounts of test data for Joplin Server (#13636)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-11-18 22:53:44 +00:00
Henry Heino 46c22fffb9 Desktop,Mobile: Resolves #12959: Remove image height limit in Markdown editor (#13717) 2025-11-18 22:53:14 +00:00
renovate[bot] ae5bc1b849 Update dependency @types/nodemailer to v6.4.19 (#13728)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-18 21:47:40 +00:00
Henry Heino 907da6caa9 Desktop: OneNote importer: Don't stop the import process if a style object can't be found (#13719) 2025-11-18 21:40:49 +00:00
renovate[bot] 57a4a687d1 Update dependency @fortawesome/react-fontawesome to v0.2.5 (#13723)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-18 16:10:04 +00:00
github-actions[bot] 865d39d657 @Wohlstand has signed the CLA in laurent22/joplin#13727 2025-11-18 15:23:06 +00:00
Henry Heino 00aecd63d4 Desktop: Resolves #1556: Support selecting multiple notebooks (#13612) 2025-11-17 22:14:28 +00:00
Henry Heino bd569b9d8d Mobile: Rich Text Editor: Add button for creating tables (#13645) 2025-11-17 22:06:42 +00:00
Henry Heino ad4a8aa76d Server: Improve error message when font file cannot be loaded (#13682) 2025-11-17 22:01:34 +00:00
Self Not Found c67dcebbbe All: Fix text highlighting in basic search mode (#13703) 2025-11-17 22:01:22 +00:00
renovate[bot]andLaurent Cozic 0e135adbe2 Update dependency mermaid to v11.9.0 (#13708)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-11-17 21:27:33 +00:00
Laurent Cozic 43e83e7cee Chore: Improve error message when an asset cannot be removed 2025-11-16 22:53:02 +00:00
renovate[bot] d1dcc6ced5 Update dependency @types/serviceworker to v0.0.150 (#13710)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-16 19:27:52 +00:00
Laurent Cozic 8425f195f8 Doc: Suggest log level in CLI install command 2025-11-16 15:54:21 +00:00
renovate[bot]andLaurent Cozic 055177f726 Update dependency turndown to v7.2.1 (#13690)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-11-16 09:41:21 +00:00
Liffindra Angga Zaaldian 1674df2c0f All: Translation: Update id_ID.po (#13706) 2025-11-15 10:29:06 -05:00
renovate[bot] 29fa117d36 Update dependency react-native-localize to v3.5.2 (#13705)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-15 14:40:27 +00:00
renovate[bot] f08eaae7ed Update dependency @types/nodemailer to v6.4.18 (#13704)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-15 14:38:03 +00:00
Joplin Bot 9573bb6af7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-11-15 12:46:15 +00:00
Henry HeinoandLaurent Cozic cb6bafcac6 Chore: Update js-yaml to v4.1.1 (#13702)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-11-15 11:17:18 +00:00
Henry HeinoandLaurent Cozic d89aae5371 Server: Upgrade NodeJS to v24 (#13701)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-11-15 11:17:06 +00:00
Henry Heino 0b0ffe06d4 Desktop: Fixes #13561: Upgrade to Electron 39 (#13567) 2025-11-15 09:21:18 +00:00
mrjo118 2ab720ff87 Desktop, Mobile: Fixes #13258: Prevent new notes from being created in trashed or missing notebooks in certain cases (#13575) 2025-11-15 09:21:00 +00:00
Henry Heino b9b07790d7 Chore: Desktop: Editor: Don't update the global Redux state on cursor motion (#13580) 2025-11-15 09:16:36 +00:00
Laurent Cozic 3dca34952b Desktop: Move ABC rendering from plugin to main app (#13599) 2025-11-15 09:11:29 +00:00
horvatkm 5be124b54a All: Apache Tomcat WebDAV compatibility for sync (#13614) 2025-11-15 09:07:39 +00:00
mrjo118 51dd0d3fdc Chore: Fix intermittent revision test failure attempt 2 (#13622) 2025-11-15 09:06:46 +00:00
horvatkm 7955f15298 Desktop: Resolves #13625: Skip over unsupported image formats during processing paste event (#13630) 2025-11-15 09:03:27 +00:00
renovate[bot]andLaurent Cozic fdf6091006 Update dependency react-native-localize to v3.5.1 (#13651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-11-15 09:02:45 +00:00
mrjo118 bb1c5792cc Mobile: Fixes #13637: Fix incorrect zebra striping on tables in the rich text editor (#13663) 2025-11-15 09:02:36 +00:00
Henry Heino 75544c943c Mobile: Hide Markdown-editor-only buttons in the Rich Text Editor (#13664) 2025-11-15 09:02:15 +00:00
Henry Heino db9967d4fd Server: Performance: Improve performance of requests-per-minute logger (#13670) 2025-11-15 09:02:02 +00:00
Saturn&Eric 07a66ca62c Server: Update @aws-sdk/client-s3 to v3.928.0 (#13673) 2025-11-15 09:01:49 +00:00
renovate[bot] 3e3dc4392c Update dependency esbuild to v0.25.9 (#13677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-15 09:01:14 +00:00
Henry Heino 57504a1795 Server: Database: Adjust connection pool configuration, make connection pool size configurable (#13681) 2025-11-15 09:00:24 +00:00
Henry Heino 9e9d2699b5 Server: Improve error when attempting to load certain routes that do not exist (#13683) 2025-11-15 08:58:36 +00:00
Henry Heino 4a0d9220ba Server: Fixes #13686: Fix items can be incorrectly unshared on conflicting update (#13691) 2025-11-15 08:58:16 +00:00
Henry Heino 86a7771d5b Desktop: Fixes #13694: Fix settings aren't saved before opening the SAML login screen (#13696) 2025-11-15 08:58:06 +00:00
Henry Heino d792a6b3a9 Desktop: Fixes #13549: OneNote importer: Support converting checklists to Markdown (#13698) 2025-11-15 08:56:44 +00:00
mrjo118 e8a083b7bd Web: Fix find and replace toolbar in note editor is too squashed on small mobile screens (#13697) 2025-11-15 08:56:32 +00:00
Henry Heino 41ed6ab364 Chore: CI: Upgrade NodeJS to v24 (#13700) 2025-11-15 08:55:45 +00:00
Henry Heino b587e9ad37 Chore: Fix CI (#13699) 2025-11-15 08:54:36 +00:00
Laurent Cozic e3f9fafcdf Revert "Chore: Resolves #13643: Update Esperanto translation (Credit: @paleid)"
This reverts commit aef9429f21.
2025-11-14 01:08:29 +00:00
Joplin Bot c0ba743d70 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-11-13 12:53:26 +00:00
Joplin Bot 523660006d Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-11-13 06:41:07 +00:00
Laurent Cozic aef9429f21 Chore: Resolves #13643: Update Esperanto translation (Credit: @paleid) 2025-11-12 22:29:37 +00:00
renovate[bot] 58e2bba1ed Update dependency esbuild to v0.25.9 (#13676)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-12 04:49:37 +00:00
renovate[bot] cee44bcdc3 Update dependency @adobe/css-tools to v4.4.4 (#13667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-11 22:51:42 +00:00
renovate[bot] 9a120bc0d5 Update dependency react-native-dropdownalert to v5.2.0 (#13657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-11 22:51:20 +00:00
Henry Heino d1415a318c Server: Performance: Improve performance of updating shared items, generating reports (#13674) 2025-11-11 22:49:24 +00:00
github-actions[bot] d701b9b1bd @Kallemakela has signed the CLA in laurent22/joplin#13675 2025-11-11 22:09:54 +00:00
github-actions[bot] f8fe143809 @saturneric has signed the CLA in laurent22/joplin#13673 2025-11-11 21:06:32 +00:00
Jason LewisandLaurent Cozic e626db3b8c Doc: Resolves #13665: Remind users not to use the Nextcloud desktop client for syncing. (#13666)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-11-11 09:44:53 +00:00
github-actions[bot] 9e0491ef2f @jasonblewis has signed the CLA in laurent22/joplin#13666 2025-11-11 01:09:38 +00:00
Frank Fesevur 053bd91984 All: Translation: Update nl_NL.po (#13653) 2025-11-08 20:22:03 -05:00
Laurent Cozic c76059cf7f Server: Optimise delta query (#13650) 2025-11-08 22:57:29 +01:00
ERYpTION 6d6bc78d53 All: Translation: Update da_DK.po (#13652) 2025-11-08 16:56:23 -05:00
renovate[bot] 8855495822 Update dependency react-native-localize to v3.5.0 (#13647)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 13:12:17 +01:00
renovate[bot] 3491fea313 Update dependency @playwright/test to v1.54.2 (#13649)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 13:12:06 +01:00
renovate[bot] 66f5e2fbc3 Update dependency @playwright/test to v1.54.0 (#13641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 11:47:07 +01:00
renovate[bot] 3640bf8ae7 Update dependency nan to v2.23.0 (#13642)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 11:46:57 +01:00
Laurent Cozic 977edf6e5d Server: Fix slow delta queries (#13639) 2025-11-08 11:02:55 +01:00
renovate[bot] e8f067a0b2 Update dependency @crowdin/cli to v4.9.0 (#13638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-07 14:41:44 +01:00
Henry Heino f971e2aa4c Server: Upgrade koa to v2.16.3 (#13626) 2025-11-07 10:42:15 +01:00
renovate[bot] b15b92d161 Update dependency git to v2.49.0 (#13635)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-07 10:41:47 +01:00
renovate[bot] 1c5f66b5a9 Update dependency @react-native-community/datetimepicker to v8.4.4 (#13634)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-06 23:48:24 +00:00
github-actions[bot] 1f77357c7d @Bappoz has signed the CLA in laurent22/joplin#13588 2025-11-06 20:55:57 +00:00
Laurent Cozic aaeb5db3c7 Server: Optimise delta sub-query (#13633) 2025-11-06 20:27:47 +01:00
Laurent Cozic 996a0894ae Chore: Fixed Postgres tool path for new Homebrew version 2025-11-06 17:50:59 +01:00
Laurent Cozic 66fa3fc808 Server: Remove query optimisation that now seems to be slower with newer versions of Postgres 2025-11-06 17:12:45 +01:00
renovate[bot] dab55daf95 Update dependency prosemirror-model to v1.25.3 (#13623)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-05 02:16:07 +00:00
summoner 7f1c31e03f All: Translation: Update hu_HU.po (#13620) 2025-11-04 15:42:36 -05:00
cedecode 0a8255f091 All: Translation: Update de_DE.po (#13618) 2025-11-04 15:41:04 -05:00
Helmut K. C. Tessarek 9f3e6650a9 Update translations 2025-11-03 17:23:28 -05:00
mrjo118 4a17da3df5 All: Fixes #13531: When creating a conflict, ensure the latest note contents are used to create the conflict (#13552) 2025-11-03 20:21:05 +01:00
Henry Heino 2c4f0d4d8c Desktop: Fixes #13574: Fix crash when opening the legacy Markdown editor (#13576) 2025-11-03 20:12:39 +01:00
Henry Heino 9c1c2fb0d4 Chore: Desktop: Enable source maps for error reporting by default (#13577) 2025-11-03 20:12:24 +01:00
Henry Heino 2332e4bf62 Desktop: Fixes #13579: Rich Text Editor: Make cursor jump during editing less likely (#13581) 2025-11-03 20:11:45 +01:00
Henry Heino a488ac1b27 Desktop: Fixes #13177: Location: Remove geoplugin.net from location providers (#13583) 2025-11-03 20:11:37 +01:00
Henry Heino 6daa41ca66 All: Fixes #13291: Improve performance of item deserialization (#13585) 2025-11-03 20:11:21 +01:00
Henry Heino cc9517f1a2 Desktop: Resolves #13586: Preserve scroll when switching between Markdown and Rich Text Editors (#13587) 2025-11-03 20:11:12 +01:00
github-actions[bot] c53d18e068 @horvatkm has signed the CLA in laurent22/joplin#13613 2025-11-03 17:08:09 +00:00
Henry Heino 200a471e55 Chore: OneNote importer: Remove unused dependency (#13590) 2025-11-03 12:21:03 +01:00
renovate[bot] c21d37bd91 Update dependency @types/serviceworker to v0.0.149 (#13604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 12:20:50 +01:00
renovate[bot] e36cd0e60b Update dependency mermaid to v11.8.1 (#13607)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-02 21:16:04 +00:00
VortexP 871f55bf11 All: Translation: Update fi_FI.po (#13605) 2025-11-02 16:13:27 -05:00
renovate[bot] 22c9fed663 Update dependency mermaid to v11.8.0 (#13589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-02 20:14:11 +01:00
renovate[bot] ea362d7a82 Update dependency @electron/remote to v2.1.3 (#13594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-02 20:13:54 +01:00
renovate[bot] 9ae9347f89 Update eslint (#13597)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-01 20:28:29 +00:00
Joplin Bot ae8bb902f9 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-11-01 01:50:23 +00:00
renovate[bot] 90eeec23de Update eslint (#13595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-01 01:49:05 +00:00
github-actions[bot] fe8ad1fa74 @mariadenis has signed the CLA in laurent22/joplin#13593 2025-10-31 22:47:47 +00:00
github-actions[bot] dfc0a96567 @HarmonicSoldier has signed the CLA in laurent22/joplin#13592 2025-10-31 21:57:08 +00:00
Henry Heino 474fd094c4 Chore: Update licenses.md (#13582) 2025-10-31 10:28:04 +01:00
renovate[bot] 937d8fa4f7 Update dependency react-native-share to v12.1.2 (#13570)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-30 12:10:11 +01:00
renovate[bot] 45c9844616 Update dependency @types/serviceworker to v0.0.148 (#13568)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-30 10:49:02 +01:00
Joplin Bot 12b8ef5a54 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-10-29 18:41:30 +00:00
mrjo118 18f72c224e Mobile: Fixes #13151: Reset the state of undo and redo buttons when switching editor (#13505) 2025-10-29 18:22:56 +01:00
mrjo118 7ca3aaa83f Web: Fixes #13241: Find and replace toolbar in the note editor is not sized correctly (#13559) 2025-10-29 18:21:30 +01:00
mrjo118 04b1443e5a Mobile: Make title field work with very long text (#13566) 2025-10-29 18:20:56 +01:00
mrjo118 c461741778 All: Fixes #13319: Treat unclosed quotes as fully quoted search terms, to prevent malformed match expression error (#13564) 2025-10-29 18:19:38 +01:00
renovate[bot] 2865b0a803 Update dependency follow-redirects to v1.15.11 (#13565)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-29 17:58:37 +01:00
Laurent Cozic 21e49be22f Doc: Fixed order of tags in spellcheck document 2025-10-29 17:56:40 +01:00
Laurent Cozic fef761cbab Doc: Added documentation to setup Joplin Server with Keycloak to test SAML auth 2025-10-29 17:55:07 +01:00
renovate[bot]andLaurent Cozic c15a353dc2 Update dependency react-native-safe-area-context to v5.5.2 (#13496)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-10-29 14:00:36 +01:00
Laurent Cozic ffb32766c1 Desktop release v3.5.6 2025-10-29 13:45:27 +01:00
Henry Heino 038908550e Chore: Desktop: Share folder dialog: Remove duplicate "refreshShares" call (#13535) 2025-10-29 13:43:56 +01:00
Henry Heino 42f59134ae Desktop: Fixes #13549: OneNote importer: Task lists: Fix checkbox sizes and accessibility (#13558) 2025-10-29 13:43:48 +01:00
Laurent Cozic fc0014c0b5 All: Open the connection screen when a SAML session has expired 2025-10-29 13:42:11 +01:00
Laurent Cozic 42d8df3036 Desktop, Cli, Mobile: Ensure that sync process ends up properly when Joplin Server shares cannot be accessed 2025-10-29 13:42:11 +01:00
Frank Fesevur 1fad9ca1cc All: Translation: Update nl_NL.po (#13556) 2025-10-28 17:37:04 -04:00
Laurent Cozic ae289be77a Server: Add support for DELETE_EXPIRED_SESSIONS_SCHEDULE to prevent auto-logout when using SAML login 2025-10-28 17:37:38 +01:00
Laurent Cozic 7f6bfe9c6e Doc: Clarifies that SAML does not support the API_BASE_URL 2025-10-28 17:21:57 +01:00
Laurent Cozic ead4001b7a Revert "Server: Fix SAML routes to prevent cookie issues on redirect (#13557)"
This reverts commit a4556bf598.
2025-10-28 17:05:27 +01:00
Laurent Cozic 7b95ef72a0 Server: Fixes #13368: Cannot login with SAML when already logged in on the browser 2025-10-28 16:59:42 +01:00
Laurent Cozic a4556bf598 Server: Fix SAML routes to prevent cookie issues on redirect (#13557) 2025-10-28 16:58:11 +01:00
mrjo118 8d6268dc92 Chore: Fix intermittent revision test failure (#13458) 2025-10-28 11:35:07 +01:00
Henry Heino 7ffcbdf60a Server: Fixes #13490: Make server less likely to generate non-unique SSO codes (#13501) 2025-10-28 11:34:22 +01:00
mrjo118 76989ddc45 Mobile: Fixes #13120: Fix truncated buttons on tag association screen (#13502) 2025-10-28 11:33:52 +01:00
mrjo118 1db1254617 Mobile: Fixes #12957: Avoid dismissing the keyboard when tapping markdown toolbar buttons with the title in focus (#13504) 2025-10-28 11:33:36 +01:00
mrjo118 9810bffddc Mobile: Fixes #11468: Ensure note list is re-ordered after updating a note opened via a search (#13506) 2025-10-28 11:28:59 +01:00
Henry Heino b25e18107b Desktop,Mobile,Cli: Fixes #13522: Fix "cannot add an item as a child of a read-only item" error when updating share IDs (#13523) 2025-10-28 11:28:37 +01:00
Henry Heino edc5fe5d1b Desktop: Allow adding and removing users from a share while a sync is in progress (#13529) 2025-10-28 11:26:46 +01:00
Henry Heino 7ffb44b3a4 Desktop: Fixes #13537: Fix adding a new user to a share creates an unused E2EE key (#13538) 2025-10-28 11:23:02 +01:00
Henry Heino 32f4c33140 Desktop: Disallow unsharing a folder while sharing is in progress (#13551) 2025-10-28 11:22:13 +01:00
renovate[bot] 1a7b09c91c Update dependency koa to v2.16.2 (#13554)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-28 09:40:08 +00:00
renovate[bot] e5bf8e0e58 Update dependency @types/node-fetch to v2.6.13 (#13553)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-28 09:38:10 +00:00
renovate[bot] 94725c533c Update dependency @react-native-community/datetimepicker to v8.4.3 (#13547)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-26 14:46:31 +00:00
Jozef Gaal 359c92b64f All: Translation: Update sk_SK.po (#13542) 2025-10-25 16:28:26 -04:00
renovate[bot] 8f8b8ad943 Update dependency dotenv to v16.6.1 (#13543)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-25 14:36:57 +00:00
renovate[bot] dd2f329fd5 Update dependency @types/serviceworker to v0.0.147 (#13541)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-25 14:34:38 +00:00
mrjo118 813f594cb4 Mobile: Increase height of tag association screen to cater for a larger tag list area (#13521) 2025-10-25 14:13:15 +02:00
mrjo118 0e0ce49867 Mobile: Fixes #13108: Markdown toolbar overlaps with the gesture bar (#13533) 2025-10-25 14:12:37 +02:00
Henry Heino e485d318b7 Desktop: Accessibility: Improve dialog keyboard handling (#13536) 2025-10-25 14:09:10 +02:00
renovate[bot] 4e82d81df1 Update dependency dotenv to v16.6.0 (#13539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-25 14:04:29 +02:00
Frank Fesevur d5dbda201b All: Translation: Update nl_NL.po (#13519) 2025-10-23 15:29:45 -04:00
Joplin Bot 831258506b Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-10-23 12:52:21 +00:00
renovate[bot] 67f3329ecb Update dependency rate-limiter-flexible to v7.1.1 (#13517)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-23 14:32:35 +02:00
renovate[bot] ed7e6751f0 Update dependency react-native-share to v12.1.1 (#13516)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-23 14:32:03 +02:00
mrjo118 35e69486d3 Mobile: Fixes #13457: Prevent toggling of multiline mode from clearing the title field on iOS (#13515) 2025-10-23 11:40:50 +02:00
Henry Heino 918c8830e0 Mobile: Fixes #13193: Fix Markdown toolbar (#13514) 2025-10-23 11:40:28 +02:00
renovate[bot] c3b4a4b955 Update dependency rate-limiter-flexible to v7 (#13513)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-23 11:38:21 +02:00
Laurent Cozic 44a14fabbd Doc: Updated sponsors 2025-10-23 10:19:53 +02:00
Frank Fesevur 49399cd1fa All: Translation: Update nl_NL.po (#13510) 2025-10-22 14:39:24 -04:00
github-actions[bot] 2eb70be937 @ffes has signed the CLA in laurent22/joplin#13510 2025-10-22 12:11:13 +00:00
Bartolomeo fc4cd2e942 Server: Resolves #13147: Add LOG_LEVEL env var to control logging verbosity (#13503) 2025-10-22 12:26:02 +02:00
Arman Saga cd6e457dc5 All: Translation: Update ru_RU.po (#13507) 2025-10-22 00:31:23 -04:00
github-actions[bot] 3ef138c9fe @Asagat has signed the CLA in laurent22/joplin#13507 2025-10-22 04:28:53 +00:00
Eric Duarte 2e9bf3a4e5 All: Translation: Update ca.po and es_ES.po (#13499) 2025-10-21 18:27:12 -04:00
Eric Duarte 547ceea4b0 All: Translation: Update es_ES.po (#13498) 2025-10-21 18:11:53 -04:00
renovate[bot] 776ff5e7ea Update dependency @fortawesome/react-fontawesome to v0.2.3 (#13500)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 23:22:49 +02:00
Joplin Bot 2b3bac0d43 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-10-21 18:39:58 +00:00
github-actions[bot] 4e21643bbe @bhorbowicz has signed the CLA in laurent22/joplin#13503 2025-10-21 18:06:20 +00:00
Henry Heino e48efe2e8d Desktop: OneNote importer: Resolve possible import failure related to unsupported formatting (#13495) 2025-10-21 17:19:56 +02:00
Laurent Cozic 5f6382fbc0 Merge branch 'release-3.4' into dev 2025-10-21 16:36:53 +02:00
Laurent Cozic 3d5d82081a iOS 13.4.4 2025-10-21 16:17:15 +02:00
Laurent Cozic cff96b1306 iOS: Removed donation link since Apple is blocking the release because of this 2025-10-21 16:08:02 +02:00
Henry Heino 98c5a9c096 Desktop: Fixes #13481: Accessibility: Prevent sidebar header text from moving: Don't change the header icon on hover (#13482) 2025-10-21 00:46:52 +02:00
Henry Heino e92430b3ed Desktop: Accessibility: Fix global keyboard shortcuts are ignored when the sidebar has focus (#13485) 2025-10-21 00:46:36 +02:00
renovate[bot] 848d1bfe64 Update dependency react-native-safe-area-context to v5.5.0 (#13487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 00:45:52 +02:00
Henry Heino a386283530 Docs: Update OneNote import workflow (#13494) 2025-10-21 00:45:33 +02:00
Greg Oledzki 6101031269 Chore: Replace if with it in one of the tests (#13489) 2025-10-20 21:18:07 +02:00
Henry Heino 2fc3431f46 Web: Accessibility: Fix focus indicator is invisible for sync wizard options (#13492) 2025-10-20 21:12:06 +02:00
renovate[bot] 361fa2c768 Update dependency @types/serviceworker to v0.0.146 (#13484)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-20 16:07:56 +00:00
github-actions[bot] d9d9946faf @greg-at-moderne has signed the CLA in laurent22/joplin#13489 2025-10-20 08:59:01 +00:00
Helmut K. C. Tessarek f4a0a2466b Update translations 2025-10-19 14:42:12 -04:00
summoner dbf225d6ad All: Translation: Update hu_HU.po (#13486) 2025-10-19 14:36:40 -04:00
Helmut K. C. Tessarek 4773a3831c fix: remove \r escape sequence from hu_HU.po 2025-10-18 15:46:49 -04:00
Mihai Vasiliu 6a19690581 All: Translation: Update ro_RO.po and ro_MD.po (#13479) 2025-10-18 15:24:06 -04:00
Arda Kılıçdağı b7a771d58d All: Translation: Update tr_TR.po (#13478) 2025-10-18 15:23:53 -04:00
Jozef Gaal e3daefb81a All: Translation: Update sk_SK.po (#13477) 2025-10-18 15:23:41 -04:00
Joplin Bot b4253dace8 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-10-18 12:46:07 +00:00
renovate[bot] fcf3be1be1 Update dependency esbuild to v0.25.8 (#13473)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-18 12:41:05 +01:00
renovate[bot] 99aebbad81 Update dependency mermaid to v11.7.0 (#13476)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-18 12:40:51 +01:00
Laurent Cozic 81b695a2a9 Chore: Exclude translation updates from changelog 2025-10-18 11:30:24 +01:00
Laurent Cozic 2dbba27357 Plugin Repo CLI v3.5.3 2025-10-18 10:12:33 +01:00
Laurent Cozic 8713cd2fd8 CLI v3.5.1 2025-10-18 10:11:50 +01:00
Laurent Cozic d0fc4ea21b Lock file 2025-10-18 10:11:18 +01:00
Laurent Cozic 8bd62800ef Releasing sub-packages 2025-10-18 10:10:42 +01:00
Laurent Cozic 00f9e932e6 Desktop release v3.5.5 2025-10-18 09:53:34 +01:00
Helmut K. C. Tessarek b8b55e4a55 Chore: Fix generated file line ending (#13459) 2025-10-18 09:50:37 +01:00
renovate[bot] ef5be2ded3 Update dependency @types/node to v18.19.130 (#13463)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-18 09:49:19 +01:00
Henry Heino 00702dde00 Desktop: OneNote importer: Improve file header validation (#13467) 2025-10-18 09:48:51 +01:00
Henry Heino 2a6af9bed9 Desktop: Accessibility: Allow jumping to notebooks by typing the initial letter or Home/End (#13469) 2025-10-18 09:48:44 +01:00
Henry Heino c26fe0960b Web: Show sync wizard on first start (#13470) 2025-10-18 09:48:13 +01:00
Henry Heino ab9d36fc08 Chore: Windows: Tests: Fix Rust OneNote importer tests fail (#13471) 2025-10-18 09:48:03 +01:00
Henry HeinoandLaurent Cozic 28eb53bd9f Desktop: OneNote importer: Support directly importing .one files and, on Windows, .onepkg files (#13474)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-10-18 09:47:35 +01:00
Laurent Cozic 3097c3e589 Desktop, Cli: Correctly import Evernote resources that do not have the encoding specified 2025-10-18 09:44:35 +01:00
renovate[bot] 08371ef718 Update dependency @types/serviceworker to v0.0.144 (#13475)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-18 08:19:27 +00:00
Laurent Cozic 561716efea Desktop, Cli: Fixed importing certain Evernote images that have invalid dimension attributes (#13472) 2025-10-18 09:17:22 +01:00
renovate[bot] 0d457d1bde Update dependency esbuild to v0.25.7 (#13461)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-17 09:18:57 +01:00
renovate[bot] 8c11f17c93 Update dependency @types/node to v18.19.120 (#13460)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-17 09:18:50 +01:00
renovate[bot]andLaurent Cozic f7a90ee1d2 Update dependency @types/serviceworker to v0.0.143 (#13449)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-10-17 09:18:08 +01:00
Eric Duarte 8822409f7c All: Translation: Update ca.po (#13462) 2025-10-17 03:54:42 -04:00
Eric Duarte cd3e7f485a All: Translation: Update es_ES.po (#13454) 2025-10-16 17:25:46 -04:00
summoner 8d42b01d4f All: Translation: Update hu_HU.po (#13451) 2025-10-16 17:25:34 -04:00
Henry Heino 2c37197641 Desktop: Resolves #520: Save and restore the cursor position when switching between notes (#13447) 2025-10-16 14:56:38 +01:00
Henry Heino c2c37b3741 Desktop: Fixes #13411: Fix header links only work if the note viewer is visible (#13442) 2025-10-16 12:10:01 +01:00
Henry Heino 3e770300dc Chore: Desktop: Add tool for resolving stack traces based on source maps (#13427) 2025-10-16 12:09:02 +01:00
Henry Heino 683291d5df Chore: Transcribe: Make logic for starting transcription workers safer (#13425) 2025-10-16 12:08:52 +01:00
Henry HeinoandLaurent Cozic d239035417 Mobile: Resolves #13067: Rich Text Editor: Improve table support (#13413)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-10-16 12:08:44 +01:00
Henry Heino 5ef37d9de0 Desktop: Support importing .one files from OneNote 2016 (#13391) 2025-10-16 12:08:35 +01:00
mrjo118 1111bde017 All: Fixes #6517: Prevent Joplin from missing changes when syncing with file system or WebDAV (#13054) 2025-10-16 12:06:48 +01:00
Laurent Cozic 468cf00d77 Chore: Clean-up exclusion list in buildTranslation 2025-10-16 11:20:05 +01:00
Laurent Cozic 3c5b41b992 Chore: Fixed CI 2025-10-16 11:19:44 +01:00
Helmut K. C. Tessarek 5f66c51dba All: Update translations 2025-10-15 23:34:40 -04:00
k-santos bfeaa67ec4 All: Translation: Update pt_BR.po (#13448) 2025-10-15 23:30:16 -04:00
github-actions[bot] 032dfa949d @k-santos has signed the CLA in laurent22/joplin#13448 2025-10-16 01:40:36 +00:00
renovate[bot] 348fd0333f Update dependency react-native-share to v12.1.0 (#13446)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 21:19:13 +01:00
Henry Heino 51c4d6d6ef Desktop: Upgrade to Electron v37.7.0 (#13445) 2025-10-15 20:39:26 +01:00
Laurent Cozic 09d77a65e8 Plugin Repo CLI v3.5.1 2025-10-15 20:03:29 +01:00
Laurent Cozic d1aec4a9f7 Plugin Generator release v3.5.1 2025-10-15 20:02:14 +01:00
Henry Heino cab1525589 Chore: Plugin repository script: Fix certain plugins are not being published (#13443) 2025-10-15 20:00:29 +01:00
Henry Heinoandpedr a52f3fea9e Mobile: Resolves: #12823: Disable auto-search for 1-2 character searches (#13444)
Co-authored-by: pedr <pedr@users.noreply.github.com>
2025-10-15 20:00:02 +01:00
renovate[bot] dfbd5eb8ed Update dependency expo to v53.0.20 (#13441)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 14:18:13 +01:00
Laurent Cozic 3131f36033 Chore: Trying to fix random CI failure 2025-10-15 12:55:40 +01:00
renovate[bot] dc5b2cfa21 Update dependency form-data to v4.0.4 (#13439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 09:42:15 +00:00
renovate[bot] cad0f35fcc Update dependency expo-camera to v16.1.11 (#13438)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 02:43:03 +00:00
renovate[bot] 38ea92ff57 Update dependency axios to v1.10.0 (#13431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-14 14:35:53 +01:00
renovate[bot] 830deada22 Update dependency @types/serviceworker to v0.0.142 (#13434)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-13 18:47:47 +01:00
renovate[bot] 38cd4033ea Update dependency @types/node to v18.19.119 (#13435)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-13 13:36:57 +00:00
github-actions[bot] 7e703ed405 @WhiskerLogic has signed the CLA in laurent22/joplin#13429 2025-10-12 08:10:48 +00:00
Shania 02900752d9 Doc: Missing hashtag in rich_text_editor.md (#13418) 2025-10-11 12:56:26 +01:00
github-actions[bot] 3b0cc08e6b @shania-codes has signed the CLA in laurent22/joplin#13418 2025-10-11 11:39:38 +00:00
renovate[bot] 091e9813b5 Update dependency @react-native/babel-preset to v0.80.1 (#13426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-11 01:23:33 +01:00
renovate[bot] e61e5ac32a Update dependency @react-native/babel-preset to v0.80.0 (#13423)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-10 21:28:24 +01:00
Joplin Bot 414970c9a1 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-10-10 18:39:00 +00:00
Laurent Cozic d4ed49ff23 Doc: Clarify how to disable spellchecking on Markdown files 2025-10-10 17:48:37 +01:00
Laurent Cozic 8751d5d152 Doc: Add documentation for LDAP and SAML support in Joplin Server 2025-10-10 17:47:28 +01:00
Laurent Cozic 2e846fe15d Desktop release v3.5.4 2025-10-10 15:48:13 +01:00
Laurent Cozic e54b7696d9 Chore: Prevent sign tool from being added to the Windows app 2025-10-10 15:48:01 +01:00
Laurent Cozic 553c61d628 Desktop release v3.5.3 2025-10-10 12:12:32 +01:00
Laurent Cozic 6a15db3a36 Chore: Implement SSL eSigner for Windows app signing (#13397) 2025-10-10 11:18:43 +01:00
Laurent Cozic 6f1d0a4b90 Chore: Disable time drift check on Joplin Server tests (#13420) 2025-10-10 11:18:18 +01:00
renovate[bot] 33b995672c Update dependency @playwright/test to v1.53.2 (#13421)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-10 11:18:04 +01:00
mrjo118 8ee46bb4e7 All: Avoid excessive data usage when automatically triggering another sync (#13261) 2025-10-10 09:36:42 +01:00
renovate[bot] b35d9a64cf Update dependency @playwright/test to v1.53.0 (#13410)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-09 22:36:48 +01:00
renovate[bot] 64ef74dd01 Update dependency @types/node to v18.19.118 (#13412)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-09 22:36:39 +01:00
mrjo118andLaurent Cozic 53035839a5 Desktop, Mobile: Fix historic issue whereby the first revision created for a note does not contain the original contents (#12674)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-10-09 22:35:08 +01:00
Henry Heino af5287de99 Desktop: OCR: Fully disable the handwriting transcription backend when disabled in settings (#13072) 2025-10-09 22:21:49 +01:00
mrjo118andLaurent Cozic 45a7554774 All: Fixes #11902: Ensure notebook conflicts do not delete child notes and notebooks when resolved (#13167)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-10-09 22:21:14 +01:00
Henry HeinoandLaurent Cozic b06ffe3d25 Mobile,Desktop: Resolves #12343: Markdown editor search: Auto-scroll to the next match when the search changes (#13242)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-10-09 22:20:34 +01:00
mrjo118 53ea51b758 All: Fixes 12810: Ensure the sync shows an error when the server is down, when using a local WebDAV server (#13301) 2025-10-09 21:59:58 +01:00
Tom Chedmail 820acdc1f0 All: Fixes #13328: Implement the config check for Joplin Server with SAML enabled (#13360) 2025-10-09 21:49:18 +01:00
Henry Heino ef0a79666e Desktop: OneNote importer: Simplify reporting import issues to the forum (#13409) 2025-10-09 21:47:31 +01:00
Henry Heino d096a90c0e Chore: shim.mobilePlatform: Use a stronger return type (#13415) 2025-10-09 21:46:04 +01:00
renovate[bot] 191775310e Update dependency react-select to v5.10.2 (#13417)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-09 20:42:35 +00:00
renovate[bot] 4fc351b861 Update dependency @react-native-documents/picker to v10.1.5 (#13416)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-09 04:55:42 +00:00
renovate[bot] 396decd26c Update dependency sharp to v0.34.3 (#13404)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-08 13:45:43 +01:00
yingli-lab 01f8fa7bef Desktop: Fixes #13267: Fixed image load failure when path contains '#' (13267) (#13375) 2025-10-08 09:34:52 +01:00
Henry Heino c40856ac7e Docs: Mobile: Add documentation for the mobile document scanner (#13387) 2025-10-08 09:33:45 +01:00
Henry Heino d869cce413 Mobile: Document scanner: Add "Recognise text" checkbox (#13398) 2025-10-08 09:33:05 +01:00
Henry Heino a83e8311d8 Server: Fixes #13400: Fix password fields are always disabled (#13401) 2025-10-08 09:32:24 +01:00
renovate[bot] aa884fcb39 Update dependency @react-native-documents/picker to v10.1.4 (#13403)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-08 06:58:50 +00:00
Henry Heino be2a4c3e24 Chore: Correct license information for packages/onenote-converter (#13392) 2025-10-07 10:01:52 +01:00
renovate[bot] 520eec555b Update dependency @types/node to v18.19.117 (#13395)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 05:08:10 +00:00
renovate[bot] 1281fdb9d2 Update dependency @types/node to v18.19.116 (#13394)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 00:55:38 +01:00
renovate[bot] 6029353fd1 Update dependency react-native-webview to v13.15.0 (#13388)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-06 17:49:23 +01:00
Laurent Cozic 8d1d1be79e Doc: Resolves #13370: Add documentation for user profiles (#13377) 2025-10-06 09:45:22 +01:00
bwat47 fd180ae0b4 Desktop: Add write() method to Plugin Clipboard API (#13348) 2025-10-06 09:31:27 +01:00
Laurent Cozic 6fdfd6eae6 Desktop: Resolves #13371: Open the Joplin Plugin web page when clicking on a plugin name (#13376) 2025-10-06 09:30:04 +01:00
Laurent Cozic cd5bb575c8 Server: Resolves #13369: SAML users cannot modify their own profile at all (#13378) 2025-10-06 09:29:53 +01:00
Laurent Cozic 2df56530ae All: Remove Beta mention for Joplin Server (#13367) 2025-10-06 09:28:24 +01:00
Laurent Cozic 7987137470 Chore: Trying to migrate to macOS 15 on CI (#13366) 2025-10-06 09:28:13 +01:00
Manu Erwin a1dcd2fd8f Doc: Update trash.md (#13383) 2025-10-06 08:40:10 +01:00
renovate[bot] 7826dc064a Update dependency @types/serviceworker to v0.0.141 (#13385)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-06 08:39:30 +01:00
github-actions[bot] 8961a4a10d @manuerwin has signed the CLA in laurent22/joplin#13383 2025-10-05 21:48:55 +00:00
renovate[bot] eedf083bfd Update dependency esbuild to v0.25.6 (#13380)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-05 20:53:13 +00:00
github-actions[bot] fed580ae18 @GordonRamsay-689 has signed the CLA in laurent22/joplin#13381 2025-10-05 17:34:50 +00:00
renovate[bot]andLaurent Cozic d4aa1f8f8d Update dependency pg-boss to v10.3.2 (#13353)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-10-05 17:57:51 +01:00
Henry Heino 738e749d51 Desktop: Fixes #13346: Fix startup error when a non-English locale is selected (#13347) 2025-10-04 16:08:23 +01:00
renovate[bot] 8fe818c0b0 Update dependency samlify to v2.10.1 (#13362)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-04 09:25:20 +01:00
maggie897 e603452fad Desktop: Fixes #13088: Hide 'Start application minimised' unless tray icon is enabled (#13340) 2025-10-03 14:42:45 +01:00
mrjo118 3827637b54 Mobile: Make the conflicts folder text use the error colour, like is done on desktop (#13343) 2025-10-03 14:41:55 +01:00
Henry Heino 1da7c54e5f Chore: Add test for joplinServerConnected condition (#13352) 2025-10-03 14:32:57 +01:00
Henry Heinoandpedr e24ebffba6 Desktop: Resolves #12803: Upgrade tesseract.js to v6 (#13345)
Co-authored-by: pedr <pedr@users.noreply.github.com>
2025-10-03 14:32:15 +01:00
Laurent Cozic 97fa85a3f7 Desktop release v3.4.13 2025-10-02 09:35:36 +01:00
Laurent Cozic defe36bba1 Server: Enable publish and share notebook for SAML login 2025-10-02 09:34:51 +01:00
Laurent Cozic e5bd77836a Desktop release v3.5.2 2025-10-02 09:14:44 +01:00
Henry Heino 8f5e628303 Chore: Fix CI (#13344) 2025-10-02 09:14:14 +01:00
Laurent Cozic 6850c8128b Desktop release v3.5.1 2025-10-02 09:13:48 +01:00
Laurent Cozic 8a797fdf23 Server: Enable publish and share notebook for SAML login 2025-10-02 09:13:29 +01:00
Laurent Cozic 1ae550c0aa Chore: Setup new release 3.5 2025-10-02 09:12:11 +01:00
maggie897andLaurent Cozic e7e0529f52 Desktop: Resolves #12292: Add hover + expanded arrow behavior for Notebook/Tags header (#13190)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-10-01 23:20:33 +01:00
Henry HeinoandLaurent Cozic 2381e44c7f Chore: OneNote importer: Upgrade to Rust 2024 (#13298)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-10-01 10:22:33 +01:00
renovate[bot] a59e975f73 Update dependency sharp to v0.34.2 (#13336)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-01 09:35:07 +01:00
Henry Heino 2d703b6292 Mobile: Resolves #13123: Add sync wizard (#13234) 2025-10-01 09:34:18 +01:00
renovate[bot] b8db70f707 Update eslint (#13337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-01 04:17:48 +00:00
Filbert Wijaya c91513b6b5 All: Translation: Update ja_JP.po (#13339) 2025-10-01 00:15:56 -04:00
Joplin Bot a57ada97ef Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-10-01 01:51:34 +00:00
github-actions[bot] f036869f53 @filbert-wijaya has signed the CLA in laurent22/joplin#13339 2025-10-01 01:38:50 +00:00
Laurent Cozic d8677a70dd Transcribe: Resolves #12874: Downscale images before storing (#13333) 2025-09-30 23:17:01 +01:00
renovate[bot] 15839a19fd Update dependency rate-limiter-flexible to v6.2.1 (#13334)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-30 23:10:14 +01:00
renovate[bot]andLaurent Cozic 8f1d55c1fc Update dependency rate-limiter-flexible to v6 (#13325)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-30 20:03:59 +01:00
JZou-Code 98c18711f7 Desktop: Fixes #12531: Fix the order of attached images (#12531) (#12868) 2025-09-30 17:44:38 +01:00
Henry HeinoandLaurent Cozic 24ff4612fb Mobile: Resolves #13104: Accessibility: Allow changing the ALT text of images from the mobile Rich Text Editor (#13169)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-30 17:34:03 +01:00
Henry Heino f832eb38ff Mobile: Improve inline search performance in large documents (#13259) 2025-09-30 17:22:55 +01:00
Henry Heino 91dc23c23f Android: Plugins: Fix inspecting note editor WebViews (#13272) 2025-09-30 17:17:34 +01:00
Henry HeinoandLaurent Cozic d1913493ab Desktop: Fix "insecure content security policy" warning (#13288)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-30 17:08:48 +01:00
trap000dandLaurent Cozic fd2b22ed68 Desktop: Resolves #12572: Click on systray icon will show/hide Joplin main window (#13299)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-30 17:05:44 +01:00
Henry Heino 14b56f19df Chore: OneNote converter: Refactor to allow debugging the import process, reduce use of "unsafe" (#13300) 2025-09-30 17:03:38 +01:00
renovate[bot]andLaurent Cozic 0b082a985b Update dependency @react-native-clipboard/clipboard to v1.16.3 (#13304)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-30 16:50:29 +01:00
mrjo118 53dcac22d0 Mobile: For notes over 100,000 characters, make the share note function share them as a file (#13305) 2025-09-30 16:49:54 +01:00
Henry Heino 2c721a76b7 Chore: Fix transcription server build (#13310) 2025-09-30 16:45:16 +01:00
yingli-lab b68cfd6d9e Desktop: Fixes #13196: Fixed red close button not working on macOS 26 (#13311) 2025-09-30 16:43:58 +01:00
JZou-Code affebedc4b Desktop: Fixes #12763: skip copy event in TinyMCE if no content is selected. (#13313) 2025-09-30 16:37:44 +01:00
JZou-Code a714ef4807 Desktop: Fixes #13314: skip cut action in TinyMCE editor if no content is selected. (#13315) 2025-09-30 16:35:38 +01:00
renovate[bot] 596f99aad3 Update dependency @types/node to v18.19.115 (#13332)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-30 16:32:47 +01:00
renovate[bot] c530d35b36 Update dependency @react-native/metro-config to v0.79.5 (#13331)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-30 02:49:10 +00:00
renovate[bot] 5a5c734e2a Update dependency @react-native/babel-preset to v0.79.5 (#13329)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 21:56:41 +00:00
renovate[bot] f7eb483d9a Update dependency react-native-webview to v13.14.2 (#13327)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 17:10:00 +01:00
github-actions[bot] 3a1b36d594 @Om7035 has signed the CLA in laurent22/joplin#13287 2025-09-29 14:59:37 +00:00
Laurent Cozic 7f3c7e807c Desktop: Use plugin repository URL when homepage URL is not available in config screen (#13318) 2025-09-29 14:35:55 +01:00
renovate[bot] a50fc02b32 Update dependency react-native-webview to v13.14.0 (#13324)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 14:35:39 +01:00
renovate[bot] 63702e9e34 Update dependency @types/serviceworker to v0.0.140 (#13321)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 02:48:55 +00:00
renovate[bot] 92c67aab4e Update dependency @types/node to v18.19.113 (#13320)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 02:46:26 +00:00
renovate[bot]andLaurent Cozic 91535870a2 Update dependency react-native-localize to v3.4.2 (#13289)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-28 21:48:19 +01:00
renovate[bot]andLaurent Cozic d4bb277417 Update dependency pg to v8.16.3 (#13296)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-28 21:48:06 +01:00
krevad 90f87d1496 All: Translation: Update sv.po (#13316) 2025-09-28 14:44:42 -04:00
Joplin Bot b07752b3ab Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-09-28 12:47:37 +00:00
Laurent Cozic 98effef4c5 Server: Improve SAML login error handling and add doc regarding email and displayName attributes 2025-09-28 12:48:56 +01:00
Laurent Cozic 32a919eb81 Chore: Remove obsolete "version" parameter from docker-compose files 2025-09-28 12:44:00 +01:00
Laurent Cozic e124fd5c9f Chore: Set URLs to absolute ones on release notes and tweak title 2025-09-28 10:23:56 +01:00
Joplin Bot c5f9290402 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-09-27 10:41:21 +00:00
Henry Heino c80cdadc99 Doc: Add release notes for v3.4 (#13273) 2025-09-27 10:20:31 +01:00
github-actions[bot] b9ba747327 @yingli-lab has signed the CLA in laurent22/joplin#13311 2025-09-26 22:50:39 +00:00
github-actions[bot] 5631e1d57b @Sid0004 has signed the CLA in laurent22/joplin#13307 2025-09-26 17:46:01 +00:00
github-actions[bot] 740a5628dd @carica has signed the CLA in laurent22/joplin#13306 2025-09-26 17:13:02 +00:00
Laurent Cozic d96dcef109 Chore: Trying to fix GitHub Actions size issue (#13290) 2025-09-25 23:33:02 +01:00
github-actions[bot] 0a758561f3 @trap000d has signed the CLA in laurent22/joplin#13299 2025-09-25 21:51:03 +00:00
Henry Heino 33b889ca38 Chore: Fix APK alignment check in CI (#13294) 2025-09-25 20:48:56 +01:00
Laurent Cozic fa78ea0173 Server v3.4.4 2025-09-25 14:19:26 +01:00
Laurent Cozic 6705712f80 Server: Use "lax" cookies when using external authentication like SAML or LDAP 2025-09-25 12:12:14 +01:00
github-actions[bot] 4986b1f084 @chadcrum has signed the CLA in laurent22/joplin#13286 2025-09-24 17:55:16 +00:00
renovate[bot] 2785b7f7d9 Update dependency @react-native-community/datetimepicker to v8.4.2 (#13285)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-24 14:10:36 +01:00
Laurent Cozic f04831406e Server: Trying to make logging more robust 2025-09-24 12:37:49 +01:00
renovate[bot] fdffc81834 Update dependency @react-native-community/datetimepicker to v8.4.1 (#13279)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-24 11:13:51 +01:00
Henry Heino 6f113df2d6 Chore: Sync fuzzer: Fix failures related to publishing/unpublishing notes (#13282) 2025-09-24 11:12:58 +01:00
Henry Heino 8b8b6fbe36 Desktop: Accessibility: Disable sync icon animation when reduce motion is enabled (#13283) 2025-09-24 11:12:38 +01:00
Laurent Cozic 1ef8fd529b Server: Provide more logging information for each request to help debugging issues 2025-09-24 10:46:24 +01:00
github-actions[bot] 7aaad4e7f3 @bsavant has signed the CLA in laurent22/joplin#13281 2025-09-23 18:40:43 +00:00
Marcus Kida 9547a459cb All: Translation: Update de_DE.po (#13275) 2025-09-23 11:11:34 -04:00
github-actions[bot] b0497bfa07 @kimar has signed the CLA in laurent22/joplin#13275 2025-09-23 07:22:52 +00:00
Joplin Bot be1d092cab Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-09-23 01:32:34 +00:00
Laurent Cozic 517669ee27 Doc: Update sponsors 2025-09-22 22:29:54 +01:00
Laurent Cozic 72fc97116f Chore: Update renovate.json5 - ignore @react-native-community/cli-platform-ios package 2025-09-22 17:46:53 +01:00
Laurent Cozic 77ca6b3447 Chore: Update renovate.json5 - ignore @react-native-community/cli* packages 2025-09-22 17:46:21 +01:00
renovate[bot] b227d337d0 Update dependency sass to v1.93.0 (#13255)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-22 17:44:44 +01:00
Henry Heino a6e671d45b Android: Improve location permission request (#13248) 2025-09-20 10:00:15 +01:00
Henry Heino 47c82a7e75 Chore: Mobile: Fix expo-related warnings in tests (#13260) 2025-09-20 01:25:49 +01:00
summoner bafa1576f2 All: Translations: Update hu_HU.po (#13256) 2025-09-19 16:11:45 -04:00
Henry Heino 48956df439 Chore: Fix web app build (#13257) 2025-09-19 17:37:28 +01:00
renovate[bot]andLaurent Cozic 4716065295 Update dependency pg to v8.16.2 (#13236)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-19 09:24:41 +01:00
renovate[bot]andLaurent Cozic f801bbfb27 Update dependency sass to v1.89.2 (#13237)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-19 09:24:24 +01:00
Henry Heino 4a043f68ad Chore: Web: Fix build (#13250) 2025-09-19 09:22:22 +01:00
renovate[bot]andLaurent Cozic cac93e9f9c Update dependency react-native-paper to v5.14.5 (#13230)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-18 14:25:08 +01:00
mrjo118andLaurent Cozic e1e5c9aeb0 Mobile: Remove expandable title field on Web client and fix icon alignment (#13240)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-18 14:24:49 +01:00
Henry HeinoandLaurent Cozic 382cb257ab Web: Fix multi-page document creation action fails for non-JPEG images (#13244)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-18 14:23:57 +01:00
Henry Heino 711d214741 Android: Fixes #13193: Fix Markdown toolbar buttons sometimes don't work (#13233) 2025-09-18 12:05:57 +01:00
Laurent Cozic 6f375be8b9 Server: Pin pm2-logrotate version to prevent supply chain attacks (#13235) 2025-09-18 12:03:57 +01:00
Laurent Cozic a118615e06 Chore: Remove bitnami repository (#13239) 2025-09-18 10:34:01 +01:00
Joplin Bot 912bf7463f Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-09-17 18:38:33 +00:00
Laurent Cozic cfc29832a2 Doc: Update sponsors 2025-09-17 18:07:34 +01:00
renovate[bot] 737fd132e3 Update dependency sass to v1.89.0 (#13231)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 16:53:56 +01:00
renovate[bot] 9fc76f4e4c Update dependency pg to v8.16.0 (#13223)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 16:27:13 +01:00
renovate[bot] 981f15d85c Update dependency node-mocks-http to v1.17.2 (#13221)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 16:26:43 +01:00
renovate[bot] a59594db3b Update dependency nodejs to v23.11.0 (#13222)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 16:26:35 +01:00
JZou-Code 8c8190e2e9 Desktop: Fixes #12239: Prevent the default cut action handler to avoid double deletion (#13208) 2025-09-16 13:22:26 +01:00
Henry HeinoandLaurent Cozic d7e7ff77e8 Chore: Mobile: Add additional logging to help debug toolbar issue (#13224)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-16 13:18:12 +01:00
Henry HeinoandLaurent Cozic e33c142c5a Chore: Web: Skip secondary single-instance check in dev mode (#13225)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-16 12:52:43 +01:00
Laurent Cozic 97d3a8243d Chore: Fix CI (#13227) 2025-09-16 08:50:28 +01:00
renovate[bot] f1716a3edb Update dependency @pmmmwh/react-refresh-webpack-plugin to ^0.6.0 (#13219)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 18:39:20 +01:00
renovate[bot] 1436f5867d Update dependency androidx.documentfile:documentfile to v1.1.0 (#13220)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 18:37:53 +01:00
renovate[bot] d754b8fe0c Update dependency @rollup/plugin-commonjs to v28.0.6 (#13218)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 17:05:58 +01:00
renovate[bot] 4f58055cc1 Update dependency @react-native/metro-config to v0.79.4 (#13217)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 16:38:15 +01:00
renovate[bot]andLaurent Cozic 98697e1db4 Update dependency style-to-js to v1.1.17 (#13209)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-15 16:30:10 +01:00
renovate[bot] 8ac65a08c1 Update dependency @react-native/babel-preset to v0.79.4 (#13213)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 15:06:33 +01:00
renovate[bot] 2b86d83290 Update dependency @babel/plugin-transform-export-namespace-from to v7.27.1 (#13212)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 13:18:34 +01:00
renovate[bot] 09cafe99d1 Update bitnami/postgresql Docker tag to v17.4.0 (#13211)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 11:33:22 +01:00
renovate[bot] 6fce844cbf Update dependency webpack-dev-server to v5.2.2 (#13210)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 09:01:07 +01:00
renovate[bot]andLaurent Cozic 52de8c071f Update dependency glob to v11.0.3 (#13205)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-15 09:00:01 +01:00
renovate[bot] 537543cc8a Update dependency react-native-zip-archive to v7.0.2 (#13207)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 00:29:44 +00:00
renovate[bot] ff16453299 Update dependency js-draw to v1.30.1 (#13206)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 00:27:57 +00:00
renovate[bot] 210deec495 Update dependency form-data to v4.0.3 (#13203)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-14 19:03:16 +01:00
renovate[bot] e96baea005 Update dependency @types/tar-stream to v3.1.4 (#13202)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-14 19:03:05 +01:00
renovate[bot] ae24b91f25 Update dependency @types/node to v18.19.112 (#13204)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-14 19:02:56 +01:00
renovate[bot] f2e5118bf5 Update dependency @types/serviceworker to v0.0.139 (#13201)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-14 12:36:40 +00:00
renovate[bot]andLaurent Cozic 72698ec573 Update dependency @react-native/metro-config to v0.79.3 (#13198)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-14 09:35:05 +01:00
renovate[bot]andLaurent Cozic 68abc27c6a Update dependency @types/react to v18.3.23 (#13200)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-14 09:34:56 +01:00
renovate[bot]andLaurent Cozic 1acb3d0726 Update dependency @rollup/plugin-commonjs to v28.0.5 (#13199)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-14 09:34:48 +01:00
Joplin Bot 5bf97dc3b8 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-09-14 01:38:57 +00:00
Laurent Cozic e0e04fbc91 Chore: Fixed type error 2025-09-14 00:44:36 +01:00
Laurent Cozic 625cd1221c Doc: Update sponsors 2025-09-14 00:41:03 +01:00
Henry Heino 110d5bde2d Desktop: Fix error dialogs fail to appear in certain cases (#13179) 2025-09-13 14:21:38 +01:00
renovate[bot]andLaurent Cozic 93a85b3207 Update dependency @types/node to v18.19.111 (#13165)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-13 14:18:04 +01:00
renovate[bot]andLaurent Cozic ff305f42fd Update dependency @js-draw/material-icons to v1.30.1 (#13164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-13 14:17:50 +01:00
Henry Heino 99ba854ee1 Chore: Cli: Fix CLI app integration tests (#13089) 2025-09-13 14:17:40 +01:00
pedr 0795c67354 All: Fixes #12249: Change default content-type for Webdav connector to application/octet-stream (#13053) 2025-09-13 14:13:27 +01:00
mrjo118 38b368e997 Mobile: Resolves #12936: Allow expanding and collapsing the title field across multiple lines (#13016) 2025-09-13 14:08:31 +01:00
Henry HeinoandLaurent Cozic f9ffe6c4e6 Desktop,Mobile,Cli: Fix notes are moved to the conflict folder when a folder is unshared (#12993)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-13 14:08:19 +01:00
pedr 5adc0170fc All: Resolves #8718: Delete all note revisions when the note is permanently deleted (#12609) 2025-09-13 14:06:56 +01:00
mrjo118 f54c364b4d Desktop, Mobile: Automatically retrigger the sync if there are more unsynced outgoing changes when sync completes (#12989) 2025-09-13 14:05:31 +01:00
mrjo118andHenry Heino 9f541b9b9d Desktop, Mobile: Add support for mixed case tags (#12931)
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
2025-09-13 14:01:33 +01:00
Henry Heino bd0af08c57 Docs: REST API: Add descriptions for "is_shared" and "share_id" (#13186) 2025-09-13 13:52:46 +01:00
Henry Heino ac06c6750d Android: Fixes #13113: Fix compatibility with 16-KB-page-size devices: Remove Vosk (#13189) 2025-09-13 13:52:12 +01:00
renovate[bot] 23b07094b7 Update dependency @react-native/babel-preset to v0.79.3 (#13195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-13 13:48:57 +01:00
Joplin Bot 7eefc016de Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-09-13 12:45:33 +00:00
Laurent Cozic c002be76cd Doc: Update sponsors 2025-09-13 12:00:32 +01:00
renovate[bot]andLaurent Cozic 2cd29aaaea Update dependency react-native-image-picker to v8.2.1 (#13002)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-09-12 22:48:44 +01:00
Laurent Cozic 4cb6b01c71 Server: Clean-up SAML login section 2025-09-12 15:14:22 +01:00
github-actions[bot] 2d0f02cb8a @maggie897 has signed the CLA in laurent22/joplin#13190 2025-09-11 22:00:38 +00:00
Joplin Bot 91c79b9488 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-09-10 12:42:24 +00:00
Henry Heino fc516d05b3 Docs: Update the Rich Text Editor documentation (#13171) 2025-09-10 10:44:29 +01:00
Henry Heino 2769c9586c Mobile: Fixes #13138: Rich Text Editor: Fix image size lost on change (#13172) 2025-09-10 10:06:40 +01:00
Henry Heino fd15d5a6d3 Mobile: Rich Text Editor: Accessibility: Fix font size setting not respected (#13174) 2025-09-10 10:05:51 +01:00
krevadandHelmut K. C. Tessarek 7237d7faa7 All: Translation: Update sv.po (#13170)
Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
2025-09-09 19:37:19 -04:00
Henry Heino 3025d62568 Chore: Fix CI (#13168) 2025-09-09 22:31:55 +01:00
Laurent Cozic e9a9f68568 Desktop release v3.4.12 2025-09-09 15:36:24 +01:00
renovate[bot] 5b5dcf34a1 Update dependency @axe-core/playwright to v4.10.2 (#13162)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-09 09:54:36 +01:00
Laurent Cozic 9e8500c148 Server v3.4.3 2025-09-09 09:47:29 +01:00
Laurent Cozic 4f1999f921 Merge branch 'release-3.4' into dev 2025-09-09 09:46:39 +01:00
Laurent Cozic 6ee9571069 iOS 13.4.3 2025-09-09 09:25:40 +01:00
krevad 10663b1494 All: Translation: Update sv.po (#13163) 2025-09-09 04:15:15 -04:00
Laurent Cozic f25db9bbd7 Android 3.4.7 2025-09-09 09:14:11 +01:00
Laurent Cozic 44ac261304 Desktop release v3.4.11 2025-09-09 09:05:11 +01:00
eac995a209 Update dependency esbuild to v0.25.5 (#13040)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
2025-09-09 00:32:19 +01:00
Henry Heino 15c973e885 Chore: Mobile: Add additional plugin panel integration tests (#13152) 2025-09-09 00:31:12 +01:00
Henry Heino 1762f9485f Web: Fixes #13153: Fix installing certain plugins (#13154) 2025-09-09 00:30:48 +01:00
Henry Heino 7777f8428f Desktop: Upgrade to Electron 37.4.0 (#13156) 2025-09-09 00:30:06 +01:00
Henry Heino 948aa9db4f Mobile: Upgrade react-native-quick-crypto to v0.7.17 (#13155) 2025-09-09 00:07:29 +01:00
Henry Heino fdde04ee85 Desktop,Mobile,Cli: Support accepting shares with a new key format (#12829) 2025-09-08 23:56:40 +01:00
Laurent Cozic f77a20f5d5 Merge branch 'release-3.4' into dev 2025-09-08 23:55:24 +01:00
Henry Heino d43aa2a3e6 Web: Update the beta notice (#13150) 2025-09-08 23:47:19 +01:00
Henry Heino 04d5ce13c2 Chore: Android: Compile Whisper with support for 16 KB pages (#13118) 2025-09-08 16:50:48 +01:00
Laurent Cozic 3b764ba06a Server: Remove the need to install pm2-logrotate on startup so that image can work in a closed environment (#13149) 2025-09-08 16:37:35 +01:00
Henry Heino 5492ce55fa Server: Fixes #12984: Improve handling of concurrent deletion requests for the same item (#13092) 2025-09-08 12:03:20 +01:00
Henry Heino f6b3f9860c Cli: Fix last change sometimes lost when not in TUI mode (#13090) 2025-09-08 12:03:13 +01:00
Henry Heino 88f687ba6a Chore: Sync fuzzer: Add actions for publishing and unpublishing notes (#13062) 2025-09-08 12:02:53 +01:00
Henry Heino 1f0a98999f Desktop, Mobile: Fixes #12987: Fix images rendered in the Markdown editor don't reload when downloaded (#13045) 2025-09-08 12:01:54 +01:00
mrjo118 69135c3bea Mobile: Fixes #12956: Resize the notes menu to the viewport when the keyboard is open (#13035) 2025-09-08 12:01:24 +01:00
pedrandHenry Heino c27d542a4b Desktop: Fixes #12049: Fix files without extension not being imported properly (#12974)
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
2025-09-08 11:46:36 +01:00
mrjo118 bd1c2534c5 Mobile: Fixes #13095: Fix long note title doesn’t wrap properly for To Do type note (#13099) 2025-09-08 11:05:19 +01:00
mrjo118 72513b520c Android: Fixes #13079: Fix dropdown menus are offset on Android 15+ (#13106) 2025-09-08 11:04:46 +01:00
Henry Heino ec0f9ef9bc Server: Fix unique constraint error when multiple createSharedFolderUserItems are run concurrently (#13112) 2025-09-08 11:03:28 +01:00
Henry Heino 818bc3218a Mobile: Improve tag dialog performance with long tags and many tags (#13117) 2025-09-08 11:03:01 +01:00
Henry Heino 82760a5b6a Web: Show a "Give feedback" banner and link to a survey (#13125) 2025-09-08 10:59:40 +01:00
mrjo118 5ba9a16cfd Mobile: Fixes #13116: Fix tag association screen no longer searches case insensitively or searches tag endings (#13128) 2025-09-08 10:59:01 +01:00
Henry Heino 68fc91fdc7 Desktop: Resolves #13096: Prefer user-specified CSS page sizing when printing to PDF (#13130) 2025-09-08 10:58:16 +01:00
Henry Heino bdc4687327 Chore: Refactor WebViewController (#13133) 2025-09-08 10:56:51 +01:00
Henry Heino 3a9f57e13f Cli: Fixes #13086: Fix "use" command when not in TUI mode (#13091) 2025-09-08 10:56:08 +01:00
Henry Heino b72c48c693 Mobile, Desktop: Fixes #13103: Fix error when saving in-editor rendering-related settings (#13105) 2025-09-08 10:56:01 +01:00
Henry Heino f1e42f3bac iOS: Fixes #13111: Fix "scan notebook" tool on iOS (#13114) 2025-09-08 10:55:48 +01:00
Henry Heino 93c908286d Mobile: Plugins: Fix renderer plugins that use the settingValue API (#13131) 2025-09-08 10:55:42 +01:00
Henry Heino 4eb8777ed0 Mobile: Fix light bar shown above header in dark mode (#13132) 2025-09-08 10:55:15 +01:00
summoner 5e1909cee0 All: Translation: Update hu_HU.po (#13142) 2025-09-08 00:34:54 -04:00
pplulee 2e7b312415 All: Translation: Update zh_CN.po (#13137) 2025-09-06 17:02:31 -04:00
github-actions[bot] 1ae72235fc @pplulee has signed the CLA in laurent22/joplin#13137 2025-09-06 11:15:42 +00:00
Joplin Bot 7735a59fc1 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-09-04 18:26:55 +00:00
Laurent Cozic 41d6e912a7 Doc: Updated sponsors 2025-09-04 17:43:49 +02:00
Joplin Bot 4c2fae8423 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-09-03 01:00:02 +00:00
Laurent Cozic b72c134890 Doc: Update sponsors 2025-09-02 23:01:06 +02:00
Joplin Bot 58a9c229bb Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-09-01 18:25:20 +00:00
Laurent Cozic d8c203bb8a Merge branch 'release-3.4' into dev 2025-09-01 14:48:55 +02:00
Laurent Cozic 9020c07825 lock files 2025-09-01 14:48:51 +02:00
Laurent Cozic e884da8312 Android 3.4.6 2025-09-01 14:48:38 +02:00
Joplin Bot d134ea8bfe Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-09-01 12:33:37 +00:00
Henry Heino faa44468f3 Mobile: Plugins: Improve handling of invalid toolbar button enabled conditions (#13076) 2025-09-01 13:50:59 +02:00
Laurent Cozic 85585d16d2 Desktop release v3.4.10 2025-09-01 13:50:43 +02:00
Joplin Bot b9c5b8f187 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-09-01 01:12:51 +00:00
Henry Heino da8e638359 Chore: Mobile: Add test to verify that content scripts load in the note viewer (#13093) 2025-08-31 00:32:10 +02:00
Henry Heino 6482ab5a4e Mobile: Plugin API: Fix compatibility with certain plugins targetting the desktop app (#13077) 2025-08-29 23:28:45 +02:00
Henry Heino ec74abe754 Mobile: Plugin API: Fix certain renderer plugins fail to load (#13078) 2025-08-29 23:28:39 +02:00
Henry Heino 859bc8d88e Mobile: Plugins: Fix plugin panel buttons are offscreen on recent versions of Android (#13080) 2025-08-29 23:28:22 +02:00
Henry Heino 56ed471a2f Chore: Rich Text Editor: Refactor editor dialog to simplify toggling the dialog from external commands (#13082) 2025-08-29 23:28:11 +02:00
Henry Heino 650594ecea Chore: Sync fuzzer: Add action for deleting notes (#13083) 2025-08-29 23:28:00 +02:00
Henry Heino 3e9bb914e5 Android: Fixes #13015: Fix "edit profile" button is partially offscreen (#13084) 2025-08-29 23:27:51 +02:00
Henry Heino f75e911a4e Docs: Update the privacy policy (#13087) 2025-08-29 23:27:44 +02:00
Eric Duarte 78fb07d4c7 All: Translation: Update ca.po (#13065) 2025-08-28 17:50:34 -04:00
Henry HeinoandLaurent Cozic 6390ef43ed Desktop: Clarify handwritten text transcription setting (#13073)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-08-28 09:20:55 +03:00
Henry Heino 78c5c4d7c3 Android: Accessibility: Fix tag search input loses focus when submitted by pressing "enter" (#13070) 2025-08-28 09:20:10 +03:00
Henry Heino 0d1d50768b Android: Fix shadow shown above the screen header (#13074) 2025-08-28 09:04:10 +03:00
Henry Heino 57093b35ea Android: Fixes #12960: Rich Text Editor: Fix pressing enter does nothing in some cases (#13075) 2025-08-28 09:03:37 +03:00
Laurent Cozic cba5cf660b Desktop release v3.4.9 2025-08-27 22:09:47 +03:00
Laurent Cozic 0024722c79 Desktop: Clarified that handwritten transcription may not always work 2025-08-27 22:09:26 +03:00
Henry Heino bc2832e78f Chore: Desktop: Allow access to more Joplin APIs from the desktop development tools in dev mode (#13052) 2025-08-27 22:05:52 +03:00
Henry Heino 424cc96d36 Chore: Sync fuzzer: Fix incorrect expected state after removing the last user from a share (#13061) 2025-08-27 22:03:17 +03:00
Henry Heino 56fd5d828f Android: Fixes #12952: External keyboard: Fix adding tags by pressing enter on certain Android devices (#13069) 2025-08-27 22:02:48 +03:00
Henry Heino 03843b087a Desktop: Fixes #12816: Accessibility: Fix dismissing the alarm dialog by pressing escape (#13068) 2025-08-27 22:02:34 +03:00
Henry Heino b179509dd3 Desktop: Fixes #12855: Legacy editor: Fix plugin support (#13066) 2025-08-27 22:02:09 +03:00
Joplin Bot f6851314d2 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-08-27 18:26:06 +00:00
Laurent Cozic eaec45cb3f Doc: Update sponsors 2025-08-27 18:38:56 +03:00
Laurent Cozic 9be954496c Doc: Update sponsors 2025-08-27 17:45:40 +03:00
Laurent Cozic ac289c5198 Desktop: Clarified that handwritten transcription may not always work 2025-08-27 17:22:06 +03:00
Joplin Bot 98ef5e619b Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-08-27 12:33:13 +00:00
Laurent Cozic 62faa48aac lock files 2025-08-27 10:15:15 +03:00
Laurent Cozic 5daa7a1f4c Chore: By default, create new releases as pre-releases when publishing desktop app 2025-08-27 09:54:06 +03:00
Laurent Cozic 32be071601 CLI v3.4.1 2025-08-27 09:50:10 +03:00
Laurent Cozic 0dc63dd306 Lock file 2025-08-27 09:47:17 +03:00
Laurent Cozic 78ed58187a Releasing sub-packages 2025-08-27 09:46:45 +03:00
Laurent Cozic b8b8dd8011 iOS 13.4.2 2025-08-27 09:33:18 +03:00
Laurent Cozic 0bc72b45be Android 3.4.5 2025-08-27 09:28:51 +03:00
Laurent Cozic c52523134d Desktop release v3.4.8 2025-08-27 09:23:04 +03:00
Henry Heino aff871eee6 Desktop, Mobile: Markdown editor: Fix image rendering is disabled unless markup rendering is also enabled (#13056) 2025-08-27 09:21:26 +03:00
Henry Heino a5a68a2238 Cli: Add commands for publishing and unpublishing notes with Joplin Server (#13060) 2025-08-27 09:21:10 +03:00
Henry Heino e066b8f9bc Desktop: Fixes #13043: OCR: Fix processing resources with an invalid ocr_driver_id (#13051) 2025-08-27 09:20:00 +03:00
Henry Heino e7827a3a64 Mobile: Remove the "beta" warning from the plugin settings screen (#13063) 2025-08-27 09:19:21 +03:00
Henry Heino 4ceca647dc Desktop, Mobile: Resolves #13048: Auto-disable plugin settings when conflicting built-in settings are enabled (#13055) 2025-08-27 09:19:07 +03:00
Henry Heino 4185afebdb Chore: Fix build (#13050) 2025-08-26 18:40:26 +03:00
Henry Heino c530b07f45 Desktop, Mobile: Disable in-editor Markdown rendering by default (can be re-enabled in settings > note) (#13022) 2025-08-26 10:56:53 +03:00
Henry Heino 0ed7daaed8 Linux, Windows: Fixes #12991, #12733: Fix notifications (#13007) 2025-08-26 10:56:42 +03:00
Henry Heino 2eb107c716 Desktop, Mobile: Add a "highlight active line" setting (#12967) 2025-08-26 10:49:59 +03:00
Henry HeinoandLaurent Cozic c99780db1b Mobile: Rich Text Editor: Avoid rendering links with unknown protocols (#12943)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-08-26 10:49:26 +03:00
Henry Heino ac05b7d389 Mobile: Rich Text Editor: Fix additional blank lines added around list items on save (#12935) 2025-08-26 10:46:00 +03:00
Henry Heino 9719d82c47 Desktop: Fixes #13024: OCR: Fix infinite loop (#13025) 2025-08-26 10:45:27 +03:00
Henry Heino 48694a585f Mobile: Fixes #12953: Allow the tag dialog to scroll when little screen space is available (#13028) 2025-08-26 10:44:32 +03:00
Henry Heino b577a27887 Mobile: Fixes #13027: Fix additional space added around app content in landscape mode (#13030) 2025-08-26 10:44:06 +03:00
Helmut K. C. Tessarek 9f649c9fc2 All: Update translations 2025-08-25 19:40:33 -04:00
Eric Duarte 8c9c5d13bd All: Translation: Update es_ES.po (#13041) 2025-08-25 19:32:14 -04:00
renovate[bot] 96692de93c Update dependency @types/react to v18.3.23 (#13042)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-25 13:44:38 +00:00
Joplin Bot 3d8e1dd146 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-08-24 18:26:08 +00:00
Joplin Bot 227e41b69a Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-08-24 12:31:05 +00:00
renovate[bot]andLaurent Cozic a616e26a0f Update dependency react-native-safe-area-context to v5.4.1 (#13000)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-08-24 13:02:03 +03:00
Joplin Bot ba0e7e2226 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-08-23 12:30:39 +00:00
Laurent Cozic b5a4ba554d Doc: Add sponsor 2025-08-23 13:14:58 +03:00
Arda Kılıçdağı 9037da8f2d All: Translation: Update tr_TR.po (#13019) 2025-08-22 16:07:31 -04:00
renovate[bot] 6998606ec9 Update dependency pg to v8.15.6 (#13021)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 17:00:30 +00:00
Laurent Cozic 66d52c90a3 Desktop release v3.4.7 2025-08-22 13:19:27 +03:00
renovate[bot]andLaurent Cozic f6fb1f7fbf Update dependency pg to v8.15.5 (#13001)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-08-22 13:14:06 +03:00
Henry Heino 3aac6043da Chore: Sync fuzzer: Support testing Joplin Cloud readonly shares (#13003) 2025-08-22 11:33:54 +03:00
Henry Heino ae170e0aa0 Desktop: Fixes #12998: Fix error logged when rendering a non-existent resource (#13004) 2025-08-22 11:33:16 +03:00
Henry Heino 371f027a24 MacOS: Fix startup failure when unable to access the keychain (#13006) 2025-08-22 11:32:59 +03:00
Henry Heino 37422f316e Desktop: Downgrade to Electron 35.7.5 (#13013) 2025-08-22 11:30:39 +03:00
Henry Heino a9f284ae45 Desktop: Fixes #13009: Fix custom root CA support (#13018) 2025-08-22 11:29:54 +03:00
Milo Ivir fd2f69cc73 All: Translation: Update hr_HR.po (#13011) 2025-08-21 18:45:39 -04:00
Joplin Bot c4eab3c79c Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-08-21 01:03:33 +00:00
renovate[bot] a0b9c6376e Update dependency react-native-image-picker to v8 (#12997)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-20 23:37:39 +03:00
Henry Heino e2fc056369 Desktop,Mobile,Cli: Fixes #12648: Fix unshare action requires two syncs to be reflected locally (#12999) 2025-08-20 23:36:47 +03:00
renovate[bot] 453b4705b1 Update dependency @types/node to v18.19.103 (#12985)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-20 19:25:54 +00:00
Laurent Cozic 4128061e40 Desktop release v3.4.6 2025-08-20 22:22:42 +03:00
Joplin Bot 432b0ca870 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-08-20 12:32:59 +00:00
renovate[bot] c484cd2e48 Update dependency sass to v1.87.0 (#12995)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-20 15:06:57 +03:00
Laurent Cozic 58f0725c6b Doc: Add sponsor 2025-08-20 15:05:28 +03:00
Henry Heino bf8fbec0cd Chore: Sync fuzzer: Add support for adding and removing share participants (#12988) 2025-08-20 09:46:23 +03:00
pedr f1d452f130 Server: Fixes #12983: Not handling correctly non JSON error responses from Transcribe (#12986) 2025-08-20 09:46:15 +03:00
Henry Heino 26012cd7d5 Cli,Mobile,Desktop: Shared folders: Fix moving shared subfolder to toplevel briefly marks it as a toplevel share (#12964) 2025-08-20 09:39:39 +03:00
mrjo118 a414241541 Mobile: Improve tag screen usability to allow add or remove tag with a single press, when the keyboard is open (#12954) 2025-08-20 09:33:31 +03:00
Henry Heino 0f13bf9d51 Mobile: Rich Text Editor: Support rendering subscript, superscript, and highlighted formatting (#12944) 2025-08-20 09:33:13 +03:00
Henry Heino c142c5c5c0 Desktop,Mobile: Markdown editor: Toggle checkboxes on ctrl-click (#12927) 2025-08-20 09:32:16 +03:00
Henry Heino af5c0135dc Mobile: Rich Text Editor: Enable syntax highlighting and auto-indent in the code block editor (#12909) 2025-08-20 09:29:30 +03:00
pedrandLaurent Cozic 8a811b9e78 Doc: Resolves #12861: Add end point documentation for Transcribe (#12870)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-08-20 09:29:12 +03:00
Henry Heino 602484f143 Desktop: Upgrade to Electron v37.3.0 (#12951) 2025-08-20 08:53:50 +03:00
renovate[bot]andLaurent Cozic dc84db1657 Update dependency sharp to v0.34.2 (#12982)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-08-20 08:33:29 +03:00
Henry Heino f5882ecfcc Chore: Improve type safety (#12992) 2025-08-20 08:33:10 +03:00
Laurent Cozic 30000c34ec Cli: If no notebook is provided when importing a file, use the default one 2025-08-19 23:33:52 +03:00
renovate[bot] 6e3df1bd90 Update dependency @types/react to v18.3.22 (#12990)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-19 18:59:17 +03:00
Joplin Bot 67196ac0b2 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-08-19 12:33:44 +00:00
Laurent Cozic 69646b5522 Doc: Update sponsors 2025-08-19 12:31:13 +03:00
Laurent Cozic 9147afce9a Server v3.4.2 2025-08-18 19:54:35 +03:00
Henry Heino c92701c52f iOS: Rich Text Editor: Fix the "edit" button for code blocks (#12924) 2025-08-18 18:46:02 +03:00
pedr ab3e9d1a3e Transcribe: Fixes: Use latest version of joplin/htr-cli available (#12875) 2025-08-18 18:45:52 +03:00
Henry Heino f9cab8843b Chore: Fix tsc (#12981) 2025-08-18 18:40:58 +03:00
yuudiandyuudi c36289c024 Server: Fixes #12947 Skip CORS check for SAML callback (#12948)
Co-authored-by: yuudi <yuudi@users.noreply.github.com>
2025-08-18 16:10:20 +03:00
Henry Heino 60b6db8cd4 Mobile: Rich Text Editor: Add basic support for collapsible <details> blocks (#12946) 2025-08-18 16:10:00 +03:00
Henry Heino bbd8f6f40e Mobile: Rich Text Editor: Fix adding headings moves the cursor to the next line (#12934) 2025-08-18 16:07:55 +03:00
Henry Heino 34b7f4e1f8 Chore: Sync fuzzer: Fix "DecryptionWorker: Cannot start because..." warning (#12925) 2025-08-18 16:04:26 +03:00
Henry Heino 06b681d897 Chore: Sync fuzzer: Add new possible actions: Adding and syncing a new temporary client on an existing account (#12741) 2025-08-18 15:57:44 +03:00
pedr f02a94bef5 Transcribe: Fixes #12766: Remove processed files and clean up after a retention period (#12827) 2025-08-18 15:57:34 +03:00
Miguel Matos ae6b57c5a5 CLI: Add collapsible notebooks functionality (#12718) 2025-08-18 15:55:55 +03:00
Henry Heino 88ab916008 Mobile: Rich Text Editor: Support rendering table of contents blocks (#12949) 2025-08-18 11:35:48 +03:00
pedr 97b0ffc263 Transcribe: #12883: Disable JobProcessor tests by default (#12955) 2025-08-18 11:34:26 +03:00
pedr ff8848d138 Desktop: Fixes #12315: Clicking Edit URL button in Note properties does not focus in url field (#12970) 2025-08-18 11:20:54 +03:00
renovate[bot] 2b686e6318 Update dependency @playwright/test to v1.52.0 (#12972)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-18 11:17:35 +03:00
renovate[bot] b913d18882 Update dependency @adobe/css-tools to v4.4.3 (#12979)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 22:02:58 +00:00
renovate[bot] a2c9a01722 Update dependency @types/node to v18.19.101 (#12978)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 05:42:21 +00:00
Milo Ivir 000d23c20f All: Translation: Update hr_HR.po (#12961) 2025-08-16 21:46:55 -04:00
Liffindra Angga Zaaldian 9e9f2f2930 All: Translation: Update id_ID.po (#12977) 2025-08-16 20:42:49 -04:00
VortexP c5a1a759c7 All: Translation: Update fi_FI.po (#12971) 2025-08-15 18:15:58 -04:00
github-actions[bot] 86f2a3a7d0 @VortexP has signed the CLA in laurent22/joplin#12971 2025-08-15 19:29:31 +00:00
cedecode 0b6a1c75ba All: Translation: Update de_DE.po (#12966) 2025-08-14 22:09:33 -04:00
renovate[bot] 53a0f8ddbc Update dependency python to v3.13.3 (#12965)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 01:08:28 +02:00
Laurent Cozic 67eabb5038 Doc: Update recommended Postgres for JSB 2025-08-14 22:32:00 +02:00
Laurent Cozic 983fced410 Doc: Fixed Transcribe graph 2025-08-14 22:32:00 +02:00
Jozef Gaal 4f5bbc1132 All: Translation: Update sk_SK.po (#12950) 2025-08-14 00:22:49 -04:00
ERYpTION 2f10235ecb All: Translation: Update da_DK.po (#12945) 2025-08-13 17:22:50 -04:00
github-actions[bot] 5b106d4827 @yuudi has signed the CLA in laurent22/joplin#12948 2025-08-13 20:45:52 +00:00
Joplin Bot cfa7d6cb31 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-08-13 18:27:34 +00:00
github-actions[bot] 3bf2eb0399 @prashant1177 has signed the CLA in laurent22/joplin#12940 2025-08-13 11:25:48 +00:00
renovate[bot] f5d62a50fe Update dependency @types/serviceworker to v0.0.135 (#12937)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-13 10:12:25 +00:00
Laurent Cozic b52f5435aa Doc: Add Transcribe System Architecture documentation 2025-08-12 19:24:27 +01:00
renovate[bot] bfd5bfc004 Update dependency git to v2.48.1 (#12921)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-11 15:32:53 +01:00
renovate[bot] 82965fe991 Update dependency jsdom to v26.1.0 (#12922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-11 15:32:45 +01:00
github-actions[bot] 8302afda19 @miguelammatos has signed the CLA in laurent22/joplin#12718 2025-08-10 23:26:18 +00:00
summoner b2c162c25b All: Translation: Update hu_HU.po (#12918) 2025-08-10 16:05:34 -04:00
Mihai Vasiliu 022e76fe8d All: Translation: Update ro_RO.po and ro_MD.po (#12917) 2025-08-10 16:04:28 -04:00
Joplin Bot 4b2d1895fd Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-08-10 18:26:11 +00:00
Joplin Bot 534507a31f Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-08-10 12:32:07 +00:00
Laurent Cozic 5b4a300c81 iOS 13.4.1 2025-08-10 10:41:49 +01:00
Laurent Cozic 1de0a59313 Chore: Fix iOS IPHONEOS_DEPLOYMENT_TARGET 2025-08-10 10:41:25 +01:00
Laurent Cozic f4dff92d2e Android 3.4.4 2025-08-10 10:34:02 +01:00
Laurent Cozic a5d37a0dca Desktop release v3.4.5 2025-08-10 10:26:53 +01:00
Laurent Cozic 75ef418b39 Update translations 2025-08-10 10:26:37 +01:00
Henry Heino 6bd702ae24 Mobile: Resolves #12843: Rich Text Editor: Improve support for HTML notes (#12912) 2025-08-10 09:32:42 +01:00
Laurent Cozic 9ea1808766 Update translations 2025-08-10 09:31:13 +01:00
Suchith 59f8dd36a6 Desktop: Fixes #12358: Selected emoji for new notebooks display too large until Joplin is restarted (#12888) 2025-08-10 09:30:42 +01:00
Henry Heino ea1d2e4878 Desktop, Mobile: Move several features from Extra Markdown Editor Settings into the main app (#12747) 2025-08-10 09:17:12 +01:00
Henry Heino 46ab00bfe4 Chore: Sync fuzzer: Re-use the same CLI process for commands run on the same client (#12913) 2025-08-10 09:14:25 +01:00
renovate[bot] 07465dd349 Update dependency dotenv to v16.5.0 (#12914)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-09 10:46:41 +01:00
renovate[bot] a288ffe338 Update dependency @types/node to v18.19.100 (#12904)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-08 21:20:11 +00:00
renovate[bot] dba62386b6 Update dependency @types/serviceworker to v0.0.134 (#12907)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-07 12:12:36 +01:00
Henry Heino 6704ab0d13 Mobile: Resolves #12841: Allow editing code blocks from the Rich Text Editor (#12906) 2025-08-07 10:18:09 +01:00
Arda Kılıçdağı 0312f2213d All: Translation: Update tr_TR.po (#12905) 2025-08-06 20:23:39 -04:00
Chaitanya Gupta 2ac0b66ef6 Doc: Fix link to E2EE spec (#12902) 2025-08-06 13:05:42 +01:00
github-actions[bot] ba970ac7a5 @laurent22 has signed the CLA in laurent22/joplin#12902 2025-08-06 12:04:36 +00:00
Henry Heino 639b261ee4 Mobile: Fixes #12844: Rich Text Editor: Make initial search behavior match the Markdown editor (#12878) 2025-08-06 11:10:14 +01:00
mrjo118 82bc819a21 Mobile: Fixes #12822: Fix switching between note and todo on mobile (#12849) 2025-08-06 11:09:05 +01:00
w568w 72f8ebe4ff Desktop: Fixes #11871: Put crash dump files at the platform-compliant locations (#12839) 2025-08-06 11:08:29 +01:00
pedrandLaurent Cozic 8c8a38e704 Desktop: Resolves #2059: Add option to transform HTML notes into Markdown (#12730)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-08-06 11:02:13 +01:00
mrjo118 358134038c Desktop, Mobile: Fixes #12104: Ensure merges to revisions during cleaning are synced to the target (#12444) 2025-08-06 10:52:28 +01:00
Henry Heino 1f4b32a241 Desktop: Fixes #12235: Fix switching to the Markdown editor after pasting links (#12241) 2025-08-06 10:50:17 +01:00
Henry Heino 2a216f1e61 Server: Fix notebooks remain shared after being permanently deleted by the share owner (#12583) 2025-08-06 10:37:38 +01:00
pedr 3f75d770f7 Desktop: Resolves #12224: Add an option to enable or disable search in OCR text (#12578) 2025-08-06 10:37:20 +01:00
Henry Heino b6d32831c6 Mobile: Fixes #12880: Fix plugin support (#12890) 2025-08-06 10:23:40 +01:00
Henry Heino 788033cb5f Mobile: Fixes #12891: Fix error logged when opening the Markdown editor (#12892) 2025-08-06 10:23:07 +01:00
klaas0 4e685ec687 Mobile: Resolves #12858: Fixed missing filename when a file is shared with the app (#12895) 2025-08-06 10:22:47 +01:00
renovate[bot] c60b703b9c Update dependency ldapts to v7.4.0 (#12900)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 10:19:03 +01:00
renovate[bot] f23e10a975 Update dependency @types/node to v18.19.99 (#12899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 06:25:58 +00:00
renovate[bot] b9a71c0c3d Update dependency sharp to v0.34.1 (#12898)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 04:43:57 +00:00
renovate[bot] f525c4179f Update dependency react-native-share to v12.0.11 (#12897)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 02:34:38 +00:00
renovate[bot] 1dd0ec619f Update dependency lint-staged to v15.5.2 (#12896)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 02:32:29 +00:00
renovate[bot] d2ee5411d0 Update dependency @types/react to v18.3.21 (#12884)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-05 22:56:45 +00:00
krevad a2472cb3b7 All: Translation: Update sv.po (#12893) 2025-08-05 18:55:12 -04:00
github-actions[bot] 89018e497f @klaas0 has signed the CLA in laurent22/joplin#12895 2025-08-05 21:46:31 +00:00
renovate[bot] ca8415f74a Update dependency esbuild to v0.25.4 (#12889)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-05 20:34:24 +00:00
renovate[bot] 853b792367 Update dependency @types/node to v18.19.98 (#12881)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-05 20:31:35 +00:00
renovate[bot] 56d477f1c1 Update dependency esbuild to v0.25.4 (#12887)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-05 16:37:20 +00:00
Laurent Cozic 020ba10c56 Update renovate.json5 2025-08-05 13:35:34 +01:00
pedr be09873c58 Desktop: Resolves #12087: Add shortcut to toggle between editors (#12869) 2025-08-05 12:43:58 +01:00
renovate[bot] 4d8a16bda7 Update dependency @types/mustache to v4.2.6 (#12867)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-05 12:28:03 +01:00
pedr f725d3895f Transcribe: Resolves #12862: Add log statement signaling that the startup has finished (#12876) 2025-08-05 12:26:10 +01:00
pedr 0e19dce0d1 Transcribe: Fixes #12863: Improve error handling (#12873) 2025-08-05 10:53:42 +01:00
Joplin Bot 31c5058d5e Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-08-04 18:29:30 +00:00
Laurent Cozic 4d760303bc Android 3.4.3 2025-08-04 18:39:19 +01:00
Laurent Cozic 23e63e5fec Desktop release v3.4.4 2025-08-04 18:33:28 +01:00
github-actions[bot] 53a05eb781 @JZou-Code has signed the CLA in laurent22/joplin#12868 2025-08-04 11:57:37 +00:00
renovate[bot] 3880352f53 Update dependency @react-native-documents/picker to v10.1.3 (#12865)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-03 20:34:46 +00:00
summoner 42a3c40702 All: Translation: Update hu_HU.po (#12864) 2025-08-03 12:56:34 -04:00
mrjo118 8e585640e7 Android: Fixes #12821: Fix on screen keyboard covers the markdown toolbar and contents on Android 15+ (#12838) 2025-08-03 17:30:15 +01:00
renovate[bot] cd3fb4e7ad Update dependency sharp to v0.34.0 (#12854)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-03 17:27:35 +01:00
Laurent Cozic 702b5b3c63 Server: Trying to fix a request parsing error that can potentially crash the error (#12860) 2025-08-03 15:04:54 +01:00
PanWor a80406dcb7 All: Translation: Update Polish pl_PL.po (#12857) 2025-08-02 17:06:09 -04:00
github-actions[bot] 7637915bed @PanWor has signed the CLA in laurent22/joplin#12857 2025-08-02 20:09:21 +00:00
renovate[bot] ea8b6485d8 Update dependency pg-boss to v10.2.0 (#12850)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-02 13:17:06 +01:00
renovate[bot] 1a2ef78726 Update dependency babel-plugin-react-native-web to v0.20.0 (#12848)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-02 09:23:47 +01:00
renovate[bot] 63d5ffc796 Update dependency @types/serviceworker to v0.0.133 (#12846)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-02 09:23:28 +01:00
renovate[bot] 15918a57aa Update dependency react-refresh to v0.17.0 (#12847)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-02 09:23:13 +01:00
renovate[bot] 032e8b5596 Update dependency @types/react-dom to v18.3.7 (#12845)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-01 20:14:16 +01:00
Laurent Cozic ee091ede52 Update renovate.json5 2025-08-01 17:51:06 +01:00
Henry Heino 763e3f7479 Chore: Resolves #12814: Add additional logging to DecryptionWorker and EncryptionService (#12824) 2025-08-01 17:39:37 +01:00
Laurent Cozic 0089c62493 Transcribe v3.4.9 2025-08-01 17:32:56 +01:00
Laurent Cozic 20d6d56c02 Doc: Hide "Edit this page" link when printing 2025-08-01 17:32:33 +01:00
pedrandLaurent Cozic 8b999f8dc6 Transcribe: Resolves #12831: Add support for transcribe server to the server docker compose configuration (#12832)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-08-01 17:31:59 +01:00
github-actions[bot] d5dd55a813 @w568w has signed the CLA in laurent22/joplin#12839 2025-08-01 15:31:56 +00:00
Laurent Cozic 0067ac126d Doc: Added technical info to JSB page 2025-08-01 16:28:01 +01:00
renovate[bot]andLaurent Cozic c6f47a9084 Update eslint (#12833)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-08-01 14:46:54 +01:00
Laurent Cozic 22817317f1 Transcribe v3.4.8 2025-08-01 13:30:54 +01:00
Laurent Cozic 9ba1c0db4e Chore: Also build ARM64 image for Transcribe 2025-08-01 13:30:34 +01:00
renovate[bot] 70d6c1225c Update types (#12834)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-01 12:50:46 +01:00
Laurent Cozic b1f013a8c2 Transcribe v3.4.7 2025-08-01 12:14:32 +01:00
Laurent Cozic 8c66349907 Chore: Fixed credential for Transcribe release 2025-08-01 12:14:09 +01:00
Laurent Cozic 86b4f713ee Chore: Trying to disable Renovate React monorepo rule 2025-08-01 12:08:20 +01:00
Henry Heino f50dc6a536 Chore: Work around test failure in newer NodeJS versions (#12830) 2025-08-01 11:45:09 +01:00
Henry Heino 825ce51a3c Chore: Resolves #12813: Move performance logger file labels to the corresponding log statements (#12820) 2025-08-01 11:43:05 +01:00
mrjo118 c5b6f0bca1 Mobile: Fixes #12783: Improve usability of inline search in notes (#12791) 2025-08-01 11:39:07 +01:00
Laurent Cozic 86934d502e Transcribe v3.4.6 2025-08-01 11:14:18 +01:00
Laurent Cozic c63ad17f98 Chore: Fixed Transcribe Docker image 2025-08-01 11:13:57 +01:00
Joplin Bot c746b5fdc2 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-08-01 01:19:23 +00:00
Laurent Cozic 949fb85755 Transcribe v3.4.5 2025-07-31 21:36:35 +01:00
Laurent Cozic 0f94cb8c17 Chore: Updated script to allow deploying Transcribe server (#12828) 2025-07-31 21:35:03 +01:00
Joplin Bot 7ba61bb585 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-07-31 18:28:37 +00:00
Henry Heino 00e4657a39 Desktop: Resolves #12714: Make more settings per-profile (application layout, note list style, and note list order) (#12825) 2025-07-31 17:12:31 +01:00
pedr cbdc98553a Desktop, Server: Add transcribe functionality to Desktop though Joplin Server (#12670) 2025-07-31 16:42:03 +01:00
Laurent Cozic e3c2589a12 Doc: Allow setting the initial hosting type on the Plans page 2025-07-31 14:48:25 +01:00
Henry Heino 56b3cc3dc2 Android: Fixes #12782: Fix save button is invisible in release builds (#12826) 2025-07-31 13:59:25 +01:00
Suchith d59a09fd29 Desktop: Fixes #12233: Add tooltips to sidebar buttons (#12798) 2025-07-30 15:42:08 +01:00
Laurent Cozic 5a64222276 Desktop: Fixes #12816: Date/Time dialog button not visible in dark mode 2025-07-30 15:22:34 +01:00
Henry Heino 012297d52a Android: Fixes #12781: Fix editor becomes blank after dismissing search (#12818) 2025-07-30 10:53:12 +01:00
Henry Heino 5e70bce2c3 Mobile: Performance: Improve Rich Text Editor startup performance (#12819) 2025-07-30 10:52:57 +01:00
Henry Heino 4c3eca1f18 Mobile: Add a Rich Text Editor (#12748) 2025-07-29 20:25:43 +01:00
Henry Heino c899f63a41 Chore: Resolves #12088: Desktop: Add performance logging statements to the startup code (#12812) 2025-07-29 19:57:12 +01:00
Liffindra Angga Zaaldian c838b86413 All: Translation: Update id_ID.po (#12815) 2025-07-29 06:57:18 -04:00
pedr 90d6d1747a Transcribe: Fixes #12765: Removes file from temporary folder after storing it (#12795) 2025-07-28 18:32:10 +01:00
renovate[bot] 6e8ba8a536 Update dependency jsdom to v26 (#12809)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 12:24:57 +01:00
github-actions[bot] e80a0c39f8 @laurent22 has signed the CLA in laurent22/joplin#12798 2025-07-27 14:57:46 +00:00
bwat47 ffeb5f887a Doc: Update s3.md for provider Cloudflare R2 (#12805) 2025-07-27 15:54:10 +01:00
github-actions[bot] 357199658f @bwat47 has signed the CLA in laurent22/joplin#12805 2025-07-27 13:42:23 +00:00
Laurent Cozic 65bde86263 Doc: Added documentation for the CLA consent records tool and archives 2025-07-27 10:00:33 +01:00
Laurent Cozic 1c236ca73c Doc: Update CLA consent records 2025-07-27 09:36:28 +01:00
Laurent Cozic 2881280100 Merge branch 'cla_signatures' into dev 2025-07-27 09:33:50 +01:00
Laurent Cozic 954b48b779 Merge branch 'dev' into cla_signatures 2025-07-27 09:33:24 +01:00
Laurent Cozic 53e7b672b0 Chore: Recorded CLA consent documents 2025-07-27 09:33:22 +01:00
krevad ceaaab77e8 All: Translation: Update sv.po (#12800) 2025-07-26 18:00:43 -04:00
Eric Duarte c29bbe96f7 All: Translation: Update es_ES.po and ca.po (#12760) 2025-07-26 17:03:20 -04:00
Mihai Vasiliu db323ac585 All: Translation: Update ro_RO.po and ro_MD.po (#12799) 2025-07-26 16:54:55 -04:00
krevad dc8e3242f3 All: Translation: Update sv.po (#12797) 2025-07-26 11:00:38 -04:00
github-actions[bot] 9705941538 @krevad has signed the CLA in laurent22/joplin#12797 2025-07-26 09:58:22 +00:00
Joplin Bot 0cf9981ac7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-07-26 01:09:51 +00:00
Laurent Cozic b93ee3469b Desktop release v3.4.3 2025-07-25 19:22:30 +01:00
Laurent Cozic 73e5bc74a5 Android 3.4.2 2025-07-25 19:21:50 +01:00
Henry Heino 6c761b3fb4 Desktop,Mobile: Fixes #12573: Markdown editor: Make list indentation size equivalent to four spaces (#12794) 2025-07-25 19:18:14 +01:00
Henry Heino e13985a952 Desktop: Fixes #12790: Plugins: Fix importing sqlite3 (#12792) 2025-07-25 19:17:40 +01:00
Laurent Cozic 8b912b22cf Chore: Fixed bad merge 2025-07-25 09:25:17 +01:00
Henry HeinoandLaurent Cozic 4c90cd62fe Chore: Mobile: Log startup performance information (#12776)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-07-25 09:20:38 +01:00
Henry Heino 999ec8c11f Android: Fix title bar is partially hidden by the screen header (#12785) 2025-07-25 09:19:23 +01:00
Henry Heino d8e73f3141 Chore: Mobile: Fix warning (#12786) 2025-07-25 09:19:11 +01:00
renovate[bot] 3b1a4e8209 Update dependency react-native-paper to v5.13.5 (#12784)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 23:33:23 +00:00
renovate[bot] 1ff0f0f1c8 Update dependency @types/node to v18.19.87 (#12779)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 13:48:29 +01:00
Joplin Bot 68863db4bd Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-07-24 12:36:28 +00:00
Laurent Cozic f6b8462a5b Android 3.4.1 2025-07-24 12:04:31 +01:00
Laurent Cozic f8d09ce847 Chore: Trying to fix Android build 2025-07-24 11:52:40 +01:00
Laurent Cozic f541618ed4 Chore: Build files 2025-07-24 11:44:36 +01:00
renovate[bot] b023ddc4db Update dependency nodemon to v3.1.10 (#12769)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 02:03:07 +00:00
Henry Heino 3289b2ba30 Chore: Desktop: Migrate entrypoint to TypeScript (#12773) 2025-07-23 22:24:49 +01:00
renovate[bot] 0c52ac424d Update dependency mermaid to v11.6.0 (#12775)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-23 18:29:26 +01:00
renovate[bot] 56529a1433 Update dependency glob to v11.0.2 (#12772)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 22:05:49 +00:00
renovate[bot] 65981e5e8b Update dependency @types/serviceworker to v0.0.132 (#12768)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 14:35:01 +01:00
summoner 798064b004 All: Translations: Update hu_HU.po (#12764) 2025-07-21 17:54:56 -04:00
Laurent Cozic e5ffb7df4d Chore: Trying to fix Android build 2025-07-21 22:40:44 +01:00
Laurent Cozic 49de4461d9 Desktop release v3.4.2 2025-07-21 21:49:29 +01:00
Henry Heino 9cfd135bba Chore: Editor: Refactor editor package (#12743) 2025-07-21 21:37:45 +01:00
Henry Heino e62cba5048 Desktop,Mobile: Fixes #12744: Fix adding lists to blank lines using toolbar buttons (#12745) 2025-07-21 18:32:14 +01:00
Henry Heino 4d5097b585 Desktop: Fixes #12341: Markdown editor: Prevent selection from extending far outside the editor boundaries (#12746) 2025-07-21 18:31:01 +01:00
Henry Heino e6b81d42c3 Chore: Migrate urlUtils from deprecated url.parse to URL (#12750) 2025-07-21 18:28:53 +01:00
renovate[bot] b705be33e1 Update dependency nodejs to v23.10.0 (#12762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-21 18:27:47 +01:00
SAYAN02-DEV 984bb0f3ef Desktop: Fixes #12669: Long URL in note properties breaks the dialog layout (#12669) 2025-07-20 17:18:24 +01:00
Laurent Cozic cd158e584e Server: Fixes #12737: Fixed broken "Delete expired authentication codes" task 2025-07-20 11:03:27 +01:00
Laurent Cozic 91b0ea609d Server: Fixed incorrectly named database migration that prevents new migrations from being applied 2025-07-20 11:01:57 +01:00
Laurent Cozic 898888088c Server: Fixed incorrectly named database migration that prevents new migrations from being applied 2025-07-20 10:52:56 +01:00
Eric Duarte 0a25b3bde6 All: Translation: Update es_ES.po (#12753) 2025-07-19 18:29:58 -04:00
renovate[bot] ed8e709263 Update dependency bulma to v1.0.4 (#12749)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 23:53:00 +01:00
summoner 29e7594dc6 All: Translations: Update hu_HU.po (#12740) 2025-07-18 16:40:07 -04:00
Jozef Gaal a0d38444bd All: Translation: Update sk_SK.po (#12735) 2025-07-18 16:38:48 -04:00
renovate[bot] e86e381fca Update dependency @types/serviceworker to v0.0.131 (#12734)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 13:36:48 +00:00
Henry Heino 0a6b8fb90a Mobile: Add support for scanning multi-page documents (#12635) 2025-07-18 14:33:58 +01:00
Joplin Bot 6c5293833d Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-07-17 18:30:08 +00:00
Henry Heino a2af3f460a Desktop: Resolves #11866: Rich Text Editor: Add less information to the log file when pasting (#12684) 2025-07-17 15:51:11 +01:00
Henry Heino 30aff62d08 Mobile: Implement tag screen redesign (#12551) 2025-07-17 15:50:37 +01:00
Laurent Cozic 53fe12ab8a Chore: Fix tagServerLatest script when latest manifest exists locally 2025-07-17 13:57:16 +01:00
Joplin Bot d52550e272 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-07-17 12:35:56 +00:00
Laurent Cozic 2c9084b9bc Server v3.4.1 2025-07-17 10:30:00 +01:00
renovate[bot] 9dc5e0b73c Update dependency @types/serviceworker to v0.0.130 (#12731)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-17 10:26:58 +01:00
renovate[bot] c10a7aa4e8 Update dependency @react-native-community/cli-platform-android to v16.0.3 (#12727)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 23:54:06 +01:00
renovate[bot] e0e9edd395 Update dependency @react-native-community/cli to v16.0.3 (#12726)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 20:24:28 +00:00
ERYpTION d13f9626fa All: Translation: Update da_DK.po (#12729) 2025-07-16 16:22:33 -04:00
renovate[bot] 1bca9c1cf9 Update dependency @react-native-community/cli-platform-ios to v16.0.3 (#12728)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 19:07:29 +01:00
renovate[bot] c9859a48fd Update dependency @types/serviceworker to v0.0.129 (#12713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 14:20:17 +00:00
Laurent Cozic add4ddfcb9 Server: Fixes #12721: Prevent PM2 logs from accumulating in the image container (#12723) 2025-07-16 15:17:41 +01:00
renovate[bot] f92d5063cd Update dependency sass to v1.86.3 (#12725)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 15:17:13 +01:00
Helmut K. C. Tessarek 98cb30631c Update translations (#12717) 2025-07-16 11:43:00 +01:00
renovate[bot] c293ca2dd2 Update dependency sass to v1.86.0 (#12720)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 11:41:50 +01:00
renovate[bot] 96d0035071 Update dependency python to v3.13.2 (#12724)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 11:27:26 +01:00
Khemarato Bhikkhu b2cdfd6358 Desktop, Cli: Falls back to filename for the title when importing Markdown files with FrontMatter (#12698) 2025-07-14 19:42:45 +01:00
Henry Heino 89589981d0 Mobile: Switch library used for biometrics (#12682) 2025-07-14 19:40:14 +01:00
renovate[bot] 9acda01d79 Update dependency react-native-quick-crypto to v0.7.13 (#12707)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 11:58:32 +01:00
Henry Heino cc9f5cca07 Chore: Upgrade node-gyp to v11.2.0 (#12681) 2025-07-14 11:35:48 +01:00
renovate[bot]andLaurent Cozic bc1e83ba07 Update dependency lint-staged to v15.5.1 (#12697)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-07-14 11:35:35 +01:00
renovate[bot] 1ba1b028d8 Update dependency @types/serviceworker to v0.0.128 (#12712)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 11:34:54 +01:00
Piotr Narel 6cb27e23ef All: Translation: Update pl_PL.po (#12704) 2025-07-12 16:27:23 -04:00
renovate[bot] 2fee913ecf Update dependency nodemailer to v6.10.1 (#12703)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-12 10:03:38 +00:00
renovate[bot] 37b653dbdd Update dependency nodejs to v23.9.0 (#12700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 17:46:56 +01:00
Laurent Cozic 4231f8cced Chore: asset files 2025-07-11 17:26:01 +01:00
Laurent Cozic 3f9c60dd10 Doc: Fix JSB link 2025-07-11 17:25:42 +01:00
github-actions[bot] 83f1fcc228 @jordanhandy has signed the CLA in laurent22/joplin#12701 2025-07-11 13:05:02 +00:00
mrjo118 35e189ef6e Desktop, Mobile: Resolves #12594: Move the conflicts folder to the top of the notebook list to improve visibility (#12688) 2025-07-11 10:59:26 +01:00
renovate[bot] a15bad37b1 Update dependency lint-staged to v15.5.0 (#12693)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 10:56:47 +01:00
github-actions[bot] b03e370d2b @khemarato has signed the CLA in laurent22/joplin#12696 2025-07-11 06:21:31 +00:00
Laurent Cozic 8b4ad0aaf7 Doc: Add Joplin Server Business to plans and add page about it (#12694) 2025-07-10 20:48:56 +01:00
Henry Heino c3575672b2 Web: Image editor: Fix scrollbars sometimes incorrectly visible (#12692) 2025-07-10 12:35:42 +01:00
Joplin Bot e840d0c3fd Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-07-10 01:10:52 +00:00
Laurent Cozic 5227ba1adb Merge branch 'release-3.3' into dev 2025-07-10 00:47:30 +01:00
renovate[bot] f68d2bbc7c Update dependency pg to v8.14.1 (#12690)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 21:15:47 +01:00
renovate[bot] 65c9665a2a Update dependency pg to v8.14.0 (#12689)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 19:14:50 +01:00
Henry Heino 2c50ad36c5 Desktop: Fix secondary window controls greyed out when first opened (#12685) 2025-07-09 08:43:06 +01:00
Henry Heino 7212269107 Clipper: Fixes #12683: Fix web clipper fails to clip pages that include comments in inline styles (#12686) 2025-07-09 08:42:23 +01:00
renovate[bot] 1387470f2a Update dependency katex to v0.16.22 (#12687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 05:59:16 +00:00
Henry HeinoandLaurent Cozic a6d5eb9b8e Chore: Resolves #12283: Server: Add fuzzer for detecting sync bugs (#12592)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-07-07 16:07:27 +01:00
pedr 5d1a055d2a Chore: Fixes #12673: Removing warning of obsolete snapshots from OneNote importer tests (#12675) 2025-07-07 16:06:52 +01:00
Henry Heino 36910a2a9b Chore: Desktop: Decrease source map size (#12679) 2025-07-07 16:06:33 +01:00
Joplin Bot b4a57a10aa Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-07-07 12:33:47 +00:00
Laurent Cozic bca8cb1c2d Doc: Update sponsors 2025-07-07 12:33:05 +01:00
Joplin Bot 0b489a9c98 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-07-06 16:59:09 +00:00
renovate[bot] ce32651794 Update dependency koa to v2.16.1 (#12677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-06 04:55:44 +00:00
Laurent Cozic f0159cdd89 Doc: Update sponsors 2025-07-05 11:57:37 +01:00
Laurent Cozic 97652fa362 Tools: Setup runForTesting script to also create shares and send to recipient 2025-07-05 11:57:37 +01:00
Henry Heino 2af895477f Cli: Refresh shares when running the sync command (#12667) 2025-07-04 18:52:54 +01:00
github-actions[bot] 4ddd5c4558 @laurent22 has signed the CLA in laurent22/joplin#12571 2025-07-04 16:36:54 +00:00
renovate[bot] 9d6aa1c739 Update dependency @rollup/plugin-node-resolve to v16.0.1 (#12672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-04 03:03:47 +00:00
renovate[bot] 3b27f84996 Update dependency @rollup/plugin-node-resolve to v16 (#12668)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-04 00:09:25 +01:00
Henry Heino fc38691f3a Desktop: Fixes #12451: Fix incorrect line numbers/files in debug output (#12664) 2025-07-03 17:48:11 +01:00
renovate[bot] d2274319f9 Update dependency uuid to v11.1.0 (#12665)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-03 14:56:17 +01:00
github-actions[bot] 7746694dca @SAYAN02-DEV has signed the CLA in laurent22/joplin#12666 2025-07-03 07:56:53 +00:00
renovate[bot] a40448fed9 Update dependency uuid to v11 (#12659)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-03 01:31:32 +01:00
Henry Heino 5ec79c74e2 Desktop: Disable console wrapper (#12663) 2025-07-02 20:48:46 +01:00
Laurent Cozic bbba19eb40 All: Fixes #12089: Moving sub-notebook of shared notebook should unshare it (#12647) 2025-07-02 18:14:47 +01:00
Henry Heino 75b89c7e09 Desktop,Cli: Fix data API failure when including both conflicts and deleted notes in results (#12650) 2025-07-02 17:22:02 +01:00
Laurent Cozic f9af9a724c Server: Ensure shares are writable (#12651) 2025-07-02 16:14:52 +01:00
renovate[bot] 6e7c9c059d Update dependency react-native-share to v12.0.9 (#12656)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-02 15:04:24 +01:00
renovate[bot] 69ee435b0b Update dependency react-native-zip-archive to v7 (#12657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-02 14:19:07 +01:00
renovate[bot] 204f1bf509 Update dependency react-native-share to v12 (#12655)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-02 09:31:17 +01:00
renovate[bot] 7a7a2c4cec Update dependency react-native-device-info to v14.0.4 (#12654)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-02 09:31:10 +01:00
renovate[bot] 441486acaa Update dependency react-native-modal-datetime-picker to v18 (#12652)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-02 09:31:01 +01:00
renovate[bot] 4684142df7 Update dependency raw-body to v3 (#12646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-02 00:41:59 +01:00
renovate[bot] 0a871ea44b Update dependency react-native-device-info to v14 (#12649)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-02 00:41:46 +01:00
Henry Heino 901fe73c08 Cli: Support managing shared notebooks (#12637) 2025-07-01 22:47:03 +01:00
renovate[bot] 41553eb963 Update dependency nodejs to v23.8.0 (#12641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 22:43:59 +01:00
Laurent Cozic cada200575 CI: Fixed random Joplin Server test failure on CI 2025-07-01 21:42:21 +01:00
renovate[bot] 13711c6a9c Update dependency python to v3.13.1 (#12645)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 21:25:11 +01:00
renovate[bot] 1a6acee5c8 Update dependency @types/react-dom to v18.3.6 (#12640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 18:21:58 +01:00
renovate[bot] 0c2547a780 Update dependency python (#12644)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 18:21:47 +01:00
renovate[bot] e0204d672b Update dependency npm-package-json-lint to v8 (#12642)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 16:15:00 +01:00
renovate[bot] 9c9b06de2d Update dependency @types/react to v19.0.14 (#12636)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 12:23:54 +01:00
renovate[bot] 58f3344564 Update dependency nodejs to v23 (#12638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 12:23:41 +01:00
renovate[bot] f6fef5a8ec Update dependency madge to v8 (#12629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 08:40:43 +01:00
renovate[bot] e0211045db Update types (#12634)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 08:39:37 +01:00
renovate[bot] f757221d44 Update dependency glob to v11.0.1 (#12631)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 03:31:06 +00:00
Henry Heino 552ecc9064 Android, iOS: Fix camera screen (#12624) 2025-06-30 21:11:59 +01:00
renovate[bot] 7d4864193f Update dependency jsdom to v25 (#12628)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 21:11:41 +01:00
renovate[bot] 81e2205a53 Update dependency glob to v11 (#12627)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 21:11:27 +01:00
renovate[bot] 4e89890a23 Update dependency @types/node to v18.19.86 (#12625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 21:10:44 +01:00
renovate[bot] 60de33b8be Update dependency @rollup/plugin-replace to v6.0.2 (#12616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 17:44:30 +01:00
renovate[bot] 84d6f5dfcb Update dependency @types/uuid to v10 (#12617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 17:44:22 +01:00
mrjo118 d0d80c0e4a Mobile: Add missing title to the revision viewer for mobile (#12611) 2025-06-30 14:53:19 +01:00
Laurent Cozic 798c1e1c2b Update renovate.json5 2025-06-30 14:01:07 +01:00
renovate[bot] 1eef44d243 Update dependency @react-native-community/cli-platform-ios to v16 (#12608)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 13:54:40 +01:00
renovate[bot] e5adaa7f74 Update dependency @rollup/plugin-replace to v6 (#12612)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 13:54:09 +01:00
renovate[bot] 671997af96 Update dependency @types/node to v18.19.85 (#12614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 13:53:57 +01:00
renovate[bot] 2bf968f9ad Update dependency @crowdin/cli to v4 (#12601)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 11:55:25 +01:00
renovate[bot] 3e06dd989f Update dependency @rollup/plugin-commonjs to v28.0.3 (#12613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 11:50:32 +01:00
renovate[bot] 3459355285 Update dependency @rollup/plugin-commonjs to v28 (#12610)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 09:01:02 +01:00
renovate[bot] 7406a89dc0 Update dependency @react-native-community/cli-platform-android to v16.0.2 (#12607)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 01:41:17 +00:00
renovate[bot] ace662cc79 Update dependency @react-native-community/cli to v16.0.2 (#12605)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 22:33:57 +00:00
renovate[bot] 0c5d5e59f3 Update bitnami/postgresql Docker tag to v17.3.0 (#12604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 20:09:06 +01:00
renovate[bot] b00aadb542 Update dependency @react-native-community/cli-platform-android to v16 (#12606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 20:08:30 +01:00
renovate[bot] d6883e6ec1 Update dependency re-resizable to v6.11.2 (#12591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 18:08:25 +01:00
renovate[bot] 6ac64ca0d9 Update dependency @react-native-community/cli to v16 (#12602)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 17:34:03 +01:00
renovate[bot] 9890d267a1 Update bitnami/postgresql Docker tag to v17 (#12600)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 16:40:21 +01:00
Laurent Cozic 1a1335a7d5 Update renovate.json5 2025-06-29 14:56:37 +01:00
renovate[bot] 67288f0b44 Update dependency @pmmmwh/react-refresh-webpack-plugin to v0.5.16 (#12595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 13:16:48 +01:00
renovate[bot] a0cd09cd5b Update dependency node to v18.20.8 (#12596)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 13:16:33 +01:00
renovate[bot] 6e5623ce6a Update dependency node to v18.20.7 (#12581)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 10:30:47 +01:00
renovate[bot] 032f26b1c5 Update dependency koa to v2.16.0 (#12590)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 10:29:48 +01:00
renovate[bot] d0030a904c Update Rust crate bytes to v1.10.1 (#12589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-28 22:03:24 +00:00
Jozef Gaal a23d5d10b6 All: Translation: Update sk_SK.po (#12588) 2025-06-28 18:00:31 -04:00
mrjo118 f9ccd15615 Mobile: Add delete line, duplicate line and sort selected lines buttons to editor toolbar (#12555) 2025-06-28 21:01:05 +01:00
pedr 1f9f63d176 CI: Fixes #12440: Disable logging from onenote-converter library by checking if it a test run (#12566) 2025-06-28 20:24:30 +01:00
mrjo118 813f077312 Desktop: Fixes #12419: Ensure min and max validation is enforced when setting is not yet present (#12553) 2025-06-28 20:19:07 +01:00
Henry HeinoandLaurent Cozic 6a5c85d3d7 Android: Voice typing: Add setting to allow specifying a glossary (#12370)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-28 20:06:12 +01:00
Henry Heino 1644f56447 Android: Fixes #12484: Fix cursor jumps to the beginning of inputs on tap (#12499) 2025-06-28 20:05:29 +01:00
renovate[bot] 85518edca1 Update Rust crate bytes to v1.10.0 (#12561)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-28 20:03:29 +01:00
renovate[bot] ebc070b3c7 Update dependency sass to v1.85.1 (#12540)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-28 20:02:40 +01:00
Henry Heino a33fb575fd Chore: Mobile: Add internal support for taking multiple pictures from a camera component (#12357) 2025-06-28 20:01:13 +01:00
Henry Heino ecc781ee39 Chore: VSCode workspace: Default to tab indentation (#12587) 2025-06-28 20:00:39 +01:00
github-actions[bot] f1ac95a1c7 @bekemax has signed the CLA in laurent22/joplin#12586 2025-06-27 17:11:39 +00:00
renovate[bot] 098cabad40 Update Rust crate log to v0.4.27 (#12580)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-26 11:35:34 +00:00
renovate[bot] 4d01738029 Update dependency @types/serviceworker to v0.0.127 (#12577)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-26 07:47:04 +00:00
renovate[bot] 3433293a0e Update dependency webpack-dev-server to v5.2.1 (#12576)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-25 08:31:53 +00:00
renovate[bot] 02fd244096 Update dependency ldapts to v7.3.3 (#12575)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-25 02:42:52 +00:00
renovate[bot] 00cd26fd82 Update dependency @types/react to v18.3.20 (#12574)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-24 23:43:29 +00:00
renovate[bot] 38ca224a16 Update dependency webpack-dev-server to v5.2.0 (#12543)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-24 09:51:43 -07:00
github-actions[bot] 78e9ced96c @jhult has signed the CLA in laurent22/joplin#12567 2025-06-20 14:38:18 +00:00
github-actions[bot] bba6ede569 @Robin-Sch has signed the CLA in laurent22/joplin#12563 2025-06-18 21:52:29 +00:00
summoner001 0fec577932 All: Translation: Update hu_HU.po (#12562) 2025-06-18 17:07:13 -04:00
renovate[bot] 780d049502 Update react monorepo (#12557)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 02:04:30 +00:00
renovate[bot] a5d74e1ee7 Update dependency nanoid to v3.3.11 (#12556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 02:01:49 +00:00
renovate[bot] d6b369b4f4 Update dependency react-select to v5.10.1 (#12542)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 23:34:11 +00:00
Nick 572e40c635 All: Translation: Update sv.po (#12546) 2025-06-16 14:41:21 -04:00
Henry Heino 4af5c609fd Chore: CI: Disable UI tests on MacOS (#12547) 2025-06-16 10:40:45 -07:00
renovate[bot] 8487fc1a34 Update dependency @types/react to v19.0.11 (#12539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-16 12:02:11 +01:00
Laurent Cozic a76fad3ddf Chore: Disable cache on CI (#12509) 2025-06-16 10:37:29 +01:00
renovate[bot]andLaurent Cozic a08af91153 Update dependency react-native-vector-icons to v10.2.0 (#12536)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-16 10:37:17 +01:00
renovate[bot] 3bcf221e52 Update dependency react-select to v5.10.0 (#12538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-16 10:20:05 +01:00
renovate[bot]andLaurent Cozic 0dd211c2fd Update dependency react-native-localize to v3.4.1 (#12535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-16 08:36:24 +01:00
renovate[bot]andLaurent Cozic b6fea2a4e2 Update dependency re-resizable to v6.10.4 (#12534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-16 08:36:16 +01:00
Gustavo V. F. 73eb6cca38 All: Translation: Update pt_BR.po (#12537) 2025-06-15 17:18:04 -04:00
Laurent Cozic 449f49379d Chore: Trying to fix RSA error on CI (#12526) 2025-06-15 22:08:27 +01:00
github-actions[bot] 7a26d4f336 @Gustavo-V-F has signed the CLA in laurent22/joplin#12537 2025-06-15 20:44:49 +00:00
renovate[bot]andLaurent Cozic c4b951544b Update dependency node-mocks-http to v1.16.2 (#12523)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-15 19:23:40 +01:00
renovate[bot] 5746d4cdf6 Update dependency re-resizable to v6.10.3 (#12532)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-15 19:22:49 +01:00
renovate[bot] 71e4f35e79 Update dependency react-native-image-picker to v7.2.3 (#12533)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-15 19:22:37 +01:00
renovate[bot] 5169371b68 Update dependency pg to v8.13.3 (#12530)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-15 16:18:39 +01:00
renovate[bot] 24845bd7d8 Update dependency nodemailer to v6.10.0 (#12529)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-15 14:26:43 +01:00
renovate[bot] 00b7726cda Update dependency ldapts to v7.3.1 (#12517)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-15 10:17:12 +01:00
Laurent Cozic ce9008998c Chore: Add auto-generated files 2025-06-15 09:39:52 +01:00
renovate[bot] 776813acfe Update dependency nan to v2.22.2 (#12522)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-15 09:33:52 +01:00
renovate[bot] d13c213657 Update dependency nan to v2.22.0 (#12520)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-15 07:34:15 +01:00
renovate[bot] 1895b3d067 Update dependency lint-staged to v15.4.3 (#12519)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-15 07:34:06 +01:00
renovate[bot] 863d00c595 Update dependency license-checker-rseidelsohn to v4.4.2 (#12518)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-15 07:33:42 +01:00
renovate[bot] 1b8b1f7b2a Update dependency git to v2.47.2 (#12516)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-15 02:13:18 +00:00
renovate[bot]andLaurent Cozic ca8b68bd95 Update dependency domutils to v3.2.2 (#12505)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-15 00:30:19 +01:00
renovate[bot] 3c3e7c4854 Update dependency git to v2.47.1 (#12514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-15 00:29:46 +01:00
renovate[bot] aeab8e03ab Update dependency highlight.js to v11.11.1 (#12515)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-15 00:29:37 +01:00
renovate[bot] a3cc34938b Update dependency nanoid to v3.3.10 (#12511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-14 14:08:48 +00:00
renovate[bot] ec057e4e2e Update dependency @types/serviceworker to v0.0.126 (#12510)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-14 14:06:01 +00:00
renovate[bot] 78eca9dfa9 Update dependency @react-native-community/geolocation to v3.4.0 (#12498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-14 10:37:01 +01:00
renovate[bot]andLaurent Cozic 174cc76ef4 Update dependency @rollup/plugin-node-resolve to v15.3.1 (#12503)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-14 10:36:50 +01:00
Laurent Cozic ba5bb6e8ea Chore: Exclude "bat" from Renovate 2025-06-14 10:36:27 +01:00
Laurent Cozic 0a8a19748e Chore: Disable GitHub Action TCP/UDP offload on Windows to try to fix CI issue "getaddrinfo ENOTFOUND nodejs.org" 2025-06-13 22:46:16 +01:00
renovate[bot] 7884ce61a0 Update dependency @react-native-clipboard/clipboard to v1.16.2 (#12497)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-12 21:21:26 +00:00
Henry Heino d7f2ffaa1e Chore: CI: Windows: Skip installing Rust (#12502) 2025-06-12 22:19:10 +01:00
Laurent Cozic a79409dfa8 Chore: Fixes #12500: Trying to fix random "concurrent map writes" error on CI by disabling parallelism 2025-06-12 21:22:22 +01:00
renovate[bot] 4777bd393c Update dependency @react-native-community/cli-platform-android to v15.1.3 (#12495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-12 16:37:40 +01:00
renovate[bot] c7575e4726 Update dependency @react-native-clipboard/clipboard to v1.16.1 (#12493)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-12 16:36:51 +01:00
renovate[bot] efc5059d65 Update dependency @crowdin/cli to v3.19.4 (#12491)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-12 12:00:53 +01:00
renovate[bot] bd203ffe88 Update dependency @babel/plugin-transform-export-namespace-from to v7.25.9 (#12490)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-12 11:41:57 +01:00
renovate[bot] 27717b46ac Update dependency @types/serviceworker to v0.0.125 (#12488)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-12 11:24:28 +01:00
Henry Heino 364b2496d6 Chore: CI: Retry opening the go-to-anything dialog on failure (#12481) 2025-06-12 07:50:10 +01:00
renovate[bot]andLaurent Cozic b701992524 Update olegtarasov/get-tag action to v2.1.4 (#12471)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-12 07:49:58 +01:00
Henry Heino d00bd3b89d Chore: Editor: Retry list tests on failure (#12479) 2025-06-12 07:49:48 +01:00
renovate[bot]andLaurent Cozic c80e789a8d Update rust-wasm-bindgen monorepo (#12485)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-12 07:49:37 +01:00
renovate[bot] 503b31e67a Update bitnami/postgresql Docker tag to v16.6.0 (#12486)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-12 07:48:58 +01:00
renovate[bot]andLaurent Cozic 1b5e538d6a Update Rust crate log to v0.4.26 (#12483)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-12 07:48:44 +01:00
Henry Heino c8cbe7271e Chore: CI: Fix plugin-related test failure (#12482) 2025-06-11 23:37:34 +01:00
renovate[bot]andLaurent Cozic 7330efceaf Update dependency @types/proper-lockfile to v4.1.4 (#12474)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-11 22:42:29 +01:00
renovate[bot]andLaurent Cozic da2229706c Update dependency koa to v2.15.4 (#12478)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-11 22:42:20 +01:00
Henry Heino b81f5cb91e Chore: Mobile: Increase test waitFor timeouts (#12475) 2025-06-11 22:42:06 +01:00
Henry Heino 3b7a677302 Chore: Mobile: Fix "missing act()" warning (#12476) 2025-06-11 21:48:00 +01:00
renovate[bot] 0d176e434a Update dependency axios to v1.7.9 (#12477)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 21:47:48 +01:00
Laurent Cozic ca46df5627 Chore: Trying to fix random ipc test error on CI 2025-06-11 19:07:51 +01:00
renovate[bot] 7389712093 Update dependency @types/serviceworker to v0.0.124 (#12468)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 16:55:51 +01:00
renovate[bot] 3f3f7328f9 Update pascalgn/automerge-action action to v0.16.4 (#12473)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 16:55:41 +01:00
Laurent Cozic fda69c7a1e Chore: Trying to fix random IPC test failures (#12470) 2025-06-11 16:54:23 +01:00
renovate[bot]andLaurent Cozic 66ec4f8c51 Update dependency nodemon to v3.1.9 (#12445)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-11 15:55:51 +01:00
pedr d62ac838b8 Chore: Add Joplin Transcribe (#12403) 2025-06-11 15:54:11 +01:00
renovate[bot]andLaurent Cozic 487cb4f743 Update dependency ts-loader to v9.5.2 (#12464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-11 14:01:14 +01:00
renovate[bot] 8eef48ac4b Update dependency wasm-pack to v0.13.1 (#12469)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 13:33:56 +01:00
Henry Heino 42a156c2bb Mobile: Upgrade to React Native 0.79 (#12337) 2025-06-11 09:35:51 +01:00
renovate[bot]andLaurent Cozic caba91fdf6 Update dependency style-to-js to v1.1.16 (#12456)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-11 09:35:22 +01:00
renovate[bot]andLaurent Cozic 360446cc79 Update dependency tesseract.js to v5.1.1 (#12463)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-11 09:35:15 +01:00
Henry Heino 8c0d5f4ac5 Chore: CI: Increase timeout for sync in ShareNoteDialog.test.tsx (#12467) 2025-06-11 09:34:37 +01:00
Joplin Bot 696fe4d5a6 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-06-11 06:44:39 +00:00
renovate[bot] c9027719dd Update dependency terminal-kit to v3.1.2 (#12461)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 00:37:37 +01:00
Henry Heino c9936723c8 Chore: Desktop: Fix layout-related warning shown in console on startup (#12452) 2025-06-11 00:14:08 +01:00
Henry Heino f6056b2d75 Chore: Mobile: Fix Note.test.tsx warnings (#12448) 2025-06-11 00:13:42 +01:00
Henry Heino 303ccce7d2 Chore: Silence expected warning while running tests in lib/ (#12450) 2025-06-11 00:13:13 +01:00
Henry Heino 7a611ac5c5 Chore: Web: Fix TypeMismatchWarning logged frequently on startup in dev mode (#12453) 2025-06-11 00:11:53 +01:00
Henry Heino 45d1d862a1 Chore: Web: Fix "BackHandler is not supported" warning in most cases (#12458) 2025-06-11 00:10:11 +01:00
renovate[bot] 99178fb1c6 Update dependency standard to v17.1.2 (#12455)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 22:20:54 +00:00
cedecode 1462284f2f All: Translation: Update de_DE.po (#12462) 2025-06-10 18:18:39 -04:00
Henry Heino c392854bdf Merge remote-tracking branch 'origin/release-3.3' into dev 2025-06-10 13:19:58 -07:00
renovate[bot] 2ebb3f039d Update dependency sharp to v0.33.5 (#12454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 21:10:18 +01:00
summoner001 c8fd9a2b39 All: Translation: Update hu_HU.po (#12449) 2025-06-10 13:54:19 -04:00
renovate[bot] 869b1e6f98 Update dependency mermaid to v11.4.1 (#12438)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 18:30:25 +01:00
renovate[bot] ee04f28356 Update dependency pm2 to v5.4.3 (#12446)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 18:30:01 +01:00
renovate[bot] d3ac7ad1c3 Update dependency rate-limiter-flexible to v5.0.5 (#12447)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 18:29:54 +01:00
renovate[bot] da4e3fc5bb Update dependency koa to v2.15.4 (#12437)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 14:46:37 +01:00
renovate[bot] 73808f5a25 Update dependency nanoid to v3.3.9 (#12439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 14:46:24 +01:00
Laurent Cozic c887a86fd8 Chore: Fixes #12443: Fixed tagServerLatest script to work with multiple architectures 2025-06-10 14:44:04 +01:00
Eric Duarte d9c9bed393 Chore: correcting translations into Spanish (June 2025) (#12436) 2025-06-10 10:02:16 +01:00
Henry HeinoandLaurent Cozic 9c8fcbe0c2 Chore: Fix CI: Disable yarn install cache on ARM runners (#12429)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-10 09:03:17 +01:00
renovate[bot]andLaurent Cozic 6760468da3 Update dependency @types/proper-lockfile to v4.1.4 (#12411)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-10 09:03:04 +01:00
renovate[bot]andLaurent Cozic 3d3e8a70fa Update dependency dayjs to v1.11.13 (#12431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-10 09:02:36 +01:00
renovate[bot] 9b65123335 Update dependency katex to v0.16.21 (#12435)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 09:02:18 +01:00
renovate[bot] 8493decc03 Update dependency jsdom to v24.1.3 (#12434)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 06:07:34 +00:00
renovate[bot] c28e838f17 Update dependency form-data to v4.0.2 (#12433)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 02:30:49 +00:00
Joplin Bot 22779a7f15 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-06-10 02:02:05 +00:00
renovate[bot]andLaurent Cozic f2aac66e56 Update dependency bulma to v1.0.3 (#12424)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-10 00:00:36 +01:00
renovate[bot] b956da47fa Update dependency crypto-browserify to v3.12.1 (#12426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-09 22:08:45 +00:00
renovate[bot]andLaurent Cozic 47d0d3eb9e Update dependency @types/serviceworker to v0.0.123 (#12412)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-09 18:03:52 +01:00
renovate[bot]andLaurent Cozic 4498c5bc0f Update dependency axios to v1.7.9 (#12413)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-06-09 18:03:37 +01:00
renovate[bot] 1716562292 Update react monorepo (#12418)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-09 18:03:17 +01:00
Henry Heino efcfd12489 Chore: CI: Upgrade to Node v18.18 (#12408) 2025-06-09 13:21:29 +01:00
Henry Heino 42f6a9d03d Chore: CI: Disable accessibility scanner tests that cause a crash in CI (#12417) 2025-06-09 13:20:17 +01:00
Henry Heino 73a2075a69 Chore: CI: Fix accessibility scanner sometimes fails due to name conflict (#12415) 2025-06-09 13:20:06 +01:00
Henry Heino c5ca0151a1 Chore: Upgrade to Yarn v4 (#12407) 2025-06-08 14:07:10 +01:00
mrjo118 9ffeb8c725 Mobile: Change revisions to be presented in reverse order in the dropdown (#12406) 2025-06-08 12:16:13 +01:00
Henry Heino 884141c3e2 Chore: CI: Desktop: Re-run the accessibility scanner on failure (#12409) 2025-06-08 12:00:55 +01:00
Henry Heino f0d1dd1dd0 Android: Voice typing: Improve silence detection (#12404) 2025-06-07 12:56:41 +01:00
Henry Heino 100c35cf7f Desktop: Upgrade to Electron 35.5.1 (#12396) 2025-06-07 12:55:42 +01:00
pedr 5b42f4f2a2 Desktop: Fixes #12362: Fixed import of Markdown files that contain links with Windows paths (#12386) 2025-06-07 12:55:34 +01:00
mrjo118 a47d7906af Desktop, Mobile: Fixes #12097: Add ability to delete all history for individual notes (#12381) 2025-06-07 12:52:55 +01:00
mrjo118 73ed17e851 Desktop, Mobile: Extend the maximum note history expiry days to 99999 (#12374) 2025-06-07 12:50:41 +01:00
Henry Heino 484deb450b Desktop: Resolves #12113: Allow users to change the font used in the Markdown viewer and Rich Text Editor (#12356) 2025-06-07 11:15:59 +01:00
Henry Heino 3d2ac91b8a Mobile: Joplin Cloud/Server: Support publishing notes (#12350) 2025-06-06 15:04:09 -07:00
Henry Heino 0fc665d6d8 Desktop: Rich Text Editor: Auto-format "---", "***" and "___" as dividers (#12397) 2025-06-06 19:22:02 +01:00
Henry Heino 961349c1f3 Desktop: Fixes #9593: Rich Text Editor: Fix including $s creates math blocks on save (#12398) 2025-06-06 10:35:03 +01:00
pedr ab95d728d9 Desktop, Cli: Fixes #12363: Fix Yinxiang HTML imported notes being enclosed by a open anchor tag (#12395) 2025-06-06 10:33:54 +01:00
Henry Heino ca653d3e88 Desktop: Rich text editor: Add a right-click "Open" menu item for external links (#12391) 2025-06-06 10:32:35 +01:00
Henry Heino 945b309a4d Desktop: Fixes #12377: Fix changing focused window when clicking on the note viewer (#12390) 2025-06-06 10:30:42 +01:00
Henry Heino ab17625ed8 Desktop: Fixes #12214: Change how the main content size is determined (#12388) 2025-06-06 10:30:17 +01:00
Henry Heino 8e8ab3bd80 Mobile: Increase space available for revisions dropdown (#12379) 2025-06-06 10:21:56 +01:00
Henry Heino 591a56e510 Chore: CI: Update the windows-2019 runner to windows-2025 (#12378) 2025-06-06 10:21:40 +01:00
Henry Heino 86ee95a8d0 Desktop: Performance: Faster startup and smaller application size (#12366) 2025-06-06 10:10:49 +01:00
Henry Heino a527a278a9 Desktop, Mobile: Resolves #11845: Adjust list toggle behavior for consistency with other apps (#12360) 2025-06-06 10:10:11 +01:00
pedr eb1970fd1a Chore: Improve OneNote converter debugging (#12359) 2025-06-06 10:09:24 +01:00
Henry Heino 1ecaaa1910 Android: Default to a larger voice typing model (#12352) 2025-06-06 10:05:40 +01:00
pedr c75b48fbb1 Desktop: Fixes #12295: Fix import of certain OneNote files that contain invalid properties (#12338) 2025-06-06 10:04:50 +01:00
Henry Heino 608dbab453 Desktop: Resolves #11687: Plugins: Allow editor plugins to support multiple windows (#12041) 2025-06-06 10:00:47 +01:00
Henry Heino 291ba88224 Server: Security: SAML: Update samlify to v2.10.0 (#12371) 2025-06-02 21:03:27 +01:00
Tom Chedmail bdbd16240b Desktop, Cli, Mobile, Server: Add Joplin Server SAML support (#11865) 2025-06-02 16:34:08 +01:00
Joplin Bot 4f826c045a Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-06-01 02:16:46 +00:00
Joplin Bot 885fde4119 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-05-29 12:56:23 +00:00
Henry Heino f8200efffc Android: Fix voice typing fails to start on certain devices (#12351) 2025-05-28 09:48:23 +01:00
Henry Heino 700ddf269a Android: Voice typing: Update whisper.cpp to v1.7.5 (#12353) 2025-05-28 09:48:06 +01:00
pedrandLaurent Cozic a755f09033 Desktop: Fixes #11548: Show warning when a plugin is not compatible with the new Markdown editor (#12040)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-05-27 17:24:24 +01:00
Henry Heino 293eac9c04 Mobile: Add note revision viewer (#12305) 2025-05-27 17:22:52 +01:00
Henry Heino 47e4f36f97 Mobile: Allow recording to continue while the app is in the background (#12330) 2025-05-27 17:20:31 +01:00
Henry Heino c9eb9af741 Chore: Remove unused canvas dependency (#12335) 2025-05-27 17:20:10 +01:00
shawnzhang31 d1cd8e9db4 Doc: Fixed outdated joplin/renderer package README.md (#12346) 2025-05-27 17:18:32 +01:00
Liffindra Angga Zaaldian 16ebff78b4 All: Translation: Update id_ID.po (#12348) 2025-05-27 02:15:47 -04:00
Celestial.y 423ae0d633 All: Translation: Update zh_CN.po (#12347) 2025-05-27 02:14:41 -04:00
github-actions[bot] 04a976e459 @ShawnZhang31 has signed the CLA in laurent22/joplin#12345 2025-05-27 01:28:32 +00:00
Joplin Bot 88c95cc91c Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-05-20 12:57:17 +00:00
Laurent Cozic 24df674726 Desktop release v3.4.1 2025-05-20 09:04:08 +01:00
Laurent Cozic 3faa95a066 Setup new release 3.4 2025-05-20 09:03:55 +01:00
pedrandLaurent Cozic 60e27924ae All: Resolves #12157: Add information about failing tests of OneNote importer inside test names (#12159)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-05-19 23:03:15 +01:00
Henry Heino d5830dd3a1 Chore: Refactor htmlpack for mobile compatibility (#12174) 2025-05-19 23:02:26 +01:00
Henry Heino a4dacd65e6 Mobile: Upgrade to React Native 0.77 (#12179) 2025-05-19 23:02:18 +01:00
Henry Heino cbf6d5506f Chore: Desktop: Update components for compatibility with React 19 (#12184) 2025-05-19 23:02:09 +01:00
Henry Heino 80696fe324 Desktop: Fix keyboard can't add text after certain confirm dialogs are shown (#12200) 2025-05-19 23:00:49 +01:00
Henry Heino 1780a530c9 Desktop: Fix "Open" option for attachments shown in context menu for web links (#12215) 2025-05-19 23:00:15 +01:00
Henry Heino dc786e8178 Chore: Desktop: Fix electronApp.evaluate-related test failure (#12216) 2025-05-19 22:59:31 +01:00
Self Not Found e65fbecef0 All: Set new encryption methods as default (#12229) 2025-05-19 22:59:20 +01:00
Henry HeinoandLaurent Cozic 5b2f409254 Chore: Remove node-canvas dependency (#12238)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2025-05-19 22:57:43 +01:00
Henry Heino 50c5139fa6 Windows: Fix "file://" URLs setting does not allow loading local images (#12281) 2025-05-19 22:55:59 +01:00
Henry Heino 465defb194 Windows: Rich Text Editor: Fix dropping a URL from the Firefox addressbar inserts nothing (#12282) 2025-05-19 22:55:42 +01:00
Henry Heino 12c688eb83 Mobile: Accessibility: Auto-fill the editor search input with the global search (#12291) 2025-05-19 22:55:32 +01:00
Henry Heino 1a6059072a Desktop: Make default window color match system theme (#12303) 2025-05-19 22:55:22 +01:00
Henry Heino e2ef406aa2 Chore: Web: Simplify accessing certain global APIs in dev mode (#12308) 2025-05-19 22:54:54 +01:00
Henry Heino dca28f8c2a Mobile: Update js-draw to v1.30.0 (#12322) 2025-05-19 22:54:17 +01:00
Henry Heino a8ea71c349 Desktop: Built-in plugins: Update Freehand Drawing to v3.1.0 (#12323) 2025-05-19 22:54:08 +01:00
NBA2K1 b13e7c1a3f All: Translation: Update de_DE.po (#12316) 2025-05-19 12:29:55 -04:00
github-actions[bot] ecfef1a9da @NBA2K1 has signed the CLA in laurent22/joplin#12316 2025-05-18 07:40:04 +00:00
Mihai Vasiliu ffd9c8e0a0 All: Translation: Update ro_RO.po and ro_MD.po (#12310) 2025-05-17 17:40:08 -04:00
summoner001 a4b0d149bc All: Translation: Update hu_HU.po (#12311) 2025-05-17 16:19:07 -04:00
Mihai Vasiliu c2b7228170 Revert "All: Translation: Update ro_RO.po and ro_MD.po" (#12257) 2025-05-16 19:35:32 -04:00
SilviaACandsilvia 11c8f1e111 All: Translation: Update gl_ES.po (#12256)
Co-authored-by: silvia <s.alvarez.carrera@hotmail.com>
2025-05-16 19:34:19 -04:00
ERYpTION a1f37dc414 All: Translation: Update da_DK.po (#12255) 2025-05-16 19:32:56 -04:00
summoner001 e4a20f505d All: Translation: Update hu_HU.po (#12252) 2025-05-16 19:31:53 -04:00
Joplin Bot dfa7ed0a5c Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-05-15 01:55:42 +00:00
Laurent Cozic f8bf799f00 Doc: Updated sponsors 2025-05-15 00:22:32 +01:00
renovate[bot] c70faf50f7 Update dependency @adobe/css-tools to v4.4.2 (#12296)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-14 23:20:53 +01:00
github-actions[bot] e422a88bb0 @eyaaba has signed the CLA in laurent22/joplin#12260 2025-05-10 11:48:28 +00:00
github-actions[bot] 74ef89d25b @SilviaAC has signed the CLA in laurent22/joplin#12256 2025-05-09 09:43:31 +00:00
Arda Kılıçdağı b6043489a0 All: Translation: Update tr_TR.po (#12242) 2025-05-06 17:49:02 -04:00
Mihai Vasiliu 37270479e2 All: Translation: Update ro_RO.po and ro_MD.po (#12231) 2025-05-06 17:45:28 -04:00
Laurent Cozic 318ca3de5f Desktop: Setup auto-update service when the feature flag is set in config 2025-05-05 22:13:39 +01:00
Laurent Cozic 1f57a94225 Update translations 2025-05-05 17:28:03 +01:00
Laurent Cozic cce2f66f01 Chore: Add es_ES translation (credit @ericdq) 2025-05-05 17:27:17 +01:00
Laurent Cozic 277935b8b1 Chore: Fixed conflict between TS and eslint 2025-05-05 10:46:00 +01:00
Laurent Cozic 981759691d Chore: Fix TS errors 2025-05-05 10:06:47 +01:00
Laurent Cozic 370f6bd70e Plugins: Added the webviewApi.menuPopupFromTemplate() API to create context menus 2025-05-05 00:29:31 +01:00
Laurent Cozic 067ce65532 Plugins: Added copyToClipboard command 2025-05-05 00:29:31 +01:00
Joplin Bot 302577ed43 Doc: Auto-update documentation
Auto-updated using release-website.sh
2025-05-04 18:39:34 +00:00
Laurent Cozic 5356a8ae36 Doc: Add sponsor 2025-05-04 18:23:44 +01:00
github-actions[bot] 28b7251e16 @yatishgoel has signed the CLA in laurent22/joplin#12185 2025-04-29 09:12:38 +00:00
github-actions[bot] 9218c7df1f @BellezaEmporium has signed the CLA in laurent22/joplin#12161 2025-04-28 09:42:54 +00:00
3743 changed files with 479130 additions and 182540 deletions

No files matched your search

+112
View File
@@ -0,0 +1,112 @@
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
language: "en-GB"
reviews:
high_level_summary: false
estimate_code_review_effort: false
poem: false
review_status: false
review_details: false
auto_review:
enabled: true
drafts: true
ignore_usernames:
- "renovate[bot]"
auto_apply_labels: true
labeling_instructions:
- label: "accessibility"
instructions: "Apply when the PR contains changes related to accessibility, screen readers, keyboard navigation, or ARIA attributes"
- label: "android"
instructions: "Apply when the PR modifies files under packages/app-mobile/android/. Or when the PR modifies files under packages/app-mobile and the change is specific to Android only"
- label: "api"
instructions: "Apply when the PR modifies files under packages/lib/services/rest/"
- label: "bug"
instructions: "Apply when the PR fixes a bug or unexpected behaviour"
- label: "ci"
instructions: "Apply when the PR modifies files under .github/workflows/ or .circleci/"
- label: "cli"
instructions: "Apply when the PR modifies files under packages/app-cli/, except if all the modified files are under packages/app-cli/tests/"
- label: "clipper"
instructions: "Apply when the PR modifies files under packages/app-clipper/"
- label: "database"
instructions: "Apply when the PR is mainly about modifying database schema, migrations, or database-related logic"
- label: "desktop"
instructions: "Apply when the PR modifies files under packages/app-desktop/"
- label: "documentation"
instructions: "Apply when the PR modifies files under readme/"
- label: "draw"
instructions: "Apply when the PR modifies files under packages/default-plugins and relates to the JS-Draw drawing plugin"
- label: "editor"
instructions: "Apply when the PR modifies files under packages/editor/ or packages/app-mobile/components/NoteEditor/"
- label: "enhancement"
instructions: "Apply when the PR adds a new feature or improves existing functionality (not a bug fix)"
- label: "export"
instructions: "Apply when the PR is mainly about changes to the export functionality (PDF, HTML, JEX, etc.)"
- label: "import"
instructions: "Apply when the PR is mainly about changes to the import functionality (Evernote, Markdown, etc.)"
- label: "iOS"
instructions: "Apply when the PR modifies files under packages/app-mobile/ios/. Or when the PR modifies files under packages/app-mobile and the change is specific to iOS only"
- label: "linux"
instructions: "Apply when the PR is mainly about changes specific to Linux"
- label: "linux/wayland"
instructions: "Apply when the PR is mainly about changes specific to Linux Wayland"
- label: "macOS"
instructions: "Apply when the PR is mainly about changes specific to macOS"
- label: "markdown-editor"
instructions: "Apply when the PR modifies files under packages/editor/CodeMirror"
- label: "mobile"
instructions: "Apply when the PR modifies files under packages/app-mobile/"
- label: "OCR"
instructions: "Apply when the PR contains changes related to OCR (optical character recognition) functionality"
- label: "performance"
instructions: "Apply when the PR improves performance, reduces memory usage, or optimises speed"
- label: "plugins"
instructions: "Apply when the PR modifies files under packages/lib/services/plugins/ or packages/plugin-repo-cli/"
- label: "Regression"
instructions: "Apply when the linked issue, if any, has the Regression label"
- label: "renderer"
instructions: "Apply when the PR modifies files under packages/renderer/ or packages/turndown/"
- label: "search"
instructions: "Apply when the PR is mainly about changes to the search functionality"
- label: "security"
instructions: "Apply when the PR is mainly about addressing a security vulnerability or improving security"
- label: "server"
instructions: "Apply when the PR modifies files under packages/server/"
- label: "Sharing"
instructions: "Apply when the PR is mainly about changes to the note or notebook/folder sharing features"
- label: "sync"
instructions: "Apply when the PR modifies files under packages/lib/services/synchronizer/, packages/lib/Sync*.ts or packages/lib/services/e2ee/"
- label: "tags"
instructions: "Apply when the PR is mainly about changes to the tag management or tagging functionality"
- label: "transcribe"
instructions: "Apply when the PR modifies files under packages/transcribe"
- label: "translation"
instructions: "Apply when the PR modifies files under packages/tools/locales/ or **/locales/"
- label: "Voice typing"
instructions: "Apply when the PR is mainly about changes to the voice typing functionality"
- label: "web"
instructions: "Apply when the PR modifies files under packages/app-web/. Or when the PR modifies files under packages/app-mobile and the change is specific to the web app only"
- label: "windows"
instructions: "Apply when the PR is mainly about changes specific to Windows"
# pre_merge_checks:
# description:
# mode: "warning"
# custom_checks:
# - name: "PR Description Must Follow Guidelines"
# mode: "error"
# instructions: |
# Fail if the pull request description does not include clear sections for:
# - Problem or user-impact description
# - A high-level Solution explanation
# - Any Test Plan or verification steps
#
# The description should align with our PR guidelines
# at https://github.com/joplin/gsoc/blob/master/pull_request_guidelines.md
# and should not just restate the diff or implementation details.
knowledge_base:
code_guidelines:
enabled: true
filePatterns:
- "readme/dev/coding_style.md"
- "readme/dev/index.md"
- "CLAUDE.md"
+3
View File
@@ -17,3 +17,6 @@ packages/server/db-*.sqlite
packages/server/dist/
packages/server/logs/
packages/server/temp/
packages/server/assets/license/signingKey.private.*.pem
packages/server/readme/
packages/transcribe/.env
+18
View File
@@ -15,6 +15,24 @@
# POSTGRES_PORT=5432
# POSTGRES_HOST=localhost
# =============================================================================
# TRANSCRIBE CONFIG EXAMPLE
# -----------------------------------------------------------------------------
# This service is not required, and it will be ignored by using --profile server
# when running docker-compose. If you want to use it, you need to set the
# following environment variables.
# =============================================================================
# TRANSCRIBE_API_KEY=secret_string_shared_between_server_and_transcribe
# TRANSCRIBE_ENABLED=true
# QUEUE_DATABASE_NAME=transcribe
# QUEUE_DATABASE_USER=transcribe
# QUEUE_DATABASE_PASSWORD=transcribe
# QUEUE_DATABASE_PORT=5431
# HTR_CLI_IMAGES_FOLDER=/home/user/images_storage
# HTR_CLI_MODELS_FOLDER=/home/user/transcribe_models
# =============================================================================
# DEV CONFIG EXAMPLE
# -----------------------------------------------------------------------------
+33
View File
@@ -0,0 +1,33 @@
# Joplin Transcribe Configuration
#
# Copy this file to .env-transcribe and update the values.
# =============================================================================
# Required
# =============================================================================
# Set a secure API key for authentication
API_KEY=changeme
# =============================================================================
# Optional (defaults are set in the Docker image)
# =============================================================================
# Server port (default: 4567)
# SERVER_PORT=4567
# Maximum image dimension for processing (default: 400)
# IMAGE_MAX_DIMENSION=400
# Queue driver: sqlite (default) or pg
# QUEUE_DRIVER=sqlite
# =============================================================================
# PostgreSQL settings (only if QUEUE_DRIVER=pg)
# =============================================================================
# QUEUE_DATABASE_NAME=transcribe
# QUEUE_DATABASE_USER=transcribe
# QUEUE_DATABASE_PASSWORD=transcribe
# QUEUE_DATABASE_PORT=5432
# QUEUE_DATABASE_HOST=localhost
-322
View File
@@ -1,322 +0,0 @@
module.exports = {
'root': true,
'env': {
'browser': true,
'es6': true,
'node': true,
},
'parser': '@typescript-eslint/parser',
'extends': ['eslint:recommended'],
'settings': {
'react': {
'version': '16.12',
},
},
'globals': {
'Atomics': 'readonly',
'SharedArrayBuffer': 'readonly',
'BufferEncoding': 'readonly',
'AsyncIterable': 'readonly',
'FileSystemFileHandle': 'readonly',
'FileSystemDirectoryHandle': 'readonly',
'ReadableStreamDefaultReader': 'readonly',
'FileSystemCreateWritableOptions': 'readonly',
'FileSystemHandle': 'readonly',
'IDBTransactionMode': 'readonly',
// ServiceWorker
'ExtendableEvent': 'readonly',
'WindowClient': 'readonly',
'FetchEvent': 'readonly',
// Jest variables
'test': 'readonly',
'expect': 'readonly',
'describe': 'readonly',
'it': 'readonly',
'beforeAll': 'readonly',
'afterAll': 'readonly',
'beforeEach': 'readonly',
'afterEach': 'readonly',
'jest': 'readonly',
// React Native variables
'__DEV__': 'readonly',
// Clipper variables
'browserSupportsPromises_': true,
'chrome': 'readonly',
'browser': 'readonly',
// Server admin UI global variables
'onDocumentReady': 'readonly',
'setupPasswordStrengthHandler': 'readonly',
'$': 'readonly',
'zxcvbn': 'readonly',
'tinymce': 'readonly',
'JSX': 'readonly',
'NodeJS': 'readonly',
},
'parserOptions': {
'ecmaVersion': 2018,
'ecmaFeatures': {
'jsx': true,
},
'sourceType': 'module',
},
'rules': {
// -------------------------------
// Code correctness
// -------------------------------
'react/jsx-uses-react': 'error',
'react/jsx-uses-vars': 'error',
'no-unused-vars': ['error', { 'argsIgnorePattern': '^_' }],
'@typescript-eslint/no-unused-vars': ['error', { 'argsIgnorePattern': '^_' }],
'@typescript-eslint/explicit-member-accessibility': 'off',
'no-constant-condition': 0,
'no-prototype-builtins': 0,
// This error is always a false positive so far since it detects
// possible race conditions in contexts where we know it cannot happen.
'require-atomic-updates': 0,
'prefer-const': ['error'],
'no-var': ['error'],
'no-new-func': ['error'],
'import/prefer-default-export': ['error'],
'prefer-promise-reject-errors': ['error', {
allowEmptyReject: true,
}],
'no-throw-literal': ['error'],
'no-unused-expressions': ['error'],
// This rule should not be enabled since it matters in what order
// imports are done, in particular in relation to the shim.setReact
// call, which should be done first, but this rule might move it down.
// 'import/first': ['error'],
'no-array-constructor': ['error'],
'radix': ['error'],
'eqeqeq': ['error', 'always'],
'no-console': ['error', { 'allow': ['warn', 'error'] }],
// Warn only for now because fixing everything would take too much
// refactoring, but new code should try to stick to it.
// 'complexity': ['warn', { max: 10 }],
// Checks rules of Hooks
'@seiyab/react-hooks/rules-of-hooks': 'error',
'@seiyab/react-hooks/exhaustive-deps': ['error', { 'ignoreThisDependency': 'props' }],
// Checks effect dependencies
// Disable because of this: https://github.com/facebook/react/issues/16265
// "react-hooks/exhaustive-deps": "warn",
'jest/require-top-level-describe': ['error', { 'maxNumberOfTopLevelDescribes': 1 }],
'jest/no-identical-title': ['error'],
'jest/prefer-lowercase-title': ['error', { 'ignoreTopLevelDescribe': true }],
'promise/prefer-await-to-then': 'error',
'no-unneeded-ternary': 'error',
'github/array-foreach': ['error'],
'no-restricted-properties': ['error',
{
'property': 'focus',
'message': 'Please use focusHandler::focus() instead',
},
{
'property': 'blur',
'message': 'Please use focusHandler::blur() instead',
},
],
'@typescript-eslint/no-explicit-any': ['error'],
// -------------------------------
// Formatting
// -------------------------------
'space-in-parens': ['error', 'never'],
'space-infix-ops': ['error'],
'curly': ['error', 'multi-line', 'consistent'],
'semi': ['error', 'always'],
'eol-last': ['error', 'always'],
'quotes': ['error', 'single'],
// Note that "indent" only applies to JavaScript files. See
// https://github.com/laurent22/joplin/issues/8360
'indent': ['error', 'tab'],
'comma-dangle': ['error', {
'arrays': 'always-multiline',
'objects': 'always-multiline',
'imports': 'always-multiline',
'exports': 'always-multiline',
'functions': 'always-multiline',
}],
'comma-spacing': ['error', { 'before': false, 'after': true }],
'no-trailing-spaces': 'error',
'linebreak-style': ['error', 'unix'],
'prefer-template': ['error'],
'template-curly-spacing': ['error', 'never'],
'object-curly-spacing': ['error', 'always'],
'array-bracket-spacing': ['error', 'never'],
'key-spacing': ['error', {
'beforeColon': false,
'afterColon': true,
'mode': 'strict',
}],
'block-spacing': ['error'],
'brace-style': ['error', '1tbs', { 'allowSingleLine': true }],
'no-spaced-func': ['error'],
'func-call-spacing': ['error'],
'space-before-function-paren': ['error', {
'anonymous': 'never',
'named': 'never',
'asyncArrow': 'always',
}],
'multiline-comment-style': ['error', 'separate-lines', { checkJSDoc: true }],
'space-before-blocks': 'error',
'spaced-comment': ['error', 'always'],
'keyword-spacing': ['error', { 'before': true, 'after': true }],
'no-multi-spaces': ['error'],
'prefer-object-spread': ['error'],
'prefer-regex-literals': ['error', { disallowRedundantWrapping: true }],
// Regarding the keyword blacklist:
// - err: We generally avoid using too many abbreviations, so it should
// be "error", not "err"
// - notebook: In code, it should always be "folder" (not "notebook").
// In user-facing text, it should be "notebook".
'id-denylist': ['error', 'err', 'notebook', 'notebooks'],
'prefer-arrow-callback': ['error'],
'no-constant-binary-expression': ['error'],
},
'plugins': [
'react',
'@typescript-eslint',
// Need to use a fork of the official rules of hooks because of this bug:
// https://github.com/facebook/react/issues/16265
'@seiyab/eslint-plugin-react-hooks',
// 'react-hooks',
'import',
'promise',
'jest',
'github',
],
'overrides': [
{
'files': [
'packages/tools/**',
'packages/app-mobile/tools/**',
'packages/app-desktop/tools/**',
],
'rules': {
'no-console': 'off',
},
},
{
// enable the rule specifically for TypeScript files
'files': ['*.ts', '*.tsx'],
'parserOptions': {
// Required for @typescript-eslint/no-floating-promises
'project': './tsconfig.eslint.json',
},
'rules': {
'@typescript-eslint/indent': ['error', 'tab', {
'ignoredNodes': [
// See https://github.com/typescript-eslint/typescript-eslint/issues/1824
'TSUnionType',
],
}],
'@typescript-eslint/ban-ts-comment': ['error'],
'@typescript-eslint/ban-types': 'error',
'@typescript-eslint/explicit-member-accessibility': ['error'],
'@typescript-eslint/type-annotation-spacing': ['error', { 'before': false, 'after': true }],
'@typescript-eslint/array-type': 'error',
'@typescript-eslint/no-inferrable-types': ['error'],
'@typescript-eslint/comma-dangle': ['error', {
'arrays': 'always-multiline',
'objects': 'always-multiline',
'imports': 'always-multiline',
'exports': 'always-multiline',
'enums': 'always-multiline',
'generics': 'always-multiline',
'tuples': 'always-multiline',
'functions': 'always-multiline',
}],
'@typescript-eslint/object-curly-spacing': ['error', 'always'],
'@typescript-eslint/semi': ['error', 'always'],
'@typescript-eslint/member-delimiter-style': ['error', {
'multiline': {
'delimiter': 'semi',
'requireLast': true,
},
'singleline': {
'delimiter': 'semi',
'requireLast': false,
},
}],
'@typescript-eslint/no-floating-promises': ['error'],
'@typescript-eslint/naming-convention': ['error',
// Naming conventions over the codebase is very inconsistent
// unfortunately and fixing it would be way too much work.
// In general, we use "strictCamelCase" for variable names.
// {
// selector: 'default',
// format: ['StrictPascalCase', 'strictCamelCase', 'snake_case', 'UPPER_CASE'],
// leadingUnderscore: 'allow',
// trailingUnderscore: 'allow',
// },
// Each rule below is made of two blocks: first the rule we
// actually want, and below exceptions to the rule.
// -----------------------------------
// ENUM
// -----------------------------------
{
selector: 'enumMember',
format: ['StrictPascalCase'],
},
{
selector: 'enumMember',
format: null,
'filter': {
'regex': '^(GET|POST|PUT|DELETE|PATCH|HEAD|SQLite|PostgreSQL|ASC|DESC|E2EE|OR|AND|UNION|INTERSECT|EXCLUSION|INCLUSION|EUR|GBP|USD|SJCL.*|iOS)$',
'match': true,
},
},
{
selector: 'enumMember',
format: null,
'filter': {
'regex': '^(sha1|sha256|sha384|sha512|AES_128_GCM|AES_192_GCM|AES_256_GCM)$',
'match': true,
},
},
// -----------------------------------
// INTERFACE
// -----------------------------------
{
selector: 'interface',
format: ['StrictPascalCase'],
},
{
selector: 'interface',
format: null,
'filter': {
'regex': '^(RSA|RSAKeyPair|iOS.*)$',
'match': true,
},
},
],
},
},
],
};
+36 -15
View File
@@ -1,25 +1,46 @@
<!--
Please prefix the title with the platform you are targetting:
Before contributing, please read the contribution guidelines: https://github.com/laurent22/joplin/blob/dev/readme/dev/index.md
Here are some examples of good titles:
If this is a Google Summer of Code pull request, please read the [GSoC pull request guidelines](https://github.com/joplin/gsoc/blob/master/pull_request_guidelines.md).
---
**Pull request title**: Please prefix the title with the area you are targeting, then add the issue you are addressing.
The format is:
<Prefix>: <Fixes|Resolves> #<issue>: <description>
Use "Resolves #123" for new features or improvements, and "Fixes #123" for bug fixes.
Examples of good titles:
- Desktop: Resolves #123: Added new setting to change font
- Mobile, Desktop: Fixes #456: Fixed config screen error
- All: Resolves #777: Made synchronisation faster
- Mobile, Desktop, Cli: Resolves #777: Improved note search performance
And here's an explanation of the title format:
Valid prefixes:
- "Desktop" for the Windows/macOS/Linux app (Electron app)
- "Mobile" for the mobile app (or "Android" / "iOS" if the pull request only applies to one of the mobile platforms)
- "CLI" for the CLI app
- `Desktop` — the Windows/macOS/Linux app (Electron app)
- `Mobile` — the mobile app (both Android and iOS)
- `Android` — only the Android app
- `iOS` — only the iOS app
- `Windows` — Windows-specific changes
- `Linux` — Linux-specific changes
- `macOS` — macOS-specific changes
- `Cli` — the command line app
- `Server` — the Joplin Server
- `Clipper` — the web clipper browser extension
- `Transcribe` — the Transcribe server
- `Plugins` — the plugin API or built-in plugins
- `Api` — the data API
- `Cloud` — Joplin Cloud
- `Tools` — internal scripts and build tools
- `CI` — continuous integration and GitHub workflows
- `Doc` — documentation, README, website content
- `Chore` — maintenance work that does not fit any of the above (dependency bumps, refactoring, cleanup)
If it's two platforms, separate them with commas - "Desktop, Mobile" or if it's for all platforms, prefix with "All".
If the change targets several areas, separate them with commas — for example "Mobile, Desktop, Cli: Resolves #777: Improved note search performance".
If it's not related to any platform (such as a translation, change to the documentation, etc.), simply don't add a platform.
Then please append the issue that you've addressed or fixed. Use "Resolves #123" for new features or improvements and "Fixes #123" for bug fixes.
AND PLEASE READ THE GUIDE: https://github.com/laurent22/joplin/blob/dev/readme/dev/index.md
-->
-->
+31
View File
@@ -0,0 +1,31 @@
# Force the postinstall build to run sequentially and retry `yarn install` a
# few times. Parallel postinstall builds randomly crash on Windows with
# STATUS_STACK_BUFFER_OVERRUN (0xC0000409), and node-pre-gyp prebuilt sqlite3
# downloads from GitHub Releases occasionally fail. Setting the env vars here
# (rather than only on the workflow step) ensures they reach every child
# process spawned by `yarn install` -> postinstall -> gulp.
function Install-WindowsDeps {
$env:BUILD_SEQUENCIAL = '1'
$env:IS_CONTINUOUS_INTEGRATION = '1'
$attempts = 3
for ($i = 1; $i -le $attempts; $i++) {
yarn install
if ($LASTEXITCODE -eq 0) { return }
if ($i -eq $attempts) { exit $LASTEXITCODE }
Write-Host "yarn install failed (attempt $i/$attempts) - retrying..."
Start-Sleep -Seconds 10
}
}
# Install dependencies and run `yarn dist` for the Windows desktop app.
# Extra args are forwarded to `yarn dist` (e.g. --publish=never).
function Build-WindowsApp {
param([string[]]$DistArgs = @())
Install-WindowsDeps
cd packages/app-desktop
yarn dist @DistArgs
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
}
+163
View File
@@ -0,0 +1,163 @@
// Validates the PR title and acts on the result.
//
// - Renovate is filtered out at the workflow level (job `if:`).
// - Translation-only PRs (every changed file is a .po) are skipped.
// - Users in `softCheckUsers` get a relaxed check (issue number optional)
// and only ever receive a comment, never a close.
// - Everyone else must match the strict format. Invalid titles get a
// comment and the PR is closed. We also apply a marker label so that
// we can later tell our closures apart from any other closure.
// - If the title becomes valid and the marker label is present, the PR
// is reopened and the label is removed. Closures by humans (or by
// another workflow) lack the label and are never overturned.
//
// Invoked from .github/workflows/check-pr-title.yml via actions/github-script.
// Required inputs come from `env`: PR_AUTHOR, PR_NUMBER. The title is
// fetched from the API rather than passed via env to avoid YAML expansion
// silently stripping leading whitespace from `${{ ... }}`.
module.exports = async ({ github, context, core }) => {
const softCheckUsers = ['laurent22', 'personalizedrefrigerator', 'mrjo118', 'tessus', 'CalebJohn', 'Rygaa'];
const autoClosedLabel = 'auto-closed: invalid-title';
// Product-area prefixes are kept in sync with the list recognised by
// packages/tools/git-changelog.ts so that valid titles are picked up by
// the changelog generator. Non-product prefixes (Tools, Chore, CI, Doc,
// Plugin Repo) are administrative categories for changes that do not
// ship to users and so do not appear in the changelog.
const prefix = '(Desktop|Mobile|Android|iOS|Windows|Linux|macOS|Cli|Clipper|Server|Transcribe|Plugins|Api|Cloud|Tools|Chore|CI|Doc)';
const prefixList = `${prefix}(,\\s*${prefix})*`;
const strictRegex = new RegExp(`^${prefixList}: (Fixes|Resolves) #[0-9]+: .+`);
const softRegex = new RegExp(`^${prefixList}: ((Fixes|Resolves) #[0-9]+: )?.+`);
const author = process.env.PR_AUTHOR;
const prNumber = Number(process.env.PR_NUMBER);
const { data: pr } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: prNumber,
});
const title = pr.title;
core.info(`Title (length=${title.length}): ${JSON.stringify(title)}`);
const isSoft = softCheckUsers.includes(author);
// listFiles returns up to 30 files per page; a pure translation PR is
// small, so checking the first page is enough.
const { data: files } = await github.rest.pulls.listFiles({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: prNumber,
});
const isTranslationOnly = files.length > 0 && files.every(f => f.filename.endsWith('.po'));
if (isTranslationOnly) {
core.info('Translation-only PR — skipping title check.');
return;
}
// Doc-only PRs do not require an issue number.
const isDocOnly = /^Doc(,\s*Doc)*:/.test(title);
const regex = isSoft || isDocOnly ? softRegex : strictRegex;
if (regex.test(title)) {
core.info('Title is valid.');
// If we previously closed this PR for an invalid title and the
// title is now valid, reopen it. We only reopen if our marker
// label is present, so closures by humans (or other workflows)
// are never overturned. A maintainer can also remove the label
// by hand to lock a PR closed regardless of future fixes.
const wasAutoClosed = pr.state === 'closed' && pr.labels.some(l => l.name === autoClosedLabel);
if (wasAutoClosed) {
try {
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: prNumber,
state: 'open',
});
} catch (error) {
// GitHub refuses to reopen a PR when another open PR
// already exists from the same head→base branch pair.
// In that case the contributor has already opened a
// replacement, so leave this PR closed.
if (error.status === 422) {
core.info('Cannot reopen — another PR is already open from the same branch.');
return;
}
throw error;
}
await github.rest.issues.removeLabel({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
name: autoClosedLabel,
});
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body: `@${author} thanks for fixing the title — this PR has been reopened.`,
});
core.info('PR reopened after title was fixed.');
}
return;
}
// Hidden marker so we can detect a previous nag and avoid reposting on
// every `synchronize` event (push to the PR branch).
const commentMarker = '<!-- joplin-bot:invalid-pr-title -->';
const helpMessage = [
commentMarker,
`@${author} the pull request title does not match the required format.`,
'',
'Please prefix the title with the area you are targeting, then add the issue you are addressing. If the change targets several areas, separate them with commas. For example:',
'',
'- `Desktop: Resolves #123: Added new setting to change font`',
'- `Mobile, Desktop: Fixes #456: Fixed config screen error`',
'- `Mobile, Desktop, Cli: Resolves #777: Improved note search performance`',
'',
'See the [pull request template](https://github.com/laurent22/joplin/blob/dev/.github/PULL_REQUEST_TEMPLATE) for the list of valid prefixes and the full specification.',
'',
isSoft
? '_This PR has been left open — please update the title when you have a moment._'
: '_This PR has been closed automatically. Once you update the title to match the format above, the PR will be reopened automatically._',
].join('\n');
const existingComments = await github.paginate(github.rest.issues.listComments, {
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
per_page: 100,
});
const alreadyCommented = existingComments.some(c => c.body && c.body.includes(commentMarker));
if (!alreadyCommented) {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body: helpMessage,
});
} else {
core.info('Invalid-title comment already posted — not commenting again.');
}
if (!isSoft) {
// Label first so the marker is set before the close event lands.
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
labels: [autoClosedLabel],
});
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: prNumber,
state: 'closed',
});
core.setFailed('Pull request title does not match the required format.');
}
};
+37
View File
@@ -0,0 +1,37 @@
#!/bin/bash
# Retry a command up to a few times. Used to absorb random CI flakes (network
# failures, slow mirrors, etc).
#
# Usage: retry [attempts] [sleep_seconds] -- command [args...]
# Both attempts and sleep_seconds are optional and default to 3 and 10.
retry() {
local attempts=3
local sleep_seconds=10
if [[ "$1" =~ ^[0-9]+$ ]]; then
attempts="$1"
shift
fi
if [[ "$1" =~ ^[0-9]+$ ]]; then
sleep_seconds="$1"
shift
fi
if [ "$1" = '--' ]; then
shift
fi
local i=1
while true; do
"$@"
local result=$?
if [ $result -eq 0 ]; then
return 0
fi
if [ $i -ge $attempts ]; then
return $result
fi
echo "\`$*\` failed (attempt $i/$attempts) - retrying in ${sleep_seconds}s..."
i=$((i + 1))
sleep "$sleep_seconds"
done
}
+71 -24
View File
@@ -7,9 +7,13 @@
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
ROOT_DIR="$SCRIPT_DIR/../.."
TRANSCRIBE_TAG_PREFIX=transcribe
TRANSCRIBE_REPOSITORY=joplin/transcribe
IS_PULL_REQUEST=0
IS_DESKTOP_RELEASE=0
IS_SERVER_RELEASE=0
IS_TRANSCRIBE_RELEASE=0
IS_LINUX=0
IS_MACOS=0
@@ -23,6 +27,10 @@ if [[ $GIT_TAG_NAME = $SERVER_TAG_PREFIX-* ]]; then
IS_SERVER_RELEASE=1
fi
if [[ $GIT_TAG_NAME = $TRANSCRIBE_TAG_PREFIX-* ]]; then
IS_TRANSCRIBE_RELEASE=1
fi
if [[ $GIT_TAG_NAME = v* ]]; then
IS_DESKTOP_RELEASE=1
fi
@@ -41,15 +49,17 @@ DOCKER_IMAGE_PLATFORM="linux/amd64"
# a release
RUN_TESTS=0
if [ "$IS_SERVER_RELEASE" = 0 ] && [ "$IS_DESKTOP_RELEASE" = 0 ]; then
if [ "$IS_SERVER_RELEASE" = 0 ] && [ "$IS_DESKTOP_RELEASE" = 0 ] && [ "$IS_TRANSCRIBE_RELEASE" = 0 ]; then
RUN_TESTS=1
fi
if [ "$RUNNER_ARCH" == "ARM64" ] && [ "$IS_SERVER_RELEASE" == "0" ]; then
# We exit now because nothing works properly with the ARM64 architecture.
# We only proceed if building the server image.
echo "Running on ARM64 and not trying to build server image - early exit"
exit 0
if [ "$RUNNER_ARCH" == "ARM64" ]; then
if [ "$IS_SERVER_RELEASE" == "0" ] && [ "$IS_TRANSCRIBE_RELEASE" == "0" ]; then
# We exit now because nothing works properly with the ARM64 architecture.
# We only proceed if building the server image.
echo "Running on ARM64 and not trying to build server image - early exit"
exit 0
fi
fi
if [ "$RUNNER_ARCH" == "ARM64" ]; then
@@ -80,12 +90,14 @@ echo "GIT_TAG_NAME=$GIT_TAG_NAME"
echo "BUILD_SEQUENCIAL=$BUILD_SEQUENCIAL"
echo "SERVER_REPOSITORY=$SERVER_REPOSITORY"
echo "SERVER_TAG_PREFIX=$SERVER_TAG_PREFIX"
echo "TRANSCRIBE_TAG_PREFIX=$TRANSCRIBE_TAG_PREFIX"
echo "DOCKER_IMAGE_PLATFORM=$DOCKER_IMAGE_PLATFORM"
echo "IS_CONTINUOUS_INTEGRATION=$IS_CONTINUOUS_INTEGRATION"
echo "IS_PULL_REQUEST=$IS_PULL_REQUEST"
echo "IS_DESKTOP_RELEASE=$IS_DESKTOP_RELEASE"
echo "IS_SERVER_RELEASE=$IS_SERVER_RELEASE"
echo "IS_TRANSCRIBE_RELEASE=$IS_TRANSCRIBE_RELEASE"
echo "RUN_TESTS=$RUN_TESTS"
echo "IS_LINUX=$IS_LINUX"
echo "IS_MACOS=$IS_MACOS"
@@ -100,7 +112,10 @@ echo "Rust $( rustc --version )"
# =============================================================================
cd "$ROOT_DIR"
yarn install
source "$(dirname "$0")/retry.sh"
retry yarn install
testResult=$?
if [ $testResult -ne 0 ]; then
echo "Yarn installation failed. Search for 'exit code 1' in the log for more information."
@@ -117,8 +132,19 @@ if [ "$RUN_TESTS" == "1" ]; then
# On Linux, we run the Joplin Server tests using PostgreSQL
if [ "$IS_LINUX" == "1" ]; then
echo "Running Joplin Server tests using PostgreSQL..."
sudo docker compose --file docker-compose.db-dev.yml up -d
cmdResult=$?
# Docker Hub auth/pulls occasionally time out on CI, so retry a few
# times before giving up.
cmdResult=1
for attempt in 1 2 3; do
sudo docker compose --parallel 1 --file docker-compose.db-dev.yml up -d
cmdResult=$?
if [ $cmdResult -eq 0 ]; then
break
fi
echo "docker compose up failed (attempt $attempt). Retrying in 15s..."
sudo docker compose --file docker-compose.db-dev.yml down --remove-orphans || true
sleep 15
done
if [ $cmdResult -ne 0 ]; then
exit $cmdResult
fi
@@ -199,7 +225,7 @@ if [ "$RUN_TESTS" == "1" ]; then
fi
# =============================================================================
# Check .gitignore and .eslintignore files - they should be updated when
# Check .gitignore and .ignore.eslint files - they should be updated when
# new TypeScript files are added by running `yarn updateIgnored`.
# See coding_style.md
# =============================================================================
@@ -207,9 +233,9 @@ fi
if [ "$IS_LINUX" == "1" ]; then
echo "Step: Checking for files that should have been ignored..."
# .gitignore and .eslintignore can be modified during yarn install. Reset them
# .gitignore and .ignore.eslint can be modified during yarn install. Reset them
# so that checkIgnoredFiles works.
git restore .gitignore .eslintignore
git restore .gitignore .ignore.eslint
node packages/tools/checkIgnoredFiles.js
testResult=$?
@@ -275,6 +301,28 @@ fi
cd "$ROOT_DIR/packages/app-desktop"
# On macOS, `yarn dist` can fail randomly with `hdiutil detach ... Resource
# busy` when packaging the DMG, because another process (Spotlight mds,
# diskimages-helper, etc.) still holds the mounted image. Retry the whole
# build a couple of times to absorb the flake.
run_yarn_dist() {
local attempts=3
local i=1
while true; do
USE_HARD_LINKS=false yarn dist "$@"
local result=$?
if [ $result -eq 0 ]; then
return 0
fi
if [ "$IS_MACOS" != "1" ] || [ $i -ge $attempts ]; then
return $result
fi
echo "yarn dist failed (attempt $i/$attempts) - retrying..."
i=$((i + 1))
sleep 10
done
}
if [ "$IS_DESKTOP_RELEASE" == "1" ]; then
echo "Step: Building and publishing desktop application..."
# cd "$ROOT_DIR/packages/tools"
@@ -283,7 +331,7 @@ if [ "$IS_DESKTOP_RELEASE" == "1" ]; then
if [ "$IS_MACOS" == "1" ]; then
# This is to fix this error:
#
#
# Exit code: ENOENT. spawn /usr/bin/python ENOENT
#
# Ref: https://github.com/electron-userland/electron-builder/issues/6767#issuecomment-1096589528
@@ -296,17 +344,19 @@ if [ "$IS_DESKTOP_RELEASE" == "1" ]; then
# "python" and seems to no longer respect the PYTHON_PATH environment variable.
# We work around this by aliasing python.
alias python=$(which python3)
USE_HARD_LINKS=false yarn dist
else
USE_HARD_LINKS=false yarn dist
fi
fi
run_yarn_dist
elif [[ $IS_LINUX = 1 ]] && [ "$IS_SERVER_RELEASE" == "1" ]; then
echo "Step: Building Docker Image..."
echo "Step: Building Joplin Server Docker Image..."
cd "$ROOT_DIR"
yarn buildServerDocker --platform $DOCKER_IMAGE_PLATFORM --tag-name $GIT_TAG_NAME --push-images --repository $SERVER_REPOSITORY
yarn buildServerDocker --docker-file Dockerfile.server --platform $DOCKER_IMAGE_PLATFORM --tag-name $GIT_TAG_NAME --push-images --repository $SERVER_REPOSITORY
elif [[ $IS_LINUX = 1 ]] && [ "$IS_TRANSCRIBE_RELEASE" == "1" ]; then
echo "Step: Building Joplin Transcribe Docker Image..."
cd "$ROOT_DIR"
yarn buildServerDocker --docker-file Dockerfile.transcribe --platform $DOCKER_IMAGE_PLATFORM --tag-name $GIT_TAG_NAME --push-images --repository $TRANSCRIBE_REPOSITORY
else
echo "Step: Building but *not* publishing desktop application..."
if [ "$IS_MACOS" == "1" ]; then
# See above why we need to specify Python
alias python=$(which python3)
@@ -316,9 +366,6 @@ else
# https://www.electron.build/code-signing#how-to-disable-code-signing-during-the-build-process-on-macos
export CSC_IDENTITY_AUTO_DISCOVERY=false
npm pkg set 'build.mac.identity'=null --json
USE_HARD_LINKS=false yarn dist --publish=never
else
USE_HARD_LINKS=false yarn dist --publish=never
fi
run_yarn_dist --publish=never
fi
+1 -1
View File
@@ -18,7 +18,7 @@ jobs:
steps:
- id: automerge
name: automerge
uses: "pascalgn/automerge-action@v0.16.3"
uses: "pascalgn/automerge-action@v0.16.4"
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
MERGE_METHOD: "squash"
+50 -11
View File
@@ -14,30 +14,69 @@ jobs:
sudo apt-get update || true
sudo apt-get install -y libsecret-1-dev
- uses: actions/setup-java@v4
# Free disk space before anything else so the Gradle/NDK transforms
# (which can write 20GB+ during react-native-quick-crypto's OpenSSL
# build) don't exhaust the runner's ~14GB free space. Keep the Android
# SDK and Java toolchains; remove the large preinstalled packages this
# workflow doesn't use.
- name: Free disk space
run: |
sudo rm -rf /usr/share/dotnet || true
sudo rm -rf /usr/share/swift || true
sudo rm -rf /opt/ghc || true
sudo rm -rf /opt/hostedtoolcache/CodeQL || true
sudo rm -rf /usr/local/share/boost || true
sudo rm -rf /usr/local/share/powershell || true
docker system prune -af || true
df -h /
- uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '20'
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: '18'
node-version: '24'
cache: 'yarn'
- uses: dtolnay/rust-toolchain@stable
- name: Install Yarn
run: |
corepack enable
- uses: ./.github/workflows/shared/install-yarn
- name: Install
run: yarn install
env:
SKIP_ONENOTE_CONVERTER_BUILD: 1
- name: Assemble Android Release
run: |
cd packages/app-mobile/android
sed -i -- 's/signingConfig signingConfigs.release/signingConfig signingConfigs.debug/' app/build.gradle
./gradlew assembleRelease
- name: Verify alignment
run: |
cd packages/app-mobile/android/app
APK_FILE="./build/outputs/apk/release/app-release.apk"
if test ! -f "$APK_FILE" ; then
echo "APK file not found."
exit 1
else
echo "APK file found at: $APK_FILE"
fi
BUILD_TOOLS_PATH="$ANDROID_HOME/build-tools/"
if test ! -d "$BUILD_TOOLS_PATH" ; then
echo "Build tools not found at $BUILD_TOOLS_PATH ($ANDROID_HOME, $BUILD_TOOLS_VERSION)"
exit 1
fi
# The build-tools/ directory contains different subdirectories
# for each build tools version. As a result, there may be multiple
# zipalign tools. Select the most recent (biggest two-digit version number):
ZIPALIGN_PATH="$(find $BUILD_TOOLS_PATH -name "zipalign" -print | sort | tail -n1)"
if test ! -x "$ZIPALIGN_PATH" ; then
echo "zipalign not found (searching in $BUILD_TOOLS_PATH, candidate: $ZIPALIGN_PATH)"
exit 1
fi
"$ZIPALIGN_PATH" -c -P 16 -v 4 "$APK_FILE"
+35 -25
View File
@@ -1,5 +1,6 @@
name: Build macOS M1
on: [push, pull_request]
jobs:
Main:
# We always process desktop release tags, because they also publish the release
@@ -7,19 +8,14 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: olegtarasov/get-tag@v2.1.3
- uses: actions/setup-node@v4
- uses: actions/checkout@v6
- uses: olegtarasov/get-tag@v2.1.4
- uses: actions/setup-node@v6
with:
# We need to pin the version to 18.15, because 18.16+ fails with this error:
# https://github.com/facebook/react-native/issues/36440
node-version: '18.15.0'
node-version: '24'
cache: 'yarn'
- name: Install Yarn
run: |
# https://yarnpkg.com/getting-started/install
corepack enable
- uses: ./.github/workflows/shared/install-yarn
- name: Install macOs dependencies
if: runner.os == 'macOS'
@@ -28,9 +24,9 @@ jobs:
brew install pango
# See github-action-main.yml for explanation
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: '3.11'
python-version: '3.14'
- name: Set Publish Flag
run: |
@@ -50,6 +46,7 @@ jobs:
CSC_LINK: ${{ secrets.APPLE_CSC_LINK }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
GITHUB_EVENT_NAME: ${{ github.event_name }}
IS_CONTINUOUS_INTEGRATION: 1
BUILD_SEQUENCIAL: 1
PUBLISH_ENABLED: ${{ env.PUBLISH_ENABLED }}
@@ -59,25 +56,38 @@ jobs:
yarn install
cd packages/app-desktop
npm pkg set 'build.mac.artifactName'='${productName}-${version}-${arch}.${ext}'
npm pkg delete 'build.mac.target'
npm pkg set 'build.mac.target[0].target'='dmg'
npm pkg set 'build.mac.target[0].arch[0]'='arm64'
npm pkg set 'build.mac.target[1].target'='zip'
npm pkg set 'build.mac.target[1].arch[0]'='arm64'
if [[ "$PUBLISH_ENABLED" == "true" ]]; then
echo "Building and publishing desktop application..."
PYTHON_PATH=$(which python) USE_HARD_LINKS=false yarn dist --mac --arm64
# Only enable pkg build in the main repository CI. As of 01/15/2026, pkg
# build fails when running on external pull requests.
if [[ "$GITHUB_EVENT_NAME" != "pull_request" ]]; then
npm pkg set 'build.mac.target[2].target'='pkg'
npm pkg set 'build.mac.target[2].arch[0]'='arm64'
fi
yarn modifyReleaseAssets --repo="$GH_REPO" --tag="$GIT_TAG_NAME" --token="$GITHUB_TOKEN"
else
echo "Building but *not* publishing desktop application..."
build_dist() {
if [[ "$PUBLISH_ENABLED" == "true" ]]; then
echo "Building and publishing desktop application..."
PYTHON_PATH=$(which python) USE_HARD_LINKS=false yarn dist --mac --arm64
# We also want to disable signing the app in this case, because
# it doesn't work and we don't need it.
# https://www.electron.build/code-signing#how-to-disable-code-signing-during-the-build-process-on-macos
yarn modifyReleaseAssets --repo="$GH_REPO" --tag="$GIT_TAG_NAME" --token="$GITHUB_TOKEN"
else
echo "Building but *not* publishing desktop application..."
export CSC_IDENTITY_AUTO_DISCOVERY=false
npm pkg set 'build.mac.identity'=null --json
# We also want to disable signing the app in this case, because
# it doesn't work and we don't need it.
# https://www.electron.build/code-signing#how-to-disable-code-signing-during-the-build-process-on-macos
PYTHON_PATH=$(which python) USE_HARD_LINKS=false yarn dist --mac --arm64 --publish=never
fi
export CSC_IDENTITY_AUTO_DISCOVERY=false
npm pkg set 'build.mac.identity'=null --json
PYTHON_PATH=$(which python) USE_HARD_LINKS=false yarn dist --mac --arm64 --publish=never
fi
}
build_dist || build_dist
+25 -3
View File
@@ -1,9 +1,31 @@
name: Check pull request title
on: [pull_request]
on:
pull_request_target:
types: [opened, edited, reopened, synchronize]
jobs:
main:
# Skip the check entirely for these automation accounts.
if: github.event.pull_request.user.login != 'renovate[bot]'
runs-on: ubuntu-latest
permissions:
pull-requests: write
issues: write
steps:
- uses: Slashgear/action-check-pr-title@v4.3.0
# Sparse checkout so we only pull the script, not the full repo.
# `pull_request_target` checks out the base branch by default,
# which is what we want — we never execute PR-supplied code.
- uses: actions/checkout@v6
with:
regexp: "(Desktop|Mobile|All|Cli|Tools|Chore|Clipper|Server|Android|iOS|Plugins|CI|Plugin Repo|Doc): (Fixes|Resolves) #[0-9]+: .+"
sparse-checkout: .github/scripts
sparse-checkout-cone-mode: false
- name: Check title
uses: actions/github-script@v8
env:
PR_AUTHOR: ${{ github.event.pull_request.user.login }}
PR_NUMBER: ${{ github.event.pull_request.number }}
with:
script: |
const check = require('./.github/scripts/check_pr_title.js');
await check({ github, context, core });
+1 -1
View File
@@ -13,7 +13,7 @@ jobs:
- name: "CLA Assistant"
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
# Beta Release
uses: contributor-assistant/github-action@v2.3.2
uses: contributor-assistant/github-action@v2.6.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# the below token should have repo scope and must be manually added by you in the repository's secret
@@ -0,0 +1,67 @@
name: Delete CodeRabbit PR Comments
on:
issue_comment:
types: [created]
pull_request_review:
types: [submitted]
jobs:
delete-coderabbit-comments:
if: >
(github.event_name == 'issue_comment' &&
github.event.issue.pull_request &&
(github.event.comment.user.login == 'coderabbitai' || github.event.comment.user.login == 'coderabbitai[bot]'))
||
(github.event_name == 'pull_request_review' &&
(github.event.review.user.login == 'coderabbitai' || github.event.review.user.login == 'coderabbitai[bot]'))
runs-on: ubuntu-latest
steps:
# Fork PRs trigger `pull_request_review` without exposing repo secrets,
# so the App token can't be minted. Skip the job cleanly in that case
# instead of letting it fail loudly.
- name: Check secrets availability
id: check-secrets
env:
APP_ID: ${{ secrets.CODERABBIT_CLEANUP_APP_ID }}
run: |
if [ -z "$APP_ID" ]; then
echo "App secrets not available (likely a fork PR event); skipping."
echo "available=false" >> "$GITHUB_OUTPUT"
else
echo "available=true" >> "$GITHUB_OUTPUT"
fi
- name: Generate GitHub App token
if: steps.check-secrets.outputs.available == 'true'
id: app-token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.CODERABBIT_CLEANUP_APP_ID }}
private-key: ${{ secrets.CODERABBIT_CLEANUP_APP_PRIVATE_KEY }}
- name: Clean up CodeRabbit comments
if: steps.check-secrets.outputs.available == 'true'
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
REPO: ${{ github.repository }}
PR_NUMBER: ${{ github.event.pull_request.number || github.event.issue.number }}
run: |
# Clear the body of all CodeRabbit reviews on this PR
# (We can't delete reviews, but clearing the body removes the spam
# while keeping inline code comments visible)
REVIEW_IDS=$(gh api "repos/${REPO}/pulls/${PR_NUMBER}/reviews" \
--jq '[.[] | select(.user.login == "coderabbitai[bot]" and .body != "") | .id] | .[]')
for REVIEW_ID in $REVIEW_IDS; do
gh api -X PUT "repos/${REPO}/pulls/${PR_NUMBER}/reviews/${REVIEW_ID}" \
-f body="."
done
# Delete all CodeRabbit issue comments on this PR
COMMENT_URLS=$(gh api "repos/${REPO}/issues/${PR_NUMBER}/comments?per_page=100" \
--jq '[.[] | select(.user.login == "coderabbitai[bot]") | .url] | .[]')
for URL in $COMMENT_URLS; do
gh api -X DELETE "$URL"
done
+62 -27
View File
@@ -1,5 +1,6 @@
name: Joplin Continuous Integration
on: [push, pull_request]
jobs:
Main:
# We always process server or desktop release tags, because they also publish the release
@@ -9,15 +10,14 @@ jobs:
matrix:
# Do not use unbuntu-latest because it causes `The operation was canceled` failures:
# https://github.com/actions/runner-images/issues/6709
os: [macos-13, ubuntu-22.04, windows-2019, ubuntu-22.04-arm]
os: [macos-15-intel, ubuntu-22.04, windows-2025, ubuntu-22.04-arm]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Setup build environment
uses: ./.github/workflows/shared/setup-build-environment
- name: Install Docker Engine
# if: runner.os == 'Linux' && startsWith(github.ref, 'refs/tags/server-v')
if: runner.os == 'Linux'
run: |
sudo apt-get install -y apt-transport-https
@@ -32,15 +32,41 @@ jobs:
sudo apt-get update || true
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin
- name: Free disk space
if: runner.os == 'Linux'
run: |
sudo rm -rf /usr/local/lib/android || true
sudo rm -rf /usr/share/dotnet || true
sudo rm -rf /opt/ghc || true
docker system prune -af || true
docker builder prune -af || true
sudo rm -rf /var/lib/docker/tmp/* || true
# Login to Docker only if we're on a server release tag. If we run this on
# a pull request it will fail because the PR doesn't have access to
# secrets
- uses: docker/login-action@v3
if: runner.os == 'Linux' && startsWith(github.ref, 'refs/tags/server-v')
if: runner.os == 'Linux' && (startsWith(github.ref, 'refs/tags/server-v') || startsWith(github.ref, 'refs/tags/transcribe-v'))
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Test Windows app signing
# if: runner.os == 'Windows'
# env:
# GH_TOKEN: ${{ secrets.GH_TOKEN }}
# IS_CONTINUOUS_INTEGRATION: 1
# BUILD_SEQUENCIAL: 1
# SSL_ESIGNER_USER_NAME: ${{ secrets.SSL_ESIGNER_USER_NAME }}
# SSL_ESIGNER_USER_PASSWORD: ${{ secrets.SSL_ESIGNER_USER_PASSWORD }}
# SSL_ESIGNER_CREDENTIAL_ID: ${{ secrets.SSL_ESIGNER_CREDENTIAL_ID }}
# SSL_ESIGNER_USER_TOTP: ${{ secrets.SSL_ESIGNER_USER_TOTP }}
# SIGN_APPLICATION: 1
# # To ensure that the operations stop on failure, all commands
# # should be on one line with "&&" in between.
# run: |
# yarn install && cd packages/app-desktop && yarn dist
- name: Run tests, build and publish Linux and macOS apps
if: runner.os == 'Linux' || runner.os == 'macOs'
env:
@@ -62,15 +88,19 @@ jobs:
- name: Build and publish Windows app
if: runner.os == 'Windows' && startsWith(github.ref, 'refs/tags/v')
env:
CSC_KEY_PASSWORD: ${{ secrets.WINDOWS_CSC_KEY_PASSWORD }}
CSC_LINK: ${{ secrets.WINDOWS_CSC_LINK }}
GH_TOKEN: ${{ secrets.GH_TOKEN }}
IS_CONTINUOUS_INTEGRATION: 1
BUILD_SEQUENCIAL: 1
# To ensure that the operations stop on failure, all commands
# should be on one line with "&&" in between.
SSL_ESIGNER_USER_NAME: ${{ secrets.SSL_ESIGNER_USER_NAME }}
SSL_ESIGNER_USER_PASSWORD: ${{ secrets.SSL_ESIGNER_USER_PASSWORD }}
SSL_ESIGNER_CREDENTIAL_ID: ${{ secrets.SSL_ESIGNER_CREDENTIAL_ID }}
SSL_ESIGNER_USER_TOTP: ${{ secrets.SSL_ESIGNER_USER_TOTP }}
SIGN_APPLICATION: 1
# `yarn install` can fail randomly on CI when node-pre-gyp downloads
# prebuilt sqlite3 binaries from GitHub Releases - retry a few times.
run: |
yarn install && cd packages/app-desktop && yarn dist
. "${env:GITHUB_WORKSPACE}/.github/scripts/build_windows.ps1"
Build-WindowsApp
# Build and package the Windows app, without publishing it, just to
# verify that the build process hasn't been broken.
@@ -82,7 +112,8 @@ jobs:
SERVER_REPOSITORY: joplin/server
SERVER_TAG_PREFIX: server
run: |
yarn install && cd packages/app-desktop && yarn dist --publish=never
. "${env:GITHUB_WORKSPACE}/.github/scripts/build_windows.ps1"
Build-WindowsApp -DistArgs "--publish=never"
- name: Publish Docker manifest
if: runner.os == 'Linux'
@@ -117,17 +148,23 @@ jobs:
sudo apt-get update || true
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: '18'
cache: 'yarn'
node-version: '24'
- name: Install Yarn
- name: Free disk space
if: runner.os == 'Linux'
run: |
# https://yarnpkg.com/getting-started/install
corepack enable
sudo rm -rf /usr/local/lib/android || true
sudo rm -rf /usr/share/dotnet || true
sudo rm -rf /opt/ghc || true
docker system prune -af || true
docker builder prune -af || true
sudo rm -rf /var/lib/docker/tmp/* || true
- uses: ./.github/workflows/shared/install-yarn
- name: Build Docker Image
env:
@@ -141,25 +178,20 @@ jobs:
echo "RUNNER_ARCH=$RUNNER_ARCH"
echo "DOCKER_IMAGE_PLATFORM=$DOCKER_IMAGE_PLATFORM"
# Canvas is only needed for tests and it doesn't build in ARM64 so remove it
cd packages/lib
yarn remove canvas
cd ../..
yarn install
yarn buildServerDocker --platform $DOCKER_IMAGE_PLATFORM --tag-name server-v0.0.0 --repository joplin/server
yarn buildServerDocker --docker-file Dockerfile.server --platform $DOCKER_IMAGE_PLATFORM --tag-name server-v0.0.0 --repository joplin/server
# Basic test to ensure that the created build is valid. It should exit with
# code 0 if it works.
docker run joplin/server:$(dpkg --print-architecture)-0.0.0 node dist/app.js migrate list
docker run joplin/server:$(dpkg --print-architecture)-0.0.0 node dist/index.js migrate list
- name: Check HTTP request
run: |
# Need to pass environment variables:
docker run -p 22300:22300 joplin/server:$(dpkg --print-architecture)-0.0.0 node dist/app.js --env dev &
docker run --env MAX_TIME_DRIFT=0 --publish 22300:22300 joplin/server:$(dpkg --print-architecture)-0.0.0 node dist/index.js --env dev &
# Wait for server to start
sleep 30
sleep 120
# Check if status code is correct
# if the actual_status DOES NOT include the expected_status
@@ -183,4 +215,7 @@ jobs:
echo 'Failed while checking the body response after request to /api/ping'
exit 1;
fi
- name: Check sync
run: |
yarn syncFuzzer start --use-running-server --steps 5
@@ -0,0 +1,22 @@
name: 'Install Yarn'
description: 'Enable Corepack and install the pinned Yarn version, with retries'
runs:
using: 'composite'
steps:
- name: Install Yarn
shell: bash
# https://yarnpkg.com/getting-started/install
#
# `corepack enable` only sets up the shims - Corepack downloads the
# pinned Yarn version from repo.yarnpkg.com on first use. That fetch has
# a short timeout and no built-in retry, so a transient network blip on
# CI fails the whole job. Prepare it eagerly with a retry loop.
env:
COREPACK_NETWORK_TIMEOUT: '60000'
run: |
corepack enable
for i in 1 2 3; do
corepack prepare --activate && break
echo "corepack prepare failed (attempt $i), retrying in 15s..."
sleep 15
done
@@ -5,10 +5,10 @@ runs:
steps:
# Trying to fix random networking issues on Windows
# https://github.com/actions/runner-images/issues/1187#issuecomment-686735760
- name: Disable TCP/UDP offload on Windows
if: runner.os == 'Windows'
shell: pwsh
run: Disable-NetAdapterChecksumOffload -Name * -TcpIPv4 -UdpIPv4 -TcpIPv6 -UdpIPv6
# - name: Disable TCP/UDP offload on Windows
# if: runner.os == 'Windows'
# shell: pwsh
# run: Disable-NetAdapterChecksumOffload -Name * -TcpIPv4 -UdpIPv4 -TcpIPv6 -UdpIPv6
- name: Disable TCP/UDP offload on Linux
if: runner.os == 'Linux'
@@ -22,23 +22,24 @@ runs:
sudo sysctl -w net.link.generic.system.hwcksum_tx=0
sudo sysctl -w net.link.generic.system.hwcksum_rx=0
# Silence apt-get update errors (for example when a module doesn't
# exist) since otherwise it will make the whole build fails, even though
# it might work without update. libsecret-1-dev is required for keytar -
# https://github.com/atom/node-keytar
# libsecret-1-dev is required for keytar - https://github.com/atom/node-keytar
# xvfb provides a virtual display on Linux, used for Playwright tests.
# The apt-get update is allowed to fail (some sources may be temporarily
# unreachable, especially on arm64) but the install is retried to absorb
# transient mirror failures.
- name: Install Linux dependencies
if: runner.os == 'Linux'
shell: bash
run: |
source "${GITHUB_WORKSPACE}/.github/scripts/retry.sh"
sudo apt-get update || true
sudo apt-get install -y gettext
sudo apt-get install -y libsecret-1-dev
sudo apt-get install -y translate-toolkit
sudo apt-get install -y rsync
# Provides a virtual display on Linux. Used for Playwright integration
# testing.
sudo apt-get install -y xvfb
retry 5 15 sudo apt-get install -y \
gettext \
libsecret-1-dev \
translate-toolkit \
rsync \
xvfb
- name: Install macOs dependencies
if: runner.os == 'macOS'
@@ -47,26 +48,25 @@ runs:
# Required for building the canvas package
brew install pango
- uses: olegtarasov/get-tag@v2.1.3
- uses: olegtarasov/get-tag@v2.1.4
- uses: dtolnay/rust-toolchain@stable
- uses: actions/setup-node@v4
with:
# We need to pin the version to 18.15, because 18.16+ fails with this error:
# https://github.com/facebook/react-native/issues/36440
node-version: '18.15.0'
cache: 'yarn'
if: ${{ runner.os != 'Windows' }}
- name: Install Yarn
shell: bash
run: |
# https://yarnpkg.com/getting-started/install
corepack enable
- uses: actions/setup-node@v6
with:
node-version: '24.15'
# Disable the cache on ARM runners. For now, we don't run "yarn install" on these
# environments and this breaks actions/setup-node.
# See https://github.com/laurent22/joplin/commit/47d0d3eb9e89153a609fb5441344da10904c6308#commitcomment-159577783.
# cache: ${{ (!contains(runner.os, 'arm') && 'yarn') || '' }}
- uses: ./.github/workflows/shared/install-yarn
# macos-latest ships with Python 3.12 by default, but this removes a
# utility that's used by electron-builder (distutils) so we need to pin
# Python to an earlier version.
# Fixes error `ModuleNotFoundError: No module named 'distutils'`
# Ref: https://github.com/nodejs/node-gyp/issues/2869
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: '3.11'
python-version: '3.14'
+35 -4
View File
@@ -1,5 +1,6 @@
name: Joplin UI tests
on: [push, pull_request]
permissions:
contents: read
jobs:
@@ -9,22 +10,52 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-13, ubuntu-22.04, windows-2025]
os: [ubuntu-22.04, windows-2025]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Setup build environment
uses: ./.github/workflows/shared/setup-build-environment
- name: Build (Windows)
if: runner.os == 'Windows'
shell: pwsh
env:
SKIP_ONENOTE_CONVERTER_BUILD: 1
run: |
. "${env:GITHUB_WORKSPACE}/.github/scripts/build_windows.ps1"
Install-WindowsDeps
- name: Build
if: runner.os != 'Windows'
run: yarn install
- name: Run UI tests
env:
# The onenote-converter package uses Rust, which isn't installed on all CI
# runners. Since the onenote-converter doesn't have UI tests, it can be excluded
# from build:
SKIP_ONENOTE_CONVERTER_BUILD: 1
- name: Run desktop UI tests
shell: bash
run: |
cd ${GITHUB_WORKSPACE}/packages/app-desktop/
bash ./integration-tests/run-ci.sh
# See https://playwright.dev/docs/ci-intro#setting-up-github-actions
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v6
if: ${{ !cancelled() }}
with:
name: playwright-report-${{ matrix.os }}
path: packages/app-desktop/playwright-report/
retention-days: 7
Mobile:
if: github.repository == 'laurent22/joplin'
runs-on: macos-latest
steps:
- uses: actions/checkout@v6
- name: Setup build environment
uses: ./.github/workflows/shared/setup-build-environment
- name: Build
run: yarn install
env:
SKIP_ONENOTE_CONVERTER_BUILD: 1
- name: Run mobile UI tests
shell: bash
run: |
cd ${GITHUB_WORKSPACE}/packages/app-mobile/
yarn test-ui-ios
+609 -78
View File
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+2
View File
@@ -5,9 +5,11 @@
"exceptions": [
"@joplin/editor",
"@joplin/fork-htmlparser2",
"@joplin/whisper-voice-typing",
"@joplin/fork-sax",
"@joplin/fork-uslug",
"@joplin/htmlpack",
"@joplin/transcribe",
"@joplin/lib",
"@joplin/onenote-converter",
"@joplin/pdf-viewer",
+2 -1
View File
@@ -1,3 +1,4 @@
{
"cSpell.enabled": true
"cSpell.enabled": true,
"editor.insertSpaces": false
}
+10
View File
@@ -0,0 +1,10 @@
# @joplin/empty
An empty package. This package can be used to exclude certain dependencies from build.
For example, the `canvas` dependency is an optional dependency of `pdfjs-dist`. However, it isn't used by Joplin and can cause build to fail in certain environments. The `@joplin/empty` package can exclude `canvas` from the build by adding a resolution to `resolutions` in the top-level `package.json`. For example, resolving `canvas@npm:^2.11` to `file:./packages/empty/`.
See also:
- [Yarn docs: Manifest resolutions](https://yarnpkg.com/configuration/manifest#resolutions)
- [GitHub comment: Yarn: Ignoring packages](https://github.com/yarnpkg/yarn/issues/4611#issuecomment-1370284462)
+4
View File
@@ -0,0 +1,4 @@
// Empty stub. Used via the root `resolutions` map to neutralise packages
// pulled in transitively but never actually called (e.g. @xenova/transformers
// → sharp, which we only need at build time).
module.exports = {};
+4
View File
@@ -0,0 +1,4 @@
// Empty ESM stub — see index.js. Needed because Node's ESM resolver looks
// at the `exports` field (or `main`) rather than guessing index.js the way
// the legacy CJS resolver does.
export default {};
+18
View File
@@ -0,0 +1,18 @@
{
"name": "@joplin/empty",
"version": "0.0.0",
"description": "An empty package, used as a way to exclude certain packages from build",
"private": true,
"main": "./index.js",
"exports": {
".": {
"import": "./index.mjs",
"require": "./index.js",
"default": "./index.js"
}
},
"repository": {
"type": "git",
"url": "git+https://github.com/laurent22/joplin.git"
}
}
@@ -0,0 +1,21 @@
# Add a minSdkVersion to prevent the dangerous READ_PHONE_STATE
# permission from being added.
# See:
# - Upstream issue report: https://github.com/oblador/react-native-vector-icons/issues/1861
# - About the permission: https://developer.android.com/reference/android/Manifest.permission#READ_PHONE_STATE
# - StackOverflow post with discussion and alternate workarounds: https://stackoverflow.com/questions/39668549/why-has-the-read-phone-state-permission-been-added
diff --git a/android/build.gradle b/android/build.gradle
index a16b4ad6d1871cf5cf73ef7ebeaf8bd4d662b134..9871afb5fbf8e687370e08f54d884ecd7dde7e7c 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -37,6 +37,10 @@ android {
}
compileSdkVersion safeExtGet('compileSdkVersion', 31)
+
+ defaultConfig {
+ minSdkVersion safeExtGet('minSdkVersion', 24)
+ }
}
dependencies {
@@ -0,0 +1,21 @@
# Add a minSdkVersion to prevent the dangerous READ_PHONE_STATE
# permission from being added.
# See:
# - Upstream issue report: https://github.com/oblador/react-native-vector-icons/issues/1861
# - About the permission: https://developer.android.com/reference/android/Manifest.permission#READ_PHONE_STATE
# - StackOverflow post with discussion and alternate workarounds: https://stackoverflow.com/questions/39668549/why-has-the-read-phone-state-permission-been-added
diff --git a/android/build.gradle b/android/build.gradle
index d42bd23123644cc324051e9c7ec4635de286315a..640996df60fe7769f69b30b35f771eb9cf0b75d4 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -37,6 +37,10 @@ android {
}
compileSdkVersion safeExtGet('compileSdkVersion', 31)
+
+ defaultConfig {
+ minSdkVersion safeExtGet('minSdkVersion', 24)
+ }
}
dependencies {
@@ -0,0 +1,21 @@
# Add a minSdkVersion to prevent the dangerous READ_PHONE_STATE
# permission from being added.
# See:
# - Upstream issue report: https://github.com/oblador/react-native-vector-icons/issues/1861
# - About the permission: https://developer.android.com/reference/android/Manifest.permission#READ_PHONE_STATE
# - StackOverflow post with discussion and alternate workarounds: https://stackoverflow.com/questions/39668549/why-has-the-read-phone-state-permission-been-added
diff --git a/android/build.gradle b/android/build.gradle
index 170ec0ff9befe0f9155aaf5e1b84133cfd87be99..e6a0ab4a019ee67c5af7761ae8bb35f18b05c590 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -37,6 +37,10 @@ android {
}
compileSdkVersion safeExtGet('compileSdkVersion', 31)
+
+ defaultConfig {
+ minSdkVersion safeExtGet('minSdkVersion', 24)
+ }
}
dependencies {
@@ -0,0 +1,21 @@
# Add a minSdkVersion to prevent the dangerous READ_PHONE_STATE
# permission from being added.
# See:
# - Upstream issue report: https://github.com/oblador/react-native-vector-icons/issues/1861
# - About the permission: https://developer.android.com/reference/android/Manifest.permission#READ_PHONE_STATE
# - StackOverflow post with discussion and alternate workarounds: https://stackoverflow.com/questions/39668549/why-has-the-read-phone-state-permission-been-added
diff --git a/android/build.gradle b/android/build.gradle
index 3b22f9de66795ee01dbaa29655727ee7ddba3cc8..325daa88d33f066b3826e5031ce281793710af2d 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -37,6 +37,10 @@ android {
}
compileSdkVersion safeExtGet('compileSdkVersion', 31)
+
+ defaultConfig {
+ minSdkVersion safeExtGet('minSdkVersion', 24)
+ }
}
dependencies {
@@ -0,0 +1,36 @@
# Patch to remove eval. This allows using depd in an environment with
# a strict Content-Security-Policy.
# Ref: https://github.com/dougwilson/nodejs-depd/pull/33
diff --git a/index.js b/index.js
index d758d3c8f58a60bf27ef377ad77639bf10ce7854..2bad40d4eeba553d3bcfb206873eac059067ae3b 100644
--- a/index.js
+++ b/index.js
@@ -399,19 +399,20 @@ function wrapfunction (fn, message) {
throw new TypeError('argument fn must be a function')
}
- var args = createArgumentsString(fn.length)
- var deprecate = this // eslint-disable-line no-unused-vars
var stack = getStack()
var site = callSiteLocation(stack[1])
site.name = fn.name
- // eslint-disable-next-line no-eval
- var deprecatedfn = eval('(function (' + args + ') {\n' +
- '"use strict"\n' +
- 'log.call(deprecate, message, site)\n' +
- 'return fn.apply(this, arguments)\n' +
- '})')
+ var deprecatedfn
+ var self = this
+ deprecatedfn = function () {
+ 'use strict'
+ log.call(self, message, site)
+ return fn.apply(this, arguments)
+ }
+ Object.defineProperty(deprecatedfn, 'length', { value: fn.length })
+ Object.defineProperty(deprecatedfn, 'name', { value: fn.name })
return deprecatedfn
}
@@ -0,0 +1,35 @@
# Patch to remove eval. This allows using depd in an environment with
# a strict Content-Security-Policy.
# Ref: https://github.com/dougwilson/nodejs-depd/pull/33
diff --git a/index.js b/index.js
index 1bf2fcfdeffc984e5ad792eec08744c29d4a4590..1b24aa2414458bc651abfdded81b103c131efeaa 100644
--- a/index.js
+++ b/index.js
@@ -415,19 +415,19 @@ function wrapfunction (fn, message) {
throw new TypeError('argument fn must be a function')
}
- var args = createArgumentsString(fn.length)
var stack = getStack()
var site = callSiteLocation(stack[1])
site.name = fn.name
- // eslint-disable-next-line no-new-func
- var deprecatedfn = new Function('fn', 'log', 'deprecate', 'message', 'site',
- '"use strict"\n' +
- 'return function (' + args + ') {' +
- 'log.call(deprecate, message, site)\n' +
- 'return fn.apply(this, arguments)\n' +
- '}')(fn, log, this, message, site)
+ var self = this
+ var deprecatedfn = function () {
+ 'use strict'
+ log.call(self, message, site)
+ return fn.apply(this, arguments)
+ }
+ Object.defineProperty(deprecatedfn, 'length', { value: fn.length })
+ Object.defineProperty(deprecatedfn, 'name', { value: fn.name })
return deprecatedfn
}
@@ -1,15 +0,0 @@
diff --git a/lib/rules/multiline-comment-style.js b/lib/rules/multiline-comment-style.js
index 9cb7f3473e5a124e2eedb12685650f047afa84b6..124e062955e1b51cbdddd0920c22446dc97dd261 100644
--- a/lib/rules/multiline-comment-style.js
+++ b/lib/rules/multiline-comment-style.js
@@ -377,6 +377,10 @@ module.exports = {
commentLines = commentLines.slice(1, commentLines.length - 1);
}
+ // We have to allow this because it's always a top comment and
+ // it has to be in a jsdoc block
+ if (commentLines.join('').trim().startsWith('@jest-environment')) return;
+
const tokenAfter = sourceCode.getTokenAfter(firstComment, { includeComments: true });
if (tokenAfter && firstComment.loc.end.line === tokenAfter.loc.start.line) {
@@ -0,0 +1,23 @@
# Allows the `multiline-comment-style` rule to coexist with Jest's
# `/** @jest-environment ... */` docblock. Jest requires that pragma to be a
# block comment at the top of the file, but `multiline-comment-style:
# separate-lines` would otherwise force it to be rewritten as line comments,
# which Jest then ignores. This early-return exempts that single pragma.
#
# Re-rolled from the previous eslint@8.57.1 patch for the v9 upgrade; the rule
# body was only reformatted between versions, the patched logic is unchanged.
diff --git a/lib/rules/multiline-comment-style.js b/lib/rules/multiline-comment-style.js
index 463e7a7343253ff25f29a45b7605c1e947847d45..0d8813a9a8f098e06ea454e81f807aa3bfbe1fb1 100644
--- a/lib/rules/multiline-comment-style.js
+++ b/lib/rules/multiline-comment-style.js
@@ -509,6 +509,10 @@ module.exports = {
);
}
+ // We have to allow this because it's always a top comment and
+ // it has to be in a jsdoc block
+ if (commentLines.join('').trim().startsWith('@jest-environment')) return;
+
const tokenAfter = sourceCode.getTokenAfter(firstComment, {
includeComments: true,
});
@@ -0,0 +1,24 @@
# Resolves an issue in which notes and attachments larger than 16 KB
# could become corrupted during the upload process.
# See https://github.com/laurent22/joplin/issues/14343
diff --git a/src/parsers/JSON.js b/src/parsers/JSON.js
index 9a096c25778c7c68be1ddd9dd78faa85bd1d8ec3..6d6bfd2d3789313a7adc8966ab8e58c3d3167356 100644
--- a/src/parsers/JSON.js
+++ b/src/parsers/JSON.js
@@ -12,13 +12,14 @@ class JSONParser extends Transform {
}
_transform(chunk, encoding, callback) {
- this.chunks.push(String(chunk)); // todo consider using a string decoder
+ this.chunks.push(chunk); // type: Uint8Array
callback();
}
_flush(callback) {
try {
- const fields = JSON.parse(this.chunks.join(''));
+ const data = Buffer.concat(this.chunks);
+ const fields = JSON.parse(data.toString('utf-8'));
Object.keys(fields).forEach((key) => {
const value = fields[key];
this.push({ key, value });
@@ -1,6 +1,22 @@
# We remove the `canvas` optional dependency because electron-rebuild fails to build it, and
# the `canvas` API is already part of Electron
diff --git a/build/pdf.js b/build/pdf.js
index 4acf16b1d6f9351bda1a98649ea4f926618fe617..f63dbc6050ca63ca8e8ed982edea134103fa15dd 100644
--- a/build/pdf.js
+++ b/build/pdf.js
@@ -6244,8 +6244,9 @@ class NodeFilterFactory extends _base_factory.BaseFilterFactory {}
exports.NodeFilterFactory = NodeFilterFactory;
class NodeCanvasFactory extends _base_factory.BaseCanvasFactory {
_createCanvas(width, height) {
- const Canvas = require("canvas");
- return Canvas.createCanvas(width, height);
+ throw new Error('Node canvas disabled');
+ // const Canvas = require("canvas");
+ // return Canvas.createCanvas(width, height);
}
}
exports.NodeCanvasFactory = NodeCanvasFactory;
diff --git a/package.json b/package.json
index 105811f53d508486e08a60dc1b6e437cd24d7427..dea6a4e6612c4a4006cc482e46ff5270dcfda1e5 100644
--- a/package.json
@@ -1,25 +0,0 @@
diff --git a/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java b/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java
index 8a719ca35af1cc3a4192c5c5f8258fd4f7fea990..5f8831f81cd164a4f627423427ead92fa286b115 100644
--- a/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java
+++ b/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java
@@ -37,7 +37,7 @@ import com.facebook.react.uimanager.common.ViewUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Queue;
-import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.atomic.AtomicReference;
/**
@@ -149,7 +149,10 @@ public class NativeAnimatedModule extends NativeAnimatedModuleSpec
}
private class ConcurrentOperationQueue {
- private final Queue<UIThreadOperation> mQueue = new ConcurrentLinkedQueue<>();
+ // Patch: Use LinkedBlockingQueue instead of ConcurrentLinkedQueue.
+ // In some versions of Android, ConcurrentLinkedQueue is known to drop
+ // items, causing crashing. See https://github.com/laurent22/joplin/issues/8425
+ private final Queue<UIThreadOperation> mQueue = new LinkedBlockingQueue<>();
@Nullable private UIThreadOperation mPeekedOperation = null;
@AnyThread
@@ -0,0 +1,205 @@
# This patch fixes two issues:
# - Updates RCTDeviceInfo.m to match https://github.com/facebook/react-native/commit/0b8db7e5e814cfbf9974cc5b6ceb64e8006d8a3c.
# This fixes an issue in which useWindowDimensions returns incorrect
# values in landscape mode in iOS.
# This should be fixed in React Native 0.80. See https://github.com/facebook/react-native/issues/51086.
# - Updates NativeAnimatedModule.java to work around an Android 12-specific crash.
diff --git a/React/CoreModules/RCTDeviceInfo.mm b/React/CoreModules/RCTDeviceInfo.mm
index 6b4fcef852252e8d4ac2aceb12175fdfafb4def7..8ceab21e8653d429876d10e2d12ed1342780ad7d 100644
--- a/React/CoreModules/RCTDeviceInfo.mm
+++ b/React/CoreModules/RCTDeviceInfo.mm
@@ -14,9 +14,7 @@
#import <React/RCTEventDispatcherProtocol.h>
#import <React/RCTInitializing.h>
#import <React/RCTInvalidating.h>
-#import <React/RCTKeyWindowValuesProxy.h>
#import <React/RCTUtils.h>
-#import <React/RCTWindowSafeAreaProxy.h>
#import <atomic>
#import "CoreModulesPlugins.h"
@@ -31,8 +29,13 @@ using namespace facebook::react;
NSDictionary *_currentInterfaceDimensions;
BOOL _isFullscreen;
std::atomic<BOOL> _invalidated;
+ NSDictionary *_constants;
+
+ __weak UIWindow *_applicationWindow;
}
+static NSString *const kFrameKeyPath = @"frame";
+
@synthesize moduleRegistry = _moduleRegistry;
RCT_EXPORT_MODULE()
@@ -40,14 +43,26 @@ RCT_EXPORT_MODULE()
- (instancetype)init
{
if (self = [super init]) {
- [[RCTKeyWindowValuesProxy sharedInstance] startObservingWindowSizeIfNecessary];
+ _applicationWindow = RCTKeyWindow();
+ [_applicationWindow addObserver:self forKeyPath:kFrameKeyPath options:NSKeyValueObservingOptionNew context:nil];
}
return self;
}
+- (void)observeValueForKeyPath:(NSString *)keyPath
+ ofObject:(id)object
+ change:(NSDictionary *)change
+ context:(void *)context
+{
+ if ([keyPath isEqualToString:kFrameKeyPath]) {
+ [self interfaceFrameDidChange];
+ [[NSNotificationCenter defaultCenter] postNotificationName:RCTWindowFrameDidChangeNotification object:self];
+ }
+}
+
+ (BOOL)requiresMainQueueSetup
{
- return NO;
+ return YES;
}
- (dispatch_queue_t)methodQueue
@@ -81,7 +96,7 @@ RCT_EXPORT_MODULE()
#if TARGET_OS_IOS
- _currentInterfaceOrientation = [RCTKeyWindowValuesProxy sharedInstance].currentInterfaceOrientation;
+ _currentInterfaceOrientation = RCTKeyWindow().windowScene.interfaceOrientation;
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(interfaceFrameDidChange)
@@ -98,6 +113,15 @@ RCT_EXPORT_MODULE()
selector:@selector(invalidate)
name:RCTBridgeWillInvalidateModulesNotification
object:nil];
+
+ _constants = @{
+ @"Dimensions" : [self _exportedDimensions],
+ // Note:
+ // This prop is deprecated and will be removed in a future release.
+ // Please use this only for a quick and temporary solution.
+ // Use <SafeAreaView> instead.
+ @"isIPhoneX_deprecated" : @(RCTIsIPhoneNotched()),
+ };
}
- (void)invalidate
@@ -120,6 +144,8 @@ RCT_EXPORT_MODULE()
[[NSNotificationCenter defaultCenter] removeObserver:self name:RCTBridgeWillInvalidateModulesNotification object:nil];
+ [_applicationWindow removeObserver:self forKeyPath:kFrameKeyPath];
+
#if TARGET_OS_IOS
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil];
#endif
@@ -132,8 +158,13 @@ static BOOL RCTIsIPhoneNotched()
#if TARGET_OS_IOS
dispatch_once(&onceToken, ^{
+ RCTAssertMainQueue();
+
// 20pt is the top safeArea value in non-notched devices
- isIPhoneNotched = [RCTWindowSafeAreaProxy sharedInstance].currentSafeAreaInsets.top > 20;
+ UIWindow *keyWindow = RCTKeyWindow();
+ if (keyWindow) {
+ isIPhoneNotched = keyWindow.safeAreaInsets.top > 20;
+ }
});
#endif
@@ -142,11 +173,13 @@ static BOOL RCTIsIPhoneNotched()
static NSDictionary *RCTExportedDimensions(CGFloat fontScale)
{
+ RCTAssertMainQueue();
UIScreen *mainScreen = UIScreen.mainScreen;
CGSize screenSize = mainScreen.bounds.size;
+ UIView *mainWindow = RCTKeyWindow();
// We fallback to screen size if a key window is not found.
- CGSize windowSize = [RCTKeyWindowValuesProxy sharedInstance].windowSize;
+ CGSize windowSize = mainWindow ? mainWindow.bounds.size : screenSize;
NSDictionary<NSString *, NSNumber *> *dimsWindow = @{
@"width" : @(windowSize.width),
@@ -170,7 +203,10 @@ static NSDictionary *RCTExportedDimensions(CGFloat fontScale)
RCTAssert(_moduleRegistry, @"Failed to get exported dimensions: RCTModuleRegistry is nil");
RCTAccessibilityManager *accessibilityManager =
(RCTAccessibilityManager *)[_moduleRegistry moduleForName:"AccessibilityManager"];
- RCTAssert(accessibilityManager, @"Failed to get exported dimensions: AccessibilityManager is nil");
+ // TOOD(T225745315): For some reason, accessibilityManager is nil in some cases.
+ // We default the fontScale to 1.0 in this case. This should be okay: if we assume
+ // that accessibilityManager will eventually become available, js will eventually
+ // be updated with the correct fontScale.
CGFloat fontScale = accessibilityManager ? accessibilityManager.multiplier : 1.0;
return RCTExportedDimensions(fontScale);
}
@@ -182,14 +218,7 @@ static NSDictionary *RCTExportedDimensions(CGFloat fontScale)
- (NSDictionary<NSString *, id> *)getConstants
{
- return @{
- @"Dimensions" : [self _exportedDimensions],
- // Note:
- // This prop is deprecated and will be removed in a future release.
- // Please use this only for a quick and temporary solution.
- // Use <SafeAreaView> instead.
- @"isIPhoneX_deprecated" : @(RCTIsIPhoneNotched()),
- };
+ return _constants;
}
- (void)didReceiveNewContentSizeMultiplier
@@ -209,10 +238,11 @@ static NSDictionary *RCTExportedDimensions(CGFloat fontScale)
- (void)interfaceOrientationDidChange
{
#if TARGET_OS_IOS && !TARGET_OS_MACCATALYST
- UIWindow *keyWindow = RCTKeyWindow();
- UIInterfaceOrientation nextOrientation = keyWindow.windowScene.interfaceOrientation;
+ UIApplication *application = RCTSharedApplication();
+ UIInterfaceOrientation nextOrientation = RCTKeyWindow().windowScene.interfaceOrientation;
- BOOL isRunningInFullScreen = CGRectEqualToRect(keyWindow.frame, keyWindow.screen.bounds);
+ BOOL isRunningInFullScreen =
+ CGRectEqualToRect(application.delegate.window.frame, application.delegate.window.screen.bounds);
// We are catching here two situations for multitasking view:
// a) The app is in Split View and the container gets resized -> !isRunningInFullScreen
// b) The app changes to/from fullscreen example: App runs in slide over mode and goes into fullscreen->
@@ -276,3 +306,4 @@ Class RCTDeviceInfoCls(void)
{
return RCTDeviceInfo.class;
}
+
diff --git a/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java b/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java
index cf14e51cf5f561b84f1b6ace8410fc77d626758e..abc8c64adf26fbf73429aee7fd4f76877e98849a 100644
--- a/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java
+++ b/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java
@@ -42,6 +42,7 @@ import java.util.List;
import java.util.Queue;
import java.util.Set;
import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.atomic.AtomicReference;
/**
@@ -155,8 +156,15 @@ public class NativeAnimatedModule extends NativeAnimatedModuleSpec
}
private class ConcurrentOperationQueue {
- private final Queue<UIThreadOperation> mQueue = new ConcurrentLinkedQueue<>();
- @Nullable private UIThreadOperation mPeekedOperation = null;
+ // Patch: Use LinkedBlockingQueue instead of ConcurrentLinkedQueue.
+ // In some versions of Android, ConcurrentLinkedQueue is known to drop
+ // items, causing crashing. See https://github.com/laurent22/joplin/issues/8425
+ private final Queue<UIThreadOperation> mQueue = (
+ // The issue exists for Android 12, which corresponds to API levels 31 and 32.
+ Build.VERSION.SDK_INT == 31 || Build.VERSION.SDK_INT == 32
+ ) ? new LinkedBlockingQueue<>() : new ConcurrentLinkedQueue<>();
+
+ @Nullable private UIThreadOperation mPeekedOperation = null;
@AnyThread
boolean isEmpty() {
@@ -1,21 +1,21 @@
# This patch improves the note actions menu (the kebab menu)'s accessibility
# by labelling its dismiss button.
diff --git a/build/rnpm.js b/build/rnpm.js
index 1111c2de99b3d4c5651ca4eee3ba59c0ce8e13e1..d410ee12b38d02c399b0a40973217da0082d73c0 100644
index 47bc91a88b9e2246a0ce4295f9f932da6a572461..75b5a22bdcbc2594238bcf953df6d54e18cc7793 100644
--- a/build/rnpm.js
+++ b/build/rnpm.js
@@ -1573,7 +1573,9 @@
@@ -1267,7 +1267,9 @@
onPress = _this$props.onPress,
style = _this$props.style;
return /*#__PURE__*/React__default.createElement(reactNative.TouchableWithoutFeedback, {
return React__default.createElement(reactNative.TouchableWithoutFeedback, {
- onPress: onPress
+ onPress: onPress,
+ accessibilityLabel: _this$props.accessibilityLabel,
+ accessibilityRole: 'button',
}, /*#__PURE__*/React__default.createElement(reactNative.Animated.View, {
}, React__default.createElement(reactNative.Animated.View, {
style: [styles.fullscreen, {
opacity: this.fadeAnim
@@ -1588,7 +1590,8 @@
@@ -1282,7 +1284,8 @@
}(React.Component);
Backdrop.propTypes = {
@@ -25,24 +25,33 @@ index 1111c2de99b3d4c5651ca4eee3ba59c0ce8e13e1..d410ee12b38d02c399b0a40973217da0
};
var styles = reactNative.StyleSheet.create({
fullscreen: {
@@ -1658,6 +1661,7 @@
@@ -1352,6 +1355,7 @@
style: styles$1.placeholder
}, /*#__PURE__*/React__default.createElement(Backdrop, {
}, React__default.createElement(Backdrop, {
onPress: ctx._onBackdropPress,
+ accessibilityLabel: this.props.closeButtonLabel,
style: backdropStyles,
ref: ctx.onBackdropRef
}), ctx._makeOptions());
@@ -2090,6 +2094,7 @@
}), /*#__PURE__*/React__default.createElement(MenuPlaceholder, {
@@ -1784,6 +1788,7 @@
}), React__default.createElement(MenuPlaceholder, {
ctx: this,
backdropStyles: customStyles.backdrop,
+ closeButtonLabel: this.props.closeButtonLabel,
ref: this._onPlaceholderRef
}))));
}
@@ -1854,7 +1859,7 @@
var _options$props = options.props,
optionsContainerStyle = _options$props.optionsContainerStyle,
renderOptionsContainer = _options$props.renderOptionsContainer,
- customStyles = _options$props.customStyles;
+ customStyles = _options$props.customStyles || {};
var optionsRenderer = renderOptionsContainer || defaultOptionsContainerRenderer;
var isOutside = !triggerLayout || !optionsLayout;
diff --git a/src/index.d.ts b/src/index.d.ts
index 1db1e643a915e4bfb715e33354678ec1be219f50..007157e366d1935368bdd8eff5e7a0773e183d0f 100644
index 7e1ef2e441a665e97c304984080399f9646395df..673c4f713757abfb1851cba0d4560020c83e5f50 100644
--- a/src/index.d.ts
+++ b/src/index.d.ts
@@ -18,6 +18,7 @@ declare module "react-native-popup-menu" {
@@ -1,209 +0,0 @@
diff --git a/android/build.gradle b/android/build.gradle
index 6afcbbf0cc8ca2d69dd78077d61e59a90b2136bb..9f8d72b4ec5b2b3d290975d6a255917c95300854 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -67,19 +67,19 @@ repositories {
}
// Generate UUIDs for each models contained in android/src/main/assets/
-tasks.register('genUUID') {
- doLast {
- fileTree(dir: "$rootDir/app/src/main/assets", exclude: ['*/*']).visit { fileDetails ->
- if (fileDetails.directory) {
- def odir = file("$rootDir/app/src/main/assets/$fileDetails.relativePath")
- def ofile = file("$odir/uuid")
- mkdir odir
- ofile.text = UUID.randomUUID().toString()
- }
- }
- }
-}
-preBuild.dependsOn genUUID
+// tasks.register('genUUID') {
+// doLast {
+// fileTree(dir: "$rootDir/app/src/main/assets", exclude: ['*/*']).visit { fileDetails ->
+// if (fileDetails.directory) {
+// def odir = file("$rootDir/app/src/main/assets/$fileDetails.relativePath")
+// def ofile = file("$odir/uuid")
+// mkdir odir
+// ofile.text = UUID.randomUUID().toString()
+// }
+// }
+// }
+// }
+// preBuild.dependsOn genUUID
def kotlin_version = getExtOrDefault('kotlinVersion')
diff --git a/android/src/main/java/com/reactnativevosk/VoskModule.kt b/android/src/main/java/com/reactnativevosk/VoskModule.kt
index 0e2b6595b1b2cf1ee01c6c64239c4b0ea37fce19..5a8539b9cce8951967640dba755e29a4e3ff404a 100644
--- a/android/src/main/java/com/reactnativevosk/VoskModule.kt
+++ b/android/src/main/java/com/reactnativevosk/VoskModule.kt
@@ -19,13 +19,25 @@ class VoskModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMo
return "Vosk"
}
+ @ReactMethod
+ fun addListener(type: String?) {
+ // Keep: Required for RN built in Event Emitter Calls.
+ }
+
+ @ReactMethod
+ fun removeListeners(type: Int?) {
+ // Keep: Required for RN built in Event Emitter Calls.
+ }
+
override fun onResult(hypothesis: String) {
// Get text data from string object
val text = getHypothesisText(hypothesis)
// Stop recording if data found
if (text != null && text.isNotEmpty()) {
- cleanRecognizer();
+ // Don't auto-stop the recogniser - we want to do that when the user
+ // presses on "stop" only.
+ // cleanRecognizer();
sendEvent("onResult", text)
}
}
@@ -93,12 +105,11 @@ class VoskModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMo
@ReactMethod
fun loadModel(path: String, promise: Promise) {
cleanModel();
- StorageService.unpack(context, path, "models",
- { model: Model? ->
- this.model = model
- promise.resolve("Model successfully loaded")
- }
- ) { e: IOException ->
+
+ try {
+ this.model = Model(path);
+ promise.resolve("Model successfully loaded")
+ } catch (e: IOException) {
this.model = null
promise.reject(e)
}
@@ -153,6 +164,25 @@ class VoskModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMo
cleanRecognizer();
}
+ @ReactMethod
+ fun stopOnly() {
+ if (speechService != null) {
+ speechService!!.stop()
+ }
+ }
+
+ @ReactMethod
+ fun cleanup() {
+ if (speechService != null) {
+ speechService!!.shutdown();
+ speechService = null
+ }
+ if (recognizer != null) {
+ recognizer!!.close();
+ recognizer = null;
+ }
+ }
+
@ReactMethod
fun unload() {
cleanRecognizer();
diff --git a/lib/typescript/index.d.ts b/lib/typescript/index.d.ts
index 441e41cc402cca3a60b34978ef4fea976076259c..a173acebb4b314402550442ad471e0f7c706e3c4 100644
--- a/lib/typescript/index.d.ts
+++ b/lib/typescript/index.d.ts
@@ -10,6 +10,8 @@ export default class Vosk {
currentRegisteredEvents: EmitterSubscription[];
start: (grammar?: string[] | null) => Promise<String>;
stop: () => void;
+ stopOnly: () => void;
+ cleanup: () => void;
unload: () => void;
onResult: (onResult: (e: VoskEvent) => void) => EventSubscription;
onFinalResult: (onFinalResult: (e: VoskEvent) => void) => EventSubscription;
diff --git a/package.json b/package.json
index 707eddb8d68007f93071ac659c5b087c935c5f01..90ebe20f224eeec472c377df1fef9b15f2ff8200 100644
--- a/package.json
+++ b/package.json
@@ -11,12 +11,9 @@
"src",
"lib",
"android",
- "ios",
"cpp",
- "react-native-vosk.podspec",
"!lib/typescript/example",
"!android/build",
- "!ios/build",
"!**/__tests__",
"!**/__fixtures__",
"!**/__mocks__"
diff --git a/react-native-vosk.podspec b/react-native-vosk.podspec
deleted file mode 100644
index e3d41b90c5eef890c7a5108aaf16ac07d34a698b..0000000000000000000000000000000000000000
--- a/react-native-vosk.podspec
+++ /dev/null
@@ -1,41 +0,0 @@
-require "json"
-
-package = JSON.parse(File.read(File.join(__dir__, "package.json")))
-folly_version = '2021.06.28.00-v2'
-folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
-
-Pod::Spec.new do |s|
- s.name = "react-native-vosk"
- s.version = package["version"]
- s.summary = package["description"]
- s.homepage = package["homepage"]
- s.license = package["license"]
- s.authors = package["author"]
-
- s.platforms = { :ios => "10.0" }
- s.source = { :git => "https://github.com/riderodd/react-native-vosk.git", :tag => "#{s.version}" }
-
- s.source_files = "ios/**/*.{h,m,mm,swift}"
- s.resource_bundles = { 'Vosk' => ['ios/Vosk/*'] }
-
- s.dependency "React-Core"
- s.frameworks = "Accelerate"
- s.library = "c++"
- s.vendored_frameworks = "ios/libvosk.xcframework"
- s.requires_arc = true
-
- # Don't install the dependencies when we run `pod install` in the old architecture.
- if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
- s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
- s.pod_target_xcconfig = {
- "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
- }
-
- s.dependency "React-Codegen"
- s.dependency "RCT-Folly", folly_version
- s.dependency "RCTRequired"
- s.dependency "RCTTypeSafety"
- s.dependency "ReactCommon/turbomodule/core"
- end
-end
diff --git a/src/index.tsx b/src/index.tsx
index d9f90c921d89b1b4d85e145443ed3376546a368a..29e4068dbd7500828a73145bd25497a52c9bf638 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -69,6 +69,15 @@ export default class Vosk {
VoskModule.stop();
};
+ stopOnly = () => {
+ VoskModule.stopOnly();
+ };
+
+ cleanup = () => {
+ this.cleanListeners();
+ VoskModule.cleanup();
+ };
+
unload = () => {
this.cleanListeners();
VoskModule.unload();
-28
View File
@@ -1,28 +0,0 @@
/* eslint-disable */
//prettier-ignore
module.exports = {
name: "@yarnpkg/plugin-workspace-tools",
factory: function (require) {
var plugin=(()=>{var wr=Object.create,ge=Object.defineProperty,Sr=Object.defineProperties,vr=Object.getOwnPropertyDescriptor,Hr=Object.getOwnPropertyDescriptors,$r=Object.getOwnPropertyNames,Je=Object.getOwnPropertySymbols,kr=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty,Tr=Object.prototype.propertyIsEnumerable;var tt=(e,t,r)=>t in e?ge(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,I=(e,t)=>{for(var r in t||(t={}))et.call(t,r)&&tt(e,r,t[r]);if(Je)for(var r of Je(t))Tr.call(t,r)&&tt(e,r,t[r]);return e},F=(e,t)=>Sr(e,Hr(t)),Lr=e=>ge(e,"__esModule",{value:!0});var K=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Or=(e,t)=>{for(var r in t)ge(e,r,{get:t[r],enumerable:!0})},Nr=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of $r(t))!et.call(e,n)&&n!=="default"&&ge(e,n,{get:()=>t[n],enumerable:!(r=vr(t,n))||r.enumerable});return e},Q=e=>Nr(Lr(ge(e!=null?wr(kr(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var He=K(ee=>{"use strict";ee.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;ee.find=(e,t)=>e.nodes.find(r=>r.type===t);ee.exceedsLimit=(e,t,r=1,n)=>n===!1||!ee.isInteger(e)||!ee.isInteger(t)?!1:(Number(t)-Number(e))/Number(r)>=n;ee.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];!n||(r&&n.type===r||n.type==="open"||n.type==="close")&&n.escaped!==!0&&(n.value="\\"+n.value,n.escaped=!0)};ee.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0==0?(e.invalid=!0,!0):!1;ee.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:e.commas>>0+e.ranges>>0==0||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;ee.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;ee.reduce=e=>e.reduce((t,r)=>(r.type==="text"&&t.push(r.value),r.type==="range"&&(r.type="text"),t),[]);ee.flatten=(...e)=>{let t=[],r=n=>{for(let s=0;s<n.length;s++){let a=n[s];Array.isArray(a)?r(a,t):a!==void 0&&t.push(a)}return t};return r(e),t}});var $e=K((is,st)=>{"use strict";var at=He();st.exports=(e,t={})=>{let r=(n,s={})=>{let a=t.escapeInvalid&&at.isInvalidBrace(s),i=n.invalid===!0&&t.escapeInvalid===!0,o="";if(n.value)return(a||i)&&at.isOpenOrClose(n)?"\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let h of n.nodes)o+=r(h);return o};return r(e)}});var ot=K((os,it)=>{"use strict";it.exports=function(e){return typeof e=="number"?e-e==0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var mt=K((us,ut)=>{"use strict";var ct=ot(),pe=(e,t,r)=>{if(ct(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(ct(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let n=I({relaxZeros:!0},r);typeof n.strictZeros=="boolean"&&(n.relaxZeros=n.strictZeros===!1);let s=String(n.relaxZeros),a=String(n.shorthand),i=String(n.capture),o=String(n.wrap),h=e+":"+t+"="+s+a+i+o;if(pe.cache.hasOwnProperty(h))return pe.cache[h].result;let m=Math.min(e,t),f=Math.max(e,t);if(Math.abs(m-f)===1){let y=e+"|"+t;return n.capture?`(${y})`:n.wrap===!1?y:`(?:${y})`}let R=pt(e)||pt(t),p={min:e,max:t,a:m,b:f},v=[],_=[];if(R&&(p.isPadded=R,p.maxLen=String(p.max).length),m<0){let y=f<0?Math.abs(f):1;_=lt(y,Math.abs(m),p,n),m=p.a=0}return f>=0&&(v=lt(m,f,p,n)),p.negatives=_,p.positives=v,p.result=Ir(_,v,n),n.capture===!0?p.result=`(${p.result})`:n.wrap!==!1&&v.length+_.length>1&&(p.result=`(?:${p.result})`),pe.cache[h]=p,p.result};function Ir(e,t,r){let n=Pe(e,t,"-",!1,r)||[],s=Pe(t,e,"",!1,r)||[],a=Pe(e,t,"-?",!0,r)||[];return n.concat(a).concat(s).join("|")}function Mr(e,t){let r=1,n=1,s=ft(e,r),a=new Set([t]);for(;e<=s&&s<=t;)a.add(s),r+=1,s=ft(e,r);for(s=ht(t+1,n)-1;e<s&&s<=t;)a.add(s),n+=1,s=ht(t+1,n)-1;return a=[...a],a.sort(Br),a}function Gr(e,t,r){if(e===t)return{pattern:e,count:[],digits:0};let n=Pr(e,t),s=n.length,a="",i=0;for(let o=0;o<s;o++){let[h,m]=n[o];h===m?a+=h:h!=="0"||m!=="9"?a+=Dr(h,m,r):i++}return i&&(a+=r.shorthand===!0?"\\d":"[0-9]"),{pattern:a,count:[i],digits:s}}function lt(e,t,r,n){let s=Mr(e,t),a=[],i=e,o;for(let h=0;h<s.length;h++){let m=s[h],f=Gr(String(i),String(m),n),R="";if(!r.isPadded&&o&&o.pattern===f.pattern){o.count.length>1&&o.count.pop(),o.count.push(f.count[0]),o.string=o.pattern+dt(o.count),i=m+1;continue}r.isPadded&&(R=Ur(m,r,n)),f.string=R+f.pattern+dt(f.count),a.push(f),i=m+1,o=f}return a}function Pe(e,t,r,n,s){let a=[];for(let i of e){let{string:o}=i;!n&&!gt(t,"string",o)&&a.push(r+o),n&&gt(t,"string",o)&&a.push(r+o)}return a}function Pr(e,t){let r=[];for(let n=0;n<e.length;n++)r.push([e[n],t[n]]);return r}function Br(e,t){return e>t?1:t>e?-1:0}function gt(e,t,r){return e.some(n=>n[t]===r)}function ft(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function ht(e,t){return e-e%Math.pow(10,t)}function dt(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}fuLine 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 Mt=K((hs,Ot)=>{"use strict";var en=$e(),{MAX_LENGTH:Nt,CHAR_BACKSLASH:qe,CHAR_BACKTICK:tn,CHAR_COMMA:rn,CHAR_DOT:nn,CHAR_LEFT_PARENTHESES:sn,CHAR_RIGHT_PARENTHESES:an,CHAR_LEFT_CURLY_BRACE:on,CHAR_RIGHT_CURLY_BRACE:un,CHAR_LEFT_SQUARE_BRACKET:It,CHAR_RIGHT_SQUARE_BRACKET:Bt,CHAR_DOUBLE_QUOTE:cn,CHAR_SINGLE_QUOTE:ln,CHAR_NO_BREAK_SPACE:pn,CHAR_ZERO_WIDTH_NOBREAK_SPACE:fn}=Lt(),hn=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let r=t||{},n=typeof r.maxLength=="number"?Math.min(Nt,r.maxLength):Nt;if(e.length>n)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${n})`);let s={type:"root",input:e,nodes:[]},a=[s],i=s,o=s,h=0,m=e.length,f=0,R=0,p,v={},_=()=>e[f++],y=b=>{if(b.type==="text"&&o.type==="dot"&&(o.type="text"),o&&o.type==="text"&&b.type==="text"){o.value+=b.value;return}return i.nodes.push(b),b.parent=i,b.prev=o,o=b,b};for(y({type:"bos"});f<m;)if(i=a[a.length-1],p=_(),!(p===fn||p===pn)){if(p===qe){y({type:"text",value:(t.keepEscaping?p:"")+_()});continue}if(p===Bt){y({type:"text",value:"\\"+p});continue}if(p===It){h++;let b=!0,E;for(;f<m&&(E=_());){if(p+=E,E===It){h++;continue}if(E===qe){p+=_();continue}if(E===Bt&&(h--,h===0))break}y({type:"text",value:p});continue}if(p===sn){i=y({type:"paren",nodes:[]}),a.push(i),y({type:"text",value:p});continue}if(p===an){if(i.type!=="paren"){y({type:"text",value:p});continue}i=a.pop(),y({type:"text",value:p}),i=a[a.length-1];continue}if(p===cn||p===ln||p===tn){let b=p,E;for(t.keepQuotes!==!0&&(p="");f<m&&(E=_());){if(E===qe){p+=E+_();continue}if(E===b){t.keepQuotes===!0&&(p+=E);break}p+=E}y({type:"text",value:p});continue}if(p===on){R++;let b=o.value&&o.value.slice(-1)==="$"||i.dollar===!0;i=y({type:"brace",open:!0,close:!1,dollar:b,depth:R,commas:0,ranges:0,nodes:[]}),a.push(i),y({type:"open",value:p});continue}if(p===un){if(i.type!=="brace"){y({type:"text",value:p});continue}let b="close";i=a.pop(),i.close=!0,y({type:b,value:p}),R--,i=a[a.length-1];continue}if(p===rn&&R>0){if(i.ranges>0){i.ranges=0;let b=i.nodes.shift();i.nodes=[b,{type:"text",value:en(i)}]}y({type:"comma",value:p}),i.commas++;continue}if(p===nn&&R>0&&i.commas===0){let b=i.nodes;if(R===0||b.length===0){y({type:"text",value:p});continue}if(o.type==="dot"){if(i.range=[],o.value+=p,o.type="range",i.nodes.length!==3&&i.nodes.length!==5){i.invalid=!0,i.ranges=0,o.type="text";continue}i.ranges++,i.args=[];continue}if(o.type==="range"){b.pop();let E=b[b.length-1];E.value+=o.value+p,o=E,i.ranges--;continue}y({type:"dot",value:p});continue}y({type:"text",value:p})}do if(i=a.pop(),i.type!=="root"){i.nodes.forEach(H=>{H.nodes||(H.type==="open"&&(H.isOpen=!0),H.type==="close"&&(H.isClose=!0),H.nodes||(H.type="text"),H.invalid=!0)});let b=a[a.length-1],E=b.nodes.indexOf(i);b.nodes.splice(E,1,...i.nodes)}while(a.length>0);return y({type:"eos"}),s};Ot.exports=hn});var Gt=K((ds,Pt)=>{"use strict";var Dt=$e(),dn=vt(),gn=kt(),mn=Mt(),z=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let s=z.create(n,t);Array.isArray(s)?r.push(...s):r.push(s)}else r=[].concat(z.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(r=[...new Set(r)]),r};z.parse=(e,t={})=>mn(e,t);z.stringify=(e,t={})=>typeof e=="string"?Dt(z.parse(e,t),t):Dt(e,t);z.compile=(e,t={})=>(typeof e=="string"&&(e=z.parse(e,t)),dn(e,t));z.expand=(e,t={})=>{typeof e=="string"&&(e=z.parse(e,t));let r=gn(e,t);return t.noempty===!0&&(r=r.filter(Boolean)),t.nodupes===!0&&(r=[...new Set(r)]),r};z.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?z.compile(e,t):z.expand(e,t);Pt.exports=z});var Re=K((gs,Ut)=>{"use strict";var An=require("path"),se="\\\\/",qt=`[^${se}]`,ue="\\.",Rn="\\+",yn="\\?",Te="\\/",_n="(?=.)",Kt="[^/]",Ke=`(?:${Te}|$)`,Wt=`(?:^|${Te})`,We=`${ue}{1,2}${Ke}`,bn=`(?!${ue})`,En=`(?!${Wt}${We})`,xn=`(?!${ue}{0,1}${Ke})`,Cn=`(?!${We})`,wn=`[^.${Te}]`,Sn=`${Kt}*?`,jt={DOT_LITERAL:ue,PLUS_LITERAL:Rn,QMARK_LITERAL:yn,SLASH_LITERAL:Te,ONE_CHAR:_n,QMARK:Kt,END_ANCHOR:Ke,DOTS_SLASH:We,NO_DOT:bn,NO_DOTS:En,NO_DOT_SLASH:xn,NO_DOTS_SLASH:Cn,QMARK_NO_DOT:wn,STAR:Sn,START_ANCHOR:Wt},vn=F(I({},jt),{SLASH_LITERAL:`[${se}]`,QMARK:qt,STAR:`${qt}*?`,DOTS_SLASH:`${ue}{1,2}(?:[${se}]|$)`,NO_DOT:`(?!${ue})`,NO_DOTS:`(?!(?:^|[${se}])${ue}{1,2}(?:[${se}]|$))`,NO_DOT_SLASH:`(?!${ue}{0,1}(?:[${se}]|$))`,NO_DOTS_SLASH:`(?!${ue}{1,2}(?:[${se}]|$))`,QMARK_NO_DOT:`[^.${se}]`,START_ANCHOR:`(?:^|[${se}])`,END_ANCHOR:`(?:[${se}]|$)`}),Hn={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdLine truncated
/*!
* fill-range <https://github.com/jonschlinkert/fill-range>
*
* Copyright (c) 2014-present, Jon Schlinkert.
* Licensed under the MIT License.
*/
/*!
* is-number <https://github.com/jonschlinkert/is-number>
*
* Copyright (c) 2014-present, 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.
*/
return plugin;
}
};
-875
View File
@@ -1,875 +0,0 @@
#!/usr/bin/env node
/* eslint-disable */
//prettier-ignore
(()=>{var Lge=Object.create;var lS=Object.defineProperty;var Oge=Object.getOwnPropertyDescriptor;var Mge=Object.getOwnPropertyNames;var Kge=Object.getPrototypeOf,Uge=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 Hge=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},jge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mge(e))!Uge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Oge(e,n))||i.enumerable});return r};var ve=(r,e,t)=>(t=r!=null?Lge(Kge(r)):{},jge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var kK=I((nZe,PK)=>{PK.exports=xK;xK.sync=lfe;var SK=J("fs");function Afe(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 vK(r,e,t){return!r.isSymbolicLink()&&!r.isFile()?!1:Afe(e,t)}function xK(r,e,t){SK.stat(r,function(i,n){t(i,i?!1:vK(n,r,e))})}function lfe(r,e){return vK(SK.statSync(r),r,e)}});var TK=I((sZe,NK)=>{NK.exports=RK;RK.sync=cfe;var DK=J("fs");function RK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:FK(n,e))})}function cfe(r,e){return FK(DK.statSync(r),e)}function FK(r,e){return r.isFile()&&ufe(r,e)}function ufe(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 OK=I((aZe,LK)=>{var oZe=J("fs"),AI;process.platform==="win32"||global.TESTING_WINDOWS?AI=kK():AI=TK();LK.exports=SS;SS.sync=gfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}AI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function gfe(r,e){try{return AI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=I((AZe,GK)=>{var kg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),ffe=kg?";":":",KK=OK(),UK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),HK=(r,e)=>{let t=e.colon||ffe,i=r.match(/\//)||kg&&r.match(/\\/)?[""]:[...kg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=kg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kg?n.split(t):[""];return kg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},jK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=HK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(UK(r));let h=i[c],p=/^".*"$/.test(h)?h.slice(1,-1):h,d=MK.join(p,r),m=!p&&/^\.[\\\/]/.test(r)?r.slice(0,2)+d:d;u(l(m,c,0))}),l=(c,u,g)=>new Promise((h,p)=>{if(g===n.length)return h(a(u+1));let d=n[g];KK(c+d,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+d);else return h(c+d);return h(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},hfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=HK(r,e),s=[];for(let o=0;o<t.length;o++){let a=t[o],l=/^".*"$/.test(a)?a.slice(1,-1):a,c=MK.join(l,r),u=!l&&/^\.[\\\/]/.test(r)?r.slice(0,2)+c:c;for(let g=0;g<i.length;g++){let h=u+i[g];try{if(KK.sync(h,{pathExt:n}))if(e.all)s.push(h);else return h}catch{}}}if(e.all&&s.length)return s;if(e.nothrow)return null;throw UK(r)};GK.exports=jK;jK.sync=hfe});var JK=I((lZe,vS)=>{"use strict";var qK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=qK;vS.exports.default=qK});var XK=I((cZe,VK)=>{"use strict";var WK=J("path"),pfe=YK(),dfe=JK();function zK(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=pfe.sync(r.command,{path:t[dfe({env:t})],pathExt:e?WK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=WK.resolve(n?r.options.cwd:"",o)),o}function Cfe(r){return zK(r)||zK(r,!0)}VK.exports=Cfe});var ZK=I((uZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function mfe(r){return r=r.replace(xS,"^$1"),r}function Efe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=mfe;PS.exports.argument=Efe});var $K=I((gZe,_K)=>{"use strict";_K.exports=/^#!(.*)/});var tU=I((fZe,eU)=Line truncated
`,Tn=Ue(`\\
`,!1),ns=function(){return""},ss="\\",ut=Ue("\\",!1),wo=/^[\\$"`]/,At=Ve(["\\","$",'"',"`"],!1,!1),ln=function(C){return C},b="\\a",Nt=Ue("\\a",!1),pg=function(){return"a"},Ll="\\b",bp=Ue("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Ve(["E","e"],!1,!1),Pp=function(){return"\x1B"},j="\\f",Et=Ue("\\f",!1),yA=function(){return"\f"},zi="\\n",Ol=Ue("\\n",!1),ze=function(){return`
`},fa="\\r",dg=Ue("\\r",!1),OE=function(){return"\r"},kp="\\t",ME=Ue("\\t",!1),sr=function(){return" "},Ln="\\v",Ml=Ue("\\v",!1),Dp=function(){return"\v"},Ks=/^[\\'"?]/,ha=Ve(["\\","'",'"',"?"],!1,!1),cn=function(C){return String.fromCharCode(parseInt(C,16))},Ne="\\x",Cg=Ue("\\x",!1),Kl="\\u",Us=Ue("\\u",!1),Ul="\\U",wA=Ue("\\U",!1),mg=function(C){return String.fromCodePoint(parseInt(C,16))},Eg=/^[0-7]/,pa=Ve([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,tt=Ve([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="{}",Rp=Ue("{}",!1),Ca=function(){return"{}"},Hl="-",jl=Ue("-",!1),QA="+",ma=Ue("+",!1),Fp=".",KE=Ue(".",!1),Gl=function(C,Q,R){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+R.join(""))}},UE=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},Np=function(C){return{type:"variable",...C}},Yl=function(C){return{type:"variable",name:C}},Or=function(C){return C},HE="*",Hs=Ue("*",!1),js="/",Ig=Ue("/",!1),bA=function(C,Q,R){return{type:Q==="*"?"multiplication":"division",right:R}},D=function(C,Q){return Q.reduce((R,U)=>({left:R,...U}),C)},Y=function(C,Q,R){return{type:Q==="+"?"addition":"subtraction",right:R}},pe="$((",Le=Ue("$((",!1),ke="))",Je=Ue("))",!1),pt=function(C){return C},Xt="$(",Ea=Ue("$(",!1),D1=function(C){return C},Gs="${",yg=Ue("${",!1),Jb=":-",R1=Ue(":-",!1),F1=function(C,Q){return{name:C,defaultValue:Q}},Wb=":-}",N1=Ue(":-}",!1),T1=function(C){return{name:C,defaultValue:[]}},zb=":+",L1=Ue(":+",!1),O1=function(C,Q){return{name:C,alternativeValue:Q}},Vb=":+}",M1=Ue(":+}",!1),K1=function(C){return{name:C,alternativeValue:[]}},Xb=function(C){return{name:C}},U1="$",H1=Ue("$",!1),j1=function(C){return e.isGlobPattern(C)},G1=function(C){return C},Zb=/^[a-zA-Z0-9_]/,_b=Ve([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$b=function(){return Ie()},ql=/^[$@*?#a-zA-Z0-9_\-]/,jE=Ve(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),eS=/^[()}<>$|&; \t"']/,tS=Ve(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,GE=Ve(["<",">","&",";"," "," ",'"',"'"],!1,!1),Jl=/^[ \t]/,wg=Ve([" "," "],!1,!1),f=0,E=0,w=[{line:1,column:1}],k=0,L=[],T=0,ee;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 Ie(){return r.substring(E,f)}function Oe(){return ii(E,f)}function it(C,Q){throw Q=Q!==void 0?Q:ii(E,f),On([Ii(C)],r.substring(E,f),Q)}function at(C,Q){throw Q=Q!==void 0?Q:ii(E,f),yi(C,Q)}function Ue(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function Ve(C,Q,R){return{type:"class",parts:C,inverted:Q,ignoreCase:R}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function Ii(C){return{type:"other",description:C}}function un(C){var Q=w[C],R;if(Q)return Q;for(R=C-1;!w[R];)R--;for(Q=w[R],Q={line:Q.line,column:Q.column};R<C;)r.charCodeAt(R)===10?(Q.line++,Q.column=1):Q.column++,R++;return w[C]=Q,Q}function ii(C,Q){var R=un(C),U=un(Q);return{start:{offset:C,line:R.line,column:R.column},end:{offset:Q,line:U.line,column:U.column}}}function Be(C){f<k||(f>k&&(k=f,L=[]),L.push(C))}function yi(C,Q){return new $l(C,null,null,Q)}function On(C,Q,R){return new $l($l.buildMessage(C,Q),C,Q,R)}function Ia(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=vr(),R===t&&(R=null),R!==t?(E=C,Q=s(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function vr(){var C,Q,R,U,le;if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U!==t?(le=mge(),le===t&&(le=null),le!==t?(E=C,Q=o(Q,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;if(C===t)if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U===t&&(U=null),U!==t?(E=C,Q=a(Q,U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function mge(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=vr(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=l(R),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Y1(){var C;return r.charCodeAt(f)===59?(C=c,f++):(C=t,T===0&&Be(u)),C===t&&(r.charCodeAt(f)===38?(C=g,f++):(C=t,T===0&&Be(h))),C}function iS(){var C,Q,R;return C=f,Q=q1(),Q!==t?(R=Ege(),R===t&&(R=null),R!==t?(E=C,Q=p(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function Ege(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=Ige(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=iS(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=d(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function Ige(){var C;return r.substr(f,2)===m?(C=m,f+=2):(C=t,T===0&&Be(y)),C===t&&(r.substr(f,2)===B?(C=B,f+=2):(C=t,T===0&&Be(S))),C}function q1(){var C,Q,R;return C=f,Q=Bge(),Q!==t?(R=yge(),R===t&&(R=null),R!==t?(E=C,Q=P(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function yge(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=wge(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=q1(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),Line 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),BU.repeat(" ",e)+i+a+s+`
`+BU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`:
`+t)),i};QU.exports=HS});var ni=I((OZe,vU)=>{"use strict";var SU=Ng(),qfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jfe=["scalar","sequence","mapping"];function Wfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qfe.indexOf(t)===-1)throw new SU('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=Wfe(e.styleAliases||null),Jfe.indexOf(this.kind)===-1)throw new SU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}vU.exports=zfe});var nc=I((MZe,PU)=>{"use strict";var xU=ic(),pI=Ng(),Vfe=ni();function jS(r,e,t){var i=[];return r.include.forEach(function(n){t=jS(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 Xfe(){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 Tg(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 pI("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=jS(this,"implicit",[]),this.compiledExplicit=jS(this,"explicit",[]),this.compiledTypeMap=Xfe(this.compiledImplicit,this.compiledExplicit)}Tg.DEFAULT=null;Tg.create=function(){var e,t;switch(arguments.length){case 1:e=Tg.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new pI("Wrong number of arguments for Schema.create function")}if(e=xU.toArray(e),t=xU.toArray(t),!e.every(function(i){return i instanceof Tg}))throw new pI("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(i){return i instanceof Vfe}))throw new pI("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new Tg({include:e,explicit:t})};PU.exports=Tg});var DU=I((KZe,kU)=>{"use strict";var Zfe=ni();kU.exports=new Zfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var FU=I((UZe,RU)=>{"use strict";var _fe=ni();RU.exports=new _fe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var TU=I((HZe,NU)=>{"use strict";var $fe=ni();NU.exports=new $fe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var dI=I((jZe,LU)=>{"use strict";var ehe=nc();LU.exports=new ehe({explicit:[DU(),FU(),TU()]})});var MU=I((GZe,OU)=>{"use strict";var the=ni();function rhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ihe(){return null}function nhe(r){return r===null}OU.exports=new the("tag:yaml.org,2002:null",{kind:"scalar",resolve:rhe,construct:ihe,predicate:nhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var UU=I((YZe,KU)=>{"use strict";var she=ni();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 ahe(r){return r==="true"||r==="True"||r==="TRUE"}function Ahe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}KU.exports=new she("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ohe,construct:ahe,predicate:Ahe,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 jU=I((qZe,HU)=>{"use strict";var lhe=ic(),che=ni();function uhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ghe(r){return 48<=r&&r<=55}function fhe(r){return 48<=r&&r<=57}function hhe(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(!uhe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}for(;t<e;t++)if(n=r[t],n!=="_"){if(!ghe(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(!fhe(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 Fhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;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 Nhe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,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),sc?sc.from?sc.from(a):new sc(a):a}function The(r){var e="",t=0,i,n,s=r.length,o=qS;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 Lhe(r){return sc&&sc.isBuffer(r)}t2.exports=new Rhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Fhe,construct:Nhe,predicate:Lhe,represent:The})});var n2=I(($Ze,i2)=>{"use strict";var Ohe=ni(),Mhe=Object.prototype.hasOwnProperty,Khe=Object.prototype.toString;function Uhe(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,Khe.call(n)!=="[object Object]")return!1;for(s in n)if(Mhe.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 Hhe(r){return r!==null?r:[]}i2.exports=new Ohe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Uhe,construct:Hhe})});var o2=I((e_e,s2)=>{"use strict";var jhe=ni(),Ghe=Object.prototype.toString;function Yhe(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],Ghe.call(i)!=="[object Object]"||(n=Object.keys(i),n.length!==1))return!1;s[e]=[n[0],i[n[0]]]}return!0}function qhe(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}s2.exports=new jhe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Yhe,construct:qhe})});var A2=I((t_e,a2)=>{"use strict";var Jhe=ni(),Whe=Object.prototype.hasOwnProperty;function zhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Whe.call(t,e)&&t[e]!==null)return!1;return!0}function Vhe(r){return r!==null?r:{}}a2.exports=new Jhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zhe,construct:Vhe})});var Lg=I((r_e,l2)=>{"use strict";var Xhe=nc();l2.exports=new Xhe({include:[YS()],implicit:[ZU(),$U()],explicit:[r2(),n2(),o2(),A2()]})});var u2=I((i_e,c2)=>{"use strict";var Zhe=ni();function _he(){return!0}function $he(){}function epe(){return""}function tpe(r){return typeof r>"u"}c2.exports=new Zhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var f2=I((n_e,g2)=>{"use strict";var rpe=ni();function ipe(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 npe(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 spe(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]"}g2.exports=new rpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var d2=I((s_e,p2)=>{"use strict";var CI;try{h2=J,CI=h2("esprima")}catch{typeof window<"u"&&(CI=window.esprima)}var h2,ape=ni();function Ape(r){if(r===null)return!1;try{var e="("+r+")",t=CI.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 lpe(r){var e="("+r+")",t=CI.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 cpe(r){return r.toString()}function upe(r){return Object.prototype.toString.call(r)==="[object Function]"}p2.exports=new ape("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ape,construct:lpe,predicate:upe,represent:cpe})});var Zp=I((a_e,m2)=>{"use strict";var C2=nc();m2.exports=C2.DEFAULT=new C2({include:[Lg()],explicit:[u2(),f2(),d2()]})});var O2=I((A_e,_p)=>{"use strict";var Qa=ic(),b2=Ng(),gpe=bU(),S2=Lg(),fpe=Zp(),kA=Object.prototype.hasOwnProperty,mI=1,v2=2,x2=3,EI=4,JS=1,hpe=2,E2=3,ppe=/[\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 ype(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var D2=new Array(256),R2=new Array(256);for(oc=0;oc<256;oc++)D2[oc]=y2(oc)?1:0,R2[oc]=y2(oc);var oc;function wpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fpe,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 F2(r,e){return new b2(e,new gpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw F2(r,e)}function II(r,e){r.onWarning&&r.onWarning.call(null,F2(r,e))}var w2={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&&II(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],P2.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&&gt(e,'there is a previously declared suffix for "'+n+'" tag handle'),k2.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function PA(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 ppe.test(a)&&gt(r,"the stream contains non-printable characters");r.result+=a}}function B2(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],kA.call(e,s)||(e[s]=t[s],i[s]=!0)}function Mg(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"&&I2(n[l])==="[object Object]"&&(n[l]="[object Object]");if(typeof n=="object"&&I2(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)B2(r,e,s[l],t);else B2(r,e,s,t);else!r.json&&!kA.call(t,n)&&kA.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 WS(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 Jr(r,e,t){for(var i=0,n=r.input.charCodeAt(r.position);n!==0;){for(;ac(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(vo(n))for(WS(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&&II(r,"deficient indentation"),i}function yI(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||hn(t)))}function zS(r,e){e===1?r.result+=" ":e>1&&(r.result+=Qa.repeat(`
`,e-1))}function Bpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,h=r.result,p;if(p=r.input.charCodeAt(r.position),hn(p)||Og(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=r.input.charCodeAt(r.position+1),hn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;p!==0;){if(p===58){if(n=r.input.charCodeAt(r.position+1),hn(n)||t&&Og(n))break}else if(p===35){if(i=r.input.charCodeAt(r.position-1),hn(i))break}else{if(r.position===r.lineStart&&yI(r)||t&&Og(p))break;if(vo(p))if(l=r.line,c=r.lineStart,u=r.lineIndent,Jr(r,!1,-1),r.lineIndent>=e){a=!0,p=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(PA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),ac(p)||(o=r.position+1),p=r.input.charCodeAt(++r.position)}return PA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=h,!1)}function Qpe(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(PA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(PA(r,i,n,!0),zS(r,Jr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&yI(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 bpe(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 PA(r,t,r.position,!0),r.position++,!0;if(a===92){if(PA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))Jr(r,!1,e);else if(a<256&&D2[a])r.result+=R2[a],r.position++;else if((o=Epe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=ype(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else vo(a)?(PA(r,t,i,!0),zS(r,Jr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&yI(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 Spe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,h={},p,d,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),d=p=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),hn(a)&&(c=u=!0,r.position++,Jr(r,!0,e))),i=r.line,Kg(r,e,mI,!1,!0),d=r.tag,p=r.result,Jr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),Jr(r,!0,e),Kg(r,e,mI,!1,!0),m=r.result),g?Mg(r,s,h,d,p,m):c?s.push(Mg(r,null,h,d,p,m)):s.push(p),Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function vpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?E2:hpe:gt(r,"repeat of a chomping mode identifier");else if((u=Ipe(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(ac(g)){do g=r.input.charCodeAt(++r.position);while(ac(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndent<a)&&g===32;)r.lineIndent++,g=r.input.charCodeAt(++r.position);if(!o&&r.lineIndent>a&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndent<a){n===E2?r.result+=Qa.repeat(`
`,s?1+l:l):n===JS&&s&&(r.result+=`
`);break}for(i?ac(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;!vo(g)&&g!==0;)g=r.input.charCodeAt(++r.position);PA(r,t,r.position,!1)}return!0}function Q2(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),!hn(o)));){if(a=!0,r.position++,Jr(r,!0,-1)&&r.lineIndent<=e){s.push(null),l=r.input.charCodeAt(r.position);continue}if(t=r.line,Kg(r,e,x2,!1,!0),s.push(r.result),Jr(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 xpe(r,e,t){var i,n,s,o,a=r.tag,l=r.anchor,c={},u={},g=null,h=null,p=null,d=!1,m=!1,y;for(r.anchor!==null&&(r.anchorMap[r.anchor]=c),y=r.input.charCodeAt(r.position);y!==0;){if(i=r.input.charCodeAt(r.position+1),s=r.line,o=r.position,(y===63||y===58)&&hn(i))y===63?(d&&(Mg(r,c,u,g,h,null),g=h=p=null),m=!0,d=!0,n=!0):d?(d=!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,y=i;else if(Kg(r,t,v2,!1,!0))if(r.line===s){for(y=r.input.charCodeAt(r.position);ac(y);)y=r.input.charCodeAt(++r.position);if(y===58)y=r.input.charCodeAt(++r.position),hn(y)||gt(r,"a whitespace character is expected after the key-value separator within a block mapping"),d&&(Mg(r,c,u,g,h,null),g=h=p=null),m=!0,d=!1,n=!1,g=r.tag,h=r.result;else if(m)gt(r,"can not read an implicit mapping pair; a colon is missed");else return r.tag=a,r.anchor=l,!0}else if(m)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)&&(Kg(r,e,EI,!0,n)&&(d?h=r.result:p=r.result),d||(Mg(r,c,u,g,h,p,s,o),g=h=p=null),Jr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndent<e)break}return d&&Mg(r,c,u,g,h,null),m&&(r.tag=a,r.anchor=l,r.kind="mapping",r.result=c),m}function Ppe(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&&!hn(o);)o===33&&(i?gt(r,"tag suffix cannot contain exclamation marks"):(n=r.input.slice(e-1,r.position+1),P2.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),Cpe.test(s)&&gt(r,"tag suffix cannot contain flow indicator characters")}return s&&!k2.test(s)&&gt(r,"tag name cannot contain such characters: "+s),t?r.tag=s:kA.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 kpe(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&&!hn(t)&&!Og(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 Dpe(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&&!hn(i)&&!Og(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),kA.call(r.anchorMap,t)||gt(r,'unidentified alias "'+t+'"'),r.result=r.anchorMap[t],Jr(r,!0,-1),!0}function Kg(r,e,t,i,n){var s,o,a,l=1,c=!1,u=!1,g,h,p,d,m;if(r.listener!==null&&r.listener("open",r),r.tag=null,r.anchor=null,r.kind=null,r.result=null,s=o=a=EI===t||x2===t,i&&Jr(r,!0,-1)&&(c=!0,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)),l===1)for(;Ppe(r)||kpe(r);)Jr(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||EI===t)&&(mI===t||v2===t?d=e:d=e+1,m=r.position-r.lineStart,l===1?a&&(Q2(r,m)||xpe(r,m,d))||Spe(r,d)?u=!0:(o&&vpe(r,d)||Qpe(r,d)||bpe(r,d)?u=!0:Dpe(r)?(u=!0,(r.tag!==null||r.anchor!==null)&&gt(r,"alias node should not have any properties")):Bpe(r,d,mI===t)&&(u=!0,r.tag===null&&(r.tag="?")),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):l===0&&(u=a&&Q2(r,m))),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,h=r.implicitTypes.length;g<h;g+=1)if(p=r.implicitTypes[g],p.resolve(r.result)){r.result=p.construct(r.result),r.tag=p.tag Line truncated
`),r.charCodeAt(0)===65279&&(r=r.slice(1)));var t=new wpe(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;)Rpe(t);return t.documents}function T2(r,e,t){e!==null&&typeof e=="object"&&typeof t>"u"&&(t=e,e=null);var i=N2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n<s;n+=1)e(i[n])}function L2(r,e){var t=N2(r,e);if(t.length!==0){if(t.length===1)return t[0];throw new b2("expected a single document in the stream, but found more")}}function Fpe(r,e,t){return typeof e=="object"&&e!==null&&typeof t>"u"&&(t=e,e=null),T2(r,e,Qa.extend({schema:S2},t))}function Npe(r,e){return L2(r,Qa.extend({schema:S2},e))}_p.exports.loadAll=T2;_p.exports.load=L2;_p.exports.safeLoadAll=Fpe;_p.exports.safeLoad=Npe});var oH=I((l_e,_S)=>{"use strict";var ed=ic(),td=Ng(),Tpe=Zp(),Lpe=Lg(),q2=Object.prototype.toString,J2=Object.prototype.hasOwnProperty,Ope=9,$p=10,Mpe=13,Kpe=32,Upe=33,Hpe=34,W2=35,jpe=37,Gpe=38,Ype=39,qpe=42,z2=44,Jpe=45,V2=58,Wpe=61,zpe=62,Vpe=63,Xpe=64,X2=91,Z2=93,Zpe=96,_2=123,_pe=124,$2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var $pe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ede(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&&J2.call(l.styleAliases,a)&&(a=l.styleAliases[a]),t[o]=a;return t}function M2(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 td("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+t+ed.repeat("0",i-e.length)+e}function tde(r){this.schema=r.schema||Tpe,this.indent=Math.max(1,r.indent||2),this.noArrayIndent=r.noArrayIndent||!1,this.skipInvalid=r.skipInvalid||!1,this.flowLevel=ed.isNothing(r.flowLevel)?-1:r.flowLevel,this.styleMap=ede(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 K2(r,e){for(var t=ed.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 VS(r,e){return`
`+ed.repeat(" ",r.indent*e)}function rde(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 ZS(r){return r===Kpe||r===Ope}function Ug(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 ide(r){return Ug(r)&&!ZS(r)&&r!==65279&&r!==Mpe&&r!==$p}function U2(r,e){return Ug(r)&&r!==65279&&r!==z2&&r!==X2&&r!==Z2&&r!==_2&&r!==$2&&r!==V2&&(r!==W2||e&&ide(e))}function nde(r){return Ug(r)&&r!==65279&&!ZS(r)&&r!==Jpe&&r!==Vpe&&r!==V2&&r!==z2&&r!==X2&&r!==Z2&&r!==_2&&r!==$2&&r!==W2&&r!==Gpe&&r!==qpe&&r!==Upe&&r!==_pe&&r!==Wpe&&r!==zpe&&r!==Ype&&r!==Hpe&&r!==jpe&&r!==Xpe&&r!==Zpe}function eH(r){var e=/^\n* /;return e.test(r)}var tH=1,rH=2,iH=3,nH=4,wI=5;function sde(r,e,t,i,n){var s,o,a,l=!1,c=!1,u=i!==-1,g=-1,h=nde(r.charCodeAt(0))&&!ZS(r.charCodeAt(r.length-1));if(e)for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}else{for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),o===$p)l=!0,u&&(c=c||s-g-1>i&&r[g+1]!==" ",g=s);else if(!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?h&&!n(r)?tH:rH:t>9&&eH(r)?wI:c?nH:iH}function ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$pe.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 rde(r,l)}switch(sde(e,o,r.indent,s,a)){case tH:return e;case rH:return"'"+e.replace(/'/g,"''")+"'";case iH:return"|"+H2(e,r.indent)+j2(K2(e,n));case nH:return">"+H2(e,r.indent)+j2(K2(ade(e,s),n));case wI:return'"'+Ade(e,s)+'"';default:throw new td("impossible error: invalid scalar style")}}()}function H2(r,e){var t=eH(r)?String(e):"",i=r[r.length-1]===`
`,n=i&&(r[r.length-2]===`
`||r===`
`),s=n?"+":i?"":"-";return t+s+`
`}function j2(r){return r[r.length-1]===`
`?r.slice(0,-1):r}function ade(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(`
`);return c=c!==-1?c:r.length,t.lastIndex=c,G2(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!==""?`
`:"")+G2(l,e),n=s}return i}function G2(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 Ade(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+=M2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Ug(t)?r[s]:n||M2(t)}return e}function lde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s<o;s+=1)Ac(r,e,t[s],!1,!1)&&(s!==0&&(i+=","+(r.condenseFlow?"":" ")),i+=r.dump);r.tag=n,r.dump="["+i+"]"}function cde(r,e,t,i){var n="",s=r.tag,o,a;for(o=0,a=t.length;o<a;o+=1)Ac(r,e+1,t[o],!0,!0)&&((!i||o!==0)&&(n+=VS(r,e)),r.dump&&$p===r.dump.charCodeAt(0)?n+="-":n+="- ",n+=r.dump);r.tag=s,r.dump=n||"[]"}function ude(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],Ac(r,e,l,!1,!1)&&(r.dump.length>1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ac(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,h;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new td("sortKeys must be a boolean or a function");for(a=0,l=o.length;a<l;a+=1)h="",(!i||a!==0)&&(h+=VS(r,e)),c=o[a],u=t[c],Ac(r,e+1,c,!0,!0,!0)&&(g=r.tag!==null&&r.tag!=="?"||r.dump&&r.dump.length>1024,g&&(r.dump&&$p===r.dump.charCodeAt(0)?h+="?":h+="? "),h+=r.dump,g&&(h+=VS(r,e)),Ac(r,e+1,u,!0,g)&&(r.dump&&$p===r.dump.charCodeAt(0)?h+=":":h+=": ",h+=r.dump,n+=h));r.tag=s,r.dump=n||"{}"}function Y2(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,q2.call(a.represent)==="[object Function]")i=a.represent(e,l);else if(J2.call(a.represent,l))i=a.represent[l](e,l);else throw new td("!<"+a.tag+'> tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ac(r,e,t,i,n,s){r.tag=null,r.dump=t,Y2(r,t,!1)||Y2(r,t,!0);var o=q2.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?(gde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ude(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?(cde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lde(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 td("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n<s;n+=1)e.duplicates.push(t[i[n]]);e.usedDuplicates=new Array(s)}function XS(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)XS(r[n],e,t);else for(i=Object.keys(r),n=0,s=i.length;n<s;n+=1)XS(r[i[n]],e,t)}function sH(r,e){e=e||{};var t=new tde(e);return t.noRefs||fde(r,t),Ac(t,0,r,!0,!0)?t.dump+`
`:""}function hde(r,e){return sH(r,ed.extend({schema:Lpe},e))}_S.exports.dump=sH;_S.exports.safeDump=hde});var AH=I((c_e,Rr)=>{"use strict";var BI=O2(),aH=oH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Rr.exports.Type=ni();Rr.exports.Schema=nc();Rr.exports.FAILSAFE_SCHEMA=dI();Rr.exports.JSON_SCHEMA=GS();Rr.exports.CORE_SCHEMA=YS();Rr.exports.DEFAULT_SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_FULL_SCHEMA=Zp();Rr.exports.load=BI.load;Rr.exports.loadAll=BI.loadAll;Rr.exports.safeLoad=BI.safeLoad;Rr.exports.safeLoadAll=BI.safeLoadAll;Rr.exports.dump=aH.dump;Rr.exports.safeDump=aH.safeDump;Rr.exports.YAMLException=Ng();Rr.exports.MINIMAL_SCHEMA=dI();Rr.exports.SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_SCHEMA=Zp();Rr.exports.scan=QI("scan");Rr.exports.parse=QI("parse");Rr.exports.compose=QI("compose");Rr.exports.addConstructor=QI("addConstructor")});var cH=I((u_e,lH)=>{"use strict";var pde=AH();lH.exports=pde});var gH=I((g_e,uH)=>{"use strict";function dde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function lc(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,lc)}dde(lc,Error);lc.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,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}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 Cde(r,e){e=e!==void 0?e:{};var t={},i={Start:Us},n=Us,s=function(D){return[].concat(...D)},o="-",a=sr("-",!1),l=function(D){return D},c=function(D){return Object.assign({},...D)},u="#",g=sr("#",!1),h=Ml(),p=function(){return{}},d=":",m=sr(":",!1),y=function(D,Y){return{[D]:Y}},B=",",S=sr(",",!1),P=function(D,Y){return Y},F=function(D,Y,pe){return Object.assign({},...[D].concat(Y).map(Le=>({[Le]:pe})))},H=function(D){return D},q=function(D){return D},_=Ks("correct indentation"),X=" ",W=sr(" ",!1),Z=function(D){return D.length===bA*Ig},A=function(D){return D.length===(bA+1)*Ig},ne=function(){return bA++,!0},ue=function(){return bA--,!0},te=function(){return dg()},O=Ks("pseudostring"),N=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ce=Ln(["\r",`
`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),he=/^[^\r\n\t ,\][{}:#"']/,Pe=Ln(["\r",`
`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),De=function(){return dg().replace(/^ *| *$/g,"")},Re="--",se=sr("--",!1),Ae=/^[a-zA-Z\/0-9]/,ye=Ln([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),ge=/^[^\r\n\t :,]/,oe=Ln(["\r",`
`," "," ",":",","],!0,!1),Ye="null",ie=sr("null",!1),G=function(){return null},fe="true",re=sr("true",!1),de=function(){return!0},Ze="false",vt=sr("false",!1),mt=function(){return!1},Lr=Ks("string"),ti='"',ui=sr('"',!1),gr=function(){return""},gi=function(D){return D},ri=function(D){return D.join("")},Ms=/^[^"\\\0-\x1F\x7F]/,fr=Ln(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',rs=sr('\\"',!1),ua=function(){return'"'},CA="\\\\",gg=sr("\\\\",!1),is=function(){return"\\"},mA="\\/",ga=sr("\\/",!1),wp=function(){return"/"},EA="\\b",IA=sr("\\b",!1),yr=function(){return"\b"},Nl="\\f",fg=sr("\\f",!1),Io=function(){return"\f"},hg="\\n",Bp=sr("\\n",!1),Qp=function(){return`
`},Sr="\\r",Ri=sr("\\r",!1),yo=function(){return"\r"},Nn="\\t",ae=sr("\\t",!1),yt=function(){return" "},Tl="\\u",Tn=sr("\\u",!1),ns=function(D,Y,pe,Le){return String.fromCharCode(parseInt(`0x${D}${Y}${pe}${Le}`))},ss=/^[0-9a-fA-F]/,ut=Ln([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,ln=Ln([" "," "],!1,!1),b=Ks("white space"),Nt=/^[ \t\n\r]/,pg=Ln([" "," ",`
`,"\r"],!1,!1),Ll=`\r
`,bp=sr(`\r
`,!1),Sp=`
`,vp=sr(`
`,!1),xp="\r",Pp=sr("\r",!1),j=0,Et=0,yA=[{line:1,column:1}],zi=0,Ol=[],ze=0,fa;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 dg(){return r.substring(Et,j)}function OE(){return cn(Et,j)}function kp(D,Y){throw Y=Y!==void 0?Y:cn(Et,j),Kl([Ks(D)],r.substring(Et,j),Y)}function ME(D,Y){throw Y=Y!==void 0?Y:cn(Et,j),Cg(D,Y)}function sr(D,Y){return{type:"literal",text:D,ignoreCase:Y}}function Ln(D,Y,pe){return{type:"class",parts:D,inverted:Y,ignoreCase:pe}}function Ml(){return{type:"any"}}function Dp(){return{type:"end"}}function Ks(D){return{type:"other",description:D}}function ha(D){var Y=yA[D],pe;if(Y)return Y;for(pe=D-1;!yA[pe];)pe--;for(Y=yA[pe],Y={line:Y.line,column:Y.column};pe<D;)r.charCodeAt(pe)===10?(Y.line++,Y.column=1):Y.column++,pe++;return yA[D]=Y,Y}function cn(D,Y){var pe=ha(D),Le=ha(Y);return{start:{offset:D,line:pe.line,column:pe.column},end:{offset:Y,line:Le.line,column:Le.column}}}function Ne(D){j<zi||(j>zi&&(zi=j,Ol=[]),Ol.push(D))}function Cg(D,Y){return new lc(D,null,null,Y)}function Kl(D,Y,pe){return new lc(lc.buildMessage(D,Y),D,Y,pe)}function Us(){var D;return D=mg(),D}function Ul(){var D,Y,pe;for(D=j,Y=[],pe=wA();pe!==t;)Y.push(pe),pe=wA();return Y!==t&&(Et=D,Y=s(Y)),D=Y,D}function wA(){var D,Y,pe,Le,ke;return D=j,Y=da(),Y!==t?(r.charCodeAt(j)===45?(pe=o,j++):(pe=t,ze===0&&Ne(a)),pe!==t?(Le=Or(),Le!==t?(ke=pa(),ke!==t?(Et=D,Y=l(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D}function mg(){var D,Y,pe;for(D=j,Y=[],pe=Eg();pe!==t;)Y.push(pe),pe=Eg();return Y!==t&&(Et=D,Y=c(Y)),D=Y,D}function Eg(){var D,Y,pe,Le,ke,Je,pt,Xt,Ea;if(D=j,Y=Or(),Y===t&&(Y=null),Y!==t){if(pe=j,r.charCodeAt(j)===35?(Le=u,j++):(Le=t,ze===0&&Ne(g)),Le!==t){if(ke=[],Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t),Je!==t)for(;Je!==t;)ke.push(Je),Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t);else ke=t;ke!==t?(Le=[Le,ke],pe=Le):(j=pe,pe=t)}else j=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Le=[],ke=Hs(),ke!==t)for(;ke!==t;)Le.push(ke),ke=Hs();else Le=t;Le!==t?(Et=D,Y=p(),D=Y):(j=D,D=t)}else j=D,D=t}else j=D,D=t;if(D===t&&(D=j,Y=da(),Y!==t?(pe=Rp(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=da(),Y!==t?(pe=Ca(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))){if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t)if(Le=Or(),Le!==t)if(ke=jl(),ke!==t){if(Je=[],pt=Hs(),pt!==t)for(;pt!==t;)Je.push(pt),pt=Hs();else Je=t;Je!==t?(Et=D,Y=y(pe,ke),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;else j=D,D=t;else j=D,D=t;if(D===t)if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t){if(Le=[],ke=j,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t),ke!==t)for(;ke!==t;)Le.push(ke),ke=j,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t);else Le=t;Le!==t?(ke=Or(),ke===t&&(ke=null),ke!==t?(r.charCodeAt(j)===58?(Je=d,j++):(Je=t,ze===0&&Ne(m)),Je!==t?(pt=Or(),pt===t&&(pt=null),pt!==t?(Xt=pa(),Xt!==t?(Et=D,Y=F(pe,Le,Xt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)}else j=D,D=t;else j=D,D=t}return D}function pa(){var D,Y,pe,Le,ke,Je,pt;if(D=j,Y=j,ze++,pe=j,Le=js(),Le!==t?(ke=tt(),ke!==t?(r.charCodeAt(j)===45?(Je=o,j++):(Je=t,ze===0&&Ne(a)),Je!==t?(pt=Or(),pt!==t?(Le=[Le,ke,Je,pt],pe=Le):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t),ze--,pe!==t?(j=Y,Y=void 0):Y=t,Y!==t?(pe=Hs(),pe!==t?(Le=Bo(),Le!==t?(ke=Ul(),ke!==t?(Je=BA(),Je!==t?(Et=D,Y=H(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=js(),Y!==t?(pe=Bo(),pe!==t?(Le=mg(),Le!==t?(ke=BA(),ke!==t?(Et=D,Y=H(Le),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))if(D=j,Y=Hl(),Y!==t){if(pe=[],Le=Hs(),Le!==t)for(;Le!==t;)pe.push(Le),Le=Hs();else pe=t;pe!==t?(Et=D,Y=q(Y),D=Y):(j=D,D=t)}else j=D,D=t;return D}function da(){var D,Y,pe;for(ze++,D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=Z(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),ze--,D===t&&(Y=t,ze===0&&Ne(_)),D}function tt(){var D,Y,pe;for(DLine 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 d=this.positiveInteger();return{type:"GroupBackReference",value:d}},r.prototype.characterClassEscape=function(){var d,m=!1;switch(this.popChar()){case"d":d=u;break;case"D":d=u,m=!0;break;case"s":d=h;break;case"S":d=h,m=!0;break;case"w":d=g;break;case"W":d=g,m=!0;break}return a(d),{type:"Set",value:d,complement:m}},r.prototype.controlEscapeAtom=function(){var d;switch(this.popChar()){case"f":d=n("\f");break;case"n":d=n(`
`);break;case"r":d=n("\r");break;case"t":d=n(" ");break;case"v":d=n("\v");break}return a(d),{type:"Character",value:d}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var d=this.popChar();if(/[a-zA-Z]/.test(d)===!1)throw Error("Invalid ");var m=d.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},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 d=this.popChar();return{type:"Character",value:n(d)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case`
`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var d=this.popChar();return{type:"Character",value:n(d)}}},r.prototype.characterClass=function(){var d=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var S=this.classAtom(),P=S.type==="Character";if(P){if(S.value<y.value)throw Error("Range out of order in character class");d.push({from:y.value,to:S.value})}else s(y.value,d),d.push(n("-")),s(S.value,d)}else s(y.value,d)}return this.consumeChar("]"),{type:"Set",complement:m,value:d}},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 d=!0;switch(this.consumeChar("("),this.peekChar(0)){case"?":this.consumeChar("?"),this.consumeChar(":"),d=!1;break;default:this.groupIdx++;break}var m=this.disjunction();this.consumeChar(")");var y={type:"Group",capturing:d,value:m};return d&&(y.idx=this.groupIdx),y},r.prototype.positiveInteger=function(){var d=this.popChar();if(i.test(d)===!1)throw Error("Expecting a positive integer");for(;t.test(this.peekChar(0));)d+=this.popChar();return parseInt(d,10)},r.prototype.integerIncludingZero=function(){var d=this.popChar();if(t.test(d)===!1)throw Error("Expecting an integer");for(;t.test(this.peekChar(0));)d+=this.popChar();return parseInt(d,10)},r.prototype.patternCharacter=function(){var d=this.popChar();switch(d){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(d)}}},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(d){switch(d===void 0&&(d=0),this.peekChar(d)){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 d=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(d)}},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(d){for(var m="",y=0;y<d;y++){var B=this.popChar();if(e.test(B)===!1)throw Error("Expecting a HexDecimal digits");m+=B}var S=parseInt(m,16);return{type:"Character",value:S}},r.prototype.peekChar=function(d){return d===void 0&&(d=0),this.input[this.idx+d]},r.prototype.popChar=function(){var d=this.peekChar(0);return this.consumeChar(),d},r.prototype.consumeChar=function(d){if(d!==void 0&&this.input[this.idx]!==d)throw Error("Expected: '"+d+"' 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(d){return{begin:d,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(d){return d.charCodeAt(0)}function s(d,m){d.length!==void 0?d.forEach(function(y){m.push(y)}):m.push(d)}function o(d,m){if(d[m]===!0)throw"duplicate flag "+m;d[m]=!0}function a(d){if(d===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 h=[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 p(){}return p.prototype.visitChildren=function(d){for(var m in d){var y=d[m];d.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},p.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},p.prototype.visitPattern=function(d){},p.prototype.visitFlags=function(d){},p.prototype.visitDisjunction=function(d){},p.prototype.visitAlternative=function(d){},p.prototype.visitStartAnchor=function(d){},p.prototype.visitEndAnchor=function(d){},p.prototype.visitWordBoundary=function(d){},p.prototype.visitNonWordBoundary=function(d){},p.prototype.visitLookahead=function(d){},p.prototype.visitNegativeLookahead=function(d){},p.prototype.visitCharacter=function(d){},p.prototype.visitSet=function(d){},p.prototype.visitGroup=function(d){},p.prototype.visitGroupBackReference=function(d){},p.prototype.visitQuantifier=function(d){},{RegExpParser:r,BaseRegExpVisitor:p,VERSION:"0.5.0"}})});var ey=I(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var xEe=_I(),$I={},PEe=new xEe.RegExpParser;function kEe(r){var e=r.toString();if($I.hasOwnProperty(e))return $I[e];var t=PEe.pattern(e);return $I[e]=t,t}Xg.getRegExpAst=kEe;function DEe(){$I={}}Xg.clearRegExpParserCache=DEe});var zG=I(mn=>{"use strict";var REe=mn&&mn.__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(mn,"__esModule",{value:!0});mn.canMatchCharCode=mn.firstCharOptimizedIndices=mn.getOptimizedStartCodesIndices=mn.failedOptimizationPrefixMsg=void 0;var qG=_I(),us=Kt(),JG=ey(),Pa=Rv(),WG="Complement Sets are not supported for first char optimization";mn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations:
`;function FEe(r,e){e===void 0&&(e=!1);try{var t=(0,JG.getRegExpAst)(r),i=ry(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===WG)e&&(0,us.PRINT_WARNING)(""+mn.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,us.PRINT_ERROR)(mn.failedOptimizationPrefixMsg+`
`+(" Failed parsing: < "+r.toString()+` >
`)+(" Using the regexp-to-ast library version: "+qG.VERSION+`
`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}mn.getOptimizedStartCodesIndices=FEe;function ry(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i<r.value.length;i++)ry(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":ty(o.value,e,t);break;case"Set":if(o.complement===!0)throw Error(WG);(0,us.forEach)(o.value,function(c){if(typeof c=="number")ty(c,e,t);else{var u=c;if(t===!0)for(var g=u.from;g<=u.to;g++)ty(g,e,t);else{for(var g=u.from;g<=u.to&&g<Pa.minOptimizationVal;g++)ty(g,e,t);if(u.to>=Pa.minOptimizationVal)for(var h=u.from>=Pa.minOptimizationVal?u.from:Pa.minOptimizationVal,p=u.to,d=(0,Pa.charCodeToOptimizedIndex)(h),m=(0,Pa.charCodeToOptimizedIndex)(p),y=d;y<=m;y++)e[y]=y}}});break;case"Group":ry(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"&&Dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,us.values)(e)}mn.firstCharOptimizedIndices=ry;function ty(r,e,t){var i=(0,Pa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&NEe(r,e)}function NEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Pa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Pa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function YG(r,e){return(0,us.find)(r.value,function(t){if(typeof t=="number")return(0,us.contains)(e,t);var i=t;return(0,us.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,us.isArray)(r.value)?(0,us.every)(r.value,Dv):Dv(r.value):!1}var TEe=function(r){REe(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,us.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?YG(t,this.targetCharCodes)===void 0&&(this.found=!0):YG(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qG.BaseRegExpVisitor);function LEe(r,e){if(e instanceof RegExp){var t=(0,JG.getRegExpAst)(e),i=new TEe(r);return i.visit(t),i.found}else return(0,us.find)(e,function(n){return(0,us.contains)(r,n.charCodeAt(0))})!==void 0}mn.canMatchCharCode=LEe});var Rv=I(We=>{"use strict";var VG=We&&We.__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(We,"__esModule",{value:!0});We.charCodeToOptimizedIndex=We.minOptimizationVal=We.buildLineBreakIssueMessage=We.LineTerminatorOptimizedTester=We.isShortPattern=We.isCustomPattern=We.cloneEmptyGroups=We.performWarningRuntimeChecks=We.performRuntimeChecks=We.addStickyFlag=We.addStartOfInput=We.findUnreachablePatterns=We.findModesThatDoNotExist=We.findInvalidGroupType=We.findDuplicatePatterns=We.findUnsupportedFlags=We.findStartOfInputAnchor=We.findEmptyMatchRegExps=We.findEndOfInputAnchor=We.findInvalidPatterns=We.findMissingPatterns=We.validatePatterns=We.analyzeTokenTypes=We.enableSticky=We.disableSticky=We.SUPPORT_STICKY=We.MODES=We.DEFAULT_MODE=void 0;var XG=_I(),tr=Qd(),Se=Kt(),Zg=zG(),ZG=ey(),ko="PATTERN";We.DEFAULT_MODE="defaultMode";We.MODES="modes";We.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function OEe(){We.SUPPORT_STICKY=!1}We.disableSticky=OEe;function MEe(){We.SUPPORT_STICKY=!0}We.enableSticky=MEe;function KEe(r,e){e=(0,Se.defaults)(e,{useSticky:We.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
`],tracer:function(S,P){return P()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){VEe()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(S){return S[ko]===tr.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(S){var P=S[ko];if((0,Se.isRegExp)(P)){var F=P.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!P.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?Tv(P):Nv(P)}else{if((0,Se.isFunction)(P))return n=!0,{exec:P};if((0,Se.has)(P,"exec"))return n=!0,P;if(typeof P=="string"){if(P.length===1)return P;var H=P.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(H);return e.useSticky?Tv(q):Nv(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Se.map)(i,function(S){var P=S.GROUP;if(P!==tr.Lexer.SKIPPED){if((0,Se.isString)(P))return P;if((0,Se.isUndefined)(P))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(S){var P=S.LONGER_ALT;if(P){var F=(0,Se.isArray)(P)?(0,Se.map)(P,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,P)];return F}}),c=(0,Se.map)(i,function(S){return S.PUSH_MODE}),u=(0,Se.map)(i,function(S){return(0,Se.has)(S,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var S=uY(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(P){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(P){if((0,Se.has)(P,"LINE_BREAKS"))return P.LINE_BREAKS;if(lY(P,S)===!1)return(0,Zg.canMatchCharCode)(S,P.PATTERN)}))});var h,p,d,m;t("Misc Mapping #2",function(){h=(0,Se.map)(i,Ov),p=(0,Se.map)(s,AY),d=(0,Se.reduce)(i,function(S,P){var F=P.GROUP;return(0,Se.isString)(F)&&F!==tr.Lexer.SKIPPED&&(S[F]=[]),S},{}),m=(0,Se.map)(s,function(S,P){return{pattern:s[P],longerAlt:l[P],canLineTerminator:g[P],isCustom:h[P],short:p[P],group:a[P],push:c[P],pop:u[P],tokenTypeIdx:o[P],tokenType:i[P]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(S,P,F){if(typeof P.PATTERN=="string"){var H=P.PATTERN.charCodeAt(0),q=Lv(H);Fv(S,q,m[F])}else if((0,Se.isArray)(P.START_CHARS_HINT)){var _;(0,Se.forEach)(P.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Lv(Z);_!==A&&(_=A,Fv(S,A,m[F]))})}else if((0,Se.isRegExp)(P.PATTERN))if(P.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+P.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 X=(0,Zg.getOptimizedStartCodesIndices)(P.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(X)&&(y=!1),(0,Se.forEach)(X,function(W){Fv(S,W,m[F])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+P.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`),y=!1;return S},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:d,patternIdxToConfig:m,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}We.analyzeTokenTypes=KEe;function UEe(r,e){var t=[],i=_G(r);t=t.concat(i.errors);var n=$G(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(HEe(s)),t=t.concat(sY(s)),t=t.concat(oY(s,e)),t=t.concat(aY(s)),t}We.validatePatterns=UEe;function HEe(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[ko])});return e=e.concat(eY(t)),e=e.concat(rY(t)),e=e.concat(iY(t)),e=e.concat(nY(t)),e=e.concat(tY(t)),e}function _G(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,ko)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:tr.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findMissingPatterns=_G;function $G(r){var e=(0,Se.filter)(r,function(n){var s=n[ko];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:tr.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findInvalidPatterns=$G;var jEe=/[^\\][\$]/;function eY(r){var e=function(n){VG(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}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return jEe.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:tr.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findEndOfInputAnchor=eY;function tY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];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:tr.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}We.findEmptyMatchRegExps=tY;var GEe=/[^\\[][\^]|^\^/;function rY(r){var e=function(n){VG(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}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return GEe.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:tr.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findStartOfInputAnchor=rY;function iY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];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:tr.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}We.findUnsupportedFlags=iY;function nY(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!==tr.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:tr.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}We.findDuplicatePatterns=nY;function sY(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==tr.Lexer.SKIPPED&&n!==tr.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:tr.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}We.findInvalidGroupType=sY;function oY(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:tr.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}We.findModesThatDoNotExist=oY;function aY(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===tr.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&qEe(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&&YEe(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:tr.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}We.findUnreachablePatterns=aY;function YEe(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 qEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}We.addStartOfInput=Nv;function Tv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}We.addStickyFlag=Tv;function JEe(r,e,t){var i=[];return(0,Se.has)(r,We.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.DEFAULT_MODE+`> property in its definition
`,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Se.has)(r,We.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.MODES+`> property in its definition
`,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Se.has)(r,We.MODES)&&(0,Se.has)(r,We.DEFAULT_MODE)&&!(0,Se.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+We.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist
`,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Se.has)(r,We.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:tr.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}We.performRuntimeChecks=JEe;function WEe(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[ko]===tr.Lexer.NA}),a=uY(t);return e&&(0,Se.forEach)(o,function(l){var c=lY(l,a);if(c!==!1){var u=cY(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,Zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found.
This Lexer has been defined to track line and column information,
But none of the Token Types can be identified as matching a line terminator.
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
for details.`,type:tr.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}We.performWarningRuntimeChecks=WEe;function zEe(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}We.cloneEmptyGroups=zEe;function Ov(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")}We.isCustomPattern=Ov;function AY(r){return(0,Se.isString)(r)&&r.length===1?r.charCodeAt(0):!1}We.isShortPattern=AY;We.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 lY(r,e){if((0,Se.has)(r,"LINE_BREAKS"))return!1;if((0,Se.isRegExp)(r.PATTERN)){try{(0,Zg.canMatchCharCode)(e,r.PATTERN)}catch(t){return{issue:tr.LexerDefinitionErrorType.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}else{if((0,Se.isString)(r.PATTERN))return!1;if(Ov(r))return{issue:tr.LexerDefinitionErrorType.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function cY(r,e){if(e.issue===tr.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===tr.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")}We.buildLineBreakIssueMessage=cY;function uY(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}We.minOptimizationVal=256;var iy=[];function Lv(r){return r<We.minOptimizationVal?r:iy[r]}We.charCodeToOptimizedIndex=Lv;function VEe(){if((0,Se.isEmpty)(iy)){iy=new Array(65536);for(var r=0;r<65536;r++)iy[r]=r>255?255+~~(r/255):r}}});var _g=I(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.isTokenType=Rt.hasExtendingTokensTypesMapProperty=Rt.hasExtendingTokensTypesProperty=Rt.hasCategoriesProperty=Rt.hasShortKeyProperty=Rt.singleAssignCategoriesToksMap=Rt.assignCategoriesMapProp=Rt.assignCategoriesTokensProp=Rt.assignTokenDefaultProps=Rt.expandCategories=Rt.augmentTokenTypes=Rt.tokenIdxToClass=Rt.tokenShortNameIdx=Rt.tokenStructuredMatcherNoCategories=Rt.tokenStructuredMatcher=void 0;var Vr=Kt();function XEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Rt.tokenStructuredMatcher=XEe;function ZEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Rt.tokenStructuredMatcherNoCategories=ZEe;Rt.tokenShortNameIdx=1;Rt.tokenIdxToClass={};function _Ee(r){var e=gY(r);fY(e),pY(e),hY(e),(0,Vr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Rt.augmentTokenTypes=_Ee;function gY(r){for(var e=(0,Vr.cloneArr)(r),t=r,i=!0;i;){t=(0,Vr.compact)((0,Vr.flatten)((0,Vr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Vr.difference)(t,e);e=e.concat(n),(0,Vr.isEmpty)(n)?i=!1:t=n}return e}Rt.expandCategories=gY;function fY(r){(0,Vr.forEach)(r,function(e){dY(e)||(Rt.tokenIdxToClass[Rt.tokenShortNameIdx]=e,e.tokenTypeIdx=Rt.tokenShortNameIdx++),Mv(e)&&!(0,Vr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),CY(e)||(e.categoryMatches=[]),mY(e)||(e.categoryMatchesMap={})})}Rt.assignTokenDefaultProps=fY;function hY(r){(0,Vr.forEach)(r,function(e){e.categoryMatches=[],(0,Vr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Rt.tokenIdxToClass[i].tokenTypeIdx)})})}Rt.assignCategoriesTokensProp=hY;function pY(r){(0,Vr.forEach)(r,function(e){Kv([],e)})}Rt.assignCategoriesMapProp=pY;function Kv(r,e){(0,Vr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Vr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Vr.contains)(i,t)||Kv(i,t)})}Rt.singleAssignCategoriesToksMap=Kv;function dY(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.hasShortKeyProperty=dY;function Mv(r){return(0,Vr.has)(r,"CATEGORIES")}Rt.hasCategoriesProperty=Mv;function CY(r){return(0,Vr.has)(r,"categoryMatches")}Rt.hasExtendingTokensTypesProperty=CY;function mY(r){return(0,Vr.has)(r,"categoryMatchesMap")}Rt.hasExtendingTokensTypesMapProperty=mY;function $Ee(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.isTokenType=$Ee});var Uv=I(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.defaultLexerErrorProvider=void 0;ny.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 Qd=I(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.Lexer=Ec.LexerDefinitionErrorType=void 0;var Zs=Rv(),rr=Kt(),eIe=_g(),tIe=Uv(),rIe=ey(),iIe;(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"})(iIe=Ec.LexerDefinitionErrorType||(Ec.LexerDefinitionErrorType={}));var bd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:tIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(bd);var nIe=function(){function r(e,t){var i=this;if(t===void 0&&(t=bd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
a boolean 2nd argument is no longer supported`);this.config=(0,rr.merge)(bd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===bd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Zs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===bd.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,rr.isArray)(e)?(s={modes:{}},s.modes[Zs.DEFAULT_MODE]=(0,rr.cloneArr)(e),s[Zs.DEFAULT_MODE]=Zs.DEFAULT_MODE):(o=!1,s=(0,rr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Zs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Zs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,rr.forEach)(s.modes,function(u,g){s.modes[g]=(0,rr.reject)(u,function(h){return(0,rr.isUndefined)(h)})});var a=(0,rr.keys)(s.modes);if((0,rr.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,Zs.validatePatterns)(u,a))}),(0,rr.isEmpty)(i.lexerDefinitionErrors)){(0,eIe.augmentTokenTypes)(u);var h;i.TRACE_INIT("analyzeTokenTypes",function(){h=(0,Zs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=h.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=h.charCodeToPatternIdxToConfig,i.emptyGroups=(0,rr.merge)(i.emptyGroups,h.emptyGroups),i.hasCustom=h.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=h.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,rr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,rr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`-----------------------
`);throw new Error(`Errors detected in definition of Lexer:
`+c)}(0,rr.forEach)(i.lexerDefinitionWarning,function(u){(0,rr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(Zs.SUPPORT_STICKY?(i.chopInput=rr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=rr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=rr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=rr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=rr.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,rr.reduce)(i.canModeBeOptimized,function(g,h,p){return h===!1&&g.push(p),g},[]);if(t.ensureOptimizations&&!(0,rr.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,rIe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,rr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,rr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,rr.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,h,p,d,m,y,B,S,P,F=e,H=F.length,q=0,_=0,X=this.hasCustom?0:Math.floor(e.length/10),W=new Array(X),Z=[],A=this.trackStartLines?1:void 0,ne=this.trackStartLines?1:void 0,ue=(0,Zs.cloneEmptyGroups)(this.emptyGroups),te=this.trackStartLines,O=this.config.lineTerminatorsPattern,N=0,ce=[],he=[],Pe=[],De=[];Object.freeze(De);var Re=void 0;function se(){return ce}function Ae(fr){var Ei=(0,Zs.charCodeToOptimizedIndex)(fr),rs=he[Ei];return rs===void 0?De:rs}var ye=function(fr){if(Pe.length===1&&fr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fr);Z.push({offset:fr.startOffset,line:fr.startLine!==void 0?fr.startLine:void 0,column:fr.startColumn!==void 0?fr.startColumn:void 0,length:fr.image.length,message:Ei})}else{Pe.pop();var rs=(0,rr.last)(Pe);ce=i.patternIdxToConfig[rs],he=i.charCodeToPatternIdxToConfig[rs],N=ce.length;var ua=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;he&&ua?Re=Ae:Re=se}};function ge(fr){Pe.push(fr),he=this.charCodeToPatternIdxToConfig[fr],ce=this.patternIdxToConfig[fr],N=ce.length,N=ce.length;var Ei=this.canModeBeOptimized[fr]&&this.config.safeMode===!1;he&&Ei?Re=Ae:Re=se}ge.call(this,t);for(var oe;q<H;){c=null;var Ye=F.charCodeAt(q),ie=Re(Ye),G=ie.length;for(n=0;n<G;n++){oe=ie[n];var fe=oe.pattern;u=null;var re=oe.short;if(re!==!1?Ye===re&&(c=fe):oe.isCustom===!0?(P=fe.exec(F,q,W,ue),P!==null?(c=P[0],P.payload!==void 0&&(u=P.payload)):c=null):(this.updateLastIndex(fe,q),c=this.match(fe,e,q)),c!==null){if(l=oe.longerAlt,l!==void 0){var de=l.length;for(o=0;o<de;o++){var Ze=ce[l[o]],vt=Ze.pattern;if(g=null,Ze.isCustom===!0?(P=vt.exec(F,q,W,ue),P!==null?(a=P[0],P.payload!==void 0&&(g=P.payload)):a=null):(this.updateLastIndex(vt,q),a=this.match(vt,e,q)),a&&a.length>c.length){c=a,u=g,oe=Ze;break}}}break}}if(c!==null){if(h=c.length,p=oe.group,p!==void 0&&(d=oe.tokenTypeIdx,m=this.createTokenInstance(c,q,d,oe.tokenType,A,ne,h),this.handlePayload(m,u),p===!1?_=this.addToken(W,_,m):ue[p].push(m)),e=this.chopInput(e,h),q=q+h,ne=this.computeNewColumn(ne,h),te===!0&&oe.canLineTerminator===!0){var mt=0,Lr=void 0,ti=void 0;O.lastIndex=0;do Lr=O.test(c),Lr===!0&&(ti=O.lastIndex-1,mt++);while(Lr===!0);mt!==0&&(A=A+mt,ne=h-ti,this.updateTokenEndLineColumnLocation(m,p,ti,mt,A,ne,h))}this.handleModes(oe,ye,ge,m)}else{for(var ui=q,gr=A,gi=ne,ri=!1;!ri&&q<H;)for(B=F.charCodeAt(q),e=this.chopInput(e,1),q++,s=0;s<N;s++){var Ms=ce[s],fe=Ms.pattern,re=Ms.short;if(re!==!1?F.charCodeAt(q)===re&&(ri=!0):Ms.isCustom===!0?ri=fe.exec(F,q,W,ue)!==null:(this.updateLastIndex(fe,q),ri=fe.exec(e)!==null),ri===!0)break}y=q-ui,S=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(F,ui,y,gr,gi),Z.push({offset:ui,line:gr,column:gi,length:y,message:S})}}return this.hasCustom||(W.length=_),{tokens:W,groups:ue,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,rr.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, thi Line truncated
See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,_s.has)(r,EY)&&(t.CATEGORIES=r[EY]),(0,Hv.augmentTokenTypes)([t]),(0,_s.has)(r,IY)&&(t.LABEL=r[IY]),(0,_s.has)(r,yY)&&(t.GROUP=r[yY]),(0,_s.has)(r,BY)&&(t.POP_MODE=r[BY]),(0,_s.has)(r,wY)&&(t.PUSH_MODE=r[wY]),(0,_s.has)(r,QY)&&(t.LONGER_ALT=r[QY]),(0,_s.has)(r,bY)&&(t.LINE_BREAKS=r[bY]),(0,_s.has)(r,SY)&&(t.START_CHARS_HINT=r[SY]),t}Si.EOF=xY({name:"EOF",pattern:sIe.Lexer.NA});(0,Hv.augmentTokenTypes)([Si.EOF]);function cIe(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=cIe;function uIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=uIe});var En=I(qt=>{"use strict";var ka=qt&&qt.__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(qt,"__esModule",{value:!0});qt.serializeProduction=qt.serializeGrammar=qt.Terminal=qt.Alternation=qt.RepetitionWithSeparator=qt.Repetition=qt.RepetitionMandatoryWithSeparator=qt.RepetitionMandatory=qt.Option=qt.Alternative=qt.Rule=qt.NonTerminal=qt.AbstractProduction=void 0;var or=Kt(),gIe=NA(),Do=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,or.forEach)(this.definition,function(t){t.accept(e)})},r}();qt.AbstractProduction=Do;var PY=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,or.assign)(i,(0,or.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}(Do);qt.NonTerminal=PY;var kY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Rule=kY;var DY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Alternative=DY;var RY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Option=RY;var FY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatory=FY;var NY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatoryWithSeparator=NY;var TY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Repetition=TY;var LY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionWithSeparator=LY;var OY=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,or.assign)(i,(0,or.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}(Do);qt.Alternation=OY;var sy=function(){function r(e){this.idx=1,(0,or.assign)(this,(0,or.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();qt.Terminal=sy;function fIe(r){return(0,or.map)(r,Sd)}qt.serializeGrammar=fIe;function Sd(r){function e(s){return(0,or.map)(s,Sd)}if(r instanceof PY){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,or.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof DY)return{type:"Alternative",definition:e(r.definition)};if(r instanceof RY)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof FY)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof NY)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Sd(new sy({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(p,d){return p.concat(d)},[]),u=(0,$s.map)(c,function(p){return"["+(0,$s.map)(p,function(d){return(0,ef.tokenLabel)(d)}).join(", ")+"]"}),g=(0,$s.map)(u,function(p,d){return" "+(d+1)+". "+p}),h=`one of these possible Token sequences:
`+g.join(`
`);return o+h+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,ef.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences::
`+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Da.defaultParserErrorProvider);Da.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
inside top level rule: ->`+r.name+"<-";return t}};Da.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,$s.first)(e),s=n.idx,o=(0,VY.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,ef.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,ef.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,VY.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=xIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar.
`+("rule: <"+e+`> can be invoked from itself (directly or indirectly)
`)+(`without consuming any Tokens. The grammar path that causes this is:
`+i+`
`)+` To fix this refactor your grammar to remove the left recursion.
see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var _Y=I(TA=>{"use strict";var PIe=TA&&TA.__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(TA,"__esModule",{value:!0});TA.GastRefResolverVisitor=TA.resolveGrammar=void 0;var kIe=Yn(),XY=Kt(),DIe=$g();function RIe(r,e){var t=new ZY(r,e);return t.resolveRefs(),t.errors}TA.resolveGrammar=RIe;var ZY=function(r){PIe(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,XY.forEach)((0,XY.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:kIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(DIe.GAstVisitor);TA.GastRefResolverVisitor=ZY});var Dd=I(Fr=>{"use strict";var Ic=Fr&&Fr.__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(Fr,"__esModule",{value:!0});Fr.nextPossibleTokensAfter=Fr.possiblePathsFrom=Fr.NextTerminalAfterAtLeastOneSepWalker=Fr.NextTerminalAfterAtLeastOneWalker=Fr.NextTerminalAfterManySepWalker=Fr.NextTerminalAfterManyWalker=Fr.AbstractNextTerminalAfterProductionWalker=Fr.NextAfterTokenWalker=Fr.AbstractNextPossibleTokensWalker=void 0;var $Y=ay(),Lt=Kt(),FIe=qv(),kt=En(),eq=function(r){Ic(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,Lt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Lt.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,Lt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}($Y.RestWalker);Fr.AbstractNextPossibleTokensWalker=eq;var NIe=function(r){Ic(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FIe.first)(o),this.found=!0}},e}(eq);Fr.NextAfterTokenWalker=NIe;var kd=function(r){Ic(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}($Y.RestWalker);Fr.AbstractNextTerminalAfterProductionWalker=kd;var TIe=function(r){Ic(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,Lt.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=Sye;function vye(r,e,t){var i=function(){};(0,Td.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,hs.forEach)(e,function(s){n[s]=Rq}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=vye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function Fq(r,e){var t=Nq(r,e),i=Tq(r,e);return t.concat(i)}vi.validateVisitor=Fq;function Nq(r,e){var t=(0,hs.map)(e,function(i){if(!(0,hs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,hs.compact)(t)}vi.validateMissingCstMethods=Nq;var xye=["constructor","visit","validateVisitor"];function Tq(r,e){var t=[];for(var i in r)(0,hs.isFunction)(r[i])&&!(0,hs.contains)(xye,i)&&!(0,hs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+` CST Visitor
There is no Grammar Rule corresponding to this method's name.
`,type:ax.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=Tq});var Mq=I(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.TreeBuilder=void 0;var sf=Pq(),Xr=Kt(),Oq=Lq(),Pye=Yn(),kye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Xr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Pye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Xr.NOOP,this.cstFinallyStateUpdate=Xr.NOOP,this.cstPostTerminal=Xr.NOOP,this.cstPostNonTerminal=Xr.NOOP,this.cstPostRule=Xr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=Xr.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,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Xr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oq.createBaseSemanticVisitorConstructor)(this.className,(0,Xr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Xr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Xr.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}();my.TreeBuilder=kye});var Uq=I(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.LexerAdapter=void 0;var Kq=Yn(),Dye=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,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty.
Note that the first argument for the parser constructor
is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Ld.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=qq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Ld.tokenStructuredMatcherNoCategories:Ld.tokenStructuredMatcher,(0,Ld.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called'
Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Yq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Yq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<<qn.BITS_FOR_METHOD_TYPE+qn.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(h){return this.invokeRuleCatch(h,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,yy.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(qn.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(qn.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,Gq.PROD_TYPE.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],s,qn.AT_LEAST_ONE_IDX,e,of.NextTerminalAfterAtLeastOneWalker)},r.prototype.atLeastOneSepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.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,of.NextTerminalAfterAtLeastOneSepWalker],l,qn.AT_LEAST_ONE_SEP_IDX,e,of.NextTerminalAfterAtLeastOneSepWalker)}else throw this.raiseEarlyExitException(e,Gq.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)},r.prototype.manyInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.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,qn.MANY_IDX,e,of.NextTerminalAfterManyWalker,c)},r.prototype.manySepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.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,of.NextTerminalAfterManySepWalker],l,qn.MANY_SEP_IDX,e,of.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,qn.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(qn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this. Line truncated
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(nJ);var Jye={name:`This CSTNode indicates the Parser is in Recording Phase
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Wye=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 Yye.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 Od.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,_q)},r.prototype.manyInternalRecord=function(e,t){Od.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionWithSeparator,t,e,_q)},r.prototype.orInternalRecord=function(e,t){return zye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(by(t),!e||(0,wn.has)(e,"ruleName")===!1){var n=new Error("<SUBRULE"+eJ(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,wn.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?Jye:Sy},r.prototype.consumeInternalRecord=function(e,t,i){if(by(t),!(0,tJ.hasShortKeyProperty)(e)){var n=new Error("<CONSUME"+eJ(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,wn.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nJ},r}();vy.GastRecorder=Wye;function Od(r,e,t,i){i===void 0&&(i=!1),by(t);var n=(0,wn.peek)(this.recordingProdStack),s=(0,wn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,wn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),Sy}function zye(r,e){var t=this;by(e);var i=(0,wn.peek)(this.recordingProdStack),n=(0,wn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,wn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,wn.some)(s,function(l){return(0,wn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,wn.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,wn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,wn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),Sy}function eJ(r){return r===0?"":""+r}function by(r){if(r<0||r>$q){var e=new Error("Invalid DSL Method idx value: <"+r+`>
`+("Idx value must be a none negative value smaller than "+($q+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var aJ=I(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.PerformanceTracer=void 0;var oJ=Kt(),Vye=Yn(),Xye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,oJ.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=Vye.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,oJ.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}();xy.PerformanceTracer=Xye});var AJ=I(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.applyMixins=void 0;function Zye(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]}})})}Py.applyMixins=Zye});var Yn=I(hr=>{"use strict";var uJ=hr&&hr.__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(hr,"__esModule",{value:!0});hr.EmbeddedActionsParser=hr.CstParser=hr.Parser=hr.EMPTY_ALT=hr.ParserDefinitionErrorType=hr.DEFAULT_RULE_CONFIG=hr.DEFAULT_PARSER_CONFIG=hr.END_OF_FILE=void 0;var en=Kt(),_ye=zY(),lJ=NA(),gJ=Pd(),cJ=Iq(),$ye=sx(),ewe=xq(),twe=Mq(),rwe=Uq(),iwe=jq(),nwe=Jq(),swe=zq(),owe=Zq(),awe=sJ(),Awe=aJ(),lwe=AJ();hr.END_OF_FILE=(0,lJ.createTokenInstance)(lJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(hr.END_OF_FILE);hr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});hr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cwe;(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"})(cwe=hr.ParserDefinitionErrorType||(hr.ParserDefinitionErrorType={}));function uwe(r){return r===void 0&&(r=void 0),function(){return r}}hr.EMPTY_ALT=uwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,en.has)(t,"ignoredIssues"))throw new Error(`The <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,en.has)(t,"skipValidations")?t.skipValidations:hr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,en.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,en.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,cJ.resolveGrammar)({rules:(0,en.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,en.isEmpty)(n)&&e.skipValidations===!1){var s=(0,cJ.validateGrammar)({rules:(0,en.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,en.values)(e.tokensMap),errMsgProvider:gJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,en.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,_ye.computeAllProdsFollows)((0,en.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,en.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,en.isEmpty)(e.definitionErrors))throw t=(0,en.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected:
`+t.join(`
-------------------------------
`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();hr.Parser=ky;(0,lwe.applyMixins)(ky,[$ye.Recoverable,ewe.LooksAhead,twe.TreeBuilder,rwe.LexerAdapter,nwe.RecognizerEngine,iwe.RecognizerApi,swe.ErrorHandler,owe.ContentAssist,awe.GastRecorder,Awe.PerformanceTracer]);var gwe=function(r){uJ(e,r);function e(t,i){i===void 0&&(i=hr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(ky);hr.CstParser=gwe;var fwe=function(r){uJ(e,r);function e(t,i){i===void 0&&(i=hr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(ky);hr.EmbeddedActionsParser=fwe});var hJ=I(Dy=>{"use strict";Object.defineProperty(Dy,"__esModule",{value:!0});Dy.createSyntaxDiagramsCode=void 0;var fJ=kv();function hwe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+fJ.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+fJ.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>
`,h=`
<script>
var diagramsDiv = document.getElementById("diagrams");
main.drawDiagramsFromSerializedGrammar(serializedGrammar, diagramsDiv);
<\/script>
`;return a+l+c+u+g+h}Dy.createSyntaxDiagramsCode=hwe});var CJ=I(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.Parser=qe.createSyntaxDiagramsCode=qe.clearCache=qe.GAstVisitor=qe.serializeProduction=qe.serializeGrammar=qe.Terminal=qe.Rule=qe.RepetitionWithSeparator=qe.RepetitionMandatoryWithSeparator=qe.RepetitionMandatory=qe.Repetition=qe.Option=qe.NonTerminal=qe.Alternative=qe.Alternation=qe.defaultLexerErrorProvider=qe.NoViableAltException=qe.NotAllInputParsedException=qe.MismatchedTokenException=qe.isRecognitionException=qe.EarlyExitException=qe.defaultParserErrorProvider=qe.tokenName=qe.tokenMatcher=qe.tokenLabel=qe.EOF=qe.createTokenInstance=qe.createToken=qe.LexerDefinitionErrorType=qe.Lexer=qe.EMPTY_ALT=qe.ParserDefinitionErrorType=qe.EmbeddedActionsParser=qe.CstParser=qe.VERSION=void 0;var pwe=kv();Object.defineProperty(qe,"VERSION",{enumerable:!0,get:function(){return pwe.VERSION}});var Ry=Yn();Object.defineProperty(qe,"CstParser",{enumerable:!0,get:function(){return Ry.CstParser}});Object.defineProperty(qe,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Ry.EmbeddedActionsParser}});Object.defineProperty(qe,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Ry.ParserDefinitionErrorType}});Object.defineProperty(qe,"EMPTY_ALT",{enumerable:!0,get:function(){return Ry.EMPTY_ALT}});var pJ=Qd();Object.defineProperty(qe,"Lexer",{enumerable:!0,get:function(){return pJ.Lexer}});Object.defineProperty(qe,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return pJ.LexerDefinitionErrorType}});var af=NA();Object.defineProperty(qe,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(qe,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(qe,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(qe,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(qe,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(qe,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var dwe=Pd();Object.defineProperty(qe,"defaultParserErrorProvider",{enumerable:!0,get:function(){return dwe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(qe,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(qe,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(qe,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(qe,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(qe,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var Cwe=Uv();Object.defineProperty(qe,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Cwe.defaultLexerErrorProvider}});var Oo=En();Object.defineProperty(qe,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(qe,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(qe,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(qe,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(qe,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(qe,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(qe,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(qe,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(qe,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(qe,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var dJ=En();Object.defineProperty(qe,"serializeGrammar",{enumerable:!0,get:function(){return dJ.serializeGrammar}});Object.defineProperty(qe,"serializeProduction",{enumerable:!0,get:function(){return dJ.serializeProduction}});var mwe=$g();Object.defineProperty(qe,"GAstVisitor",{enumerable:!0,get:function(){return mwe.GAstVisitor}});function Ewe(){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`)}qe.clearCache=Ewe;var Iwe=hJ();Object.defineProperty(qe,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return Iwe.createSyntaxDiagramsCode}});var ywe=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}();qe.Parser=ywe});var IJ=I((rtt,EJ)=>{var Fy=CJ(),Na=Fy.createToken,mJ=Fy.tokenMatcher,ux=Fy.Lexer,wwe=Fy.EmbeddedActionsParser;EJ.exports=r=>{let e=Na({name:"LogicalOperator",pattern:ux.NA}),t=Na({name:"Or",pattern:/\|/,categories:e}),i=Na({name:"Xor",pattern:/\^/,categories:e}),n=Na({name:"And",pattern:/&/,categories:e}),s=Na({name:"Not",pattern:/!/}),o=Na({name:"LParen",pattern:/\(/}),a=Na({name:"RParen",pattern:/\)/}),l=Na({name:"Query",pattern:r}),u=[Na({name:"WhiteSpace",pattern:/\s+/,group:ux.SKIPPED}),t,i,n,o,a,s,e,l],g=new ux(u);class h extends wwe{constructor(d){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,S=this.CONSUME(e),P=this.SUBRULE2(this.atomicExpression);mJ(S,t)?y=F=>B(F)||P(F):mJ(S,i)?y=F=>!!(B(F)^P(F)):y=F=>B(F)&&P(F)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:h}}});var yJ=I(Ny=>{var Bwe=IJ();Ny.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Bwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ny.parse=Ny.makeParser()});var BJ=I((ntt,wJ)=>{"use strict";wJ.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};HJ.exports={stringReplaceAll:Lwe,stringEncaseCRLFWithFirstIndex:Owe}});var WJ=I((gtt,JJ)=>{"use strict";var Mwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,GJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Kwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Uwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Hwe=new Map([["n",`
`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function qJ(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)):Hwe.get(r)||r}function jwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(Kwe))t.push(n[2].replace(Uwe,(a,l,c)=>l?qJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function Gwe(r){GJ.lastIndex=0;let e=[],t;for(;(t=GJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=jwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function YJ(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}JJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Mwe,(s,o,a,l,c,u)=>{if(o)n.push(qJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:YJ(r,t)(g)),t.push({inverse:a,styles:Gwe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(YJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wx=I((ftt,ZJ)=>{"use strict";var Ud=TJ(),{stdout:mx,stderr:Ex}=UJ(),{stringReplaceAll:Ywe,stringEncaseCRLFWithFirstIndex:qwe}=jJ(),zJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Jwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mx?mx.level:0;r.level=e.level===void 0?t:e.level},Ix=class{constructor(e){return VJ(e)}},VJ=r=>{let e={};return Jwe(e,r),e.template=(...t)=>Vwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Ix,e.template};function Oy(r){return VJ(r)}for(let[r,e]of Object.entries(Ud))uf[r]={get(){let t=My(this,yx(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=My(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var XJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of XJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yx(Ud.color[zJ[e]][r](...t),Ud.color.close,this._styler);return My(this,i,this._isEmpty)}}};for(let r of XJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yx(Ud.bgColor[zJ[t]][r](...i),Ud.bgColor.close,this._styler);return My(this,n,this._isEmpty)}}}}var Wwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yx=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},My=(r,e,t)=>{let i=(...n)=>zwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Wwe,i._generator=r,i._styler=e,i._isEmpty=t,i},zwe=(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=Ywe(e,t.close,t.open),t=t.parent;let s=e.indexOf(`
`);return s!==-1&&(e=qwe(e,n,i,s)),i+e+n},Cx,Vwe=(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 Cx===void 0&&(Cx=WJ()),Cx(r,n.join(""))};Object.defineProperties(Oy.prototype,uf);var Hd=Oy();Hd.supportsColor=mx;Hd.stderr=Oy({level:Ex?Ex.level:0});Hd.stderr.supportsColor=Ex;Hd.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"};ZJ.exports=Hd});var Ky=I(ds=>{"use strict";ds.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;ds.find=(r,e)=>r.nodes.find(t=>t.type===e);ds.exceedsLimit=(r,e,t=1,i)=>i===!1||!ds.isInteger(r)||!ds.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;ds.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)};ds.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;ds.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;ds.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;ds.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);ds.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 Uy=I((ptt,$J)=>{"use strict";var _J=Ky();$J.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&_J.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&_J.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 t3=I((dtt,e3)=>{"use strict";e3.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var c3=I((Ctt,l3)=>{"use strict";var r3=t3(),wc=(r,e,t)=>{if(r3(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(r3(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(wc.cache.hasOwnProperty(l))return wc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let m=r+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=A3(r)||A3(e),h={min:r,max:e,a:c,b:u},p=[],d=[];if(g&&(h.isPadded=g,h.maxLen=String(h.max).length),c<0){let m=u<0?Math.abs(u):1;d=i3(m,Math.abs(c),h,i),c=h.a=0}return u>=0&&(p=i3(c,u,h,i)),h.negatives=d,h.positives=p,h.result=Xwe(d,p,i),i.capture===!0?h.result=`(${h.result})`:i.wrap!==!1&&p.length+d.length>1&&(h.result=`(?:${h.result})`),wc.cache[l]=h,h.result};function Xwe(r,e,t){let i=Bx(r,e,"-",!1,t)||[],n=Bx(e,r,"",!1,t)||[],s=Bx(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Zwe(r,e){let t=1,i=1,n=s3(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=s3(r,t);for(n=o3(e+1,i)-1;r<n&&n<=e;)s.add(n),i+=1,n=o3(e+1,i)-1;return s=[...s],s.sort(eBe),s}function _we(r,e,t){if(r===e)return{pattern:r,count:[],digits:0};let i=$we(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+=tBe(l,c,t):o++}return o&&(s+=t.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[o],digits:n}}function i3(r,e,t,i){let n=Zwe(r,e),s=[],o=r,a;for(let l=0;l<n.length;l++){let c=n[l],u=_we(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+a3(a.count),o=c+1;continue}t.isPadded&&(g=rBe(c,t,i)),u.string=g+u.pattern+a3(u.count),s.push(u),o=c+1,a=u}return s}function Bx(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!n3(e,"string",a)&&s.push(t+a),i&&n3(e,"string",a)&&s.push(t+a)}return s}function $we(r,e){let t=[];for(let i=0;i<r.length;i++)t.push([r[i],e[i]]);return t}function eBe(r,e){return r>e?1:e>r?-1:0}function n3(r,e,t){return r.some(i=>i[e]===t)}function s3(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function o3(r,e){return r-r%Math.pow(10,e)}function a3(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tBe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function A3(r){return/^-?(0+)\d/.test(r)}function rBe(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}}`}}wc.cache={};wc.clearCache=()=>wc.cache={};l3.exports=wc});var Sx=I((mtt,m3)=>{"use strict";var iBe=J("util"),f3=c3(),u3=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 D3=I((wtt,k3)=>{"use strict";var pBe=Uy(),{MAX_LENGTH:v3,CHAR_BACKSLASH:vx,CHAR_BACKTICK:dBe,CHAR_COMMA:CBe,CHAR_DOT:mBe,CHAR_LEFT_PARENTHESES:EBe,CHAR_RIGHT_PARENTHESES:IBe,CHAR_LEFT_CURLY_BRACE:yBe,CHAR_RIGHT_CURLY_BRACE:wBe,CHAR_LEFT_SQUARE_BRACKET:x3,CHAR_RIGHT_SQUARE_BRACKET:P3,CHAR_DOUBLE_QUOTE:BBe,CHAR_SINGLE_QUOTE:QBe,CHAR_NO_BREAK_SPACE:bBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:SBe}=S3(),vBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(v3,t.maxLength):v3;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,h,p={},d=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u<c;)if(o=s[s.length-1],h=d(),!(h===SBe||h===bBe)){if(h===vx){m({type:"text",value:(e.keepEscaping?h:"")+d()});continue}if(h===P3){m({type:"text",value:"\\"+h});continue}if(h===x3){l++;let y=!0,B;for(;u<c&&(B=d());){if(h+=B,B===x3){l++;continue}if(B===vx){h+=d();continue}if(B===P3&&(l--,l===0))break}m({type:"text",value:h});continue}if(h===EBe){o=m({type:"paren",nodes:[]}),s.push(o),m({type:"text",value:h});continue}if(h===IBe){if(o.type!=="paren"){m({type:"text",value:h});continue}o=s.pop(),m({type:"text",value:h}),o=s[s.length-1];continue}if(h===BBe||h===QBe||h===dBe){let y=h,B;for(e.keepQuotes!==!0&&(h="");u<c&&(B=d());){if(B===vx){h+=B+d();continue}if(B===y){e.keepQuotes===!0&&(h+=B);break}h+=B}m({type:"text",value:h});continue}if(h===yBe){g++;let B={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||o.dollar===!0,depth:g,commas:0,ranges:0,nodes:[]};o=m(B),s.push(o),m({type:"open",value:h});continue}if(h===wBe){if(o.type!=="brace"){m({type:"text",value:h});continue}let y="close";o=s.pop(),o.close=!0,m({type:y,value:h}),g--,o=s[s.length-1];continue}if(h===CBe&&g>0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:pBe(o)}]}m({type:"comma",value:h}),o.commas++;continue}if(h===mBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+h,a=B,o.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};k3.exports=vBe});var N3=I((Btt,F3)=>{"use strict";var R3=Uy(),xBe=y3(),PBe=Q3(),kBe=D3(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>kBe(r,e);Jn.stringify=(r,e={})=>R3(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),xBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=PBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);F3.exports=Jn});var Gd=I((Qtt,K3)=>{"use strict";var DBe=J("path"),Mo="\\\\/",T3=`[^${Mo}]`,Ta="\\.",RBe="\\+",FBe="\\?",jy="\\/",NBe="(?=.)",L3="[^/]",xx=`(?:${jy}|$)`,O3=`(?:^|${jy})`,Px=`${Ta}{1,2}${xx}`,TBe=`(?!${Ta})`,LBe=`(?!${O3}${Px})`,OBe=`(?!${Ta}{0,1}${xx})`,MBe=`(?!${Px})`,KBe=`[^.${jy}]`,UBe=`${L3}*?`,M3={DOT_LITERAL:Ta,PLUS_LITERAL:RBe,QMARK_LITERAL:FBe,SLASH_LITERAL:jy,ONE_CHAR:NBe,QMARK:L3,END_ANCHOR:xx,DOTS_SLASH:Px,NO_DOT:TBe,NO_DOTS:LBe,NO_DOT_SLASH:OBe,NO_DOTS_SLASH:MBe,QMARK_NO_DOT:KBe,STAR:UBe,START_ANCHOR:O3},HBe={...M3,SLASH_LITERAL:`[${Mo}]`,QMARK:T3,STAR:`${T3}*?`,DOTS_SLASH:`${Ta}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${Ta})`,NO_DOTS:`(?!(?:^|[${Mo}])${Ta}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${Ta}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${Ta}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},jBe={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/`);d(m)}return}i[0].resolve(p);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 h=dPe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});h[on]=0,h[Uf]=!1;let p=()=>h[on]<h.remoteSettings.maxConcurrentStreams,d=!0;h.socket.once("session",y=>{this.tlsSessionCache.set(u,y)}),h.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),h.setTimeout(this.timeout,()=>{h.destroy()}),h.once("close",()=>{if(g){d&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(h),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!p())){for(let y of h[ws])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&p();)B.shift().resolve(h);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!p())break}}};h.on("origin",()=>{h[ws]=h.originSet,p()&&(m(),UD(this.sessions[o],h))}),h.once("remoteSettings",()=>{if(h.ref(),h.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);h.destroy();return}h[ws]=h.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(EPe(B,h,IPe),0,h)}else y[o]=[h]}this._freeSessionsCount+=1,g=!0,this.emit("session",h),m(),l(),h[on]===0&&this._freeSessionsCount>this.maxFreeSessions&&h.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),h.on("remoteSettings",()=>{m(),UD(this.sessions[o],h)})}),h[y5]=h.request,h.request=(y,B)=>{if(h[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=h[y5](y,B);return h.ref(),++h[on],h[on]===h.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(d=p(),--h[on],!h.destroyed&&!h.closed&&(yPe(this.sessions[o],h),p()&&!h.closed)){d||(this._freeSessionsCount++,d=!0);let P=h[on]===0;P&&h.unref(),P&&(this._freeSessionsCount>this.maxFreeSessions||h[Uf])?h.close():(UD(this.sessions[o],h),m())}}),S}}catch(h){for(let p of i)p.reject(h);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 Wo.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),pPe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[on]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return w5({agent:this,isFree:!0})}get busySessions(){return w5({agent:this,isFree:!1})}};Wo.kCurrentStreamsCount=on;Wo.kGracefullyClosing=Uf;Q5.exports={Agent:Wo,globalAgent:new Wo}});var GD=I((Knt,b5)=>{"use strict";var{Readable:wPe}=J("stream"),jD=class extends wPe{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()}};b5.exports=jD});var YD=I((Unt,S5)=>{"use strict";S5.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 x5=I((Hnt,v5)=>{"use strict";v5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var k5=I((jnt,P5)=>{"use strict";P5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var R5=I((Ynt,D5)=>{"use strict";var Hf=(r,e,t)=>{D5.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(`
`)}`}}};Ut.RequestError=_r;var sB=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ut.MaxRedirectsError=sB;var oB=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ut.HTTPError=oB;var aB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Ut.CacheError=aB;var AB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Ut.UploadError=AB;var lB=class extends _r{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Ut.TimeoutError=lB;var bC=class extends _r{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Ut.ReadError=bC;var cB=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ut.UnsupportedProtocolError=cB;var Pke=["socket","connect","continue","information","upgrade","timeout"],uB=class extends h6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[Gf]=0,this[qf]=0,this.requestInitialized=!1,this[rB]=new Set,this.redirects=[],this[Jf]=!1,this[iB]=!1,this[QC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Ut.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 Ake.ReadStream&&await Ske(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Pi])===null||c===void 0||c.destroy();return}for(let g of this[QC])g();this[QC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){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 zA.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([I6.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 h=new Error("tunneling socket could not be established, cause="+g.message);h.code="ECONNRESET",e.request.emit("error",h),i.removeSocket(n)}};Ja.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 J6(r,e){var t=this;Ja.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=tDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function W6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e<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 _A;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?_A=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)}:_A=function(){};Wf.debug=_A});var X6=I((yst,V6)=>{V6.exports=z6()});var a9=I((EB,FR)=>{var o9=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(f,E){i=f,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(f,E){throw E},u=!1,g=!0,h="";function p(f){return t.locateFile?t.locateFile(f,h):h+f}var d,m,y,B;g&&(u?h=J("path").dirname(h)+"/":h=__dirname+"/",d=function(E,w){var k=pa(E);return k?w?k:k.toString():(y||(y=o9),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,w?null:"utf8"))},m=function(E){var w=d(E,!0);return w.buffer||(w=new Uint8Array(w)),te(w.buffer),w},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(f){process.exit(f)},t.inspect=function(){return"[Emscripten Module object]"});var S=t.print||console.log.bind(console),P=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 F=16;function H(f,E){return E||(E=F),Math.ceil(f/E)*E}var q=0,_=function(f){q=f},X;t.wasmBinary&&(X=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&yr("no native wasm support detected");function Z(f,E,w){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ie[f>>0];case"i8":return ie[f>>0];case"i16":return fe[f>>1];case"i32":return de[f>>2];case"i64":return de[f>>2];case"float":return vt[f>>2];case"double":return mt[f>>3];default:yr("invalid type for getValue: "+E)}return null}var A,ne=!1,ue;function te(f,E){f||yr("Assertion failed: "+E)}function O(f){var E=t["_"+f];return te(E,"Cannot call unknown function "+f+", make sure it is exported"),E}function N(f,E,w,k,L){var T={string:function(nt){var wt=0;if(nt!=null&&nt!==0){var Ii=(nt.length<<2)+1;wt=GE(Ii),se(nt,wt,Ii)}return wt},array:function(nt){var wt=GE(nt.length);return ge(nt,wt),wt}};function ee(nt){return E==="string"?De(nt):E==="boolean"?Boolean(nt):nt}var Ie=O(f),Oe=[],it=0;if(k)for(var at=0;at<k.length;at++){var Ue=T[w[at]];Ue?(it===0&&(it=tS()),Oe[at]=Ue(k[at])):Oe[at]=k[at]}var Ve=Ie.apply(null,Oe);return Ve=ee(Ve),it!==0&&rS(it),Ve}function ce(f,E,w,k){w=w||[];var L=w.every(function(ee){return ee==="number"}),T=E!=="string";return T&&L&&!k?O(f):function(){return N(f,E,w,arguments,k)}}var he=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Pe(f,E,w){for(var k=E+w,L=E;f[L]&&!(L>=k);)++L;if(L-E>16&&f.subarray&&he)return he.decode(f.subarray(E,L));for(var T="";E<L;){var ee=f[E++];if(!(ee&128)){T+=String.fromCharCode(ee);continue}var Ie=f[E++]&63;if((ee&224)==192){T+=String.fromCharCode((ee&31)<<6|Ie);continue}var Oe=f[E++]&63;if((ee&240)==224?ee=(ee&15)<<12|Ie<<6|Oe:ee=(ee&7)<<18|Ie<<12|Oe<<6|f[E++]&63,ee<65536)T+=String.fromCharCode(ee);else{var it=ee-65536;T+=String.fromCharCode(55296|it>>10,56320|it&1023)}}return T}function De(f,E){return f?Pe(G,f,E):""}function Re(f,E,w,k){if(!(k>0))return 0;for(var L=w,T=w+k-1,ee=0;ee<f.length;++ee){var Ie=f.charCodeAt(ee);if(Ie>=55296&&Ie<=57343){var Oe=f.charCodeAt(++ee);Ie=65536+((Ie&1023)<<10)|Oe&1023}if(Ie<=127){if(w>=T)break;E[w++]=Ie}else if(Ie<=2047){if(w+1>=T)break;E[w++]=192|Ie>>6,E[w++]=128|Ie&63}else if(Ie<=65535){if(w+2>=T)break;E[w++]=224|Ie>>12,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}else{if(w+3>=T)break;E[w++]=240|Ie>>18,E[w++]=128|Ie>>12&63,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}}return E[w]=0,w-L}function se(f,E,w){return Re(f,G,E,w)}function Ae(f){for(var E=0,w=0;w<f.length;++w){var k=f.charCodeAt(w);k>=55296&&k<=57343&&(k=65536+((k&1023)<<10)|f.charCodeAt(++w)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function ye(f){var E=Ae(f)+1,w=pt(E);return w&&Re(f,ie,w,E),w}fun Line truncated
`)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=`
`));if(!E)return null;f.input=wA(E,!0)}return f.input.shift()},put_char:function(f,E){E===null||E===10?(S(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(S(Pe(f.output,0)),f.output=[])}},default_tty1_ops:{put_char:function(f,E){E===null||E===10?(P(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(P(Pe(f.output,0)),f.output=[])}}};function ss(f){for(var E=H(f,65536),w=pt(E);f<E;)ie[w+f++]=0;return w}var ut={ops_table:null,mount:function(f){return ut.createNode(null,"/",16895,0)},createNode:function(f,E,w,k){if(b.isBlkdev(w)||b.isFIFO(w))throw new b.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:b.chrdev_stream_ops}});var L=b.createNode(f,E,w,k);return b.isDir(L.mode)?(L.node_ops=ut.ops_table.dir.node,L.stream_ops=ut.ops_table.dir.stream,L.contents={}):b.isFile(L.mode)?(L.node_ops=ut.ops_table.file.node,L.stream_ops=ut.ops_table.file.stream,L.usedBytes=0,L.contents=null):b.isLink(L.mode)?(L.node_ops=ut.ops_table.link.node,L.stream_ops=ut.ops_table.link.stream):b.isChrdev(L.mode)&&(L.node_ops=ut.ops_table.chrdev.node,L.stream_ops=ut.ops_table.chrdev.stream),L.timestamp=Date.now(),f&&(f.contents[E]=L,f.timestamp=L.timestamp),L},getFileDataAsTypedArray:function(f){return f.contents?f.contents.subarray?f.contents.subarray(0,f.usedBytes):new Uint8Array(f.contents):new Uint8Array(0)},expandFileStorage:function(f,E){var w=f.contents?f.contents.length:0;if(!(w>=E)){var k=1024*1024;E=Math.max(E,w*(w<k?2:1.125)>>>0),w!=0&&(E=Math.max(E,256));var L=f.contents;f.contents=new Uint8Array(E),f.usedBytes>0&&f.contents.set(L.subarray(0,f.usedBytes),0)}},resizeFileStorage:function(f,E){if(f.usedBytes!=E)if(E==0)f.contents=null,f.usedBytes=0;else{var w=f.contents;f.contents=new Uint8Array(E),w&&f.contents.set(w.subarray(0,Math.min(E,f.usedBytes))),f.usedBytes=E}},node_ops:{getattr:function(f){var E={};return E.dev=b.isChrdev(f.mode)?f.id:1,E.ino=f.id,E.mode=f.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=f.rdev,b.isDir(f.mode)?E.size=4096:b.isFile(f.mode)?E.size=f.usedBytes:b.isLink(f.mode)?E.size=f.link.length:E.size=0,E.atime=new Date(f.timestamp),E.mtime=new Date(f.timestamp),E.ctime=new Date(f.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(f,E){E.mode!==void 0&&(f.mode=E.mode),E.timestamp!==void 0&&(f.timestamp=E.timestamp),E.size!==void 0&&ut.resizeFileStorage(f,E.size)},lookup:function(f,E){throw b.genericErrors[44]},mknod:function(f,E,w,k){return ut.createNode(f,E,w,k)},rename:function(f,E,w){if(b.isDir(f.mode)){var k;try{k=b.lookupNode(E,w)}catch{}if(k)for(var L in k.contents)throw new b.ErrnoError(55)}delete f.parent.contents[f.name],f.parent.timestamp=Date.now(),f.name=w,E.contents[w]=f,E.timestamp=f.parent.timestamp,f.parent=E},unlink:function(f,E){delete f.contents[E],f.timestamp=Date.now()},rmdir:function(f,E){var w=b.lookupNode(f,E);for(var k in w.contents)throw new b.ErrnoError(55);delete f.contents[E],f.timestamp=Date.now()},readdir:function(f){var E=[".",".."];for(var w in f.contents)!f.contents.hasOwnProperty(w)||E.push(w);return E},symlink:function(f,E,w){var k=ut.createNode(f,E,41471,0);return k.link=w,k},readlink:function(f){if(!b.isLink(f.mode))throw new b.ErrnoError(28);return f.link}},stream_ops:{read:function(f,E,w,k,L){var T=f.node.contents;if(L>=f.node.usedBytes)return 0;var ee=Math.min(f.node.usedBytes-L,k);if(ee>8&&T.subarray)E.set(T.subarray(L,L+ee),w);else for(var Ie=0;Ie<ee;Ie++)E[w+Ie]=T[L+Ie];return ee},write:function(f,E,w,k,L,T){if(E.buffer===ie.buffer&&(T=!1),!k)return 0;var ee=f.node;if(ee.timestamp=Date.now(),E.subarray&&(!ee.contents||ee.contents.subarray)){if(T)return ee.contents=E.subarray(w,w+k),ee.usedBytes=k,k;if(ee.usedBytes===0&&L===0)return ee.contents=E.slice(w,w+k),ee.usedBytes=k,k;if(L+k<=ee.usedBytes)return ee.contents.set(E.subarray(w,w+k),L),k}if(ut.expandFileStorage(ee,L+k),ee.contents.subarray&&E.subarray)ee.contents.set(E.subarray(w,w+k),L);else for(var Ie=0;Ie<k;Ie++)ee.contents[L+Ie]=E[w+Ie];return ee.usedBytes=Math.max(ee.usedBytes,L+k),k},llseek:function(f,E,w){var k=E;if(w===1?k+=f.position:w===2&&b.isFile(f.node.mode)&&(k+=f.node.usedBytes),k<0)throw new b.ErrnoError(28);return k},allocate:function(f,E,w){ut.expandFileStorage(f.node,E+w) 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}};KC.parse=(r,e,t)=>new KC(AFe(lFe(r),e),t);var AFe=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,lFe=r=>r.replace(/\n$/,"").split(`
`).reduce(cFe,Object.create(null)),cFe=(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};zV.exports=KC});var nh=I((Vot,VV)=>{VV.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var WB=I((Xot,XV)=>{"use strict";XV.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=I((_ot,ZV)=>{"use strict";var zB=["|","<",">","?",":"],bF=zB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),uFe=new Map(zB.map((r,e)=>[r,bF[e]])),gFe=new Map(bF.map((r,e)=>[r,zB[e]]));ZV.exports={encode:r=>zB.reduce((e,t)=>e.split(t).join(uFe.get(t)),r),decode:r=>bF.reduce((e,t)=>e.split(t).join(gFe.get(t)),r)}});var vF=I(($ot,$V)=>{var{isAbsolute:fFe,parse:_V}=J("path").win32;$V.exports=r=>{let e="",t=_V(r);for(;fFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=_V(r)}return[e,r]}});var t7=I((eat,e7)=>{"use strict";e7.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 OF=I((iat,p7)=>{"use strict";var A7=_f(),l7=JB(),c7=ih(),Xo=J("fs"),r7=J("path"),Vo=th(),hFe=nh(),u7=(r,e)=>e?(r=Vo(r).replace(/^\.(\/|$)/,""),hFe(e)+"/"+r):Vo(r),pFe=16*1024*1024,i7=Symbol("process"),n7=Symbol("file"),s7=Symbol("directory"),PF=Symbol("symlink"),o7=Symbol("hardlink"),UC=Symbol("header"),VB=Symbol("read"),kF=Symbol("lstat"),XB=Symbol("onlstat"),DF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),NF=Symbol("onopenfile"),sl=Symbol("close"),ZB=Symbol("mode"),TF=Symbol("awaitDrain"),xF=Symbol("ondrain"),Zo=Symbol("prefix"),a7=Symbol("hadError"),g7=WB(),dFe=SF(),f7=vF(),h7=t7(),_B=g7(class extends A7{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Vo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||pFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Vo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Vo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=dFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Vo(t.absolute||r7.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[XB](this.statCache.get(this.absolute)):this[kF]()}emit(e,...t){return e==="error"&&(this[a7]=!0),super.emit(e,...t)}[kF](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[XB](t)})}[XB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=mFe(e),this.emit("stat",e),this[i7]()}[i7](){switch(this.type){case"File":return this[n7]();case"Directory":return this[s7]();case"SymbolicLink":return this[PF]();default:return this.end()}}[ZB](e){return h7(e,this.type==="Directory",this.portable)}[Zo](e){return u7(e,this.prefix)}[UC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this[ZB](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 l7({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[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portabl Line truncated
`}),a},i})});var M0=I((_at,vZ)=>{var wTe=Ss(),BTe=fC(),QTe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bTe=/^\w*$/;function STe(r,e){if(wTe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||BTe(r)?!0:bTe.test(r)||!QTe.test(r)||e!=null&&r in Object(e)}vZ.exports=STe});var K0=I(($at,xZ)=>{var vTe=Tc(),xTe=xn(),PTe="[object AsyncFunction]",kTe="[object Function]",DTe="[object GeneratorFunction]",RTe="[object Proxy]";function FTe(r){if(!xTe(r))return!1;var e=vTe(r);return e==kTe||e==DTe||e==PTe||e==RTe}xZ.exports=FTe});var kZ=I((eAt,PZ)=>{var NTe=Is(),TTe=NTe["__core-js_shared__"];PZ.exports=TTe});var FZ=I((tAt,RZ)=>{var ON=kZ(),DZ=function(){var r=/[^.]+$/.exec(ON&&ON.keys&&ON.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function LTe(r){return!!DZ&&DZ in r}RZ.exports=LTe});var MN=I((rAt,NZ)=>{var OTe=Function.prototype,MTe=OTe.toString;function KTe(r){if(r!=null){try{return MTe.call(r)}catch{}try{return r+""}catch{}}return""}NZ.exports=KTe});var LZ=I((iAt,TZ)=>{var UTe=K0(),HTe=FZ(),jTe=xn(),GTe=MN(),YTe=/[\\^$.*+?()[\]{}|]/g,qTe=/^\[object .+?Constructor\]$/,JTe=Function.prototype,WTe=Object.prototype,zTe=JTe.toString,VTe=WTe.hasOwnProperty,XTe=RegExp("^"+zTe.call(VTe).replace(YTe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZTe(r){if(!jTe(r)||HTe(r))return!1;var e=UTe(r)?XTe:qTe;return e.test(GTe(r))}TZ.exports=ZTe});var MZ=I((nAt,OZ)=>{function _Te(r,e){return r==null?void 0:r[e]}OZ.exports=_Te});var hl=I((sAt,KZ)=>{var $Te=LZ(),eLe=MZ();function tLe(r,e){var t=eLe(r,e);return $Te(t)?t:void 0}KZ.exports=tLe});var $C=I((oAt,UZ)=>{var rLe=hl(),iLe=rLe(Object,"create");UZ.exports=iLe});var GZ=I((aAt,jZ)=>{var HZ=$C();function nLe(){this.__data__=HZ?HZ(null):{},this.size=0}jZ.exports=nLe});var qZ=I((AAt,YZ)=>{function sLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}YZ.exports=sLe});var WZ=I((lAt,JZ)=>{var oLe=$C(),aLe="__lodash_hash_undefined__",ALe=Object.prototype,lLe=ALe.hasOwnProperty;function cLe(r){var e=this.__data__;if(oLe){var t=e[r];return t===aLe?void 0:t}return lLe.call(e,r)?e[r]:void 0}JZ.exports=cLe});var VZ=I((cAt,zZ)=>{var uLe=$C(),gLe=Object.prototype,fLe=gLe.hasOwnProperty;function hLe(r){var e=this.__data__;return uLe?e[r]!==void 0:fLe.call(e,r)}zZ.exports=hLe});var ZZ=I((uAt,XZ)=>{var pLe=$C(),dLe="__lodash_hash_undefined__";function CLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pLe&&e===void 0?dLe:e,this}XZ.exports=CLe});var $Z=I((gAt,_Z)=>{var mLe=GZ(),ELe=qZ(),ILe=WZ(),yLe=VZ(),wLe=ZZ();function Eh(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])}}Eh.prototype.clear=mLe;Eh.prototype.delete=ELe;Eh.prototype.get=ILe;Eh.prototype.has=yLe;Eh.prototype.set=wLe;_Z.exports=Eh});var t_=I((fAt,e_)=>{function BLe(){this.__data__=[],this.size=0}e_.exports=BLe});var Ih=I((hAt,r_)=>{function QLe(r,e){return r===e||r!==r&&e!==e}r_.exports=QLe});var em=I((pAt,i_)=>{var bLe=Ih();function SLe(r,e){for(var t=r.length;t--;)if(bLe(r[t][0],e))return t;return-1}i_.exports=SLe});var s_=I((dAt,n_)=>{var vLe=em(),xLe=Array.prototype,PLe=xLe.splice;function kLe(r){var e=this.__data__,t=vLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():PLe.call(e,t,1),--this.size,!0}n_.exports=kLe});var a_=I((CAt,o_)=>{var DLe=em();function RLe(r){var e=this.__data__,t=DLe(e,r);return t<0?void 0:e[t][1]}o_.exports=RLe});var l_=I((mAt,A_)=>{var FLe=em();function NLe(r){return FLe(this.__data__,r)>-1}A_.exports=NLe});var u_=I((EAt,c_)=>{var TLe=em();function LLe(r,e){var t=this.__data__,i=TLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}c_.exports=LLe});var tm=I((IAt,g_)=>{var OLe=t_(),MLe=s_(),KLe=a_(),ULe=l_(),HLe=u_();function yh(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])}}yh.prototype.clear=OLe;yh.prototype.delete=MLe;yh.prototype.get=KLe;yh.prototype.has=ULe;yh.prototype.set=HLe;g_.exports=yh});var U0=I((yAt,f_)=>{var jLe=hl(),GLe=Is(),YLe=jLe(GLe,"Map");f_.exports=YLe});var d_=I((wAt,p_)=>{var h_=$Z(),qLe=tm(),JLe=U0();function WLe(){this.size=0,this.__data__={hash:new h_,map:new(JLe||qLe),string:new h_}}p_.exports=WLe});var m_=I((BAt,C_)=>{function zLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}C_.exports=zLe});var rm=I((QAt,E_)=>{var VLe=m_();function XLe(r,e){var t=r.__data__;return VLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}E_.exports=XLe});var y_=I((bAt,I_)=>{var ZLe=rm();function _Le(r){var e=ZLe(this,r).delete(r);return this.size-=e?1:0,e}I_.exports=_Le});var B_=I((SAt,w_)=>{var $Le=rm();function eOe(r){return $Le(this,r).get(r)}w_.exports=eOe});var b_=I((vAt,Q_)=>{var tOe=rm();function rOe(r){return tOe(this,r).has(r)}Q_.exports=rOe});var v_=I((xAt,S_)=>{var iOe=rm();function nOe(r,e){var t=iOe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}S_.exports=nOe});var H0=I((PAt,x_)=>{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,Rs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,yre.default)({args:g,value:u,path:s,sync:n,tests:h,endEarly:c},p=>{if(p)return void i(p,u);(0,yre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Rs({},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(Rs({},t,{value:e})),n;return i._validate(e,Rs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Bre.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Bre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ire.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Th.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Th.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Th.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,pQ.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,XHe.default)(e).map(s=>new zHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new WHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,pQ.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Th.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,pQ.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Th.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,pQ.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)}}};dQ.default=co;co.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])co.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,VHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Rs({},i,{parent:n,path:e}))};for(let r of["equals","is"])co.prototype[r]=co.prototype.oneOf;for(let r of["not","nope"])co.prototype[r]=co.prototype.notOneOf;co.prototype.optional=co.prototype.notRequired});var Sre=I(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.create=bre;ym.default=void 0;var ZHe=_He(oA());function _He(r){return r&&r.__esModule?r:{default:r}}var LT=ZHe.default,$He=LT;ym.default=$He;function bre(){return new LT}bre.prototype=LT.prototype});var Lh=I(CQ=>{"use strict";Object.defineProperty(CQ,"__esModule",{value:!0});CQ.default=void 0;var eje=r=>r==null;CQ.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=fYe,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(!gYe(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=rne(),r.define=n,r};ZT.exports=ine();ZT.exports.create=ine});var Yi=I(Ft=>{"use strict";var hYe=Object.prototype.toString,Fs=uo(),nne=!1,_T=[],sne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Ft.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Ft.hasColor=r=>!!r&&Fs.hasColor(r);var BQ=Ft.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Ft.nativeType=r=>hYe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Ft.isAsyncFn=r=>Ft.nativeType(r)==="asyncfunction";Ft.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Ft.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Ft.scrollDown=(r=[])=>[...r.slice(1),r[0]];Ft.scrollUp=(r=[])=>[r.pop(),...r];Ft.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index<i.index?-1:0),e};Ft.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};Ft.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};Ft.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Ft.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=`
`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Ft.unmute=r=>{let e=r.stack.find(i=>Fs.keys.color.includes(i));return e?Fs[e]:r.stack.find(i=>i.slice(2)==="bg")?Fs[e.slice(2)]:i=>i};Ft.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Ft.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i));if(e){let i=Fs["bg"+Ft.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Fs[t.slice(2).toLowerCase()]||r:Fs.none};Ft.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Fs[sne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=sne[i];return n&&Fs["bg"+Ft.pascal(n)]||r}return Fs.none};Ft.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};Ft.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Ft.isObject(a)&&s<o.length-1&&(a={}),i[n]=a},r);Ft.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};Ft.mixin=(r,e)=>{if(!BQ(r))return e;if(!BQ(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&BQ(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);BQ(n.value)?r[t]=Ft.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Ft.merge=(...r)=>{let e={};for(let t of r)Ft.mixin(e,t);return e};Ft.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Ft.define(r,i,n.bind(e)):Ft.define(r,i,n)}};Ft.onExit=r=>{let e=(t,i)=>{nne||(nne=!0,_T.forEach(n=>n()),t===!0&&process.exit(128+i))};_T.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_T.push(r)};Ft.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Ft.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var one=I(jh=>{"use strict";jh.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"};jh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};jh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};jh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};jh.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 lne=I((Ogt,Ane)=>{"use strict";var ane=J("readline"),pYe=one(),dYe=/^(?:\x1b)([a-zA-Z0-9])$/,CYe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,mYe={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 EYe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function IYe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var QQ=(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=dYe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=CYe.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=mYe[s],i.shift=EYe(s)||i.shift,i.ctrl=IYe(s)||i.ctrl}return i};QQ.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ane.createInterface({terminal:!0,input:t});ane.emitKeypressEvents(t,i);let n=(a,l)=>e(a,QQ(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()}};QQ.action=(r,e,t)=>{let i={...pYe,...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)};Ane.exports=QQ});var une=I((Mgt,cne)=>{"use strict";cne.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}),yYe(r,t,i)}};function yYe(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 fne=I((Kgt,gne)=>{"use strict";var{define:wYe,width:BYe}=Yi(),$T=class{constructor(e){let t=e.options;wYe(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=BYe(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"}};gne.exports=$T});var pne=I((Ugt,hne)=>{"use strict";var eL=Yi(),ki=uo(),tL={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary: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}};tL.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=eL.merge({},tL,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};hne.exports=tL});var Cne=I((Hgt,dne)=>{"use strict";var rL=process.platform==="win32",AA=uo(),QYe=Yi(),iL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electr Line truncated
`),c=l[0],u=l[l.length-1],h=(i+(t?" "+t:"")).length,p=h<c.length?c.slice(h+1):"";return{header:o,prompt:c,after:p,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(Au.cursor.down(e.rest.length)),this.write(`
`.repeat(t))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=aL.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:t,result:i}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,Rn.isObject(e)&&(e=e[i.status]||e.pending),Rn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Rn.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 Rn.isObject(s)&&(s=s[i.status]||s.pending),Rn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&Rn.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=Rn.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"&&Rn.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 Rn.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 Rn.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 Rn.resolve(this,e,...t)}get base(){return Om.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Rn.height(this.stdout,25)}get width(){return this.options.columns||Rn.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 FYe(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 NYe(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}Sne.exports=Om});var Pne=I((Ygt,xne)=>{"use strict";var TYe=Yi(),vne={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 vne.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}};xne.exports=(r,e={})=>{let t=TYe.merge({},vne,e.roles);return t[r]||t.default}});var Mm=I((qgt,Rne)=>{"use strict";var LYe=uo(),OYe=Gh(),MYe=Pne(),bQ=Yi(),{reorder:AL,scrollUp:KYe,scrollDown:UYe,isObject:kne,swap:HYe}=bQ,lL=class extends OYe{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");kne(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=MYe(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,bQ.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,LYe.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()}};Fne.exports=uL});var Tne=I((Wgt,Nne)=>{"use strict";var GYe=dl(),YYe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends GYe{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=YYe(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()}};Nne.exports=gL});var hL=I((zgt,Lne)=>{"use strict";var fL=Yi();Lne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",h=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,h=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let p=i&&i.startsWith(t)&&i!==t,d=p?c(i[t.length]):h;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),d=""),s===!1&&(d=""),p){let m=r.styles.unstyle(u+d);return u+d+a(i.slice(m.length))}return u+d}});var SQ=I((Vgt,One)=>{"use strict";var qYe=uo(),JYe=dl(),WYe=hL(),pL=class extends JYe{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:h,danger:p}=n,d=l,m=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let P=this.values[a]=c||o,F=c?"success":"dark";await y.call(e,P,this.s Line truncated
`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Gne.exports=CL});var qne=I(($gt,Yne)=>{"use strict";var tqe=vQ(),mL=class extends tqe{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Yne.exports=mL});var Wne=I((eft,Jne)=>{"use strict";var rqe=dl(),iqe=SQ(),Yh=iqe.prototype,EL=class extends rqe{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]():Yh.dispatch.call(this,e,t)}append(e,t){return Yh.append.call(this,e,t)}delete(e,t){return Yh.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?Yh.next.call(this):super.next()}prev(){return this.focused.editable?Yh.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?Yh.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)}};Jne.exports=EL});var lu=I((tft,zne)=>{"use strict";var nqe=Gh(),sqe=hL(),{isPrimitive:oqe}=Yi(),IL=class extends nqe{constructor(e){super(e),this.initial=oqe(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):sqe(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()}};zne.exports=IL});var Xne=I((rft,Vne)=>{"use strict";var aqe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),xQ=r=>aqe(r).filter(Boolean);Vne.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:xQ([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:xQ([...s,t]),present:o};case"save":return{past:xQ([...i,t]),present:""};case"remove":return o=xQ(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var wL=I((ift,_ne)=>{"use strict";var Aqe=lu(),Zne=Xne(),yL=class extends Aqe{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=Zne(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=Zne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};_ne.exports=yL});var ese=I((nft,$ne)=>{"use strict";var lqe=lu(),BL=class extends lqe{format(){return""}};$ne.exports=BL});var rse=I((sft,tse)=>{"use strict";var cqe=lu(),QL=class extends cqe{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()}};tse.exports=QL});var nse=I((oft,ise)=>{"use strict";var uqe=dl(),bL=class extends uqe{constructor(e){super({...e,multiple:!0})}};ise.exports=bL});var vL=I((aft,sse)=>{"use strict";var gqe=lu(),SL=class extends gqe{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()}};sse.exports=SL});var ase=I((Aft,ose)=>{ose.exports=vL()});var lse=I((lft,Ase)=>{"use strict";var fqe=lu(),xL=class extends fqe{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)):""}};Ase.exports=xL});var gse=I((cft,use)=>{"use strict";var hqe=uo(),pqe=Mm(),cse=Yi(),PL=class extends pqe{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(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(i=>` ${i.name} - ${i.message}`)].map(i=>this.styles.muted(i)).join(`
`)}renderScaleHeading(e){let t=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(t=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-t.join("").length,n=Math.round(i/(t.length-1)),o=t.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,t,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,t,i);let n=e.scaleIndex===t.index;return t.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,t){let i=e.scale.map(s=>this.scaleIndicator(e,s,t)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await e.hint;s&&!cse.hasColor(s)&&(s=this.styles.muted(s));let o=d=>this.margin[3]+d.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=hqe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let p=cse.wordWrap(c,{width:this.widths[0],newline:a}).split(`
`).map(d=>o(d)+this.margin[1]);return i&&(u=this.styles.info(u),p=p.map(d=>this.styles.info(d))),p[0]+=u,this.linebreak&&p.push(""),[l+n,p.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(),h=await this.footer(),p=this.emptyError;l&&(o+=l),u&&!o.includes(u)&&(o+=" "+u),e&&!l&&!g.trim()&&this.multiple&&p!=null&&(o+=this.styles.danger(p)),this.clear(t),this.write([a,o,c,g,h].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)}};use.exports=PL});var pse=I((uft,hse)=>{"use strict";var fse=uo(),dqe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",DL=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=dqe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Cqe=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],h=()=>s[u+1],p=d=>{d.line=c,o.push(d)};for(p({type:"bos",value:""});u<s.length-1;){let d=g();if(/^[^\S\n ]$/.test(d)){p({type:"text",value:d});continue}if(d===`
`){p({type:"newline",value:d}),c++;continue}if(d==="\\"){d+=g(),p({type:"text",value:d});continue}if((d==="$"||d==="#"||d==="{")&&h()==="{"){let y=g();d+=y;let B={type:"template",open:d,inner:"",close:"",value:d},S;for(;S=g();){if(S==="}"){h()==="}"&&(S+=g()),B.value+=S,B.close=S;break}S===":"?(B.initial="",B.key=B.inner):B.initial!==void 0&&(B.initial+=S),B.value+=S,B.inner+=S}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),p(B),l.push(B.key),i.add(B.key);let P=a.find(F=>F.name===B.key);B.field=n.find(F=>F.name===B.key),P||(P=new DL(B),a.push(P)),P.lines.push(B.line-1);continue}let m=o[o.length-1];m.type==="text"&&m.line===c?m.value+=d:p({type:"text",value:d})}return p({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};hse.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 Cqe(e,i),a=kL("result",r,e),l=kL("format",r,e),c=kL("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},h=!1)=>{let p=0;g.required=t,g.items=s,g.keys=o,g.output="";let d=async(S,P,F,H)=>{let q=await c(S,P,F,H);return q===!1?"Invalid field "+F.name:q};for(let S of n){let P=S.value,F=S.key;if(S.type!=="template"){P&&(g.output+=P);continue}if(S.type==="template"){let H=s.find(Z=>Z.name===F);e.required===!0&&g.required.add(H.name);let q=[H.input,g.values[H.value],H.value,P].find(u),X=(H.field||{}).message||S.inner;if(h){let Z=await d(g.values[F],g,H,p);if(Z&&typeof Z=="string"||Z===!1){g.invalid.set(F,Z);continue}g.invalid.delete(F);let A=await a(g.values[F],g,H,p);g.output+=fse.unstyle(A);continue}H.placeholder=!1;let W=P;P=await l(P,g,H,p),q!==P?(g.values[F]=q,P=r.styles.typing(q),g.missing.delete(X)):(g.values[F]=void 0,q=`<${X}>`,P=r.styles.primary(q),H.placeholder=!0,g.required.has(F)&&g.missing.add(X)),g.missing.has(X)&&g.validating&&(P=r.styles.warning(q)),g.invalid.has(F)&&g.validating&&(P=r.styles.danger(q)),p===g.index&&(W!==P?P=r.styles.underline(P):P=r.styles.heading(fse.unstyle(P))),p++}P&&(g.output+=P)}let m=g.output.split(`
`).map(S=>" "+S),y=s.length,B=0;for(let S of s)g.invalid.has(S.name)&&S.lines.forEach(P=>{m[P][0]===" "&&(m[P]=g.styles.danger(g.symbols.bullet)+m[P].slice(1))}),r.isValue(g.values[S.name])&&B++;return g.completed=(B/y*100).toFixed(0),g.output=m.join(`
`),g.output}};function kL(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 Cse=I((gft,dse)=>{"use strict";var mqe=uo(),Eqe=pse(),Iqe=Gh(),RL=class extends Iqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Eqe(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(S=>S!=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()||"",h=await this.hint()||"",p=i?"":await this.interpolate(this.state),d=this.state.key=t[e]||"",m=await this.format(d),y=await this.footer();m&&(c+=" "+m),h&&!m&&this.state.completed===0&&(c+=" "+h),this.clear(n);let B=[u,c,p,y,g.trim()];this.write(B.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:t,keys:i,index:n}=this.state,s=t.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:t,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c}
`;return this.state.error=a,super.submit()}if(t.size)return this.state.error="Required: "+[...t.keys()].join(", "),super.submit();let o=mqe.unstyle(i).split(`
`).map(a=>a.slice(1)).join(`
`);return this.value={values:n,result:o},super.submit()}};dse.exports=RL});var Ese=I((fft,mse)=>{"use strict";var yqe="(Use <shift>+<up/down> to sort)",wqe=dl(),FL=class extends wqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,yqe].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()}};mse.exports=FL});var yse=I((hft,Ise)=>{"use strict";var Bqe=Mm(),NL=class extends Bqe{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=Qqe(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=P=>(P?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,h=await this.resolve(e.message,this.state,e,t),p=this.indent(e),d=p+e.scale.map((P,F)=>c(F===e.scaleIdx)).join(a),m=P=>P===e.scaleIdx?g(P):P,y=p+e.scale.map((P,F)=>m(F)).join(l),B=()=>[u,h].filter(Boolean).join(" "),S=()=>[B(),d,y," "].filter(Boolean).join(`
`);return i&&(d=this.styles.cyan(d),y=this.styles.cyan(y)),S()}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 Qqe(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}Ise.exports=NL});var Bse=I((pft,wse)=>{wse.exports=wL()});var bse=I((dft,Qse)=>{"use strict";var bqe=vQ(),TL=class extends bqe{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()}};Qse.exports=TL});var vse=I((Cft,Sse)=>{"use strict";var Sqe=dl(),LL=class extends Sqe{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)}}};Sse.exports=LL});var Pse=I(OL=>{"use strict";var xse=Yi(),ci=(r,e)=>{xse.defineExport(OL,r,e),xse.defineExport(OL,r.toLowerCase(),e)};ci("AutoComplete",()=>Tne());ci("BasicAuth",()=>jne());ci("Confirm",()=>qne());ci("Editable",()=>Wne());ci("Form",()=>SQ());ci("Input",()=>wL());ci("Invisible",()=>ese());ci("List",()=>rse());ci("MultiSelect",()=>nse());ci("Numeral",()=>ase());ci("Password",()=>lse());ci("Scale",()=>gse());ci("Select",()=>dl());ci("Snippet",()=>Cse());ci("Sort",()=>Ese());ci("Survey",()=>yse());ci("Text",()=>Bse());ci("Toggle",()=>bse());ci("Quiz",()=>vse())});var Dse=I((Eft,kse)=>{kse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:vQ(),NumberPrompt:vL(),StringPrompt:lu()}});var Um=I((Ift,Fse)=>{"use strict";var Rse=J("assert"),KL=J("events"),Cl=Yi(),fo=class extends KL{constructor(e,t){super(),this.options=Cl.merge({},e),this.answers={...t}}register(e,t){if(Cl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Rse.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(Cl.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=Cl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Cl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Rse(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||Gh()}static get prompts(){return Pse()}static get types(){return Dse()}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 Cl.mixinEmitter(e,new KL),e}};Cl.mixinEmitter(fo,new KL);var ML=fo.prompts;for(let r of Object.keys(ML)){let e=r.toLowerCase(),t=i=>new ML[r](i).run();fo.prompt[e]=t,fo[e]=t,fo[r]||Reflect.defineProperty(fo,r,{get:()=>ML[r]})}var Km=r=>{Cl.defineExport(fo,r,()=>fo.types[r])};Km("ArrayPrompt");Km("AuthPrompt");Km("BooleanPrompt");Km("NumberPrompt");Km("StringPrompt");Fse.exports=fo});var Gse=I((aht,jse)=>{function Dqe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i&&e(r[t],t,r)!==!1;);return r}jse.exports=Dqe});var Jh=I((Aht,Yse)=>{var Rqe=j0(),Fqe=Qh();function Nqe(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?Fqe(t,a,l):Rqe(t,a,l)}return t}Yse.exports=Nqe});var Jse=I((lht,qse)=>{var Tqe=Jh(),Lqe=Rh();function Oqe(r,e){return r&&Tqe(e,Lqe(e),r)}qse.exports=Oqe});var zse=I((cht,Wse)=>{function Mqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Wse.exports=Mqe});var Xse=I((uht,Vse)=>{var Kqe=xn(),Uqe=oQ(),Hqe=zse(),jqe=Object.prototype,Gqe=jqe.hasOwnProperty;function Yqe(r){if(!Kqe(r))return Hqe(r);var e=Uqe(r),t=[];for(var i in r)i=="constructor"&&(e||!Gqe.call(r,i))||t.push(i);return t}Vse.exports=Yqe});var Wh=I((ght,Zse)=>{var qqe=lT(),Jqe=Xse(),Wqe=fm();function zqe(r){return Wqe(r)?qqe(r,!0):Jqe(r)}Zse.exports=zqe});var $se=I((fht,_se)=>{var Vqe=Jh(),Xqe=Wh();function Zqe(r,e){return r&&Vqe(e,Xqe(e),r)}_se.exports=Zqe});var qL=I((Ym,zh)=>{var _qe=Is(),ioe=typeof Ym=="object"&&Ym&&!Ym.nodeType&&Ym,eoe=ioe&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,$qe=eoe&&eoe.exports===ioe,toe=$qe?_qe.Buffer:void 0,roe=toe?toe.allocUnsafe:void 0;function eJe(r,e){if(e)return r.slice();var t=r.length,i=roe?roe(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 Hze(r,e,t){let i=Ns.relative(Ns.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ns.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=lM(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 jze(r,e,t){let i=Ns.relative(Ns.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ns.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=lM(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let h=t.progArgs?`${t.progArgs.join(" ")} `:"",p=`#!/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&&(p+=` else {
$env:NODE_PATH="${g}"
}`),o?p+=`
$ret=0
if (Test-Path ${o}) {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${o} ${l} ${i} ${h}$args
} else {
& ${o} ${l} ${i} ${h}$args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${s} ${l} ${i} ${h}$args
} else {
& ${s} ${l} ${i} ${h}$args
}
$ret=$LASTEXITCODE
}
${t.nodePath?`$env:NODE_PATH=$env_node_path
`:""}exit $ret
`:p+=`
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${s} ${l} ${i} ${h}$args
} else {
& ${s} ${l} ${i} ${h}$args
}
${t.nodePath?`$env:NODE_PATH=$env_node_path
`:""}exit $LASTEXITCODE
`,p}function Gze(r,e){return e.fs_.chmod(r,493)}function lM(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ns.delimiter):Array.from(r),t={};for(let i=0;i<e.length;i++){let n=e[i].split("/").join("\\"),s=Fle()?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}Tle.exports=AM});var yM=I((pbt,rce)=>{rce.exports=J("stream")});var oce=I((dbt,sce)=>{"use strict";function ice(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 l5e(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ice(Object(t),!0).forEach(function(i){c5e(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ice(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function c5e(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function u5e(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function nce(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 g5e(r,e,t){return e&&nce(r.prototype,e),t&&nce(r,t),r}var f5e=J("buffer"),pb=f5e.Buffer,h5e=J("util"),wM=h5e.inspect,p5e=wM&&wM.custom||"inspect";function d5e(r,e,t){pb.prototype.copy.call(r,e,t)}sce.exports=function(){function r(){u5e(this,r),this.head=null,this.tail=null,this.length=0}return g5e(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 pb.alloc(0);for(var i=pb.allocUnsafe(t>>>0),n=this.head,s=0;n;)d5e(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=pb.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:p5e,value:function(t,i){return wM(this,l5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var QM=I((Cbt,Ace)=>{"use strict";function C5e(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(BM,this,r)):process.nextTick(BM,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(db,t):(t._writableState.errorEmitted=!0,process.nextTick(ace,t,s)):process.nextTick(ace,t,s):e?(process.nextTick(db,t),e(s)):process.nextTick(db,t)}),this)}function ace(r,e){BM(r,e),db(r)}function db(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function m5e(){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 BM(r,e){r.emit("error",e)}function E5e(r,e){var t=r._readableState,i=r._writableState;t&&t.a Line truncated
`)),r.linkname&&(e+=_M(" linkpath="+r.linkname+`
`));var t=r.pax;if(t)for(var i in t)e+=_M(" "+i+"="+t[i]+`
`);return Buffer.from(e)};hp.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};hp.encode=function(r){var e=u9e(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(Dl(r.mode&C9e,6),100),e.write(Dl(r.uid,6),108),e.write(Dl(r.gid,6),116),e.write(Dl(r.size,11),124),e.write(Dl(r.mtime.getTime()/1e3|0,11),136),e[156]=Aue+I9e(r.type),r.linkname&&e.write(r.linkname,157),lue.copy(e,bE),h9e.copy(e,$M),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Dl(r.devmajor||0,6),329),e.write(Dl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Dl(uue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Aue,n=fp(r,0,100,e),s=Rl(r,100,8),o=Rl(r,108,8),a=Rl(r,116,8),l=Rl(r,124,12),c=Rl(r,136,12),u=E9e(i),g=r[157]===0?null:fp(r,157,100,e),h=fp(r,265,32),p=fp(r,297,32),d=Rl(r,329,8),m=Rl(r,337,8),y=uue(r);if(y===8*32)return null;if(y!==Rl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(lue.compare(r,bE,bE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(p9e.compare(r,bE,bE+6)===0&&d9e.compare(r,$M,$M+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:h,gname:p,devmajor:d,devminor:m}}});var mue=I((Obt,Cue)=>{var fue=J("util"),w9e=aue(),SE=e1(),hue=gp().Writable,pue=gp().PassThrough,due=function(){},gue=function(r){return r&=511,r&&512-r},B9e=function(r,e){var t=new Db(r,e);return t.end(),t},Q9e=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},Db=function(r,e){this._parent=r,this.offset=e,pue.call(this,{autoDestroy:!1})};fue.inherits(Db,pue);Db.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);hue.call(this,r),r=r||{},this._offset=0,this._buffer=w9e(),this._missing=0,this._partial=!1,this._onparse=due,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(h){if(e._locked=!1,h)return e.destroy(h);e._stream||i()},s=function(){e._stream=null;var h=gue(e._header.size);h?e._parse(h,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(gue(e._header.size)),e._parse(512,g),i()},a=function(){var h=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,h)),t.consume(h),s()},l=function(){var h=e._header.size;e._pax=SE.decodePax(t.slice(0,h)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(h),s()},c=function(){var h=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},u=function(){var h=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},g=function(){var h=e._offset,p;try{p=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(d){e.emit("error",d)}if(t.consume(512),!p){e._parse(512,g),i();return}if(p.type==="gnu-long-path"){e._parse(p.size,c),i();return}if(p.type==="gnu-long-link-path"){e._parse(p.size,u),i();return}if(p.type==="pax-global-header"){e._parse(p.size,a),i();return}if(p.type==="pax-header"){e._parse(p.size,l),i();return}if(e._gnuLongPath&&(p.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(p.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=p=Q9e(p,e._pax),e._pax=null),e._locked=!0,!p.size||p.type==="directory"){e._parse(512,g),e.emit("entry",p,B9e(e,h),n);return}e._stream=new Db(e,h),e.emit("entry",p,e._stream,n),e._parse(p.size,s),i()};this._onheader=g,this._parse(512,g)};fue.inherits(dA,hue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=due,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.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}}ca.exports.checkStream=tVe;function tVe(r,e,t){t=An(t);let i=t.Promise||Promise,n=u1(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ca.exports.integrityStream=u1;function u1(r){r=An(r);let e=r.integrity&&la(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(PE.createHash),a=0,l=new J9e({transform(c,u,g){a+=c.length,o.forEach(h=>h.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=la(o.map((h,p)=>`${s[p]}-${h.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let h=new Error(`stream size mismatch when checking ${e}.
Wanted: ${r.size}
Found: ${a}`);h.code="EBADSIZE",h.found=a,h.expected=r.size,h.sri=e,l.emit("error",h)}else if(r.integrity&&!g){let h=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);h.code="EINTEGRITY",h.found=u,h.expected=n,h.algorithm=i,h.sri=e,l.emit("error",h)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ca.exports.create=rVe;function rVe(r){r=An(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(PE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Fl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new $u)}}}var iVe=new Set(PE.getHashes()),Uue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>iVe.has(r));function nVe(r,e){return Uue.indexOf(r.toLowerCase())>=Uue.indexOf(e.toLowerCase())?r:e}});var om={};ct(om,{BuildType:()=>L0,Cache:()=>Dt,Configuration:()=>Ee,DEFAULT_LOCK_FILENAME:()=>oD,DEFAULT_RC_FILENAME:()=>sD,FormatType:()=>Bz,InstallMode:()=>ts,LightReport:()=>ta,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>dt,MultiFetcher:()=>kf,PackageExtensionStatus:()=>Xx,PackageExtensionType:()=>Vx,Project:()=>Ge,ProjectLookup:()=>cD,Report:()=>xi,ReportError:()=>rt,SettingsType:()=>aD,StreamReport:()=>He,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>$r,VirtualFetcher:()=>Ff,Workspace:()=>bh,WorkspaceFetcher:()=>Tf,WorkspaceResolver:()=>Hr,YarnVersion:()=>Nr,execUtils:()=>pr,folderUtils:()=>Nw,formatUtils:()=>$,hashUtils:()=>Ai,httpUtils:()=>Vt,miscUtils:()=>me,nodeUtils:()=>ys,parseMessageName:()=>TI,scriptUtils:()=>Yt,semverUtils:()=>bt,stringifyMessageName:()=>RA,structUtils:()=>x,tgzUtils:()=>Ci,treeUtils:()=>es});var pr={};ct(pr,{EndStrategy:()=>hD,ExecError:()=>jw,PipeError:()=>CC,execvp:()=>tD,pipevp:()=>so});var zp={};ct(zp,{AliasFS:()=>bo,CustomDir:()=>jp,CwdFS:()=>jt,DEFAULT_COMPRESSION_LEVEL:()=>_l,FakeFS:()=>wa,Filename:()=>St,JailFS:()=>So,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>qp,NodeFS:()=>Zt,PortablePath:()=>Te,PosixFS:()=>vg,ProxiedFS:()=>hi,VirtualFS:()=>wr,ZipFS:()=>qr,ZipOpenFS:()=>Kn,constants:()=>xr,extendFs:()=>aI,normalizeLineEndings:()=>Zl,npath:()=>K,opendir:()=>eI,patchFs:()=>QS,ppath:()=>v,statUtils:()=>Mp,toFilename:()=>Yr,xfs:()=>M});var xr={};ct(xr,{SAFE_TIME:()=>oK,S_IFDIR:()=>zl,S_IFLNK:()=>Xl,S_IFMT:()=>Ys,S_IFREG:()=>Vl});var Ys=61440,zl=16384,Vl=32768,Xl=40960,oK=456789e3;var Mp={};ct(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Lp,DirEntry:()=>cS,StatEntry:()=>ya,areStatsEqual:()=>gS,clearStats:()=>JE,convertToBigIntStats:()=>WE,makeDefaultStats:()=>Op,makeEmptyStats:()=>Gge});var uS=ve(J("util"));var Lp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ya=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=Lp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Lp);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 Op(){return new ya}function Gge(){return JE(Op())}function JE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function WE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigIn 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)}},vA=class extends wa{constructor(){super(v)}};function $ge(r){let e=r.match(/\r?\n/g);if(e===null)return fK.EOL;let t=e.filter(n=>n===`\r
`).length,i=e.length-t;return t>i?`\r
`:`
`}function Zl(r,e){return e.replace(/\r?\n/g,$ge(r))}var bg=J("fs"),IS=J("stream"),CK=J("util"),yS=ve(J("zlib"));var hK=ve(J("fs"));var Zt=class extends vA{constructor(t=hK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Te.root}resolve(t){return v.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let Line truncated
`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Lfe=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(dU,([r,e])=>[r,`"$'${e}'"`])]),CU=r=>{var e;return(e=dU.get(r))!=null?e:`\\x${r.charCodeAt(0).toString(16).padStart(2,"0")}`},Ofe=r=>{var e;return(e=Lfe.get(r))!=null?e:`"$'${CU(r)}'"`};function US(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?"''":i.match(/[()}<>$|&;"'\n\t ]/)?i.match(/['\t\p{C}]/u)?i.match(/'/)?`"${i.replace(/["$\t\p{C}]/u,Ofe)}"`:`$'${i.replace(/[\t\p{C}]/u,CU)}'`:`'${i}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${Rg(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue>"u"?typeof r.alternativeValue>"u"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>ec(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>ec(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${gI(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function gI(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(gI(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var IU=ve(EU());function fI(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,IU.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function hI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var SI=ve(cH()),pH=ve(gH()),mde=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,fH=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],bI=class{constructor(e){this.data=e}};function hH(r){return r.match(mde)?r:JSON.stringify(r)}function dH(r){return typeof r>"u"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>dH(r[e])):!1}function $S(r,e,t){if(r===null)return`null
`;if(typeof r=="number"||typeof r=="boolean")return`${r.toString()}
`;if(typeof r=="string")return`${hH(r)}
`;if(Array.isArray(r)){if(r.length===0)return`[]
`;let i=" ".repeat(e);return`
${r.map(s=>`${i}- ${$S(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let[i,n]=r instanceof bI?[r.data,!1]:[r,!0],s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=fH.indexOf(l),g=fH.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=>!dH(i[l])).map((l,c)=>{let u=i[l],g=hH(l),h=$S(u,e+1,!0),p=c>0||t?s:"",d=g.length>1024?`? ${g}
${p}:`:`${g}:`,m=h.startsWith(`
`)?h:` ${h}`;return`${p}${d}${m}`}).join(e===0?`
`:"")||`
`;return t?`
${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function ba(r){try{let e=$S(r,0,!1);return e!==`
`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}ba.PreserveOrdering=bI;function Ede(r){return r.endsWith(`
`)||(r+=`
`),(0,pH.parse)(r)}var Ide=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function yde(r){if(Ide.test(r))return Ede(r);let e=(0,SI.safeLoad)(r,{schema:SI.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 wi(r){return yde(r)}var yz=ve(mH()),Mw=ve(cc());var gd={};ct(gd,{Builtins:()=>hv,Cli:()=>jn,Command:()=>be,Option:()=>z,UsageError:()=>we,formatMarkdownish:()=>Ti});var tv="",Bi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,vI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var we=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i}
${this.candidates.map(({usage:n})=>`$ ${n}`).join(`
`)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean:
$ ${i}
${sv(e)}`}else this.message=`Command not found; did you mean one of:
${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(`
`)}
${sv(e)}`}},xI=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(`
`)}
${sv(e)}`}},sv=r=>`While running ${r.filter(e=>e!==Bi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var id=Symbol("clipanion/isOption");function Xi(r){return{...r,[id]:!0}}function Po(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function PI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function nd(r,e){return e.length===1?new we(`${r}: ${PI(e[0],!0)}`):new we(`${r}:
${e.map(t=>`
- ${PI(t)}`).join("")}`)}function sd(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 nd(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var be=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(As(),pn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw nd("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};be.isOption=id;be.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},RH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function nCe(r){let e=r.split(`
`),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(`
`)}function Ti(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,`
`),r=nCe(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2
`),r=r.replace(/\n(\n)?\n*/g,"$1"),t&&(r=r.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(`
`);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,"g")).map((o,a)=>" ".repeat(s)+(a===0?"- ":" ")+o).join(`
`)}).join(`
`)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r}
`:""}var fv=ve(J("tty"),1);function dn(r){nv&&console.log(r)}var FH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function NH(){return{nodes:[_i(),_i(),_i()]}}function sCe(r){let e=NH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s<n.nodes.length;++s)OH(s)||e.nodes.push(hCe(n.nodes[s],i));i+=n.nodes.length-2}for(let n of t)jg(e,0,n);return e}function Vs(r,e){return r.nodes.push(e),r.nodes.length-1}function oCe(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:h})=>g.to===h)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function aCe(r,{prefix:e=""}={}){if(nv){dn(`${e}Nodes are:`);for(let t=0;t<r.nodes.length;++t)dn(`${e} ${t}: ${JSON.stringify(r.nodes[t])}`)}}function TH(r,e,t=!1){dn(`Running a vm on ${JSON.stringify(e)}`);let i=[{node:0,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];aCe(r,{prefix:" "});let n=[tv,...e];for(let s=0;s<n.length;++s){let o=n[s];dn(` Processing ${JSON.stringify(o)}`);let a=[];for(let{node:l,state:c}of i){dn(` Current node is ${l}`);let u=r.nodes[l];if(l===2){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 h=u.statics[o];for(let{to:p,reducer:d}of h)a.push({node:p,state:typeof d<"u"?DI(uv,d,c,o):c}),dn(` Static transition to ${p} found`)}else dn(" No static transition found");else{let h=!1;for(let p of Object.keys(u.statics))if(!!p.startsWith(o)){if(o===p)for(let{to:d,reducer:m}of u.statics[p])a.push({node:d,state:typeof m<"u"?DI(uv,m,c,o):c}),dn(` Static transition to ${d} found`);else for(let{to:d}of u.statics[p])a.push({node:d,state:{...c,remainder:p.slice(o.length)}}),dn(` Static transition to ${d} found (partial match)`);h=!0}h||dn(" No partial static transition found")}if(o!==Bi)for(let[h,{to:p,reducer:d}]of u.dynamics)DI(FI,h,c,o)&&(a.push({node:p,state:typeof d<"u"?DI(uv,d,c,o):c}),dn(` Dynamic transition to ${p} found (via ${h})`))}if(a.length===0&&o===Bi&&e.length===1)return[{node:0,state:FH}];if(a.length===0)throw new Hg(e,i.filter(({node:l})=>l!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=uCe(a)}if(i.length>0){dn(" Results:");for(let s of i)dn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else dn(" No results");return i}function ACe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,Bi)){for(let{to:t}of r.statics[Bi])if(t===1)return!0}return!1}function lCe(r,e,t){let i=t&&e.length>0?[""]:[],n=TH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let p=g;g=[];for(let d of p){let m=r.nodes[d],y=Object.keys(m.statics);for(let B of Object.keys(m.statics)){let S=y[0];for(let{to:P,reducer:F}of m.statics[S])F==="pushPath"&&(u||l.push(S),g.push(P))}}u=!1}let h=JSON.stringify(l);o.has(h)||(s.push(l),o.add(h))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ACe(u,c);for(let[h,p]of Object.entries(u.statics))(g&&h!==Bi||!h.startsWith("-")&&p.some(({reducer:d})=>d==="pushPath"))&&a([...i,h],l);if(!!g)for(let[h,{to:p}]of u.dynamics){if(p===2)continue;let d=pCe(h,c);if(d!==null)for(let m of d)a([...i,m],l)}}return[...s].sort()}function cCe(r,e){let t=TH(r,[...e,Bi]);return gCe(e,t.map(({state:i})=>i))}function uCe(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 gCe(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(h=>h.some(p=>g.options.find(d=>d.name===p))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:h})=>!h).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new xI(r,u.map(g=>g.candidateUsage));return u[0]}function fCe(r){let 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.
`)}}};var MH=Symbol("clipanion/errorCommand");function dCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var jn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new Yg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new jn(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[be.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[MH]=a,l}}break}}async run(e,t){var i;let n,s={...jn.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?CCe(s):UH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ti(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ti(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ti(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([h,p])=>[Ti(h,{format:this.format(e),paragraphs:!1}),p.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(p=>p.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 be?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ti(l,{format:this.format(t),paragraphs:!1}).replace(/^./,p=>p.toUpperCase()),a+=`
`),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")}
`,a+=`
`);let{usage:g,options:h}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g}
`,h.length>0){a+=`
`,a+=`${lv.header("Options")}
`;let p=h.reduce((d,m)=>Math.max(d,m.definition.length),0);a+=`
`;for(let{definition:d,description:m}of h)a+=` ${this.format(t).bold(d.padEnd(p))} ${Ti(m,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=`
`,a+=`${this.format(t).header("Details")}
`,a+=`
`,a+=Ti(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=`
`,a+=`${this.format(t).header("Examples")}
`;for(let[p,d]of u)a+=`
`,a+=Ti(p,{format:this.format(t),paragraphs:!1}),a+=`${d.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[h,{index:p}]of this.registrations.entries()){if(typeof h.usage>"u")continue;let d=typeof h.usage.category<"u"?Ti(h.usage.category,{format:this.format(t),paragraphs:!1}):null,m=l.get(d);typeof m>"u"&&l.set(d,m=[]);let{usage:y}=this.getUsageByIndex(p);m.push({commandClass:h,usage:y})}let c=Array.from(l.keys()).sort((h,p)=>h===null?-1:p===null?1:h.localeCompare(p,"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 h of c){let p=l.get(h).slice().sort((m,y)=>m.usage.localeCompare(y.usage,"en",{usage:"sort",caseFirst:"upper"})),d=h!==null?h.trim():"General commands";a+=`
`,a+=`${this.format(t).header(`${d}`)}
`;for(let{commandClass:m,usage:y}of p){let B=m.usage.description||"undocumented";a+=`
`,a+=` ${this.format(t).bold(y)}
`,a+=` ${Ti(B,{format:this.format(t),paragraphs:!1})}`}}a+=`
`,a+=Ti("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[MH])!==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:jn.defaultContext.colorDepth>1)?lv:RH}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)}};jn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():dCe()};var KH;function CCe(r){let e=KH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return UH;let{AsyncLocalStorage:t}=J("async_hooks");e=KH=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 UH(r){return r()}var hv={};ct(hv,{DefinitionsCommand:()=>ld,HelpCommand:()=>cd,VersionCommand:()=>ud});var ld=class extends be{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)}
`)}};ld.paths=[["--clipanion=definitions"]];var cd=class extends be{async execute(){this.context.stdout.write(this.cli.usage())}};cd.paths=[["-h"],["--help"]];var ud=class extends be{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:"<unknown>"}
`)}};ud.paths=[["-v"],["--version"]];var z={};ct(z,{Array:()=>HH,Boolean:()=>jH,Counter:()=>GH,Proxy:()=>YH,Rest:()=>qH,String:()=>JH,applyValidator:()=>sd,cleanValidationError:()=>PI,formatError:()=>nd,isOptionSymbol:()=>id,makeCommandOption:()=>Xi,rerouteArguments:()=>Po});function HH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:h,value:p}of u.options)!a.has(h)||(g=g!=null?g:[],g.push(p));return g}})}function jH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u=h);return u}})}function GH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u!=null||(u=0),h?u+=1:u=0);return u}})}function YH(r={}){return Xi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function qH(r={}){return Xi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&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)}})}function mCe(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,h=i;for(let{name:p,value:d}of u.options)!a.has(p)||(g=p,h=d);return typeof h=="string"?sd(g!=null?g:c,h,n.validator):h}})}function ECe(r={}){let{required:e=!0}=r;return Xi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o<n.positionals.length;++o){if(n.positionals[o].extra===Hn||e&&n.positionals[o].extra===!0||!e&&n.positionals[o].extra===!1)continue;let[a]=n.positionals.splice(o,1);return sd((s=r.name)!==null&&s!==void 0?s:i,a.value,r.validator)}}})}function JH(r,...e){return typeof r=="string"?mCe(r,...e):ECe(r)}var wz=ve(Jg()),nD=J("stream");var dt=(ae=>(ae[ae.UNNAMED=0]="UNNAMED",ae[ae.EXCEPTION=1]="EXCEPTION",ae[ae.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",ae[ae.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",ae[ae.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",ae[ae.BUILD_DISABLED=5]="BUILD_DISABLED",ae[ae.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",ae[ae.MUST_BUILD=7]="MUST_BUILD",ae[ae.MUST_REBUILD=8]="MUST_REBUILD",ae[ae.BUILD_FAILED=9]="BUILD_FAILED",ae[ae.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",ae[ae.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",ae[ae.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",ae[ae.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",ae[ae.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",ae[ae.REMOTE_INVALID=15]="REMOTE_INVALID",ae[ae.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",ae[ae.RESOLUTION_PACK=17]="RESOLUTION_PACK",ae[ae.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",ae[ae.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",ae[ae.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",ae[ae.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",ae[ae.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",ae[ae.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",ae[ae.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",ae[ae.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",ae[ae.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",ae[ae.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",ae[ae.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",ae[ae.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",ae[ae.FETCH_FAILED=30]="FETCH_FAILED",ae[ae.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",ae[ae.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",ae[ae.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",ae[ae.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",ae[ae.NETWORK_ERROR=35]="NETWORK_ERROR",ae[ae.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",ae[ae.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",ae[ae.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",ae[ae.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",ae[ae.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",ae[ae.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",ae[ae.PROLOG_UNKNOWN_ 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 kf=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 rt(11,`${Ct(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Df=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(`${$t(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(`${Ct(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var mz=ve(zr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Fw=class{supportsDescriptor(e,t){return!!(no(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(mz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return rC(i,e)}forwardDescriptor(e,t){return zt(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return nn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return xf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=wr.makeVirtualPath(s,o,n),l=new bo(a,{baseFs:t.packageFs,pathUtils:v});return{...t,packageFs:l}}};var Nf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Nf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Nf.protocol)}supportsDescriptor(e,t){return Nf.isVirtualDescriptor(e)}supportsLocator(e,t){return Nf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},hC=Nf;hC.protocol="virtual:";var Tf=class{supports(e){return!!e.reference.startsWith(Hr.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:Te.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 Df([new hC,new Hr,new Fw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new kf([new Ff,new Tf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=dC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Uo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!no(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[h,p]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:h,value:p})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(JA(i,!0),qy(n),{userProvided:!0})}normalizePackage(e){let t=iC(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(!!Fc(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",La(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qx(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=tn(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,zt(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Tt(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])=>vn(s))),t.peerDependencies=new Map(bn(t.peerDependencies,([,s])=>vn(s))),t}getLimit(e){return La(this.limits,e,()=>(0,wz.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}},Ee=ja;Ee.telemetry=null;var hD=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hD||{}),CC=class extends rt{constructor({fileName:t,code:i,signal:n}){let s=Ee.create(v.cwd()),o=_e(s,t,Ke.PATH);super(1,`Child ${o} reported an error`,a=>{exe(i,n,{configuration:s,report:a})});this.code=pD(i,n)}},jw=class extends CC{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 Lc(r){return r!==null&&typeof r.fd=="number"}var Oc=new Set;function uD(){}function gD(){for(let r of Oc)r.kill()}async function so(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":Lc(s)&&(c[0]=s),Lc(o)&&(c[1]=o),Lc(a)&&(c[2]=a);let u=(0,fD.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Oc.add(u),Oc.size===1&&(process.on("SIGINT",uD),process.on("SIGTERM",gD)),!Lc(s)&&s!==null&&s.pipe(u.stdin),Lc(o)||u.stdout.pipe(o,{end:!1}),Lc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let h of new Set([o,a]))Lc(h)||h.end()};return new Promise((h,p)=>{u.on("error",d=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1)&&g(),p(d)}),u.on("close",(d,m)=> 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=>{Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),c(u!==null?u:129)})})}}}function E9(r){return e=>{let t=e[0]==="pipe"?new zo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var bs=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},MR=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},zf=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new zf(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new zf(this,e),n=new MR;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function BB(r,e){return zf.start(r,e)}function p9(r,e=null){let t=new zo.PassThrough,i=new C9.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 I9(r,{prefix:e}){return{stdout:p9(t=>r.stdout.write(`${t}
`),r.stdout.isTTY?e:null),stderr:p9(t=>r.stderr.write(`${t}
`),r.stderr.isTTY?e:null)}}var CDe=(0,v9.promisify)(setTimeout);function y9(r,e,t){let i=new Vn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Vn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new zn(`Bad file descriptor: "${r}"`)}return i}function bB(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var mDe=new Map([["cd",async([r=(0,S9.homedir)(),...e],t,i)=>{let n=v.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new zn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new zn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)}
`),0)],[":",async(r,e,t)=>0],["true",async(r,e,t)=>0],["false",async(r,e,t)=>1],["exit",async([r,...e],t,i)=>i.exitCode=parseInt(r!=null?r:i.variables["?"],10)],["echo",async(r,e,t)=>(t.stdout.write(`${r.join(" ")}
`),0)],["sleep",async([r],e,t)=>{if(typeof r>"u")throw new zn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new zn(`sleep: invalid time interval '${r}'`);return await CDe(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await BB(i,{stdin:new bs(t.stdin),stdout:new bs(t.stdout),stderr:new bs(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:h,fd:p}=JSON.parse(g),d=S=>{switch(p){case null:case 0:o.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},m=S=>{switch(p){case null:case 1:a.push(S);break;case 2:l.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},y=Number(r[c++]),B=c+y;for(let S=c;S<B;++c,++S)switch(h){case"<":d(()=>e.baseFs.createReadStream(v.resolve(t.cwd,K.toPortablePath(r[S]))));break;case"<<<":d(()=>{let P=new Vn.PassThrough;return process.nextTick(()=>{P.write(`${r[S]}
`),P.end()}),P});break;case"<&":d(()=>y9(Number(r[S]),1,t));break;case">":case">>":{let P=v.resolve(t.cwd,K.toPortablePath(r[S]));m(P==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(F,H,q){setImmediate(q)}}):e.baseFs.createWriteStream(P,h===">>"?{flags:"a"}:void 0))}break;case">&":m(y9(Number(r[S]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${h}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let h=p=>{if(p===o.length)g.end();else{let d=o[p]();d.pipe(g,{end:!1}),d.on("end",()=>{h(p+1)})}};h(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let h of a)g.pipe(h)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let h of l)g.pipe(h)}let u=await BB(DC(r.slice(c+1),e,t),{stdin:new bs(i),stdout:new bs(n),stderr:new bs(s)}).run();return await Promise.all(a.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),await Promise.all(l.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),u}]]);async function EDe(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await SB(r,e,bB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function w9(r,e,t){let i=r.map(async s=>{let o=await Hc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function QB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function x9(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=QB(s);for(let a=0;a<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 QB(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 Hc(r.alternativeValue,e,t)).join(" "):typeof o>"u"&&(r.defaultValue?o=(await Hc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=QB(o);for(let u=0;u<l.length-1;++u)n(l[u]);let c=l[l.length-1];typeof c<"u"&&i(c)}}break}}var IDe={addition:(r,e)=>r+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function kC(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 x9({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?kC({type:"variable",name:i.join(" ")},e,t):kC({type:"number",value:n},e,t)}else return IDe[r.type](await kC(r.left,e,t),await kC(r.right,e,t))}async function Hc(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,h)=>{let p=JSON.stringify({type:u,fd:g}),d=i.get(p);typeof d>"u"&&i.set(p,d=[]),d.push(h)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let h=await Hc(u.args,e,t);for(let p of h)c(u.subtype,u.fd,p)}break;case"argument":for(let h of u.segments)switch(h.type){case"text":o(h.text);break;case"glob":o(h.pattern),g=!0;break;case"shell":{let p=await EDe(h.shell,e,t);if(h.quoted)o(p);else{let d=QB(p);for(let m=0;m<d.length-1;++m)l(d[m]);o(d[d.length-1])}}break;case"variable":await x9(h,e,t,o,l);break;case"arithmetic":o(String(await kC(h.arithmetic,e,t)));break}break}if(a(),g){let h=n.pop();if(typeof h>"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let p=await e.glob.match(h,{cwd:t.cwd,baseFs:e.baseFs});if(p.length===0){let d=TR(h)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${h}"${d}`)}for(let d of p.sort())l(d)}}if(i.size>0){let u=[];for(let[g,h]of i.entries())u.splice(u.length,0,g,String(h.length),...h);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return m9(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 E9(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:h,stderr:p}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=h,t.stderr=p}})}function yDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,bB(t,{stdin:n}));return{stdin:n,promise:s Line truncated
`)).finally(()=>{t.stdout.isTTY&&t.stdout.write(`Job ${l}, '${o(Fg(r))}' has ended
`)})),0}return await Q9(r,e,t)}async function QDe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await BDe(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof zn))throw l;return t.stderr.write(`${l.message}
`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function SB(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await QDe(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 P9(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=>RC(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>RC(e));case"arithmetic":return KR(r.arithmetic);case"shell":return UR(r.shell);default:return!1}}function RC(r){switch(r.type){case"redirection":return r.args.some(e=>RC(e));case"argument":return r.segments.some(e=>P9(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function KR(r){switch(r.type){case"variable":return P9(r);case"number":return!1;default:return KR(r.left)||KR(r.right)}}function UR(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=UR(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>RC(s)))||t.args.some(n=>RC(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 vB(r,e=[],{baseFs:t=new Zt,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=wB}={}){let g={};for(let[d,m]of Object.entries(s))typeof m<"u"&&(g[d]=m);let h=new Map(mDe);for(let[d,m]of Object.entries(i))h.set(d,m);o===null&&(o=new Vn.PassThrough,o.end());let p=cI(r,u);if(!UR(p)&&p.length>0&&e.length>0){let{command:d}=p[p.length-1];for(;d.then;)d=d.then.line;let m=d.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await SB(p,{args:e,baseFs:t,builtins:h,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 pV=ve(xB()),dV=ve(Jg()),el=J("stream");var fV=ve(lV()),RB=ve(cc());var cV=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],uV=80,wRe=new Set([13,19]),BRe=5,DB=RB.default.GITHUB_ACTIONS?{start:r=>`::group::${r}
`,end:r=>`::endgroup::
`}:RB.default.TRAVIS?{start:r=>`travis_fold:start:${r}
`,end:r=>`travis_fold:end:${r}
`}:RB.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,gV=new Date,QRe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,bRe=r=>r,FB=bRe({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}}),SRe=QRe&&Object.keys(FB).find(r=>{let e=FB[r];return!(e.date&&(e.date[0]!==gV.getDate()||e.date[1]!==gV.getMonth()+1))})||"default";function hV(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=RA(r===null?0:r);return!t&&r===null?_e(e,n,"grey"):n}function qR(r,{configuration:e,json:t}){let i=hV(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=dt[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return If(e,i,s)}var He=class extends xi{constructor({configuration:t,stdout:i,json:n=!1,includePrefix:s=!0,includeFooter:o=!0,includeLogs:a=!n,includeInfos:l=a,includeWarnings:c=a,forgettableBufferSize:u=BRe,forgettableNames:g=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Zd(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=u,this.forgettableNames=new Set([...g,...wRe]),this.includePrefix=s,this.includeFooter=o,this.includeInfos=l,this.includeWarnings=c,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let h=t.get("progressBarStyle")||SRe;if(!Object.prototype.hasOwnProperty.call(FB,h))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=FB[h];let p=12,d=Math.max(0,Math.min(i.columns-p,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*d/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!="string"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<"u"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i=="function"?i:n,reportHeader:()=>{this.reportInfo(null,`\u250C ${t}`),this.indent+=1,DB!==null&&!this.json&&this.includeInfos&&this.stdout.write(DB.start(t))},reportFooter:a=>{if(this.indent-=1,DB!==null&&!this.json&&this.includeInfos){this.stdout.write(DB.end(t));for(let[l,c]of this.errors)this.reportErrorImpl(l,c)}this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${_e(this.configuration,a,Ke.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof i=="function"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"",o=`${this.formatPrefix(s,"blueBright")}${i}`;if(this.json)this.reportJson({type:"info",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;thi 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 (${Ct(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 (${Ct(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>uV&&(this.progressFrame=(this.progressFrame+1)%cV.length,this.progressTime=t);let i=cV[this.progressFrame];for(let n of this.progress.values()){let s="";if(typeof n.lastScaledSize<"u"){let c=this.progressStyle.chars[0].repeat(n.lastScaledSize),u=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-n.lastScaledSize);s=` ${c}${u}`}let o=this.formatName(null),a=o?`${o}: `:"",l=n.definition.title?` ${n.definition.title}`:"";this.stdout.write(`${_e(this.configuration,"\u27A4","blueBright")} ${a}${i}${s}${l}
`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},uV)}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,fV.default)(t,0,this.stdout.columns-1)),t}formatName(t){return hV(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${_e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Nr="3.8.3";var CV=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(CV||{});async function $A(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(v.format({dir:r,name:e,ext:".cmd"}),n)}await M.writeFilePromise(v.join(r,e),`#!/bin/sh
exec "${t}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@"
`,{mode:493})}async function mV(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=Sw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await M.readFilePromise(v.join(r,St.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(v.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:M.existsSync(v.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function NC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,h]of Object.entries(process.env))typeof h<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=h);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([$A(t,"node",process.execPath),...Nr!==null?[$A(t,"run",process.execPath,[a,"run"]),$A(t,"yarn",process.execPath,[a]),$A(t,"yarnpkg",process.execPath,[a]),$A(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),h=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Tt(e),s.npm_package_version=h;let p;if(g)p=g.cwd;else{let d=r.storedPackages.get(e.locatorHash);if(!d)throw new Error(`Package for ${Ct(r.configuration,e)} not found in the project`);let m=r.configuration.getLinkers(),y={project:r,report:new He({stdout:new el.PassThrough,configuration:r.configuration})},B=m.find(S=>S.supportsPackage(d,y));if(!B)throw new Error(`The package ${Ct(r.configuration,d)} isn't supported by any of the available linkers`);p=await B.findPackageLocation(d,y)}s.npm_package_json=K.fromPortablePath(v.join(p,St.manifest))}let l=Nr!==null?`yarn/${Nr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,h,p)=>await $A(t,Yr(g),h,p)),s}var vRe=2,xRe=(0,dV.default)(vRe);async function PRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await xRe(async()=>{await M.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&Yo(s)?sC(s):s,h=g?ms(g):"an external project";c.write(`Packing ${h} from sources
`);let p=await mV(r),d;p!==null?(c.write(`Using ${p.packageManager} for bootstrap. Reason: ${p.reason}
`),d=p.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn
`),d="Yarn");let m=d==="Yarn"&&!(p!=null&&p.packageManagerField);await M.mktempPromise(async y=>{let B=await NC({binFolder:y,ignoreCorepack:m}),P=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],q=v.join(r,St.manifest),_=await M.readFilePromise(q),X=await so(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(X.code!==0)return X.code;await M.writeFilePromise(q,_),await M.appendFilePromise(v.join(r,".npmignore"),`/.yarn
`),c.write(`
`),delete B.NODE_ENV;let W=await so("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 so("yarn",[...H,"pack","--filename",K.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 q=v.join(r,St.lockfile);await M.existsPromise(q)||await M.writeFilePromise(q,"");let _=await so("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["npm",async()=>{if(n!==null){let ne=new el.PassThrough,ue=Cf(ne);ne.pipe(c,{end:!1});let te=await so("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:ne,stderr:u,end:0});if(ne.end(),te.code!==0)return c.end(),u.end(),te.code;let O=(await ue).toString().trim();if(!Fc(O,">=7.x")){let N=qo(null,"npm"),ce=zt(N,O),he=zt(N,">=7.x");throw new Error(`Workspaces aren't supported by ${$t(t,ce)}; please upgrade to ${$t(t,he)} (npm has been detected as the primary package manager for ${_e(t,r,Ke.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 q=await so("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(q.code!==0)return q.code;let _=new el.PassThrough,X=Cf(_);_.pipe(c);let W=await so("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:_,stderr:u});if(W.code!==0)return W.code;let Z=(await X).toString().trim().replace(/^.*\n/s,""),A=v.resolve(r,K.toPortablePath(Z));return await M.renamePromise(A,e),0}]]).get(d);if(typeof P>"u")throw new Error("Assertion failed: Unsupported workflow");let F=await P();if(!(F===0||typeof F>"u"))throw M.detachTemp(o),new rt(58,`Packing the package failed (exit code ${F}, logs can be found here: ${_e(t,a,Ke.PATH)})`)})})})}async function kRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new He({stdout:new el.PassThrough,configuration:o})},c=a.find(p=>p.supportsPackage(n,l));if(!c)throw new Error(`The package ${Ct(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 ot.find(Te.dot,{baseFs:g})).scripts.has(e)},{libzip:await an()})}async function NB(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 EV(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),h=c.scripts.get(e);if(typeof h>"u")return 1;let p=async()=>await vB(h,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,p,n,r,e,{script:h,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await EV(r,{project:n,binFolder:l,cwd:i});return await vB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function DRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await NC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await wV(r)),typeof t>"u"&&(t=v.dirname(await M.realpathPromise(v.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function EV(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return DRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${Ct(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new He({stdout:new el.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Ct(e.configuration,o)} isn't supported by any of the available linkers`);let h=await NC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await TB(r,{project:e}));let p=await g.findPackageLocation(o,u),d=new jt(p,{baseFs:a}),m=await ot.find(Te.dot,{baseFs:d});return typeof i>"u"&&(i=p),{manifest:m,binFolder:t,env:h,cwd:i}},{libzip:await an()})}async function IV(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await NB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function yV(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await M.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}")
`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Ct(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await IV(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw M.detachTemp(o),new rt(36,`${(0,pV.default)(e)} script failed (exit code ${_e(n,g,Ke.NUMBER)}, logs can be found here: ${_e(n,a,Ke.PATH)}); run ${_e(n,`yarn ${e}`,Ke.CODE)} to investigate`)})}async function RRe(r,e,t){WR(r,e)&&await yV(r,e,t)}function zR(r){let e=v.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=M.openSync(r,"r")}catch{return!0}try{M.readSync(i,t,0,t.length,0)}finally{M.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function TB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t,r)} not found in the project`);let s=new el.Writable,o=t.getLinkers(),a={project:e,report:new He({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 (${$t(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let h=o.find(d=>d.supportsPackage(g,a));if(!h)return Uo.skip;let p=null;try{p=await h.findPackageLocation(g,a)}catch(d){if(d.code==="LOCATOR_NOT_INSTALLED")return Uo.skip;throw d}return{dependency:g,packageLocation:p}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:h}=u;for(let[p,d]of g.bin){let m=v.resolve(h,d);i.set(p,[g,K.fromPortablePath(m),zR(m)])}}return i}async function wV(r){return await TB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?$A(r,Yr(t),process.execPath,[i]):$A(r,Yr(t),i,[])))}async function BV(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await TB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Ct(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,h]=u,p=await NC({project:n,locator:r,binFolder:g});await VR(p.BERRY_BIN_FOLDER,c);let d=zR(K.toPortablePath(h))?so(process.execPath,[...l,h,...t],{cwd:i,env:p,stdin:s,stdout:o,stderr:a}):so(h,t,{cwd:i,env:p,stdin:s,stdout:o,stderr:a}),m;try{m=await d}finally{await M.removePromise(p.BERRY_BIN_FOLDER)}return m.code})}async function FRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await BV(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ci={};ct(Ci,{convertToZip:()=>oTe,extractArchiveTo:()=>ATe,makeArchiveFromDirectory:()=>sTe});var fZ=J("stream"),hZ=ve(aZ());var AZ=ve(Jg()),lZ=J("worker_threads");var fl=Symbol("kTaskInfo"),T0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,AZ.default)(eD());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 lZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[fl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[fl].resolve(t),e[fl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[fl])==null||i.reject(t),e[fl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[fl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[fl]=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[fl]={resolve:n,reject:s},t.postMessage(e)})})}};var pZ=ve(uZ());async function sTe(r,{baseFs:e=new Zt,prefixPath:t=Te.root,compressionLevel:i,inMemory:n=!1}={}){let s=await an(),o;if(n)o=new qr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=v.join(l,"archive.zip");o=new qr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Te.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var gZ;async function oTe(r,e){let t=await M.mktempPromise(),i=v.join(t,"archive.zip");return gZ||(gZ=new T0((0,pZ.getContent)())),await gZ.run({tmpFile:i,tgz:r,opts:e}),new qr(i,{libzip:await an(),level:e.compressionLevel})}async function*aTe(r){let e=new hZ.default.Parse,t=new fZ.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 ATe(r,e,{stripComponents:t=0,p Line truncated
`);return}let s=(0,mZ.asTree)(EZ(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 wZ=J("crypto"),DN=ve(J("fs"));var cTe=8,Dt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,wZ.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!==_l?`c${o}`:"";this.cacheKey=[cTe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Dt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${xf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uTe(t).slice(0,10);return`${xf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):t===null||kN(t)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?v.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await M.existsPromise(this.cwd))throw new rt(56,"Cache path does not exist.")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=v.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 Zt,c=()=>{let Z=new qr(null,{libzip:P}),A=v.join(Te.root,qk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(v.join(A,St.manifest),{name:Tt(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ue;if(A===null&&((ue=o.unstablePackages)==null?void 0:ue.has(e.locatorHash)))return{isValid:!0,hash:null};let ne=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(Z)}`:t;if(A!==null){let te=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(A)}`:t;if(ne!==te)throw new rt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&ne!==t){let te;switch(this.check?te="throw":kN(t)!==kN(ne)?te="update":te=this.configuration.get("checksumBehavior"),te){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:ne};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new rt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:ne}},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Ct(this.configuration,e)}`);let A=await s(),ne=A.getRealPath();A.saveAndClose(),await M.chmodPromise(ne,420);let ue=await u(Z,ne);if(!ue.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ue.hash},h=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}},p=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Ct(this.configuration,e)}`);if(this.immutable)throw new rt(56,`Cache entry required but missing for ${Ct(this.configuration,e)}`);let{path:Z,source:A}=await h(),ne=(await u(Z)).hash,ue=this.getLocatorPath(e,ne,o);if(!ue)throw new Error("Assertion failed: Expected the cache path to be available");let te=[];A!=="mirror"&&a!==null&&te.push(async()=>{let N=`${a}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,a)}),(!o.mirrorWriteOnly||a===null)&&te.push(async()=>{let N=`${ue}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,ue)});let O=o.mirrorWriteOnly&&a!=null?a:ue;return await Promise.all(te.map(N=>N())),[!1,O,ne]},d=async()=>{let A=(async()=>{var ce;let ne=this.getLocatorPath(e,t,o),ue=ne!==null?this.markedFiles.has(ne)||await l.existsPromise(ne):!1,te=!!((ce=o.mockedPackages)!=null&&ce.has(e.locatorHash))&&(!this.check||!ue),O=te||ue,N=O?i:n;if(N&&N(),O){let he=null,Pe=ne;if(!te)if(this.check)he=await g(Pe);else{let De=await u(Pe);if(De.isValid)he=De.hash;else return p()}return[te,Pe,he]}else return p()})();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[m,y,B]=await d();m||this.markedFiles.add(y);let S,P=await an(),F=m?()=>c():()=>new qr(y,{baseFs:l,libzip:P,readOnly:!0}),H=new Sg(()=>Jx(()=>S=F(),Z=>`Failed to open the cache entry for ${Ct(this.configuration,e)}: ${Z}`),v),q=new bo(y,{baseFs:H,pathUtils:v}),_=()=>{S==null||S.discardAndClose()},X=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[q,_,X]}};function kN(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function uTe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var L0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(L0||{});var ta=class extends xi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Zd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i}
`)}reportProgress(t){return{...Promise.resolve().then(async()=>{for await(let{}of t);}),stop:()=>{}}}reportJson(t){}async finalize(){this.errorCount>0&&(this.stdout.write(`
`),this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command.
`),this.suggestInstall&&this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help.
`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var V0=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(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}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:[]}],h=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&h+1>=l)return o([{value:this.join(t),count:t.length}]);function p(){for(var m=-1*c;m<=c;m+=2){var y=void 0,B=g[m-1],S=g[m+1],P=(S?S.newPos:0)-m;B&&(g[m-1]=void 0);var F=B&&B.newPos+1<a,H=S&&0<=P&&P<l;if(!F&&!H){g[m]=void 0;continue}if(!F||H&&B.newPos<S.newPos?(y=fTe(S),s.pushComponent(y.components,void 0,!0)):(y=B,y.newPos++,s.pushComponent(y.components,!0,void 0)),P=s.extractCommon(y,t,e,m),y.newPos+1>=a&&P+1>=l)return o(gTe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();p()||m()},0)})();else for(;c<=u;){var d=p();if(d)return d}},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 gTe(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(p,d){var m=i[l+d];return m.length>p.length?m:p}),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 h=e[o-1];return o>1&&typeof h.value=="string"&&(h.added||h.removed)&&r.equals("",h.value)&&(e[o-2].value+=h.value,e.pop()),e}function fTe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Xat=new iA;var BZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,QZ=/\S/,bZ=new iA;bZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!QZ.test(r)&&!QZ.test(e)};bZ.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]&&BZ.test(e[t])&&BZ.test(e[t+2])&&(e[t]+=e[t+2],e.splice(t+1,2),t--);return e};var LN=new iA;LN.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 hTe(r,e,t){return LN.diff(r,e,t)}var pTe=new iA;pTe.tokenize=function(r){return r.split(/(\S.+?[.!?])(?=\s+|$)/)};var dTe=new iA;dTe.tokenize=function(r){return r.split(/([{}:;,]|\s+)/)};function O0(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?O0=function(e){return typeof e}:O0=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},O0(r)}function RN(r){return CTe(r)||mTe(r)||ETe(r)||ITe()}function CTe(r){if(Array.isArray(r))return FN(r)}function mTe(r){if(typeof Symbol<"u"&&Symbol.iterator in Object(r))return Array.from(r)}function ETe(r,e){if(!!r){if(typeof r=="string")return FN(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 FN(r,e)}}function FN(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 ITe(){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 yTe=Object.prototype.toString,_C=new iA;_C.useLongestToken=!0;_C.tokenize=LN.tokenize;_C.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(NN(r,null,null,n),n," ")};_C.equals=function(r,e){return iA.prototype.equals.call(_C,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function NN(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s<e.length;s+=1)if(e[s]===r)return t[s];var o;if(yTe.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]=NN(r[s],e,t,i,n);return e.pop(),t.pop(),o}if(r&&r.toJSON&&(r=r.toJSON()),O0(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]=NN(r[l],e,t,i,l);e.pop(),t.pop()}else o=r;return o}var TN=new iA;TN.tokenize=function(r){return r.slice()};TN.join=TN.removeEmpty=function(r){return r};function SZ(r,e,t,i,n,s,o){o||(o={}),typeof o.context>"u"&&(o.context=4);var a=hTe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(S){return" "+S})}for(var c=[],u=0,g=0,h=[],p=1,d=1,m=function(S){var P=a[S],F=P.lines||P.value.replace(/\n$/,"").split(`
`);if(P.lines=F,P.added||P.removed){var H;if(!u){var q=a[S-1];u=p,g=d,q&&(h=o.context>0?l(q.lines.slice(-o.context)):[],u-=h.length,g-=h.length)}(H=h).push.apply(H,RN(F.map(function(te){return(P.added?"+":"-")+te}))),P.added?d+=F.length:p+=F.length}else{if(u)if(F.length<=o.context*2&&S<a.length-2){var _;(_=h).push.apply(_,RN(l(F)))}else{var X,W=Math.min(F.length,o.context);(X=h).push.apply(X,RN(l(F.slice(0,W))));var Z={oldStart:u,oldLines:p-u+W,newStart:g,newLines:d-g+W,lines:h};if(S>=a.length-2&&F.length<=o.context){var A=/\n$/.test(t),ne=/\n$/.test(i),ue=F.length==0&&h.length>Z.oldLines;!A&&ue&&t.length>0&&h.splice(Z.oldLines,0,"\\ No newline at end of file"),(!A&&!ue||!ne)&&h.push("\\ No newline at end of file")}c.push(Z),u=0,g=0,h=[]}p+=F.length,d+=F.length}},y=0;y<a.length;y++)m(y);return{oldFileName:r,newFileName:e,oldHeader:n,newHeader:s,hunks:c}}var X0=ve(R$()),Z0=ve(Jg()),O$=ve(zr()),zN=J("util"),WN=ve(J("v8")),VN=ve(J("zlib"));var VMe=[[/^(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)=>vw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],J0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!M.existsSync(i))return;let n=await M.readFilePromise(i,"utf8"),s=wi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=AC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=no(l.range)?zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let h;for(let[d,m]of VMe){let y=g.match(d);if(y){h=m(u,...y);break}}if(!h){t.reportWarning(14,`${$t(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let p=c;try{let d=vf(c.range),m=AC(d.selector,!0);m&&(p=m)}catch{}o.set(c.descriptorHash,nn(p,h))}}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(Hk(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 W0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(bw(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(bw(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");let o=i.project.originalPackages.get(s);if(!o)throw new Error("Expected the resolution to have been successful - package not found");return[o]}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 z0=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 thi Line truncated
`;await M.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var N$=6,XMe=1,ZMe=/ *, */g,T$=/\/$/,_Me=32,$Me=(0,zN.promisify)(VN.default.gzip),e1e=(0,zN.promisify)(VN.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),JN={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},L$=r=>rn(`${XMe}`,r),Ge=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 d,m,y;if(!e.projectCwd)throw new we(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,M.existsSync(v.join(s,St.manifest))){i=s;break}n=v.dirname(s)}let o=new Ge(e.projectCwd,{configuration:e});(d=Ee.telemetry)==null||d.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=Ee.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=Ee.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,S)=>B+S.manifest.dependencies.size+S.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=_e(e,o.cwd,Ke.PATH),u=_e(e,v.relative(o.cwd,i),Ke.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,h=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,p=`- 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 we(`The nearest package directory (${_e(e,i,Ke.PATH)}) doesn't seem to be part of the project declared in ${_e(e,o.cwd,Ke.PATH)}.
${[g,h,p].join(`
`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.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=L$(n);let s=wi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o<N$;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=Rc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let h=g.version,p=g.languageName||t,d=c.linkType.toUpperCase(),m=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,S=g.dependenciesMeta,P=g.peerDependenciesMeta,F=g.bin;if(c.checksum!=null){let q=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,q)}let H={...u,version:h,languageName:p,linkType:d,conditions:m,dependencies:y,peerDependencies:B,dependenciesMeta:S,peerDependenciesMeta:P,bin:F};this.originalPackages.set(H.locatorHash,H);for(let q of l.split(ZMe)){let _=JA(q);this.storedDescriptors.set(_.descriptorHash,_),this.storedResolutions.set(_.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,Z0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new bh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.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)v.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qA(e)&&(e=nC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${$t(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(Yo(e)&&(e=sC(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 (${Ct(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 ${cC(this.configuration,e)} (${_e(this.configuration,v.join(e.cwd,St.manifest),Ke.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorLine truncated
`;switch(Ae){case 0:ge+=`# Script name: ${ye}
`;break;case 1:ge+=`# Script code: ${ye}
`;break}let oe=null;if(!await M.mktempPromise(async ie=>{let G=v.join(ie,"build.log"),{stdout:fe,stderr:re}=this.configuration.getSubprocessStreams(G,{header:ge,prefix:Ct(this.configuration,he),report:t}),de;try{switch(Ae){case 0:de=await NB(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break;case 1:de=await JR(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break}}catch(vt){re.write(vt.stack),de=1}if(fe.end(),re.end(),de===0)return!0;M.detachTemp(ie);let Ze=`${Ct(this.configuration,he)} couldn't be built successfully (exit code ${_e(this.configuration,de,Ke.NUMBER)}, logs can be found here: ${_e(this.configuration,G,Ke.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(t.reportInfo(9,Ze),!0):(t.reportError(9,Ze),!1)}))return!1}return!0});N.push(...Re,Promise.allSettled(Re).then(se=>{P.delete(ce),se.every(Ae=>Ae.status==="fulfilled"&&Ae.value===!0)&&W.set(he.locatorHash,De)}))}if(await ro(N),O===P.size){let ce=Array.from(P).map(he=>{let Pe=this.storedPackages.get(he);if(!Pe)throw new Error("Assertion failed: The package should have been registered");return Ct(this.configuration,Pe)}).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: ${ce})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=Ee.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=v.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 rt(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 h=_e(this.configuration,g,Ke.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${h}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${h}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Zl(n,this.generateLockfile());if(c!==n){let u=SZ(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 h of g.lines)h.startsWith("+")?e.report.reportError(28,_e(this.configuration,h,Ke.ADDED)):h.startsWith("-")?e.report.reportError(28,_e(this.configuration,h,Ke.REMOVED)):e.report.reportInfo(null,_e(this.configuration,h,"grey"))}e.report.reportSeparator()}throw new rt(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=Ee.telemetry)==null||l.reportPackageExtension(bc(g,Ke.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>Qw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${_e(this.configuration,"mode=update-lockfile",Ke.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>Qw(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:N$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let h of s){let p=this.storedDescriptors.get(h);if(!p)throw new Error("Assertion failed: The descriptor should have been registered");a.push(p)}let l=a.map(h=>vn(h)).sort().join(", "),c=new ot;c.version=o. Line truncated
`,`# Manual changes might be lost - proceed with caution!
`].join("")}
`+ba(t)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await M.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Zl(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=L$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JN))e.push(...o);let t=(0,X0.default)(this,e),i=WN.default.serialize(t),n=rn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await M.mkdirPromise(v.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await $Me(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 e1e(await M.readFilePromise(n));s=WN.default.deserialize(o),this.installStateChecksum=rn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,X0.default)(s,JN.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,X0.default)(s,JN.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new $r}),await this.persistInstallStateFile()}async persist(){let e=(0,Z0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Zk(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=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${_e(this.configuration,v.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`)}};function t1e({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 X;let c=new Map,u=[],g=new Map,h=new Map,p=new Map,d=new Map,m=new Map,y=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,iC(A)]})),B=()=>{let W=M.mktempSync(),Z=v.join(W,"stacktrace.log"),A=String(u.length+1).length,ne=u.map((ue,te)=>`${`${te+1}.`.padStart(A," ")} ${ms(ue)}
`).join("");throw M.writeFileSync(Z,ne),M.detachTemp(W),new rt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(Z)}`)},S=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},P=(W,Z,A,{top:ne,optional:ue})=>{u.length>1e3&&B(),u.push(Z);let te=F(W,Z,A,{top:ne,optional:ue});return u.pop(),te},F=(W,Z,A,{top:ne,optional:ue})=>{if(ue||s.delete(Z.locatorHash),n.has(Z.locatorHash))return;n.add(Z.locatorHash);let te=i.get(Z.locatorHash);if(!te)throw new Error(`Assertion failed: The package (${Ct(r.configuration,Z)}) should have been registered`);let O=[],N=[],ce=[],he=[],Pe=[];for(let Re of Array.from(te.dependencies.values())){if(te.peerDependencies.has(Re.identHash)&&te.locatorHash!==ne)continue;if(qA(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Re.descriptorHash);let se=ue;if(!se){let G=te.dependenciesMeta.get(Tt(Re));if(typeof G<"u"){let fe=G.get(null);typeof fe<"u"&&fe.optional&&(se=!0)}}let Ae=t.get(Re.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${$t(r.configuration,Re)}) should have been registered`);let ye=y.get(Ae)||i.get(Ae);if(!ye)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${$t(r.configuration,Re)}) should have been registered`);if(ye.peerDependencies.size===0){P(Re,ye,new Map,{top:ne,optional:se});continue}let ge,oe,Ye=new Set,ie;N.push(()=>{ge=jk(Re,Z.locatorHash),oe=Gk(ye,Z.locatorHash),te.dependencies.delete(Re.identHash),te.dependencies.set(ge.identHash,ge),t.set(ge.descriptorHash,oe.locatorHash),e.set(ge.descriptorHash,ge),i.set(oe.locatorHash,oe),O.push([ye,ge,oe])}),ce.push(()=>{var G;ie=new Map;for(let fe of oe.peerDependencies.values()){let re=te.dependencies.get(fe.identHash);if(!re&&oC(Z,fe)&&(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:")&&oe.dependencies.has(fe.identHash)){oe.peerDependencies.delete(fe.identHash);continue}re||(re=zt(fe,"missing:")),oe.dependencies.set(re.identHash,re),qA(re)&&Qc(p,re.descriptorHash).add(oe.locatorHash),g.set(re.identHash,re),re.range==="missing:"&&Ye.add(re.identHash),ie.set(fe.identHash,(G=A.get(fe.identHash))!=null?G:oe.locatorHash)}oe.dependencies=new Map(bn(oe.dependencies,([fe,re])=>Tt(re)))}),he.push(()=>{if(!i.has(oe.locatorHash))return;let G=c.get(ye.locatorHash);typeof G=="number"&&G>=2&&B();let fe=c.get(ye.locatorHash),re=typeof fe<"u"?fe+1:1;c.set(ye.locatorHash,re),P(ge,oe,ie,{top:ne,optional:se}),c.set(ye.locatorHash,re-1)}),Pe.push(()=>{let G=te.dependencies.get(Re.identHash);if(typeof G>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let fe=t.get(G.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(Qc(m,fe).add(Z.locatorHash),!!i.has(oe.locatorHash)){for(let re of oe.peerDependencies.values()){let de=ie.get(re.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(d,de),Tt(re)).push(oe.locatorHash)}for(let re of Ye)oe.dependencies.delete(re)}})}for(let Re of[...N,...ce])Re();let De;do{De=!0;for(let[Re,se,Ae]of O){let ye=pf(h,Re.locatorHash),ge=rn(...[...Ae.dependencies.values()].map(G=>{let fe=G.range!=="missing:"?t.get(G.descriptorHash):"missing:";if(typeof fe>"u")throw new Error(`Assertion failed: Expected the resolution for ${$t(r.configuration,G)} to have been registered`);return fe===ne?`${fe} (top)`:fe}),se.identHash),oe=ye.get(ge);if(typeof oe>"u"){ye.set(ge,se);continue}if(oe===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ye=p.get(se.descriptorHash)||[],ie=[te.locatorHash,...Ye];p.delete(se.descriptorHash);for(let G of ie){let fe=i.get(G);typeof fe>"u"||(fe.dependencies.get(se.identHash).descriptorHash!==oe.descriptorHash&&(De=!1),fe.dependencies.set(se.identHash,oe))}}}while(!De);for(let Re of[...he,...Pe])Re()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),P(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 q=[];for(let[W,Z]of m){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let ne=d.get(W);if(!(typeof ne>"u"))for(let ue of Z){let te=i.get(ue);if(!(typeof te>"u"))for(let[O,N]of ne){let ce=tn(O);if(te.peerDependencies.has(ce.identHash))continue;let he=`p${rn(ue,O,W).slice(0,5)}`;o.set(he,{subject:ue,requested:ce,rootRequester:W,allRequesters:N});let Pe=A.dependencies.get(ce.identHash);if( Line truncated
Try running the command again with the package name prefixed: ${$.pretty(t,"yarn add",$.Type.CODE)} ${$.pretty(t,x.makeDescriptor(x.makeIdent(null,"my-package"),`${F[0]}...`),$.Type.DESCRIPTOR)}`);if(!P)throw new we(`The ${$.pretty(t,S,$.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let H=kqe(n,P,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(H.map(async _=>{let X=await Gm(P,{project:i,workspace:n,cache:s,target:_,modifier:l,strategies:c,maxResults:u});return{request:P,suggestedDescriptors:X,target:_}}))})).then(S=>S.flat()),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async S=>{for(let{request:P,suggestedDescriptors:{suggestions:F,rejections:H}}of g)if(F.filter(_=>_.descriptor!==null).length===0){let[_]=H;if(typeof _>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range`):S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),S.reportSeparator(),S.reportExceptionOnce(_)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[],m=[];for(let{suggestedDescriptors:{suggestions:S},target:P}of g){let F,H=S.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,Use.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:S.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 X=n.manifest[P].get(F.identHash);(typeof X>"u"||X.descriptorHash!==F.descriptorHash)&&(n.manifest[P].set(F.identHash,F),this.optional&&(P==="dependencies"?n.manifest.ensureDependencyMeta({...F,range:"unknown"}).optional=!0:P==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...F,range:"unknown"}).optional=!0)),typeof X>"u"?d.push([n,P,F,c]):m.push([n,P,X,F]))}return await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyAddition,d),await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyReplacement,m),p&&this.context.stdout.write(`
`),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async S=>{await i.install({cache:s,report:S,mode:this.mode})})).exitCode()}};cu.paths=[["add"]],cu.usage=be.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 lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function kqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"Line truncated
`),0}return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Yt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,h]]of a)o.reportJson({name:u,source:x.stringifyIdent(g),path:h});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c," ")} ${x.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};uu.paths=[["bin"]],uu.usage=be.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 gu=class extends xe{constructor(){super(...arguments);this.mirror=z.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=z.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Dt.find(t);return(await He.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()}};gu.paths=[["cache","clean"],["cache","clear"]],gu.usage=be.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 Hse=ve(cQ()),YL=J("util"),fu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=z.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new we(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=me.convertMapsToIndexableObjects(o),l=n?(0,Hse.default)(a,n):a,c=await He.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();YL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,YL.inspect)(l,{depth:1/0,colors:t.get("enableColors"),compact:!1})}
`)}return c.exitCode()}};fu.paths=[["config","get"]],fu.usage=be.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 $oe=ve(XL()),eae=ve(cQ()),tae=ve(_oe()),ZL=J("util"),hu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String();this.value=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("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 we(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new we("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?d=>Ee.updateHomeConfiguration(d):d=>Ee.updateConfiguration(i(),d))(d=>{if(s){let m=(0,$oe.default)(d);return(0,tae.default)(m,this.name,a),m}else return{...d,[n]:a}});let u=(await Ee.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),g=me.convertMapsToIndexableObjects(u),h=s?(0,eae.default)(g,s):g;return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async d=>{ZL.inspect.styles.name="cyan",d.reportInfo(0,`Successfully set ${this.name} to ${(0,ZL.inspect)(h,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};hu.paths=[["config","set"]],hu.usage=be.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 cae=ve(XL()),uae=ve(Am()),gae=ve(lae()),pu=class extends xe{constructor(){super(...arguments);this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("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 we(`Couldn't find a configuration settings named "${n}"`);let a=this.home?c=>Ee.updateHomeConfiguration(c):c=>Ee.updateConfiguration(i(),c);return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async c=>{let u=!1;await a(g=>{if(!(0,uae.default)(g,this.name))return c.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),u=!0,g;let h=s?(0,cae.default)(g):{...g};return(0,gae.default)(h,this.name),h}),u||c.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};pu.paths=[["config","unset"]],pu.usage=be.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 _L=J("util"),du=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=z.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins,{strict:!1});return(await He.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=me.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=me.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 h=this.why?t.sources.get(u)||"<default>":g.description;return[u,h]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o," ")} ${g.padEnd(c," ")} ${(0,_L.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,_L.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};du.paths=[["config"]],du.usage=be.Usage({description:"display the current configuration",details:`
This command prints the current active configuration settings.
`,examples:[["Print the active configuration settings","$0 config"]]});As();var FQ={};ct(FQ,{Strategy:()=>qm,acceptedStrategies:()=>FWe,dedupe:()=>$L});var fae=ve(Qn()),qm=(e=>(e.HIGHEST="highest",e))(qm||{}),FWe=new Set(Object.values(qm)),NWe={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`);me.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!fae.default.isMatch(x.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),h=await t.getSatisfying(a,g,n),p=h==null?void 0:h[0];if(typeof p>"u")return null;let d=p.locatorHash,m=r.originalPackages.get(d);if(typeof m>"u")throw new Error(`Assertion failed: The package (${d}) should have been registered`);return d===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new $r,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=NWe[e],h=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),p=xi.progressViaCounter(h.length);await n.reportProgress(p);let d=0;await Promise.all(h.map(B=>B.then(S=>{if(S===null)return;d++;let{descriptor:P,currentPackage:F,updatedPackage:H}=S;n.reportInfo(0,`${x.prettyDescriptor(s,P)} can be deduped from ${x.prettyLocator(s,F)} to ${x.prettyLocator(s,H)}`),n.reportJson({descriptor:x.stringifyDescriptor(P),currentResolution:x.stringifyLocator(F),updatedResolution:x.stringifyLocator(H)}),r.storedResolutions.set(P.descriptorHash,H.locatorHash)}).finally(()=>p.tick())));let m;switch(d){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${d} packages`}let y=$.pretty(s,e,$.Type.CODE);return n.reportInfo(0,`${m} can be deduped using the ${y} strategy`),d})}var Cu=class extends xe{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Zi(qm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=await Dt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};Cu.paths=[["dedupe"]],Cu.usage=be.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-cLine truncated
`)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends xe{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var Jm=class extends xe{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!x.tryParseIdent(this.leadingArgument)){let t=v.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends xe{async execute(){this.context.stdout.write(`${Nr||"<unknown>"}
`)}};Zh.paths=[["-v"],["--version"]];var mu=class extends xe{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState(),await Yt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};mu.paths=[["exec"]],mu.usage=be.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"']]});As();var Eu=class extends xe{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:ad(od(),[Ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await LWe(this.hash,i,{stdout:this.context.stdout}):(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>x.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>x.stringifyIdent(l.requested)];for(let[l,c]of me.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 h=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,p=$.pretty(t,l,$.Type.CODE),d=x.prettyLocator(t,u),m=x.prettyIdent(t,c.requested),y=x.prettyIdent(t,g),B=c.allRequesters.length-1,S=`descendant${B===1?"":"s"}`,P=B>0?` and ${B} ${S}`:"",F=h!==null?"provides":"doesn't provide";s.reportInfo(null,`${p} \u2192 ${d} ${F} ${m} to ${y}${P}`)}})).exitCode()}};Eu.paths=[["explain","peer-requirements"]],Eu.usage=be.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 LWe(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 He.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,S;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 h=[...n.allRequesters.values()].map(P=>{let F=e.storedPackages.get(P);if(typeof F>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=x.devirtualizeLocator(F),q=e.storedPackages.get(H.locatorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the package to be registered");let _=q.peerDependencies.get(n.requested.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:F,peerDependency:_}});if(g!==null){let P=h.every(({peerDependency:F})=>bt.satisfiesWithPrereleases(g.version,F.range));o.reportInfo(0,`${x.prettyLocator(i,a)} provides ${x.prettyLocator(i,g)} with version ${x.prettyReference(i,(S=g.version)!=null?S:"<missing>")}, which ${P?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${x.prettyLocator(i,a)} doesn't provide ${x.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let p=$.mark(i),d=[];for(let{pkg:P,peerDependency:F}of me.sortMap(h,H=>x.stringifyLocator(H.pkg))){let q=(g!==null?bt.satisfiesWithPrereleases(g.version,F.range):!1)?p.Check:p.Cross;d.push({stringifiedLocator:x.stringifyLocator(P),prettyLocator:x.prettyLocator(i,P),prettyRange:x.prettyRange(i,F.range),mark:q})}let m=Math.max(...d.map(({stringifiedLocator:P})=>P.length)),y=Math.max(...d.map(({prettyRange:P})=>P.length));for(let{stringifiedLocator:P,prettyLocator:F,prettyRange:H,mark:q}of me.sortMap(d,({stringifiedLocator:_})=>_))o.reportInfo(null,`${F.padEnd(m+(F.length-P.length)," ")} \u2192 ${H.padEnd(y," ")} ${q}`);d.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${x.prettyLocator(e.configuration,l)}`))})).exitCode()}As();var pae=ve(zr()),Iu=class extends xe{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await Ee.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(v.contains(l,a))return 0}let i=()=>{if(typeof Nr>"u")throw new we("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 Wm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Wm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(bt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(bt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(bt.validRange(this.version))n=`https://repo.yarnpkg.com/${await OWe(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new we(`Invalid version descriptor "${this.version}"`);return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${$.pretty(t,n,$.Type.URL)}`),c=await M.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${$.pretty(t,n,$.Type.PATH)}`),c=await Vt.get(n,{configuration:t})),await eO(t,null,c,{report:a})})).exit Line truncated
${e}`)});let n=(p=r.projectCwd)!=null?p:r.startingCwd,s=v.resolve(n,".yarn/releases"),o=v.resolve(s,`yarn-${e}.cjs`),a=v.relative(r.startingCwd,o),l=v.relative(n,o);i.reportInfo(0,`Saving the new release in ${$.pretty(r,a,"magenta")}`),await M.removePromise(v.dirname(o)),await M.mkdirPromise(v.dirname(o),{recursive:!0}),await M.writeFilePromise(o,t,{mode:493}),await Ee.updateConfiguration(n,{yarnPath:l});let c=await ot.tryFind(n)||new ot;c.packageManager=`yarn@${e&&me.isTaggedYarnVersion(e)?e:await Wm(r,"stable")}`;let u={};c.exportTo(u);let g=v.join(n,ot.fileName),h=`${JSON.stringify(u,null,c.indent)}
`;await M.changeFilePromise(g,h,{automaticNewlines:!0})}function dae(r){return dt[TI(r)]}var MWe=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function KWe(r){let t=`https://repo.yarnpkg.com/${me.isTaggedYarnVersion(Nr)?Nr:await Wm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(MWe),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=dae(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 yu=class extends xe{constructor(){super(...arguments);this.code=z.String({required:!1,validator:ad(od(),[Ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=dae(this.code),n=$.pretty(t,i,$.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await KWe(t)).get(this.code),l=typeof a<"u"?$.jsonOrPretty(this.json,t,$.tuple($.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}:
${$.jsonOrPretty(this.json,t,$.tuple($.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:me.mapAndFilter(Object.entries(dt),([n,s])=>Number.isNaN(Number(n))?me.mapAndFilter.skip:{label:RA(Number(n)),value:$.tuple($.Type.CODE,s)})};es.emitTree(i,{configuration:t,stdout:this.context.stdout,json:this.json})}}};yu.paths=[["explain"]],yu.usage=be.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 Cae=ve(Qn()),wu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n&&!this.all)throw new lt(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=(F,{recursive:H})=>{let q=F.anchoredLocator.locatorHash,_=new Map,X=[q];for(;X.length>0;){let W=X.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),x.isVirtualLocator(Z)&&X.push(x.devirtualizeLocator(Z).locatorHash),!(!H&&W!==q))for(let A of Z.dependencies.values()){let ne=i.storedResolutions.get(A.descriptorHash);if(typeof ne>"u")throw new Error("Assertion failed: Expected the resolution to be registered");X.push(ne)}}return _.values()},l=({recursive:F})=>{let H=new Map;for(let q of i.workspaces)for(let _ of a(q,{recursive:F}))H.set(_.locatorHash,_);return H.values()},c=({all:F,recursive:H})=>F&&H?i.storedPackages.values():F?l({recursive:H}):a(n,{recursive:H}),u=({all:F,recursive:H})=>{let q=c({all:F,recursive:H}),_=this.patterns.map(Z=>{let A=x.parseLocator(Z),ne=Cae.default.makeRe(x.stringifyIdent(A)),ue=x.isVirtualLocator(A),te=ue?x.devirtualizeLocator(A):A;return O=>{let N=x.stringifyIdent(O);if(!ne.test(N))return!1;if(A.reference==="unknown")return!0;let ce=x.isVirtualLocator(O),he=ce?x.devirtualizeLocator(O):O;return!(ue&&ce&&A.reference!==O.reference||te.reference!==he.reference)}}),X=me.sortMap([...q],Z=>x.stringifyLocator(Z));return{selection:X.filter(Z=>_.length===0||_.some(A=>A(Z))),sortedLookup:X}},{selection:g,sortedLookup:h}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new we("No package matched your request");let p=new Map;if(this.dependents)for(let F of h)for(let H of F.dependencies.values()){let q=i.storedResolutions.get(H.descriptorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the resolution to be registered");me.getArrayWithDefault(p,q).push(F)}let d=new Map;for(let F of h){if(!x.isVirtualLocator(F))continue;let H=x.devirtualizeLocator(F);me.getArrayWithDefault(d,H.locatorHash).push(F)}let m={},y={children:m},B=t.makeFetcher(),S={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new $r,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},P=[async(F,H,q)=>{var W,Z;if(!H.has("manifest"))return;let _=await B.fetch(F,S),X;try{X=await ot.find(_.prefixPath,{baseFs:_.packageFs})}finally{(W=_.releaseFs)==null||W.call(_)}q("Manifest",{License:$.tuple($.Type.NO_HINT,X.license),Homepage:$.tuple($.Type.URL,(Z=X.raw.homepage)!=null?Z:null)})},async(F,H,q)=>{var ne;if(!H.has("cache"))return;let _={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},X=(ne=i.storedChecksums.get(F.locatorHash))!=null?ne:null,W=s.getLocatorPath(F,X,_),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<"u"?[Z.size,$.Type.SIZE]:void 0;q("Cache",{Checksum:$.tuple($.Type.NO_HINT,X),Path:$.tuple($.Type.PATH,W),Size:A})}];for(let F of g){let H=x.isVirtualLocator(F);if(!this.virtuals&&H)continue;let q={},_={value:[F,$.Type.LOCATOR],children:q};if(m[x.stringifyLocator(F)]=_,this.nameOnly){delete _.children;continue}let X=d.get(F.locatorHash);typeof X<"u"&&(q.Instances={label:"Instances",value:$.tuple($.Type.NUMBER,X.length)}),q.Version={label:"Version",value:$.tuple($.Type.NO_HINT,F.version)};let W=(A,ne)=>{let ue={};if(q[A]=ue,Array.isArray(ne))ue.children=ne.map(te=>({value:te}));else{let te={};ue.children=te;for(let[O,N]of Object.entries(ne))typeof N>"u"||(te[O]={label:O,value:N})}};if(!H){for(let A of P)await A(F,o,W);await t.triggerHook(A=>A.fetchPackageInfo,F,o,W)}F.bin.size>0&&!H&&W("Export 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 UWe="|||||||",HWe=">>>>>>>",jWe="=======",mae="<<<<<<<";async function GWe(r,e){if(!r.projectCwd)return!1;let t=v.join(r.projectCwd,r.get("lockfileFilename"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,"utf8");if(!i.includes(mae))return!1;if(e)throw new rt(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=YWe(i),o,a;try{o=wi(n),a=wi(s)}catch{throw new rt(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,ba(l),{automaticNewlines:!0}),!0}function YWe(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(mae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===jWe){i=!1;break}else if(i||s.startsWith(UWe)){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(HWe))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(`
`),e[1].join(`
`)]}var Qu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=i.topLevelWorkspace,a=[];for(let c of this.destinations){let u=v.resolve(this.context.cwd,K.toPortablePath(c)),g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(i.cwd===h.cwd)throw new we(`Invalid destination '${c}'; Can't link the project to itself`);if(!p)throw new lt(h.cwd,u);if(this.all){let d=!1;for(let m of h.workspaces)m.manifest.name&&(!m.manifest.private||this.private)&&(a.push(m),d=!0);if(!d)throw new we(`No workspace found to be linked in the target project: ${c}`)}else{if(!p.manifest.name)throw new we(`The target workspace at '${c}' doesn't have a name and thus cannot be linked`);if(p.manifest.private&&!this.private)throw new we(`The target workspace at '${c}' is marked private - use the --private flag to link it anyway`);a.push(p)}}for(let c of a){let u=x.stringifyIdent(c.locator),g=this.relative?v.relative(i.cwd,c.cwd):c.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:u}},reference:`portal:${g}`})}return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Qu.paths=[["link"]],Qu.usage=be.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 one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var bu=class extends xe{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};bu.paths=[["node"]],bu.usage=be.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 Qae=J("os");var Eae=J("os");var qWe="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function vu(r){let e=await Vt.get(qWe,{configuration:r});return wi(e.toString())}var Su=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await vu(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()}};Su.paths=[["plugin","list"]],Su.usage=be.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 JWe=/^[0-9]+$/;function Iae(r){return JWe.test(r)?`pull/${r}/head`:r}var WWe=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Iae(e)],["git","reset","--hard","FETCH_HEAD"]],zWe=({branch:r})=>[["git","fetch","origin","--depth=1",Iae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],VWe=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",v.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],xu=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Eae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async o=>{await tO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await zm(VWe(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=v.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await M.readFilePromise(a);await eO(t,"sources",l,{report:o}),this.skipPlugins||await XWe(this,{project:i,report:o,target:n})})).exitCode()}};xu.paths=[["set","version","from","sources"]],xu.usage=be.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 zm(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 pr.pipevp(n,s,{cwd:i,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,strict:!0});else{t.stdout.write(`${$.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")}
`);try{await pr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(v.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await zm(zWe(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 zm(WWe(r,i),{configuration:e,context:r.context,target:i}))}async function XWe(r,{project:e,report:t,target:i}){let n=await vu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rO(o,r,{project:e,report:t,target:i})}var yae=ve(zr()),wae=J("url"),Bae=J("vm");var Pu=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await Ge.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=v.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${$.pretty(t,l,$.Type.PATH)}`),o=v.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new wae.URL(this.name)}catch{throw new rt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=x.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!yae.default.valid(c.reference))throw new rt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=x.stringifyIdent(c),g=await vu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new rt(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}/`):Nr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Nr}/`))}n.reportInfo(0,`Downloading ${$.pretty(t,l,"green")}`),a=await Vt.get(l,{configuration:t})}await iO(o,a,{project:s,report:n})})).exitCode()}};Pu.paths=[["plugin","import"]],Pu.usage=be.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 iO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Bae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${$.pretty(n,l,"magenta")}`),await M.mkdirPromise(v.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ee.updateConfiguration(t.cwd,g=>{let h=[],p=!1;for(let d of g.plugins||[]){let m=typeof d!="string"?d.path:d,y=v.resolve(t.cwd,K.toPortablePath(m)),{name:B}=me.dynamicRequire(y);B!==a?h.push(d):(h.push(u),p=!0)}return p||h.push(u),{...g,plugins:h}})}var ZWe=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],ku=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Qae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await Ge.find(t,this.context.cwd),a=x.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=x.stringifyIdent(a),c=await vu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new rt(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 tO(this,{configuration:t,report:s,target:i}),await rO(u,this,{project:o,report:s,target:i})})).exitCode()}};ku.paths=[["plugin","import","from","sources"]],ku.usage=be.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 rO(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 zm(ZWe({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${r}.js`),c=await M.readFilePromise(l);await iO(r,c,{project:i,report:n})}var Du=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=x.parseIdent(o);if(!t.plugins.has(o))throw new we(`${x.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=v.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${$.pretty(t,l,$.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await Ee.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(h=>h.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Du.paths=[["plugin","remove"]],Du.usage=be.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 Ru=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.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()}};Ru.paths=[["plugin","runtime"]],Ru.usage=be.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 Fu=class extends xe{constructor(){super(...arguments);this.idents=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(x.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new $r}),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 He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};Fu.paths=[["rebuild"]],Fu.usage=be.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 nO=ve(Qn());As();var Nu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(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 d of this.patterns){let m=!1,y=x.parseIdent(d);for(let B of o){let S=[...B.manifest.peerDependenciesMeta.keys()];for(let P of(0,nO.default)(S,d))B.manifest.peerDependenciesMeta.delete(P),c=!0,m=!0;for(let P of a){let F=B.manifest.getForScope(P),H=[...F.values()].map(q=>x.stringifyIdent(q));for(let q of(0,nO.default)(H,x.stringifyIdent(y))){let{identHash:_}=x.parseIdent(q),X=F.get(_);if(typeof X>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[P].delete(_),u.push([B,P,X]),c=!0,m=!0}}}m||l.push(d)}let g=l.length>1?"Patterns":"Pattern",h=l.length>1?"don't":"doesn't",p=this.all?"any":"this";if(l.length>0)throw new we(`${g} ${$.prettyList(t,l,$.Type.CODE)} ${h} match any packages referenced by ${p} workspace`);return c?(await t.triggerMultipleHooks(m=>m.afterWorkspaceDependencyRemoval,u),(await He.start({configuration:t,stdout:this.context.stdout},async m=>{await i.install({cache:s,report:m,mode:this.mode})})).exitCode()):0}};Nu.paths=[["remove"]],Nu.usage=be.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 bae=J("util"),_h=class extends xe{async execute(){let e=await Ee.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await Ge.find(e,this.context.cwd);if(!i)throw new lt(t.cwd,this.context.cwd);return(await He.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=me.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,bae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Tu=class extends xe{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=z.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await Ge.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Yt.hasPackageScript(o,this.scriptName,{project:i}))return await Yt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Yt.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")),this.require&&c.push(`--require=${this.require}`),await Yt.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 Yt.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 we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.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 we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new we("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let h of g)if(c.length>=h.length&&JSON.stringify(c.slice(0,h.length))===JSON.stringify(h))throw new we(`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 we(`Couldn't find a script named "${this.scriptName}".`)}}};Tu.paths=[["run"]],Tu.usage=be.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 Lu=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new lt(i.cwd,this.context.cwd);let o=x.parseDescriptor(this.descriptor,!0),a=x.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 He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Lu.paths=[["set","resolution"]],Lu.usage=be.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 Sae=ve(Qn()),Ou=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(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=v.resolve(this.context.cwd,K.toPortablePath(c));if(me.isPathLike(c)){let g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(!p)throw new lt(h.cwd,u);if(this.all){for(let d of h.workspaces)d.manifest.name&&a.add(x.stringifyIdent(d.locator));if(a.size===0)throw new we("No workspace found to be unlinked in the target project")}else{if(!p.manifest.name)throw new we("The target workspace doesn't have a name and thus cannot be unlinked");a.add(x.stringifyIdent(p.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:h})=>h.descriptor.fullName)];for(let h of(0,Sae.default)(g,c))a.add(h)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Ou.paths=[["unlink"]],Ou.usage=be.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 vae=ve(Um()),sO=ve(Qn());As();var ml=class extends xe{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>x.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(x.parseDescriptor(g).range!=="unknown")throw new we("Ranges aren't allowed when using --recursive");for(let h of(0,sO.default)(a,g)){let p=x.parseIdent(h);l.add(p.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 He.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=jm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let S=!1,P=x.parseDescriptor(B);for(let F of i.workspaces)for(let H of["dependencies","devDependencies"]){let _=[...F.manifest.getForScope(H).values()].map(X=>x.stringifyIdent(X));for(let X of(0,sO.default)(_,x.stringifyIdent(P))){let W=x.parseIdent(X),Z=F.manifest[H].get(W.identHash);if(typeof Z>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=x.makeDescriptor(W,P.range);c.push(Promise.resolve().then(async()=>[F,H,Z,await Gm(A,{project:i,workspace:F,cache:s,target:H,modifier:a,strategies:l})])),S=!0}}S||u.push(B)}if(u.length>1)throw new we(`Patterns ${$.prettyList(t,u,$.Type.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new we(`Pattern ${$.prettyList(t,u,$.Type.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,S,{suggestions:P,rejections:F}]of g){let H=P.filter(q=>q.descriptor!==null);if(H.length===0){let[q]=F;if(typeof q>"u")throw new Error("Assertion failed: Expected an error to have been set");let _=this.cli.error(q);i.configuration.get("enableNetwork")?B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range
${_}`):B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range (note: network resolution has been disabled)
${_}`)}else H.length>1&&!o&&B.reportError(27,`${x.prettyDescriptor(t,S)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[];for(let[B,S,,{suggestions:P}]of g){let F,H=P.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,vae.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${x.prettyWorkspace(t,B)} \u276F ${S}?`,choices:P.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 X=B.manifest[S].get(F.identHash);if(typeof X>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(X.descriptorHash!==F.descriptorHash)B.manifest[S].set(F.identHash,F),d.push([B,S,X,F]);else{let W=t.makeResolver(),Z={project:i,resolver:W},A=W.bindDescriptor(X,B.anchoredLocator,Z);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,d),p&&this.context.stdout.write(`
`),(await He.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};ml.paths=[["up"]],ml.usage=be.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 lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),ml.schema=[av("recursive",uc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Mu=class extends xe{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.parseIdent(this.package).identHash,o=this.recursive?$We(i,s,{configuration:t,peers:this.peers}):_We(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Mu.paths=[["why"]],Mu.usage=be.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 _We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.storedPackages.values(),a=>x.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 h=r.storedPackages.get(g);if(!h)throw new Error("Assertion failed: The package should have been registered");if(h.identHash!==e)continue;{let d=x.stringifyLocator(a);s[d]={value:[a,$.Type.LOCATOR],children:l}}let p=x.stringifyLocator(h);l[p]={value:[{descriptor:u,locator:h},$.Type.DEPENDENT]}}}return o}function $We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.workspaces,h=>x.stringifyLocator(h.anchoredLocator)),s=new Set,o=new Set,a=h=>{if(s.has(h.locatorHash))return o.has(h.locatorHash);if(s.add(h.locatorHash),h.identHash===e)return o.add(h.locatorHash),!0;let p=!1;h.identHash===e&&(p=!0);for(let d of h.dependencies.values()){if(!i&&h.peerDependencies.has(d.identHash))continue;let m=r.storedResolutions.get(d.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(p=!0)}return p&&o.add(h.locatorHash),p};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");a(p)}let l=new Set,c={},u={children:c},g=(h,p,d)=>{if(!o.has(h.locatorHash))return;let m=d!==null?$.tuple($.Type.DEPENDENT,{locator:h,descriptor:d}):$.tuple($.Type.LOCATOR,h),y={},B={value:m,children:y},S=x.stringifyLocator(h);if(p[S]=B,!l.has(h.locatorHash)&&(l.add(h.locatorHash),!(d!==null&&r.tryWorkspaceByLocator(h))))for(let P of h.dependencies.values()){if(!i&&h.peerDependencies.has(P.identHash))continue;let F=r.storedResolutions.get(P.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(F);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,P)}};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");g(p,c,null)}return u}var dO={};ct(dO,{default:()=>E8e,gitUtils:()=>lA});var lA={};ct(lA,{TreeishProtocols:()=>TQ,clone:()=>pO,fetchBase:()=>Xae,fetchChangedFiles:()=>Zae,fetchChangedWorkspaces:()=>C8e,fetchRoot:()=>Vae,isGitUrl:()=>ep,lsRemote:()=>zae,normalizeLocator:()=>gO,normalizeRepoUrl:()=>LQ,resolveUrl:()=>hO,splitRepoUrl:()=>Vm,validateRepoUrl:()=>fO});var qae=ve(Hae()),Jae=ve(xB()),$h=ve(J("querystring")),cO=ve(zr());var Gae=J("url");function lO(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function jae(r){try{return new Gae.URL(r)}catch{return}}function p8e(r){let e=lO(r,"@","#"),t=lO(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lO(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Yae(r){return jae(r)||jae(p8e(r))}function Wae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var d8e=[/^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\/(.+)?$/],TQ=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(TQ||{});function ep(r){return r?d8e.some(e=>!!r.match(e)):!1}function Vm(r){r=LQ(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(TQ).find(l=>Object.prototype.hasOwnProperty.call(n,l)),[o,a]=typeof s<"u"?[s,n[s]]:["head","HEAD"];for(let l of Object.values(TQ))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),[s,o]=n===-1?[null,i]:[i.slice(0,n),i.slice(n+1)];return{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function LQ(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Yae(r);t&&(r=t.href),r=r.replace Line truncated
- ${l.join(`
- `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};Uu.paths=[["workspace"]],Uu.usage=be.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 I8e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:_ae.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:[gu,fu,hu,pu,Lu,xu,Iu,Ku,Vh,Xh,Jm,Zh,cu,uu,du,Cu,mu,Eu,yu,wu,Bu,Qu,Ou,bu,ku,Pu,Du,Su,Ru,Fu,Nu,_h,Tu,ml,Mu,Uu]},y8e=I8e;var wO={};ct(wO,{default:()=>B8e});var Fe={optional:!0},mO=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Fe}}],["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"]:Fe,["postcss-jsx"]:Fe,["postcss-less"]:Fe,["postcss-markdown"]:Fe,["postcss-scss"]:Fe}}],["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:Fe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Fe}}],["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:Fe,"vue-template-compiler":Fe}}],["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:Fe,"utf-8-validate":Fe}}],["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":Fe,"vuetify-loader":Fe}}],["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 Line truncated
`),await M.writeFilePromise(v.join(i,"yarn.lock"),"");let n=v.join(i,".yarnrc.yml"),s=await Ee.findProjectCwd(this.context.cwd,St.lockfile),o=!(await Ee.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),a=s!==null?v.join(s,".yarnrc.yml"):null;a!==null&&M.existsSync(a)?(await M.copyFilePromise(a,n),await Ee.updateConfiguration(i,y=>{let B={...y,enableGlobalCache:o,enableTelemetry:!1};return Array.isArray(y.plugins)&&(B.plugins=y.plugins.map(S=>{let P=typeof S=="string"?S:S.path,F=K.isAbsolute(P)?P:K.resolve(K.fromPortablePath(s),P);return typeof S=="string"?F:{path:F,spec:S.spec}})),B})):await M.writeFilePromise(n,`enableGlobalCache: ${o}
enableTelemetry: false
`);let l=(m=this.packages)!=null?m:[this.command],c=x.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 Ee.find(i,this.context.plugins),{project:h,workspace:p}=await Ge.find(g,i);if(p===null)throw new lt(h.cwd,i);await h.restoreInstallState();let d=await Yt.getWorkspaceAccessibleBinaries(p);return d.has(c)===!1&&d.size===1&&typeof this.packages>"u"&&(c=Array.from(d)[0][0]),await Yt.executeWorkspaceAccessibleBinary(p,c,this.args,{packageAccessibleBinaries:d,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Hu.paths=[["dlx"]],Hu.usage=be.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 Q8e={commands:[tp,Hu]},b8e=Q8e;var vO={};ct(vO,{default:()=>x8e,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,jr="file:";var Zm={};ct(Zm,{makeArchiveFromLocator:()=>KQ,makeBufferFromLocator:()=>SO,makeLocator:()=>bO,makeSpec:()=>iAe,parseSpec:()=>QO});function QO(r){let{params:e,selector:t}=x.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?x.parseLocator(e.locator):null,path:i}}function iAe({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:x.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return x.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function bO(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return x.makeLocator(r,iAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function KQ(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=x.parseFileStyleRange(r.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await me.releaseAfterUseAsync(async()=>await Ci.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:x.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SO(r,{protocol:e,fetchOptions:t}){return(await KQ(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var UQ=class{supports(e,t){return!!e.reference.startsWith(jr)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:jr});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.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,`${x.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:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return KQ(e,{protocol:jr,fetchOptions:t})}};var S8e=2,HQ=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(jr)}supportsLocator(e,t){return!!e.reference.startsWith(jr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${jr}${e.range}`)),x.bindDescriptor(e,{locator:x.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}=QO(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SO(x.makeLocator(e,x.makeRange({protocol:jr,source:n,selector:n,params:{locator:x.stringifyLocator(s)}})),{protocol:jr,fetchOptions:i.fetchOptions}),a=Ai.makeHash(`${S8e}`,o).slice(0,6);return[bO(e,{parentLocator:s,path:n,folderHash:a,protocol:jr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me. Line truncated
`);let a=v.join(this.context.cwd,ot.fileName);await M.changeFilePromise(a,`${JSON.stringify(o,null,2)}
`,{automaticNewlines:!0});let l=v.join(this.context.cwd,"README.md");if(M.existsSync(l)||await M.writeFilePromise(l,`# ${x.stringifyIdent(n.name)}
`),!i||i.cwd===this.context.cwd){let u=v.join(this.context.cwd,St.lockfile);M.existsSync(u)||await M.writeFilePromise(u,"");let h=[".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(F=>`${F}
`).join(""),p=v.join(this.context.cwd,".gitignore");M.existsSync(p)||await M.writeFilePromise(p,h);let m=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(F=>`${F}
`).join(""),y=v.join(this.context.cwd,".gitattributes");M.existsSync(y)||await M.writeFilePromise(y,m);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,NAe.default)(B,t.get("initEditorConfig"));let S=`root = true
`;for(let[F,H]of Object.entries(B)){S+=`
[${F}]
`;for(let[q,_]of Object.entries(H)){let X=q.replace(/[A-Z]/g,W=>`_${W.toLowerCase()}`);S+=`${X} = ${_}
`}}let P=v.join(this.context.cwd,".editorconfig");M.existsSync(P)||await M.writeFilePromise(P,S),M.existsSync(v.join(this.context.cwd,".git"))||await pr.execvp("git",["init"],{cwd:this.context.cwd})}}};ju.paths=[["init"]],ju.usage=be.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 N4e={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:[ju]},T4e=N4e;var NO={};ct(NO,{default:()=>O4e});var cA="portal:",uA="link:";var WQ=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.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:Te.dot,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot}}};var zQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[x.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var VQ=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.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:Te.dot,discardFromLookup:!0,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0}}};var XQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor( Line truncated
${u}, next tree:
${eE(a)}`);let h=KAe(a);if(h)throw new Error(`${h}, after hoisting finished:
${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),q4e(a)},M4e=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},K4e=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},LAe=(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:h,dependencyKind:p,hoistedFrom:d,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:new Map(d),hoistedTo:new Map(m)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},U4e=(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},TO=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},OO=(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=J4e(o),l=U4e(o,a),c=r==o?new Map:n.fastLookupPossible?M4e(e):K4e(e),u,g=!1,h=!1,p=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),d=new Map;do{let m=G4e(r,e,t,c,p,l,i,d,n);m.isGraphChanged&&(h=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(p.delete(y),B.shift(),p.set(y,B[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=OO(r,[...e,m],t,d,n);y.isGraphChanged&&(h=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:h}},H4e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},j4e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,h=new Set;l&&(u=`${Array.from(e).map(y=>Di(y)).join("\u2192")}`);let p=t[t.length-1],m=!(i.ident===p.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!H4e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=p.dependencyKind!==1||p.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=p.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Di(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${Di(B.locator)} at ${u}`),y)for(let S=t.length-1;S>=1;S--){let F=t[S].dependencies.get(i.name);if(F&&F.ident!==i.ident){y=!1;let H=a.get(p);H||(H=new Set,a.set(p,H)),H.add(i.name),l&&(g=`- filled by ${Di(F.locator)} at ${t.slice(0,S).map(q=>Di(q.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Di(o.get(i.name)[0])} at ${u}`)),m){let y=!0,B=new Set(i.peerNames);for(let S=t.length-1;S>=1;S--){let P=t[S];for(let F of B){if(P.peerNames.has(F)&&P.originalDependencies.has(F))continue;let H=P.dependencies.get(F);H&&r.dependencies.get(F)!==H&&(S===t.length-1?h.add(H):(h=null,y=!1,l&&(g=`- peer dependency ${Di(H.locator)} from parent ${Di(P.locator)} was not hoisted to ${u}`))),B.delete(F)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Di(y.locator)}, available: ${Di(B==null?void 0:B.locator)}`);break}}return h!==null&&h.size>0?{isHoistable:2,dependsOn:h,reason:g}:{isHoistable:m?0:1,reason:g}},ZQ=r=>`${r.name}@${r.locator}`,G4e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,h=!1,p=(B,S,P,F,H)=>{if(u.has(F))return;let q=[...S,ZQ(F)],_=[...P,ZQ(F)],X=new Map,W=new Map;for(let te of TO(F)){let O=j4e(c,t,[c,...B,F],te,i,n,s,a,{outputReason:l.debugLevel>=2,fastLooku Line truncated
${eE(r)}`)}let ue=TO(F);for(let te of ue)if(Z.has(te)){let O=W.get(te);if((n.get(te.name)===te.ident||!F.reasons.has(te.name))&&O.isHoistable!==0&&F.reasons.set(te.name,O.reason),!te.isHoistBorder&&_.indexOf(ZQ(te))<0){u.add(F);let ce=LAe(F,te);p([...B,F],q,_,ce,m),u.delete(F)}}},d,m=new Set(TO(c)),y=Array.from(e).map(B=>ZQ(B));do{d=m,m=new Set;for(let B of d){if(B.locator===c.locator||B.isHoistBorder)continue;let S=LAe(c,B);p([],Array.from(t),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:h}},KAe=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(h=>Di(h.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let h=o.get(c.name);(h!==u||!h||h.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${h&&h.ident}`)}else{let h=a.hoistedFrom.get(s.name),p=s.hoistedTo.get(c.name),d=`${h?` hoisted from ${h.join(", ")}`:""}`,m=`${p?` hoisted to ${p}`:""}`,y=`${g()}${d}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} 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(`
`)},Y4e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LO(t,n),ident:TAe(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),h=!!g;if(!g){let{name:p,identName:d,reference:m,peerNames:y,hoistPriority:B,dependencyKind:S}=c,P=e.hoistingLimits.get(u.locator);g={name:p,references:new Set([m]),locator:LO(d,m),ident:TAe(d,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:P?P.has(p):!1,hoistPriority:B||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),h){let p=new Set,d=m=>{if(!p.has(m)){p.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||d(y)}};d(g)}else for(let p of c.dependencies)l(p,g)};for(let c of r.dependencies)l(c,o);return o},MO=r=>r.substring(0,r.indexOf("@",1)),q4e=r=>{let e={name:r.name,identName:MO(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:MO(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},J4e=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},Di=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}`},OAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>OAe||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),h=MO(u.locator);l+=`${o}${c<a.length-1?"\u251C\u2500":"\u2514\u2500"}${(s.has(u)?">":"")+(h!==u.name?`a:${u.name}:`:"")+Di(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>OAe?`
Tree is too large, part of the tree has been dunped
`:"")};var tE=(i=>(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),UAe="node_modules",Gu="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z4e(r,e),o=null;if(n.length===0){let a=MAe(t,{hoistingLimits:i});o=X4e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},na=r=>`${r.name}@${r.reference}`,UO=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(v.delimiter).length,o=n.split(v.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},HAe=(r,e)=>{let t=x.isVirtualLocator(r)?x.devirtualizeLocator(r):r,i=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e;return x.areLocatorsEqual(t,i)},KO=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return v.contains(i,n)===null},W4e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(h,p)=>{let d=na(h);if(l.has(d))return;l.add(d);let m=r.getPackageInformation(h);if(m){let y=p?na(p):"";if(na(h)!==y&&m.linkType==="SOFT"&&!KO(m,h,r,i)){let B=jAe(m,h,r);(!a.get(B)||h.reference.startsWith("workspace:"))&&a.set(B,h)}for(let[B,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(B)||c(r.getLocator(B,S),h))}};for(let h of o)c(h,null);let u=i.split(v.sep);for(let h of a.values()){let p=r.getPackageInformation(h),m=K.toPortablePath(p.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),y=s;for(let B of m){let S=y.children.get(B);S||(S={children:new Map},y.children.set(B,S)),y=S}y.workspaceLocator=h}let g=(h,p)=>{if(h.workspaceLocator){let d=na(p),m=n.get(d);m||(m=new Set,n.set(d,m)),m.add(h.workspaceLocator)}for(let d of h.children.values())g(d,h.workspaceLocator||p)};for(let h of s.children.values())g(h,s.workspaceLocator);return n},z4e=(r,e)=>{let t=[],i=!1,n=new Map,s=W4e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(p,d)=>`${na(d)}:${p}`,h=(p,d,m,y,B,S,P,F)=>{var te,O;let H=g(p,m),q=u.get(H),_=!!q;!_&&m.name===a.name&&m.reference===a.reference&&(q=c,u.set(H,c));let X=KO(d,m,r,l);if(!q){let N=0;X?N=2:d.linkType==="SOFT"&&m.name.endsWith(Gu)&&(N=1),q={name:p,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:N===1?new Set:d.packagePeers,dependencyKind:N},u.set(H,q)}let W;if(X?W=2:B.linkType==="SOFT"?W=1:W=0,q.hoistPriority=Math.max(q.hoistPriority||0,W),F&&!X){let N=na({name:y.identName,reference:y.reference}),ce=n.get(N)||new Set;n.set(N,ce),ce.add(q.name)}let Z=new Map(d.packageDependencies);if(e.project){let N=e.project.workspacesByCwd.get(K.toPortablePath(d.packageLocation.slice(0,-1)));if(N){let ce=new Set([...Array.from(N.manifest.peerDependencies.values(),he=>x.stringifyIdent(he)),...Array.from(N.manifest.peerDependenciesMeta.keys())]);for(let he of ce)Z.has(he)||(Z.set(he,S.get(he)||null),q.peerNames.add(he))}}let A=na({name:m.name.replace(Gu,""),reference:m.reference}),ne=s.get(A);if(ne)for(let N of ne)Z.set(`${N.name}${Gu}`,N.reference);(d!==B||d.linkType!=="SOFT"||!X&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(P)))&&y.dependencies.add(q);let ue=m!==a&&d.linkType==="SOFT"&&!m.name.endsWith(Gu)&&!X;if(!_&&!ue){let N=new Map;for(let[ce,he]of Z)if(he!==null){let Pe=r.getLocator(ce,he),De=r.getLocator(ce.replace(Gu,""),he),Re=r.getPackageInformation(De);if(Re===null)throw new Error("Assertion failed: Expected the package to have been registered");let se=KO(Re,Pe,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Re.packageDependencies.size>0&&(i=!0);for(let[Ye,ie]of Re.packageDependencies)if(ie!==null){let G=x.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ye}@${ie}`);if(na(G)!==na(Pe)){let fe=Z.get(Ye);if(fe){let re=x.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Ye}@${fe}`);HAe(re,G)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.referenceLine truncated
`;for(let s=0,o=r.length;s<o;++s)n+=i+_Q(String(s),r[s],e,i).replace(/^ +/,""),s+1<o&&(n+=","),n+=`
`;return n+=t,n+="]",n}function $4e(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+=_Q(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function eze(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+=_Q(c,u,e,n).replace(/^ +/g,""),o+=1)}return o!==0&&(s+=`
`),s+=t,s+="}",s}function _Q(r,e,t,i){let{next:n}=GAe[t],s=n[r]||n["*"];return YAe(e,s,i)}function YAe(r,e,t){let{collapsed:i}=GAe[e];return Array.isArray(r)?i?Z4e(r,e,t):_4e(r,e,t):typeof r=="object"&&r!==null?i?$4e(r,e,t):eze(r,e,t):JSON.stringify(r)}function qAe(r){return YAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function tze(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function rze(r){return iE(r.fallbackPool||[],([e])=>e)}function ize(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[d,m]of iE(a.entries(),([y])=>y))g.push([d,m]);let h=l&&l.size>0?Array.from(l):void 0,p=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:h,linkType:c,discardFromLookup:p}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:tze(r),fallbackPool:rze(r),packageRegistryData:ize(r)}}var zAe=ve(WAe());function VAe(r,e){return[r?`${r}
`:"",`/* eslint-disable */
`,`"use strict";
`,`
`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) {
`,e.replace(/^/gm," "),`}
`,`
`,(0,zAe.default)()].join("")}function nze(r){return JSON.stringify(r,null,2)}function sze(r){return`'${r.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\
`)}'`}function oze(r){return[`return hydrateRuntimeState(JSON.parse(${sze(qAe(r))}), {basePath: basePath || __dirname});
`].join("")}function aze(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 XAe(r){let e=nE(r),t=oze(e);return VAe(r.shebang,t)}function ZAe(r){let e=nE(r),t=aze(r.dataLocation),i=VAe(r.shebang,t);return{dataFile:nze(e),loaderFile:i}}var yle=J("fs");var wle=J("util");function jO(r,{basePath:e}){let t=K.toPortablePath(e),i=v.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,h])=>[g,new Map(h.map(([p,d])=>{var P;if(g===null!=(p===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(P=d.discardFromLookup)!=null?P:!1,y={name:g,reference:p},B=s.get(d.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&m,m||(B.locator=y)):s.set(d.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[p,{packageDependencies:new Map(d.packageDependencies),packagePeers:new Set(d.packagePeers),linkType:d.linkType,discardFromLookup:m,get packageLocation(){return S||(S=v.join(i,d.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,h])=>[g,new Set(h)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),gA=J("url"),_O=J("util");var qi=J("url");var tle=ve(J("assert"));var GO=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Yu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),YO=(r,e)=>RegExp.prototype.exec.call(r,e),qO=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),El=(r,...e)=>String.prototype.endsWith.apply(r,e),JO=(r,...e)=>String.prototype.includes.apply(r,e),WO=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),_Ae=(r,...e)=>String.prototype.replace.apply(r,e),Il=(r,...e)=>String.prototype.slice.apply(r,e),sa=(r,...e)=>String.prototype.startsWith.apply(r,e),$Ae=Map,ele=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var rle=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zO=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),ile=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!sa(t,"./");return e==="."?((0,tle.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),nle=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eb=J("url");function sle(r,e){let t=Object.create(null);for(let i=0;i<e.length;i++){let n=e[i];Yu(r,n)&&(t[n]=r[n])}return t}var $Q=new $Ae;function Aze(r,e,t,i){let n=$Q.get(r);if(n!==void 0)return n;let s=i(r);if(s===void 0){let p={pjsonPath:r,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $Q.set(r,p),p}let o;try{o=ele(s)}catch(p){throw new lE(r,(t?`"${e}" from `:"")+(0,eb.fileURLToPath)(t||e),p.message)}let{imports:a,main:l,name:c,type:u}=sle(o,["imports","main","name","type"]),g=Yu(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 h={pjsonPath:r,exists:!0,main:l,name:c,type:u,exports:g,imports:a};return $Q.set(r,h),h}function ole(r,e){let t=new URL("./package.json",r);for(;;){let s=t.pathname;if(El(s,"node_modules/package.json"))break;let o=Aze((0,eb.fileURLToPath)(t),r,void 0,e);if(o.exists)return o;let a=t;if(t=new URL("../package.json",t),t.pathname===a.pathname)break}let i=(0,eb.fileURLToPath)(t),n={pjsonPath:i,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $Q.set(i,n),n}function lze(r,e,t){throw new rle(r,e&&(0,qi.fileURLToPath)(new URL(".",e)),(0,qi.fileURLToPath)(t))}function cze(r,e,t,i){let n=`request is not a valid subpath for the "${t?"imports":"exports"}" resolution of ${(0,qi.fileURLToPath)(e)}`;throw new zO(r,n,i&&(0,qi.fileURLToPath)(i))}function cE(r,e,t,i,n){throw typeof e=="object"&&e!==null?e=sE(e,null,""):e=`${e}`,new ile((0,qi.fileURLToPath)(new URL(".",t)),r,e,i,n&&(0,qi.fileURLToPath)(n))}var ale=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|% Line truncated
`),t;o=r[++s]}else if(o===" "&&!i){n=!0;continue}else if(o==='"'){i=!i;continue}n?(t.push(o),n=!1):t[t.length-1]+=o}return i&&e.push(`invalid value for NODE_OPTIONS (unterminated string)
`),t}var Ele=J("module");var[Ir,Ji]=process.versions.node.split(".").map(r=>parseInt(r,10)),EBt=Ir>16||Ir===16&&Ji>=12,IBt=Ir>17||Ir===17&&Ji>=5||Ir===16&&Ji>=15,yBt=Ir>17||Ir===17&&Ji>=1||Ir===16&&Ji>14,mle=Ir>19||Ir===19&&Ji>=2||Ir===18&&Ji>=13,wBt=Ir===20&&Ji<6||Ir===19&&Ji>=3,BBt=Ir>19||Ir===19&&Ji>=6,QBt=Ir>18||Ir===18&&Ji>=1||Ir===16&&Ji>=17,bBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=19,SBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=20,vBt=Ir>=22;var Eze=new Set(Ele.Module.builtinModules||Object.keys(process.binding("natives"))),tb=r=>r.startsWith("node:")||Eze.has(r);function Ile(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(wr.resolveVirtual(K.toPortablePath(e)))),mle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $O(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let se of["react-scripts","gatsby"]){let Ae=r.packageRegistry.get(se);if(Ae)for(let ye of Ae.keys()){if(ye===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:se,reference:ye})}}let{ignorePattern:g,packageRegistry:h,packageLocatorsByLocations:p}=r;function d(se,Ae){return{fn:se,args:Ae,error:null,result:null}}function m(se){var Ye,ie,G,fe,re,de;let Ae=(G=(ie=(Ye=process.stderr)==null?void 0:Ye.hasColors)==null?void 0:ie.call(Ye))!=null?G:process.stdout.isTTY,ye=(Ze,vt)=>`\x1B[${Ze}m${vt}\x1B[0m`,ge=se.error;console.error(ge?ye("31;1",`\u2716 ${(fe=se.error)==null?void 0:fe.message.replace(/\n.*/s,"")}`):ye("33;1","\u203C Resolution")),se.args.length>0&&console.error();for(let Ze of se.args)console.error(` ${ye("37;1","In \u2190")} ${(0,_O.inspect)(Ze,{colors:Ae,compact:!0})}`);se.result&&(console.error(),console.error(` ${ye("37;1","Out \u2192")} ${(0,_O.inspect)(se.result,{colors:Ae,compact:!0})}`));let oe=(de=(re=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:re.slice(2))!=null?de:[];if(oe.length>0){console.error();for(let Ze of oe)console.error(` ${ye("38;5;244",Ze)}`)}console.error()}function y(se,Ae){if(e.allowDebug===!1)return Ae;if(Number.isFinite(i)){if(i>=2)return(...ye)=>{let ge=d(se,ye);try{return ge.result=Ae(...ye)}catch(oe){throw ge.error=oe}finally{m(ge)}};if(i>=1)return(...ye)=>{try{return Ae(...ye)}catch(ge){let oe=d(se,ye);throw oe.error=ge,m(oe),ge}}}return Ae}function B(se){let Ae=A(se);if(!Ae)throw ei("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ae}function S(se){if(se.name===null)return!0;for(let Ae of r.dependencyTreeRoots)if(Ae.name===se.name&&Ae.reference===se.reference)return!0;return!1}let P=new Set(["node","require",...Cle("--conditions")]);function F(se,Ae=P,ye){let ge=te(v.join(se,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(ge===null)throw ei("INTERNAL",`The locator that owns the "${se}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:oe}=B(ge),Ye=v.join(oe,St.manifest);if(!e.fakeFs.existsSync(Ye))return null;let ie=JSON.parse(e.fakeFs.readFileSync(Ye,"utf8"));if(ie.exports==null)return null;let G=v.contains(oe,se);if(G===null)throw ei("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");G!=="."&&!a.test(G)&&(G=`./${G}`);try{let fe=ule({packageJSONUrl:(0,gA.pathToFileURL)(K.fromPortablePath(Ye)),packageSubpath:G,exports:ie.exports,base:ye?(0,gA.pathToFileURL)(K.fromPortablePath(ye)):null,conditions:Ae});return K.toPortablePath((0,gA.fileURLToPath)(fe))}catch(fe){throw ei("EXPORTS_RESOLUTION_FAILED",fe.message,{unqualifiedPath:ho(se),locator:ge,pkgJson:ie,subpath:ho(G),conditions:Ae},fe.code)}}function H(se,Ae,{extensions:ye}){let ge;try{Ae.push(se),ge=e.fakeFs.statSync(se)}catch{}if(ge&&!ge.isDirectory())return e.fakeFs.realpathSync(se);if(ge&&ge.isDirectory()){let oe;try{oe=JSON.parse(e.fakeFs.readFileSync(v.join(se,St.manifest),"utf8"))}catch{}let Ye;if(oe&&oe.main&&(Ye=v.resolve(se,oe.main)),Ye&&Ye!==se){let ie=H(Ye,Ae,{extensions:ye});if(ie!==null)return ie}}for(let oe=0,Ye=ye.length;oe<Ye;oe++){let ie=`${se}${ye[oe]}`;if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}if(ge&&ge.isDirectory())for(let oe=0,Ye=ye.length;oe<Ye;oe++){let ie=v.format({dir:se,name:"index",ext:ye[oe]});if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}return null}function q(se){let Ae=new gE.Module(se,null);return Ae.filename=se,Ae.paths=gE.Module._nodeModulePaths(se),Ae}function _(se,Ae){return Ae.endsWith("/")&&(Ae=v.join(Ae,"internal.js")),gE.Module._resolveFilename(K.fromPortablePath(se),q(K.fromPortablePath(Ae)),!1,{plugnplay:!1})}function X(se){if(g===null)return!1;let Ae=v.conLine truncated
Require request: "${ge}"
Required by: ${oe}
`,{request:ge,issuer:oe});return K.toPortablePath(G)}let Ye,ie=se.match(n);if(ie){if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let[,G,fe]=ie,re=te(Ae);if(!re){let gr=_(se,Ae);if(gr===!1)throw ei("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: "${ge}"
Required by: ${oe}
`,{request:ge,issuer:oe});return K.toPortablePath(gr)}let Ze=B(re).packageDependencies.get(G),vt=null;if(Ze==null&&re.name!==null){let gr=r.fallbackExclusionList.get(re.name);if(!gr||!gr.has(re.reference)){for(let ri=0,Ms=c.length;ri<Ms;++ri){let Ei=B(c[ri]).packageDependencies.get(G);if(Ei!=null){t?vt=Ei:Ze=Ei;break}}if(r.enableTopLevelFallback&&Ze==null&&vt===null){let ri=r.fallbackPool.get(G);ri!=null&&(vt=ri)}}}let mt=null;if(Ze===null)if(S(re))mt=ei("MISSING_PEER_DEPENDENCY",`Your application tried to access ${G} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.
Required package: ${G}${G!==ge?` (via "${ge}")`:""}
Required by: ${oe}
`,{request:ge,issuer:oe,dependencyName:G});else{let gr=ue(G,re);gr.every(gi=>S(gi))?mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${G} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.
Required package: ${G}${G!==ge?` (via "${ge}")`:""}
Required by: ${re.name}@${re.reference} (via ${oe})
${gr.map(gi=>`Ancestor breaking the chain: ${gi.name}@${gi.reference}
`).join("")}
`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr}):mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${G} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.
Required package: ${G}${G!==ge?` (via "${ge}")`:""}
Required by: ${re.name}@${re.reference} (via ${oe})
${gr.map(gi=>`Ancestor breaking the chain: ${gi.name}@${gi.reference}
`).join("")}
`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr})}else Ze===void 0&&(!ye&&tb(se)?S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}. 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 ${G} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.
Required package: ${G}${G!==ge?` (via "${ge}")`:""}
Required by: ${oe}
`,{request:ge,issuer:oe,dependencyName:G}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${G}. 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 ${G} isn't otherwise declared in ${re.name}'s dependencies, this makes the require call ambiguous and unsound.
Required package: ${G}${G!==ge?` (via "${ge}")`:""}
Required by: ${oe}
`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G}):S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.
Required package: ${G}${G!==ge?` (via "${ge}")`:""}
Required by: ${oe}
`,{request:ge,issuer:oe,dependencyName:G}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${G}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.
Required package: ${G}${G!==ge?` (via "${ge}")`:""}
Required by: ${re.name}@${re.reference} (via ${oe})
`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G}));if(Ze==null){if(vt===null||mt===null)throw mt||new Error("Assertion failed: Expected an error to have been set");Ze=vt;let gr=mt.message.replace(/\n.*/g,"");mt.message=gr,!u.has(gr)&&i!==0&&(u.add(gr),process.emitWarning(mt))}let Lr=Array.isArray(Ze)?{name:Ze[0],reference:Ze[1]}:{name:G,reference:Ze},ti=B(Lr);if(!ti.packageLocation)throw ei("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: ${Lr.name}@${Lr.reference}${Lr.name!==ge?` (via "${ge}")`:""}
Required by: ${re.name}@${re.reference} (via ${oe})
`,{request:ge,issuer:oe,dependencyLocator:Object.assign({},Lr)});let ui=ti.packageLocation;fe?Ye=v.join(ui,fe):Ye=ui}else if(v.isAbsolute(se))Ye=v.normalize(se);else{if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let G=v.resolve(Ae);Ae.match(o)?Ye=v.normalize(v.join(G,se)):Ye=v.normalize(v.join(v.dirname(G),se))}return v.normalize(Ye)}function ce(se,Ae,ye=P,ge){if(s.test(se))return Ae;let oe=F(Ae,ye,ge);return oe?v.normalize(oe):Ae}function he(se,{extensions:Ae=Object.keys(gE.Module._extensions)}={}){var oe,Ye;let ye=[],ge=H(se,ye,{extensions:Ae});if(ge)return v.normalize(ge);{Ile(ye.map(fe=>K.fromPortablePath(fe)));let ie=ho(se),G=te(se);if(G){let{packageLocation:fe}=B(G),re=!0;try{e.fakeFs.accessSync(fe)}catch(de){if((de==null?void 0:de.code)==="ENOENT")re=!1;else{let Ze=((Ye=(oe=de==null?void 0:de.message)!=null?oe:de)!=null?Ye:"empty exception thrown").replace(/^[A-Z]/,vt=>vt.toLowerCase());throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${Ze}).
Missing package: ${G.name}@${G.reference}
Expected package location: ${ho(fe)}
`,{unqualifiedPath:ie,extensions:Ae})}}if(!re){let de=fe.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 ei("QUALIFIED_PATH_RESOLUTION_FAILED",`${de}
Missing package: ${G.name}@${G.reference}
Expected package location: ${ho(fe)}
`,{unqualifiedPath:ie,extensions:Ae})}}throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed.
Source path: ${ie}
${ye.map(fe=>`Not found: ${ho(fe)}
`).join("")}`,{unqualifiedPath:ie,extensions:Ae})}}function Pe(se,Ae,ye){var oe;if(!Ae)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let ge=gle({name:se,base:(0,gA.pathToFileURL)(K.fromPortablePath(Ae)),conditions:(oe=ye.conditions)!=null?oe:P,readFileSyncFn:O});if(ge instanceof gA.URL)return he(K.toPortablePath((0,gA.fileURLToPath)(ge)),{extensions:ye.extensions});if(ge.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return De(ge,Ae,ye)}function De(se,Ae,ye={}){try{if(se.startsWith("#"))return Pe(se,Ae,ye);let{considerBuiltins:ge,extensions:oe,conditions:Ye}=ye,ie=N(se,Ae,{considerBuiltins:ge});if(se==="pnpapi")return ie;if(ie===null)return null;let G=()=>Ae!==null?X(Ae):!1,fe=(!ge||!tb(se))&&!G()?ce(se,ie,Ye,Ae):ie;return he(fe,{extensions:oe})}catch(ge){throw Object.prototype.hasOwnProperty.call(ge,"pnpCode")&&Object.assign(ge.data,{request:ho(se),issuer:Ae&&ho(Ae)}),ge}}function Re(se){let Ae=v.normalize(se),ye=wr.resolveVirtual(Ae);return ye!==Ae?ye: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,ye]of h)for(let ge of ye.keys())Ae!==null&&ge!==null&&se.push({name:Ae,reference:ge});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let ye=K.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:ye}},findPackageLocator:se=>te(K.toPortablePath(se)),resolveToUnqualified:y("resolveToUnqualified",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=N(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveUnqualified:y("resolveUnqualified",(se,Ae)=>K.fromPortablePath(he(K.toPortablePath(se),Ae))),resolveRequest:y("resolveRequest",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=De(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveVirtual:y("resolveVirtual",se=>{let Ae=Re(K.toPortablePath(se));return Ae!==null?K.fromPortablePath(Ae):null})}}var YBt=(0,wle.promisify)(yle.readFile);var Ble=(r,e,t)=>{let i=nE(r),n=jO(i,{basePath:e}),s=K.join(e,St.pnpCjs);return $O(n,{fakeFs:t,pnpapiResolution:s})};var tM=ve(ble());var po={};ct(po,{checkAndReportManifestCompatibility:()=>vle,checkManifestCompatibility:()=>Sle,extractBuildScripts:()=>rb,getExtractHint:()=>rM,hasBindingGyp:()=>iM});function Sle(r){return x.isPackageCompatible(r,ys.getArchitectureSet())}function vle(r,e,{configuration:t,report:i}){return Sle(r)?!0:(i==null||i.reportWarningOnce(76,`${x.prettyLocator(t,r)} The ${ys.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rb(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,`${x.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,`${x.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,`${x.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):vle(r,"build",{configuration:i,report:n})?s:[]}var yze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rM(r){return r.packageFs.getExtractHint({relevantExtensions:yze})}function iM(r){let e=v.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ct(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),x.slugifyLocator(r))}var wze=new Set([x.makeIdent(null,"open").identHash,x.makeIdent(null,"opn").identHash]),yl=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=wl(t.project).cjs;if(!M.existsSync(i))throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})),s={name:x.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(Line truncated
`,s+=`# cause your node_modules installation to become invalidated.
`,s+=`
`,s+=`__metadata:
`,s+=` version: ${Hle}
`,s+=` nmMode: ${i.value}
`;let o=Array.from(e.keys()).sort(),a=x.stringifyLocator(r.topLevelWorkspace.anchoredLocator);for(let u of o){let g=e.get(u);s+=`
`,s+=`${JSON.stringify(u)}:
`,s+=` locations:
`;for(let h of g.locations){let p=v.contains(r.cwd,h);if(p===null)throw new Error(`Assertion failed: Expected the path to be within the project (${h})`);s+=` - ${JSON.stringify(p)}
`}if(g.aliases.length>0){s+=` aliases:
`;for(let h of g.aliases)s+=` - ${JSON.stringify(h)}
`}if(u===a&&t.size>0){s+=` bin:
`;for(let[h,p]of t){let d=v.contains(r.cwd,h);if(d===null)throw new Error(`Assertion failed: Expected the path to be within the project (${h})`);s+=` ${JSON.stringify(d)}:
`;for(let[m,y]of p){let B=v.relative(v.join(h,Dr),y);s+=` ${JSON.stringify(m)}: ${JSON.stringify(B)}
`}}}}let l=r.cwd,c=v.join(l,Dr,jle);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function uM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=v.join(t,Dr,jle),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=wi(await M.readFilePromise(i,"utf8"));if(s.__metadata.version>Hle)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(p=>v.join(t,p)),h=u.bin;if(h)for(let[p,d]of Object.entries(h)){let m=v.join(t,K.toPortablePath(p)),y=me.getMapWithDefault(l,m);for(let[B,S]of Object.entries(d))y.set(Yr(B),K.toPortablePath([m,Dr,S].join(v.sep)))}if(a.set(c,{target:Te.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let p of u.aliases){let{scope:d,name:m}=x.parseLocator(c),y=x.makeLocator(x.makeIdent(d,m),p),B=x.stringifyLocator(y);a.set(B,{target:Te.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Gle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(v.sep).indexOf(Dr)<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=v.join(r,Yr(i.name));i.isDirectory()?(i.name!==Dr||e&&e.innerLoop)&&await sp(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}},Ole=4,sb=(r,{skipPrefix:e})=>{let t=v.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(v.sep).filter(l=>l!==""),n=i.indexOf(Dr),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Gle=(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"&&v.contains(e,s.target)!==null){let a=me.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sb(o,{skipPrefix:e}),c=me.getFactoryWithDefault(t,a,i);for(let u=0;u<l.length;++u){let g=l[u];if(g!=="."){let h=me.getFactoryWithDefault(c.children,g,i);c.children.set(g,h),c=h}u===l.length-1&&(c.locator=n,c.linkType=s.linkType)}}}return t},fM=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(v.relative(v.dirname(e),r),e)};async function Yle(r,e,t){let i=v.join(r,Yr(`${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 Wze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===qle.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=v.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-Yze))if(await Ai.checksumFile(a,{baseFs:M,algorithm:"sha1"})!==t.digest){let g=v.join(i,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));await M.renamePromise(a,g);let h=await n.readFilePromise(r);await M.writeFilePromise(g,h);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 Yle(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 qle=(i=>(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(qle||{}),zze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=Te.dot)=>{let u=v.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),h=new Map;for(let p of g){let d=v.join(c,p.name),m,y=v.join(u,p.name);if(p.isFile()){if(m={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await Ai.checksumFile(y,{baseFs:t,algorithm:"sha1"});m.digest=B}}else if(p.isDirectory())m={kind:"directory"};else if(p.isSymbolicLink())m={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(h.set(d,m),p.isDirectory()&&d!==Dr){let B=await o(d);for(let[S,P]of B)h.set(S,P)}}return h},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,EM.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(`
`),i}function lb(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cb=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i,params:n}=x.parseRange(e.reference);return!(!_le.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,`${x.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:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=x.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await mo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Ci.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var ub=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!x.tryParseDescriptor(e.range.slice(cr.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=x.parseDescriptor(e.range.slice(cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var $le=ve(zr()),ece=J("url");var Ts=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let i=new ece.URL(e.reference);return!(!$le.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,`${x.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:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await mo(Ts.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await mo(Ts.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ts.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=bt.clean(e.reference.slice(cr.length));if(t===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");return`${Ql(e)}/-/${e.name}-${t}.tgz`}};var tce=ve(zr());var gb=x.makeIdent(null,"node-gyp"),A5e=/\b(node-gyp|prebuild-install)\b/,fb=class{supportsDescriptor(e,t){return e.range.startsWith(cr)?!!bt.validRange(e.range.slice(cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i}=x.parseRange(e.reference);return!!tce.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=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);let s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=me.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new bt.SemVer(c);if(n.test(u))return u}catch{}return me.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=x.makeLocator(e,`${cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ts.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:x.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===nulLine truncated
`;try{n=await M.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Wue={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"}},aVe={configuration:{...g1,...Wue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Wue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Co,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cb,Ts],resolvers:[ub,fb,hb]},AVe=aVe;var C1={};ct(C1,{default:()=>EVe});var DE=ve(Qn());As();var Mb=(i=>(i.All="all",i.Production="production",i.Development="development",i))(Mb||{}),Kb=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(Kb||{});var kE=["info","low","moderate","high","critical"];function Vue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function lVe(r,e){return new Set([...r].filter(t=>!e.has(t)))}function cVe(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(h=>h.manifest),s=new Set(n.map(h=>[...h.dependencies].map(([p,d])=>p)).flat()),o=new Set(n.map(h=>[...h.devDependencies].map(([p,d])=>p)).flat()),a=i.map(h=>[...h.dependencies.values()]).flat(),l=a.filter(h=>s.has(h.identHash)).map(h=>h.descriptorHash),c=a.filter(h=>o.has(h.identHash)).map(h=>h.descriptorHash),u=Vue(r,l),g=Vue(r,c);return lVe(g,u)}function Xue(r){let e={};for(let t of r)e[x.stringifyIdent(t)]=x.parseRange(t.range).selector;return e}function Zue(r){if(typeof r>"u")return new Set(kE);let e=kE.indexOf(r),t=kE.slice(e);return new Set(t)}function uVe(r,e){let t=Zue(e),i={};for(let n of t)i[n]=r[n];return i}function _ue(r,e){var i;let t=uVe(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function $ue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Zue(e);n=n.filter(a=>o.has(a.severity))}for(let o of me.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:$.tuple($.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:$.tuple($.Type.NUMBER,o.id)},Issue:{label:"Issue",value:$.tuple($.Type.NO_HINT,o.title)},URL:{label:"URL",value:$.tuple($.Type.URL,o.url)},Severity:{label:"Severity",value:$.tuple($.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:$.tuple($.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:$.tuple($.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:$.tuple($.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:$.tuple($.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function ege(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Xue([...o,...l].filter(c=>x.parseRange(c.range).protocol===null))}function tge(r,e,{all:t}){var s;let i=cVe(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[x.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Xue(o.dependencies.values()),dev:i.has(x.convertLocatorToDescriptor(o).descriptorHash)};return n}var eg=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Zi(Mb)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Zi(Kb)});this.e 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 ${kE.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 h1=ve(zr()),p1=J("util"),tg=class extends xe{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await He.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 F=i.topLevelWorkspace;if(!F.manifest.name)throw new we(`Missing ${$.pretty(t,"name",$.Type.CODE)} field in ${K.fromPortablePath(v.join(F.cwd,St.manifest))}`);u=x.makeDescriptor(F.manifest.name,"unknown")}else u=x.parseDescriptor(c);let g=xt.getIdentUrl(u),h=d1(await xt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:xt.customPackageError})),p=Object.keys(h.versions).sort(h1.default.compareLoose),m=h["dist-tags"].latest||p[p.length-1],y=bt.validRange(u.range);if(y){let F=h1.default.maxSatisfying(p,y);F!==null?m=F:(l.reportWarning(0,`Unmet range ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(h["dist-tags"],u.range)?m=h["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=h.versions[m],S={...h,...B,version:m,versions:p},P;if(n!==null){P={};for(let F of n){let H=S[F];if(typeof H<"u")P[F]=H;else{l.reportWarning(1,`The ${$.pretty(t,F,$.Type.CODE)} field doesn't exist inside ${x.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete S.dist,delete S.readme,delete S.users),P=S;l.reportJson(P),this.json||s.push(P)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(`
`),this.context.stdout.write(`${(0,p1.inspect)(l,{depth:1/0,colors:!0,compact:!1})}
`);return a.exitCode()}};tg.paths=[["npm","info"]],tg.usage=be.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 react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function d1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=d1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=d1(r[t]);i&&(e[t]=i)}return e}else return r||null}var rge=ve(Um()),rg=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await pVe({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=await fVe(i,o,t);return await hVe(i,a,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};rg.paths=[["npm","login"]],rg.usage=be.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 Ub({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?nr.getScopeRegistry(r,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):r?nr.getScopeRegistry(r,{configuration:t}):e?nr.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):nr.getDefaultRegistry({configuration:t})}async function fVe(r,e,t){var u,g;let i=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,n={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},s={attemptedAs:e.name,configuration:t,registry:r,jsonResponse:!0,authType:xt.AuthType.NO_AUTH};try{return(await xt.put(i,n,s)).token}catch(h){if(!(((u=h.originalError)==null?void 0:u.name)==="HTTPError"&&((g=h.originalError)==null?void 0:g.response.statusCode)===409))throw h}let o={...s,authType:xt.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},a=await xt.get(i,o);for(let[h,p]of Object.entries(a))(!n[h]||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 RE(r,e){let t=`/-/package${xt.getIdentUrl(r)}/dist-tags`;return xt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:xt.customPackageError})}var og=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseDescriptor(this.package,!0),o=s.range;if(!nge.default.valid(o))throw new we(`The range ${$.pretty(t,s.range,$.Type.RANGE)} must be a valid semver version`);let a=nr.getPublishRegistry(n.manifest,{configuration:t}),l=$.pretty(t,s,$.Type.IDENT),c=$.pretty(t,o,$.Type.RANGE),u=$.pretty(t,this.tag,$.Type.CODE);return(await He.start({configuration:t,stdout:this.context.stdout},async h=>{let p=await RE(s,t);Object.prototype.hasOwnProperty.call(p,this.tag)&&p[this.tag]===o&&h.reportWarning(0,`Tag ${u} is already set to version ${c}`);let d=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.put(d,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),h.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};og.paths=[["npm","tag","add"]],og.usage=be.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:`
This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten.
`,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var ag=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new we("The 'latest' tag cannot be removed.");let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseIdent(this.package),o=nr.getPublishRegistry(n.manifest,{configuration:t}),a=$.pretty(t,this.tag,$.Type.CODE),l=$.pretty(t,s,$.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new we(`${a} is not a tag of package ${l}`);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{let h=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.del(h,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};ag.paths=[["npm","tag","remove"]],ag.usage=be.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 Ag=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=nr.getScopeRegistry(this.scope,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):this.scope?i=nr.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=nr.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=nr.getDefaultRegistry({configuration:t}),(await He.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await xt.get("/-/whoami",{configuration:t,registry:i,authType:xt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?x.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()}};Ag.paths=[["npm","whoami"]],Ag.usage=be.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 mVe={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:[eg,tg,rg,ig,ng,og,sg,ag,Ag]},EVe=mVe;var S1={};ct(S1,{default:()=>TVe,patchUtils:()=>lg});var lg={};ct(lg,{applyPatchFile:()=>jb,diffFolders:()=>Q1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>uge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>b1,parseDescriptor:()=>NE,parseLocator:()=>TE,parsePatchFile:()=>FE});var IVe=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return v.relative(Te.root,v.resolve(Te.root,K.toPortablePath(r)))}function yVe(r){let e=r.trim().match(IVe);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 wVe=420,BVe=493;var sge=()=>({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}),QVe=r=>({header:yVe(r),parts:[]}),bVe={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function SVe(r){let e=[],t=sge(),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=sge()}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).trim():c.startsWith("+++ ")&&(t.toP Line truncated
`)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":`
`):"";await e.mkdirpPromise(v.dirname(n.path),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,xr.SAFE_TIME,xr.SAFE_TIME)}break;case"patch":await yp(e,n.path,async()=>{await DVe(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(oge(n.newMode)!==oge(o))continue;await yp(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:me.assertNever(n);break}}function oge(r){return(r&64)>0}function age(r){return r.replace(/\s+$/,"")}function kVe(r,e){return age(r)===age(e)}async function DVe({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 h=Math.max(c,g.header.patched.start+l),p=Math.max(0,h-c),d=Math.max(0,o.length-h-g.header.original.length),m=Math.max(p,d),y=0,B=0,S=null;for(;y<=m;){if(y<=p&&(B=h-y,S=Age(g,o,B),S!==null)){y=-y;break}if(y<=d&&(B=h+y,S=Age(g,o,B),S!==null))break;y+=1}if(S===null)throw new Ip(r.indexOf(g),g);a.push(S),l+=y,c=B+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let h of g)switch(h.type){case"splice":{let p=h.index+u;o.splice(p,h.numToDelete,...h.linesToInsert),u+=h.linesToInsert.length-h.numToDelete}break;case"pop":o.pop();break;case"push":o.push(h.line);break;default:me.assertNever(h);break}await t.writeFilePromise(e,o.join(`
`),{mode:n})}function Age(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||!kVe(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:me.assertNever(n.type);break}return i}var FVe=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=x.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?x.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function NE(r){let{sourceItem:e,...t}=m1(r.range,x.parseDescriptor);return{...t,sourceDescriptor:e}}function TE(r){let{sourceItem:e,...t}=m1(r.reference,x.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,x.parseDescriptor);return e}function lge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:x.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return x.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return x.makeDescriptor(r,lge({parentLocator:e,sourceItem:t,patchPaths:i},x.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return x.makeLocator(r,lge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},x.stringifyLocator))}function cge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(FVe);return s!==null?t(s[1]):v.isAbsolute(i)?r(i):e(i)}function uge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return cge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await me.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=uge(o),l=await cge({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(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,`
`));return s}async function B1(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new $r,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await M.mktempPromise(),c=v.join(l,"source"),u=v.join(l,"user"),g=v.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:x.stringifyLocator(r),version:i.version})]),M.detachTemp(l),u}async function Q1(r,e){let t=K.fromPortablePath(r).replace(/\\/g,"/"),i=K.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await pr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH.
The following error was reported by 'git':
${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${me.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${me.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(me.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(me.escapeRegExp(`${i}/`),"g"),"")}function b1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!bt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return Ai.makeHash(`${3}`,...t).slice(0,6)}function gge(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,` ${$.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${$.pretty(e,n,$.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${$.pretty(e,n,$.Type.ADDED)}`);break;default:me.assertNever(i.type)}}var Gb=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,`${x.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:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=TE(e),a=await LE(i,o,t),l=await M.mktempPromise(),c=v.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=x.getIdentVendorPath(e),h=await an(),p=new qr(c,{libzip:h,create:!0,level:t.project.configuration.get("compressionLevel")});await me.releaseAfterUseAsync(async()=>{await p.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),p.saveAndClose();for(let{source:d,optional:m}of a){if(d===null)continue;let y=new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")}),B=new jt(v.resolve(Te.root,g),{baseFs:y});try{await jb(FE(d),{baseFs:B,version:s})}catch(S){if(!(S instanceof Ip))throw S;let P=t.project.configuration.get("enableInlineHunks"),F=!P&&!m?" (set enableInlineHunks for details)":"",H=`${x.prettyLocator(t.project.configuration,e)}: ${S.message}${F}`,q=_=>{!P||gge(S.hunk,{configuration:t.project.configuration,report:_})};if(y.discardAndClose(),m){t.report.reportWarningOnce(66,H,{reportExtra:q});continue}else throw new rt(66,H,q)}y.saveAndClose()}return new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")})}};var Yb=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=NE(e);return n.every(s=>!w1(s))?e:x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=NE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=NE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=b1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=TE(e);return{...await t.resolver.resolve(i,t),...e}}};var cg=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=v.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=v.join(s,"../source"),a=v.join(s,"../.yarn-patch.json");if(!M.existsSync(o))throw new we("The argument folder didn't get created by 'yarn patch'");let l=await Q1(o,s),c=await M.readJsonPromise(a),u=x.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new we("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),h=v.join(g,`${x.slugifyLocator(u)}.patch`);await M.mkdirPromise(g,{recursive:!0}),await M.writeFilePromise(h,l);let p=new Map;for(let d of i.storedPackages.values()){if(x.isVirtualLocator(d))continue;let m=d.dependencies.get(u.identHash);if(!m)continue;let y=x.isVirtualDescriptor(m)?x.devirtualizeDescriptor(m):m,B=E1(y),S=i.storedResolutions.get(B.descriptorHash);if(!S)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(S))throwLine truncated
${a.map(l=>`
- ${x.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new we("No package found in the project for the given locator");await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:x.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${x.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${$.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${$.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};ug.paths=[["patch"]],ug.usage=be.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 NVe={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:[cg,ug],fetchers:[Gb],resolvers:[Yb]},TVe=NVe;var k1={};ct(k1,{default:()=>MVe});var qb=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.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 we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.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=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new me.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return x1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=v.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=LVe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,x.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=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:po.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=po.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!fge(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 (${x.stringifyLocator(e)})`);let s=v.join(n,St.nodeModules),o=[],a=await hge(s);for(let[l,c]of t){let u=c;fge(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=x.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected t Line 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 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.
*/
/**
@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.
*/
+944
View File
@@ -0,0 +1,944 @@
#!/usr/bin/env node
/* eslint-disable */
//prettier-ignore
(()=>{var Cje=Object.create;var sU=Object.defineProperty;var wje=Object.getOwnPropertyDescriptor;var Bje=Object.getOwnPropertyNames;var vje=Object.getPrototypeOf,Sje=Object.prototype.hasOwnProperty;var Ie=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Xe=(e,t)=>()=>(e&&(t=e(e=0)),t);var G=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Vt=(e,t)=>{for(var r in t)sU(e,r,{get:t[r],enumerable:!0})},bje=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Bje(t))!Sje.call(e,a)&&a!==r&&sU(e,a,{get:()=>t[a],enumerable:!(s=wje(t,a))||s.enumerable});return e};var et=(e,t,r)=>(r=e!=null?Cje(vje(e)):{},bje(t||!e||!e.__esModule?sU(r,"default",{value:e,enumerable:!0}):r,e));var pi={};Vt(pi,{SAFE_TIME:()=>gZ,S_IFDIR:()=>ZP,S_IFLNK:()=>$P,S_IFMT:()=>Hf,S_IFREG:()=>R2});var Hf,ZP,R2,$P,gZ,mZ=Xe(()=>{Hf=61440,ZP=16384,R2=32768,$P=40960,gZ=456789e3});var or={};Vt(or,{EBADF:()=>Yo,EBUSY:()=>Dje,EEXIST:()=>Tje,EINVAL:()=>xje,EISDIR:()=>Rje,ENOENT:()=>kje,ENOSYS:()=>Pje,ENOTDIR:()=>Qje,ENOTEMPTY:()=>Nje,EOPNOTSUPP:()=>Oje,EROFS:()=>Fje,ERR_DIR_CLOSED:()=>oU});function vc(e,t){return Object.assign(new Error(`${e}: ${t}`),{code:e})}function Dje(e){return vc("EBUSY",e)}function Pje(e,t){return vc("ENOSYS",`${e}, ${t}`)}function xje(e){return vc("EINVAL",`invalid argument, ${e}`)}function Yo(e){return vc("EBADF",`bad file descriptor, ${e}`)}function kje(e){return vc("ENOENT",`no such file or directory, ${e}`)}function Qje(e){return vc("ENOTDIR",`not a directory, ${e}`)}function Rje(e){return vc("EISDIR",`illegal operation on a directory, ${e}`)}function Tje(e){return vc("EEXIST",`file already exists, ${e}`)}function Fje(e){return vc("EROFS",`read-only filesystem, ${e}`)}function Nje(e){return vc("ENOTEMPTY",`directory not empty, ${e}`)}function Oje(e){return vc("EOPNOTSUPP",`operation not supported, ${e}`)}function oU(){return vc("ERR_DIR_CLOSED","Directory handle was closed")}var ex=Xe(()=>{});var ll={};Vt(ll,{BigIntStatsEntry:()=>uE,DEFAULT_MODE:()=>cU,DirEntry:()=>aU,StatEntry:()=>cE,areStatsEqual:()=>uU,clearStats:()=>tx,convertToBigIntStats:()=>Mje,makeDefaultStats:()=>yZ,makeEmptyStats:()=>Lje});function yZ(){return new cE}function Lje(){return tx(yZ())}function tx(e){for(let t in e)if(Object.hasOwn(e,t)){let r=e[t];typeof r=="number"?e[t]=0:typeof r=="bigint"?e[t]=BigInt(0):lU.types.isDate(r)&&(e[t]=new Date(0))}return e}function Mje(e){let t=new uE;for(let r in e)if(Object.hasOwn(e,r)){let s=e[r];typeof s=="number"?t[r]=BigInt(Math.floor(s)):lU.types.isDate(s)&&(t[r]=new Date(s))}return t.atimeNs=t.atimeMs*BigInt(1e6)+BigInt(Math.floor(e.atimeMs%1*1e3))*BigInt(1e3),t.mtimeNs=t.mtimeMs*BigInt(1e6)+BigInt(Math.floor(e.mtimeMs%1*1e3))*BigInt(1e3),t.ctimeNs=t.ctimeMs*BigInt(1e6)+BigInt(Math.floor(e.ctimeMs%1*1e3))*BigInt(1e3),t.birthtimeNs=t.birthtimeMs*BigInt(1e6)+BigInt(Math.floor(e.birthtimeMs%1*1e3))*BigInt(1e3),t}function uU(e,t){if(e.atimeMs!==t.atimeMs||e.birthtimeMs!==t.birthtimeMs||e.blksize!==t.blksize||e.blocks!==t.blocks||e.ctimeMs!==t.ctimeMs||e.dev!==t.dev||e.gid!==t.gid||e.ino!==t.ino||e.isBlockDevice()!==t.isBlockDevice()||e.isCharacterDevice()!==t.isCharacterDevice()||e.isDirectory()!==t.isDirectory()||e.isFIFO()!==t.isFIFO()||e.isFile()!==t.isFile()||e.isSocket()!==t.isSocket()||e.isSymbolicLink()!==t.isSymbolicLink()||e.mode!==t.mode||e.mtimeMs!==t.mtimeMs||e.nlink!==t.nlink||e.rdev!==t.rdev||e.size!==t.size||e.uid!==t.uid)return!1;let r=e,s=t;return!(r.atimeNs!==s.atimeNs||r.mtimeNs!==s.mtimeNs||r.ctimeNs!==s.ctimeNs||r.birthtimeNs!==s.birthtimeNs)}var lU,cU,aU,cE,uE,fU=Xe(()=>{lU=et(Ie("util")),cU=33188,aU=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}},cE=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=cU;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}},uE=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.birthtLine truncated
`).length,s=t.length-r;return r>s?`\r
`:`
`}function Ig(e,t){return t.replace(/\r?\n/g,Xje(e))}var DZ,PZ,Ip,jf,Cg=Xe(()=>{DZ=Ie("crypto"),PZ=Ie("os");hU();cl();Ip=class{constructor(t){this.pathUtils=t}async*genTraversePromise(t,{stableSort:r=!1}={}){let s=[t];for(;s.length>0;){let a=s.shift();if((await this.lstatPromise(a)).isDirectory()){let c=await this.readdirPromise(a);if(r)for(let f of c.sort())s.push(this.pathUtils.join(a,f));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(t,{algorithm:r="sha512"}={}){let s=await this.openPromise(t,"r");try{let n=Buffer.allocUnsafeSlow(65536),c=(0,DZ.createHash)(r),f=0;for(;(f=await this.readPromise(s,n,0,65536))!==0;)c.update(f===65536?n:n.slice(0,f));return c.digest("hex")}finally{await this.closePromise(s)}}async removePromise(t,{recursive:r=!0,maxRetries:s=5}={}){let a;try{a=await this.lstatPromise(t)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(t);await Promise.all(n.map(c=>this.removePromise(this.pathUtils.resolve(t,c))))}for(let n=0;n<=s;n++)try{await this.rmdirPromise(t);break}catch(c){if(c.code!=="EBUSY"&&c.code!=="ENOTEMPTY")throw c;n<s&&await new Promise(f=>setTimeout(f,n*100))}}else await this.unlinkPromise(t)}removeSync(t,{recursive:r=!0}={}){let s;try{s=this.lstatSync(t)}catch(a){if(a.code==="ENOENT")return;throw a}if(s.isDirectory()){if(r)for(let a of this.readdirSync(t))this.removeSync(this.pathUtils.resolve(t,a));this.rmdirSync(t)}else this.unlinkSync(t)}async mkdirpPromise(t,{chmod:r,utimes:s}={}){if(t=this.resolve(t),t===this.pathUtils.dirname(t))return;let a=t.split(this.pathUtils.sep),n;for(let c=2;c<=a.length;++c){let f=a.slice(0,c).join(this.pathUtils.sep);if(!this.existsSync(f)){try{await this.mkdirPromise(f)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=f,r!=null&&await this.chmodPromise(f,r),s!=null)await this.utimesPromise(f,s[0],s[1]);else{let p=await this.statPromise(this.pathUtils.dirname(f));await this.utimesPromise(f,p.atime,p.mtime)}}}return n}mkdirpSync(t,{chmod:r,utimes:s}={}){if(t=this.resolve(t),t===this.pathUtils.dirname(t))return;let a=t.split(this.pathUtils.sep),n;for(let c=2;c<=a.length;++c){let f=a.slice(0,c).join(this.pathUtils.sep);if(!this.existsSync(f)){try{this.mkdirSync(f)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=f,r!=null&&this.chmodSync(f,r),s!=null)this.utimesSync(f,s[0],s[1]);else{let p=this.statSync(this.pathUtils.dirname(f));this.utimesSync(f,p.atime,p.mtime)}}}return n}async copyPromise(t,r,{baseFs:s=this,overwrite:a=!0,stableSort:n=!1,stableTime:c=!1,linkStrategy:f=null}={}){return await CZ(this,t,s,r,{overwrite:a,stableSort:n,stableTime:c,linkStrategy:f})}copySync(t,r,{baseFs:s=this,overwrite:a=!0}={}){let n=s.lstatSync(r),c=this.existsSync(t);if(n.isDirectory()){this.mkdirpSync(t);let p=s.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(t,h),s.pathUtils.join(r,h),{baseFs:s,overwrite:a})}else if(n.isFile()){if(!c||a){c&&this.removeSync(t);let p=s.readFileSync(r);this.writeFileSync(t,p)}}else if(n.isSymbolicLink()){if(!c||a){c&&this.removeSync(t);let p=s.readlinkSync(r);this.symlinkSync(rx(this.pathUtils,p),t)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let f=n.mode&511;this.chmodSync(t,f)}async changeFilePromise(t,r,s={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(t,r,s):this.changeFileTextPromise(t,r,s)}async changeFileBufferPromise(t,r,{mode:s}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(t)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(t,r,{mode:s})}async changeFileTextPromise(t,r,{automaticNewlines:s,mode:a}={}){let n="";try{n=await this.readFilePromise(t,"utf8")}catch{}let c=s?Ig(n,r):r;n!==c&&await this.writeFilePromise(t,c,{mode:a})}changeFileSync(t,r,s={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(t,r,s):this.changeFileTextSync(t,r,s)}changeFileBufferSync(t,r,{mode:s}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(t)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(t,r,{mode:s})}changeFileTextSync(t,r,{automaticNewlines:s=!1,mode:a}={}){let n="";try{n=this.readFileSync(t,"utf8")}catch{}let c=s?Ig(n,r):r;n!==c&&this.writeFileSync(t,c,{mode:a})}async movePromise(t,r){try{await this.renamePromise(t,r)}catch(s){if(s.code==="EXDEV")await this.copyPromise(r,t),await this.removePromise(t);else throw s}}moveSync(t,r){try{this.renameSync(t,r)}catch(s){if(s.code==="EXDEV")this.copySync(r,t),this.removeSync(t);else throw s}}async lockPromise(t,r){let s=`${t}.flock`,a=1e3/60,n=Date.now(),c=null,f=async()=>{let p;try{[p]=await this.readJsonPromise(s)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;c===null;)try{c=await this.openPromise(s,"wx")}catch(p){if(p.code==="EEXIST"){if(!await f())try{await this.unlinkPromise(s);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 ${s})`)}else throw Line truncated
`)}writeJsonSync(t,r,{compact:s=!1}={}){let a=s?0:2;return this.writeFileSync(t,`${JSON.stringify(r,null,a)}
`)}async preserveTimePromise(t,r){let s=await this.lstatPromise(t),a=await r();typeof a<"u"&&(t=a),await this.lutimesPromise(t,s.atime,s.mtime)}async preserveTimeSync(t,r){let s=this.lstatSync(t),a=r();typeof a<"u"&&(t=a),this.lutimesSync(t,s.atime,s.mtime)}},jf=class extends Ip{constructor(){super(K)}}});var Gs,Cp=Xe(()=>{Cg();Gs=class extends Ip{getExtractHint(t){return this.baseFs.getExtractHint(t)}resolve(t){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(t)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(t,r,s){return this.baseFs.openPromise(this.mapToBase(t),r,s)}openSync(t,r,s){return this.baseFs.openSync(this.mapToBase(t),r,s)}async opendirPromise(t,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(t),r),{path:t})}opendirSync(t,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(t),r),{path:t})}async readPromise(t,r,s,a,n){return await this.baseFs.readPromise(t,r,s,a,n)}readSync(t,r,s,a,n){return this.baseFs.readSync(t,r,s,a,n)}async writePromise(t,r,s,a,n){return typeof r=="string"?await this.baseFs.writePromise(t,r,s):await this.baseFs.writePromise(t,r,s,a,n)}writeSync(t,r,s,a,n){return typeof r=="string"?this.baseFs.writeSync(t,r,s):this.baseFs.writeSync(t,r,s,a,n)}async closePromise(t){return this.baseFs.closePromise(t)}closeSync(t){this.baseFs.closeSync(t)}createReadStream(t,r){return this.baseFs.createReadStream(t!==null?this.mapToBase(t):t,r)}createWriteStream(t,r){return this.baseFs.createWriteStream(t!==null?this.mapToBase(t):t,r)}async realpathPromise(t){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(t)))}realpathSync(t){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(t)))}async existsPromise(t){return this.baseFs.existsPromise(this.mapToBase(t))}existsSync(t){return this.baseFs.existsSync(this.mapToBase(t))}accessSync(t,r){return this.baseFs.accessSync(this.mapToBase(t),r)}async accessPromise(t,r){return this.baseFs.accessPromise(this.mapToBase(t),r)}async statPromise(t,r){return this.baseFs.statPromise(this.mapToBase(t),r)}statSync(t,r){return this.baseFs.statSync(this.mapToBase(t),r)}async fstatPromise(t,r){return this.baseFs.fstatPromise(t,r)}fstatSync(t,r){return this.baseFs.fstatSync(t,r)}lstatPromise(t,r){return this.baseFs.lstatPromise(this.mapToBase(t),r)}lstatSync(t,r){return this.baseFs.lstatSync(this.mapToBase(t),r)}async fchmodPromise(t,r){return this.baseFs.fchmodPromise(t,r)}fchmodSync(t,r){return this.baseFs.fchmodSync(t,r)}async chmodPromise(t,r){return this.baseFs.chmodPromise(this.mapToBase(t),r)}chmodSync(t,r){return this.baseFs.chmodSync(this.mapToBase(t),r)}async fchownPromise(t,r,s){return this.baseFs.fchownPromise(t,r,s)}fchownSync(t,r,s){return this.baseFs.fchownSync(t,r,s)}async chownPromise(t,r,s){return this.baseFs.chownPromise(this.mapToBase(t),r,s)}chownSync(t,r,s){return this.baseFs.chownSync(this.mapToBase(t),r,s)}async renamePromise(t,r){return this.baseFs.renamePromise(this.mapToBase(t),this.mapToBase(r))}renameSync(t,r){return this.baseFs.renameSync(this.mapToBase(t),this.mapToBase(r))}async copyFilePromise(t,r,s=0){return this.baseFs.copyFilePromise(this.mapToBase(t),this.mapToBase(r),s)}copyFileSync(t,r,s=0){return this.baseFs.copyFileSync(this.mapToBase(t),this.mapToBase(r),s)}async appendFilePromise(t,r,s){return this.baseFs.appendFilePromise(this.fsMapToBase(t),r,s)}appendFileSync(t,r,s){return this.baseFs.appendFileSync(this.fsMapToBase(t),r,s)}async writeFilePromise(t,r,s){return this.baseFs.writeFilePromise(this.fsMapToBase(t),r,s)}writeFileSync(t,r,s){return this.baseFs.writeFileSync(this.fsMapToBase(t),r,s)}async unlinkPromise(t){return this.baseFs.unlinkPromise(this.mapToBase(t))}unlinkSync(t){return this.baseFs.unlinkSync(this.mapToBase(t))}async utimesPromise(t,r,s){return this.baseFs.utimesPromise(this.mapToBase(t),r,s)}utimesSync(t,r,s){return this.baseFs.utimesSync(this.mapToBase(t),r,s)}async lutimesPromise(t,r,s){return this.baseFs.lutimesPromise(this.mapToBase(t),r,s)}lutimesSync(t,r,s){return this.baseFs.lutimesSync(this.mapToBase(t),r,s)}async mkdirPromise(t,r){return this.baseFs.mkdirPromise(this.mapToBase(t),r)}mkdirSync(t,r){return this.baseFs.mkdirSync(this.mapToBase(t),r)}async rmdirPromise(t,r){return this.baseFs.rmdirPromise(this.mapToBase(t),r)}rmdirSync(t,r){return this.baseFs.rmdirSync(this.mapToBase(t),r)}async rmPromise(t,r){return this.baseFs.rmPromise(this.mapToBase(t),r)}rmSync(t,r){return this.baseFs.rmSync(this.mapToBase(t),r)}async linkPromise(t,r){return this.baseFs.linkPromise(this.mapToBase(t),this.mapToBase(r))}linkSync(t,r){return this.baseFs.linkSync(this.mapToBase(t),this.mapToBase(r))}async symlinkPromise(t,r,s){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(t))return this.baseFs.symlinkPromise(this.mapToBase(t),a,s);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),t)),c=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkP Line truncated
`,NA=ur(`\\
`,!1),OA=function(){return""},Aa="\\",pa=ur("\\",!1),LA=/^[\\$"`]/,gr=zi(["\\","$",'"',"`"],!1,!1),ko=function(N){return N},qa="\\a",Ue=ur("\\a",!1),wr=function(){return"a"},gf="\\b",MA=ur("\\b",!1),UA=function(){return"\b"},cu=/^[Ee]/,uu=zi(["E","e"],!1,!1),cc=function(){return"\x1B"},we="\\f",Ot=ur("\\f",!1),uc=function(){return"\f"},Oi="\\n",fo=ur("\\n",!1),Tt=function(){return`
`},Rn="\\r",ha=ur("\\r",!1),Gi=function(){return"\r"},Li="\\t",Ya=ur("\\t",!1),yn=function(){return" "},Zn="\\v",fu=ur("\\v",!1),Eh=function(){return"\v"},Wa=/^[\\'"?]/,Va=zi(["\\","'",'"',"?"],!1,!1),Ka=function(N){return String.fromCharCode(parseInt(N,16))},$e="\\x",Ja=ur("\\x",!1),mf="\\u",fc=ur("\\u",!1),Sn="\\U",da=ur("\\U",!1),_A=function(N){return String.fromCodePoint(parseInt(N,16))},HA=/^[0-7]/,ga=zi([["0","7"]],!1,!1),Ql=/^[0-9a-fA-f]/,Ut=zi([["0","9"],["a","f"],["A","f"]],!1,!1),Tn=Cf(),ma="{}",za=ur("{}",!1),ss=function(){return"{}"},Ac="-",Au=ur("-",!1),pc="+",Xa=ur("+",!1),Mi=".",vs=ur(".",!1),Rl=function(N,J,re){return{type:"number",value:(N==="-"?-1:1)*parseFloat(J.join("")+"."+re.join(""))}},yf=function(N,J){return{type:"number",value:(N==="-"?-1:1)*parseInt(J.join(""))}},hc=function(N){return{type:"variable",...N}},Bi=function(N){return{type:"variable",name:N}},Fn=function(N){return N},dc="*",ze=ur("*",!1),at="/",St=ur("/",!1),lr=function(N,J,re){return{type:J==="*"?"multiplication":"division",right:re}},te=function(N,J){return J.reduce((re,de)=>({left:re,...de}),N)},ye=function(N,J,re){return{type:J==="+"?"addition":"subtraction",right:re}},Oe="$((",mt=ur("$((",!1),Et="))",Dt=ur("))",!1),tr=function(N){return N},pn="$(",ui=ur("$(",!1),qi=function(N){return N},Nn="${",Za=ur("${",!1),By=":-",J1=ur(":-",!1),Qo=function(N,J){return{name:N,defaultValue:J}},vy=":-}",Ih=ur(":-}",!1),z1=function(N){return{name:N,defaultValue:[]}},Ro=":+",Ch=ur(":+",!1),wh=function(N,J){return{name:N,alternativeValue:J}},pu=":+}",Bh=ur(":+}",!1),Nd=function(N){return{name:N,alternativeValue:[]}},Od=function(N){return{name:N}},Ld="$",Sy=ur("$",!1),Ef=function(N){return t.isGlobPattern(N)},To=function(N){return N},Tl=/^[a-zA-Z0-9_]/,vh=zi([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Md=function(){return xy()},Fl=/^[$@*?#a-zA-Z0-9_\-]/,Nl=zi(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),by=/^[()}<>$|&; \t"']/,jA=zi(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),Dy=/^[<>&; \t"']/,Py=zi(["<",">","&",";"," "," ",'"',"'"],!1,!1),GA=/^[ \t]/,qA=zi([" "," "],!1,!1),Y=0,xt=0,YA=[{line:1,column:1}],Fo=0,If=[],yt=0,hu;if("startRule"in t){if(!(t.startRule in s))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');a=s[t.startRule]}function xy(){return e.substring(xt,Y)}function Ud(){return wf(xt,Y)}function X1(N,J){throw J=J!==void 0?J:wf(xt,Y),WA([_d(N)],e.substring(xt,Y),J)}function Sh(N,J){throw J=J!==void 0?J:wf(xt,Y),mi(N,J)}function ur(N,J){return{type:"literal",text:N,ignoreCase:J}}function zi(N,J,re){return{type:"class",parts:N,inverted:J,ignoreCase:re}}function Cf(){return{type:"any"}}function $a(){return{type:"end"}}function _d(N){return{type:"other",description:N}}function du(N){var J=YA[N],re;if(J)return J;for(re=N-1;!YA[re];)re--;for(J=YA[re],J={line:J.line,column:J.column};re<N;)e.charCodeAt(re)===10?(J.line++,J.column=1):J.column++,re++;return YA[N]=J,J}function wf(N,J){var re=du(N),de=du(J);return{start:{offset:N,line:re.line,column:re.column},end:{offset:J,line:de.line,column:de.column}}}function wt(N){Y<Fo||(Y>Fo&&(Fo=Y,If=[]),If.push(N))}function mi(N,J){return new vg(N,null,null,J)}function WA(N,J,re){return new vg(vg.buildMessage(N,J),N,J,re)}function el(){var N,J,re;for(N=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();return J!==r?(re=ya(),re===r&&(re=null),re!==r?(xt=N,J=n(re),N=J):(Y=N,N=r)):(Y=N,N=r),N}function ya(){var N,J,re,de,Ke;if(N=Y,J=bh(),J!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();re!==r?(de=Hd(),de!==r?(Ke=tl(),Ke===r&&(Ke=null),Ke!==r?(xt=N,J=c(J,de,Ke),N=J):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;if(N===r)if(N=Y,J=bh(),J!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();re!==r?(de=Hd(),de===r&&(de=null),de!==r?(xt=N,J=f(J,de),N=J):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;return N}function tl(){var N,J,re,de,Ke;for(N=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();if(J!==r)if(re=ya(),re!==r){for(de=[],Ke=kt();Ke!==r;)de.push(Ke),Ke=kt();de!==r?(xt=N,J=p(re),N=J):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r;return N}function Hd(){var N;return e.charCodeAt(Y)===59?(N=h,Y++):(N=r,yt===0&&wt(E)),N===r&&(e.charCodeAt(Y)===38?(N=C,Y++):(N=r,yt===0&&wt(S))),N}function bh(){var N,J,re;return N=Y,J=VA(),J!==r?(re=jd(),re===r&&(re=null),re!==r?(xt=N,J=x(J,re),N=J):(Y=N,N=r)):(Y=N,N=r),N}function jd(){var N,J,re,de,Ke,pt,mr;for(N=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();if(J!==r)if(re=ky(),re!==r){for(de=[],Ke=kt();Ke!==r;)de.push(Ke),Ke=kt();if(de!==r)if(Ke=bh(),Ke!==r){for(pt=[],mr=kt();mr!==r;)pt.push(mr),mr=kt();pt!==r?(xt=N,J=I(re,Ke),N=J):(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 ky(){var N;return e.substr(Y,2)===T?(N=T,Y+=2):(N=r,yt===0&&wt(O)),N===r&&(e.substr(Y,2)===U?(N=U,Y+=2):(N=r,yt===0&&wt(V))),N}function VA(){var N,J,re;return N=Y,J=Bf(),J!==r?(re=Gd(),re===r&&(re=null),re!==r?(xt=N,J=$(J,re),N=J):(Y=N,N=r)):(Y=N,N=r),N}function Gd(){var N,J,re,de,Ke,pt,mr;for(N=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();if(J!==r)iLine truncated
`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),k6e=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(Y$,([e,t])=>[e,`"$'${t}'"`])]),W$=e=>Y$.get(e)??`\\x${e.charCodeAt(0).toString(16).padStart(2,"0")}`,Q6e=e=>k6e.get(e)??`"$'${W$(e)}'"`});var J$=G((SPt,K$)=>{"use strict";function R6e(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function bg(e,t,r,s){this.message=e,this.expected=t,this.found=r,this.location=s,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,bg)}R6e(bg,Error);bg.buildMessage=function(e,t){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",C;for(C=0;C<h.parts.length;C++)E+=h.parts[C]instanceof Array?n(h.parts[C][0])+"-"+n(h.parts[C][1]):n(h.parts[C]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function s(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"+s(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+s(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"+s(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+s(E)})}function c(h){return r[h.type](h)}function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=c(h[C]);if(E.sort(),E.length>0){for(C=1,S=1;C<E.length;C++)E[C-1]!==E[C]&&(E[S]=E[C],S++);E.length=S}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 "+f(e)+" but "+p(t)+" found."};function T6e(e,t){t=t!==void 0?t:{};var r={},s={resolution:ke},a=ke,n="/",c=Be("/",!1),f=function(Me,P){return{from:Me,descriptor:P}},p=function(Me){return{descriptor:Me}},h="@",E=Be("@",!1),C=function(Me,P){return{fullName:Me,description:P}},S=function(Me){return{fullName:Me}},x=function(){return Ce()},I=/^[^\/@]/,T=me(["/","@"],!0,!1),O=/^[^\/]/,U=me(["/"],!0,!1),V=0,$=0,ie=[{line:1,column:1}],fe=0,ae=[],ge=0,he;if("startRule"in t){if(!(t.startRule in s))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');a=s[t.startRule]}function Ce(){return e.substring($,V)}function Ee(){return ot($,V)}function d(Me,P){throw P=P!==void 0?P:ot($,V),Ne([be(Me)],e.substring($,V),P)}function Se(Me,P){throw P=P!==void 0?P:ot($,V),tt(Me,P)}function Be(Me,P){return{type:"literal",text:Me,ignoreCase:P}}function me(Me,P,w){return{type:"class",parts:Me,inverted:P,ignoreCase:w}}function ue(){return{type:"any"}}function Z(){return{type:"end"}}function be(Me){return{type:"other",description:Me}}function Qe(Me){var P=ie[Me],w;if(P)return P;for(w=Me-1;!ie[w];)w--;for(P=ie[w],P={line:P.line,column:P.column};w<Me;)e.charCodeAt(w)===10?(P.line++,P.column=1):P.column++,w++;return ie[Me]=P,P}function ot(Me,P){var w=Qe(Me),D=Qe(P);return{start:{offset:Me,line:w.line,column:w.column},end:{offset:P,line:D.line,column:D.column}}}function _(Me){V<fe||(V>fe&&(fe=V,ae=[]),ae.push(Me))}function tt(Me,P){return new bg(Me,null,null,P)}function Ne(Me,P,w){return new bg(bg.buildMessage(Me,P),Me,P,w)}function ke(){var Me,P,w,D;return Me=V,P=De(),P!==r?(e.charCodeAt(V)===47?(w=n,V++):(w=r,ge===0&&_(c)),w!==r?(D=De(),D!==r?($=Me,P=f(P,D),Me=P):(V=Me,Me=r)):(V=Me,Me=r)):(V=Me,Me=r),Me===r&&(Me=V,P=De(),P!==r&&($=Me,P=p(P)),Me=P),Me}function De(){var Me,P,w,D;return Me=V,P=je(),P!==r?(e.charCodeAt(V)===64?(w=h,V++):(w=r,ge===0&&_(E)),w!==r?(D=ct(),D!==r?($=Me,P=C(P,D),Me=P):(V=Me,Me=r)):(V=Me,Me=r)):(V=Me,Me=r),Me===r&&(Me=V,P=je(),P!==r&&($=Me,P=S(P)),Me=P),Me}function je(){var Me,P,w,D,y;return Me=V,e.charCodeAt(V)===64?(P=h,V++):(P=r,ge===0&&_(E)),P!==r?(w=Re(),w!==r?(e.charCodeAt(V)===47?(D=n,V++):(D=r,ge===0&&_(c)),D!==r?(y=Re(),y!==r?($=Me,P=x(),Me=P):(V=Me,Me=r)):(V=Me,Me=r)):(V=Me,Me=r)):(V=Me,Me=r),Me===r&&(Me=V,P=Re(),P!==r&&($=Me,P=x()),Me=P),Me}function Re(){var Me,P,w;if(Me=V,P=[],I.test(e.charAt(V))?(w=e.charAt(V),V++):(w=r,ge===0&&_(T)),w!==r)for(;w!==r;)P.push(w),I.test(e.charAt(V))?(w=e.charAt(V),V++):(w=r,ge===0&&_(T));else P=r;return P!==r&&($=Me,P=x()),Me=P,Me}function ct(){var Me,P,w;if(Me=V,P=[],O.test(e.charAt(V))?(w=e.charAt(V),V++):(w=r,ge===0&&_(U)),w!==r)for(;w!==r;)P.push(w),O.test(e.charAt(V))?(w=e.charAt(V),V++):(w=r,ge===0&&_(U));else P=r;return P!==r&&($=Me,P=x()),Me=P,Me}if(he=a(),he!==r&&V===e.length)return he;throw he!==r&&V<e.length&&_(Z()),Ne(ae,fe<e.length?e.charAt(fe):null,fe<e.length?ot(fe,fe+1):ot(fe,fe))}K$.exports={SyntaxError:bg,parse:T6e}});function mx(e){let t=e.match(/^\*{1,2}\/(.*)/);if(t)throwLine truncated
\x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){s=" ... ",a+=5;break}for(n="",c=this.position;c<this.buffer.length&&`\0\r
\x85\u2028\u2029`.indexOf(this.buffer.charAt(c))===-1;)if(c+=1,c-this.position>r/2-1){n=" ... ",c-=5;break}return f=this.buffer.slice(a,c),eee.repeat(" ",t)+s+f+n+`
`+eee.repeat(" ",t+this.position-a+s.length)+"^"};FU.prototype.toString=function(t){var r,s="";return this.name&&(s+='in "'+this.name+'" '),s+="at line "+(this.line+1)+", column "+(this.column+1),t||(r=this.getSnippet(),r&&(s+=`:
`+r)),s};tee.exports=FU});var xs=G((kPt,iee)=>{"use strict";var nee=EE(),U6e=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],_6e=["scalar","sequence","mapping"];function H6e(e){var t={};return e!==null&&Object.keys(e).forEach(function(r){e[r].forEach(function(s){t[String(s)]=r})}),t}function j6e(e,t){if(t=t||{},Object.keys(t).forEach(function(r){if(U6e.indexOf(r)===-1)throw new nee('Unknown option "'+r+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(r){return r},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=H6e(t.styleAliases||null),_6e.indexOf(this.kind)===-1)throw new nee('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}iee.exports=j6e});var xg=G((QPt,oee)=>{"use strict";var see=Pg(),Ex=EE(),G6e=xs();function NU(e,t,r){var s=[];return e.include.forEach(function(a){r=NU(a,t,r)}),e[t].forEach(function(a){r.forEach(function(n,c){n.tag===a.tag&&n.kind===a.kind&&s.push(c)}),r.push(a)}),r.filter(function(a,n){return s.indexOf(n)===-1})}function q6e(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},t,r;function s(a){e[a.kind][a.tag]=e.fallback[a.tag]=a}for(t=0,r=arguments.length;t<r;t+=1)arguments[t].forEach(s);return e}function IE(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(t){if(t.loadKind&&t.loadKind!=="scalar")throw new Ex("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=NU(this,"implicit",[]),this.compiledExplicit=NU(this,"explicit",[]),this.compiledTypeMap=q6e(this.compiledImplicit,this.compiledExplicit)}IE.DEFAULT=null;IE.create=function(){var t,r;switch(arguments.length){case 1:t=IE.DEFAULT,r=arguments[0];break;case 2:t=arguments[0],r=arguments[1];break;default:throw new Ex("Wrong number of arguments for Schema.create function")}if(t=see.toArray(t),r=see.toArray(r),!t.every(function(s){return s instanceof IE}))throw new Ex("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!r.every(function(s){return s instanceof G6e}))throw new Ex("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new IE({include:t,explicit:r})};oee.exports=IE});var lee=G((RPt,aee)=>{"use strict";var Y6e=xs();aee.exports=new Y6e("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var uee=G((TPt,cee)=>{"use strict";var W6e=xs();cee.exports=new W6e("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var Aee=G((FPt,fee)=>{"use strict";var V6e=xs();fee.exports=new V6e("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var Ix=G((NPt,pee)=>{"use strict";var K6e=xg();pee.exports=new K6e({explicit:[lee(),uee(),Aee()]})});var dee=G((OPt,hee)=>{"use strict";var J6e=xs();function z6e(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function X6e(){return null}function Z6e(e){return e===null}hee.exports=new J6e("tag:yaml.org,2002:null",{kind:"scalar",resolve:z6e,construct:X6e,predicate:Z6e,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var mee=G((LPt,gee)=>{"use strict";var $6e=xs();function eGe(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function tGe(e){return e==="true"||e==="True"||e==="TRUE"}function rGe(e){return Object.prototype.toString.call(e)==="[object Boolean]"}gee.exports=new $6e("tag:yaml.org,2002:bool",{kind:"scalar",resolve:eGe,construct:tGe,predicate:rGe,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})});var Eee=G((MPt,yee)=>{"use strict";var nGe=Pg(),iGe=xs();function sGe(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function oGe(e){return 48<=e&&e<=55}function aGe(e){return 48<=e&&e<=57}function lGe(e){if(e===null)return!1;var t=e.length,r=0,s=!1,a;if(!t)return!1;if(a=e[r],(a==="-"||a==="+")&&(a=e[++r]),a==="0"){if(r+1===t)return!0;if(a=e[++r],a==="b"){for(r++;r<t;r++)if(a=e[r],a!=="_"){if(a!=="0"&&a!=="1")return!1;s=!0}return s&&a!=="_"}if(a==="x"){for(r++;r<t;r++)if(a=e[r],a!=="_"){if(!sGe(e.charCodeAt(r)))return!1;s=!0}return s&&a!=="_"}for(;r<t;r++)if(a=e[r],a!=="_"){if(!oGe(e.charCodeAt(r)))return!1;s=!0}return s&&a!=="_"}if(a==="_")return!1;for(;r<t;r++)if(a=e[r],a!=="_"){if(a===":")break;if(!aGe(e.charCodeAt(r)))return!1;s=!0}return!s||a==="_"?!1:a!==":"?!0:/^( Line truncated
\r`;function DGe(e){if(e===null)return!1;var t,r,s=0,a=e.length,n=MU;for(r=0;r<a;r++)if(t=n.indexOf(e.charAt(r)),!(t>64)){if(t<0)return!1;s+=6}return s%8===0}function PGe(e){var t,r,s=e.replace(/[\r\n=]/g,""),a=s.length,n=MU,c=0,f=[];for(t=0;t<a;t++)t%4===0&&t&&(f.push(c>>16&255),f.push(c>>8&255),f.push(c&255)),c=c<<6|n.indexOf(s.charAt(t));return r=a%4*6,r===0?(f.push(c>>16&255),f.push(c>>8&255),f.push(c&255)):r===18?(f.push(c>>10&255),f.push(c>>2&255)):r===12&&f.push(c>>4&255),kg?kg.from?kg.from(f):new kg(f):f}function xGe(e){var t="",r=0,s,a,n=e.length,c=MU;for(s=0;s<n;s++)s%3===0&&s&&(t+=c[r>>18&63],t+=c[r>>12&63],t+=c[r>>6&63],t+=c[r&63]),r=(r<<8)+e[s];return a=n%3,a===0?(t+=c[r>>18&63],t+=c[r>>12&63],t+=c[r>>6&63],t+=c[r&63]):a===2?(t+=c[r>>10&63],t+=c[r>>4&63],t+=c[r<<2&63],t+=c[64]):a===1&&(t+=c[r>>2&63],t+=c[r<<4&63],t+=c[64],t+=c[64]),t}function kGe(e){return kg&&kg.isBuffer(e)}Ree.exports=new bGe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:DGe,construct:PGe,predicate:kGe,represent:xGe})});var Nee=G((WPt,Fee)=>{"use strict";var QGe=xs(),RGe=Object.prototype.hasOwnProperty,TGe=Object.prototype.toString;function FGe(e){if(e===null)return!0;var t=[],r,s,a,n,c,f=e;for(r=0,s=f.length;r<s;r+=1){if(a=f[r],c=!1,TGe.call(a)!=="[object Object]")return!1;for(n in a)if(RGe.call(a,n))if(!c)c=!0;else return!1;if(!c)return!1;if(t.indexOf(n)===-1)t.push(n);else return!1}return!0}function NGe(e){return e!==null?e:[]}Fee.exports=new QGe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:FGe,construct:NGe})});var Lee=G((VPt,Oee)=>{"use strict";var OGe=xs(),LGe=Object.prototype.toString;function MGe(e){if(e===null)return!0;var t,r,s,a,n,c=e;for(n=new Array(c.length),t=0,r=c.length;t<r;t+=1){if(s=c[t],LGe.call(s)!=="[object Object]"||(a=Object.keys(s),a.length!==1))return!1;n[t]=[a[0],s[a[0]]]}return!0}function UGe(e){if(e===null)return[];var t,r,s,a,n,c=e;for(n=new Array(c.length),t=0,r=c.length;t<r;t+=1)s=c[t],a=Object.keys(s),n[t]=[a[0],s[a[0]]];return n}Oee.exports=new OGe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:MGe,construct:UGe})});var Uee=G((KPt,Mee)=>{"use strict";var _Ge=xs(),HGe=Object.prototype.hasOwnProperty;function jGe(e){if(e===null)return!0;var t,r=e;for(t in r)if(HGe.call(r,t)&&r[t]!==null)return!1;return!0}function GGe(e){return e!==null?e:{}}Mee.exports=new _Ge("tag:yaml.org,2002:set",{kind:"mapping",resolve:jGe,construct:GGe})});var CE=G((JPt,_ee)=>{"use strict";var qGe=xg();_ee.exports=new qGe({include:[LU()],implicit:[Pee(),kee()],explicit:[Tee(),Nee(),Lee(),Uee()]})});var jee=G((zPt,Hee)=>{"use strict";var YGe=xs();function WGe(){return!0}function VGe(){}function KGe(){return""}function JGe(e){return typeof e>"u"}Hee.exports=new YGe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:WGe,construct:VGe,predicate:JGe,represent:KGe})});var qee=G((XPt,Gee)=>{"use strict";var zGe=xs();function XGe(e){if(e===null||e.length===0)return!1;var t=e,r=/\/([gim]*)$/.exec(e),s="";return!(t[0]==="/"&&(r&&(s=r[1]),s.length>3||t[t.length-s.length-1]!=="/"))}function ZGe(e){var t=e,r=/\/([gim]*)$/.exec(e),s="";return t[0]==="/"&&(r&&(s=r[1]),t=t.slice(1,t.length-s.length-1)),new RegExp(t,s)}function $Ge(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function e5e(e){return Object.prototype.toString.call(e)==="[object RegExp]"}Gee.exports=new zGe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:XGe,construct:ZGe,predicate:e5e,represent:$Ge})});var Vee=G((ZPt,Wee)=>{"use strict";var Cx;try{Yee=Ie,Cx=Yee("esprima")}catch{typeof window<"u"&&(Cx=window.esprima)}var Yee,t5e=xs();function r5e(e){if(e===null)return!1;try{var t="("+e+")",r=Cx.parse(t,{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 n5e(e){var t="("+e+")",r=Cx.parse(t,{range:!0}),s=[],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){s.push(n.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(s,t.slice(a[0]+1,a[1]-1)):new Function(s,"return "+t.slice(a[0],a[1]))}function i5e(e){return e.toString()}function s5e(e){return Object.prototype.toString.call(e)==="[object Function]"}Wee.exports=new t5e("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:r5e,construct:n5e,predicate:s5e,represent:i5e})});var _2=G((ext,Jee)=>{"use strict";var Kee=xg();Jee.exports=Kee.DEFAULT=new Kee({include:[CE()],explicit:[jee(),qee(),Vee()]})});var hte=G((txt,H2)=>{"use strict";var Bp=Pg(),rte=EE(),o5e=ree(),nte=CE(),a5e=_2(),s0=Object.prototype.hasOwnProperty,wx=1,ite=2,ste=3,Bx=4,UU=1,l5e=2,zee=3,c5e=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84 Line truncated
`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function d5e(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}var lte=new Array(256),cte=new Array(256);for(Qg=0;Qg<256;Qg++)lte[Qg]=Zee(Qg)?1:0,cte[Qg]=Zee(Qg);var Qg;function g5e(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||a5e,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function ute(e,t){return new rte(t,new o5e(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Nr(e,t){throw ute(e,t)}function vx(e,t){e.onWarning&&e.onWarning.call(null,ute(e,t))}var $ee={YAML:function(t,r,s){var a,n,c;t.version!==null&&Nr(t,"duplication of %YAML directive"),s.length!==1&&Nr(t,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(s[0]),a===null&&Nr(t,"ill-formed argument of the YAML directive"),n=parseInt(a[1],10),c=parseInt(a[2],10),n!==1&&Nr(t,"unacceptable YAML version of the document"),t.version=s[0],t.checkLineBreaks=c<2,c!==1&&c!==2&&vx(t,"unsupported YAML version of the document")},TAG:function(t,r,s){var a,n;s.length!==2&&Nr(t,"TAG directive accepts exactly two arguments"),a=s[0],n=s[1],ote.test(a)||Nr(t,"ill-formed tag handle (first argument) of the TAG directive"),s0.call(t.tagMap,a)&&Nr(t,'there is a previously declared suffix for "'+a+'" tag handle'),ate.test(n)||Nr(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[a]=n}};function i0(e,t,r,s){var a,n,c,f;if(t<r){if(f=e.input.slice(t,r),s)for(a=0,n=f.length;a<n;a+=1)c=f.charCodeAt(a),c===9||32<=c&&c<=1114111||Nr(e,"expected valid JSON character");else c5e.test(f)&&Nr(e,"the stream contains non-printable characters");e.result+=f}}function ete(e,t,r,s){var a,n,c,f;for(Bp.isObject(r)||Nr(e,"cannot merge mappings; the provided source object is unacceptable"),a=Object.keys(r),c=0,f=a.length;c<f;c+=1)n=a[c],s0.call(t,n)||(t[n]=r[n],s[n]=!0)}function BE(e,t,r,s,a,n,c,f){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])&&Nr(e,"nested arrays are not supported inside keys"),typeof a=="object"&&Xee(a[p])==="[object Object]"&&(a[p]="[object Object]");if(typeof a=="object"&&Xee(a)==="[object Object]"&&(a="[object Object]"),a=String(a),t===null&&(t={}),s==="tag:yaml.org,2002:merge")if(Array.isArray(n))for(p=0,h=n.length;p<h;p+=1)ete(e,t,n[p],r);else ete(e,t,n,r);else!e.json&&!s0.call(r,a)&&s0.call(t,a)&&(e.line=c||e.line,e.position=f||e.position,Nr(e,"duplicated mapping key")),t[a]=n,delete r[a];return t}function _U(e){var t;t=e.input.charCodeAt(e.position),t===10?e.position++:t===13?(e.position++,e.input.charCodeAt(e.position)===10&&e.position++):Nr(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function cs(e,t,r){for(var s=0,a=e.input.charCodeAt(e.position);a!==0;){for(;Rg(a);)a=e.input.charCodeAt(++e.position);if(t&&a===35)do a=e.input.charCodeAt(++e.position);while(a!==10&&a!==13&&a!==0);if(Yf(a))for(_U(e),a=e.input.charCodeAt(e.position),s++,e.lineIndent=0;a===32;)e.lineIndent++,a=e.input.charCodeAt(++e.position);else break}return r!==-1&&s!==0&&e.lineIndent<r&&vx(e,"deficient indentation"),s}function Sx(e){var t=e.position,r;return r=e.input.charCodeAt(t),!!((r===45||r===46)&&r===e.input.charCodeAt(t+1)&&r===e.input.charCodeAt(t+2)&&(t+=3,r=e.input.charCodeAt(t),r===0||fl(r)))}function HU(e,t){t===1?e.result+=" ":t>1&&(e.result+=Bp.repeat(`
`,t-1))}function m5e(e,t,r){var s,a,n,c,f,p,h,E,C=e.kind,S=e.result,x;if(x=e.input.charCodeAt(e.position),fl(x)||wE(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=e.input.charCodeAt(e.position+1),fl(a)||r&&wE(a)))return!1;for(e.kind="scalar",e.result="",n=c=e.position,f=!1;x!==0;){if(x===58){if(a=e.input.charCodeAt(e.position+1),fl(a)||r&&wE(a))break}else if(x===35){if(s=e.input.charCodeAt(e.position-1),fl(s))break}else{if(e.position===e.lineStart&&Sx(e)||r&&wE(x))break;if(Yf(x))if(p=e.line,h=e.lineStart,E=e.lineIndent,cs(e,!1,-1),e.lineIndent>=t){f=!0,x=e.input.charCodeAt(e.position);continue}else{e.position=c,e.line=p,e.lineStart=h,e.lineIndent=E;break}}f&&(i0(e,n,c,!1),HU(e,e.line-p),n=c=e.position,f=!1),Rg(x)||(c=e.position+1),x=e.input.charCodeAt(++e.position)}return i0(e,n,c,!1),e.result?!0:(e.kind=C,e.result=S,!1)}function y5e(e,t){var r,s,a;if(r=e.input.charCodeAt(e.position),r!==39)return!1;for(e.kind="scalar",e.result="",e.position++,s=a=e.position;(r=e.input.charCodeAt(e.position))!==0;)if(r===39)if(i0(e,s,e.position,!0),r=e.input.charCodeAt(++e.position),r===39)s=e.position,e.position++,a=e.position;else return!0;else Yf(r)?(i0(e,s,a,!0),HU(e,cs(e,!1,t)),s=a=e.position):e.position===e.lineStart&&Sx(e)?Nr(e,"unexpected end of the document within a single quoted scalar"):(e.position++,a=e.position);Nr(e,"unexpected end of the stream within a single quoted scalar")}function E5e(e,t){var r,s,a,n,c,f;if(f=e.input.charCodeAt(e.position),f!==34)return!1;for(e.kind="scalar",e.result="",e.position++,r=s=e.position;(f=e.input.charCodeAt(e.position))!==0;){if(f===34)return i0(e,r,e.position,!0),e.position++,!0;if(f===92){if(i0(e,r,e.position,!0),f=e.input.charCodeAt(++e.position),Yf(f))cs(e,!1,t);else if(f<256&&lte[f])e.result+=cte[f],e.position++;else if((c=p5e(f))>0){for(a=c,n=0;a>0;a--)f=e.input.charCodeAt(++e.position),(c=A5e(f))>=0?n=(n<<4)+c:Nr(e,"expected hexadecimal character");e.result+=d5e(n),e.position++}else Nr(e,"unknown escape sequence");r=s=e.position}else Yf(f)?(i0(e,r,s,!0),HU(e,cs(e,!1,t)),r=s=e.position):e.position===e.lineStart&&Sx(e)?Nr(e,"unexpected end of the document within a double quoted scalar"):(e.position++,s=e.position)}Nr(e,"unexpected end of the stream within a double quoted scalar")}function I5e(e,t){var r=!0,s,a=e.tag,n,c=e.anchor,f,p,h,E,C,S={},x,I,T,O;if(O=e.input.charCodeAt(e.position),O===91)p=93,C=!1,n=[];else if(O===123)p=125,C=!0,n={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=n),O=e.input.charCodeAt(++e.position);O!==0;){if(cs(e,!0,t),O=e.input.charCodeAt(e.position),O===p)return e.position++,e.tag=a,e.anchor=c,e.kind=C?"mapping":"sequence",e.result=n,!0;r||Nr(e,"missed comma between flow collection entries"),I=x=T=null,h=E=!1,O===63&&(f=e.input.charCodeAt(e.position+1),fl(f)&&(h=E=!0,e.position++,cs(e,!0,t))),s=e.line,vE(e,t,wx,!1,!0),I=e.tag,x=e.result,cs(e,!0,t),O=e.input.charCodeAt(e.position),(E||e.line===s)&&O===58&&(h=!0,O=e.input.charCodeAt(++e.position),cs(e,!0,t),vE(e,t,wx,!1,!0),T=e.result),C?BE(e,n,S,I,x,T):h?n.push(BE(e,null,S,I,x,T)):n.push(x),cs(e,!0,t),O=e.input.charCodeAt(e.position),O===44?(r=!0,O=e.input.charCodeAt(++e.position)):r=!1}Nr(e,"unexpected end of the stream within a flow collection")}function C5e(e,t){var r,s,a=UU,n=!1,c=!1,f=t,p=0,h=!1,E,C;if(C=e.input.charCodeAt(e.position),C===124)s=!1;else if(C===62)s=!0;else return!1;for(e.kind="scalar",e.result="";C!==0;)if(C=e.input.charCodeAt(++e.position),C===43||C===45)UU===a?a=C===43?zee:l5e:Nr(e,"repeat of a chomping mode identifier");else if((E=h5e(C))>=0)E===0?Nr(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?Nr(e,"repeat of an indentation width identifier"):(f=t+E-1,c=!0);else break;if(Rg(C)){do C=e.input.charCodeAt(++e.position);while(Rg(C));if(C===35)do C=e.input.charCodeAt(++e.position);while(!Yf(C)&&C!==0)}for(;C!==0;){for(_U(e),e.lineIndent=0,C=e.input.charCodeAt(e.position);(!c||e.lineIndent<f)&&C===32;)e.lineIndent++,C=e.input.charCodeAt(++e.position);if(!c&&e.lineIndent>f&&(f=e.lineIndent),Yf(C)){p++;continue}if(e.lineIndent<f){a===zee?e.result+=Bp.repeat(`
`,n?1+p:p):a===UU&&n&&(e.result+=`
`);break}for(s?Rg(C)?(h=!0,e.result+=Bp.repeat(`
`,n?1+p:p)):h?(h=!1,e.result+=Bp.repeat(`
`,p+1)):p===0?n&&(e.result+=" "):e.result+=Bp.repeat(`
`,p):e.result+=Bp.repeat(`
`,n?1+p:p),n=!0,c=!0,p=0,r=e.position;!Yf(C)&&C!==0;)C=e.input.charCodeAt(++e.position);i0(e,r,e.position,!1)}return!0}function tte(e,t){var r,s=e.tag,a=e.anchor,n=[],c,f=!1,p;for(e.anchor!==null&&(e.anchorMap[e.anchor]=n),p=e.input.charCodeAt(e.position);p!==0&&!(p!==45||(c=e.input.charCodeAt(e.position+1),!fl(c)));){if(f=!0,e.position++,cs(e,!0,-1)&&e.lineIndent<=t){n.push(null),p=e.input.charCodeAt(e.position);continue}if(r=e.line,vE(e,t,ste,!1,!0),n.push(e.result),cs(e,!0,-1),p=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&p!==0)Nr(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break}return f?(e.tag=s,e.anchor=a,e.kind="sequence",e.result=n,!0):!1}function w5e(e,t,r){var s,a,n,c,f=e.tag,p=e.anchor,h={},E={},C=null,S=null,x=null,I=!1,T=!1,O;for(e.anchor!==null&&(e.anchorMap[e.anchor]=h),O=e.input.charCodeAt(e.position);O!==0;){if(s=e.input.charCodeAt(e.position+1),n=e.line,c=e.position,(O===63||O===58)&&fl(s))O===63?(I&&(BE(e,h,E,C,S,null),C=S=x=null),T=!0,I=!0,a=!0):I?(I=!1,a=!0):Nr(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,O=s;else if(vE(e,r,ite,!1,!0))if(e.line===n){for(O=e.input.charCodeAt(e.position);Rg(O);)O=e.input.charCodeAt(++e.position);if(O===58)O=e.input.charCodeAt(++e.position),fl(O)||Nr(e,"a whitespace character is expected after the key-value separator within a block mapping"),I&&(BE(e,h,E,C,S,null),C=S=x=null),T=!0,I=!1,a=!1,C=e.tag,S=e.result;else if(T)Nr(e,"can not read an implicit mapping pair; a colon is missed");else return e.tag=f,e.anchor=p,!0}else if(T)Nr(e,"can not read a block mapping entry; a multiline key may not be an implicit key");else return e.tag=f,e.anchor=p,!0;else break;if((e.line===n||e.lineIndent>t)&&(vE(e,t,Bx,!0,a)&&(I?S=e.result:x=e.result),I||(BE(e,h,E,C,S,x,n,c),C=S=x=null),cs(e,!0,-1),O=e.input.charCodeAt(e.position)),e.lineIndent>t&&O!==0)Nr(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return I&&BE(e,h,E,C,S,null),T&&(e.tag=f,e.anchor=p,e.kind="mapping",e.result=h),T}function B5e(e){var t,r=!1,s=!1,a,n,c;if(c=e.input.charCodeAt(e.position),c!==33)return!1;if(e.tag!==null&&Nr(e,"duplication of a tag property"),c=e.input.charCodeAt(++e.position),c===60?(r=!0,c=e.input.charCodeAt(++e.position)):c===33?(s=!0,a="!!",c=e.input.charCodeAt(++e.position)):a="!",t=e.position,r){do c=e.input.charCodeAt(++e.position);while(c!==0&&c!==62);e.position<e.length?(n=e.input.slice(t,e.position),c=e.input.charCodeAt(++e.position)):Nr(e,"unexpected end of the stream within a verbatim tag")}else{for(;c!==0&&!fl(c);)c===33&&(s?Nr(e,"tag suffix cannot contain exclamation marks"):(a=e.input.slice(t-1,e.position+1),ote.test(a)||Nr(e,"named tag handle cannot contain such characters"),s=!0,t=e.position+1)),c=e.input.charCodeAt(++e.position);n=e.input.slice(t,e.position),f5e.test(n)&&Nr(e,"tag suffix cannot contain flow indicator characters")}return n&&!ate.test(n)&&Nr(e,"tag name cannot contain such characters: "+n),r?e.tag=n:s0.call(e.tagMap,a)?e.tag=e.tagMap[a]+n:a==="!"?e.tag="!"+n:a==="!!"?e.tag="tag:yaml.org,2002:"+n:Nr(e,'undeclared tag handle "'+a+'"'),!0}function v5e(e){var t,r;if(r=e.input.charCodeAt(e.position),r!==38)return!1;for(e.anchor!==null&&Nr(e,"duplication of an anchor property"),r=e.input.charCodeAt(++e.position),t=e.position;r!==0&&!fl(r)&&!wE(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&Nr(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function S5e(e){var t,r,s;if(s=e.input.charCodeAt(e.position),s!==42)return!1;for(s=e.input.charCodeAt(++e.position),t=e.position;s!==0&&!fl(s)&&!wE(s);)s=e.input.charCodeAt(++e.position);return e.position===t&&Nr(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),s0.call(e.anchorMap,r)||Nr(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],cs(e,!0,-1),!0}function vE(e,t,r,s,a){var n,c,f,p=1,h=!1,E=!1,C,S,x,I,T;if(e.listener!==null&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,n=c=f=Bx===r||ste===r,s&&cs(e,!0,-1)&&(h=!0,e.lineIndent>t?p=1:e.lineIndent===t?p=0:e.lineIndent<t&&(p=-1)),p===1)for(;B5e(e)||v5e(e);)cs(e,!0,-1)?(h=!0,f=n,e.lineIndent>t?p=1:e.lineIndent===t?p=0:e.lineIndent<t&&(p=-1)):f=!1;if(f&&(f=h||a),(p===1||Bx===r)&&(wx===r||ite===r?I=t:I=t+1,T=e.position-e.lineStart,p===1?f&&(tte(e,T)||w5e(e,T,I))||I5e(e,I)?E=!0:(c&&C5e(e,I)||y5e(e,I)||E5e(e,I)?E=!0:S5e(e)?(E=!0,(e.tag!==null||e.anchor!==null)&&Nr(e,"alias node should not have any properties")):m5e(e,I,wx===r)&&(E=!0,e.tag===null&&(e.tag="?")),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):p===0&&(E=f&&tte(e,T))),e.tag!==null&&e.tag!=="!")if(e.tag==="?"){for(e.result!==null&&e.kind!=="scalar"&&Nr(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),C=0,S=e.implicitTypes.length;C<S;C+=1)if(x=e.implicitTypes[C],x.resolve(e.result)){e.result=x.construct(e.result),e. Line truncated
`),e.charCodeAt(0)===65279&&(e=e.slice(1)));var r=new g5e(e,t),s=e.indexOf("\0");for(s!==-1&&(r.position=s,Nr(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;)b5e(r);return r.documents}function Ate(e,t,r){t!==null&&typeof t=="object"&&typeof r>"u"&&(r=t,t=null);var s=fte(e,r);if(typeof t!="function")return s;for(var a=0,n=s.length;a<n;a+=1)t(s[a])}function pte(e,t){var r=fte(e,t);if(r.length!==0){if(r.length===1)return r[0];throw new rte("expected a single document in the stream, but found more")}}function D5e(e,t,r){return typeof t=="object"&&t!==null&&typeof r>"u"&&(r=t,t=null),Ate(e,t,Bp.extend({schema:nte},r))}function P5e(e,t){return pte(e,Bp.extend({schema:nte},t))}H2.exports.loadAll=Ate;H2.exports.load=pte;H2.exports.safeLoadAll=D5e;H2.exports.safeLoad=P5e});var Lte=G((rxt,YU)=>{"use strict";var G2=Pg(),q2=EE(),x5e=_2(),k5e=CE(),wte=Object.prototype.toString,Bte=Object.prototype.hasOwnProperty,Q5e=9,j2=10,R5e=13,T5e=32,F5e=33,N5e=34,vte=35,O5e=37,L5e=38,M5e=39,U5e=42,Ste=44,_5e=45,bte=58,H5e=61,j5e=62,G5e=63,q5e=64,Dte=91,Pte=93,Y5e=96,xte=123,W5e=124,kte=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 V5e=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function K5e(e,t){var r,s,a,n,c,f,p;if(t===null)return{};for(r={},s=Object.keys(t),a=0,n=s.length;a<n;a+=1)c=s[a],f=String(t[c]),c.slice(0,2)==="!!"&&(c="tag:yaml.org,2002:"+c.slice(2)),p=e.compiledTypeMap.fallback[c],p&&Bte.call(p.styleAliases,f)&&(f=p.styleAliases[f]),r[c]=f;return r}function dte(e){var t,r,s;if(t=e.toString(16).toUpperCase(),e<=255)r="x",s=2;else if(e<=65535)r="u",s=4;else if(e<=4294967295)r="U",s=8;else throw new q2("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+G2.repeat("0",s-t.length)+t}function J5e(e){this.schema=e.schema||x5e,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=G2.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=K5e(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function gte(e,t){for(var r=G2.repeat(" ",t),s=0,a=-1,n="",c,f=e.length;s<f;)a=e.indexOf(`
`,s),a===-1?(c=e.slice(s),s=f):(c=e.slice(s,a+1),s=a+1),c.length&&c!==`
`&&(n+=r),n+=c;return n}function jU(e,t){return`
`+G2.repeat(" ",e.indent*t)}function z5e(e,t){var r,s,a;for(r=0,s=e.implicitTypes.length;r<s;r+=1)if(a=e.implicitTypes[r],a.resolve(t))return!0;return!1}function qU(e){return e===T5e||e===Q5e}function SE(e){return 32<=e&&e<=126||161<=e&&e<=55295&&e!==8232&&e!==8233||57344<=e&&e<=65533&&e!==65279||65536<=e&&e<=1114111}function X5e(e){return SE(e)&&!qU(e)&&e!==65279&&e!==R5e&&e!==j2}function mte(e,t){return SE(e)&&e!==65279&&e!==Ste&&e!==Dte&&e!==Pte&&e!==xte&&e!==kte&&e!==bte&&(e!==vte||t&&X5e(t))}function Z5e(e){return SE(e)&&e!==65279&&!qU(e)&&e!==_5e&&e!==G5e&&e!==bte&&e!==Ste&&e!==Dte&&e!==Pte&&e!==xte&&e!==kte&&e!==vte&&e!==L5e&&e!==U5e&&e!==F5e&&e!==W5e&&e!==H5e&&e!==j5e&&e!==M5e&&e!==N5e&&e!==O5e&&e!==q5e&&e!==Y5e}function Qte(e){var t=/^\n* /;return t.test(e)}var Rte=1,Tte=2,Fte=3,Nte=4,bx=5;function $5e(e,t,r,s,a){var n,c,f,p=!1,h=!1,E=s!==-1,C=-1,S=Z5e(e.charCodeAt(0))&&!qU(e.charCodeAt(e.length-1));if(t)for(n=0;n<e.length;n++){if(c=e.charCodeAt(n),!SE(c))return bx;f=n>0?e.charCodeAt(n-1):null,S=S&&mte(c,f)}else{for(n=0;n<e.length;n++){if(c=e.charCodeAt(n),c===j2)p=!0,E&&(h=h||n-C-1>s&&e[C+1]!==" ",C=n);else if(!SE(c))return bx;f=n>0?e.charCodeAt(n-1):null,S=S&&mte(c,f)}h=h||E&&n-C-1>s&&e[C+1]!==" "}return!p&&!h?S&&!a(e)?Rte:Tte:r>9&&Qte(e)?bx:h?Nte:Fte}function e9e(e,t,r,s){e.dump=function(){if(t.length===0)return"''";if(!e.noCompatMode&&V5e.indexOf(t)!==-1)return"'"+t+"'";var a=e.indent*Math.max(1,r),n=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),c=s||e.flowLevel>-1&&r>=e.flowLevel;function f(p){return z5e(e,p)}switch($5e(t,c,e.indent,n,f)){case Rte:return t;case Tte:return"'"+t.replace(/'/g,"''")+"'";case Fte:return"|"+yte(t,e.indent)+Ete(gte(t,a));case Nte:return">"+yte(t,e.indent)+Ete(gte(t9e(t,n),a));case bx:return'"'+r9e(t,n)+'"';default:throw new q2("impossible error: invalid scalar style")}}()}function yte(e,t){var r=Qte(e)?String(t):"",s=e[e.length-1]===`
`,a=s&&(e[e.length-2]===`
`||e===`
`),n=a?"+":s?"":"-";return r+n+`
`}function Ete(e){return e[e.length-1]===`
`?e.slice(0,-1):e}function t9e(e,t){for(var r=/(\n+)([^\n]*)/g,s=function(){var h=e.indexOf(`
`);return h=h!==-1?h:e.length,r.lastIndex=h,Ite(e.slice(0,h),t)}(),a=e[0]===`
`||e[0]===" ",n,c;c=r.exec(e);){var f=c[1],p=c[2];n=p[0]===" ",s+=f+(!a&&!n&&p!==""?`
`:"")+Ite(p,t),a=n}return s}function Ite(e,t){if(e===""||e[0]===" ")return e;for(var r=/ [^ ]/g,s,a=0,n,c=0,f=0,p="";s=r.exec(e);)f=s.index,f-a>t&&(n=c>a?c:f,p+=`
`+e.slice(a,n),a=n+1),c=f;return p+=`
`,e.length-a>t&&c>a?p+=e.slice(a,c)+`
`+e.slice(c+1):p+=e.slice(a),p.slice(1)}function r9e(e){for(var t="",r,s,a,n=0;n<e.length;n++){if(r=e.charCodeAt(n),r>=55296&&r<=56319&&(s=e.charCodeAt(n+1),s>=56320&&s<=57343)){t+=dte((r-55296)*1024+s-56320+65536),n++;continue}a=Vo[r],t+=!a&&SE(r)?e[n]:a||dte(r)}return t}function n9e(e,t,r){var s="",a=e.tag,n,c;for(n=0,c=r.length;n<c;n+=1)Tg(e,t,r[n],!1,!1)&&(n!==0&&(s+=","+(e.condenseFlow?"":" ")),s+=e.dump);e.tag=a,e.dump="["+s+"]"}function i9e(e,t,r,s){var a="",n=e.tag,c,f;for(c=0,f=r.length;c<f;c+=1)Tg(e,t+1,r[c],!0,!0)&&((!s||c!==0)&&(a+=jU(e,t)),e.dump&&j2===e.dump.charCodeAt(0)?a+="-":a+="- ",a+=e.dump);e.tag=n,e.dump=a||"[]"}function s9e(e,t,r){var s="",a=e.tag,n=Object.keys(r),c,f,p,h,E;for(c=0,f=n.length;c<f;c+=1)E="",c!==0&&(E+=", "),e.condenseFlow&&(E+='"'),p=n[c],h=r[p],Tg(e,t,p,!1,!1)&&(e.dump.length>1024&&(E+="? "),E+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Tg(e,t,h,!1,!1)&&(E+=e.dump,s+=E));e.tag=a,e.dump="{"+s+"}"}function o9e(e,t,r,s){var a="",n=e.tag,c=Object.keys(r),f,p,h,E,C,S;if(e.sortKeys===!0)c.sort();else if(typeof e.sortKeys=="function")c.sort(e.sortKeys);else if(e.sortKeys)throw new q2("sortKeys must be a boolean or a function");for(f=0,p=c.length;f<p;f+=1)S="",(!s||f!==0)&&(S+=jU(e,t)),h=c[f],E=r[h],Tg(e,t+1,h,!0,!0,!0)&&(C=e.tag!==null&&e.tag!=="?"||e.dump&&e.dump.length>1024,C&&(e.dump&&j2===e.dump.charCodeAt(0)?S+="?":S+="? "),S+=e.dump,C&&(S+=jU(e,t)),Tg(e,t+1,E,!0,C)&&(e.dump&&j2===e.dump.charCodeAt(0)?S+=":":S+=": ",S+=e.dump,a+=S));e.tag=n,e.dump=a||"{}"}function Cte(e,t,r){var s,a,n,c,f,p;for(a=r?e.explicitTypes:e.implicitTypes,n=0,c=a.length;n<c;n+=1)if(f=a[n],(f.instanceOf||f.predicate)&&(!f.instanceOf||typeof t=="object"&&t instanceof f.instanceOf)&&(!f.predicate||f.predicate(t))){if(e.tag=r?f.tag:"?",f.represent){if(p=e.styleMap[f.tag]||f.defaultStyle,wte.call(f.represent)==="[object Function]")s=f.represent(t,p);else if(Bte.call(f.represent,p))s=f.represent[p](t,p);else throw new q2("!<"+f.tag+'> tag resolver accepts not "'+p+'" style');e.dump=s}return!0}return!1}function Tg(e,t,r,s,a,n){e.tag=null,e.dump=r,Cte(e,r,!1)||Cte(e,r,!0);var c=wte.call(e.dump);s&&(s=e.flowLevel<0||e.flowLevel>t);var f=c==="[object Object]"||c==="[object Array]",p,h;if(f&&(p=e.duplicates.indexOf(r),h=p!==-1),(e.tag!==null&&e.tag!=="?"||h||e.indent!==2&&t>0)&&(a=!1),h&&e.usedDuplicates[p])e.dump="*ref_"+p;else{if(f&&h&&!e.usedDuplicates[p]&&(e.usedDuplicates[p]=!0),c==="[object Object]")s&&Object.keys(e.dump).length!==0?(o9e(e,t,e.dump,a),h&&(e.dump="&ref_"+p+e.dump)):(s9e(e,t,e.dump),h&&(e.dump="&ref_"+p+" "+e.dump));else if(c==="[object Array]"){var E=e.noArrayIndent&&t>0?t-1:t;s&&e.dump.length!==0?(i9e(e,E,e.dump,a),h&&(e.dump="&ref_"+p+e.dump)):(n9e(e,E,e.dump),h&&(e.dump="&ref_"+p+" "+e.dump))}else if(c==="[object String]")e.tag!=="?"&&e9e(e,e.dump,t,n);else{if(e.skipInvalid)return!1;throw new q2("unacceptable kind of an object to dump "+c)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function a9e(e,t){var r=[],s=[],a,n;for(GU(e,r,s),a=0,n=s.length;a<n;a+=1)t.duplicates.push(r[s[a]]);t.usedDuplicates=new Array(n)}function GU(e,t,r){var s,a,n;if(e!==null&&typeof e=="object")if(a=t.indexOf(e),a!==-1)r.indexOf(a)===-1&&r.push(a);else if(t.push(e),Array.isArray(e))for(a=0,n=e.length;a<n;a+=1)GU(e[a],t,r);else for(s=Object.keys(e),a=0,n=s.length;a<n;a+=1)GU(e[s[a]],t,r)}function Ote(e,t){t=t||{};var r=new J5e(t);return r.noRefs||a9e(e,r),Tg(r,0,e,!0,!0)?r.dump+`
`:""}function l9e(e,t){return Ote(e,G2.extend({schema:k5e},t))}YU.exports.dump=Ote;YU.exports.safeDump=l9e});var Ute=G((nxt,Yi)=>{"use strict";var Dx=hte(),Mte=Lte();function Px(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}Yi.exports.Type=xs();Yi.exports.Schema=xg();Yi.exports.FAILSAFE_SCHEMA=Ix();Yi.exports.JSON_SCHEMA=OU();Yi.exports.CORE_SCHEMA=LU();Yi.exports.DEFAULT_SAFE_SCHEMA=CE();Yi.exports.DEFAULT_FULL_SCHEMA=_2();Yi.exports.load=Dx.load;Yi.exports.loadAll=Dx.loadAll;Yi.exports.safeLoad=Dx.safeLoad;Yi.exports.safeLoadAll=Dx.safeLoadAll;Yi.exports.dump=Mte.dump;Yi.exports.safeDump=Mte.safeDump;Yi.exports.YAMLException=EE();Yi.exports.MINIMAL_SCHEMA=Ix();Yi.exports.SAFE_SCHEMA=CE();Yi.exports.DEFAULT_SCHEMA=_2();Yi.exports.scan=Px("scan");Yi.exports.parse=Px("parse");Yi.exports.compose=Px("compose");Yi.exports.addConstructor=Px("addConstructor")});var Hte=G((ixt,_te)=>{"use strict";var c9e=Ute();_te.exports=c9e});var Gte=G((sxt,jte)=>{"use strict";function u9e(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function Fg(e,t,r,s){this.message=e,this.expected=t,this.found=r,this.location=s,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Fg)}u9e(Fg,Error);Fg.buildMessage=function(e,t){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",C;for(C=0;C<h.parts.length;C++)E+=h.parts[C]instanceof Array?n(h.parts[C][0])+"-"+n(h.parts[C][1]):n(h.parts[C]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function s(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"+s(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+s(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"+s(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+s(E)})}function c(h){return r[h.type](h)}function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=c(h[C]);if(E.sort(),E.length>0){for(C=1,S=1;C<E.length;C++)E[C-1]!==E[C]&&(E[S]=E[C],S++);E.length=S}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 "+f(e)+" but "+p(t)+" found."};function f9e(e,t){t=t!==void 0?t:{};var r={},s={Start:fc},a=fc,n=function(te){return[].concat(...te)},c="-",f=yn("-",!1),p=function(te){return te},h=function(te){return Object.assign({},...te)},E="#",C=yn("#",!1),S=fu(),x=function(){return{}},I=":",T=yn(":",!1),O=function(te,ye){return{[te]:ye}},U=",",V=yn(",",!1),$=function(te,ye){return ye},ie=function(te,ye,Oe){return Object.assign({},...[te].concat(ye).map(mt=>({[mt]:Oe})))},fe=function(te){return te},ae=function(te){return te},ge=Wa("correct indentation"),he=" ",Ce=yn(" ",!1),Ee=function(te){return te.length===lr*St},d=function(te){return te.length===(lr+1)*St},Se=function(){return lr++,!0},Be=function(){return lr--,!0},me=function(){return ha()},ue=Wa("pseudostring"),Z=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,be=Zn(["\r",`
`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Qe=/^[^\r\n\t ,\][{}:#"']/,ot=Zn(["\r",`
`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),_=function(){return ha().replace(/^ *| *$/g,"")},tt="--",Ne=yn("--",!1),ke=/^[a-zA-Z\/0-9]/,De=Zn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),je=/^[^\r\n\t :,]/,Re=Zn(["\r",`
`," "," ",":",","],!0,!1),ct="null",Me=yn("null",!1),P=function(){return null},w="true",D=yn("true",!1),y=function(){return!0},F="false",z=yn("false",!1),X=function(){return!1},ee=Wa("string"),se='"',xe=yn('"',!1),Fe=function(){return""},ut=function(te){return te},Ct=function(te){return te.join("")},Yt=/^[^"\\\0-\x1F\x7F]/,ir=Zn(['"',"\\",["\0",""],"\x7F"],!0,!1),Pt='\\"',mn=yn('\\"',!1),Pr=function(){return'"'},Cr="\\\\",Lr=yn("\\\\",!1),on=function(){return"\\"},ci="\\/",Do=yn("\\/",!1),is=function(){return"/"},ao="\\b",Po=yn("\\b",!1),ji=function(){return"\b"},lo="\\f",xo=yn("\\f",!1),FA=function(){return"\f"},df="\\n",mh=yn("\\n",!1),yh=function(){return`
`},co="\\r",qn=yn("\\r",!1),Ns=function(){return"\r"},uo="\\t",ou=yn("\\t",!1),au=function(){return" "},lu="\\u",NA=yn("\\u",!1),OA=function(te,ye,Oe,mt){return String.fromCharCode(parseInt(`0x${te}${ye}${Oe}${mt}`))},Aa=/^[0-9a-fA-F]/,pa=Zn([["0","9"],["a","f"],["A","F"]],!1,!1),LA=Wa("blank space"),gr=/^[ \t]/,ko=Zn([" "," "],!1,!1),qa=Wa("white space"),Ue=/^[ \t\n\r]/,wr=Zn([" "," ",`
`,"\r"],!1,!1),gf=`\r
`,MA=yn(`\r
`,!1),UA=`
`,cu=yn(`
`,!1),uu="\r",cc=yn("\r",!1),we=0,Ot=0,uc=[{line:1,column:1}],Oi=0,fo=[],Tt=0,Rn;if("startRule"in t){if(!(t.startRule in s))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');a=s[t.startRule]}function ha(){return e.substring(Ot,we)}function Gi(){return Ka(Ot,we)}function Li(te,ye){throw ye=ye!==void 0?ye:Ka(Ot,we),mf([Wa(te)],e.substring(Ot,we),ye)}function Ya(te,ye){throw ye=ye!==void 0?ye:Ka(Ot,we),Ja(te,ye)}function yn(te,ye){return{type:"literal",text:te,ignoreCase:ye}}function Zn(te,ye,Oe){return{type:"class",parts:te,inverted:ye,ignoreCase:Oe}}function fu(){return{type:"any"}}function Eh(){return{type:"end"}}function Wa(te){return{type:"other",description:te}}function Va(te){var ye=uc[te],Oe;if(ye)return ye;for(Oe=te-1;!uc[Oe];)Oe--;for(ye=uc[Oe],ye={line:ye.line,column:ye.column};Oe<te;)e.charCodeAt(Oe)===10?(ye.line++,ye.column=1):ye.column++,Oe++;return uc[te]=ye,ye}function Ka(te,ye){var Oe=Va(te),mt=Va(ye);return{start:{offset:te,line:Oe.line,column:Oe.column},end:{offset:ye,line:mt.line,column:mt.column}}}function $e(te){we<Oi||(we>Oi&&(Oi=we,fo=[]),fo.push(te))}function Ja(te,ye){return new Fg(te,null,null,ye)}function mf(te,ye,Oe){return new Fg(Fg.buildMessage(te,ye),te,ye,Oe)}function fc(){var te;return te=_A(),te}function Sn(){var te,ye,Oe;for(te=we,ye=[],Oe=da();Oe!==r;)ye.push(Oe),Oe=da();return ye!==r&&(Ot=te,ye=n(ye)),te=ye,te}function da(){var te,ye,Oe,mt,Et;return te=we,ye=Ql(),ye!==r?(e.charCodeAt(we)===45?(Oe=c,we++):(Oe=r,Tt===0&&$e(f)),Oe!==r?(mt=Fn(),mt!==r?(Et=ga(),Et!==r?(Ot=te,ye=p(Et),te=ye):(we=te,te=r)):(we=te,te=r)):(we=te,te=r)):(we=te,te=r),te}function _A(){var te,ye,Oe;for(te=we,ye=[],Oe=HA();Oe!==r;)ye.push(Oe),Oe=HA();return ye!==r&&(Ot=te,ye=h(ye)),te=ye,te}function HA(){var te,ye,Oe,mt,Et,Dt,tr,pn,ui;if(te=we,ye=Fn(),ye===r&&(ye=null),ye!==r){if(Oe=we,e.charCodeAt(we)===35?(mt=E,we++):(mt=r,Tt===0&&$e(C)),mt!==r){if(Et=[],Dt=we,tr=we,Tt++,pn=at(),Tt--,pn===r?tr=void 0:(we=tr,tr=r),tr!==r?(e.length>we?(pn=e.charAt(we),we++):(pn=r,Tt===0&&$e(S)),pn!==r?(tr=[tr,pn],Dt=tr):(we=Dt,Dt=r)):(we=Dt,Dt=r),Dt!==r)for(;Dt!==r;)Et.push(Dt),Dt=we,tr=we,Tt++,pn=at(),Tt--,pn===r?tr=void 0:(we=tr,tr=r),tr!==r?(e.length>we?(pn=e.charAt(we),we++):(pn=r,Tt===0&&$e(S)),pn!==r?(tr=[tr,pn],Dt=tr):(we=Dt,Dt=r)):(we=Dt,Dt=r);else Et=r;Et!==r?(mt=[mt,Et],Oe=mt):(we=Oe,Oe=r)}else we=Oe,Oe=r;if(Oe===r&&(Oe=null),Oe!==r){if(mt=[],Et=ze(),Et!==r)for(;Et!==r;)mt.push(Et),Et=ze();else mt=r;mt!==r?(Ot=te,ye=x(),te=ye):(we=te,te=r)}else we=te,te=r}else we=te,te=r;if(te===r&&(te=we,ye=Ql(),ye!==r?(Oe=za(),Oe!==r?(mt=Fn(),mt===r&&(mt=null),mt!==r?(e.charCodeAt(we)===58?(Et=I,we++):(Et=r,Tt===0&&$e(T)),Et!==r?(Dt=Fn(),Dt===r&&(Dt=null),Dt!==r?(tr=ga(),tr!==r?(Ot=te,ye=O(Oe,tr),te=ye):(we=te,te=r)):(we=te,te=r)):(we=te,te=r)):(we=te,te=r)):(we=te,te=r)):(we=te,te=r),te===r&&(te=we,ye=Ql(),ye!==r?(Oe=ss(),Oe!==r?(mt=Fn(),mt===r&&(mt=null),mt!==r?(e.charCodeAt(we)===58?(Et=I,we++):(Et=r,Tt===0&&$e(T)),Et!==r?(Dt=Fn(),Dt===r&&(Dt=null),Dt!==r?(tr=ga(),tr!==r?(Ot=te,ye=O(Oe,tr),te=ye):(we=te,te=r)):(we=te,te=r)):(we=te,te=r)):(we=te,te=r)):(we=te,te=r)):(we=te,te=r),te===r))){if(te=we,ye=Ql(),ye!==r)if(Oe=ss(),Oe!==r)if(mt=Fn(),mt!==r)if(Et=Au(),Et!==r){if(Dt=[],tr=ze(),tr!==r)for(;tr!==r;)Dt.push(tr),tr=ze();else Dt=r;Dt!==r?(Ot=te,ye=O(Oe,Et),te=ye):(we=te,te=r)}else we=te,te=r;else we=te,te=r;else we=te,te=r;else we=te,te=r;if(te===r)if(te=we,ye=Ql(),ye!==r)if(Oe=ss(),Oe!==r){if(mt=[],Et=we,Dt=Fn(),Dt===r&&(Dt=null),Dt!==r?(e.charCodeAt(we)===44?(tr=U,we++):(tr=r,Tt===0&&$e(V)),tr!==r?(pn=Fn(),pn===r&&(pn=null),pn!==r?(ui=ss(),ui!==r?(Ot=Et,Dt=$(Oe,ui),Et=Dt):(we=Et,Et=r)):(we=Et,Et=r)):(we=Et,Et=r)):(we=Et,Et=r),Et!==r)for(;Et!==r;)mt.push(Et),Et=we,Dt=Fn(),Dt===r&&(Dt=null),Dt!==r?(e.charCodeAt(we)===44?(tr=U,we++):(tr=r,Tt===0&&$e(V)),tr!==r?(pn=Fn(),pn===r&&(pn=null),pn!==r?(ui=ss(),ui!==r?(Ot=Et,Dt=$(Oe,ui),Et=Dt):(we=Et,Et=r)):(we=Et,Et=r)):(we=Et,Et=r)):(we=Et,Et=r);else mt=r;mt!==r?(Et=Fn(),Et===r&&(Et=null),Et!==r?(e.charCodeAt(we)===58?(Dt=I,we++):(Dt=r,Tt===0&&$e(T)),Dt!==r?(tr=Fn(),tr===r&&(tr=null),tr!==r?(pn=ga(),pn!==r?(Ot=te,ye=ie(Oe,mt,pn),te=ye):(we=te,te=r)):(we=te,te=r)):(we=te,te=r)):(we=te,te=r)):(we=te,te=r)}else we=te,te=r;else we=te,te=r}return te}function ga(){var te,ye,Oe,mt,Et,Dt,tr;if(te=we,ye=we,Tt++,Oe=we,mt=at(),mt!==r?(Et=Ut(),Et!==r?(e.charCodeAt(we)===45?(Dt=c,we++):(Dt=r,Tt===0&&$e(f)),Dt!==r?(tr=Fn(),tr!==r?(mt=[mt,Et,Dt,tr],Oe=mt):(we=Oe,Oe=r)):(we=Oe,Oe=r)):(we=Oe,Oe=r)):(we=Oe,Oe=r),Tt--,Oe!==r?(we=ye,ye=void 0):ye=r,ye!==r?(Oe=ze(),Oe!==r?(mt=Tn(),mt!==r?(Et=Sn(),Et!==r?(Dt=ma(),Dt!==r?(Ot=te,ye=fe(Et),te=ye):(we=te,te=r)):(we=te,te=r)):(we=te,te=r)):(we=te,te=r)):(we=te,te=r),te===r&&(te=we,ye=at(),ye!==r?(Oe=Tn(),Oe!==r?(mt=_A(),mt!==r?(Et=ma(),Et!==r?(Ot=te,ye=fe(mt),te=ye):(we=te,te=r)):(we=te,te=r)):(we=te,te=r)):(we=te,te=r),te===r))if(te=we,ye=Ac(),ye!==r){if(Oe=[],mt=ze(),mt!==r)for(;mt!==r;)Oe.push(mt),mt=ze();else Oe=r;Oe!==r?(Ot=te,ye=aLine truncated
`;if(typeof e=="number"||typeof e=="boolean")return`${e.toString()}
`;if(typeof e=="string")return`${Yte(e)}
`;if(Array.isArray(e)){if(e.length===0)return`[]
`;let s=" ".repeat(t);return`
${e.map(n=>`${s}- ${WU(n,t+1,!1)}`).join("")}`}if(typeof e=="object"&&e){let[s,a]=e instanceof xx?[e.data,!1]:[e,!0],n=" ".repeat(t),c=Object.keys(s);a&&c.sort((p,h)=>{let E=qte.indexOf(p),C=qte.indexOf(h);return E===-1&&C===-1?p<h?-1:p>h?1:0:E!==-1&&C===-1?-1:E===-1&&C!==-1?1:E-C});let f=c.filter(p=>!Vte(s[p])).map((p,h)=>{let E=s[p],C=Yte(p),S=WU(E,t+1,!0),x=h>0||r?n:"",I=C.length>1024?`? ${C}
${x}:`:`${C}:`,T=S.startsWith(`
`)?S:` ${S}`;return`${x}${I}${T}`}).join(t===0?`
`:"")||`
`;return r?`
${f}`:`${f}`}throw new Error(`Unsupported value type (${e})`)}function Al(e){try{let t=WU(e,0,!1);return t!==`
`?t:""}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function p9e(e){return e.endsWith(`
`)||(e+=`
`),(0,Wte.parse)(e)}function d9e(e){if(h9e.test(e))return p9e(e);let t=(0,kx.safeLoad)(e,{schema:kx.FAILSAFE_SCHEMA,json:!0});if(t==null)return{};if(typeof t!="object")throw new Error(`Expected an indexed object, got a ${typeof t} instead. Does your file follow Yaml's rules?`);if(Array.isArray(t))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return t}function us(e){return d9e(e)}var kx,Wte,A9e,qte,xx,h9e,Kte=Xe(()=>{kx=et(Hte()),Wte=et(Gte()),A9e=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,qte=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],xx=class{constructor(t){this.data=t}};Al.PreserveOrdering=xx;h9e=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i});var Y2={};Vt(Y2,{parseResolution:()=>mx,parseShell:()=>hx,parseSyml:()=>us,stringifyArgument:()=>RU,stringifyArgumentSegment:()=>TU,stringifyArithmeticExpression:()=>gx,stringifyCommand:()=>QU,stringifyCommandChain:()=>yE,stringifyCommandChainThen:()=>kU,stringifyCommandLine:()=>dx,stringifyCommandLineThen:()=>xU,stringifyEnvSegment:()=>px,stringifyRedirectArgument:()=>M2,stringifyResolution:()=>yx,stringifyShell:()=>mE,stringifyShellLine:()=>mE,stringifySyml:()=>Al,stringifyValueArgument:()=>Sg});var Sc=Xe(()=>{V$();X$();Kte()});var zte=G((uxt,VU)=>{"use strict";var g9e=e=>{let t=!1,r=!1,s=!1;for(let a=0;a<e.length;a++){let n=e[a];t&&/[a-zA-Z]/.test(n)&&n.toUpperCase()===n?(e=e.slice(0,a)+"-"+e.slice(a),t=!1,s=r,r=!0,a++):r&&s&&/[a-zA-Z]/.test(n)&&n.toLowerCase()===n?(e=e.slice(0,a-1)+"-"+e.slice(a-1),s=r,r=!1,t=!0):(t=n.toLowerCase()===n&&n.toUpperCase()!==n,s=r,r=n.toUpperCase()===n&&n.toLowerCase()!==n)}return e},Jte=(e,t)=>{if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");t=Object.assign({pascalCase:!1},t);let r=a=>t.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(e)?e=e.map(a=>a.trim()).filter(a=>a.length).join("-"):e=e.trim(),e.length===0?"":e.length===1?t.pascalCase?e.toUpperCase():e.toLowerCase():(e!==e.toLowerCase()&&(e=g9e(e)),e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(e))};VU.exports=Jte;VU.exports.default=Jte});var Xte=G((fxt,m9e)=>{m9e.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 Line truncated
${this.candidates.map(({usage:a})=>`$ ${a}`).join(`
`)}`}else if(this.candidates.length===1){let[{usage:s}]=this.candidates;this.message=`Command not found; did you mean:
$ ${s}
${XU(t)}`}else this.message=`Command not found; did you mean one of:
${this.candidates.map(({usage:s},a)=>`${`${a}.`.padStart(4)} ${s}`).join(`
`)}
${XU(t)}`}},Tx=class extends Error{constructor(t,r){super(),this.input=t,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives:
${this.usages.map((s,a)=>`${`${a}.`.padStart(4)} ${s}`).join(`
`)}
${XU(t)}`}},XU=e=>`While running ${e.filter(t=>t!==ii.EndOfInput&&t!==ii.EndOfPartialInput).map(t=>{let r=JSON.stringify(t);return t.match(/\s/)||t.length===0||r!==`"${t}"`?r:t}).join(" ")}`});function y9e(e){let t=e.split(`
`),r=t.filter(a=>a.match(/\S/)),s=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return t.map(a=>a.slice(s).trimRight()).join(`
`)}function Ko(e,{format:t,paragraphs:r}){return e=e.replace(/\r\n?/g,`
`),e=y9e(e),e=e.replace(/^\n+|\n+$/g,""),e=e.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2
`),e=e.replace(/\n(\n)?\n*/g,(s,a)=>a||" "),r&&(e=e.split(/\n/).map(s=>{let a=s.match(/^\s*[*-][\t ]+(.*)/);if(!a)return s.match(/(.{1,80})(?: |$)/g).join(`
`);let n=s.length-s.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,"g")).map((c,f)=>" ".repeat(n)+(f===0?"- ":" ")+c).join(`
`)}).join(`
`)),e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(s,a,n)=>t.code(a+n+a)),e=e.replace(/(\*\*)((?:.|[\n])*?)\1/g,(s,a,n)=>t.bold(a+n+a)),e?`${e}
`:""}var ZU,tre,rre,$U=Xe(()=>{ZU=Array(80).fill("\u2501");for(let e=0;e<=24;++e)ZU[ZU.length-e]=`\x1B[38;5;${232+e}m\u2501`;tre={header:e=>`\x1B[1m\u2501\u2501\u2501 ${e}${e.length<75?` ${ZU.slice(e.length+5).join("")}`:":"}\x1B[0m`,bold:e=>`\x1B[1m${e}\x1B[22m`,error:e=>`\x1B[31m\x1B[1m${e}\x1B[22m\x1B[39m`,code:e=>`\x1B[36m${e}\x1B[39m`},rre={header:e=>e,bold:e=>e,error:e=>e,code:e=>e}});function va(e){return{...e,[W2]:!0}}function Wf(e,t){return typeof e>"u"?[e,t]:typeof e=="object"&&e!==null&&!Array.isArray(e)?[void 0,e]:[e,t]}function Nx(e,{mergeName:t=!1}={}){let r=e.match(/^([^:]+): (.*)$/m);if(!r)return"validation failed";let[,s,a]=r;return t&&(a=a[0].toLowerCase()+a.slice(1)),a=s!=="."||!t?`${s.replace(/^\.(\[|$)/,"$1")}: ${a}`:`: ${a}`,a}function V2(e,t){return t.length===1?new st(`${e}${Nx(t[0],{mergeName:!0})}`):new st(`${e}:
${t.map(r=>`
- ${Nx(r)}`).join("")}`)}function Lg(e,t,r){if(typeof r>"u")return t;let s=[],a=[],n=f=>{let p=t;return t=f,n.bind(null,p)};if(!r(t,{errors:s,coercions:a,coercion:n}))throw V2(`Invalid value for ${e}`,s);for(let[,f]of a)f();return t}var W2,vp=Xe(()=>{Fx();W2=Symbol("clipanion/isOption")});var qs={};Vt(qs,{KeyRelationship:()=>Vf,TypeAssertionError:()=>a0,applyCascade:()=>J2,as:()=>L9e,assert:()=>F9e,assertWithErrors:()=>N9e,cascade:()=>l0,fn:()=>M9e,hasAtLeastOneKey:()=>o_,hasExactLength:()=>are,hasForbiddenKeys:()=>nqe,hasKeyRelationship:()=>X2,hasMaxLength:()=>_9e,hasMinLength:()=>U9e,hasMutuallyExclusiveKeys:()=>iqe,hasRequiredKeys:()=>rqe,hasUniqueItems:()=>H9e,isArray:()=>Ox,isAtLeast:()=>i_,isAtMost:()=>q9e,isBase64:()=>Z9e,isBoolean:()=>b9e,isDate:()=>P9e,isDict:()=>Q9e,isEnum:()=>Qs,isHexColor:()=>X9e,isISO8601:()=>z9e,isInExclusiveRange:()=>W9e,isInInclusiveRange:()=>Y9e,isInstanceOf:()=>T9e,isInteger:()=>s_,isJSON:()=>$9e,isLiteral:()=>ire,isLowerCase:()=>V9e,isMap:()=>k9e,isNegative:()=>j9e,isNullable:()=>tqe,isNumber:()=>r_,isObject:()=>sre,isOneOf:()=>n_,isOptional:()=>eqe,isPartial:()=>R9e,isPayload:()=>D9e,isPositive:()=>G9e,isRecord:()=>Mx,isSet:()=>x9e,isString:()=>Jf,isTuple:()=>Lx,isUUID4:()=>J9e,isUnknown:()=>t_,isUpperCase:()=>K9e,makeTrait:()=>ore,makeValidator:()=>Wr,matchesRegExp:()=>Sp,softAssert:()=>O9e});function si(e){return e===null?"null":e===void 0?"undefined":e===""?"an empty string":typeof e=="symbol"?`<${e.toString()}>`:Array.isArray(e)?"an array":JSON.stringify(e)}function DE(e,t){if(e.length===0)return"nothing";if(e.length===1)return si(e[0]);let r=e.slice(0,-1),s=e[e.length-1],a=e.length>2?`, ${t} `:` ${t} `;return`${r.map(n=>si(n)).join(", ")}${a}${si(s)}`}function o0(e,t){var r,s,a;return typeof t=="number"?`${(r=e?.p)!==null&&r!==void 0?r:"."}[${t}]`:E9e.test(t)?`${(s=e?.p)!==null&&s!==void 0?s:""}.${t}`:`${(a=e?.p)!==null&&a!==void 0?a:"."}[${JSON.stringify(t)}]`}function e_(e,t,r){return e===1?t:r}function yr({errors:e,p:t}={},r){return e?.push(`${t??"."}: ${r}`),!1}function v9e(e,t){return r=>{e[t]=r}}function Kf(e,t){return r=>{let s=e[t];return e[t]=r,Kf(e,t).bind(null,s)}}function K2(e,t,r){let s=()=>(e(r()),a),a=()=>(e(t),s);return s}function t_(){return Wr({test:(e,t)=>!0})}function ire(e){return Wr({test:(t,r)=>t!==e?yr(r,`Expected ${si(e)} (got ${si(t)})`):!0})}function Jf(){return Wr({test:(e,t)=>typeof e!="string"?yr(t,`Expected a string (got ${si(e)})`):!0})}function Qs(e){let t=Array.isArray(e)?e:Object.values(e),r=t.every(a=>typeof a=="string"||typeof a=="number"),s=new Set(t);return s.size===1?ire([...s][0]):Wr({test:(a,n)=>s.has(a)?!0:r?yr(n,`Expected one of ${DE(t,"or")} (got ${si(a)})`):yr(n,`Expected a valid enumeration value (got ${si(a)})`)})}function b9e(){return Wr({test:(e,t)=>{var r;if(typeof e!="boolean"){if(typeof t?.coercions<"u"){if(typeof t?.coercion>"u")return yr(t,"Unbound coercion result");let s=S9e.get(e);if(typeof s<"u")return t.coercions.push([(r=t.p)!==null&&r!==void 0?r:".",t.coercion.bind(null,s)]),!0}return yr(t,`Expected a boolean (got ${si(e)})`)}return!0}})}function r_(){return Wr({test:(e,t)=>{var r;if(typeof e!="number"){if(typeof t?.coercions<"u"){if(typeof t?.coercion>"u")return yr(t,"Unbound coercion result");let s;if(typeof e=="string"){let a;try{a=JSON.parse(e)}catch{}if(typeof a=="number")if(JSON.stringify(a)===e)s=a;else return yr(t,`Received a number that can't be safely represented by the runtime (${e})`)}if(typeof s<"u")return t.coercions.push([(r=t.p)!==null&&r!==void 0?r:".",t.coercion.bind(null,s)]),!0}return yr(t,`Expected a number (got ${si(e)})`)}return!0}})}function D9e(e){return Wr({test:(t,r)=>{var s;if(typeof r?.coercions>"u")return yr(r,"The isPayload predicate can only be used with coercion enabled");if(typeof r.coercion>"u")return yr(r,"Unbound coercion result");if(typeof t!="string")return yr(r,`Expected a string (got ${si(t)})`);let a;try{a=JSON.parse(t)}catch{return yr(r,`Expected a JSON string (got ${si(t)})`)}let n={value:a};return e(a,Object.assign(Object.assign({},r),{coercion:Kf(n,"value")}))?(r.coercions.push([(s=r.p)!==null&&s!==void 0?s:".",r.coercion.bind(null,n.value)]),!0):!1}})}function P9e(){return Wr({test:(e,t)=>{var r;if(!(e instanceof Date)){if(typeof t?.coercions<"u"){if(typeof t?.coercion>"u")return yr(t,"Unbound coercion result");let s;if(typeof e=="string"&&nre.test(e))s=new Date(e);else{let a;if(typeof e=="string"){let n;try{n=JSON.parse(e)}catch{}typeof n=="number"&&(a=n)}else typeof e=="number"&&(a=e);if(typeof a<"u")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))s=new Date(a*1e3);else return yr(t,`Received a timestamp that can't be safely represented by the runtime (${e})`)}if(typeof s<"u")return t.coercions.push([(r=t.p)!==null&&r!==void 0?r:".",t.coercion.bind(null,s)]),!0}return yr(t,`Expected a date (got ${si(e)})`)}return!0}})}function Ox(e,{delimiter:t}={}){return Wr({test:(r,s)=>{var a;let n=r;if(typeof r=="string"&&typeof t<"u"&&typeof s?.coercions<"u"){iLine truncated
`;for(let s of t)r+=`
- ${s}`}super(r)}};z2={missing:(e,t)=>e.has(t),undefined:(e,t,r)=>e.has(t)&&typeof r[t]<"u",nil:(e,t,r)=>e.has(t)&&r[t]!=null,falsy:(e,t,r)=>e.has(t)&&!!r[t]};(function(e){e.Forbids="Forbids",e.Requires="Requires"})(Vf||(Vf={}));sqe={[Vf.Forbids]:{expect:!1,message:"forbids using"},[Vf.Requires]:{expect:!0,message:"requires using"}}});var it,c0=Xe(()=>{vp();it=class{constructor(){this.help=!1}static Usage(t){return t}async catch(t){throw t}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:c}=await Promise.resolve().then(()=>(Jo(),qs)),f=c(a(n()),r),p=[],h=[];if(!f(this,{errors:p,coercions:h}))throw V2("Invalid option schema",p);for(let[,C]of h)C()}else if(r!=null)throw new Error("Invalid command schema");let s=await this.execute();return typeof s<"u"?s:0}};it.isOption=W2;it.Default=[]});function pl(e){zU&&console.log(e)}function cre(){let e={nodes:[]};for(let t=0;t<Cn.CustomNode;++t)e.nodes.push(Vl());return e}function oqe(e){let t=cre(),r=[],s=t.nodes.length;for(let a of e){r.push(s);for(let n=0;n<a.nodes.length;++n)fre(n)||t.nodes.push(hqe(a.nodes[n],s));s+=a.nodes.length-Cn.CustomNode+1}for(let a of r)PE(t,Cn.InitialNode,a);return t}function Nu(e,t){return e.nodes.push(t),e.nodes.length-1}function aqe(e){let t=new Set,r=s=>{if(t.has(s))return;t.add(s);let a=e.nodes[s];for(let c of Object.values(a.statics))for(let{to:f}of c)r(f);for(let[,{to:c}]of a.dynamics)r(c);for(let{to:c}of a.shortcuts)r(c);let n=new Set(a.shortcuts.map(({to:c})=>c));for(;a.shortcuts.length>0;){let{to:c}=a.shortcuts.shift(),f=e.nodes[c];for(let[p,h]of Object.entries(f.statics)){let E=Object.prototype.hasOwnProperty.call(a.statics,p)?a.statics[p]:a.statics[p]=[];for(let C of h)E.some(({to:S})=>C.to===S)||E.push(C)}for(let[p,h]of f.dynamics)a.dynamics.some(([E,{to:C}])=>p===E&&h.to===C)||a.dynamics.push([p,h]);for(let p of f.shortcuts)n.has(p.to)||(a.shortcuts.push(p),n.add(p.to))}};r(Cn.InitialNode)}function lqe(e,{prefix:t=""}={}){if(zU){pl(`${t}Nodes are:`);for(let r=0;r<e.nodes.length;++r)pl(`${t} ${r}: ${JSON.stringify(e.nodes[r])}`)}}function cqe(e,t,r=!1){pl(`Running a vm on ${JSON.stringify(t)}`);let s=[{node:Cn.InitialNode,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null,partial:!1,tokens:[]}}];lqe(e,{prefix:" "});let a=[ii.StartOfInput,...t];for(let n=0;n<a.length;++n){let c=a[n],f=c===ii.EndOfInput||c===ii.EndOfPartialInput,p=n-1;pl(` Processing ${JSON.stringify(c)}`);let h=[];for(let{node:E,state:C}of s){pl(` Current node is ${E}`);let S=e.nodes[E];if(E===Cn.ErrorNode){h.push({node:E,state:C});continue}console.assert(S.shortcuts.length===0,"Shortcuts should have been eliminated by now");let x=Object.prototype.hasOwnProperty.call(S.statics,c);if(!r||n<a.length-1||x)if(x){let I=S.statics[c];for(let{to:T,reducer:O}of I)h.push({node:T,state:typeof O<"u"?Ux(l_,O,C,c,p):C}),pl(` Static transition to ${T} found`)}else pl(" No static transition found");else{let I=!1;for(let T of Object.keys(S.statics))if(T.startsWith(c)){if(c===T)for(let{to:O,reducer:U}of S.statics[T])h.push({node:O,state:typeof U<"u"?Ux(l_,U,C,c,p):C}),pl(` Static transition to ${O} found`);else for(let{to:O}of S.statics[T])h.push({node:O,state:{...C,remainder:T.slice(c.length)}}),pl(` Static transition to ${O} found (partial match)`);I=!0}I||pl(" No partial static transition found")}if(!f)for(let[I,{to:T,reducer:O}]of S.dynamics)Ux(dqe,I,C,c,p)&&(h.push({node:T,state:typeof O<"u"?Ux(l_,O,C,c,p):C}),pl(` Dynamic transition to ${T} found (via ${I})`))}if(h.length===0&&f&&t.length===1)return[{node:Cn.InitialNode,state:lre}];if(h.length===0)throw new bE(t,s.filter(({node:E})=>E!==Cn.ErrorNode).map(({state:E})=>({usage:E.candidateUsage,reason:null})));if(h.every(({node:E})=>E===Cn.ErrorNode))throw new bE(t,h.map(({state:E})=>({usage:E.candidateUsage,reason:E.errorMessage})));s=fqe(h)}if(s.length>0){pl(" Results:");for(let n of s)pl(` - ${n.node} -> ${JSON.stringify(n.state)}`)}else pl(" No results");return s}function uqe(e,t,{endToken:r=ii.EndOfInput}={}){let s=cqe(e,[...t,r]);return Aqe(t,s.map(({state:a})=>a))}function fqe(e){let t=0;for(let{state:r}of e)r.path.length>t&&(t=r.path.length);return e.filter(({state:r})=>r.path.length===t)}function Aqe(e,t){let r=t.filter(S=>S.selectedIndex!==null),s=r.filter(S=>!S.partial);if(s.length>0&&(r=s),r.length===0)throw new Error;let a=r.filter(S=>S.selectedIndex===Og||S.requiredOptions.every(x=>x.some(I=>S.options.find(T=>T.name===I))));if(a.length===0)throw new bE(e,r.map(S=>({usage:S.candidateUsage,reason:null})));let n=0;for(let S of a)S.path.length>n&&(n=S.path.length);let c=a.filter(S=>S.path.length===n),f=S=>S.positionals.filter(({extra:x})=>!x).length+S.options.length,p=c.map(S=>({state:S,positionalCount:f(S)})),h=0;for(let{positionalCount:S}of p)S>h&&(h=S);let E=p.filter(({positionalCount:S})=>S===h).map(({state:S Line truncated
`),this.context.stdout.write(`
`);let r=0;for(let s of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[s].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 Ere(...e){let{resolvedOptions:t,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}=Cre(e);return ba.from(r,t).runExit(s,a)}async function Ire(...e){let{resolvedOptions:t,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}=Cre(e);return ba.from(r,t).run(s,a)}function Cre(e){let t,r,s,a;switch(typeof process<"u"&&typeof process.argv<"u"&&(s=process.argv.slice(2)),e.length){case 1:r=e[0];break;case 2:e[0]&&e[0].prototype instanceof it||Array.isArray(e[0])?(r=e[0],Array.isArray(e[1])?s=e[1]:a=e[1]):(t=e[0],r=e[1]);break;case 3:Array.isArray(e[2])?(t=e[0],r=e[1],s=e[2]):e[0]&&e[0].prototype instanceof it||Array.isArray(e[0])?(r=e[0],s=e[1],a=e[2]):(t=e[0],r=e[1],a=e[2]);break;default:t=e[0],r=e[1],s=e[2],a=e[3];break}if(typeof s>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:t,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}}function yre(e){return e()}var mre,ba,wre=Xe(()=>{Rx();Hx();$U();dre();c0();gre();mre=Symbol("clipanion/errorCommand");ba=class e{constructor({binaryLabel:t,binaryName:r="...",binaryVersion:s,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new _x({binaryName:r}),this.binaryLabel=t,this.binaryName=r,this.binaryVersion=s,this.enableCapture=a,this.enableColors=n}static from(t,r={}){let s=new e(r),a=Array.isArray(t)?t:[t];for(let n of a)s.register(n);return s}register(t){var r;let s=new Map,a=new t;for(let p in a){let h=a[p];typeof h=="object"&&h!==null&&h[it.isOption]&&s.set(p,h)}let n=this.builder.command(),c=n.cliIndex,f=(r=t.paths)!==null&&r!==void 0?r:a.paths;if(typeof f<"u")for(let p of f)n.addPath(p);this.registrations.set(t,{specs:s,builder:n,index:c});for(let[p,{definition:h}]of s.entries())h(n,p);n.setContext({commandClass:t})}process(t,r){let{input:s,context:a,partial:n}=typeof t=="object"&&Array.isArray(t)?{input:t,context:r}:t,{contexts:c,process:f}=this.builder.compile(),p=f(s,{partial:n}),h={...e.defaultContext,...a};switch(p.selectedIndex){case Og:{let E=Gx.from(p,c);return E.context=h,E.tokens=p.tokens,E}default:{let{commandClass:E}=c[p.selectedIndex],C=this.registrations.get(E);if(typeof C>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let S=new E;S.context=h,S.tokens=p.tokens,S.path=p.path;try{for(let[x,{transformer:I}]of C.specs.entries())S[x]=I(C.builder,x,p,h);return S}catch(x){throw x[mre]=S,x}}break}}async run(t,r){var s,a;let n,c={...e.defaultContext,...r},f=(s=this.enableColors)!==null&&s!==void 0?s:c.colorDepth>1;if(!Array.isArray(t))n=t;else try{n=this.process(t,c)}catch(E){return c.stdout.write(this.error(E,{colored:f})),1}if(n.help)return c.stdout.write(this.usage(n,{colored:f,detailed:!0})),0;n.context=c,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,C)=>this.error(E,C),format:E=>this.format(E),process:(E,C)=>this.process(E,{...c,...C}),run:(E,C)=>this.run(E,{...c,...C}),usage:(E,C)=>this.usage(E,C)};let p=this.enableCapture&&(a=hre(c))!==null&&a!==void 0?a:yre,h;try{h=await p(()=>n.validateAndExecute().catch(E=>n.catch(E).then(()=>0)))}catch(E){return c.stdout.write(this.error(E,{colored:f,command:n})),1}return h}async runExit(t,r){process.exitCode=await this.run(t,r)}definition(t,{colored:r=!1}={}){if(!t.usage)return null;let{usage:s}=this.getUsageByRegistration(t,{detailed:!1}),{usage:a,options:n}=this.getUsageByRegistration(t,{detailed:!0,inlineOptions:!1}),c=typeof t.usage.category<"u"?Ko(t.usage.category,{format:this.format(r),paragraphs:!1}):void 0,f=typeof t.usage.description<"u"?Ko(t.usage.description,{format:this.format(r),paragraphs:!1}):void 0,p=typeof t.usage.details<"u"?Ko(t.usage.details,{format:this.format(r),paragraphs:!0}):void 0,h=typeof t.usage.examples<"u"?t.usage.examples.map(([E,C])=>[Ko(E,{format:this.format(r),paragraphs:!1}),C.replace(/\$0/g,this.binaryName)]):void 0;return{path:s,usage:a,category:c,description:f,details:p,examples:h,options:n}}definitions({colored:t=!1}={}){let r=[];for(let s of this.registrations.keys()){let a=this.definition(s,{colored:t});a&&r.push(a)}return r}usage(t=null,{colored:r,detailed:s=!1,prefix:a="$ "}={}){var n;if(t===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(t){t=null;break}else t=p;else if(E){t=null;continue}}t&&(s=!0)}let c=t!==null&&t instanceof it?t.constructor:t,f="";if(c)if(s){let{description:p="",details:h="",examples:E=[]}=c.usage||{};p!==""&&(f+=Ko(p,{format:this.format(r),paragraphs:!1}).replace(/^./,x=>x.toUpperCase()),f+=`
`),(h!==""||E.length>0)&&(f+=`${this.format(r).header("Usage")}
`,f+=`
`);let{usage:C,options:S}=this.getUsageByRegistration(c,{inlineOptions:!1});if(f+=`${this.format(r).bold(a)}${C}
`,S.length>0){f+=`
`,f+=`${this.format(r).header("Options")}
`;let x=S.reduce((I,T)=>Math.max(I,T.definition.length),0);f+=`
`;for(let{definition:I,description:T}of S)f+=` ${this.format(r).bold(I.padEnd(x))} ${Ko(T,{format:this.format(r),paragraphs:!1})}`}if(h!==""&&(f+=`
`,f+=`${this.format(r).header("Details")}
`,f+=`
`,f+=Ko(h,{format:this.format(r),paragraphs:!0})),E.length>0){f+=`
`,f+=`${this.format(r).header("Examples")}
`;for(let[x,I]of E)f+=`
`,f+=Ko(x,{format:this.format(r),paragraphs:!1}),f+=`${I.replace(/^/m,` ${this.format(r).bold(a)}`).replace(/\$0/g,this.binaryName)}
`}}else{let{usage:p}=this.getUsageByRegistration(c);f+=`${this.format(r).bold(a)}${p}
`}else{let p=new Map;for(let[S,{index:x}]of this.registrations.entries()){if(typeof S.usage>"u")continue;let I=typeof S.usage.category<"u"?Ko(S.usage.category,{format:this.format(r),paragraphs:!1}):null,T=p.get(I);typeof T>"u"&&p.set(I,T=[]);let{usage:O}=this.getUsageByIndex(x);T.push({commandClass:S,usage:O})}let h=Array.from(p.keys()).sort((S,x)=>S===null?-1:x===null?1:S.localeCompare(x,"en",{usage:"sort",caseFirst:"upper"})),E=typeof this.binaryLabel<"u",C=typeof this.binaryVersion<"u";E||C?(E&&C?f+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)}
`:E?f+=`${this.format(r).header(`${this.binaryLabel}`)}
`:f+=`${this.format(r).header(`${this.binaryVersion}`)}
`,f+=` ${this.format(r).bold(a)}${this.binaryName} <command>
`):f+=`${this.format(r).bold(a)}${this.binaryName} <command>
`;for(let S of h){let x=p.get(S).slice().sort((T,O)=>T.usage.localeCompare(O.usage,"en",{usage:"sort",caseFirst:"upper"})),I=S!==null?S.trim():"General commands";f+=`
`,f+=`${this.format(r).header(`${I}`)}
`;for(let{commandClass:T,usage:O}of x){let U=T.usage.description||"undocumented";f+=`
`,f+=` ${this.format(r).bold(O)}
`,f+=` ${Ko(U,{format:this.format(r),paragraphs:!1})}`}}f+=`
`,f+=Ko("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 f}error(t,r){var s,{colored:a,command:n=(s=t[mre])!==null&&s!==void 0?s:null}=r===void 0?{}:r;(!t||typeof t!="object"||!("stack"in t))&&(t=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(t)})`));let c="",f=t.name.replace(/([a-z])([A-Z])/g,"$1 $2");f==="Error"&&(f="Internal Error"),c+=`${this.format(a).error(f)}: ${t.message}
`;let p=t.clipanion;return typeof p<"u"?p.type==="usage"&&(c+=`
`,c+=this.usage(n)):t.stack&&(c+=`${t.stack.replace(/^.*\n/,"")}
`),c}format(t){var r;return((r=t??this.enableColors)!==null&&r!==void 0?r:e.defaultContext.colorDepth>1)?tre:rre}getUsageByRegistration(t,r){let s=this.registrations.get(t);if(typeof s>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(s.index,r)}getUsageByIndex(t,r){return this.builder.getBuilderByIndex(t).usage(r)}};ba.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:pre()}});var Z2,Bre=Xe(()=>{c0();Z2=class extends it{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)}
`)}};Z2.paths=[["--clipanion=definitions"]]});var $2,vre=Xe(()=>{c0();$2=class extends it{async execute(){this.context.stdout.write(this.cli.usage())}};$2.paths=[["-h"],["--help"]]});function qx(e={}){return va({definition(t,r){var s;t.addProxy({name:(s=e.name)!==null&&s!==void 0?s:r,required:e.required})},transformer(t,r,s){return s.positionals.map(({value:a})=>a)}})}var u_=Xe(()=>{vp()});var eB,Sre=Xe(()=>{c0();u_();eB=class extends it{constructor(){super(...arguments),this.args=qx()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)}
`)}};eB.paths=[["--clipanion=tokens"]]});var tB,bre=Xe(()=>{c0();tB=class extends it{async execute(){var t;this.context.stdout.write(`${(t=this.cli.binaryVersion)!==null&&t!==void 0?t:"<unknown>"}
`)}};tB.paths=[["-v"],["--version"]]});var f_={};Vt(f_,{DefinitionsCommand:()=>Z2,HelpCommand:()=>$2,TokensCommand:()=>eB,VersionCommand:()=>tB});var Dre=Xe(()=>{Bre();vre();Sre();bre()});function Pre(e,t,r){let[s,a]=Wf(t,r??{}),{arity:n=1}=a,c=e.split(","),f=new Set(c);return va({definition(p){p.addOption({names:c,arity:n,hidden:a?.hidden,description:a?.description,required:a.required})},transformer(p,h,E){let C,S=typeof s<"u"?[...s]:void 0;for(let{name:x,value:I}of E.options)f.has(x)&&(C=x,S=S??[],S.push(I));return typeof S<"u"?Lg(C??h,S,a.validator):S}})}var xre=Xe(()=>{vp()});function kre(e,t,r){let[s,a]=Wf(t,r??{}),n=e.split(","),c=new Set(n);return va({definition(f){f.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(f,p,h){let E=s;for(let{name:C,value:S}of h.options)c.has(C)&&(E=S);return E}})}var Qre=Xe(()=>{vp()});function Rre(e,t,r){let[s,a]=Wf(t,r??{}),n=e.split(","),c=new Set(n);return va({definition(f){f.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(f,p,h){let E=s;for(let{name:C,value:S}of h.options)c.has(C)&&(E??(E=0),S?E+=1:E=0);return E}})}var Tre=Xe(()=>{vp()});function Fre(e={}){return va({definition(t,r){var s;t.addRest({name:(s=e.name)!==null&&s!==void 0?s:r,required:e.required})},transformer(t,r,s){let a=c=>{let f=s.positionals[c];return f.extra===Kl||f.extra===!1&&c<t.arity.leading.length},n=0;for(;n<s.positionals.length&&a(n);)n+=1;return s.positionals.splice(0,n).map(({value:c})=>c)}})}var Nre=Xe(()=>{Hx();vp()});function gqe(e,t,r){let[s,a]=Wf(t,r??{}),{arity:n=1}=a,c=e.split(","),f=new Set(c);return va({definition(p){p.addOption({names:c,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(p,h,E,C){let S,x=s;typeof a.env<"u"&&C.env[a.env]&&(S=a.env,x=C.env[a.env]);for(let{name:I,value:T}of E.options)f.has(I)&&(S=I,x=T);return typeof x=="string"?Lg(S??h,x,a.validator):x}})}function mqe(e={}){let{required:t=!0}=e;return va({definition(r,s){var a;r.addPositional({name:(a=e.name)!==null&&a!==void 0?a:s,required:e.required})},transformer(r,s,a){var n;for(let c=0;c<a.positionals.length;++c){if(a.positionals[c].extra===Kl||t&&a.positionals[c].extra===!0||!t&&a.positionals[c].extra===!1)continue;let[f]=a.positionals.splice(c,1);return Lg((n=e.name)!==null&&n!==void 0?n:s,f.value,e.validator)}}})}function Ore(e,...t){return typeof e=="string"?gqe(e,...t):mqe(e)}var Lre=Xe(()=>{Hx();vp()});var pe={};Vt(pe,{Array:()=>Pre,Boolean:()=>kre,Counter:()=>Rre,Proxy:()=>qx,Rest:()=>Fre,String:()=>Ore,applyValidator:()=>Lg,cleanValidationError:()=>Nx,formatError:()=>V2,isOptionSymbol:()=>W2,makeCommandOption:()=>va,rerouteArguments:()=>Wf});var Mre=Xe(()=>{vp();u_();xre();Qre();Tre();Nre();Lre()});var rB={};Vt(rB,{Builtins:()=>f_,Cli:()=>ba,Command:()=>it,Option:()=>pe,UsageError:()=>st,formatMarkdownish:()=>Ko,run:()=>Ire,runExit:()=>Ere});var jt=Xe(()=>{Fx();$U();c0();wre();Dre();Mre()});var Ure=G((ykt,yqe)=>{yqe.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 Gre=G((Ekt,bp)=>{var _re=Ie("fs"),p_=Ie("path"),Eqe=Ie("os"),Iqe=Ie("crypto"),Cqe=Ure(),h_=Cqe.version,wqe=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Bqe(e){let t={},r=e.toString();r=r.replace(/\r\n?/mg,`
`);let s;for(;(s=wqe.exec(r))!=null;){let a=s[1],n=s[2]||"";n=n.trim();let c=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),c==='"'&&(n=n.replace(/\\n/g,`
`),n=n.replace(/\\r/g,"\r")),t[a]=n}return t}function vqe(e){let t=jre(e),r=Ws.configDotenv({path:t});if(!r.parsed)throw new Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);let s=Hre(e).split(","),a=s.length,n;for(let c=0;c<a;c++)try{let f=s[c].trim(),p=Dqe(r,f);n=Ws.decrypt(p.ciphertext,p.key);break}catch(f){if(c+1>=a)throw f}return Ws.parse(n)}function Sqe(e){console.log(`[dotenv@${h_}][INFO] ${e}`)}function bqe(e){console.log(`[dotenv@${h_}][WARN] ${e}`)}function A_(e){console.log(`[dotenv@${h_}][DEBUG] ${e}`)}function Hre(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function Dqe(e,t){let r;try{r=new URL(t)}catch(f){throw f.code==="ERR_INVALID_URL"?new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development"):f}let s=r.password;if(!s)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()}`,c=e.parsed[n];if(!c)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${n} in your .env.vault file.`);return{ciphertext:c,key:s}}function jre(e){let t=p_.resolve(process.cwd(),".env");return e&&e.path&&e.path.length>0&&(t=e.path),t.endsWith(".vault")?t:`${t}.vault`}function Pqe(e){return e[0]==="~"?p_.join(Eqe.homedir(),e.slice(1)):e}function xqe(e){Sqe("Loading env from encrypted .env.vault");let t=Ws._parseVault(e),r=process.env;return e&&e.processEnv!=null&&(r=e.processEnv),Ws.populate(r,t,e),{parsed:t}}function kqe(e){let t=p_.resolve(process.cwd(),".env"),r="utf8",s=!!(e&&e.debug);e&&(e.path!=null&&(t=Pqe(e.path)),e.encoding!=null&&(r=e.encoding));try{let a=Ws.parse(_re.readFileSync(t,{encoding:r})),n=process.env;return e&&e.processEnv!=null&&(n=e.processEnv),Ws.populate(n,a,e),{parsed:a}}catch(a){return s&&A_(`Failed to load ${t} ${a.message}`),{error:a}}}function Qqe(e){let t=jre(e);return Hre(e).length===0?Ws.configDotenv(e):_re.existsSync(t)?Ws._configVault(e):(bqe(`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`),Ws.configDotenv(e))}function Rqe(e,t){let r=Buffer.from(t.slice(-64),"hex"),s=Buffer.from(e,"base64"),a=s.slice(0,12),n=s.slice(-16);s=s.slice(12,-16);try{let c=Iqe.createDecipheriv("aes-256-gcm",r,a);return c.setAuthTag(n),`${c.update(s)}${c.final()}`}catch(c){let f=c instanceof RangeError,p=c.message==="Invalid key length",h=c.message==="Unsupported state or unable to authenticate data";if(f||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: ",c.code),console.error("Error: ",c.message),c}}function Tqe(e,t,r={}){let s=!!(r&&r.debug),a=!!(r&&r.override);if(typeof t!="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let n of Object.keys(t))Object.prototype.hasOwnProperty.call(e,n)?(a===!0&&(e[n]=t[n]),s&&A_(a===!0?`"${n}" is already defined and WAS overwritten`:`"${n}" is already defined and was NOT overwritten`)):e[n]=t[n]}var Ws={configDotenv:kqe,_configVault:xqe,_parseVault:vqe,config:Qqe,decrypt:Rqe,parse:Bqe,populate:Tqe};bp.exports.configDotenv=Ws.configDotenv;bp.exports._configVault=Ws._configVault;bp.exports._parseVault=Ws._parseVault;bp.exports.config=Ws.config;bp.exports.decrypt=Ws.decrypt;bp.exports.parse=Ws.parse;bp.exports.populate=Ws.populate;bp.exports=Ws});var Yre=G((Ikt,qre)=>{"use strict";qre.exports=(e,...t)=>new Promise(r=>{r(e(...t))})});var Mg=G((Ckt,d_)=>{"use strict";var Fqe=Yre(),Wre=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let t=[],r=0,s=()=>{r--,t.length>0&&t.shift()()},a=(f,p,...h)=>{r++;let E=Fqe(f,...h);p(E),E.then(s,s)},n=(f,p,...h)=>{r<e?a(f,p,...h):t.push(a.bind(null,f,p,...h))},c=(f,...p)=>new Promise(h=>n(f,h,...p));return Object.defineProperties(c,{activeCount:{get:()=>r},pendingCount:{get:()=>t.length}}),c};d_.exports=Wre;d_.exports.default=Wre});function zf(e){return`YN${e.toString(10).padStart(4,"0")}`}function Yx(e){let t=Number(e.slice(2));if(typeof pr[t]>"u")throw new Error(`Unknown message name: "${e}"`);return t}var pr,Wx=Xe(()=>{pr=(Ue=>(Ue[Ue.UNNAMED=0]="UNNAMED",Ue[Ue.EXCEPTION=1]="EXCEPTION",Ue[Ue.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",Ue[Ue.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",Ue[Ue.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",Ue[Ue.BUILD_DISABLED=5]="BUILD_DISABLED",Ue[Ue.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",Ue[Ue.MUST_BUILD=7]="MUST_BUILD",Ue[Ue.MUST_REBUILD=8]="MUST_REBUILD",Ue[Ue.BUILD_FAILED=9]="BUILD_FAILED",Ue[Ue.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",Ue[Ue.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",Ue[Ue.LINKER_NOT_FOUND=12]="LINKER_NOT_FO Line truncated
`,"\r","(",")","!","|","&","^"],!0,!1),ae=function(ee){return t.queryPattern.test(ee)},ge=function(ee){return t.checkFn(ee)},he=Re("whitespace"),Ce=/^[ \t\n\r]/,Ee=ke([" "," ",`
`,"\r"],!1,!1),d=0,Se=0,Be=[{line:1,column:1}],me=0,ue=[],Z=0,be;if("startRule"in t){if(!(t.startRule in s))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');a=s[t.startRule]}function Qe(){return e.substring(Se,d)}function ot(){return Me(Se,d)}function _(ee,se){throw se=se!==void 0?se:Me(Se,d),D([Re(ee)],e.substring(Se,d),se)}function tt(ee,se){throw se=se!==void 0?se:Me(Se,d),w(ee,se)}function Ne(ee,se){return{type:"literal",text:ee,ignoreCase:se}}function ke(ee,se,xe){return{type:"class",parts:ee,inverted:se,ignoreCase:xe}}function De(){return{type:"any"}}function je(){return{type:"end"}}function Re(ee){return{type:"other",description:ee}}function ct(ee){var se=Be[ee],xe;if(se)return se;for(xe=ee-1;!Be[xe];)xe--;for(se=Be[xe],se={line:se.line,column:se.column};xe<ee;)e.charCodeAt(xe)===10?(se.line++,se.column=1):se.column++,xe++;return Be[ee]=se,se}function Me(ee,se){var xe=ct(ee),Fe=ct(se);return{start:{offset:ee,line:xe.line,column:xe.column},end:{offset:se,line:Fe.line,column:Fe.column}}}function P(ee){d<me||(d>me&&(me=d,ue=[]),ue.push(ee))}function w(ee,se){return new Gg(ee,null,null,se)}function D(ee,se,xe){return new Gg(Gg.buildMessage(ee,se),ee,se,xe)}function y(){var ee,se,xe,Fe,ut,Ct,Yt,ir;if(ee=d,se=F(),se!==r){for(xe=[],Fe=d,ut=X(),ut!==r?(e.charCodeAt(d)===124?(Ct=n,d++):(Ct=r,Z===0&&P(c)),Ct===r&&(e.charCodeAt(d)===38?(Ct=f,d++):(Ct=r,Z===0&&P(p)),Ct===r&&(e.charCodeAt(d)===94?(Ct=h,d++):(Ct=r,Z===0&&P(E)))),Ct!==r?(Yt=X(),Yt!==r?(ir=F(),ir!==r?(ut=[ut,Ct,Yt,ir],Fe=ut):(d=Fe,Fe=r)):(d=Fe,Fe=r)):(d=Fe,Fe=r)):(d=Fe,Fe=r);Fe!==r;)xe.push(Fe),Fe=d,ut=X(),ut!==r?(e.charCodeAt(d)===124?(Ct=n,d++):(Ct=r,Z===0&&P(c)),Ct===r&&(e.charCodeAt(d)===38?(Ct=f,d++):(Ct=r,Z===0&&P(p)),Ct===r&&(e.charCodeAt(d)===94?(Ct=h,d++):(Ct=r,Z===0&&P(E)))),Ct!==r?(Yt=X(),Yt!==r?(ir=F(),ir!==r?(ut=[ut,Ct,Yt,ir],Fe=ut):(d=Fe,Fe=r)):(d=Fe,Fe=r)):(d=Fe,Fe=r)):(d=Fe,Fe=r);xe!==r?(Se=ee,se=C(se,xe),ee=se):(d=ee,ee=r)}else d=ee,ee=r;return ee}function F(){var ee,se,xe,Fe,ut,Ct;return ee=d,e.charCodeAt(d)===33?(se=S,d++):(se=r,Z===0&&P(x)),se!==r?(xe=F(),xe!==r?(Se=ee,se=I(xe),ee=se):(d=ee,ee=r)):(d=ee,ee=r),ee===r&&(ee=d,e.charCodeAt(d)===40?(se=T,d++):(se=r,Z===0&&P(O)),se!==r?(xe=X(),xe!==r?(Fe=y(),Fe!==r?(ut=X(),ut!==r?(e.charCodeAt(d)===41?(Ct=U,d++):(Ct=r,Z===0&&P(V)),Ct!==r?(Se=ee,se=$(Fe),ee=se):(d=ee,ee=r)):(d=ee,ee=r)):(d=ee,ee=r)):(d=ee,ee=r)):(d=ee,ee=r),ee===r&&(ee=z())),ee}function z(){var ee,se,xe,Fe,ut;if(ee=d,se=X(),se!==r){if(xe=d,Fe=[],ie.test(e.charAt(d))?(ut=e.charAt(d),d++):(ut=r,Z===0&&P(fe)),ut!==r)for(;ut!==r;)Fe.push(ut),ie.test(e.charAt(d))?(ut=e.charAt(d),d++):(ut=r,Z===0&&P(fe));else Fe=r;Fe!==r?xe=e.substring(xe,d):xe=Fe,xe!==r?(Se=d,Fe=ae(xe),Fe?Fe=void 0:Fe=r,Fe!==r?(Se=ee,se=ge(xe),ee=se):(d=ee,ee=r)):(d=ee,ee=r)}else d=ee,ee=r;return ee}function X(){var ee,se;for(Z++,ee=[],Ce.test(e.charAt(d))?(se=e.charAt(d),d++):(se=r,Z===0&&P(Ee));se!==r;)ee.push(se),Ce.test(e.charAt(d))?(se=e.charAt(d),d++):(se=r,Z===0&&P(Ee));return Z--,ee===r&&(se=r,Z===0&&P(he)),ee}if(be=a(),be!==r&&d===e.length)return be;throw be!==r&&d<e.length&&P(je()),D(ue,me<e.length?e.charAt(me):null,me<e.length?Me(me,me+1):Me(me,me))}qie.exports={SyntaxError:Gg,parse:TVe}});var Wie=G(ik=>{var{parse:FVe}=Yie();ik.makeParser=(e=/[a-z]+/)=>(t,r)=>FVe(t,{queryPattern:e,checkFn:r});ik.parse=ik.makeParser()});var Kie=G((mQt,Vie)=>{"use strict";Vie.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],lightgoldenrodyLine truncated
`:`
`)+r,a=s+1,s=e.indexOf(`
`,a)}while(s!==-1);return n+=e.substr(a),n};fse.exports={stringReplaceAll:VVe,stringEncaseCRLFWithFirstIndex:KVe}});var mse=G((SQt,gse)=>{"use strict";var JVe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,pse=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,zVe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,XVe=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,ZVe=new Map([["n",`
`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function dse(e){let t=e[0]==="u",r=e[1]==="{";return t&&!r&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):ZVe.get(e)||e}function $Ve(e,t){let r=[],s=t.trim().split(/\s*,\s*/g),a;for(let n of s){let c=Number(n);if(!Number.isNaN(c))r.push(c);else if(a=n.match(zVe))r.push(a[2].replace(XVe,(f,p,h)=>p?dse(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${e}')`)}return r}function e7e(e){pse.lastIndex=0;let t=[],r;for(;(r=pse.exec(e))!==null;){let s=r[1];if(r[2]){let a=$Ve(s,r[2]);t.push([s].concat(a))}else t.push([s])}return t}function hse(e,t){let r={};for(let a of t)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let s=e;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in s))throw new Error(`Unknown Chalk style: ${a}`);s=n.length>0?s[a](...n):s[a]}return s}gse.exports=(e,t)=>{let r=[],s=[],a=[];if(t.replace(JVe,(n,c,f,p,h,E)=>{if(c)a.push(dse(c));else if(p){let C=a.join("");a=[],s.push(r.length===0?C:hse(e,r)(C)),r.push({inverse:f,styles:e7e(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");s.push(hse(e,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),s.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 s.join("")}});var LE=G((bQt,Bse)=>{"use strict";var pB=ak(),{stdout:G_,stderr:q_}=use(),{stringReplaceAll:t7e,stringEncaseCRLFWithFirstIndex:r7e}=Ase(),{isArray:lk}=Array,Ese=["ansi","ansi","ansi256","ansi16m"],OE=Object.create(null),n7e=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=G_?G_.level:0;e.level=t.level===void 0?r:t.level},Y_=class{constructor(t){return Ise(t)}},Ise=e=>{let t={};return n7e(t,e),t.template=(...r)=>wse(t.template,...r),Object.setPrototypeOf(t,ck.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=Y_,t.template};function ck(e){return Ise(e)}for(let[e,t]of Object.entries(pB))OE[e]={get(){let r=uk(this,W_(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};OE.visible={get(){let e=uk(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};var Cse=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let e of Cse)OE[e]={get(){let{level:t}=this;return function(...r){let s=W_(pB.color[Ese[t]][e](...r),pB.color.close,this._styler);return uk(this,s,this._isEmpty)}}};for(let e of Cse){let t="bg"+e[0].toUpperCase()+e.slice(1);OE[t]={get(){let{level:r}=this;return function(...s){let a=W_(pB.bgColor[Ese[r]][e](...s),pB.bgColor.close,this._styler);return uk(this,a,this._isEmpty)}}}}var i7e=Object.defineProperties(()=>{},{...OE,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),W_=(e,t,r)=>{let s,a;return r===void 0?(s=e,a=t):(s=r.openAll+e,a=t+r.closeAll),{open:e,close:t,openAll:s,closeAll:a,parent:r}},uk=(e,t,r)=>{let s=(...a)=>lk(a[0])&&lk(a[0].raw)?yse(s,wse(s,...a)):yse(s,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(s,i7e),s._generator=e,s._styler=t,s._isEmpty=r,s},yse=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(r===void 0)return t;let{openAll:s,closeAll:a}=r;if(t.indexOf("\x1B")!==-1)for(;r!==void 0;)t=t7e(t,r.close,r.open),r=r.parent;let n=t.indexOf(`
`);return n!==-1&&(t=r7e(t,a,s,n)),s+t+a},j_,wse=(e,...t)=>{let[r]=t;if(!lk(r)||!lk(r.raw))return t.join(" ");let s=t.slice(1),a=[r.raw[0]];for(let n=1;n<r.length;n++)a.push(String(s[n-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[n]));return j_===void 0&&(j_=mse()),j_(e,a.join(""))};Object.defineProperties(ck.prototype,OE);var fk=ck();fk.supportsColor=G_;fk.stderr=ck({level:q_?q_.level:0});fk.stderr.supportsColor=q_;Bse.exports=fk});var Ak=G(xc=>{"use strict";xc.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;xc.find=(e,t)=>e.nodes.find(r=>r.type===t);xc.exceedsLimit=(e,t,r=1,s)=>s===!1||!xc.isInteger(e)||!xc.isInteger(t)?!1:(Number(t)-Number(e))/Number(r)>=s;xc.escapeNode=(e,t=0,r)=>{let s=e.nodes[t];s&&(r&&s.type===r||s.type==="open"||s.type==="close")&&s.escaped!==!0&&(s.value="\\"+s.value,s.escaped=!0)};xc.encloseBrace=e=>e.type!=="brace"||e.commas>>0+e.ranges>>0?!1:(e.invalid=!0,!0);xc.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:!(e.commas>>0+e.ranges>>0)||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;xc.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;xc.reduce=e=>e.reduce((t,r)=>(r.type==="text"&&t.push(r.value),r.type==="range"&&(r.type="text"),t),[]);xc.flatten=(...e)=>{let t=[],r=s=>{for(let a=0;a<s.length;a++){let n=s[a];Array.isArray(n)?r(n,t):n!==void 0&&t.push(n)}return t};return r(e),t}});var pk=G((PQt,Sse)=>{"use strict";var vse=Ak();Sse.exports=(e,t={})=>{let r=(s,a={})=>{let n=t.escapeInvalid&&vse.isInvalidBrace(a),c=s.invalid===!0&&t.escapeInvalid===!0,f="";if(s.value)return(n||c)&&vse.isOpenOrClose(s)?"\\"+s.value:s.value;if(s.value)return s.value;if(s.nodes)for(let p of s.nodes)f+=r(p);return f};return r(e)}});var Dse=G((xQt,bse)=>{"use strict";bse.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var Ose=G((kQt,Nse)=>{"use strict";var Pse=Dse(),qg=(e,t,r)=>{if(Pse(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(Pse(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let s={relaxZeros:!0,...r};typeof s.strictZeros=="boolean"&&(s.relaxZeros=s.strictZeros===!1);let a=String(s.relaxZeros),n=String(s.shorthand),c=String(s.capture),f=String(s.wrap),p=e+":"+t+"="+a+n+c+f;if(qg.cache.hasOwnProperty(p))return qg.cache[p].result;let h=Math.min(e,t),E=Math.max(e,t);if(Math.abs(h-E)===1){let T=e+"|"+t;return s.capture?`(${T})`:s.wrap===!1?T:`(?:${T})`}let C=Fse(e)||Fse(t),S={min:e,max:t,a:h,b:E},x=[],I=[];if(C&&(S.isPadded=C,S.maxLen=String(S.max).length),h<0){let T=E<0?Math.abs(E):1;I=xse(T,Math.abs(h),S,s),h=S.a=0}return E>=0&&(x=xse(h,E,S,s)),S.negatives=I,S.positives=x,S.result=s7e(I,x,s),s.capture===!0?S.result=`(${S.result})`:s.wrap!==!1&&x.length+I.length>1&&(S.result=`(?:${S.result})`),qg.cache[p]=S,S.result};function s7e(e,t,r){let s=V_(e,t,"-",!1,r)||[],a=V_(t,e,"",!1,r)||[],n=V_(e,t,"-?",!0,r)||[];return s.concat(n).concat(a).join("|")}function o7e(e,t){let r=1,s=1,a=Qse(e,r),n=new Set([t]);for(;e<=a&&a<=t;)n.add(a),r+=1,a=Qse(e,r);for(a=Rse(t+1,s)-1;e<a&&a<=t;)n.add(a),s+=1,a=Rse(t+1,s)-1;return n=[...n],n.sort(c7e),n}function a7e(e,t,r){if(e===t)return{pattern:e,count:[],digits:0};let s=l7e(e,t),a=s.length,n="",c=0;for(let f=0;f<a;f++){let[p,h]=s[f];p===h?n+=p:p!=="0"||h!=="9"?n+=u7e(p,h,r):c++}return c&&(n+=r.shorthand===!0?"\\d":"[0-9]"),{pattern:n,count:[c],digits:a}}function xse(e,t,r,s){let a=o7e(e,t),n=[],c=e,f;for(let p=0;p<a.length;p++){let h=a[p],E=a7e(String(c),String(h),s),C="";if(!r.isPadded&&f&&f.pattern===E.pattern){f.count.length>1&&f.count.pop(),f.count.push(E.count[0]),f.string=f.pattern+Tse(f.count),c=h+1;continue}r.isPadded&&(C=f7e(h,r,s)),E.string=C+E.pattern+Tse(E.count),n.push(E),c=h+1,f=E}return n}function V_(e,t,r,s,a){let n=[];for(let c of e){let{string:f}=c;!s&&!kse(t,"string",f)&&n.push(r+f),s&&kse(t,"string",f)&&n.push(r+f)}return n}function l7e(e,t){let r=[];for(let s=0;s<e.length;s++)r.push([e[s],t[s]]);return r}function c7e(e,t){return e>t?1:t>e?-1:0}function kse(e,t,r){return e.some(s=>s[t]===r)}function Qse(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function Rse(e,t){return e-e%Math.pow(10,t)}function Tse(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function u7e(e,t,r){return`[${e}${t-e===1?"":"-"}${t}]`}function Fse(e){return/^-?(0+)\d/.test(e)}function f7e(e,t,r){if(!t.isPadded)return e;let s=Math.abs(t.maxLen-String(e).length),a=r.relaxZeros!==!1;switch(s){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${s}}`:`0{${s}}`}}qg.cache={};qg.clearCache=()=>qg.cache={};Nse.exports=qg});var z_=G((QQt,qse)=>{"use strict";var A7e=Ie("util"),Use=Ose(),Lse=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),p7e=e=>t=>e===!0?Number(t):String(t),K_=e=>typeof e=="numb 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 noe=G((NQt,roe)=>{"use strict";var v7e=pk(),{MAX_LENGTH:$se,CHAR_BACKSLASH:X_,CHAR_BACKTICK:S7e,CHAR_COMMA:b7e,CHAR_DOT:D7e,CHAR_LEFT_PARENTHESES:P7e,CHAR_RIGHT_PARENTHESES:x7e,CHAR_LEFT_CURLY_BRACE:k7e,CHAR_RIGHT_CURLY_BRACE:Q7e,CHAR_LEFT_SQUARE_BRACKET:eoe,CHAR_RIGHT_SQUARE_BRACKET:toe,CHAR_DOUBLE_QUOTE:R7e,CHAR_SINGLE_QUOTE:T7e,CHAR_NO_BREAK_SPACE:F7e,CHAR_ZERO_WIDTH_NOBREAK_SPACE:N7e}=Zse(),O7e=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let r=t||{},s=typeof r.maxLength=="number"?Math.min($se,r.maxLength):$se;if(e.length>s)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${s})`);let a={type:"root",input:e,nodes:[]},n=[a],c=a,f=a,p=0,h=e.length,E=0,C=0,S,x={},I=()=>e[E++],T=O=>{if(O.type==="text"&&f.type==="dot"&&(f.type="text"),f&&f.type==="text"&&O.type==="text"){f.value+=O.value;return}return c.nodes.push(O),O.parent=c,O.prev=f,f=O,O};for(T({type:"bos"});E<h;)if(c=n[n.length-1],S=I(),!(S===N7e||S===F7e)){if(S===X_){T({type:"text",value:(t.keepEscaping?S:"")+I()});continue}if(S===toe){T({type:"text",value:"\\"+S});continue}if(S===eoe){p++;let O=!0,U;for(;E<h&&(U=I());){if(S+=U,U===eoe){p++;continue}if(U===X_){S+=I();continue}if(U===toe&&(p--,p===0))break}T({type:"text",value:S});continue}if(S===P7e){c=T({type:"paren",nodes:[]}),n.push(c),T({type:"text",value:S});continue}if(S===x7e){if(c.type!=="paren"){T({type:"text",value:S});continue}c=n.pop(),T({type:"text",value:S}),c=n[n.length-1];continue}if(S===R7e||S===T7e||S===S7e){let O=S,U;for(t.keepQuotes!==!0&&(S="");E<h&&(U=I());){if(U===X_){S+=U+I();continue}if(U===O){t.keepQuotes===!0&&(S+=U);break}S+=U}T({type:"text",value:S});continue}if(S===k7e){C++;let U={type:"brace",open:!0,close:!1,dollar:f.value&&f.value.slice(-1)==="$"||c.dollar===!0,depth:C,commas:0,ranges:0,nodes:[]};c=T(U),n.push(c),T({type:"open",value:S});continue}if(S===Q7e){if(c.type!=="brace"){T({type:"text",value:S});continue}let O="close";c=n.pop(),c.close=!0,T({type:O,value:S}),C--,c=n[n.length-1];continue}if(S===b7e&&C>0){if(c.ranges>0){c.ranges=0;let O=c.nodes.shift();c.nodes=[O,{type:"text",value:v7e(c)}]}T({type:"comma",value:S}),c.commas++;continue}if(S===D7e&&C>0&&c.commas===0){let O=c.nodes;if(C===0||O.length===0){T({type:"text",value:S});continue}if(f.type==="dot"){if(c.range=[],f.value+=S,f.type="range",c.nodes.length!==3&&c.nodes.length!==5){c.invalid=!0,c.ranges=0,f.type="text";continue}c.ranges++,c.args=[];continue}if(f.type==="range"){O.pop();let U=O[O.length-1];U.value+=f.value+S,f=U,c.ranges--;continue}T({type:"dot",value:S});continue}T({type:"text",value:S})}do if(c=n.pop(),c.type!=="root"){c.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 O=n[n.length-1],U=O.nodes.indexOf(c);O.nodes.splice(U,1,...c.nodes)}while(n.length>0);return T({type:"eos"}),a};roe.exports=O7e});var ooe=G((OQt,soe)=>{"use strict";var ioe=pk(),L7e=Vse(),M7e=zse(),U7e=noe(),Jl=(e,t={})=>{let r=[];if(Array.isArray(e))for(let s of e){let a=Jl.create(s,t);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(Jl.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(r=[...new Set(r)]),r};Jl.parse=(e,t={})=>U7e(e,t);Jl.stringify=(e,t={})=>ioe(typeof e=="string"?Jl.parse(e,t):e,t);Jl.compile=(e,t={})=>(typeof e=="string"&&(e=Jl.parse(e,t)),L7e(e,t));Jl.expand=(e,t={})=>{typeof e=="string"&&(e=Jl.parse(e,t));let r=M7e(e,t);return t.noempty===!0&&(r=r.filter(Boolean)),t.nodupes===!0&&(r=[...new Set(r)]),r};Jl.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?Jl.compile(e,t):Jl.expand(e,t);soe.exports=Jl});var dB=G((LQt,foe)=>{"use strict";var _7e=Ie("path"),Xf="\\\\/",aoe=`[^${Xf}]`,kp="\\.",H7e="\\+",j7e="\\?",dk="\\/",G7e="(?=.)",loe="[^/]",Z_=`(?:${dk}|$)`,coe=`(?:^|${dk})`,$_=`${kp}{1,2}${Z_}`,q7e=`(?!${kp})`,Y7e=`(?!${coe}${$_})`,W7e=`(?!${kp}{0,1}${Z_})`,V7e=`(?!${$_})`,K7e=`[^.${dk}]`,J7e=`${loe}*?`,uoe={DOT_LITERAL:kp,PLUS_LITERAL:H7e,QMARK_LITERAL:j7e,SLASH_LITERAL:dk,ONE_CHAR:G7e,QMARK:loe,END_ANCHOR:Z_,DOTS_SLASH:$_,NO_DOT:q7e,NO_DOTS:Y7e,NO_DOT_SLASH:W7e,NO_DOTS_SLASH:V7e,QMARK_NO_DOT:K7e,STAR:J7e,START_ANCHOR:coe},z7e={...uoe,SLASH_LITERAL:`[${Xf}]`,QMARK:aoe,STAR:`${aoe}*?`,DOTS_SLASH:`${kp}{1,2}(?:[${Xf}]|$)`,NO_DOT:`(?!${kp})`,NO_DOTS:`(?!(?:^|[${Xf}])${kp}{1,2}(?:[${Xf}]|$))`,NO_DOT_SLASH:`(?!${kp}{0,1}(?:[${Xf}]|$))`,NO_DOTS_SLASH:`(?!${kp}{1,2}(?:[${Xf}]|$))`,QMARK_NO_DOT:`[^.${Xf}]`,START_ANCHOR:`(?:^|[${Xf}])`,END_ANCHOR:`(?:[${Xf}]|$)`},X7e={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:"\\-!\"#$%&' Line truncated
`),f!==-1){let p=a+c.substring(0,f);c=c.substring(f+1),a="",t!==null?this.reportInfo(null,`${t} ${p}`):this.reportInfo(null,p)}while(f!==-1);a+=c}),r.on("end",()=>{let n=s.end();n!==""&&(t!==null?this.reportInfo(null,`${t} ${n}`):this.reportInfo(null,n))}),r}}});var AI,B8=Xe(()=>{Nc();$o();AI=class{constructor(t){this.fetchers=t}supports(t,r){return!!this.tryFetcher(t,r)}getLocalPath(t,r){return this.getFetcher(t,r).getLocalPath(t,r)}async fetch(t,r){return await this.getFetcher(t,r).fetch(t,r)}tryFetcher(t,r){let s=this.fetchers.find(a=>a.supports(t,r));return s||null}getFetcher(t,r){let s=this.fetchers.find(a=>a.supports(t,r));if(!s)throw new Lt(11,`${Vr(r.project.configuration,t)} isn't supported by any available fetcher`);return s}}});var nm,v8=Xe(()=>{$o();nm=class{constructor(t){this.resolvers=t.filter(r=>r)}supportsDescriptor(t,r){return!!this.tryResolverByDescriptor(t,r)}supportsLocator(t,r){return!!this.tryResolverByLocator(t,r)}shouldPersistResolution(t,r){return this.getResolverByLocator(t,r).shouldPersistResolution(t,r)}bindDescriptor(t,r,s){return this.getResolverByDescriptor(t,s).bindDescriptor(t,r,s)}getResolutionDependencies(t,r){return this.getResolverByDescriptor(t,r).getResolutionDependencies(t,r)}async getCandidates(t,r,s){return await this.getResolverByDescriptor(t,s).getCandidates(t,r,s)}async getSatisfying(t,r,s,a){return this.getResolverByDescriptor(t,a).getSatisfying(t,r,s,a)}async resolve(t,r){return await this.getResolverByLocator(t,r).resolve(t,r)}tryResolverByDescriptor(t,r){let s=this.resolvers.find(a=>a.supportsDescriptor(t,r));return s||null}getResolverByDescriptor(t,r){let s=this.resolvers.find(a=>a.supportsDescriptor(t,r));if(!s)throw new Error(`${ai(r.project.configuration,t)} isn't supported by any available resolver`);return s}tryResolverByLocator(t,r){let s=this.resolvers.find(a=>a.supportsLocator(t,r));return s||null}getResolverByLocator(t,r){let s=this.resolvers.find(a=>a.supportsLocator(t,r));if(!s)throw new Error(`${Vr(r.project.configuration,t)} isn't supported by any available resolver`);return s}}});var pI,S8=Xe(()=>{bt();$o();pI=class{supports(t){return!!t.reference.startsWith("virtual:")}getLocalPath(t,r){let s=t.reference.indexOf("#");if(s===-1)throw new Error("Invalid virtual package reference");let a=t.reference.slice(s+1),n=Js(t,a);return r.fetcher.getLocalPath(n,r)}async fetch(t,r){let s=t.reference.indexOf("#");if(s===-1)throw new Error("Invalid virtual package reference");let a=t.reference.slice(s+1),n=Js(t,a),c=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(t,c,r)}getLocatorFilename(t){return lI(t)}async ensureVirtualLink(t,r,s){let a=r.packageFs.getRealPath(),n=s.project.configuration.get("virtualFolder"),c=this.getLocatorFilename(t),f=Eo.makeVirtualPath(n,c,a),p=new Gf(f,{baseFs:r.packageFs,pathUtils:K});return{...r,packageFs:p}}}});var OQ,_ce=Xe(()=>{OQ=class e{static{this.protocol="virtual:"}static isVirtualDescriptor(t){return!!t.range.startsWith(e.protocol)}static isVirtualLocator(t){return!!t.reference.startsWith(e.protocol)}supportsDescriptor(t,r){return e.isVirtualDescriptor(t)}supportsLocator(t,r){return e.isVirtualLocator(t)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,s){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(t,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(t,r,s){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(t,r,s,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(t,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}});var hI,b8=Xe(()=>{bt();rm();hI=class{supports(t){return!!t.reference.startsWith(Ii.protocol)}getLocalPath(t,r){return this.getWorkspace(t,r).cwd}async fetch(t,r){let s=this.getWorkspace(t,r).cwd;return{packageFs:new Pn(s),prefixPath:vt.dot,localPath:s}}getWorkspace(t,r){return r.project.getWorkspaceByCwd(t.reference.slice(Ii.protocol.length))}}});function HB(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Hce(e){return typeof e>"u"?3:HB(e)?0:Array.isArray(e)?1:2}function x8(e,t){return Object.hasOwn(e,t)}function oZe(e){return HB(e)&&x8(e,"onConflict")&&typeof e.onConflict=="string"}function aZe(e){if(typeof e>"u")return{onConflict:"default",value:e};if(!oZe(e))return{onConflict:"default",value:e};if(x8(e,"value"))return e;let{onConflict:t,...r}=e;return{onConflict:t,value:r}}function jce(e,t){let r=HB(e)&&x8(e,t)?e[t]:void 0;return aZe(r)}function dI(e,t){return[e,t,Gce]}function k8(e){return Array.isArray(e)?e[2]===Gce:!1}function D8(e,t){if(HB(e)){let r={};for(let s of Object.keys(e))r[s]=D8(e[s],t);return dI(t,r)}return Array.isArray(e)?dI(t,e.map(r=>D8(r,t))):dI(t,e)}function P8(e,t,r,s,a){let n,c=[],f=a,p=0;for(let E=a-Line truncated
Please report this to https://github.com/szmarczak/http2-wrapper/`);I(T)}return}s[0].resolve(x);return}}if(c in this.queue){if(f in this.queue[c]){this.queue[c][f].listeners.push(...s),this._tryToCreateNewSession(c,f);return}}else this.queue[c]={};let p=()=>{c in this.queue&&this.queue[c][f]===h&&(delete this.queue[c][f],Object.keys(this.queue[c]).length===0&&delete this.queue[c])},h=()=>{let E=`${f}:${c}`,C=!1;try{let S=v$e.connect(t,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(E),...r});S[Ta]=0,S[II]=!1;let x=()=>S[Ta]<S.remoteSettings.maxConcurrentStreams,I=!0;S.socket.once("session",O=>{this.tlsSessionCache.set(E,O)}),S.once("error",O=>{for(let{reject:U}of s)U(O);this.tlsSessionCache.delete(E)}),S.setTimeout(this.timeout,()=>{S.destroy()}),S.once("close",()=>{if(C){I&&this._freeSessionsCount--,this._sessionsCount--;let O=this.sessions[c];O.splice(O.indexOf(S),1),O.length===0&&delete this.sessions[c]}else{let O=new Error("Session closed without receiving a SETTINGS frame");O.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:U}of s)U(O);p()}this._tryToCreateNewSession(c,f)});let T=()=>{if(!(!(c in this.queue)||!x())){for(let O of S[Oc])if(O in this.queue[c]){let{listeners:U}=this.queue[c][O];for(;U.length!==0&&x();)U.shift().resolve(S);let V=this.queue[c];if(V[O].listeners.length===0&&(delete V[O],Object.keys(V).length===0)){delete this.queue[c];break}if(!x())break}}};S.on("origin",()=>{S[Oc]=S.originSet,x()&&(T(),uH(this.sessions[c],S))}),S.once("remoteSettings",()=>{if(S.ref(),S.unref(),this._sessionsCount++,h.destroyed){let O=new Error("Agent has been destroyed");for(let U of s)U.reject(O);S.destroy();return}S[Oc]=S.originSet;{let O=this.sessions;if(c in O){let U=O[c];U.splice(D$e(U,S,P$e),0,S)}else O[c]=[S]}this._freeSessionsCount+=1,C=!0,this.emit("session",S),T(),p(),S[Ta]===0&&this._freeSessionsCount>this.maxFreeSessions&&S.close(),s.length!==0&&(this.getSession(f,r,s),s.length=0),S.on("remoteSettings",()=>{T(),uH(this.sessions[c],S)})}),S[zue]=S.request,S.request=(O,U)=>{if(S[II])throw new Error("The session is gracefully closing. No new streams are allowed.");let V=S[zue](O,U);return S.ref(),++S[Ta],S[Ta]===S.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,V.once("close",()=>{if(I=x(),--S[Ta],!S.destroyed&&!S.closed&&(x$e(this.sessions[c],S),x()&&!S.closed)){I||(this._freeSessionsCount++,I=!0);let $=S[Ta]===0;$&&S.unref(),$&&(this._freeSessionsCount>this.maxFreeSessions||S[II])?S.close():(uH(this.sessions[c],S),T())}}),V}}catch(S){for(let x of s)x.reject(S);p()}};h.listeners=s,h.completed=!1,h.destroyed=!1,this.queue[c][f]=h,this._tryToCreateNewSession(c,f)})}request(t,r,s,a){return new Promise((n,c)=>{this.getSession(t,r,[{reject:c,resolve:f=>{try{n(f.request(s,a))}catch(p){c(p)}}}])})}createConnection(t,r){return e.connect(t,r)}static connect(t,r){r.ALPNProtocols=["h2"];let s=t.port||443,a=t.hostname||t.host;return typeof r.servername>"u"&&(r.servername=a),B$e.connect(s,a,r)}closeFreeSessions(){for(let t of Object.values(this.sessions))for(let r of t)r[Ta]===0&&r.close()}destroy(t){for(let r of Object.values(this.sessions))for(let s of r)s.destroy(t);for(let r of Object.values(this.queue))for(let s of Object.values(r))s.destroyed=!0;this.queue={}}get freeSessions(){return Xue({agent:this,isFree:!0})}get busySessions(){return Xue({agent:this,isFree:!1})}};sm.kCurrentStreamsCount=Ta;sm.kGracefullyClosing=II;$ue.exports={Agent:sm,globalAgent:new sm}});var pH=G((mOt,efe)=>{"use strict";var{Readable:k$e}=Ie("stream"),AH=class extends k$e{constructor(t,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=t,this.connection=t,this._dumped=!1}_destroy(t){this.req._request.destroy(t)}setTimeout(t,r){return this.req.setTimeout(t,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};efe.exports=AH});var hH=G((yOt,tfe)=>{"use strict";tfe.exports=e=>{let t={protocol:e.protocol,hostname:typeof e.hostname=="string"&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return typeof e.port=="string"&&e.port.length!==0&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}});var nfe=G((EOt,rfe)=>{"use strict";rfe.exports=(e,t,r)=>{for(let s of r)e.on(s,(...a)=>t.emit(s,...a))}});var sfe=G((IOt,ife)=>{"use strict";ife.exports=e=>{switch(e){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var afe=G((wOt,ofe)=>{"use strict";var CI=(e,t,r)=>{ofe.exports[t]=class extends e{constructor(...a){super(typeof r=="string"?r:r(a Line truncated
`).reverse(),f=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(`
`).reverse();for(;f.length!==0&&f[0]===c[0];)c.shift();this.stack=`${this.stack.slice(0,n)}${c.reverse().join(`
`)}${f.reverse().join(`
`)}`}}};_n.RequestError=ps;var nR=class extends ps{constructor(t){super(`Redirected ${t.options.maxRedirects} times. Aborting.`,{},t),this.name="MaxRedirectsError"}};_n.MaxRedirectsError=nR;var iR=class extends ps{constructor(t){super(`Response code ${t.statusCode} (${t.statusMessage})`,{},t.request),this.name="HTTPError"}};_n.HTTPError=iR;var sR=class extends ps{constructor(t,r){super(t.message,t,r),this.name="CacheError"}};_n.CacheError=sR;var oR=class extends ps{constructor(t,r){super(t.message,t,r),this.name="UploadError"}};_n.UploadError=oR;var aR=class extends ps{constructor(t,r,s){super(t.message,t,s),this.name="TimeoutError",this.event=t.event,this.timings=r}};_n.TimeoutError=aR;var XB=class extends ps{constructor(t,r){super(t.message,t,r),this.name="ReadError"}};_n.ReadError=XB;var lR=class extends ps{constructor(t){super(`Unsupported protocol "${t.url.protocol}"`,{},t),this.name="UnsupportedProtocolError"}};_n.UnsupportedProtocolError=lR;var Uet=["socket","connect","continue","information","upgrade","timeout"],cR=class extends Gfe.Duplex{constructor(t,r={},s){super({autoDestroy:!1,highWaterMark:0}),this[BI]=0,this[SI]=0,this.requestInitialized=!1,this[eR]=new Set,this.redirects=[],this[bI]=!1,this[tR]=!1,this[zB]=[],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 MH.IncomingMessage&&(this.options.headers={...h.headers,...this.options.headers})});let{json:c,body:f,form:p}=r;if((c||f||p)&&this._lockWrite(),_n.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(t,r,s)}catch(h){lt.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(h);return}(async()=>{var h;try{this.options.body instanceof met.ReadStream&&await Oet(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[Co])===null||h===void 0||h.destroy();return}for(let C of this[zB])C();this[zB].length=0,this.requestInitialized=!0}catch(E){if(E instanceof ps){this._beforeError(E);return}this.destroyed||this.destroy(E)}})()}static normalizeArguments(t,r,s){var a,n,c,f,p;let h=r;if(lt.default.object(t)&&!lt.default.urlInstance(t))r={...s,...t,...r};else{if(t&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...s,...r},t!==void 0&&(r.url=t),lt.default.urlInstance(r.url)&&(r.url=new v0.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),lt.assert.any([lt.default.string,lt.default.undefined],r.method),lt.assert.any([lt.default.object,lt.default.undefined],r.headers),lt.assert.any([lt.default.string,lt.default.urlInstance,lt.default.undefined],r.prefixUrl),lt.assert.any([lt.default.object,lt.default.undefined],r.cookieJar),lt.assert.any([lt.default.object,lt.default.string,lt.default.undefined],r.searchParams),lt.assert.any([lt.default.object,lt.default.string,lt.default.undefined],r.cache),lt.assert.any([lt.default.object,lt.default.number,lt.default.undefined],r.timeout),lt.assert.any([lt.default.object,lt.default.undefined],r.context),lt.assert.any([lt.default.object,lt.default.undefined],r.hooks),lt.assert.any([lt.default.boolean,lt.default.undefined],r.decompress),lt.assert.any([lt.default.boolean,lt.default.undefined],r.ignoreInvalidCookies),lt.assert.any([lt.default.boolean,lt.default.undefined],r.followRedirect),lt.assert.any([lt.default.number,lt.default.undefined],r.maxRedirects),lt.assert.any([lt.default.boolean,lt.default.undefined],r.throwHttpErrors),lt.assert.any([lt.default.boolean,lt.default.undefined],r.http2),lt.assert.any([lt.default.boolean,lt.default.undefined],r.allowGetBody),lt.assert.any([lt.default.string,lt.default.undefined],r.localAddress),lt.assert.any([Jfe.isDnsLookupIpVersion,lt.default.undefined],r.dnsLookupIpVersion),lt.assert.any([lt.default.object,lt.default.undefined],r.https),lt.assert.any([lt.default.boolean,lt.default.undefined],r.rejectUnauthorized),r.https&&(lt.assert.any([lt.default.boolean,lt.default.undefined],r.https.rejectUnauthorized),lt.assert.any([lt.default.function_,lt.default.undefined],r.https.checkServerIdentity),lt.assert.any([lt.default.string,lt.default.object,lt.default.array,lt.default.undefined],r.https.certificateAuthority),lt.assert.any([lt.default.string,lt.default.object,lt.default.array,lt.default.undefined],r.https.key),lt.assert.any([lt.default.string,lt.default.object,lt.default.array,lt.default.undefined],r.https.certificate),lt.assert.any([lt.default.string,lt.default.undefined],r.https.passphrase),lt.assert.any([lt.default.string,lt.default.buffer,lt.default.array,lt.default.undefined],r.httpLine truncated
`)[3];return vtt(t)}function tj(){return typeof gR.default.availableParallelism<"u"?gR.default.availableParallelism():Math.max(1,gR.default.cpus().length)}var gR,mtt,DAe,ytt,Ett,PAe,xAe,wtt,Btt,mR=Xe(()=>{bt();gR=et(Ie("os"));yR();Qc();mtt=Number(process.versions.node.split(".")[0]),DAe=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),ytt=typeof DAe<"u"?async e=>{try{return await rj(DAe,[e],{cwd:K.cwd()}),!0}catch{return!1}}:void 0,Ett="/usr/bin/ldd";wtt=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Btt=/\((\S*)(?::(\d+))(?::(\d+))\)/});function lj(e,t,r,s,a){let n=jB(r);if(s.isArray||s.type==="ANY"&&Array.isArray(n))return Array.isArray(n)?n.map((c,f)=>nj(e,`${t}[${f}]`,c,s,a)):String(n).split(/,/).map(c=>nj(e,t,c,s,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings "${t}" cannot be an array`);return nj(e,t,r,s,a)}function nj(e,t,r,s,a){let n=jB(r);switch(s.type){case"ANY":return LQ(n);case"SHAPE":return xtt(e,t,r,s,a);case"MAP":return ktt(e,t,r,s,a)}if(n===null&&!s.isNullable&&s.default!==null)throw new Error(`Non-nullable configuration settings "${t}" cannot be set to null`);if("values"in s&&s.values?.includes(n))return n;let f=(()=>{if(s.type==="BOOLEAN"&&typeof n!="string")return bB(n);if(typeof n!="string")throw new Error(`Expected configuration setting "${t}" to be a string, got ${typeof n}`);let p=Jk(n,{env:e.env});switch(s.type){case"ABSOLUTE_PATH":{let h=a,E=Q8(r);return E&&E[0]!=="<"&&(h=K.dirname(E)),K.resolve(h,Ae.toPortablePath(p))}case"LOCATOR_LOOSE":return Np(p,!1);case"NUMBER":return parseInt(p);case"LOCATOR":return Np(p);case"BOOLEAN":return bB(p);case"DURATION":return zk(p,s.unit);default:return p}})();if("values"in s&&s.values&&!s.values.includes(f))throw new Error(`Invalid value, expected one of ${s.values.join(", ")}`);return f}function xtt(e,t,r,s,a){let n=jB(r);if(typeof n!="object"||Array.isArray(n))throw new st(`Object configuration settings "${t}" must be an object`);let c=cj(e,s,{ignoreArrays:!0});if(n===null)return c;for(let[f,p]of Object.entries(n)){let h=`${t}.${f}`;if(!s.properties[f])throw new st(`Unrecognized configuration settings found: ${t}.${f} - run "yarn config" to see the list of settings supported in Yarn`);c.set(f,lj(e,h,p,s.properties[f],a))}return c}function ktt(e,t,r,s,a){let n=jB(r),c=new Map;if(typeof n!="object"||Array.isArray(n))throw new st(`Map configuration settings "${t}" must be an object`);if(n===null)return c;for(let[f,p]of Object.entries(n)){let h=s.normalizeKeys?s.normalizeKeys(f):f,E=`${t}['${h}']`,C=s.valueDefinition;c.set(h,lj(e,E,p,C,a))}return c}function cj(e,t,{ignoreArrays:r=!1}={}){switch(t.type){case"SHAPE":{if(t.isArray&&!r)return[];let s=new Map;for(let[a,n]of Object.entries(t.properties))s.set(a,cj(e,n));return s}case"MAP":return t.isArray&&!r?[]:new Map;case"ABSOLUTE_PATH":return t.default===null?null:e.projectCwd===null?Array.isArray(t.default)?t.default.map(s=>K.normalize(s)):K.isAbsolute(t.default)?K.normalize(t.default):t.isNullable?null:void 0:Array.isArray(t.default)?t.default.map(s=>K.resolve(e.projectCwd,s)):K.resolve(e.projectCwd,t.default);case"DURATION":return zk(t.default,t.unit);default:return t.default}}function IR(e,t,r){if(t.type==="SECRET"&&typeof e=="string"&&r.hideSecrets)return Ptt;if(t.type==="ABSOLUTE_PATH"&&typeof e=="string"&&r.getNativePaths)return Ae.fromPortablePath(e);if(t.isArray&&Array.isArray(e)){let s=[];for(let a of e)s.push(IR(a,t,r));return s}if(t.type==="MAP"&&e instanceof Map){if(e.size===0)return;let s=new Map;for(let[a,n]of e.entries()){let c=IR(n,t.valueDefinition,r);typeof c<"u"&&s.set(a,c)}return s}if(t.type==="SHAPE"&&e instanceof Map){if(e.size===0)return;let s=new Map;for(let[a,n]of e.entries()){let c=t.properties[a],f=IR(n,c,r);typeof f<"u"&&s.set(a,f)}return s}return e}function Qtt(){let e={};for(let[t,r]of Object.entries(process.env))t=t.toLowerCase(),t.startsWith(CR)&&(t=(0,QAe.default)(t.slice(CR.length)),e[t]=r);return e}function sj(){let e=`${CR}rc_filename`;for(let[t,r]of Object.entries(process.env))if(t.toLowerCase()===e&&typeof r=="string")return r;return oj}async function kAe(e){try{return await le.readFilePromise(e)}catch{return Buffer.of()}}async function Rtt(e,t){return Buffer.compare(...await Promise.all([kAe(e),kAe(t)]))===0}async function Ttt(e,t){let[r,s]=await Promise.all([le.statPromise(e),le.statPromise(t)]);return r.dev===s.dev&&r.ino===s.ino}async function Ntt({configuration:e,selfPath:t}){let r=e.get("yarnPath");return e.get("ignorePath")||r===null||r===t||await Ftt(r,t)?null:r}var QAe,Hp,RAe,TAe,FAe,ij,btt,rv,Dtt,jp,CR,oj,Ptt,DI,NAe,aj,wR,ER,Ftt,Je,nv=Xe(()=>{bt();Sc();QAe=et(zte()),Hp=et(Ng());jt();RAe=et(Gre()),TAe=Ie("module"),FAe=et(Mg()),ij=Ie("stream");Pce();fI();B8();v8();S8();_ce();b8();rm();Yce();UQ();Rc();w0();dR();Qc();mR();Lp();$o();btt=function(){if(!Hp.GITHUB_ACTIONS||!process.env.GITHUB_EVE Line truncated
`);return{stdout:n,stderr:c}}makeResolver(){let t=[];for(let r of this.plugins.values())for(let s of r.resolvers||[])t.push(new s);return new nm([new OQ,new Ii,...t])}makeFetcher(){let t=[];for(let r of this.plugins.values())for(let s of r.fetchers||[])t.push(new s);return new AI([new pI,new hI,...t])}getLinkers(){let t=[];for(let r of this.plugins.values())for(let s of r.linkers||[])t.push(new s);return t}getSupportedArchitectures(){let t=tv(),r=this.get("supportedArchitectures"),s=r.get("os");s!==null&&(s=s.map(c=>c==="current"?t.os:c));let a=r.get("cpu");a!==null&&(a=a.map(c=>c==="current"?t.cpu:c));let n=r.get("libc");return n!==null&&(n=Zl(n,c=>c==="current"?t.libc??Zl.skip:c)),{os:s,cpu:a,libc:n}}isInteractive({interactive:t,stdout:r}){return r.isTTY?t??this.get("preferInteractive"):!1}async getPackageExtensions(){if(this.packageExtensions!==null)return this.packageExtensions;this.packageExtensions=new Map;let t=this.packageExtensions,r=(s,a,{userProvided:n=!1}={})=>{if(!yl(s.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let c=new _t;c.load(a,{yamlCompatibilityMode:!0});let f=SB(t,s.identHash),p=[];f.push([s.range,p]);let h={status:"inactive",userProvided:n,parentDescriptor:s};for(let E of c.dependencies.values())p.push({...h,type:"Dependency",descriptor:E});for(let E of c.peerDependencies.values())p.push({...h,type:"PeerDependency",descriptor:E});for(let[E,C]of c.peerDependenciesMeta)for(let[S,x]of Object.entries(C))p.push({...h,type:"PeerDependencyMeta",selector:E,key:S,value:x})};await this.triggerHook(s=>s.registerPackageExtensions,this,r);for(let[s,a]of this.get("packageExtensions"))r(B0(s,!0),Kk(a),{userProvided:!0});return t}normalizeLocator(t){return yl(t.reference)?Js(t,`${this.get("defaultProtocol")}${t.reference}`):jp.test(t.reference)?Js(t,`${this.get("defaultProtocol")}${t.reference}`):t}normalizeDependency(t){return yl(t.range)?Un(t,`${this.get("defaultProtocol")}${t.range}`):jp.test(t.range)?Un(t,`${this.get("defaultProtocol")}${t.range}`):t}normalizeDependencyMap(t){return new Map([...t].map(([r,s])=>[r,this.normalizeDependency(s)]))}normalizePackage(t,{packageExtensions:r}){let s=TB(t),a=r.get(t.identHash);if(typeof a<"u"){let c=t.version;if(c!==null){for(let[f,p]of a)if(rA(c,f))for(let h of p)switch(h.status==="inactive"&&(h.status="redundant"),h.type){case"Dependency":typeof s.dependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",s.dependencies.set(h.descriptor.identHash,this.normalizeDependency(h.descriptor)));break;case"PeerDependency":typeof s.peerDependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",s.peerDependencies.set(h.descriptor.identHash,h.descriptor));break;case"PeerDependencyMeta":{let E=s.peerDependenciesMeta.get(h.selector);(typeof E>"u"||!Object.hasOwn(E,h.key)||E[h.key]!==h.value)&&(h.status="active",$l(s.peerDependenciesMeta,h.selector,()=>({}))[h.key]=h.value)}break;default:Q4(h)}}}let n=c=>c.scope?`${c.scope}__${c.name}`:`${c.name}`;for(let c of s.peerDependenciesMeta.keys()){let f=ka(c);s.peerDependencies.has(f.identHash)||s.peerDependencies.set(f.identHash,Un(f,"*"))}for(let c of s.peerDependencies.values()){if(c.scope==="types")continue;let f=n(c),p=Qa("types",f),h=fn(p);s.peerDependencies.has(p.identHash)||s.peerDependenciesMeta.has(h)||s.dependencies.has(p.identHash)||(s.peerDependencies.set(p.identHash,Un(p,"*")),s.peerDependenciesMeta.set(h,{optional:!0}))}return s.dependencies=new Map(Ks(s.dependencies,([,c])=>gl(c))),s.peerDependencies=new Map(Ks(s.peerDependencies,([,c])=>gl(c))),s}getLimit(t){return $l(this.limits,t,()=>(0,FAe.default)(this.get(t)))}async triggerHook(t,...r){for(let s of this.plugins.values()){let a=s.hooks;if(!a)continue;let n=t(a);n&&await n(...r)}}async triggerMultipleHooks(t,r){for(let s of r)await this.triggerHook(t,...s)}async reduceHook(t,r,...s){let a=r;for(let n of this.plugins.values()){let c=n.hooks;if(!c)continue;let f=t(c);f&&(a=await f(a,...s))}return a}async firstHook(t,...r){for(let s of this.plugins.values()){let a=s.hooks;if(!a)continue;let n=t(a);if(!n)continue;let c=await n(...r);if(typeof c<"u")return c}return null}}});var Yr={};Vt(Yr,{EndStrategy:()=>pj,ExecError:()=>BR,PipeError:()=>iv,execvp:()=>rj,pipevp:()=>qu});function am(e){return e!==null&&typeof e.fd=="number"}function uj(){}function fj(){for(let e of lm)e.kill()}async function qu(e,t,{cwd:r,env:s=process.env,strict:a=!1,stdin:n=null,stdout:c,stderr:f,end:p=2}){let h=["pipe","pipe","pipe"];n===null?h[0]="ignore":am(n)&&(h[0]=n),am(c)&&(h[1]=c),am(f)&&(h[2]=f);let E=(0,Aj.default)(e,t,{cwd:Ae.fromPortablePath(r),env:{...s,PWD:Ae.fromPortablePath(r)},stdio:h});lm.add(E),lm.size===1&&(process.on("SIGINT",uj),process.on("SIGTERM",fj)),!am(n)&&n!==null&&n.pipe(E.stdin),am(c)||E.stdout.pipe(c,{end:!1}),am(f)||E.stderr.pipe(f,{end:!1});let C=()=>{for(let S of new Set([c,f]))am(S)||S.end()};return new Promise((S,x)=>{E.on("error",I=>{lm.delete(E),lm.size===0&&(process.off("SIGINT",uj),pro 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 xI(r,[],{cwd:Ae.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}}});var ec,ZAe=Xe(()=>{ec=class extends Error{constructor(t){super(t),this.name="ShellError"}}});var kR={};Vt(kR,{fastGlobOptions:()=>tpe,isBraceExpansion:()=>Dj,isGlobPattern:()=>jtt,match:()=>Gtt,micromatchOptions:()=>xR});function jtt(e){if(!PR.default.scan(e,xR).isGlob)return!1;try{PR.default.parse(e,xR)}catch{return!1}return!0}function Gtt(e,{cwd:t,baseFs:r}){return(0,$Ae.default)(e,{...tpe,cwd:Ae.fromPortablePath(t),fs:fx(epe.default,new r0(r))})}function Dj(e){return PR.default.scan(e,xR).isBrace}var $Ae,epe,PR,xR,tpe,rpe=Xe(()=>{bt();$Ae=et(SQ()),epe=et(Ie("fs")),PR=et(Xo()),xR={strictBrackets:!0},tpe={onlyDirectories:!1,onlyFiles:!1}});function Pj(){}function xj(){for(let e of um)e.kill()}function ope(e,t,r,s){return a=>{let n=a[0]instanceof sA.Transform?"pipe":a[0],c=a[1]instanceof sA.Transform?"pipe":a[1],f=a[2]instanceof sA.Transform?"pipe":a[2],p=(0,ipe.default)(e,t,{...s,stdio:[n,c,f]});return um.add(p),um.size===1&&(process.on("SIGINT",Pj),process.on("SIGTERM",xj)),a[0]instanceof sA.Transform&&a[0].pipe(p.stdin),a[1]instanceof sA.Transform&&p.stdout.pipe(a[1],{end:!1}),a[2]instanceof sA.Transform&&p.stderr.pipe(a[2],{end:!1}),{stdin:p.stdin,promise:new Promise(h=>{p.on("error",E=>{switch(um.delete(p),um.size===0&&(process.off("SIGINT",Pj),process.off("SIGTERM",xj)),E.code){case"ENOENT":a[2].write(`command not found: ${e}
`),h(127);break;case"EACCES":a[2].write(`permission denied: ${e}
`),h(128);break;default:a[2].write(`uncaught error: ${E.message}
`),h(1);break}}),p.on("close",E=>{um.delete(p),um.size===0&&(process.off("SIGINT",Pj),process.off("SIGTERM",xj)),h(E!==null?E:129)})})}}}function ape(e){return t=>{let r=t[0]==="pipe"?new sA.PassThrough:t[0];return{stdin:r,promise:Promise.resolve().then(()=>e({stdin:r,stdout:t[1],stderr:t[2]}))}}}function QR(e,t){return Qj.start(e,t)}function npe(e,t=null){let r=new sA.PassThrough,s=new spe.StringDecoder,a="";return r.on("data",n=>{let c=s.write(n),f;do if(f=c.indexOf(`
`),f!==-1){let p=a+c.substring(0,f);c=c.substring(f+1),a="",e(t!==null?`${t} ${p}`:p)}while(f!==-1);a+=c}),r.on("end",()=>{let n=s.end();n!==""&&e(t!==null?`${t} ${n}`:n)}),r}function lpe(e,{prefix:t}){return{stdout:npe(r=>e.stdout.write(`${r}
`),e.stdout.isTTY?t:null),stderr:npe(r=>e.stderr.write(`${r}
`),e.stderr.isTTY?t:null)}}var ipe,sA,spe,um,Uc,kj,Qj,Rj=Xe(()=>{ipe=et(PU()),sA=Ie("stream"),spe=Ie("string_decoder"),um=new Set;Uc=class{constructor(t){this.stream=t}close(){}get(){return this.stream}},kj=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(t){this.stream=t}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},Qj=class e{constructor(t,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=t,this.implementation=r}static start(t,{stdin:r,stdout:s,stderr:a}){let n=new e(null,t);return n.stdin=r,n.stdout=s,n.stderr=a,n}pipeTo(t,r=1){let s=new e(this,t),a=new kj;return s.pipe=a,s.stdout=this.stdout,s.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),s}async exec(){let t=["ignore","ignore","ignore"];if(this.pipe)t[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");t[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,t[1]=r.get();let s;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");s=this.stderr,t[2]=s.get();let a=this.implementation(t);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),s.close(),n))}async run(){let t=[];for(let s=this;s;s=s.ancestor)t.push(s.exec());return(await Promise.all(t))[0]}}});var pv={};Vt(pv,{EntryCommand:()=>lv,ShellError:()=>ec,execute:()=>xI,globUtils:()=>kR});function cpe(e,t,r){let s=new tc.PassThrough({autoDestroy:!0});switch(e){case 0:(t&1)===1&&r.stdin.pipe(s,{end:!1}),(t&2)===2&&r.stdin instanceof tc.Writable&&s.pipe(r.stdin,{end:!1});break;case 1:(t&1)===1&&r.stdout.pipe(s,{end:!1}),(t&2)===2&&s.pipe(r.stdout,{end:!1});break;case 2:(t&1)===1&&r.stderr.pipe(s,{end:!1}),(t&2)===2&&s.pipe(r.stderr,{end:!1});break;default:throw new ec(`Bad file descriptor: "${e}"`)}return s}function TR(e,t={}){let r={...e,...t};return r.environment={...e.environment,...t.environment},r.variables={...e.variables,...t.variables},r}async function Ytt(e,t,r){let s=[],a=new tc.PassThrough;return a.on("data",n=>s.push(n)),await FR(e,t,TR(r,{stdout:a})),Buffer.concat(s).toString().replace(/[\r\n]+$/,"")}async function upe(e,t,r){let s=e.map(async n=>{let c=await fm(n.args,t,r);return{name:n.name,value:c.join(" ")}});return(await Promise.all(s)).reduce((n,c)=>(n[c.name]=c.value,n),{})}function RR(e){return e.match(/[^ \r\n\t]+/g)||[]}async function gpe(e,t,r,s,a=s){switch(e.name){case"$":s(String(process.pid));break;case"#":s(String(t.args.length));break;case"@":if(e.quoted)for(let n of t.args)a(n);else for(let n of t.args){let c=RR(n);for(let f=0;f<c.length-1;++f)a(c[f]);s(c[c.length-1])}break;case"*":{let n=t.args.join(" ");if(e.quoted)s(n);else for(let c of RR(n))a(c)}break;case"PPID":s(String(process.ppid));break;case"RANDOM":s(String(Math.floor(Math.random()*32768)));break;default:{let n=parseInt(e.name,10),c,f=Number.isFinite(n);if(f?n>=0&&n<t.args.length&&(c=t.args[n]):Object.hasOwn(r.variables,e.name)?c=r.variables[e.name]:Object.hasOwn(r.environment,e.name)&&(c=r.environment[e.name]),typeof c<"u"&&e.alternativeValue?c=(await fm(e.alternativeValue,t,r)).join(" "):typeof c>"u"&&(e.defaultValue?c=(await fm(e.defaultValue,t,r)).join(" "):e.alternativeValue&&(c="")),typeof c>"u")throw f?new ec(`Unbound argument #${n}`):new ec(`Unbound variable "${e.name}"`);if(e.quoted)s(c);else{let p=RR(c);for(let E=0;E<p.length-1;++E)a(p[E]);let h=p[p.length-1];typeof h<"u"&&s(h)}}break}}async function uv(e,t,r){if(e.type==="number"){if(Number.isInteger(e.value))return e.value;throw new Error(`Invalid number: "${e.value}", only integers are allowed`)}else if(e.type==="variable"){let s=[];await gpe({...e,quoted:!0},t,r,n=>s.push(n));let a=Number(s.join(" "));return Number.isNaN(a)?uv({type:"variable",name:s.join(" ")},t,r):uv({type:"number",value:a},t,r)}else return Wtt[e.type](await uv(e.left,t,r),await uv(e.right,t,r))}async function fm(e,t,r){let s=new Map,a=[],n=[],c=E=>{n.push(E)},f=()=>{n.length>0&&a.push(n.join("")),n=[]},p=E=>{c(E),f()},h=(E,C,S)=>{let x=JSON.stringify({type:E,fd:C}),I=s.get(x);typeof I>"u"&&s.set(x,I=[]),I.push(S)};for(let E of e){let C=!1;switch(E.type){case"redirection":{let S=await fm(E.args,t,r);for(let x of S)h(E.subtype,E.fd,x)}break;case"argument":for(let S of E.segments)switch(S.type){case"text":c(S.text);break;case"glob":c(S.pattern),C=!0;break;case"shell":{let x=await Ytt(S.shell,t,r);if(S.quoted)c(x);else{let I=RR(x);for(let T=0;T<I.length-1;++T)p(I[T]);c(I[I.length-1])}}break;case"variable":await gpe(S,t,r,c,p);break;case"arithmetic":c(String(await uv(S.arithmetic,t,r)));break}break}if(f(),C){let S=a.pop();if(typeof S>"u")throw new Error("Assertion failed: Expected a glob pa Line truncated
`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${p}, '${c(yE(e))}' has ended
`)})),0}return await Ape(e,t,r)}async function ztt(e,t,r,{background:s=!1}={}){let a,n=f=>{a=f,r.variables["?"]=String(f)},c=async f=>{try{return await Jtt(f.chain,t,r,{background:s&&typeof f.then>"u"})}catch(p){if(!(p instanceof ec))throw p;return r.stderr.write(`${p.message}
`),1}};for(n(await c(e));e.then;){if(r.exitCode!==null)return r.exitCode;switch(e.then.type){case"&&":a===0&&n(await c(e.then.line));break;case"||":a!==0&&n(await c(e.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${e.then.type}"`)}e=e.then.line}return a}async function FR(e,t,r){let s=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:c}of e){if(a=await ztt(n,t,r,{background:c==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=s,a}function mpe(e){switch(e.type){case"variable":return e.name==="@"||e.name==="#"||e.name==="*"||Number.isFinite(parseInt(e.name,10))||"defaultValue"in e&&!!e.defaultValue&&e.defaultValue.some(t=>Av(t))||"alternativeValue"in e&&!!e.alternativeValue&&e.alternativeValue.some(t=>Av(t));case"arithmetic":return Tj(e.arithmetic);case"shell":return Fj(e.shell);default:return!1}}function Av(e){switch(e.type){case"redirection":return e.args.some(t=>Av(t));case"argument":return e.segments.some(t=>mpe(t));default:throw new Error(`Assertion failed: Unsupported argument type: "${e.type}"`)}}function Tj(e){switch(e.type){case"variable":return mpe(e);case"number":return!1;default:return Tj(e.left)||Tj(e.right)}}function Fj(e){return e.some(({command:t})=>{for(;t;){let r=t.chain;for(;r;){let s;switch(r.type){case"subshell":s=Fj(r.subshell);break;case"command":s=r.envs.some(a=>a.args.some(n=>Av(n)))||r.args.some(a=>Av(a));break}if(s)return!0;if(!r.then)break;r=r.then.chain}if(!t.then)break;t=t.then.line}return!1})}async function xI(e,t=[],{baseFs:r=new Kn,builtins:s={},cwd:a=Ae.toPortablePath(process.cwd()),env:n=process.env,stdin:c=process.stdin,stdout:f=process.stdout,stderr:p=process.stderr,variables:h={},glob:E=kR}={}){let C={};for(let[I,T]of Object.entries(n))typeof T<"u"&&(C[I]=T);let S=new Map(qtt);for(let[I,T]of Object.entries(s))S.set(I,T);c===null&&(c=new tc.PassThrough,c.end());let x=hx(e,E);if(!Fj(x)&&x.length>0&&t.length>0){let{command:I}=x[x.length-1];for(;I.then;)I=I.then.line;let T=I.chain;for(;T.then;)T=T.then.chain;T.type==="command"&&(T.args=T.args.concat(t.map(O=>({type:"argument",segments:[{type:"text",text:O}]}))))}return await FR(x,{args:t,baseFs:r,builtins:S,initialStdin:c,initialStdout:f,initialStderr:p,glob:E},{cwd:a,environment:C,exitCode:null,procedures:{},stdin:c,stdout:f,stderr:p,variables:Object.assign({},h,{"?":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var ppe,hpe,tc,dpe,qtt,Wtt,cv=Xe(()=>{bt();Sc();ppe=et(LE()),hpe=Ie("os"),tc=Ie("stream"),dpe=Ie("timers/promises");XAe();ZAe();rpe();Rj();Rj();qtt=new Map([["cd",async([e=(0,hpe.homedir)(),...t],r,s)=>{let a=K.resolve(s.cwd,Ae.toPortablePath(e));if(!(await r.baseFs.statPromise(a).catch(c=>{throw c.code==="ENOENT"?new ec(`cd: no such file or directory: ${e}`):c})).isDirectory())throw new ec(`cd: not a directory: ${e}`);return s.cwd=a,0}],["pwd",async(e,t,r)=>(r.stdout.write(`${Ae.fromPortablePath(r.cwd)}
`),0)],[":",async(e,t,r)=>0],["true",async(e,t,r)=>0],["false",async(e,t,r)=>1],["exit",async([e,...t],r,s)=>s.exitCode=parseInt(e??s.variables["?"],10)],["echo",async(e,t,r)=>(r.stdout.write(`${e.join(" ")}
`),0)],["sleep",async([e],t,r)=>{if(typeof e>"u")throw new ec("sleep: missing operand");let s=Number(e);if(Number.isNaN(s))throw new ec(`sleep: invalid time interval '${e}'`);return await(0,dpe.setTimeout)(1e3*s,0)}],["unset",async(e,t,r)=>{for(let s of e)delete r.environment[s],delete r.variables[s];return 0}],["__ysh_run_procedure",async(e,t,r)=>{let s=r.procedures[e[0]];return await QR(s,{stdin:new Uc(r.stdin),stdout:new Uc(r.stdout),stderr:new Uc(r.stderr)}).run()}],["__ysh_set_redirects",async(e,t,r)=>{let s=r.stdin,a=r.stdout,n=r.stderr,c=[],f=[],p=[],h=0;for(;e[h]!=="--";){let C=e[h++],{type:S,fd:x}=JSON.parse(C),I=V=>{switch(x){case null:case 0:c.push(V);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},T=V=>{switch(x){case null:case 1:f.push(V);break;case 2:p.push(V);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},O=Number(e[h++]),U=h+O;for(let V=h;V<U;++h,++V)switch(S){case"<":I(()=>t.baseFs.createReadStream(K.resolve(r.cwd,Ae.toPortablePath(e[V]))));break;case"<<<":I(()=>{let $=new tc.PassThrough;return process.nextTick(()=>{$.write(`${e[V]}
`),$.end()}),$});break;case"<&":I(()=>cpe(Number(e[V]),1,r));break;case">":case">>":{let $=K.resolve(r.cwd,Ae.toPortablePath(e[V]));T($==="/dev/null"?new tc.Writable({autoDestroy:!0,emitClose:!0,write(ie,fe,ae){setImmediate(ae)}}):t.baseFs.createWriteStream($,S===">>"?{flags:"a"}:void 0))}break;case">&":T(cpe(Number(e[V]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${S}"`)}}if(c.length>0){let C=new tc.PassThrough;s=C;let S=x=>{if(x===c.length)C.end();else{let I=c[x]();I.pipe(C,{end:!1}),I.on("end",()=>{S(x+1)})}};S(0)}if(f.length>0){let C=new tc.PassThrough;a=C;for(let S of f)C.pipe(S)}if(p.length>0){let C=new tc.PassThrough;n=C;for(let S of p)C.pipe(S)}let E=await QR(fv(e.slice(h+1),t,r),{stdin:new Uc(s),stdout:new Uc(a),stderr:new Uc(n)}).run();return await Promise.all(f.map(C=>new Promise((S,x)=>{C.on("error",I=>{x(I)}),C.on("close",()=>{S()}),C.end()}))),await Promise.all(p.map(C=>new Promise((S,x)=>{C.on("error",I=>{x(I)}),C.on("close",()=>{S()}),C.end()}))),E}]]);Wtt={addition:(e,t)=>e+t,subtraction:(e,t)=>e-t,multiplication:(e,t)=>e*t,division:(e,t)=>Math.trunc(e/t)}});var ype=G((zMt,NR)=>{function Xtt(){var e=0,t=1,r=2,s=3,a=4,n=5,c=6,f=7,p=8,h=9,E=10,C=11,S=12,x=13,I=14,T=15,O=16,U=17,V=0,$=1,ie=2,fe=3,ae=4;function ge(d,Se){return 55296<=d.charCodeAt(Se)&&d.charCodeAt(Se)<=56319&&56320<=d.charCodeAt(Se+1)&&d.charCodeAt(Se+1)<=57343}function he(d,Se){Se===void 0&&(Se=0);var Be=d.charCodeAt(Se);if(55296<=Be&&Be<=56319&&Se<d.length-1){var me=Be,ue=d.charCodeAt(Se+1);return 56320<=ue&&ue<=57343?(me-55296)*1024+(ue-56320)+65536:me}if(56320<=Be&&Be<=57343&&Se>=1){var me=d.charCodeAt(Se-1),ue=Be;return 55296<=me&&me<=56319?(me-55296)*1024+(ue-56320)+65536:ue}return Be}function Ce(d,Se,Be){var me=[d].concat(Se).concat([Be]),ue=me[me.length-2],Z=Be,be=me.lastIndexOf(I);if(be>1&&me.slice(1,be).every(function(_){return _==s})&&[s,x,U].indexOf(d)==-1)return ie;var Qe=me.lastIndexOf(a);if(Qe>0&&me.slice(1,Qe).every(function(_){return _==a})&&[S,a].indexOf(ue)==-1)return me.filter(function(_){return _==a}).length%2==1?fe:ae;if(ue==e&&Z==t)return V;if(ue==r||ue==e||ue==t)return Z==I&&Se.every(function(_){return _==s})?ie:$;if(Z==r||Z==e||Z==t)return $;if(ue==c&&(Z==c||Z==f||Z==h||Z==E))return V;if((ue==h||ue==f)&&(Z==f||Z==p))return V;if((ue==E||ue==p)&&Z==p)return V;if(Z==s||Z==T)return V;if(Z==n)return V;if(ue==S)return V;var ot=me.indexOf(s)!=-1?me.lastIndexOf(s)-1:me.length-2;return[x,U].indexOf(me[ot])!=-1&&me.slice(ot+1,-1).every(function(_){return _==s})&&Z==I||ue==T&&[O,U].indexOf(Z)!=-1?V:Se.indexOf(a)!=-1?ie:ue==a&&Z==a?V:$}this.nextBreak=function(d,Se){if(Se===void 0&&(Se=0),Se<0)return 0;if(Se>=d.length-1)return d.length;for(var Be=Ee(he(d,Se)),me=[],ue=Se+1;ue<d.length;ue++)if(!ge(d,ue-1)){var Z=Ee(he(d,ue));if(Ce(Be,me,Z))return ue;me.push(Z)}return d.length},this.splitGraphemes=function(d){for(var Se=[],Be=0,me;(me=this.nextBreak(d,Be))<d.length;)Se.push(d.slice(Be,me)),Be=me;return Be<d.length&&Se.push(d.slice(Be)),Se},this.iterateGraphemes=function(d){var Se=0,Be={next:function(){var me,ue;return(ue=this.nextBreak(d,Se))<d.length?(me=d.slice(Se,ue),Se=ue,{value:me,done:!1}):Se<d.length?(me=d.slice(Se),Se=d.length,{value:me,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(Be[Symbol.iterator]=function(){return Be}),Be},this.countGraphemes=function(d){for(var Se=0,Be=0,me;(me=this.nextBreak(d,Be))<d.length;)Be=me,Se++;return Be<d.length&&Se++,Se};function Ee(d){return 1536<=d&&d<=1541||d==1757||d==1807||d==2274||d==3406||d==69821||70082<=d&&d<=70083||d==72250||72326<=d&&d<=72329||d==73030?S:d==13?e:d==10?t:0<=d&&d<=9||11<=d&&d<=12||14<=d&&d<=31||127<=d&&d<=159||d==173||d==1564||d==6158||d==8203||8206<=d&&d<=8207||d==8232||d==8233||8234<=d&&d<=8238||8288<=d&&d<=8292||d==8293||8294<=d&&d<=8303||55296<=d&&d<=57343||d==65279||65520<=d&&d<=65528||65529<=d&&d<=65531||113824<=d&&d<=113827||119155<=d&&d<=119162||d==917504||d==917505||917506<=d&&d<=917535||917632<=d&&d<=917759||918e3<=d&&d<=921599?r:768<=d&&d<=879||1155<=d&&d<=1159||1160<=d&&d<=1161||1425<=d&&d<=1469||d==1471||1473<=d&&d<=1474||1476<=d&&d<=1477||d==1479||1552<=d&&d<=1562||1611<=d&&d<=1631||d==1648||1750<=d&&d<=1756||1759<=d&&d<=1764||1767<=d&&d<=1768||1770<=d&&d<=1773||d==1809||1840<=d&&d<=1866||1958<=d&&d<=1968||2027<=d&&d<=2035||2070<=d&&d<=2073||2075<=d&&d<=2083||2085<=d&&d<=2087||2089<=d&&d<=2093||2137<=d&&d<=2139||2260<=d&&d<=2273||2275<=d&&d<=2306||d==2362||d==2364||2369<=d&&d<=2376||d==2381||2385<=d&&d<=2391||2402<=d&&d<=2403||d==2433||d==2492||d==2494||2497<=d&&d<=2500||d==2509||d==2519||2530<=d&&d<=2531||2561<=d&&d<=2562||d==2620||2625<=d&&d<=2626||2631<=d&&d<=2632||2635<=d&&d<=2637||d==2641||2672<=d&&d<=2673||d==2677||2689<=d&&d<=2690||d==2748||2753<=d&&d<=2757||2759<=d&&d<=2760||d==2765||2786<=d&&d<=2787||2810<=d&&d<=2815||d==2817||d==2876||d==2878||d==2879||2881<=d&&d<=2884||d==2893||d==2902||d==2903||2914<=d&&d<=2915||d==2946||d==3006||d==3008|| Line truncated
`,end:e=>`::endgroup::
`}:LR.default.TRAVIS?{start:e=>`travis_fold:start:${e}
`,end:e=>`travis_fold:end:${e}
`}:LR.default.GITLAB?{start:e=>`section_start:${Math.floor(Date.now()/1e3)}:${e.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${e}
`,end:e=>`section_end:${Math.floor(Date.now()/1e3)}:${e.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,Spe=P0!==null,Bpe=new Date,trt=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,rrt=e=>e,MR=rrt({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}}),nrt=trt&&Object.keys(MR).find(e=>{let t=MR[e];return!(t.date&&(t.date[0]!==Bpe.getDate()||t.date[1]!==Bpe.getMonth()+1))})||"default";Ft=class extends Io{constructor({configuration:r,stdout:s,json:a=!1,forceSectionAlignment:n=!1,includeNames:c=!0,includePrefix:f=!0,includeFooter:p=!0,includeLogs:h=!a,includeInfos:E=h,includeWarnings:C=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(xB(this,{configuration:r}),this.configuration=r,this.forceSectionAlignment=n,this.includeNames=c,this.includePrefix=f,this.includeFooter=p,this.includeInfos=E,this.includeWarnings=C,this.json=a,this.stdout=s,r.get("enableProgressBars")&&!a&&s.isTTY&&s.columns>22){let S=r.get("progressBarStyle")||nrt;if(!Object.hasOwn(MR,S))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=MR[S];let x=Math.min(this.getRecommendedLength(),80);this.progressMaxScaledSize=Math.floor(this.progressStyle.size*x/80)}}static async start(r,s){let a=new this(r),n=process.emitWarning;process.emitWarning=(c,f)=>{if(typeof c!="string"){let h=c;c=h.message,f=f??h.name}let p=typeof f<"u"?`${f}: ${c}`:c;a.reportWarning(0,p)},r.includeVersion&&a.reportInfo(0,Xg(r.configuration,`Yarn ${An}`,2));try{await s(a)}catch(c){a.reportExceptionOnce(c)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}getRecommendedLength(){let s=this.progressStyle!==null?this.stdout.columns-1:super.getRecommendedLength();return Math.max(40,s-12-this.indent*2)}startSectionSync({reportHeader:r,reportFooter:s,skipIfEmpty:a},n){let c={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(c):(c.action(),c.committed=!0);let f=Date.now();try{return n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(c),c.committed&&s?.(p-f)}}async startSectionPromise({reportHeader:r,reportFooter:s,skipIfEmpty:a},n){let c={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(c):(c.action(),c.committed=!0);let f=Date.now();try{return await n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(c),c.committed&&s?.(p-f)}}startTimerImpl(r,s,a){return{cb:typeof s=="function"?s:a,reportHeader:()=>{this.level+=1,this.reportInfo(null,`\u250C ${r}`),this.indent+=1,P0!==null&&!this.json&&this.includeInfos&&this.stdout.write(P0.start(r))},reportFooter:f=>{if(this.indent-=1,P0!==null&&!this.json&&this.includeInfos){this.stdout.write(P0.end(r));for(let p of this.timerFooter)p()}this.configuration.get("enableTimers")&&f>200?this.reportInfo(null,`\u2514 Completed in ${Gt(this.configuration,f,dt.DURATION)}`):this.reportInfo(null,"\u2514 Completed"),this.level-=1},skipIfEmpty:(typeof s=="function"?{}:s).skipIfEmpty}}startTimerSync(r,s,a){let{cb:n,...c}=this.startTimerImpl(r,s,a);return this.startSectionSync(c,n)}async startTimerPromise(r,s,a){let{cb:n,...c}=this.startTimerImpl(r,s,a);return this.startSectionPromise(c,n)}reportSeparator(){this.indent===0?this.writeLine(""):this.reportInfo(null,"")}reportInfo(r,s){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"",c=`${this.formatPrefix(n,"blueBright")}${s}`;this.json?this.reportJson({type:"info",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:s}):this.writeLine(c)}reportWarning(r,s){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:s}):this.writeLine(`${this.formatPrefix(n,"yellowBright")}${s}`)}reportError(r,s){this.errorCount+=1,this.timerFooter.push(()=>this.reportErrorImpl(r,s)),this.reportErrorImpl(r,s)}reportErrorImpl(r,s){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:s}):this.writeLine(`${this.formatPrefix(n,"redBright")}${s}`,{truncate:!1})}reportFold(r,s){if(!P0)return;let a=`${P0.start(r)}${s}${P0.end(r)}`;this.timerFooter.push(()=>this.stdout.write(a))}reportProgress(r){if(this.progressStyle===null)ret Line truncated
`),this.writeProgress()}writeLines(r,{truncate:s}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:s})}
`);this.writeProgress()}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let s of r)s.committed=!0,s.action()}clearProgress({delta:r=0,clear:s=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\x1B[${this.progress.size+r}A`),(r>0||s)&&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>wpe&&(this.progressFrame=(this.progressFrame+1)%Cpe.length,this.progressTime=r);let s=Cpe[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 c=this.formatName(null),f=c?`${c}: `:"",p=a.definition.title?` ${a.definition.title}`:"";this.stdout.write(`${Gt(this.configuration,"\u27A4","blueBright")} ${f}${s}${n}${p}
`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},wpe)}refreshProgress({delta:r=0,force:s=!1}={}){let a=!1,n=!1;if(s||this.progress.size===0)a=!0;else for(let c of this.progress.values()){let f=typeof c.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*c.definition.progress):void 0,p=c.lastScaledSize;c.lastScaledSize=f;let h=c.lastTitle;if(c.lastTitle=c.definition.title,f!==p||(n=h!==c.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:s}={}){return this.progressStyle===null&&(s=!1),typeof s>"u"&&(s=this.configuration.get("preferTruncatedLines")),s&&(r=(0,vpe.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?bpe(r,{configuration:this.configuration,json:this.json}):""}formatPrefix(r,s){return this.includePrefix?`${Gt(this.configuration,"\u27A4",s)} ${r}${this.formatIndent()}`:""}formatNameWithHyperlink(r){return this.includeNames?Nj(r,{configuration:this.configuration,json:this.json}):""}formatIndent(){return this.level>0||!this.forceSectionAlignment?"\u2502 ".repeat(this.indent):`${ert} `}}});var wn={};Vt(wn,{PackageManager:()=>Ppe,detectPackageManager:()=>xpe,executePackageAccessibleBinary:()=>Fpe,executePackageScript:()=>UR,executePackageShellcode:()=>Oj,executeWorkspaceAccessibleBinary:()=>urt,executeWorkspaceLifecycleScript:()=>Rpe,executeWorkspaceScript:()=>Qpe,getPackageAccessibleBinaries:()=>_R,getWorkspaceAccessibleBinaries:()=>Tpe,hasPackageScript:()=>art,hasWorkspaceScript:()=>Lj,isNodeScript:()=>Mj,makeScriptEnv:()=>gv,maybeExecuteWorkspaceLifecycleScript:()=>crt,prepareExternalProject:()=>ort});async function x0(e,t,r,s=[]){if(process.platform==="win32"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${s.map(n=>`"${n.replace('"','""')}"`).join(" ")} %*`;await le.writeFilePromise(K.format({dir:e,name:t,ext:".cmd"}),a)}await le.writeFilePromise(K.join(e,t),`#!/bin/sh
exec "${r}" ${s.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@"
`,{mode:493})}async function xpe(e){let t=await _t.tryFind(e);if(t?.packageManager){let s=QQ(t.packageManager);if(s?.name){let a=`found ${JSON.stringify({packageManager:t.packageManager})} in manifest`,[n]=s.reference.split(".");switch(s.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 le.readFilePromise(K.join(e,Ir.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'}:le.existsSync(K.join(e,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:le.existsSync(K.join(e,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function gv({project:e,locator:t,binFolder:r,ignoreCorepack:s,lifecycleScript:a,baseEnv:n=e?.configuration.env??process.env}){let c={};for(let[E,C]of Object.entries(n))typeof C<"u"&&(c[E.toLowerCase()!=="path"?E:"PATH"]=C);let f=Ae.fromPortablePath(r);c.BERRY_BIN_FOLDER=Ae.fromPortablePath(f);let p=process.env.COREPACK_ROOT&&!s?Ae.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([x0(r,"node",process.execPath),...An!==null?[x0(r,"run",process.execPath,[p,"run"]),x0(r,"yarn",process.execPath,[p]),x0(r,"yarnpkg",process.execPath,[p]),x0(r,"node-gyp",process.execPath,[p,"run","--top-level","node-gyp"])]:[]]),e&&(c.INIT_CWD=Ae.fromPortablePath(e.configuration.startingCwd),c.PROJECT_CWD=Ae.fromPortablePath(e.cwd)),c.PATH=c.PATH?`${f}${Ae.delimiter}${c.PATH}`:`${f}`,c.npm_execpath=`${f}${Ae.sep}yarn`,c.npm_node_execpath=`${f}${Ae.sep}node`,t){if(!e)throw new Error("Assertion failed: Missing project");let E=e.tryWorkspaceByLocator(t),C=E?E.manifest.version??"":e.storedPackages.get(t.locatorHash).version??"";c.npm_package_name=fn(t),c.npm_package_version=C;let S;if(E)S=E.cwd;else{let x=e.storedPackages.get(t.locatorHash);if(!x)throw new Error(`Package for ${Vr(e.configuration,t)} not found in the project`);let I=e.configuration.getLinkers(),T={project:e,report:new Ft({stdout:new k0.PassThrough,configuration:e.configuration})},O=I.find(U=>U.supportsPackage(x,T));if(!O)throw new Error(`The package ${Vr(e.configuration,x)} isn't supported by any of the available linkers`);S=await O.findPackageLocation(x,T)}c.npm_package_json=Ae.fromPortablePath(K.join(S,Ir.manifest))}let h=An!==null?`yarn/${An}`:`yarn/${Rp("@yarnpkg/core").version}-core`;return c.npm_config_user_agent=`${h} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(c.npm_lifecycle_event=a),e&&await e.configuration.triggerHook(E=>E.setupScriptEnvironment,e,c,async(E,C,S)=>await x0(r,E,C,S)),c}async function ort(e,t,{configuration:r,report:s,workspace:a=null,locator:n=null}){await srt(async()=>{await le.mktempPromise(async c=>{let f=K.join(c,"pack.log"),p=null,{stdout:h,stderr:E}=r.getSubprocessStreams(f,{prefix:Ae.fromPortablePath(e),report:s}),C=n&&ju(n)?aI(n):n,S=C?ml(C):"an external project";h.write(`Packing ${S} from sources
`);let x=await xpe(e),I;x!==null?(h.write(`Using ${x.packageManager} for bootstrap. Reason: ${x.reason}
`),I=x.packageManager):(h.write(`No package manager configuration detected; defaulting to Yarn
`),I="Yarn");let T=I==="Yarn"&&!x?.packageManagerField;await le.mktempPromise(async O=>{let U=await gv({binFolder:O,ignoreCorepack:T,baseEnv:{...process.env,COREPACK_ENABLE_AUTO_PIN:"0"}}),$=new Map([["Yarn Classic",async()=>{let fe=a!==null?["workspace",a]:[],ae=K.join(e,Ir.manifest),ge=await le.readFilePromise(ae),he=await qu(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed","--yarn-path"],{cwd:e,env:U,stdin:p,stdout:h,stderr:E,end:1});if(he.code!==0)return he.code;await le.writeFilePromise(ae,ge),await le.appendFilePromise(K.join(e,".npmignore"),`/.yarn
`),h.write(`
`),delete U.NODE_ENV;let Ce=await qu("yarn",["install"],{cwd:e,env:U,stdin:p,stdout:h,stderr:E,end:1});if(Ce.code!==0)return Ce.code;h.write(`
`);let Ee=await qu("yarn",[...fe,"pack","--filename",Ae.fromPortablePath(t)],{cwd:e,env:U,stdin:p,stdout:h,stderr:E});return Ee.code!==0?Ee.code:0}],["Yarn",async()=>{let fe=a!==null?["workspace",a]:[];U.YARN_ENABLE_INLINE_BUILDS="1";let ae=K.join(e,Ir.lockfile);await le.existsPromise(ae)||await le.writeFilePromise(ae,"");let ge=await qu("yarn",[...fe,"pack","--install-if-needed","--filename",Ae.fromPortablePath(t)],{cwd:e,env:U,stdin:p,stdout:h,stderr:E});return ge.code!==0?ge.code:0}],["npm",async()=>{if(a!==null){let Se=new k0.PassThrough,Be=zE(Se);Se.pipe(h,{end:!1});let me=await qu("npm",["--version"],{cwd:e,env:U,stdin:p,stdout:Se,stderr:E,end:0});if(Se.end(),me.code!==0)return h.end(),E.end(),me.code;let ue=(await Be).toString().trim();if(!rA(ue,">=7.x")){let Z=Qa(null,"npm"),be=Un(Z,ue),Qe=Un(Z,">=7.x");throw new Error(`Workspaces aren't supported by ${ai(r,be)}; please upgrade to ${ai(r,Qe)} (npm has been detected as the primary package manager for ${Gt(r,e,dt.PATH)})`)}}let fe=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 ae=await qu("npm",["install","--legacy-peer-deps"],{cwd:e,env:U,stdin:p,stdout:h,stderr:E,end:1});if(ae.code!==0)return ae.code;let ge=new k0.PassThrough,he=zE(ge);ge.pipe(h);let Ce=await qu("npm",["pack","--silent",...fe],{cwd:e,env:U,stdin:p,stdout:ge,stderr:E});if(Ce.code!==0)return Ce.code;let Ee=(await he).toString().trim().replace(/^.*\n/s,""),d=K.resolve(e,Ae.toPortablePath(Ee));return await le.renamePromise(d,t),0}]]).get(I);if(typeof $>"u")throw new Error("Assertion failed: Unsupported workflow");let ie=await $();if(!(ie===0||typeof ie>"u"))throw le.detachTemp(c),new Lt(58,`Packing the package failed (exit code ${ie}, logs can be found here: ${Gt(r,f,dt.PATH)})`)})})})}async function art(e,t,{project:r}){let s=r.tryWorkspaceByLocator(e);if(s!==null)return Lj(s,t);let a=r.storedPackages.get(e.locatorHash);if(!a)throw new Error(`Package for ${Vr(r.configuration,e)} not found in the project`);return await nA.openPromise(async n=>{let c=r.configuration,f=r.configuration.getLinkers(),p={project:r,report:new Ft({stdout:new k0.PassThrough,configuration:c})},h=f.find(x=>x.supportsPackage(a,p));if(!h)throw new Error(`The package ${Vr(r.configuration,a)} isn't supported by any of the available linkers`);let E=await h.findPackageLocation(a,p),C=new Pn(E,{baseFs:n});return(await _t.find(vt.dot,{baseFs:C})).scripts.has(t)})}async function UR(e,t,r,{cwd:s,project:a,stdin:n,stdout:c,stderr:f}){return await le.mktempPromise(async p=>{let{manifest:h,env:E,cwd:C}=await kpe(e,{project:a,binFolder:p,cwd:s,lifecycleScript:t}),S=h.scripts.get(t);if(typeof S>"u")return 1;let x=async()=>await xI(S,r,{cwd:C,env:E,stdin:n,stdout:c,stderr:f});return await(await a.configuration.reduceHook(T=>T.wrapScriptExecution,x,a,e,t,{script:S,args:r,cwd:C,env:E,stdin:n,stdout:c,stderr:f}))()})}async function Oj(e,t,r,{cwd:s,project:a,stdin:n,stdout:c,stderr:f}){return await le.mktempPromise(async p=>{let{env:h,cwd:E}=await kpe(e,{project:a,binFolder:p,cwd:s});return await xI(t,r,{cwd:E,env:h,stdin:n,stdout:c,stderr:f})})}async function lrt(e,{binFolder:t,cwd:r,lifecycleScript:s}){let a=await gv({project:e.project,locator:e.anchoredLocator,binFolder:t,lifecycleScript:s});return await Uj(t,await Tpe(e)),typeof r>"u"&&(r=K.dirname(await le.realpathPromise(K.join(e.cwd,"package.json")))),{manifest:e.manifest,binFolder:t,env:a,cwd:r}}async function kpe(e,{project:t,binFolder:r,cwd:s,lifecycleScript:a}){let n=t.tryWorkspaceByLocator(e);if(n!==null)return lrt(n,{binFolder:r,cwd:s,lifecycleScript:a});let c=t.storedPackages.get(e.locatorHash);if(!c)throw new Error(`Package for ${Vr(t.configuration,e)} not found in the project`);return await nA.openPromise(async f=>{let p=t.configuration,h=t.configuration.getLinkers(),E={project:t,report:new Ft({stdout:new k0.PassThrough,configuration:p})},C=h.find(O=>O.supportsPackage(c,E));if(!C)throw new Error(`The package ${Vr(t.configuration,c)} isn't supported by any of the available linkers`);let S=await gv({project:t,locator:e,binFolder:r,lifecycleScript:a});await Uj(r,await _R(e,{project:t}));let x=await C.findPackageLocation(c,E),I=new Pn(x,{baseFs:f}),T=await _t.find(vt.dot,{baseFs:I});return typeof s>"u"&&(s=x),{manifest:T,binFolder:r,env:S,cwd:s}})}async function Qpe(e,t,r,{cwd:s,stdin:a,stdout:n,stderr:c}){return await UR(e.anchoredLocator,t,r,{cwd:s,project:e.project,stdin:a,stdout:n,stderr:c})}function Lj(e,t){return e.manifest.scripts.has(t)}async function Rpe(e,t,{cwd:r,report:s}){let{configuration:a}=e.project,n=null;await le.mktempPromise(async c=>{let f=K.join(c,`${t}.log`),p=`# This file contains the result of Yarn calling the "${t}" lifecycle script inside a workspace ("${Ae.fromPortablePath(e.cwd)}")
`,{stdout:h,stderr:E}=a.getSubprocessStreams(f,{report:s,prefix:Vr(a,e.anchoredLocator),header:p});s.reportInfo(36,`Calling the "${t}" lifecycle script`);let C=await Qpe(e,t,[],{cwd:r,stdin:n,stdout:h,stderr:E});if(h.end(),E.end(),C!==0)throw le.detachTemp(c),new Lt(36,`${BB(t)} script failed (exit code ${Gt(a,C,dt.NUMBER)}, logs can be found here: ${Gt(a,f,dt.PATH)}); run ${Gt(a,`yarn ${t}`,dt.CODE)} to investigate`)})}async function crt(e,t,r){Lj(e,t)&&await Rpe(e,t,r)}function Mj(e){let t=K.extname(e);if(t.match(/\.[cm]?[jt]sx?$/))return!0;if(t===".exe"||t===".bin")return!1;let r=Buffer.alloc(4),s;try{s=le.openSync(e,"r")}catch{return!0}try{le.readSync(s,r,0,r.length,0)}finally{le.closeSync(s)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function _R(e,{project:t}){let r=t.configuration,s=new Map,a=t.storedPackages.get(e.locatorHash);if(!a)throw new Error(`Package for ${Vr(r,e)} not found in the project`);let n=new k0.Writable,c=r.getLinkers(),f={project:t,report:new Ft({configuration:r,stdout:n})},p=new Set([e.locatorHash]);for(let E of a.dependencies.values()){let C=t.storedResolutions.get(E.descriptorHash);if(!C)throw new Error(`Assertion failed: The resolution (${ai(r,E)}) should have been registered`);p.add(C)}let h=await Promise.all(Array.from(p,async E=>{let C=t.storedPackages.get(E);if(!C)throw new Error(`Assertion failed: The package (${E}) should have been registered`);if(C.bin.size===0)return Zl.skip;let S=c.find(I=>I.supportsPackage(C,f));if(!S)return Zl.skip;let x=null;try{x=await S.findPackageLocation(C,f)}catch(I){if(I.code==="LOCATOR_NOT_INSTALLED")return Zl.skip;throw I}return{dependency:C,packageLocation:x}}));for(let E of h){if(E===Zl.skip)continue;let{dependency:C,packageLocation:S}=E;for(let[x,I]of C.bin){let T=K.resolve(S,I);s.set(x,[C,Ae.fromPortablePath(T),Mj(T)])}}return s}async function Tpe(e){return await _R(e.anchoredLocator,{project:e.project})}async function Uj(e,t){await Promise.all(Array.from(t,([r,[,s,a]])=>a?x0(e,r,process.execPath,[s]):x0(e,r,s,[])))}async function Fpe(e,t,r,{cwd:s,project:a,stdin:n,stdout:c,stderr:f,nodeArgs:p=[],packageAccessibleBinaries:h}){h??=await _R(e,{project:a});let E=h.get(t);if(!E)throw new Error(`Binary not found (${t}) for ${Vr(a.configuration,e)}`);return await le.mktempPromise(async C=>{let[,S]=E,x=await gv({project:a,locator:e,binFolder:C});await Uj(x.BERRY_BIN_FOLDER,h);let I=Mj(Ae.toPortablePath(S))?qu(process.execPath,[...p,S,...r],{cwd:s,env:x,stdin:n,stdout:c,stderr:f}):qu(S,r,{cwd:s,env:x,stdin:n,stdout:c,stderr:f}),T;try{T=await I}finally{await le.removePromise(x.BERRY_BIN_FOLDER)}return T.code})}async function urt(e,t,r,{cwd:s,stdin:a,stdout:n,stderr:c,packageAccessibleBinaries:f}){return await Fpe(e.anchoredLocator,t,r,{project:e.project,cwd:s,stdin:a,stdout:n,stderr:c,packageAccessibleBinaries:f})}var Dpe,k0,Ppe,irt,srt,_j=Xe(()=>{bt();bt();iA();cv();Xl();Dpe=et(Mg()),k0=Ie("stream");fI();Nc();dv();hv();yR();Rc();Qc();Lp();$o();Ppe=(a=>(a.Yarn1="Yarn Classic",a.Yarn2="Yarn",a.Npm="npm",a.Pnpm="pnpm",a))(Ppe||{});irt=2,srt=(0,Dpe.default)(irt)});function Bnt(e,t,r){let s=t,a=t?t.next:e.head,n=new q6(r,s,a,e);return n.next===void 0&&(e.tail=n),n.prev===void 0&&(e.head=n),e.length++,n}function vnt(e,t){e.tail=new q6(t,e.tail,void 0,e),e.head||(e.head=e.tail),e.length++}function Snt(e,t){e.head=new q6(t,void 0,e.head,e),e.tail||(e.tail=e.head),e.length++}var fhe,Oa,gT,O6,Ahe,M6,wm,yT,dhe,AT,U0,Upe,ghe,Cm,whe,Mv,Ku,y6,Dhe,b6,W6,The,V6,Bn,gs,K6,Hv,_I,Il,Mhe,Uv,J6,El,X6,frt,Art,Npe,prt,hrt,drt,qp,Yp,Q0,HR,mv,jR,Ope,GR,Lpe,Yu,QI,zs,yv,NI,Xs,Na,Zs,Hj,qR,na,es,jj,Gj,Mpe,qj,oA,Yj,YR,Ev,Am,rc,Iv,grt,mrt,yrt,Ert,phe,Irt,Crt,wrt,Dm,Brt,H0,zu,Cv,Jn,Wj,Jp,Vj,h6,d6,Qv,WR,UI,HI,Kj,OI,j0,Ju,N0,aA,LI,Jj,Kp,wv,zj,tT,pm,rT,Bm,L6,vrt,mT,hhe,Srt,brt,Drt,Prt,xrt,krt,Qrt,U6,_v,Rrt,uA,Trt,_pe,Frt,Xj,vm,VR,Zj,_6,mhe,Nrt,Ort,yhe,Lrt,Mrt,Ehe,Urt,_rt,Hrt,jrt,Grt,qrt,Yrt,Wrt,Ihe,Che,Vrt,nT,Krt,ET,H6,Sm,Jrt,hm,$j,zrt,O0,Xrt,Zrt,$rt,L0,ent,tnt,rnt,e6,nnt,dm,pT,int,snt,ont,ant,cn,vhe,IT,lnt,g6,m6,cnt,_c,gm,Wp,t6,Hpe,lA,Bv,R0,jpe,Ci,Vp,T0,r6,mm,ds,KR,JR,n6,Gpe,qpe,vv,i6,zR,RI,F0,XR,ym,ZR,$R,Ype,unt,bm,Rv,fnt,She,Ant,pnt,CT,bhe,hnt,Wpe,j6,wT,G6,dnt,gnt,Vpe,mnt,Phe,ynt,Kpe,Jpe,zpe,E6,Xpe,Sv,iT,I6,sT,C6,w6,B6,v6,M0,hT,S6,s6,cA,xhe,Ent,Int,Cnt,wnt,q6,Zpe,$pe,oT,bv,Wu,Em,Im,Dv,o6,Vu,a6,aT,ehe,D6,P6,lT,cT,the,l6,uT,khe,c6,BT,Y6,bnt,Dnt,Qhe,Rhe,Pnt,xnt,EUt,knt,Qnt,Rnt,Tnt,Fnt,Fhe,Nnt,Ont,Lnt,Nhe,x6,dT,Mnt,Ohe,Unt,Lhe,Uhe,vT,_nt,Hnt,k6,_he,jnt,Gnt,u6,rhe,TI,qnt,Ynt,Wnt,Vnt,Knt,Jnt,nhe,Q6,ihe,R6,Hc,T6,F6,fT,she,ohe,kv,ahe,lhe,f6,_0,$s,eT,che,FI,A6,p6,N6,Tv,Fv,Nv,Ov,znt,Lv,Xnt,Znt,$nt,uhe,z6,Pv,Hhe,eit,tit,IUt,rit,nit,iit,sit,oit,xv,CUt,ait,jhe=Xe(()=>{fhe=et(Ie("events"),1),Oa=et(Ie("fs"),1),gT=Ie("node:events"),O6=et(Ie("node:stream"),1),Ahe=Ie("node:string_decoder"),M6=et(Ie("node:path"),1),wm=et(Ie("node:fs"),1),yT=Ie("path"),dhe=Ie("events"),AT=et(Ie("assert"),1),U0=Ie("buffer"),Upe=et(Ie("zlib"),1), Line truncated
`,n=Buffer.byteLength(a),c=Math.floor(Math.log(n)/Math.log(10))+1;return n+c>=Math.pow(10,c)&&(c+=1),c+n+a}static parse(t,r,s=!1){return new Bhe(int(snt(t),r),s)}},int=(e,t)=>t?Object.assign({},t,e):e,snt=e=>e.replace(/\n$/,"").split(`
`).reduce(ont,Object.create(null)),ont=(e,t)=>{let r=parseInt(t,10);if(r!==Buffer.byteLength(t)+1)return e;t=t.slice((r+" ").length);let s=t.split("="),a=s.shift();if(!a)return e;let n=a.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),c=s.join("=");return e[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(Number(c)*1e3):/^[0-9]+$/.test(c)?+c:c,e},ant=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,cn=ant!=="win32"?e=>e:e=>e&&e.replace(/\\/g,"/"),vhe=class extends Dm{extended;globalExtended;header;startBlockSize;blockRemain;remain;type;meta=!1;ignore=!1;path;mode;uid;gid;uname;gname;size=0;mtime;atime;ctime;linkpath;dev;ino;nlink;invalid=!1;absolute;unsupported=!1;constructor(e,t,r){switch(super({}),this.pause(),this.extended=t,this.globalExtended=r,this.header=e,this.remain=e.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=e.type,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}if(!e.path)throw new Error("no path provided for tar.ReadEntry");this.path=cn(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=this.remain,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath?cn(e.linkpath):void 0,this.uname=e.uname,this.gname=e.gname,t&&this.#e(t),r&&this.#e(r,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let r=this.remain,s=this.blockRemain;return this.remain=Math.max(0,r-t),this.blockRemain=Math.max(0,s-t),this.ignore?!0:r>=t?super.write(e):super.write(e.subarray(0,r))}#e(e,t=!1){e.path&&(e.path=cn(e.path)),e.linkpath&&(e.linkpath=cn(e.linkpath)),Object.assign(this,Object.fromEntries(Object.entries(e).filter(([r,s])=>!(s==null||r==="path"&&t))))}},IT=(e,t,r,s={})=>{e.file&&(s.file=e.file),e.cwd&&(s.cwd=e.cwd),s.code=r instanceof Error&&r.code||t,s.tarCode=t,!e.strict&&s.recoverable!==!1?(r instanceof Error&&(s=Object.assign(r,s),r=r.message),e.emit("warn",t,r,s)):r instanceof Error?e.emit("error",Object.assign(r,s)):e.emit("error",Object.assign(new Error(`${t}: ${r}`),s))},lnt=1024*1024,g6=Buffer.from([31,139]),m6=Buffer.from([40,181,47,253]),cnt=Math.max(g6.length,m6.length),_c=Symbol("state"),gm=Symbol("writeEntry"),Wp=Symbol("readEntry"),t6=Symbol("nextEntry"),Hpe=Symbol("processEntry"),lA=Symbol("extendedHeader"),Bv=Symbol("globalExtendedHeader"),R0=Symbol("meta"),jpe=Symbol("emitMeta"),Ci=Symbol("buffer"),Vp=Symbol("queue"),T0=Symbol("ended"),r6=Symbol("emittedEnd"),mm=Symbol("emit"),ds=Symbol("unzip"),KR=Symbol("consumeChunk"),JR=Symbol("consumeChunkSub"),n6=Symbol("consumeBody"),Gpe=Symbol("consumeMeta"),qpe=Symbol("consumeHeader"),vv=Symbol("consuming"),i6=Symbol("bufferConcat"),zR=Symbol("maybeEnd"),RI=Symbol("writing"),F0=Symbol("aborted"),XR=Symbol("onDone"),ym=Symbol("sawValidEntry"),ZR=Symbol("sawNullBlock"),$R=Symbol("sawEOF"),Ype=Symbol("closeStream"),unt=()=>!0,bm=class extends dhe.EventEmitter{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[Vp]=[];[Ci];[Wp];[gm];[_c]="begin";[R0]="";[lA];[Bv];[T0]=!1;[ds];[F0]=!1;[ym];[ZR]=!1;[$R]=!1;[RI]=!1;[vv]=!1;[r6]=!1;constructor(e={}){super(),this.file=e.file||"",this.on(XR,()=>{(this[_c]==="begin"||this[ym]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(XR,e.ondone):this.on(XR,()=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||lnt,this.filter=typeof e.filter=="function"?e.filter:unt;let t=e.file&&(e.file.endsWith(".tar.br")||e.file.endsWith(".tbr"));this.brotli=!(e.gzip||e.zstd)&&e.brotli!==void 0?e.brotli:t?void 0:!1;let r=e.file&&(e.file.endsWith(".tar.zst")||e.file.endsWith(".tzst"));this.zstd=!(e.gzip||e.brotli)&&e.zstd!==void 0?e.zstd:r?!0:void 0,this.on("end",()=>this[Ype]()),typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onReadEntry=="function"&&this.on("entry",e.onReadEntry)}warn(e,t,r={}){IT(this,e,t,r)}[qpe](e,t){this[ym]===void 0&&(this[ym]=!1);let r;try{r=new Sm(e,t,this[lA],this[Bv])}catch(s){return this.warn("TAR_ENTRY_INVALID",s)}if(r.nullBlock)this[ZR]?(this[$R]=!0,this[_c]==="begin"&&(this[_c]="header"),this[mm]("eof")):(this[ZR]=!0,this[mm]("nullBlock"));else if(this[ZR]=!1,!r.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:r});else if(!r.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:r});else{let s=r.type;if(/^(Symbolic)?Link$/.test(s)&&!r.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:r});else if(!/^(Symbolic)?Link$/.test(s)&&!/^(Global)?ExtendedHeader$/.test Line truncated
`}),f},s})});var ts={};Vt(ts,{emitList:()=>hit,emitTree:()=>n0e,treeNodeToJson:()=>r0e,treeNodeToTreeify:()=>t0e});function t0e(e,{configuration:t}){let r={},s=0,a=(n,c)=>{let f=Array.isArray(n)?n.entries():Object.entries(n);for(let[p,h]of f){if(!h)continue;let{label:E,value:C,children:S}=h,x=[];typeof E<"u"&&x.push(Xg(t,E,2)),typeof C<"u"&&x.push(Gt(t,C[0],C[1])),x.length===0&&x.push(Xg(t,`${p}`,2));let I=x.join(": ").trim(),T=`\0${s++}\0`,O=c[`${T}${I}`]={};typeof S<"u"&&a(S,O)}};if(typeof e.children>"u")throw new Error("The root node must only contain children");return a(e.children,r),r}function r0e(e){let t=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 Zg(r.value[0],r.value[1])}let s=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,c]of s)c&&(a[dit(n)]=t(c));return typeof r.value>"u"?a:{value:Zg(r.value[0],r.value[1]),children:a}};return t(e)}function hit(e,{configuration:t,stdout:r,json:s}){let a=e.map(n=>({value:n}));n0e({children:a},{configuration:t,stdout:r,json:s})}function n0e(e,{configuration:t,stdout:r,json:s,separators:a=0}){if(s){let c=Array.isArray(e.children)?e.children.values():Object.values(e.children??{});for(let f of c)f&&r.write(`${JSON.stringify(r0e(f))}
`);return}let n=(0,e0e.asTree)(t0e(e,{configuration:t}),!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 c=0;c<2;++c)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 dit(e){return typeof e=="string"?e.replace(/^\0[0-9]+\0/,""):e}var e0e,i0e=Xe(()=>{e0e=et($he());Rc()});var ST,s0e=Xe(()=>{ST=class{constructor(t){this.releaseFunction=t;this.map=new Map}addOrCreate(t,r){let s=this.map.get(t);if(typeof s<"u"){if(s.refCount<=0)throw new Error(`Race condition in RefCountedMap. While adding a new key the refCount is: ${s.refCount} for ${JSON.stringify(t)}`);return s.refCount++,{value:s.value,release:()=>this.release(t)}}else{let a=r();return this.map.set(t,{refCount:1,value:a}),{value:a,release:()=>this.release(t)}}}release(t){let r=this.map.get(t);if(!r)throw new Error(`Unbalanced calls to release. No known instances of: ${JSON.stringify(t)}`);let s=r.refCount;if(s<=0)throw new Error(`Unbalanced calls to release. Too many release vs alloc refcount would become: ${s-1} of ${JSON.stringify(t)}`);s==1?(this.map.delete(t),this.releaseFunction(r.value)):r.refCount--}}});function qv(e){let t=e.match(git);if(!t?.groups)throw new Error("Assertion failed: Expected the checksum to match the requested pattern");let r=t.groups.cacheVersion?parseInt(t.groups.cacheVersion):null;return{cacheKey:t.groups.cacheKey??null,cacheVersion:r,cacheSpec:t.groups.cacheSpec??null,hash:t.groups.hash}}var o0e,iG,sG,bT,zr,git,oG=Xe(()=>{Ge();bt();bt();iA();o0e=Ie("crypto"),iG=et(Ie("fs"));s0e();Nc();w0();Qc();$o();sG=XE(process.env.YARN_CACHE_CHECKPOINT_OVERRIDE??process.env.YARN_CACHE_VERSION_OVERRIDE??9),bT=XE(process.env.YARN_CACHE_VERSION_OVERRIDE??10),zr=class e{constructor(t,{configuration:r,immutable:s=r.get("enableImmutableCache"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.refCountedZipFsCache=new ST(t=>{t.discardAndClose()});this.cacheId=`-${(0,o0e.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=t,this.immutable=s,this.check=a;let{cacheSpec:n,cacheKey:c}=e.getCacheKey(r);this.cacheSpec=n,this.cacheKey=c}static async find(t,{immutable:r,check:s}={}){let a=new e(t.get("cacheFolder"),{configuration:t,immutable:r,check:s});return await a.setup(),a}static getCacheKey(t){let r=t.get("compressionLevel"),s=r!=="mixed"?`c${r}`:"";return{cacheKey:[bT,s].join(""),cacheSpec:s}}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let t=`${this.configuration.get("globalFolder")}/cache`;return t!==this.cwd?t:null}getVersionFilename(t){return`${lI(t)}-${this.cacheKey}.zip`}getChecksumFilename(t,r){let a=qv(r).hash.slice(0,10);return`${lI(t)}-${a}.zip`}isChecksumCompatible(t){if(t===null)return!1;let{cacheVersion:r,cacheSpec:s}=qv(t);if(r===null||r<sG)return!1;let a=this.configuration.get("cacheMigrationMode");return!(r<bT&&a==="always"||s!==this.cacheSpec&&a!=="required-only")}getLocatorPath(t,r){return this.mirrorCwd===null?K.resolve(this.cwd,this.getVersionFilename(t)):r===null?K.resolve(this.cwd,this.getVersionFilename(t)):K.resolve(this.cwd,this.getChecksumFilename(t,r))}getLocatorMirrorPath(t){let r=this.mirrorCwd;return r!==null?K.resolve(r,this.getVersionFilename(t)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await le.existsPromise(this.cwd))throw new Lt(56,"Cache path does not exist.")}else{await le.mkdirPromise(this.cwd,{recursive:!0});let t=K.resolve(this.cwd,".gitignore");await le.changeFilePromise(t,`/.gitignore
*.flock
*.tmp
`)}(this.mirrorCwd||!this.immutable)&&await le.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(t,r,{onHit:s,onMiss:a,loader:n,...c}){let f=this.getLocatorMirrorPath(t),p=new Kn,h=()=>{let he=new hs,Ce=K.join(vt.root,E8(t));return he.mkdirSync(Ce,{recursive:!0}),he.writeJsonSync(K.join(Ce,Ir.manifest),{name:fn(t),mocked:!0}),he},E=async(he,{isColdHit:Ce,controlPath:Ee=null})=>{if(Ee===null&&c.unstablePackages?.has(t.locatorHash))return{isValid:!0,hash:null};let d=r&&!Ce?qv(r).cacheKey:this.cacheKey,Se=!c.skipIntegrityCheck||!r?`${d}/${await DQ(he)}`:r;if(Ee!==null){let me=!c.skipIntegrityCheck||!r?`${this.cacheKey}/${await DQ(Ee)}`:r;if(Se!==me)throw new Lt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}let Be=null;switch(r!==null&&Se!==r&&(this.check?Be="throw":qv(r).cacheKey!==qv(Se).cacheKey?Be="update":Be=this.configuration.get("checksumBehavior")),Be){case null:case"update":return{isValid:!0,hash:Se};case"ignore":return{isValid:!0,hash:r};case"reset":return{isValid:!1,hash:r};default:case"throw":throw new Lt(18,"The remote archive doesn't match the expected checksum")}},C=async he=>{if(!n)throw new Error(`Cache check required but no loader configured for ${Vr(this.configuration,t)}`);let Ce=await n(),Ee=Ce.getRealPath();Ce.saveAndClose(),await le.chmodPromise(Ee,420);let d=await E(he,{controlPath:Ee,isColdHit:!1});if(!d.isValid)throw new Error("Assertion failed: Expected a valid checksum");return d.hash},S=async()=>{if(f===null||!await le.existsPromise(f)){let he=await n(),Ce=he.getRealPath();return he.saveAndClose(),{source:"loader",path:Ce}}return{source:"mirror",path:f}},x=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${Vr(this.configuration,t)}`);if(this.immutable)throw new Lt(56,`Cache entry required but missing for ${Vr(this.configuration,t)}`);let{path:he,source:Ce}=await S(),{hash:Ee}=await E(he,{isColdHit:!0}),d=this.getLocatorPath(t,Ee),Se=[];Ce!=="mirror"&&f!==null&&Se.push(async()=>{let me=`${f}${this.cacheId}`;await le.copyFilePromise(he,me,iG.default.constants.COPYFILE_FICLONE),await le.chmodPromise(me,420),await le.renamePromise(me,f)}),(!c.mirrorWriteOnly||f===null)&&Se.push(async()=>{let me=`${d}${this.cacheId}`;await le.copyFilePromise(he,me,iG.default.constants.COPYFILE_FICLONE),await le.chmodPromise(me,420),await le.renamePromise(me,d)});let Be=c.mirrorWriteOnly?f??d:d;return await Promise.all(Se.map(me=>me())),[!1,Be,Ee]},I=async()=>{let Ce=(async()=>{let Ee=c.unstablePackages?.has(t.locatorHash),d=Ee||!r||this.isChecksumCompatible(r)?this.getLocatorPath(t,r):null,Se=d!==null?this.markedFiles.has(d)||await p.existsPromise(d):!1,Be=!!c.mockedPackages?.has(t.locatorHash)&&(!this.check||!Se),me=Be||Se,ue=me?s:a;if(ue&&ue(),me){let Z=null,be=d;if(!Be)if(this.check)Z=await C(be);else{let Qe=await E(be,{isColdHit:!1});if(Qe.isValid)Z=Qe.hash;else return x()}return[Be,be,Z]}else{if(this.immutable&&Ee)throw new Lt(56,`Cache entry required but missing for ${Vr(this.configuration,t)}; consider defining ${ce.pretty(this.configuration,"supportedArchitectures",ce.Type.CODE)} to cache packages for multiple systems`);return x()}})();this.mutexes.set(t.locatorHash,Ce);try{return await Ce}finally{this.mutexes.delete(t.locatorHash)}};for(let he;he=this.mutexes.get(t.locatorHash);)await he;let[T,O,U]=await I();T||this.markedFiles.add(O);let V=()=>this.refCountedZipFsCache.addOrCreate(O,()=>T?h():new hs(O,{baseFs:p,readOnly:!0})),$,ie=new AE(()=>T4(()=>($=V(),$.value),he=>`Failed to open the cache entry for ${Vr(this.configuration,t)}: ${he}`),K),fe=new Gf(O,{baseFs:ie,pathUtils:K}),ae=()=>{$?.release()},ge=c.unstablePackages?.has(t.locatorHash)?null:U;return[fe,ae,ge]}},git=/^(?:(?<cacheKey>(?<cacheVersion>[0-9]+)(?<cacheSpec>.*))\/)?(?<hash>.*)$/});var DT,a0e=Xe(()=>{DT=(r=>(r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE",r))(DT||{})});var mit,jI,aG=Xe(()=>{bt();Sc();Lp();$o();mit=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(e,t,r,s)=>`${r}#commit=${s}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(e,t,r="",s,a)=>`https://${r}github.com/${s}.git#commit=${a}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(e,t,r="",s,a)=>`https://${r}github.com/${s}.git#commit=${a}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,e=>`npm:${e}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,e=>`npm:${e}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,e=>`npm:${e}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(e,t)=>RQ({protocol:"npm:",source:null,selector:e,params:{__archiveUrl:t}})],[/^[^/]+\.tgz#[0-9a-f]+$/,e=>`npm:${e}`]],jI=class{constructor(t){this.resolver=t;this.resolutions=null}async setup(t,{report:r}){let s=K.join(t.cwd,Ir.loc Line truncated
`)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}reportFold(r,s){}async finalize(){this.errorCount>0&&(this.stdout.write(`
`),this.stdout.write(`${Gt(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command.
`),this.suggestInstall&&this.stdout.write(`${Gt(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 Nj(r,{configuration:this.configuration,json:!1})}}});var GI,lG=Xe(()=>{$o();GI=class{constructor(t){this.resolver=t}supportsDescriptor(t,r){return!!(r.project.storedResolutions.get(t.descriptorHash)||r.project.originalPackages.has(xQ(t).locatorHash))}supportsLocator(t,r){return!!(r.project.originalPackages.has(t.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(t,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(t,r,s){return t}getResolutionDependencies(t,r){return this.resolver.getResolutionDependencies(t,r)}async getCandidates(t,r,s){let a=s.project.storedResolutions.get(t.descriptorHash);if(a){let c=s.project.originalPackages.get(a);if(c)return[c]}let n=s.project.originalPackages.get(xQ(t).locatorHash);if(n)return[n];throw new Error("Resolution expected from the lockfile data")}async getSatisfying(t,r,s,a){let[n]=await this.getCandidates(t,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(t,r){let s=r.project.originalPackages.get(t.locatorHash);if(!s)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return s}}});function zp(){}function yit(e,t,r,s,a){for(var n=0,c=t.length,f=0,p=0;n<c;n++){var h=t[n];if(h.removed){if(h.value=e.join(s.slice(p,p+h.count)),p+=h.count,n&&t[n-1].added){var C=t[n-1];t[n-1]=t[n],t[n]=C}}else{if(!h.added&&a){var E=r.slice(f,f+h.count);E=E.map(function(x,I){var T=s[p+I];return T.length>x.length?T:x}),h.value=e.join(E)}else h.value=e.join(r.slice(f,f+h.count));f+=h.count,h.added||(p+=h.count)}}var S=t[c-1];return c>1&&typeof S.value=="string"&&(S.added||S.removed)&&e.equals("",S.value)&&(t[c-2].value+=S.value,t.pop()),t}function Eit(e){return{newPos:e.newPos,components:e.components.slice(0)}}function Iit(e,t){if(typeof e=="function")t.callback=e;else if(e)for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t}function f0e(e,t,r){return r=Iit(r,{ignoreWhitespace:!0}),pG.diff(e,t,r)}function Cit(e,t,r){return hG.diff(e,t,r)}function PT(e){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?PT=function(t){return typeof t}:PT=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},PT(e)}function cG(e){return vit(e)||Sit(e)||bit(e)||Dit()}function vit(e){if(Array.isArray(e))return uG(e)}function Sit(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function bit(e,t){if(e){if(typeof e=="string")return uG(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return uG(e,t)}}function uG(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,s=new Array(t);r<t;r++)s[r]=e[r];return s}function Dit(){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 fG(e,t,r,s,a){t=t||[],r=r||[],s&&(e=s(a,e));var n;for(n=0;n<t.length;n+=1)if(t[n]===e)return r[n];var c;if(Pit.call(e)==="[object Array]"){for(t.push(e),c=new Array(e.length),r.push(c),n=0;n<e.length;n+=1)c[n]=fG(e[n],t,r,s,a);return t.pop(),r.pop(),c}if(e&&e.toJSON&&(e=e.toJSON()),PT(e)==="object"&&e!==null){t.push(e),c={},r.push(c);var f=[],p;for(p in e)e.hasOwnProperty(p)&&f.push(p);for(f.sort(),n=0;n<f.length;n+=1)p=f[n],c[p]=fG(e[p],t,r,s,p);t.pop(),r.pop()}else c=e;return c}function A0e(e,t,r,s,a,n,c){c||(c={}),typeof c.context>"u"&&(c.context=4);var f=Cit(r,s,c);if(!f)return;f.push({value:"",lines:[]});function p(U){return U.map(function(V){return" "+V})}for(var h=[],E=0,C=0,S=[],x=1,I=1,T=function(V){var $=f[V],ie=$.lines||$.value.replace(/\n$/,"").split(`
`);if($.lines=ie,$.added||$.removed){var fe;if(!E){var ae=f[V-1];E=x,C=I,ae&&(S=c.context>0?p(ae.lines.slice(-c.context)):[],E-=S.length,C-=S.length)}(fe=S).push.apply(fe,cG(ie.map(function(me){return($.added?"+":"-")+me}))),$.added?I+=ie.length:x+=ie.length}else{if(E)if(ie.length<=c.context*2&&V<f.length-2){var ge;(ge=S).push.apply(ge,cG(p(ie)))}else{var he,Ce=Math.min(ie.length,c.context);(he=S).push.apply(he,cG(p(ie.slice(0,Ce))));var Ee={oldStart:E,oldLines:x-E+Ce,newStart:C,newLines:I-C+Ce,lines:S};if(V>=f.length-2&&ie.length<=c.context){var d=/\n$/.test(r),Se=/\n$/.test(s),Be=ie.length==0&&S.length>Ee.oldLines;!d&&Be&&r.length>0&&S.splice(Ee.oldLines,0,"\\ No newline at end of file"),(!d&&!Be||!Se)&&S.push("\\ No newline at end of file")}h.push(Ee),E=0,C=0,S=[]}x+=ie.length,I+=ie.length}},O=0;O<f.length;O++)T(O);return{oldFileName:e,newFileName:t,oldHeader:a,newHeader:n,hunks:h}}var T_t,c0e,u0e,pG,hG,wit,Bit,Pit,Yv,AG,dG=Xe(()=>{zp.prototype={diff:function(t,r){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=s.callback;typeof s=="function"&&(a=s,s={}),this.options=s;var n=this;function c(T){return a?(setTimeout(function(){a(void 0,T)},0),!0):T}t=this.castInput(t),r=this.castInput(r),t=this.removeEmpty(this.tokenize(t)),r=this.removeEmpty(this.tokenize(r));var f=r.length,p=t.length,h=1,E=f+p;s.maxEditLength&&(E=Math.min(E,s.maxEditLength));var C=[{newPos:-1,components:[]}],S=this.extractCommon(C[0],r,t,0);if(C[0].newPos+1>=f&&S+1>=p)return c([{value:this.join(r),count:r.length}]);function x(){for(var T=-1*h;T<=h;T+=2){var O=void 0,U=C[T-1],V=C[T+1],$=(V?V.newPos:0)-T;U&&(C[T-1]=void 0);var ie=U&&U.newPos+1<f,fe=V&&0<=$&&$<p;if(!ie&&!fe){C[T]=void 0;continue}if(!ie||fe&&U.newPos<V.newPos?(O=Eit(V),n.pushComponent(O.components,void 0,!0)):(O=U,O.newPos++,n.pushComponent(O.components,!0,void 0)),$=n.extractCommon(O,r,t,T),O.newPos+1>=f&&$+1>=p)return c(yit(n,O.components,r,t,n.useLongestToken));C[T]=O}h++}if(a)(function T(){setTimeout(function(){if(h>E)return a();x()||T()},0)})();else for(;h<=E;){var I=x();if(I)return I}},pushComponent:function(t,r,s){var a=t[t.length-1];a&&a.added===r&&a.removed===s?t[t.length-1]={count:a.count+1,added:r,removed:s}:t.push({count:1,added:r,removed:s})},extractCommon:function(t,r,s,a){for(var n=r.length,c=s.length,f=t.newPos,p=f-a,h=0;f+1<n&&p+1<c&&this.equals(r[f+1],s[p+1]);)f++,p++,h++;return h&&t.components.push({count:h}),t.newPos=f,p},equals:function(t,r){return this.options.comparator?this.options.comparator(t,r):t===r||this.options.ignoreCase&&t.toLowerCase()===r.toLowerCase()},removeEmpty:function(t){for(var r=[],s=0;s<t.length;s++)t[s]&&r.push(t[s]);return r},castInput:function(t){return t},tokenize:function(t){return t.split("")},join:function(t){return t.join("")}};T_t=new zp;c0e=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,u0e=/\S/,pG=new zp;pG.equals=function(e,t){return this.options.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e===t||this.options.ignoreWhitespace&&!u0e.test(e)&&!u0e.test(t)};pG.tokenize=function(e){for(var t=e.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),r=0;r<t.length-1;r++)!t[r+1]&&t[r+2]&&c0e.test(t[r])&&c0e.test(t[r+2])&&(t[r]+=t[r+2],t.splice(r+1,2),r--);return t};hG=new zp;hG.tokenize=function(e){var t=[],r=e.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var s=0;s<r.length;s++){var a=r[s];s%2&&!this.options.newlineIsToken?t[t.length-1]+=a:(this.options.ignoreWhitespace&&(a=a.trim()),t.push(a))}return t};wit=new zp;wit.tokenize=function(e){return e.split(/(\S.+?[.!?])(?=\s+|$)/)};Bit=new zp;Bit.tokenize=function(e){return e.split(/([{}:;,]|\s+)/)};Pit=Object.prototype.toString,Yv=new zp;Yv.useLongestToken=!0;Yv.tokenize=hG.tokenize;Yv.castInput=function(e){var t=this.options,r=t.undefinedReplacement,s=t.stringifyReplacer,a=s===void 0?function(n,c){return typeof c>"u"?r:c}:s;return typeof e=="string"?e:JSON.stringify(fG(e,null,null,a),a," ")};Yv.equals=function(e,t){return zp.prototype.equals.call(Yv,e.replace(/,([\r\n])/g,"$1"),t.replace(/,([\r\n])/g,"$1"))};AG=new zp;AG.tokenize=function(e){return e.slice()};AG.join=AG.removeEmpty=function(e){return e}});var xT,p0e=Xe(()=>{Nc();xT=class{constructor(t){this.resolver=t}supportsDescriptor(t,r){return this.resolver.supportsDescriptor(t,r)}supportsLocator(t,r){return this.resolver.supportsLocator(t,r)}shouldPersistResolution(t,r){return this.resolver.shouldPersistResolution(t,r)}bindDescriptor(t,r,s){return this.resolver.bindDescriptor(t,r,s)}getResolutionDependencies(t,r){return this.resolver.getResolutionDependencies(t,r)}async getCandidates(t,r,s){throw new Lt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(t,r,s,a){throw new Lt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(t,r){throw new Lt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}}}); Line truncated
`;await le.changeFilePromise(r,s,{automaticNewlines:!0}),this.manifest.raw=t}}});function Fit({project:e,allDescriptors:t,allResolutions:r,allPackages:s,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:c=new Map,peerWarnings:f=[],peerRequirementNodes:p=new Map,volatileDescriptors:h=new Set}){let E=new Map,C=[],S=new Map,x=new Map,I=new Map,T=new Map,O=new Map,U=new Map(e.workspaces.map(ae=>{let ge=ae.anchoredLocator.locatorHash,he=s.get(ge);if(typeof he>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[ge,TB(he)]})),V=()=>{let ae=le.mktempSync(),ge=K.join(ae,"stacktrace.log"),he=String(C.length+1).length,Ce=C.map((Ee,d)=>`${`${d+1}.`.padStart(he," ")} ${ml(Ee)}
`).join("");throw le.writeFileSync(ge,Ce),le.detachTemp(ae),new Lt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${Ae.fromPortablePath(ge)}`)},$=ae=>{let ge=r.get(ae.descriptorHash);if(typeof ge>"u")throw new Error("Assertion failed: The resolution should have been registered");let he=s.get(ge);if(!he)throw new Error("Assertion failed: The package could not be found");return he},ie=(ae,ge,he,{top:Ce,optional:Ee})=>{C.length>1e3&&V(),C.push(ge);let d=fe(ae,ge,he,{top:Ce,optional:Ee});return C.pop(),d},fe=(ae,ge,he,{top:Ce,optional:Ee})=>{if(Ee||n.delete(ge.locatorHash),a.has(ge.locatorHash))return;a.add(ge.locatorHash);let d=s.get(ge.locatorHash);if(!d)throw new Error(`Assertion failed: The package (${Vr(e.configuration,ge)}) should have been registered`);let Se=new Set,Be=new Map,me=[],ue=[],Z=[],be=[];for(let Qe of Array.from(d.dependencies.values())){if(d.peerDependencies.has(Qe.identHash)&&d.locatorHash!==Ce)continue;if(Fp(Qe))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");h.delete(Qe.descriptorHash);let ot=Ee;if(!ot){let Re=d.dependenciesMeta.get(fn(Qe));if(typeof Re<"u"){let ct=Re.get(null);typeof ct<"u"&&ct.optional&&(ot=!0)}}let _=r.get(Qe.descriptorHash);if(!_)throw new Error(`Assertion failed: The resolution (${ai(e.configuration,Qe)}) should have been registered`);let tt=U.get(_)||s.get(_);if(!tt)throw new Error(`Assertion failed: The package (${_}, resolved from ${ai(e.configuration,Qe)}) should have been registered`);if(tt.peerDependencies.size===0){ie(Qe,tt,new Map,{top:Ce,optional:ot});continue}let Ne,ke,De=new Set,je=new Map;me.push(()=>{Ne=m8(Qe,ge.locatorHash),ke=y8(tt,ge.locatorHash),d.dependencies.set(Qe.identHash,Ne),r.set(Ne.descriptorHash,ke.locatorHash),t.set(Ne.descriptorHash,Ne),s.set(ke.locatorHash,ke),Qp(T,ke.locatorHash).add(Ne.descriptorHash),Se.add(ke.locatorHash)}),ue.push(()=>{O.set(ke.locatorHash,je);for(let Re of ke.peerDependencies.values()){let Me=$l(Be,Re.identHash,()=>{let P=he.get(Re.identHash)??null,w=d.dependencies.get(Re.identHash);return!w&&NB(ge,Re)&&(ae.identHash===ge.identHash?w=ae:(w=Un(ge,ae.range),t.set(w.descriptorHash,w),r.set(w.descriptorHash,ge.locatorHash),h.delete(w.descriptorHash),P=null)),w||(w=Un(Re,"missing:")),{subject:ge,ident:Re,provided:w,root:!P,requests:new Map,hash:`p${As(ge.locatorHash,Re.identHash).slice(0,6)}`}}).provided;if(Me.range==="missing:"&&ke.dependencies.has(Re.identHash)){ke.peerDependencies.delete(Re.identHash);continue}if(je.set(Re.identHash,{requester:ke,descriptor:Re,meta:ke.peerDependenciesMeta.get(fn(Re)),children:new Map}),ke.dependencies.set(Re.identHash,Me),Fp(Me)){let P=r.get(Me.descriptorHash);Qp(I,P).add(ke.locatorHash)}S.set(Me.identHash,Me),Me.range==="missing:"&&De.add(Me.identHash)}ke.dependencies=new Map(Ks(ke.dependencies,([Re,ct])=>fn(ct)))}),Z.push(()=>{if(!s.has(ke.locatorHash))return;let Re=E.get(tt.locatorHash);typeof Re=="number"&&Re>=2&&V();let ct=E.get(tt.locatorHash),Me=typeof ct<"u"?ct+1:1;E.set(tt.locatorHash,Me),ie(Ne,ke,je,{top:Ce,optional:ot}),E.set(tt.locatorHash,Me-1)}),be.push(()=>{let Re=r.get(Ne.descriptorHash);if(typeof Re>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let ct=O.get(Re);if(typeof ct>"u")throw new Error("Assertion failed: Expected the peer requests to be registered");for(let Me of Be.values()){let P=ct.get(Me.ident.identHash);P&&(Me.requests.set(Ne.descriptorHash,P),p.set(Me.hash,Me),Me.root||he.get(Me.ident.identHash)?.children.set(Ne.descriptorHash,P))}if(s.has(ke.locatorHash))for(let Me of De)ke.dependencies.delete(Me)})}for(let Qe of[...me,...ue])Qe();for(let Qe of Se){Se.delete(Qe);let ot=s.get(Qe),_=As(aI(ot).locatorHash,...Array.from(ot.dependencies.values(),De=>{let je=De.range!=="missing:"?r.get(De.descriptorHash):"missing:";if(typeof je>"u")throw new Error(`Assertion failed: Expected the resolution for ${ai(e.configuration,De)} to have been registered`);return je===Ce?`${je} (top)`:je})),tt=x.get(_);if(typeof tt>"u"){x.set(_,ot);continue}let Ne=Qp(T,tt.locatorHash);for(let De of T.get(ot.locatorHash)??[])r.set(De,tt.locatorHash),Ne.add(De);s.delete(ot.locatorHash),a.delete(ot.locatorHash),Se.delete(ot.locatorHash);let ke=I.get(ot.locatorHash);if(ke!==void 0){let De=Qp(I,tt.locatorHash);for(let je of ke)De.add(je),Se.add(je)}}for(let Qe of[...Z,...be])Qe()};for(let ae of e.workspaces){let ge=ae.anchoredLocator;h.delete(ae.anchoredDescriptor.descriptorHash),ie(ae.anchoredDescriptor,ge,new Map,{top:ge.locatorHash,optional:!1})}for(let ae of p.values()){if(!ae.root)continue;let ge=s.get(ae.subject.locatorHash);if(typeof ge>"u")continue;for(let Ce of ae.requests.values()){let Ee=`p${As(ae.subject.locatorHash,fn(ae.ident),Ce.requester.locatorHash).slice(0,6)}`;c.set(Ee,{subject:ae.subject.locatorHash,requested:ae.ident,rootRequester:Ce.requester.locatorHash,allRequesters:Array.from(_B(Ce),d=>d.requester.locatorHash)})}let he=[..._B(ae)];if(ae.provided.range Line truncated
${[C,S,x].join(`
`)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let t=K.join(this.cwd,Ir.lockfile),r=this.configuration.get("defaultLanguageName");if(le.existsSync(t)){let s=await le.readFilePromise(t,"utf8");this.lockFileChecksum=g0e(s);let a=us(s);if(a.__metadata){let n=a.__metadata.version,c=a.__metadata.cacheKey;this.lockfileLastVersion=n,this.lockfileNeedsRefresh=n<RT;for(let f of Object.keys(a)){if(f==="__metadata")continue;let p=a[f];if(typeof p.resolution>"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${f})`);let h=Np(p.resolution,!0),E=new _t;E.load(p,{yamlCompatibilityMode:!0});let C=E.version,S=E.languageName||r,x=p.linkType.toUpperCase(),I=p.conditions??null,T=E.dependencies,O=E.peerDependencies,U=E.dependenciesMeta,V=E.peerDependenciesMeta,$=E.bin;if(p.checksum!=null){let fe=typeof c<"u"&&!p.checksum.includes("/")?`${c}/${p.checksum}`:p.checksum;this.storedChecksums.set(h.locatorHash,fe)}let ie={...h,version:C,languageName:S,linkType:x,conditions:I,dependencies:T,peerDependencies:O,dependenciesMeta:U,peerDependenciesMeta:V,bin:$};this.originalPackages.set(ie.locatorHash,ie);for(let fe of f.split(kit)){let ae=B0(fe);n<=6&&(ae=this.configuration.normalizeDependency(ae),ae=Un(ae,ae.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,"$1npm%3A"))),this.storedDescriptors.set(ae.descriptorHash,ae),this.storedResolutions.set(ae.descriptorHash,h.locatorHash)}}}else s.includes("yarn lockfile v1")&&(this.lockfileLastVersion=-1)}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let t=new Set,r=(0,QT.default)(4),s=async(a,n)=>{if(t.has(n))return a;t.add(n);let c=new qI(n,{project:this});await r(()=>c.setup());let f=a.then(()=>{this.addWorkspace(c)});return Array.from(c.workspacesCwds).reduce(s,f)};await s(Promise.resolve(),this.cwd)}addWorkspace(t){let r=this.workspacesByIdent.get(t.anchoredLocator.identHash);if(typeof r<"u")throw new Error(`Duplicate workspace name ${$i(this.configuration,t.anchoredLocator)}: ${Ae.fromPortablePath(t.cwd)} conflicts with ${Ae.fromPortablePath(r.cwd)}`);this.workspaces.push(t),this.workspacesByCwd.set(t.cwd,t),this.workspacesByIdent.set(t.anchoredLocator.identHash,t)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(t){K.isAbsolute(t)||(t=K.resolve(this.cwd,t)),t=K.normalize(t).replace(/\/+$/,"");let r=this.workspacesByCwd.get(t);return r||null}getWorkspaceByCwd(t){let r=this.tryWorkspaceByCwd(t);if(!r)throw new Error(`Workspace not found (${t})`);return r}tryWorkspaceByFilePath(t){let r=null;for(let s of this.workspaces)K.relative(s.cwd,t).startsWith("../")||r&&r.cwd.length>=s.cwd.length||(r=s);return r||null}getWorkspaceByFilePath(t){let r=this.tryWorkspaceByFilePath(t);if(!r)throw new Error(`Workspace not found (${t})`);return r}tryWorkspaceByIdent(t){let r=this.workspacesByIdent.get(t.identHash);return typeof r>"u"?null:r}getWorkspaceByIdent(t){let r=this.tryWorkspaceByIdent(t);if(!r)throw new Error(`Workspace not found (${$i(this.configuration,t)})`);return r}tryWorkspaceByDescriptor(t){if(t.range.startsWith(Ii.protocol)){let s=t.range.slice(Ii.protocol.length);if(s!=="^"&&s!=="~"&&s!=="*"&&!yl(s))return this.tryWorkspaceByCwd(s)}let r=this.tryWorkspaceByIdent(t);return r===null||(Fp(t)&&(t=FB(t)),!r.accepts(t.range))?null:r}getWorkspaceByDescriptor(t){let r=this.tryWorkspaceByDescriptor(t);if(r===null)throw new Error(`Workspace not found (${ai(this.configuration,t)})`);return r}tryWorkspaceByLocator(t){let r=this.tryWorkspaceByIdent(t);return r===null||(ju(t)&&(t=aI(t)),r.anchoredLocator.locatorHash!==t.locatorHash)?null:r}getWorkspaceByLocator(t){let r=this.tryWorkspaceByLocator(t);if(!r)throw new Error(`Workspace not found (${Vr(this.configuration,t)})`);return r}deleteDescriptor(t){this.storedResolutions.delete(t),this.storedDescriptors.delete(t)}deleteLocator(t){this.originalPackages.delete(t),this.storedPackages.delete(t),this.accessibleLocators.delete(t)}forgetResolution(t){if("descriptorHash"in t){let r=this.storedResolutions.get(t.descriptorHash);this.deleteDescriptor(t.descriptorHash);let s=new Set(this.storedResolutions.values());typeof r<"u"&&!s.has(r)&&this.deleteLocator(r)}if("locatorHash"in t){this.deleteLocator(t.locatorHash);for(let[r,s]of this.storedResolutions)s===t.locatorHash&&this.deleteDescriptor(r)}}forgetTransientResolutions(){let t=this.configuration.makeResolver(),r=new Map;for(let[s,a]of this.storedResolutions.entries()){let n=r.get(a);n||r.set(a,n=new Set),n.add(s)}for(let s of this.originalPackages.values()){let a;try{a=t.shouldPersistResolution(s,{project:this,resolver:t})}catch{a=!1}if(!a){this.deleteLocator(s.locatorHash);let n=r.get(s.locatorHash);if(n){r.delete(s.locatorHash);for(let c of n)this.deleteDescriptor(c)}}}}forgetVirtualResolutions(){for(let t of this.storedPackages.values())for(let[r,s]of t.dependencies)Fp(s)&&t.depLine truncated
`;switch(tt.type){case 0:Ne+=`# Script name: ${tt.script}
`;break;case 1:Ne+=`# Script code: ${tt.script}
`;break}let ke=null;if(!await le.mktempPromise(async je=>{let Re=K.join(je,"build.log"),{stdout:ct,stderr:Me}=this.configuration.getSubprocessStreams(Re,{header:Ne,prefix:Vr(this.configuration,Z),report:r}),P;try{switch(tt.type){case 0:P=await UR(Z,tt.script,[],{cwd:_,project:this,stdin:ke,stdout:ct,stderr:Me});break;case 1:P=await Oj(Z,tt.script,[],{cwd:_,project:this,stdin:ke,stdout:ct,stderr:Me});break}}catch(y){Me.write(y.stack),P=1}if(ct.end(),Me.end(),P===0)return!0;le.detachTemp(je);let w=`${Vr(this.configuration,Z)} couldn't be built successfully (exit code ${Gt(this.configuration,P,dt.NUMBER)}, logs can be found here: ${Gt(this.configuration,Re,dt.PATH)})`,D=this.optionalBuilds.has(Z.locatorHash);return D?r.reportInfo(9,w):r.reportError(9,w),Spe&&r.reportFold(Ae.fromPortablePath(Re),le.readFileSync(Re,"utf8")),D}))return!1}return!0});me.push(...ot,Promise.allSettled(ot).then(_=>{ie.delete(ue),_.every(tt=>tt.status==="fulfilled"&&tt.value===!0)&&Ee.set(Z.locatorHash,Qe)}))}if(await Mu(me),Be===ie.size){let ue=Array.from(ie).map(Z=>{let be=this.storedPackages.get(Z);if(!be)throw new Error("Assertion failed: The package should have been registered");return Vr(this.configuration,be)}).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: ${ue})`);break}}this.storedBuildState=Ee,this.skippedBuilds=O}async installWithNewReport(t,r){return(await Ft.start({configuration:this.configuration,json:t.json,stdout:t.stdout,forceSectionAlignment:!0,includeLogs:!t.json&&!t.quiet,includeVersion:!0},async a=>{await this.install({...r,report:a})})).exitCode()}async install(t){let r=this.configuration.get("nodeLinker");Je.telemetry?.reportInstall(r);let s=!1;if(await t.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{this.configuration.get("enableOfflineMode")&&t.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,C)=>{t.report.reportWarning(E,C)},reportError:(E,C)=>{t.report.reportError(E,C),s=!0}})}),s)return;let a=await this.configuration.getPackageExtensions();for(let E of a.values())for(let[,C]of E)for(let S of C)S.status="inactive";let n=K.join(this.cwd,Ir.lockfile),c=null;if(t.immutable)try{c=await le.readFilePromise(n,"utf8")}catch(E){throw E.code==="ENOENT"?new Lt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):E}await t.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(t)}),await t.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{Oit(this,t.report);for(let[,E]of a)for(let[,C]of E)for(let S of C)if(S.userProvided){let x=Gt(this.configuration,S,dt.PACKAGE_EXTENSION);switch(S.status){case"inactive":t.report.reportWarning(68,`${x}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":t.report.reportWarning(69,`${x}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(c!==null){let E=Ig(c,this.generateLockfile());if(E!==c){let C=A0e(n,n,c,E,void 0,void 0,{maxEditLength:100});if(C){t.report.reportSeparator();for(let S of C.hunks){t.report.reportInfo(null,`@@ -${S.oldStart},${S.oldLines} +${S.newStart},${S.newLines} @@`);for(let x of S.lines)x.startsWith("+")?t.report.reportError(28,Gt(this.configuration,x,dt.ADDED)):x.startsWith("-")?t.report.reportError(28,Gt(this.configuration,x,dt.REMOVED)):t.report.reportInfo(null,Gt(this.configuration,x,"grey"))}t.report.reportSeparator()}throw new Lt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let E of a.values())for(let[,C]of E)for(let S of C)S.userProvided&&S.status==="active"&&Je.telemetry?.reportPackageExtension(Zg(S,dt.PACKAGE_EXTENSION));await t.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(t)});let f=t.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],p=await Promise.all(f.map(async E=>PQ(E,{cwd:this.cwd})));(typeof t.persistProject>"u"||t.persistProject)&&await this.persist(),await t.report.startTimerPromise("Link step",async()=>{if(t.mode==="update-lockfile"){t.report.reportWarning(73,`Skipped due to ${Gt(this.configuration,"mode=update-lockfile",dt.CODE)}`);return}await this.linkEverything(t);let E=await Promise.all(f.map(async C=>PQ(C,{cwd:this.cwd})));for(let C=0;C<f.length;++C)p[C]!==E[C]&&t.report.reportError(64,`The checksum for ${f[C]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile();let h=!1;await t.report.startTimerPromise("Post-install validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(E=>E.validateProjectAfterInstall,this,{reportWarning:(E,C)=>{t.report.r Line truncated
`,`# Manual changes might be lost - proceed with caution!
`].join("")}
`+Al(r)}async persistLockfile(){let t=K.join(this.cwd,Ir.lockfile),r="";try{r=await le.readFilePromise(t,"utf8")}catch{}let s=this.generateLockfile(),a=Ig(r,s);a!==r&&(await le.writeFilePromise(t,a),this.lockFileChecksum=g0e(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let t=[];for(let c of Object.values(yG))t.push(...c);let r=zg(this,t),s=EG.default.serialize(r),a=As(s);if(this.installStateChecksum===a)return;let n=this.configuration.get("installStatePath");await le.mkdirPromise(K.dirname(n),{recursive:!0}),await le.writeFilePromise(n,await Rit(s)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:t=!0,restoreResolutions:r=!0,restoreBuildState:s=!0}={}){let a=this.configuration.get("installStatePath"),n;try{let c=await Tit(await le.readFilePromise(a));n=EG.default.deserialize(c),this.installStateChecksum=As(c)}catch{r&&await this.applyLightResolution();return}t&&typeof n.linkersCustomData<"u"&&(this.linkersCustomData=n.linkersCustomData),s&&Object.assign(this,zg(n,yG.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,zg(n,yG.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new Qi}),await this.persistInstallStateFile()}async persist(){let t=(0,QT.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>t(()=>r.persistManifest()))])}async cacheCleanup({cache:t,report:r}){if(this.configuration.get("enableGlobalCache"))return null;let s=new Set([".gitignore"]);if(!F8(t.cwd,this.cwd)||!await le.existsPromise(t.cwd))return null;let a=[];for(let c of await le.readdirPromise(t.cwd)){if(s.has(c))continue;let f=K.resolve(t.cwd,c);t.markedFiles.has(f)||(t.immutable?r.reportError(56,`${Gt(this.configuration,K.basename(f),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(le.lstatPromise(f).then(async p=>(await le.removePromise(f),p.size))))}if(a.length===0)return null;let n=await Promise.all(a);return{count:a.length,size:n.reduce((c,f)=>c+f,0)}}}});function Lit(e){let s=Math.floor(e.timeNow/864e5),a=e.updateInterval*864e5,n=e.state.lastUpdate??e.timeNow+a+Math.floor(a*e.randomInitialInterval),c=n+a,f=e.state.lastTips??s*864e5,p=f+864e5+8*36e5-e.timeZone,h=c<=e.timeNow,E=p<=e.timeNow,C=null;return(h||E||!e.state.lastUpdate||!e.state.lastTips)&&(C={},C.lastUpdate=h?e.timeNow:n,C.lastTips=f,C.blocks=h?{}:e.state.blocks,C.displayedTips=e.state.displayedTips),{nextState:C,triggerUpdate:h,triggerTips:E,nextTips:E?s*864e5:f}}var YI,E0e=Xe(()=>{bt();hv();w0();dR();Qc();Lp();YI=class{constructor(t,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.nextTips=0;this.displayedTips=[];this.shouldCommitTips=!1;this.configuration=t;let s=this.getRegistryPath();this.isNew=!le.existsSync(s),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(t){let r=new Set(this.displayedTips),s=f=>f&&An?rA(An,f):!1,a=t.map((f,p)=>p).filter(f=>t[f]&&s(t[f]?.selector));if(a.length===0)return null;let n=a.filter(f=>!r.has(f));if(n.length===0){let f=Math.floor(a.length*.2);this.displayedTips=f>0?this.displayedTips.slice(-f):[],n=a.filter(p=>!r.has(p))}let c=n[Math.floor(Math.random()*n.length)];return this.displayedTips.push(c),this.commitTips(),t[c]}reportVersion(t){this.reportValue("version",t.replace(/-git\..*/,"-git"))}reportCommandName(t){this.reportValue("commandName",t||"<none>")}reportPluginName(t){this.reportValue("pluginName",t)}reportProject(t){this.reportEnumerator("projectCount",t)}reportInstall(t){this.reportHit("installCount",t)}reportPackageExtension(t){this.reportValue("packageExtension",t)}reportWorkspaceCount(t){this.reportValue("workspaceCount",String(t))}reportDependencyCount(t){this.reportValue("dependencyCount",String(t))}reportValue(t,r){Qp(this.values,t).add(r)}reportEnumerator(t,r){Qp(this.enumerators,t).add(As(r))}reportHit(t,r="*"){let s=R4(this.hits,t),a=$l(s,r,()=>0);s.set(r,a+1)}getRegistryPath(){let t=this.configuration.get("globalFolder");return K.join(t,"telemetry.json")}sendReport(t){let r=this.getRegistryPath(),s;try{s=le.readJsonSync(r)}catch{s={}}let{nextState:a,triggerUpdate:n,triggerTips:c,nextTips:f}=Lit({state:s,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=f,this.displayedTips=s.displayedTips??[],a!==null)try{le.mkdirSync(K.dirname(r),{recursive:!0}),le.writeJsonSync(r,a)}catch{return!1}if(c&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),n){let p=s.blocks??{};if(Object.keys(p).length===0){let h=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${t}?ddsource=yarn`,E=C=>$H(h,C,{configuration:this.configuration}).catch(()=>{});for(let[C,S]of Object.entries(s.blocks??{})){if(Object.keys(S).length===0)continue;let x=S;x Line truncated
`),h=c.length;for(h>0&&c.includes("unstyle")&&(c=[...new Set(["unstyle",...c])].reverse());h-- >0;)f=r(e.styles[c[h]],f,p);return f},a=(n,c,f)=>{e.styles[n]=t({name:n,codes:c}),(e.keys[f]||(e.keys[f]=[])).push(n),Reflect.defineProperty(e,n,{configurable:!0,enumerable:!0,set(h){e.alias(n,h)},get(){let h=E=>s(E,h.stack);return Reflect.setPrototypeOf(h,e),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"),e.ansiRegex=jit,e.hasColor=e.hasAnsi=n=>(e.ansiRegex.lastIndex=0,typeof n=="string"&&n!==""&&e.ansiRegex.test(n)),e.alias=(n,c)=>{let f=typeof c=="string"?e[c]:c;if(typeof f!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");f.stack||(Reflect.defineProperty(f,"name",{value:n}),e.styles[n]=f,f.stack=[n]),Reflect.defineProperty(e,n,{configurable:!0,enumerable:!0,set(p){e.alias(n,p)},get(){let p=h=>s(h,p.stack);return Reflect.setPrototypeOf(p,e),p.stack=this.stack?this.stack.concat(f.stack):f.stack,p}})},e.theme=n=>{if(!Hit(n))throw new TypeError("Expected theme to be an object");for(let c of Object.keys(n))e.alias(c,n[c]);return e},e.alias("unstyle",n=>typeof n=="string"&&n!==""?(e.ansiRegex.lastIndex=0,n.replace(e.ansiRegex,"")):""),e.alias("noop",n=>n),e.none=e.clear=e.noop,e.stripColor=e.unstyle,e.symbols=S0e(),e.define=a,e};BG.exports=b0e();BG.exports.create=b0e});var ia=G(hn=>{"use strict";var Git=Object.prototype.toString,jc=Xu(),D0e=!1,vG=[],P0e={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};hn.longest=(e,t)=>e.reduce((r,s)=>Math.max(r,t?s[t].length:s.length),0);hn.hasColor=e=>!!e&&jc.hasColor(e);var NT=hn.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);hn.nativeType=e=>Git.call(e).slice(8,-1).toLowerCase().replace(/\s/g,"");hn.isAsyncFn=e=>hn.nativeType(e)==="asyncfunction";hn.isPrimitive=e=>e!=null&&typeof e!="object"&&typeof e!="function";hn.resolve=(e,t,...r)=>typeof t=="function"?t.call(e,...r):t;hn.scrollDown=(e=[])=>[...e.slice(1),e[0]];hn.scrollUp=(e=[])=>[e.pop(),...e];hn.reorder=(e=[])=>{let t=e.slice();return t.sort((r,s)=>r.index>s.index?1:r.index<s.index?-1:0),t};hn.swap=(e,t,r)=>{let s=e.length,a=r===s?0:r<0?s-1:r,n=e[t];e[t]=e[a],e[a]=n};hn.width=(e,t=80)=>{let r=e&&e.columns?e.columns:t;return e&&typeof e.getWindowSize=="function"&&(r=e.getWindowSize()[0]),process.platform==="win32"?r-1:r};hn.height=(e,t=20)=>{let r=e&&e.rows?e.rows:t;return e&&typeof e.getWindowSize=="function"&&(r=e.getWindowSize()[1]),r};hn.wordWrap=(e,t={})=>{if(!e)return e;typeof t=="number"&&(t={width:t});let{indent:r="",newline:s=`
`+r,width:a=80}=t,n=(s+r).match(/[^\S\n]/g)||[];a-=n.length;let c=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,f=e.trim(),p=new RegExp(c,"g"),h=f.match(p)||[];return h=h.map(E=>E.replace(/\n$/,"")),t.padEnd&&(h=h.map(E=>E.padEnd(a," "))),t.padStart&&(h=h.map(E=>E.padStart(a," "))),r+h.join(s)};hn.unmute=e=>{let t=e.stack.find(s=>jc.keys.color.includes(s));return t?jc[t]:e.stack.find(s=>s.slice(2)==="bg")?jc[t.slice(2)]:s=>s};hn.pascal=e=>e?e[0].toUpperCase()+e.slice(1):"";hn.inverse=e=>{if(!e||!e.stack)return e;let t=e.stack.find(s=>jc.keys.color.includes(s));if(t){let s=jc["bg"+hn.pascal(t)];return s?s.black:e}let r=e.stack.find(s=>s.slice(0,2)==="bg");return r?jc[r.slice(2).toLowerCase()]||e:jc.none};hn.complement=e=>{if(!e||!e.stack)return e;let t=e.stack.find(s=>jc.keys.color.includes(s)),r=e.stack.find(s=>s.slice(0,2)==="bg");if(t&&!r)return jc[P0e[t]||t];if(r){let s=r.slice(2).toLowerCase(),a=P0e[s];return a&&jc["bg"+hn.pascal(a)]||e}return jc.none};hn.meridiem=e=>{let t=e.getHours(),r=e.getMinutes(),s=t>=12?"pm":"am";t=t%12;let a=t===0?12:t,n=r<10?"0"+r:r;return a+":"+n+" "+s};hn.set=(e={},t="",r)=>t.split(".").reduce((s,a,n,c)=>{let f=c.length-1>n?s[a]||{}:r;return!hn.isObject(f)&&n<c.length-1&&(f={}),s[a]=f},e);hn.get=(e={},t="",r)=>{let s=e[t]==null?t.split(".").reduce((a,n)=>a&&a[n],e):e[t];return s??r};hn.mixin=(e,t)=>{if(!NT(e))return t;if(!NT(t))return e;for(let r of Object.keys(t)){let s=Object.getOwnPropertyDescriptor(t,r);if(s.hasOwnProperty("value"))if(e.hasOwnProperty(r)&&NT(s.value)){let a=Object.getOwnPropertyDescriptor(e,r);NT(a.value)?e[r]=hn.merge({},e[r],t[r]):Reflect.defineProperty(e,r,s)}else Reflect.defineProperty(e,r,s);else Reflect.defineProperty(e,r,s)}return e};hn.merge=(...e)=>{let t={};for(let r of e)hn.mixin(t,r);return t};hn.mixinEmitter=(e,t)=>{let r=t.constructor.prototype;for(let s of Object.keys(r)){let a=r[s];typeof a=="function"?hn.define(e,s,a.bind(t)):hn.define(e,s,a)}};hn.onExit=e=>{let t=(r,s)=>{D0e||(D0e=!0,vG.forEach(a=>a()),r===!0&&process.exit(128+s))};vG.length===0&&(process.once("SIGTERM",t.bind(null,!0,15)),process.once("SIGINT",t.bind(null,!0,2)),process.once("exit",t)),vG.push(e)};hn.define=(e,t,r)=>{Reflect.defineProperty(e,t,{value:r})};hn.defineExport=(e,t,r)=>{let s;Reflect.defineProperty(e,t,{enumerable:!0,configurable:!0,set(a){s=a},get(){return s?s():r()}})}});var x0e=G(JI=>{"use strict";JI.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"};JI.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};JI.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};JI.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};JI.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 R0e=G((u3t,Q0e)=>{"use strict";var k0e=Ie("readline"),qit=x0e(),Yit=/^(?:\x1b)([a-zA-Z0-9])$/,Wit=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,Vit={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 Kit(e){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e)}function Jit(e){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e)}var OT=(e="",t={})=>{let r,s={name:t.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:e,raw:e,...t};if(Buffer.isBuffer(e)?e[0]>127&&e[1]===void 0?(e[0]-=128,e="\x1B"+String(e)):e=String(e):e!==void 0&&typeof e!="string"?e=String(e):e||(e=s.sequence||""),s.sequence=s.sequence||e||s.name,e==="\r")s.raw=void 0,s.name="return";else if(e===`
`)s.name="enter";else if(e===" ")s.name="tab";else if(e==="\b"||e==="\x7F"||e==="\x1B\x7F"||e==="\x1B\b")s.name="backspace",s.meta=e.charAt(0)==="\x1B";else if(e==="\x1B"||e==="\x1B\x1B")s.name="escape",s.meta=e.length===2;else if(e===" "||e==="\x1B ")s.name="space",s.meta=e.length===2;else if(e<="")s.name=String.fromCharCode(e.charCodeAt(0)+97-1),s.ctrl=!0;else if(e.length===1&&e>="0"&&e<="9")s.name="number";else if(e.length===1&&e>="a"&&e<="z")s.name=e;else if(e.length===1&&e>="A"&&e<="Z")s.name=e.toLowerCase(),s.shift=!0;else if(r=Yit.exec(e))s.meta=!0,s.shift=/^[A-Z]$/.test(r[1]);else if(r=Wit.exec(e)){let a=[...e];a[0]==="\x1B"&&a[1]==="\x1B"&&(s.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),c=(r[3]||r[5]||1)-1;s.ctrl=!!(c&4),s.meta=!!(c&10),s.shift=!!(c&1),s.code=n,s.name=Vit[n],s.shift=Kit(n)||s.shift,s.ctrl=Jit(n)||s.ctrl}return s};OT.listen=(e={},t)=>{let{stdin:r}=e;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let s=k0e.createInterface({terminal:!0,input:r});k0e.emitKeypressEvents(r,s);let a=(f,p)=>t(f,OT(f,p),s),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a),s.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener("keypress",a),s.pause(),s.close()}};OT.action=(e,t,r)=>{let s={...qit,...r};return t.ctrl?(t.action=s.ctrl[t.name],t):t.option&&s.option?(t.action=s.option[t.name],t):t.shift?(t.action=s.shift[t.name],t):(t.action=s.keys[t.name],t)};Q0e.exports=OT});var F0e=G((f3t,T0e)=>{"use strict";T0e.exports=e=>{e.timers=e.timers||{};let t=e.options.timers;if(t)for(let r of Object.keys(t)){let s=t[r];typeof s=="number"&&(s={interval:s}),zit(e,r,s)}};function zit(e,t,r={}){let s=e.timers[t]={name:t,start:Date.now(),ms:0,tick:0},a=r.interval||120;s.frames=r.frames||[],s.loading=!0;let n=setInterval(()=>{s.ms=Date.now()-s.start,s.tick++,e.render()},a);return s.stop=()=>{s.loading=!1,clearInterval(n)},Reflect.defineProperty(s,"interval",{value:n}),e.once("close",()=>s.stop()),s.stop}});var O0e=G((A3t,N0e)=>{"use strict";var{define:Xit,width:Zit}=ia(),SG=class{constructor(t){let r=t.options;Xit(this,"_prompt",t),this.type=t.type,this.name=t.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=Zit(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=t.symbols,this.styles=t.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let t={...this};return t.status=this.status,t.buffer=Buffer.from(t.buffer),delete t.clone,t}set color(t){this._color=t}get color(){let t=this.prompt.styles;if(this.cancelled)return t.cancelled;if(this.submitted)return t.submitted;let r=this._color||t[this.status];return typeof r=="function"?r:t.pending}set loading(t){this._loading=t}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};N0e.exports=SG});var M0e=G((p3t,L0e)=>{"use strict";var bG=ia(),wo=Xu(),DG={default:wo.noop,noop:wo.noop,set inverse(e){this._inverse=e},get inverse(){return this._inverse||bG.inverse(this.primary)},set complement(e){this._complement=e},get complement(){return this._complement||bG.complement(this.primary)},primary:wo.cyan,success:wo.green,danger:wo.magenta,strong:wo.bold,warning:wo.yellow,muted:wo.dim,disabled:wo.gray,dark:wo.dim.gray,underline:wo.underline,set info(e){this._info=e},get info(){return this._info||this.primary},set em(e){this._em=e},get em(){return this._em||this.primary.underline},set heading(e){this._heading=e},get heading(){return this._heading||this.muted.underline},set pending(e){this._pending=e},get pending(){return this._pending||this.primary},set submitted(e){this._submitted=e},get submitted(){return this._submitted||this.success},set cancelled(e){this._cancelled=e},get cancelled(){return this._cancelled||this.danger},set typing(e){this._typing=e},get typing(){return this._typing||this.dim},set placeholder(e){this._placeholder=e},get placeholder(){return this._placeholder||this.primary.dim},set highlight(e){this._highlight=e},get highlight(){return this._highlight||this.inverse}};DG.merge=(e={})=>{e.styles&&typeof e.styles.enabled=="boolean"&&(wo.enabled=e.styles.enabled),e.styles&&typeof e.styles.visible=="boolean"&&(wo.visible=e.styles.visible);let t=bG.merge({},DG,e.styles);delete t.merge;for(let r of Object.keys(wo))t.hasOwnProperty(r)||Reflect.defineProperty(t,r,{get:()=>wo[r]});for(let r of Object.keys(wo.styles))t.hasOwnProperty(r)||Reflect.defineProperty(t,r,{get:()=>wo[r]});return t};L0e.exports=DG});var _0e=G((h3t,U0e)=>{"use strict";var PG=process.platform==="win32",Xp=Xu(),$it=ia(),xG={...Xp.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301", Line truncated
`),h=p[0],E=p[p.length-1],S=(s+(r?" "+r:"")).length,x=S<h.length?h.slice(S+1):"";return{header:c,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 t=this.state.error||await this.validate(this.value,this.state);if(t!==!0){let r=`
`+this.symbols.pointer+" ";typeof t=="string"?r+=t.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(t){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(t))}async close(){this.state.closed=!0;try{let t=this.sections(),r=Math.ceil(t.prompt.length/this.width);t.rest&&this.write(xm.cursor.down(t.rest.length)),this.write(`
`.repeat(r))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=TG.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:t,options:r,result:s}=this;if(this.format=()=>t.call(this,this.value),this.result=()=>s.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(t,r)=>{if(this.once("submit",t),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(t,r,s){let{options:a,state:n,symbols:c,timers:f}=this,p=f&&f[t];n.timer=p;let h=a[t]||n[t]||c[t],E=r&&r[t]!=null?r[t]:await h;if(E==="")return E;let C=await this.resolve(E,n,r,s);return!C&&r&&r[t]?this.resolve(h,n,r,s):C}async prefix(){let t=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,s=this.state;return s.timer=r,Cl.isObject(t)&&(t=t[s.status]||t.pending),Cl.hasColor(t)?t:(this.styles[s.status]||this.styles.pending)(t)}async message(){let t=await this.element("message");return Cl.hasColor(t)?t:this.styles.strong(t)}async separator(){let t=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,s=this.state;s.timer=r;let a=t[s.status]||t.pending||s.separator,n=await this.resolve(a,s);return Cl.isObject(n)&&(n=n[s.status]||n.pending),Cl.hasColor(n)?n:this.styles.muted(n)}async pointer(t,r){let s=await this.element("pointer",t,r);if(typeof s=="string"&&Cl.hasColor(s))return s;if(s){let a=this.styles,n=this.index===r,c=n?a.primary:h=>h,f=await this.resolve(s[n?"on":"off"]||s,this.state),p=Cl.hasColor(f)?f:c(f);return n?p:" ".repeat(f.length)}}async indicator(t,r){let s=await this.element("indicator",t,r);if(typeof s=="string"&&Cl.hasColor(s))return s;if(s){let a=this.styles,n=t.enabled===!0,c=n?a.success:a.dark,f=s[n?"on":"off"]||s;return Cl.hasColor(f)?f:c(f)}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 t=await this.element("hint");return Cl.hasColor(t)?t:this.styles.muted(t)}}error(t){return this.state.submitted?"":t||this.state.error}format(t){return t}result(t){return t}validate(t){return this.options.required===!0?this.isValue(t):!0}isValue(t){return t!=null&&t!==""}resolve(t,...r){return Cl.resolve(this,t,...r)}get base(){return e.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Cl.height(this.stdout,25)}get width(){return this.options.columns||Cl.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(t){this.state.cursor=t}get cursor(){return this.state.cursor}set input(t){this.state.input=t}get input(){return this.state.input}set value(t){this.state.value=t}get value(){let{input:t,value:r}=this.state,s=[r,t].find(this.isValue.bind(this));return this.isValue(s)?s:this.initial}static get prompt(){return t=>new this(t).run()}};function lst(e){let t=a=>e[a]===void 0||typeof e[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],s=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(e.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=e.options[a];typeof n=="function"&&t(a)?s.includes(a)||(e[a]=n.bind(e)):typeof e[a]!="function"&&(e[a]=n)}}function cst(e){typeof e=="number"&&(e=[e,e,e,e]);let t=[].concat(e||[]),r=a=>a%2===0?`
`:" ",s=[];for(let a=0;a<4;a++){let n=r(a);t[a]?s.push(n.repeat(t[a])):s.push("")}return s}J0e.exports=FG});var Z0e=G((m3t,X0e)=>{"use strict";var ust=ia(),z0e={default(e,t){return t},checkbox(e,t){throw new Error("checkbox role is not implemented yet")},editable(e,t){throw new Error("editable role is not implemented yet")},expandable(e,t){throw new Error("expandable role is not implemented yet")},heading(e,t){return t.disabled="",t.indicator=[t.indicator," "].find(r=>r!=null),t.message=t.message||"",t},input(e,t){throw new Error("input role is not implemented yet")},option(e,t){return z0e.default(e,t)},radio(e,t){throw new Error("radio role is not implemented yet")},separator(e,t){return t.disabled="",t.indicator=[t.indicator," "].find(r=>r!=null),t.message=t.message||e.symbols.line.repeat(5),t},spacer(e,t){return t}};X0e.exports=(e,t={})=>{let r=ust.merge({},z0e,t.roles);return r[e]||r.default}});var Jv=G((y3t,tde)=>{"use strict";var fst=Xu(),Ast=zI(),pst=Z0e(),LT=ia(),{reorder:NG,scrollUp:hst,scrollDown:dst,isObject:$0e,swap:gst}=LT,OG=class extends Ast{constructor(t){super(t),this.cursorHide(),this.maxSelected=t.maxSelected||1/0,this.multiple=t.multiple||!1,this.initial=t.initial||0,this.delay=t.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:t,initial:r,autofocus:s,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(t)),this.choices.forEach(n=>n.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");$0e(r)&&(r=Object.keys(r)),Array.isArray(r)?(s!=null&&(this.index=this.findIndex(s)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(s!=null&&(r=s),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(t,r){this.state.loadingChoices=!0;let s=[],a=0,n=async(c,f)=>{typeof c=="function"&&(c=await c.call(this)),c instanceof Promise&&(c=await c);for(let p=0;p<c.length;p++){let h=c[p]=await this.toChoice(c[p],a++,f);s.push(h),h.choices&&await n(h.choices,h)}return s};return n(t,r).then(c=>(this.state.loadingChoices=!1,c))}async toChoice(t,r,s){if(typeof t=="function"&&(t=await t.call(this,this)),t instanceof Promise&&(t=await t),typeof t=="string"&&(t={name:t}),t.normalized)return t;t.normalized=!0;let a=t.value;if(t=pst(t.role,this.options)(this,t),typeof t.disabled=="string"&&!t.hint&&(t.hint=t.disabled,t.disabled=!0),t.disabled===!0&&t.hint==null&&(t.hint="(disabled)"),t.index!=null)return t;t.name=t.name||t.key||t.title||t.value||t.message,t.message=t.message||t.name||"",t.value=[t.value,t.name].find(this.isValue.bind(this)),t.input="",t.index=r,t.cursor=0,LT.define(t,"parent",s),t.level=s?s.level+1:1,t.indent==null&&(t.indent=s?s.indent+" ":t.indent||""),t.path=s?s.path+"."+t.name:t.name,t.enabled=!!(this.multiple&&!this.isDisabled(t)&&(t.enabled||this.isSelected(t))),this.isDisabled(t)||(this.longest=Math.max(this.longest,fst.unstyle(t.message).length));let c={...t};return t.reset=(f=c.input,p=c.value)=>{for(let h of Object.keys(c))t[h]=c[h];t.input=f,t.value=p},a==null&&typeof t.initial=="function"&&(t.input=await t.initial.call(this,this.state,t,r)),t}async onChoice(t,r){this.emit("choice",t,r,this),typeof t.onChoice=="function"&&await t.onChoice.call(this,this.state,t,r)}async addChoice(t,r,s){let a=await this.toChoice(t,r,s);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(t,r,s){let a={name:"New choice name?",editable:!0,newChoice:!0,...t},n=await this.addChoice(a,r,s);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input="",n.cursor=0},this.render()}indent(t){return t.indent==null?t.level>1?" ".repeat(t.level-1):"":t.indent}dispatch(t,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(t,r){return typeof r!="boolean"&&(r=t.enabled),r&&!t.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=t.index,t.enabled=r&&!this.isDisabled(t),t)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let t=this.selectable.every(r=>r.enabled);return this.choices.forEach(r=>r.enabled=!t),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(t=>t.enabled=!t.enabled),this.render())}g(t=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(t.parent&&!t.choices?t.parent:t),this.render()):this.a()}toggle(t,r){if(!t.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!t.enabled),t.enabled=r,t.choices&&t. Line truncated
`),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,s].filter(Boolean).join(`
`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(t=>this.styles.primary(t.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:t,size:r}=this.state,s="",a=await this.header(),n=await this.prefix(),c=await this.separator(),f=await this.message();this.options.promptLine!==!1&&(s=[n,f,c,""].join(" "),this.state.prompt=s);let p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),C=await this.footer();p&&(s+=p),h&&!s.includes(h)&&(s+=" "+h),t&&!p&&!E.trim()&&this.multiple&&this.emptyError!=null&&(s+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,s,E,C].filter(Boolean).join(`
`)),this.write(this.margin[2]),this.restore()}};rde.exports=MG});var ide=G((I3t,nde)=>{"use strict";var yst=Y0(),Est=(e,t)=>{let r=e.toLowerCase();return s=>{let n=s.toLowerCase().indexOf(r),c=t(s.slice(n,n+r.length));return n>=0?s.slice(0,n)+c+s.slice(n+r.length):s}},UG=class extends yst{constructor(t){super(t),this.cursorShow()}moveCursor(t){this.state.cursor+=t}dispatch(t){return this.append(t)}space(t){return this.options.multiple?super.space(t):this.append(t)}append(t){let{cursor:r,input:s}=this.state;return this.input=s.slice(0,r)+t+s.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:t,input:r}=this.state;return r?(this.input=r.slice(0,t-1)+r.slice(t),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:t,input:r}=this.state;return r[t]===void 0?this.alert():(this.input=`${r}`.slice(0,t)+`${r}`.slice(t+1),this.complete())}number(t){return this.append(t)}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(t=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,t,r);let s=t.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(s))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(t=>this.styles.primary(t.message)).join(", ");if(this.state.submitted){let t=this.value=this.input=this.focused.value;return this.styles.primary(t)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let t=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=Est(this.input,t),s=this.choices;this.choices=s.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=s}submit(){return this.options.multiple&&(this.value=this.selected.map(t=>t.name)),super.submit()}};nde.exports=UG});var HG=G((C3t,sde)=>{"use strict";var _G=ia();sde.exports=(e,t={})=>{e.cursorHide();let{input:r="",initial:s="",pos:a,showCursor:n=!0,color:c}=t,f=c||e.styles.placeholder,p=_G.inverse(e.styles.primary),h=T=>p(e.styles.black(T)),E=r,C=" ",S=h(C);if(e.blink&&e.blink.off===!0&&(h=T=>T,S=""),n&&a===0&&s===""&&r==="")return h(C);if(n&&a===0&&(r===s||r===""))return h(s[0])+f(s.slice(1));s=_G.isPrimitive(s)?`${s}`:"",r=_G.isPrimitive(r)?`${r}`:"";let x=s&&s.startsWith(r)&&s!==r,I=x?h(s[r.length]):S;if(a!==r.length&&n===!0&&(E=r.slice(0,a)+h(r[a])+r.slice(a+1),I=""),n===!1&&(I=""),x){let T=e.styles.unstyle(E+I);return E+I+f(s.slice(T.length))}return E+I}});var MT=G((w3t,ode)=>{"use strict";var Ist=Xu(),Cst=Y0(),wst=HG(),jG=class extends Cst{constructor(t){super({...t,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(t){return await super.reset(),t===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(t){return!!t&&this.append(t)}append(t){let r=this.focused;if(!r)return this.alert();let{cursor:s,input:a}=r;return r.value=r.input=a.slice(0,s)+t+a.slice(s),r.cursor++,this.render()}delete(){let t=this.focused;if(!t||t.cursor<=0)return this.alert();let{cursor:r,input:s}=t;return t.value=t.input=s.slice(0,r-1)+s.slice(r),t.cursor--,this.render()}deleteForward(){let t=this.focused;if(!t)return this.alert();let{cursor:r,input:s}=t;if(s[r]===void 0)return this.alert();let a=`${s}`.slice(0,r)+`${s}`.slice(r+1);return t.value=t.input=a,this.render()}right(){let t=this.focused;return t?t.cursor>=t.input.length?this.alert():(t.cursor++,this.render()):this.alert()}left(){let t=this.focused;return t?t.cursor<=0?this.alert():(t.cursor--,this.render()):this.alert()}space(t,r){return this.dispatch(t,r)}number(t,r){return this.dispatch(t,r)}next(){let t=this.focused;if(!t)return this.alert();let{initial:r,input:s}=t;return r&&r.startsWith(s)&&s!==r?(t.value=t.input=r,t.cursor=t.value.length,this.render()):super.next()}prev(){let t=this.focused;return t?t.cursor===0?super.prev():(t.value=t.input="",t.cursor=0,this.render()):this.alert()}separator(){return""}format(t){return this.state.submitted?"":super.format(t)}pointer(){return""}indicator(t){return t.input?"\u29BF":"\u2299"}async choiceSeparator(t,r){let s=await this.resolve(t.separator,this.state,t,r)||":";return s?" "+this.styles.disabled(s):""}async renderChoice(t,r){await this.onChoice(t,r);let{state:s,styles:a}=this,{cursor:n,initial:c="",name:f,hint:p,input:h=""}=t,{muted:E,submitted:C,primary:S,danger:x}=a,I=p,T=this.index===r,O=t.validate||(()=>!0),U=await this.choiceSeparator(t,r),V=t.message;this.align==="right"&&(V=V.padStart(this.longest+1," ")),this.align==="left"&&(V=V.padEnd(this.longest+1," "));let $=this.values[f]=h||c,ie=h?"success":"dark";await O.call(t,$,this. Line truncated
`)),this.restore()}set value(t){super.value=t}get value(){return this.cast(super.value)}};Ade.exports=qG});var hde=G((b3t,pde)=>{"use strict";var kst=UT(),YG=class extends kst{constructor(t){super(t),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};pde.exports=YG});var gde=G((D3t,dde)=>{"use strict";var Qst=Y0(),Rst=MT(),XI=Rst.prototype,WG=class extends Qst{constructor(t){super({...t,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(t,r){let s=this.focused,a=s.parent||{};return!s.editable&&!a.editable&&(t==="a"||t==="i")?super[t]():XI.dispatch.call(this,t,r)}append(t,r){return XI.append.call(this,t,r)}delete(t,r){return XI.delete.call(this,t,r)}space(t){return this.focused.editable?this.append(t):super.space()}number(t){return this.focused.editable?this.append(t):super.number(t)}next(){return this.focused.editable?XI.next.call(this):super.next()}prev(){return this.focused.editable?XI.prev.call(this):super.prev()}async indicator(t,r){let s=t.indicator||"",a=t.editable?s:super.indicator(t,r);return await this.resolve(a,this.state,t,r)||""}indent(t){return t.role==="heading"?"":t.editable?" ":" "}async renderChoice(t,r){return t.indent="",t.editable?XI.renderChoice.call(this,t,r):super.renderChoice(t,r)}error(){return""}footer(){return this.state.error}async validate(){let t=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let s=r.parent?this.value[r.parent.name]:this.value;if(r.editable?s=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(s=r.enabled===!0),t=await r.validate(s,this.state),t!==!0)break}return t!==!0&&(this.state.error=typeof t=="string"?t:"Invalid Input"),t}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(t=>t.newChoice))return this.alert();this.value={};for(let t of this.choices){let r=t.parent?this.value[t.parent.name]:this.value;if(t.role==="heading"){this.value[t.name]={};continue}t.editable?r[t.name]=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(r[t.name]=t.enabled===!0)}return this.base.submit.call(this)}};dde.exports=WG});var km=G((P3t,mde)=>{"use strict";var Tst=zI(),Fst=HG(),{isPrimitive:Nst}=ia(),VG=class extends Tst{constructor(t){super(t),this.initial=Nst(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(t,r={}){let s=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!s||s.name!=="return")?this.append(`
`,r):super.keypress(t,r)}moveCursor(t){this.cursor+=t}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(t,r){if(!t||r.ctrl||r.code)return this.alert();this.append(t)}append(t){let{cursor:r,input:s}=this.state;this.input=`${s}`.slice(0,r)+t+`${s}`.slice(r),this.moveCursor(String(t).length),this.render()}insert(t){this.append(t)}delete(){let{cursor:t,input:r}=this.state;if(t<=0)return this.alert();this.input=`${r}`.slice(0,t-1)+`${r}`.slice(t),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:t,input:r}=this.state;if(r[t]===void 0)return this.alert();this.input=`${r}`.slice(0,t)+`${r}`.slice(t+1),this.render()}cutForward(){let t=this.cursor;if(this.input.length<=t)return this.alert();this.state.clipboard.push(this.input.slice(t)),this.input=this.input.slice(0,t),this.render()}cutLeft(){let t=this.cursor;if(t===0)return this.alert();let r=this.input.slice(0,t),s=this.input.slice(t),a=r.split(" ");this.state.clipboard.push(a.pop()),this.input=a.join(" "),this.cursor=this.input.length,this.input+=s,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 t=this.initial!=null?String(this.initial):"";if(!t||!t.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(t){return!!t}async format(t=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(t||r):Fst(this,{input:t,initial:r,pos:this.cursor})}async render(){let t=this.state.size,r=await this.prefix(),s=await this.separator(),a=await this.message(),n=[r,a,s].filter(Boolean).join(" ");this.state.prompt=n;let c=await this.header(),f=await this.format(),p=await this.error()||await this.hint(),h=await this.footer();p&&!f.includes(p)&&(f+=" "+p),n+=" "+f,this.clear(t),this.write([c,n,h].filter(Boolean).join(`
`)),this.restore()}};mde.exports=VG});var Ede=G((x3t,yde)=>{"use strict";var Ost=e=>e.filter((t,r)=>e.lastIndexOf(t)===r),_T=e=>Ost(e).filter(Boolean);yde.exports=(e,t={},r="")=>{let{past:s=[],present:a=""}=t,n,c;switch(e){case"prev":case"undo":return n=s.slice(0,s.length-1),c=s[s.length-1]||"",{past:_T([r,...n]),present:c};case"next":case"redo":return n=s.slice(1),c=s[0]||"",{past:_T([...n,r]),present:c};case"save":return{past:_T([...s,r]),present:""};case"remove":return c=_T(s.filter(f=>f!==r)),a="",c.length&&(a=c.pop()),{past:c,present:a};default:throw new Error(`Invalid action: "${e}"`)}}});var JG=G((k3t,Cde)=>{"use strict";var Lst=km(),Ide=Ede(),KG=class extends Lst{constructor(t){super(t);let r=this.options.history;if(r&&r.store){let s=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:s},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(t){return this.store?(this.data=Ide(t,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=Ide("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Cde.exports=KG});var Bde=G((Q3t,wde)=>{"use strict";var Mst=km(),zG=class extends Mst{format(){return""}};wde.exports=zG});var Sde=G((R3t,vde)=>{"use strict";var Ust=km(),XG=class extends Ust{constructor(t={}){super(t),this.sep=this.options.separator||/, */,this.initial=t.initial||""}split(t=this.value){return t?String(t).split(this.sep):[]}format(){let t=this.state.submitted?this.styles.primary:r=>r;return this.list.map(t).join(", ")}async submit(t){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()}};vde.exports=XG});var Dde=G((T3t,bde)=>{"use strict";var _st=Y0(),ZG=class extends _st{constructor(t){super({...t,multiple:!0})}};bde.exports=ZG});var e5=G((F3t,Pde)=>{"use strict";var Hst=km(),$G=class extends Hst{constructor(t={}){super({style:"number",...t}),this.min=this.isValue(t.min)?this.toNumber(t.min):-1/0,this.max=this.isValue(t.max)?this.toNumber(t.max):1/0,this.delay=t.delay!=null?t.delay:1e3,this.float=t.float!==!1,this.round=t.round===!0||t.float===!1,this.major=t.major||10,this.minor=t.minor||1,this.initial=t.initial!=null?t.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(t){return!/[-+.]/.test(t)||t==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(t)}number(t){return super.append(t)}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(t){let r=t||this.minor,s=this.toNumber(this.input);return s>this.max+r?this.alert():(this.input=`${s+r}`,this.render())}down(t){let r=t||this.minor,s=this.toNumber(this.input);return s<this.min-r?this.alert():(this.input=`${s-r}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(t=this.input){return typeof this.options.format=="function"?this.options.format.call(this,t):this.styles.info(t)}toNumber(t=""){return this.float?+t:Math.round(+t)}isValue(t){return/^[-+]?[0-9]+((\.)|(\.[0-9]+))?$/.test(t)}submit(){let t=[this.input,this.initial].find(r=>this.isValue(r));return this.value=this.toNumber(t||0),super.submit()}};Pde.exports=$G});var kde=G((N3t,xde)=>{xde.exports=e5()});var Rde=G((O3t,Qde)=>{"use strict";var jst=km(),t5=class extends jst{constructor(t){super(t),this.cursorShow()}format(t=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(t.length)):""}};Qde.exports=t5});var Nde=G((L3t,Fde)=>{"use strict";var Gst=Xu(),qst=Jv(),Tde=ia(),r5=class extends qst{constructor(t={}){super(t),this.widths=[].concat(t.messageWidth||50),this.align=[].concat(t.align||"left"),this.linebreak=t.linebreak||!1,this.edgeLength=t.edgeLength||3,this.newline=t.newline||`
`;let r=t.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((s,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 t=0;for(let r of this.choices){t=Math.max(t,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let s=0;s<this.scale.length;s++)r.scale.push({index:s})}this.widths[0]=Math.min(this.widths[0],t+3)}async dispatch(t,r){if(this.multiple)return this[r.name]?await this[r.name](t,r):await super.dispatch(t,r);this.alert()}heading(t,r,s){return this.styles.strong(t)}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let t=this.focused;return t.scaleIndex>=this.scale.length-1?this.alert():(t.scaleIndex++,this.render())}left(){let t=this.focused;return t.scaleIndex<=0?this.alert():(t.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(s=>` ${s.name} - ${s.message}`)].map(s=>this.styles.muted(s)).join(`
`)}renderScaleHeading(t){let r=this.scale.map(p=>p.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,t));let s=this.scaleLength-r.join("").length,a=Math.round(s/(r.length-1)),c=r.map(p=>this.styles.strong(p)).join(" ".repeat(a)),f=" ".repeat(this.widths[0]);return this.margin[3]+f+this.margin[1]+c}scaleIndicator(t,r,s){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,t,r,s);let a=t.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(t,r){let s=t.scale.map(n=>this.scaleIndicator(t,n,r)),a=this.term==="Hyper"?"":" ";return s.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(t,r){await this.onChoice(t,r);let s=this.index===r,a=await this.pointer(t,r),n=await t.hint;n&&!Tde.hasColor(n)&&(n=this.styles.muted(n));let c=I=>this.margin[3]+I.replace(/\s+$/,"").padEnd(this.widths[0]," "),f=this.newline,p=this.indent(t),h=await this.resolve(t.message,this.state,t,r),E=await this.renderScale(t,r),C=this.margin[1]+this.margin[3];this.scaleLength=Gst.unstyle(E).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-C.length);let x=Tde.wordWrap(h,{width:this.widths[0],newline:f}).split(`
`).map(I=>c(I)+this.margin[1]);return s&&(E=this.styles.info(E),x=x.map(I=>this.styles.info(I))),x[0]+=E,this.linebreak&&x.push(""),[p+a,x.join(`
`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let t=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(t),s=await this.renderScaleHeading();return this.margin[0]+[s,...r.map(a=>a.join(" "))].join(`
`)}async render(){let{submitted:t,size:r}=this.state,s=await this.prefix(),a=await this.separator(),n=await this.message(),c="";this.options.promptLine!==!1&&(c=[s,n,a,""].join(" "),this.state.prompt=c);let f=await this.header(),p=await this.format(),h=await this.renderScaleKey(),E=await this.error()||await this.hint(),C=await this.renderChoices(),S=await this.footer(),x=this.emptyError;p&&(c+=p),E&&!c.includes(E)&&(c+=" "+E),t&&!p&&!C.trim()&&this.multiple&&x!=null&&(c+=this.styles.danger(x)),this.clear(r),this.write([f,c,h,C,S].filter(Boolean).join(`
`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let t of this.choices)this.value[t.name]=t.scaleIndex;return this.base.submit.call(this)}};Fde.exports=r5});var Mde=G((M3t,Lde)=>{"use strict";var Ode=Xu(),Yst=(e="")=>typeof e=="string"?e.replace(/^['"]|['"]$/g,""):"",i5=class{constructor(t){this.name=t.key,this.field=t.field||{},this.value=Yst(t.initial||this.field.initial||""),this.message=t.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Wst=async(e={},t={},r=s=>s)=>{let s=new Set,a=e.fields||[],n=e.template,c=[],f=[],p=[],h=1;typeof n=="function"&&(n=await n());let E=-1,C=()=>n[++E],S=()=>n[E+1],x=I=>{I.line=h,c.push(I)};for(x({type:"bos",value:""});E<n.length-1;){let I=C();if(/^[^\S\n ]$/.test(I)){x({type:"text",value:I});continue}if(I===`
`){x({type:"newline",value:I}),h++;continue}if(I==="\\"){I+=C(),x({type:"text",value:I});continue}if((I==="$"||I==="#"||I==="{")&&S()==="{"){let O=C();I+=O;let U={type:"template",open:I,inner:"",close:"",value:I},V;for(;V=C();){if(V==="}"){S()==="}"&&(V+=C()),U.value+=V,U.close=V;break}V===":"?(U.initial="",U.key=U.inner):U.initial!==void 0&&(U.initial+=V),U.value+=V,U.inner+=V}U.template=U.open+(U.initial||U.inner)+U.close,U.key=U.key||U.inner,t.hasOwnProperty(U.key)&&(U.initial=t[U.key]),U=r(U),x(U),p.push(U.key),s.add(U.key);let $=f.find(ie=>ie.name===U.key);U.field=a.find(ie=>ie.name===U.key),$||($=new i5(U),f.push($)),$.lines.push(U.line-1);continue}let T=c[c.length-1];T.type==="text"&&T.line===h?T.value+=I:x({type:"text",value:I})}return x({type:"eos",value:""}),{input:n,tabstops:c,unique:s,keys:p,items:f}};Lde.exports=async e=>{let t=e.options,r=new Set(t.required===!0?[]:t.required||[]),s={...t.values,...t.initial},{tabstops:a,items:n,keys:c}=await Wst(t,s),f=n5("result",e,t),p=n5("format",e,t),h=n5("validate",e,t,!0),E=e.isValue.bind(e);return async(C={},S=!1)=>{let x=0;C.required=r,C.items=n,C.keys=c,C.output="";let I=async(V,$,ie,fe)=>{let ae=await h(V,$,ie,fe);return ae===!1?"Invalid field "+ie.name:ae};for(let V of a){let $=V.value,ie=V.key;if(V.type!=="template"){$&&(C.output+=$);continue}if(V.type==="template"){let fe=n.find(Ee=>Ee.name===ie);t.required===!0&&C.required.add(fe.name);let ae=[fe.input,C.values[fe.value],fe.value,$].find(E),he=(fe.field||{}).message||V.inner;if(S){let Ee=await I(C.values[ie],C,fe,x);if(Ee&&typeof Ee=="string"||Ee===!1){C.invalid.set(ie,Ee);continue}C.invalid.delete(ie);let d=await f(C.values[ie],C,fe,x);C.output+=Ode.unstyle(d);continue}fe.placeholder=!1;let Ce=$;$=await p($,C,fe,x),ae!==$?(C.values[ie]=ae,$=e.styles.typing(ae),C.missing.delete(he)):(C.values[ie]=void 0,ae=`<${he}>`,$=e.styles.primary(ae),fe.placeholder=!0,C.required.has(ie)&&C.missing.add(he)),C.missing.has(he)&&C.validating&&($=e.styles.warning(ae)),C.invalid.has(ie)&&C.validating&&($=e.styles.danger(ae)),x===C.index&&(Ce!==$?$=e.styles.underline($):$=e.styles.heading(Ode.unstyle($))),x++}$&&(C.output+=$)}let T=C.output.split(`
`).map(V=>" "+V),O=n.length,U=0;for(let V of n)C.invalid.has(V.name)&&V.lines.forEach($=>{T[$][0]===" "&&(T[$]=C.styles.danger(C.symbols.bullet)+T[$].slice(1))}),e.isValue(C.values[V.name])&&U++;return C.completed=(U/O*100).toFixed(0),C.output=T.join(`
`),C.output}};function n5(e,t,r,s){return(a,n,c,f)=>typeof c.field[e]=="function"?c.field[e].call(t,a,n,c,f):[s,a].find(p=>t.isValue(p))}});var _de=G((U3t,Ude)=>{"use strict";var Vst=Xu(),Kst=Mde(),Jst=zI(),s5=class extends Jst{constructor(t){super(t),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Kst(this),await super.initialize()}async reset(t){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},t!==!0&&(await this.initialize(),await this.render())}moveCursor(t){let r=this.getItem();this.cursor+=t,r.cursor+=t}dispatch(t,r){if(!r.code&&!r.ctrl&&t!=null&&this.getItem()){this.append(t,r);return}this.alert()}append(t,r){let s=this.getItem(),a=s.input.slice(0,this.cursor),n=s.input.slice(this.cursor);this.input=s.input=`${a}${t}${n}`,this.moveCursor(1),this.render()}delete(){let t=this.getItem();if(this.cursor<=0||!t.input)return this.alert();let r=t.input.slice(this.cursor),s=t.input.slice(0,this.cursor-1);this.input=t.input=`${s}${r}`,this.moveCursor(-1),this.render()}increment(t){return t>=this.state.keys.length-1?0:t+1}decrement(t){return t<=0?this.state.keys.length-1:t-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(t){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:t,keys:r=[],submitted:s,size:a}=this.state,n=[this.options.newline,`
`].find(V=>V!=null),c=await this.prefix(),f=await this.separator(),p=await this.message(),h=[c,p,f].filter(Boolean).join(" ");this.state.prompt=h;let E=await this.header(),C=await this.error()||"",S=await this.hint()||"",x=s?"":await this.interpolate(this.state),I=this.state.key=r[t]||"",T=await this.format(I),O=await this.footer();T&&(h+=" "+T),S&&!T&&this.state.completed===0&&(h+=" "+S),this.clear(a);let U=[E,h,x,O,C.trim()];this.write(U.filter(Boolean).join(n)),this.restore()}getItem(t){let{items:r,keys:s,index:a}=this.state,n=r.find(c=>c.name===s[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:t,missing:r,output:s,values:a}=this.state;if(t.size){let f="";for(let[p,h]of t)f+=`Invalid ${p}: ${h}
`;return this.state.error=f,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let c=Vst.unstyle(s).split(`
`).map(f=>f.slice(1)).join(`
`);return this.value={values:a,result:c},super.submit()}};Ude.exports=s5});var jde=G((_3t,Hde)=>{"use strict";var zst="(Use <shift>+<up/down> to sort)",Xst=Y0(),o5=class extends Xst{constructor(t){super({...t,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,zst].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(t,r){let s=await super.renderChoice(t,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} - `+s:n+s}get selected(){return this.choices}submit(){return this.value=this.choices.map(t=>t.value),super.submit()}};Hde.exports=o5});var qde=G((H3t,Gde)=>{"use strict";var Zst=Jv(),a5=class extends Zst{constructor(t={}){if(super(t),this.emptyError=t.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(s=>this.styles.muted(s)),this.state.header=r.join(`
`)}}async toChoices(...t){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...t);for(let s of r)s.scale=$st(5,this.options),s.scaleIdx=2;return r}dispatch(){this.alert()}space(){let t=this.focused,r=t.scale[t.scaleIdx],s=r.selected;return t.scale.forEach(a=>a.selected=!1),r.selected=!s,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let t=this.focused;return t.scaleIdx>=t.scale.length-1?this.alert():(t.scaleIdx++,this.render())}left(){let t=this.focused;return t.scaleIdx<=0?this.alert():(t.scaleIdx--,this.render())}indent(){return" "}async renderChoice(t,r){await this.onChoice(t,r);let s=this.index===r,a=this.term==="Hyper",n=a?9:8,c=a?"":" ",f=this.symbols.line.repeat(n),p=" ".repeat(n+(a?0:1)),h=$=>($?this.styles.success("\u25C9"):"\u25EF")+c,E=r+1+".",C=s?this.styles.heading:this.styles.noop,S=await this.resolve(t.message,this.state,t,r),x=this.indent(t),I=x+t.scale.map(($,ie)=>h(ie===t.scaleIdx)).join(f),T=$=>$===t.scaleIdx?C($):$,O=x+t.scale.map(($,ie)=>T(ie)).join(p),U=()=>[E,S].filter(Boolean).join(" "),V=()=>[U(),I,O," "].filter(Boolean).join(`
`);return s&&(I=this.styles.cyan(I),O=this.styles.cyan(O)),V()}async renderChoices(){if(this.state.submitted)return"";let t=this.visible.map(async(s,a)=>await this.renderChoice(s,a)),r=await Promise.all(t);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:t,size:r}=this.state,s=await this.prefix(),a=await this.separator(),n=await this.message(),c=[s,n,a].filter(Boolean).join(" ");this.state.prompt=c;let f=await this.header(),p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),C=await this.footer();(p||!h)&&(c+=" "+p),h&&!c.includes(h)&&(c+=" "+h),t&&!p&&!E&&this.multiple&&this.type!=="form"&&(c+=this.styles.danger(this.emptyError)),this.clear(r),this.write([c,f,E,C].filter(Boolean).join(`
`)),this.restore()}submit(){this.value={};for(let t of this.choices)this.value[t.name]=t.scaleIdx;return this.base.submit.call(this)}};function $st(e,t={}){if(Array.isArray(t.scale))return t.scale.map(s=>({...s}));let r=[];for(let s=1;s<e+1;s++)r.push({i:s,selected:!1});return r}Gde.exports=a5});var Wde=G((j3t,Yde)=>{Yde.exports=JG()});var Kde=G((G3t,Vde)=>{"use strict";var eot=UT(),l5=class extends eot{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(t="",r){switch(t.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 t=s=>this.styles.primary.underline(s);return[this.value?this.disabled:t(this.disabled),this.value?t(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:t}=this.state,r=await this.header(),s=await this.prefix(),a=await this.separator(),n=await this.message(),c=await this.format(),f=await this.error()||await this.hint(),p=await this.footer(),h=[s,n,a,c].join(" ");this.state.prompt=h,f&&!h.includes(f)&&(h+=" "+f),this.clear(t),this.write([r,h,p].filter(Boolean).join(`
`)),this.write(this.margin[2]),this.restore()}};Vde.exports=l5});var zde=G((q3t,Jde)=>{"use strict";var tot=Y0(),c5=class extends tot{constructor(t){if(super(t),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(t,r){let s=await super.toChoices(t,r);if(s.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>s.length)throw new Error("Please specify the index of the correct answer from the list of choices");return s}check(t){return t.index===this.options.correctChoice}async result(t){return{selectedAnswer:t,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Jde.exports=c5});var Zde=G(u5=>{"use strict";var Xde=ia(),Ts=(e,t)=>{Xde.defineExport(u5,e,t),Xde.defineExport(u5,e.toLowerCase(),t)};Ts("AutoComplete",()=>ide());Ts("BasicAuth",()=>fde());Ts("Confirm",()=>hde());Ts("Editable",()=>gde());Ts("Form",()=>MT());Ts("Input",()=>JG());Ts("Invisible",()=>Bde());Ts("List",()=>Sde());Ts("MultiSelect",()=>Dde());Ts("Numeral",()=>kde());Ts("Password",()=>Rde());Ts("Scale",()=>Nde());Ts("Select",()=>Y0());Ts("Snippet",()=>_de());Ts("Sort",()=>jde());Ts("Survey",()=>qde());Ts("Text",()=>Wde());Ts("Toggle",()=>Kde());Ts("Quiz",()=>zde())});var ege=G((W3t,$de)=>{$de.exports={ArrayPrompt:Jv(),AuthPrompt:GG(),BooleanPrompt:UT(),NumberPrompt:e5(),StringPrompt:km()}});var Xv=G((V3t,rge)=>{"use strict";var tge=Ie("assert"),A5=Ie("events"),W0=ia(),$u=class extends A5{constructor(t,r){super(),this.options=W0.merge({},t),this.answers={...r}}register(t,r){if(W0.isObject(t)){for(let a of Object.keys(t))this.register(a,t[a]);return this}tge.equal(typeof r,"function","expected a function");let s=t.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[s]=r:this.prompts[s]=r(this.Prompt,this),this}async prompt(t=[]){for(let r of[].concat(t))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(W0.merge({},this.options,r))}catch(s){return Promise.reject(s)}return this.answers}async ask(t){typeof t=="function"&&(t=await t.call(this));let r=W0.merge({},this.options,t),{type:s,name:a}=t,{set:n,get:c}=W0;if(typeof s=="function"&&(s=await s.call(this,t,this.answers)),!s)return this.answers[a];tge(this.prompts[s],`Prompt "${s}" is not registered`);let f=new this.prompts[s](r),p=c(this.answers,a);f.state.answers=this.answers,f.enquirer=this,a&&f.on("submit",E=>{this.emit("answer",a,E,f),n(this.answers,a,E)});let h=f.emit.bind(f);return f.emit=(...E)=>(this.emit.call(this,...E),h(...E)),this.emit("prompt",f,this),r.autofill&&p!=null?(f.value=f.input=p,r.autofill==="show"&&await f.submit()):p=f.value=await f.run(),p}use(t){return t.call(this,this),this}set Prompt(t){this._Prompt=t}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(t){this._Prompt=t}static get Prompt(){return this._Prompt||zI()}static get prompts(){return Zde()}static get types(){return ege()}static get prompt(){let t=(r,...s)=>{let a=new this(...s),n=a.emit.bind(a);return a.emit=(...c)=>(t.emit(...c),n(...c)),a.prompt(r)};return W0.mixinEmitter(t,new A5),t}};W0.mixinEmitter($u,new A5);var f5=$u.prompts;for(let e of Object.keys(f5)){let t=e.toLowerCase(),r=s=>new f5[e](s).run();$u.prompt[t]=r,$u[t]=r,$u[e]||Reflect.defineProperty($u,e,{get:()=>f5[e]})}var zv=e=>{W0.defineExport($u,e,()=>$u.types[e])};zv("ArrayPrompt");zv("AuthPrompt");zv("BooleanPrompt");zv("NumberPrompt");zv("StringPrompt");rge.exports=$u});var uge=G((gHt,uot)=>{uot.exports={name:"@yarnpkg/cli",version:"4.16.0",license:"BSD-2-Clause",main:"./sources/index.ts",exports:{".":"./sources/index.ts","./polyfills":"./sources/polyfills.ts","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-catalog":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-constraints":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-exec":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-interactive-tools":"workspace:^","@yarnpkg/plugin-jsr":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/plugin-stage":"workspace:^","@yarnpkg/plugin-typescript":"workspace:^","@yarnpkg/plugin-version":"workspace:^","@yarnpkg/plugin-workspace-tools":"workspace:^","@yarnpkg/shell":"workspa Line truncated
${V} at ${$}`:`
${V}`}).join("");h.push({text:`Conflict detected in constraint targeting ${ce.pretty(e.configuration,x,ce.Type.CODE)}; conflicting values are:${T}`,fixable:!1})}else{let[[T]]=I,O=xa(S,x);if(JSON.stringify(O)===JSON.stringify(T))continue;if(!s){let U=typeof O>"u"?`Missing field ${ce.pretty(e.configuration,x,ce.Type.CODE)}; expected ${ce.pretty(e.configuration,T,ce.Type.INSPECT)}`:typeof T>"u"?`Extraneous field ${ce.pretty(e.configuration,x,ce.Type.CODE)} currently set to ${ce.pretty(e.configuration,O,ce.Type.INSPECT)}`:`Invalid field ${ce.pretty(e.configuration,x,ce.Type.CODE)}; expected ${ce.pretty(e.configuration,T,ce.Type.INSPECT)}, found ${ce.pretty(e.configuration,O,ce.Type.INSPECT)}`;h.push({text:U,fixable:!0});continue}typeof T>"u"?h0(S,x):Jg(S,x,T),E=!0}E&&a.set(C,S)}h.length>0&&n.set(C,h)}return{changedWorkspaces:a,remainingErrors:n}}function zge(e,{configuration:t}){let r={children:[]};for(let[s,a]of e){let n=[];for(let f of a){let p=f.text.split(/\n/);f.fixable&&(p[0]=`${ce.pretty(t,"\u2699","gray")} ${p[0]}`),n.push({value:ce.tuple(ce.Type.NO_HINT,p[0]),children:p.slice(1).map(h=>({value:ce.tuple(ce.Type.NO_HINT,h)}))})}let c={value:ce.tuple(ce.Type.LOCATOR,s.anchoredLocator),children:qe.sortMap(n,f=>f.value[1])};r.children.push(c)}return r.children=qe.sortMap(r.children,s=>s.value[1]),r}var MC,sat,oat,aat,lS=Xe(()=>{Ge();Xl();MC=class{constructor(t){this.indexedFields=t;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let t of this.indexedFields)this.indexes[t]=new Map}insert(t){this.items.push(t);for(let r of this.indexedFields){let s=Object.hasOwn(t,r)?t[r]:void 0;if(typeof s>"u")continue;qe.getArrayWithDefault(this.indexes[r],s).push(t)}return t}find(t){if(typeof t>"u")return this.items;let r=Object.entries(t);if(r.length===0)return this.items;let s=[],a;for(let[c,f]of r){let p=c,h=Object.hasOwn(this.indexes,p)?this.indexes[p]:void 0;if(typeof h>"u"){s.push([p,f]);continue}let E=new Set(h.get(f)??[]);if(E.size===0)return[];if(typeof a>"u")a=E;else for(let C of a)E.has(C)||a.delete(C);if(a.size===0)break}let n=[...a??[]];return s.length>0&&(n=n.filter(c=>{for(let[f,p]of s)if(!(typeof p<"u"?Object.hasOwn(c,f)&&c[f]===p:Object.hasOwn(c,f)===!1))return!1;return!0})),n}},sat=/^[0-9]+$/,oat=/^[a-zA-Z0-9_]+$/,aat=new Set(["scripts",..._t.allDependencies])});var Xge=G(($9t,V5)=>{var uat;(function(e){var t=function(){return{"append/2":[new e.type.Rule(new e.type.Term("append",[new e.type.Var("X"),new e.type.Var("L")]),new e.type.Term("foldl",[new e.type.Term("append",[]),new e.type.Var("X"),new e.type.Term("[]",[]),new e.type.Var("L")]))],"append/3":[new e.type.Rule(new e.type.Term("append",[new e.type.Term("[]",[]),new e.type.Var("X"),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("append",[new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("S")])]),new e.type.Term("append",[new e.type.Var("T"),new e.type.Var("X"),new e.type.Var("S")]))],"member/2":[new e.type.Rule(new e.type.Term("member",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("_")])]),null),new e.type.Rule(new e.type.Term("member",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("_"),new e.type.Var("Xs")])]),new e.type.Term("member",[new e.type.Var("X"),new e.type.Var("Xs")]))],"permutation/2":[new e.type.Rule(new e.type.Term("permutation",[new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("permutation",[new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("permutation",[new e.type.Var("T"),new e.type.Var("P")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("P")]),new e.type.Term("append",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("Y")]),new e.type.Var("S")])])]))],"maplist/2":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("X")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("Xs")])]))],"maplist/3":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs")])]))],"maplist/4":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Ter Line truncated
`+p:"")),c.error.method="_execFileSync",c.error.program=a,c.error.args=n,c.error.extMessage=p,c.error.exitCode=+f),li.unlinkSync(h),li.unlinkSync(E),li.unlinkSync(C),li.unlinkSync(S),c}function hat(e){var t,r={},s,a={env:process.env,encoding:e.encoding};if(V0||(Tm?process.env.PSModulePath?(V0="powershell.exe",VT=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(V0="cscript.exe",VT=["//nologo",__dirname+"\\read.cs.js"]):(V0="/bin/sh",VT=[__dirname+"/read.sh"])),Tm&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),z5.execFileSync){t=rme(e),cS&&cS("execFileSync",t);try{r.input=z5.execFileSync(V0,t,a)}catch(n){s=n.stderr?(n.stderr+"").trim():"",r.error=new Error(eme+(s?`
`+s:"")),r.error.method="execFileSync",r.error.program=V0,r.error.args=t,r.error.extMessage=s,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=pat(e,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),e.display=""),r}function $5(e){var t="",r=e.display,s=!e.display&&e.keyIn&&e.hideEchoBack&&!e.mask;function a(){var n=hat(e);if(n.error)throw n.error;return n.input}return Z5&&Z5(e),function(){var n,c,f;function p(){return n||(n=process.binding("fs"),c=process.binding("constants")),n}if(typeof $p=="string")if($p=null,Tm){if(f=function(h){var E=h.replace(/^\D+/,"").split("."),C=0;return(E[0]=+E[0])&&(C+=E[0]*1e4),(E[1]=+E[1])&&(C+=E[1]*100),(E[2]=+E[2])&&(C+=E[2]),C}(process.version),!(f>=20302&&f<40204||f>=5e4&&f<50100||f>=50600&&f<60200)&&process.stdin.isTTY)process.stdin.pause(),$p=process.stdin.fd,_C=process.stdin._handle;else try{$p=p().open("CONIN$",c.O_RDWR,parseInt("0666",8)),_C=new Zge($p,!0)}catch{}if(process.stdout.isTTY)tf=process.stdout.fd;else{try{tf=li.openSync("\\\\.\\CON","w")}catch{}if(typeof tf!="number")try{tf=p().open("CONOUT$",c.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{$p=li.openSync("/dev/tty","r"),_C=process.stdin._handle}catch{}}else try{$p=li.openSync("/dev/tty","r"),_C=new Zge($p,!1)}catch{}if(process.stdout.isTTY)tf=process.stdout.fd;else try{tf=li.openSync("/dev/tty","w")}catch{}}}(),function(){var n,c,f=!e.hideEchoBack&&!e.keyIn,p,h,E,C,S;KT="";function x(I){return I===$ge?!0:_C.setRawMode(I)!==0?!1:($ge=I,!0)}if(tme||!_C||typeof tf!="number"&&(e.display||!f)){t=a();return}if(e.display&&(li.writeSync(tf,e.display),e.display=""),!e.displayOnly){if(!x(!f)){t=a();return}for(h=e.keyIn?1:e.bufferSize,p=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(h):new Buffer(h),e.keyIn&&e.limit&&(c=new RegExp("[^"+e.limit+"]","g"+(e.caseSensitive?"":"i")));;){E=0;try{E=li.readSync($p,p,0,h)}catch(I){if(I.code!=="EOF"){x(!1),t+=a();return}}if(E>0?(C=p.toString(e.encoding,0,E),KT+=C):(C=`
`,KT+="\0"),C&&typeof(S=(C.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(C=S,n=!0),C&&(C=C.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),C&&c&&(C=C.replace(c,"")),C&&(f||(e.hideEchoBack?e.mask&&li.writeSync(tf,new Array(C.length+1).join(e.mask)):li.writeSync(tf,C)),t+=C),!e.keyIn&&n||e.keyIn&&t.length>=h)break}!f&&!s&&li.writeSync(tf,`
`),x(!1)}}(),e.print&&!s&&e.print(r+(e.displayOnly?"":(e.hideEchoBack?new Array(t.length+1).join(e.mask):t)+`
`),e.encoding),e.displayOnly?"":r9=e.keepWhitespace||e.keyIn?t:t.trim()}function dat(e,t){var r=[];function s(a){a!=null&&(Array.isArray(a)?a.forEach(s):(!t||t(a))&&r.push(a))}return s(e),r}function n9(e){return e.replace(/[\x00-\x7f]/g,function(t){return"\\x"+("00"+t.charCodeAt().toString(16)).substr(-2)})}function eo(){var e=Array.prototype.slice.call(arguments),t,r;return e.length&&typeof e[0]=="boolean"&&(r=e.shift(),r&&(t=Object.keys(X5),e.unshift(X5))),e.reduce(function(s,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||(t=Object.keys(a)),t.forEach(function(n){var c;if(a.hasOwnProperty(n))switch(c=a[n],n){case"mask":case"limitMessage":case"defaultInput":case"encoding":c=c!=null?c+"":"",c&&n!=="limitMessage"&&(c=c.replace(/[\r\n]/g,"")),s[n]=c;break;case"bufferSize":!isNaN(c=parseInt(c,10))&&typeof c=="number"&&(s[n]=c);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":s[n]=!!c;break;case"limit":case"trueValue":case"falseValue":s[n]=dat(c,function(f){var p=typeof f;return p==="string"||p==="number"||p==="function"||f instanceof RegExp}).map(function(f){return typeof f=="string"?f.replace(/[\r\n]/g,""):f});break;case"print":case"phContent":case"preCheck":s[n]=typeof c=="function"?c:void 0;break;case"prompt":case"display":s[n]=c??"";break}})),s},{})}function e9(e,t,r){return t.some(function(s){var a=typeof s;return a==="string"?r?e===s:e.toLowerCase()===s.toLowerCase():a==="number"?parseFloat(e)===s:a==="function"?s(e):s instanceof RegExp?s.test(e):!1})}function i9(e,t){var r=K0.normalize(Tm?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return e=K0.normalize(e),t?e.replace(/^~(?=\/|\\|$)/,r):e.replace(new RegExp("^"+n9(r)+"(?=\\/|\\\\|$)",Tm?"i":""),"~")}function HC(e,t){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",s=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function n(c,f,p,h,E,C){var S;return f||typeof(S=t(E))!="string"?p:S?(h||"")+S+(C||""):""}return e.replace(s,n).replace(a,n)}function nme(e,t,r){var s,a=[],n=-1,c=0,f="",p;function h(E,C){return C.length>3?(E.push(C[0]+"..."+C[C.length-1]),p=!0):C.length&&(E=E.concat(C)),E}return s=e.reduce(function(E,C){return E.concat((C+"").split(""))},[]).reduce(function(E,C){var S,x;return t||(C=C.toLowerCase()),S=/^\d$/.test(C)?1:/^[A-Z]$/.test(C)?2:/^[a-z]$/.test(C)?3:0,r&&S===0?f+=C:(x=C.charCodeAt(0),S&&S===n&&x===c+1?a.push(C):(E=h(E,a),a=[C],n=S),c=x),E},[]),s=h(s,a),f&&(s.push(f),p=!0),{values:s,suppressed:p}}function ime(e,t){return e.join(e.length>2?", ":t?" / ":"/")}function sme(e,t){var r,s,a={},n;if(t.phContent&&(r=t.phContent(e,t)),typeof r!="string")switch(e){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=t.hasOwnProperty(e)?typeof t[e]=="boolean"?t[e]?"on":"off":t[e]+"":"";break;case"limit":case"trueValue":case"falseValue":s=t[t.hasOwnProperty(e+"Src")?e+"Src":e],t.keyIn?(a=nme(s,t.caseSensitive),s=a.values):s=s.filter(function(c){var f=typeof c;return f==="string"||f==="number"}),r=ime(s,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=t[t.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||e!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=r9;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),e==="CWD"?r=K0.basename(r):e==="cwdHome"&&(r=i9(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+e.replace(/^./,function(c){return c.toUpperCase()})+"String"]();break;default:typeof(n=(e.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=Rm[Rm.length-n]||"")}return r}function ome(e){var t=/^(.)-(.)$/.exec(e),r="",s,a,n,c;if(!t)return null;for(s=t[1].charCodeAt(0),a=t[2].charCodeAt(0),c=s<a?1:-1,n=s;n!==a+c;n+=c)r+=String.fromCharCode(n);return r}function t9(e){var t=new RegExp(/(\s*)(?:("|')(.*?)(?:\2|$)|(\S+))/g),r,s="",a=[],n;for(e=e.trim();r=t.exec(e);)n=r[3]||r[4]||"",r[1]&&(a.push(s),s=""),s+=n;return s&&a.push(s),a}function ame(e,t){return t.trueValue.length&&e9(e,t.trueValue,t.caseSensitive)?!0:t.falseValue.length&&e9(e,t.falseValue,t.caseSensitive)?!1:e}function lme(e){var t,r,s,a,n,c,f;function p(E){return sme(E,e)}function h(E){e.display+=(/[^\r\n]$/.test(e.display)?`
`:"")+E}for(e.limitSrc=e.limit,e.displaySrc=e.display,e.limit="",e.display=HC(e.display+"",p);;){if(t=$5(e),r=!1,s="",e.defaultInput&&!t&&(t=e.defaultInput),e.history&&((a=/^\s*\!(?:\!|-1)(:p)?\s*$/.exec(t))?(n=Rm[0]||"",a[1]?r=!0:t=n,h(n+`
`),r||(e.displayOnly=!0,$5(e),e.displayOnly=!1)):t&&t!==Rm[Rm.length-1]&&(Rm=[t])),!r&&e.cd&&t)switch(c=t9(t),c[0].toLowerCase()){case"cd":if(c[1])try{process.chdir(i9(c[1],!0))}catch(E){h(E+"")}r=!0;break;case"pwd":h(process.cwd()),r=!0;break}if(!r&&e.preCheck&&(f=e.preCheck(t,e),t=f.res,f.forceNext&&(r=!0)),!r){if(!e.limitSrc.length||e9(t,e.limitSrc,e.caseSensitive))break;e.limitMessage&&(s=HC(e.limitMessage,p))}h((s?s+`
`:"")+HC(e.displaySrc+"",p))}return ame(t,e)}en._DBG_set_useExt=function(e){tme=e};en._DBG_set_checkOptions=function(e){Z5=e};en._DBG_set_checkMethod=function(e){cS=e};en._DBG_clearHistory=function(){r9="",Rm=[]};en.setDefaultOptions=function(e){return X5=eo(!0,e),eo(!0)};en.question=function(e,t){return lme(eo(eo(!0,t),{display:e}))};en.prompt=function(e){var t=eo(!0,e);return t.display=t.prompt,lme(t)};en.keyIn=function(e,t){var r=eo(eo(!0,t),{display:e,keyIn:!0,keepWhitespace:!0});return r.limitSrc=r.limit.filter(function(s){var a=typeof s;return a==="string"||a==="number"}).map(function(s){return HC(s+"",ome)}),r.limit=n9(r.limitSrc.join("")),["trueValue","falseValue"].forEach(function(s){r[s]=r[s].reduce(function(a,n){var c=typeof n;return c==="string"||c==="number"?a=a.concat((n+"").split("")):a.push(n),a},[])}),r.display=HC(r.display+"",function(s){return sme(s,r)}),ame($5(r),r)};en.questionEMail=function(e,t){return e==null&&(e="Input e-mail address: "),en.question(e,eo({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},t,{keepWhitespace:!1,cd:!1}))};en.questionNewPassword=function(e,t){var r,s,a,n=eo({hideEchoBack:!0,mask:"*",limitMessage:`It can include: $<charlist>
And the length must be: $<length>`,trueValue:null,falseValue:null,caseSensitive:!0},t,{history:!1,cd:!1,phContent:function(x){return x==="charlist"?r.text:x==="length"?s+"..."+a:null}}),c,f,p,h,E,C,S;for(t=t||{},c=HC(t.charlist?t.charlist+"":"$<!-~>",ome),(isNaN(s=parseInt(t.min,10))||typeof s!="number")&&(s=12),(isNaN(a=parseInt(t.max,10))||typeof a!="number")&&(a=24),h=new RegExp("^["+n9(c)+"]{"+s+","+a+"}$"),r=nme([c],n.caseSensitive,!0),r.text=ime(r.values,r.suppressed),f=t.confirmMessage!=null?t.confirmMessage:"Reinput a same one to confirm it: ",p=t.unmatchMessage!=null?t.unmatchMessage:"It differs from first one. Hit only the Enter key if you want to retry from first one.",e==null&&(e="Input new password: "),E=n.limitMessage;!S;)n.limit=h,n.limitMessage=E,C=en.question(e,n),n.limit=[C,""],n.limitMessage=p,S=en.question(f,n);return C};function cme(e,t,r){var s;function a(n){return s=r(n),!isNaN(s)&&typeof s=="number"}return en.question(e,eo({limitMessage:"Input valid number, please."},t,{limit:a,cd:!1})),s}en.questionInt=function(e,t){return cme(e,t,function(r){return parseInt(r,10)})};en.questionFloat=function(e,t){return cme(e,t,parseFloat)};en.questionPath=function(e,t){var r,s="",a=eo({hideEchoBack:!1,limitMessage:`$<error(
)>Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},t,{keepWhitespace:!1,limit:function(n){var c,f,p;n=i9(n,!0),s="";function h(E){E.split(/\/|\\/).reduce(function(C,S){var x=K0.resolve(C+=S+K0.sep);if(!li.existsSync(x))li.mkdirSync(x);else if(!li.statSync(x).isDirectory())throw new Error("Non directory already exists: "+x);return C},"")}try{if(c=li.existsSync(n),r=c?li.realpathSync(n):K0.resolve(n),!t.hasOwnProperty("exists")&&!c||typeof t.exists=="boolean"&&t.exists!==c)return s=(c?"Already exists":"No such file or directory")+": "+r,!1;if(!c&&t.create&&(t.isDirectory?h(r):(h(K0.dirname(r)),li.closeSync(li.openSync(r,"w"))),r=li.realpathSync(r)),c&&(t.min||t.max||t.isFile||t.isDirectory)){if(f=li.statSync(r),t.isFile&&!f.isFile())return s="Not file: "+r,!1;if(t.isDirectory&&!f.isDirectory())return s="Not directory: "+r,!1;if(t.min&&f.size<+t.min||t.max&&f.size>+t.max)return s="Size "+f.size+" is out of range: "+r,!1}if(typeof t.validate=="function"&&(p=t.validate(r))!==!0)return typeof p=="string"&&(s=p),!1}catch(E){return s=E+"",!1}return!0},phContent:function(n){return n==="error"?s:n!=="min"&&n!=="max"?null:t.hasOwnProperty(n)?t[n]+"":""}});return t=t||{},e==null&&(e='Input path (you can "cd" and "pwd"): '),en.question(e,a),r};function ume(e,t){var r={},s={};return typeof e=="object"?(Object.keys(e).forEach(function(a){typeof e[a]=="function"&&(s[t.caseSensitive?a:a.toLowerCase()]=e[a])}),r.preCheck=function(a){var n;return r.args=t9(a),n=r.args[0]||"",t.caseSensitive||(n=n.toLowerCase()),r.hRes=n!=="_"&&s.hasOwnProperty(n)?s[n].apply(a,r.args.slice(1)):s.hasOwnProperty("_")?s._.apply(a,r.args):null,{res:a,forceNext:!1}},s.hasOwnProperty("_")||(r.limit=function(){var a=r.args[0]||"";return t.caseSensitive||(a=a.toLowerCase()),s.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=t9(a),r.hRes=typeof e=="function"?e.apply(a,r.args):!0,{res:a,forceNext:!1}},r}en.promptCL=function(e,t){var r=eo({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},t),s=ume(e,r);return r.limit=s.limit,r.preCheck=s.preCheck,en.prompt(r),s.args};en.promptLoop=function(e,t){for(var r=eo({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},t);!e(en.prompt(r)););};en.promptCLLoop=function(e,t){var r=eo({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},t),s=ume(e,r);for(r.limit=s.limit,r.preCheck=s.preCheck;en.prompt(r),!s.hRes;);};en.promptSimShell=function(e){return en.prompt(eo({hideEchoBack:!1,history:!0},e,{prompt:function(){return Tm?"$<cwd>>":(process.env.USER||"")+(process.env.HOSTNAME?"@"+process.env.HOSTNAME.replace(/\..*$/,""):"")+":$<cwdHome>$ "}()}))};function fme(e,t,r){var s;return e==null&&(e="Are you sure? "),(!t||t.guide!==!1)&&(e+="")&&(e=e.replace(/\s*:?\s*$/,"")+" [y/n]: "),s=en.keyIn(e,eo(t,{hideEchoBack:!1,limit:r,trueValue:"y",falseValue:"n",caseSensitive:!1})),typeof s=="boolean"?s:""}en.keyInYN=function(e,t){return fme(e,t)};en.keyInYNStrict=function(e,t){return fme(e,t,"yn")};en.keyInPause=function(e,t){e==null&&(e="Continue..."),(!t||t.guide!==!1)&&(e+="")&&(e=e.replace(/\s+$/,"")+" (Hit any key)"),en.keyIn(e,eo({limit:null},t,{hideEchoBack:!0,mask:""}))};en.keyInSelect=function(e,t,r){var s=eo({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(p){return p==="itemsCount"?e.length+"":p==="firstItem"?(e[0]+"").trim():p==="lastItem"?(e[e.length-1]+"").trim():null}}),a="",n={},c=49,f=`
`;if(!Array.isArray(e)||!e.length||e.length>35)throw"`items` must be Array (max length: 35).";return e.forEach(function(p,h){var E=String.fromCharCode(c);a+=E,n[E]=h,f+="["+E+"] "+(p+"").trim()+`
`,c=c===57?97:c+1}),(!r||r.cancel!==!1)&&(a+="0",n[0]=-1,f+="[0] "+(r&&r.cancel!=null&&typeof r.cancel!="boolean"?(r.cancel+"").trim():"CANCEL")+`
`),s.limit=a,f+=`
`,t==null&&(t="Choose one from list: "),(t+="")&&((!r||r.guide!==!1)&&(t=t.replace(/\s*:?\s*$/,"")+" [$<limit>]: "),f+=t),n[en.keyIn(f,s).toLowerCase()]};en.getRawInput=function(){return KT};function uS(e,t){var r;return t.length&&(r={},r[e]=t[0]),en.setDefaultOptions(r)[e]}en.setPrint=function(){return uS("print",arguments)};en.setPrompt=function(){return uS("prompt",arguments)};en.setEncoding=function(){return uS("encoding",arguments)};en.setMask=function(){return uS("mask",arguments)};en.setBufferSize=function(){return uS("bufferSize",arguments)}});var s9=G((tqt,nc)=>{(function(){var e={major:0,minor:2,patch:66,status:"beta"};tau_file_system={files:{},open:function(w,D,y){var F=tau_file_system.files[w];if(!F){if(y==="read")return null;F={path:w,text:"",type:D,get:function(z,X){return X===this.text.length||X>this.text.length?"end_of_file":this.text.substring(X,X+z)},put:function(z,X){return X==="end_of_file"?(this.text+=z,!0):X==="past_end_of_file"?null:(this.text=this.text.substring(0,X)+z+this.text.substring(X+z.length),!0)},get_byte:function(z){if(z==="end_of_stream")return-1;var X=Math.floor(z/2);if(this.text.length<=X)return-1;var ee=n(this.text[Math.floor(z/2)],0);return z%2===0?ee&255:ee/256>>>0},put_byte:function(z,X){var ee=X==="end_of_stream"?this.text.length:Math.floor(X/2);if(this.text.length<ee)return null;var se=this.text.length===ee?-1:n(this.text[Math.floor(X/2)],0);return X%2===0?(se=se/256>>>0,se=(se&255)<<8|z&255):(se=se&255,se=(z&255)<<8|se&255),this.text.length===ee?this.text+=c(se):this.text=this.text.substring(0,ee)+c(se)+this.text.substring(ee+1),!0},flush:function(){return!0},close:function(){var z=tau_file_system.files[this.path];return z?!0:null}},tau_file_system.files[w]=F}return y==="write"&&(F.text=""),F}},tau_user_input={buffer:"",get:function(w,D){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,D){return console.log(w),!0},flush:function(){return!0}},nodejs_file_system={open:function(w,D,y){var F=Ie("fs"),z=F.openSync(w,y[0]);return y==="read"&&!F.existsSync(w)?null:{get:function(X,ee){var se=new Buffer(X);return F.readSync(z,se,0,X,ee),se.toString()},put:function(X,ee){var se=Buffer.from(X);if(ee==="end_of_file")F.writeSync(z,se);else{if(ee==="past_end_of_file")return null;F.writeSync(z,se,0,se.length,ee)}return!0},get_byte:function(X){return null},put_byte:function(X,ee){return null},flush:function(){return!0},close:function(){return F.closeSync(z),!0}}}},nodejs_user_input={buffer:"",get:function(w,D){for(var y,F=Ame();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,D){return process.stdout.write(w),!0},flush:function(){return!0}};var t;Array.prototype.indexOf?t=function(w,D){return w.indexOf(D)}:t=function(w,D){for(var y=w.length,F=0;F<y;F++)if(D===w[F])return F;return-1};var r=function(w,D){if(w.length!==0){for(var y=w[0],F=w.length,z=1;z<F;z++)y=D(y,w[z]);return y}},s;Array.prototype.map?s=function(w,D){return w.map(D)}:s=function(w,D){for(var y=[],F=w.length,z=0;z<F;z++)y.push(D(w[z]));return y};var a;Array.prototype.filter?a=function(w,D){return w.filter(D)}:a=function(w,D){for(var y=[],F=w.length,z=0;z<F;z++)D(w[z])&&y.push(w[z]);return y};var n;String.prototype.codePointAt?n=function(w,D){return w.codePointAt(D)}:n=function(w,D){return w.charCodeAt(D)};var c;String.fromCodePoint?c=function(){return String.fromCodePoint.apply(null,arguments)}:c=function(){return String.fromCharCode.apply(null,arguments)};var f=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 C(w){var D=[],y=!1;return w.replace(h,function(F,z,X,ee,se,xe,Fe,ut,Ct,Yt,ir,Pt,mn,Pr,Cr,Lr,on){switch(!0){case Ct!==void 0:return D.push(parseInt(Ct,16)),"";case Yt!==void 0:return D.push(parseInt(Yt,8)),"";case ir!==void 0:case Pt!==void 0:case mn!==void 0:case Pr!==void 0:case Cr!==void 0:return D.push(n(F.substr(1),0)),"";case on!==void 0:return D.push(n(on,0)),"";case Lr!==void 0:y=!0;default:return D.push(E[F]),""}}),y?null:D}function S(w,D){var y="";if(w.length<2)return w;try{w=w.replace(/\\([0-7]+)\\/g,function(ee,se){return c(parseInt(se,8))}),w=w.replace(/\\x([0-9a-fA-F]+)\\/g,function(ee,se){return c(parseInt(se,16))})}catch{return null}for(var F=0;F<w.length;F++){var z=w.charAt(F),X=w.charAt(F+1);if(z===D&&X===D)F++,y+=D;else if(z==="\\")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+=z}return y}function x(w){for(var D="",y=0;y<w.length;y++)switch(w.charAt(y)){case"'":D+="\\'";break;case"\\":D+="\\\\";break;case"\b":D+="\\b";break;case"\f":D+="\\f";break;case`
`:D+="\\n";break;case"\r":D+="\\r";break;case" ":D+="\\t";break;case"\v":D+="\\v";break;default:D+=w.charAt(y);break}return D}function I(w){var D=w.substr(2);switch(w.substr(0,2).toLowerCase()){case"0x":return parseInt(D,16);case"0b":return parseInt(D,2);case"0o":return parseInt(D,8);case"0'":return C(D)[0];default:return parseFloat(w)}}var T={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 O(w,D){return w.get_flag("char_conversion").id==="on"?D.replace(/./g,function(y){return w.get_char_conversion(y)}):D}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 D,y=0,F=0,z=0,X=[],ee=!1;if(w){var se=this.tokens[w-1];y=se.len,D=O(this.thread,this.text.substr(se.len)),F=se.line,z=se.start}else D=this.text;if(/^\s*$/.test(D))return null;for(;D!=="";){var xe=[],Fe=!1;if(/^\n/.exec(D)!==null){F++,z=0,y++,D=D.replace(/\n/,""),ee=!0;continue}for(var ut in T)if(T.hasOwnProperty(ut)){var Ct=T[ut].exec(D);Ct&&xe.push({value:Ct[0],name:ut,matches:Ct})}if(!xe.length)return this.set_last_tokens([{value:D,matches:[],name:"lexical",line:F,start:z}]);var se=r(xe,function(Pr,Cr){return Pr.value.length>=Cr.value.length?Pr:Cr});switch(se.start=z,se.line=F,D=D.replace(se.value,""),z+=se.value.length,y+=se.value.length,se.name){case"atom":se.raw=se.value,se.value.charAt(0)==="'"&&(se.value=S(se.value.substr(1,se.value.length-2),"'"),se.value===null&&(se.name="lexical",se.value="unknown escape sequence"));break;case"number":se.float=se.value.substring(0,2)!=="0x"&&se.value.match(/[.eE]/)!==null&&se.value!=="0'.",se.value=I(se.value),se.blank=Fe;break;case"string":var Yt=se.value.charAt(0);se.value=S(se.value.substr(1,se.value.length-2),Yt),se.value===null&&(se.name="lexical",se.value="unknown escape sequence");break;case"whitespace":var ir=X[X.length-1];ir&&(ir.space=!0),Fe=!0;continue;case"r_bracket":X.length>0&&X[X.length-1].name==="l_bracket"&&(se=X.pop(),se.name="atom",se.value="{}",se.raw="{}",se.space=!1);break;case"r_brace":X.length>0&&X[X.length-1].name==="l_brace"&&(se=X.pop(),se.name="atom",se.value="[]",se.raw="[]",se.space=!1);break}se.len=y,X.push(se),Fe=!1}var Pt=this.set_last_tokens(X);return Pt.length===0?null:Pt};function V(w,D,y,F,z){if(!D[y])return{type:f,value:P.error.syntax(D[y-1],"expression expected",!0)};var X;if(F==="0"){var ee=D[y];switch(ee.name){case"number":return{type:p,len:y+1,value:new P.type.Num(ee.value,ee.float)};case"variable":return{type:p,len:y+1,value:new P.type.Var(ee.value)};case"string":var se;switch(w.get_flag("double_quotes").id){case"atom":se=new _(ee.value,[]);break;case"codes":se=new _("[]",[]);for(var xe=ee.value.length-1;xe>=0;xe--)se=new _(".",[new P.type.Num(n(ee.value,xe),!1),se]);break;case"chars":se=new _("[]",[]);for(var xe=ee.value.length-1;xe>=0;xe--)se=new _(".",[new P.type.Term(ee.value.charAt(xe),[]),se]);break}return{type:p,len:y+1,value:se};case"l_paren":var Pt=V(w,D,y+1,w.__get_max_priority(),!0);return Pt.type!==p?Pt:D[Pt.len]&&D[Pt.len].name==="r_paren"?(Pt.len++,Pt):{type:f,derived:!0,value:P.error.syntax(D[Pt.len]?D[Pt.len]:D[Pt.len-1],") or operator expected",!D[Pt.len])};case"l_bracket":var Pt=V(w,D,y+1,w.__get_max_priority(),!0);return Pt.type!==p?Pt:D[Pt.len]&&D[Pt.len].name==="r_bracket"?(Pt.len++,Pt.value=new _("{}",[Pt.value]),Pt):{type:f,derived:!0,value:P.error.syntax(D[Pt.len]?D[Pt.len]:D[Pt.len-1],"} or operator expected",!D[Pt.len])}}var Fe=$(w,D,y,z);return Fe.type===p||Fe.derived||(Fe=ie(w,D,y),Fe.type===p||Fe.derived)?Fe:{type:f,derived:!1,value:P.error.syntax(D[y],"unexpected token")}}var ut=w.__get_max_priority(),Ct=w.__get_next_priority(F),Yt=y;if(D[y].name==="atom"&&D[y+1]&&(D[y].space||D[y+1].name!=="l_paren")){var ee=D[y++],ir=w.__lookup_operator_classes(F,ee.value);if(ir&&ir.indexOf("fy")>-1){var Pt=V(w,D,y,F,z);if(Pt.type!==f)return ee.value==="-"&&!ee.space&&P.type.is_number(Pt.value)?{value:new P.type.Num(-Pt.value.value,Pt.value.is_float),len:Pt.len,type:p}:{value:new P.type.Term(ee.value,[Pt.value]),len:Pt.len,type:p};X=Pt}else if(ir&&ir.indexOf("fx")>-1){var Pt=V(w,D,y,Ct,z);if(Pt.type!==f)return{value:new P.type.Term(ee.value,[Pt.value]),len:Pt.len,type:p};X=Pt}}y=Yt;var Pt=V(w,D,y,Ct,z);if(Pt.type===p){y=Pt.len;var ee=D[y];if(D[y]&&(D[y].name==="atom"&&w.__lookup_operator_classes(F,ee.value)||D[y].name==="bar"&&w.__lookup_operator_classes(F,"|"))){var mn=Ct,Pr=F,ir=w.__lookup_operator_classes(F,ee.value);ifLine truncated
`;D+=`
`;for(key in this.rules)for(y=0;y<this.rules[key].length;y++)D+=this.rules[key][y].toString(w),D+=`
`;return D},be.prototype.clone=function(){return new be(this.id)},Qe.prototype.clone=function(){return new Qe(this.value,this.is_float)},_.prototype.clone=function(){return new _(this.id,s(this.args,function(w){return w.clone()}))},Ne.prototype.clone=function(){return new Stram(this.stream,this.mode,this.alias,this.type,this.reposition,this.eof_action)},ke.prototype.clone=function(){var w={};for(var D in this.links)this.links.hasOwnProperty(D)&&(w[D]=this.links[D].clone());return new ke(w)},De.prototype.clone=function(){return new De(this.goal.clone(),this.substitution.clone(),this.parent)},je.prototype.clone=function(){return new je(this.head.clone(),this.body!==null?this.body.clone():null)},be.prototype.equals=function(w){return P.type.is_variable(w)&&this.id===w.id},Qe.prototype.equals=function(w){return P.type.is_number(w)&&this.value===w.value&&this.is_float===w.is_float},_.prototype.equals=function(w){if(!P.type.is_term(w)||this.indicator!==w.indicator)return!1;for(var D=0;D<this.args.length;D++)if(!this.args[D].equals(w.args[D]))return!1;return!0},Ne.prototype.equals=function(w){return P.type.is_stream(w)&&this.id===w.id},ke.prototype.equals=function(w){var D;if(!P.type.is_substitution(w))return!1;for(D in this.links)if(this.links.hasOwnProperty(D)&&(!w.links[D]||!this.links[D].equals(w.links[D])))return!1;for(D in w.links)if(w.links.hasOwnProperty(D)&&!this.links[D])return!1;return!0},De.prototype.equals=function(w){return P.type.is_state(w)&&this.goal.equals(w.goal)&&this.substitution.equals(w.substitution)&&this.parent===w.parent},je.prototype.equals=function(w){return P.type.is_rule(w)&&this.head.equals(w.head)&&(this.body===null&&w.body===null||this.body!==null&&this.body.equals(w.body))},be.prototype.rename=function(w){return w.get_free_variable(this)},Qe.prototype.rename=function(w){return this},_.prototype.rename=function(w){return new _(this.id,s(this.args,function(D){return D.rename(w)}))},Ne.prototype.rename=function(w){return this},je.prototype.rename=function(w){return new je(this.head.rename(w),this.body!==null?this.body.rename(w):null)},be.prototype.variables=function(){return[this.id]},Qe.prototype.variables=function(){return[]},_.prototype.variables=function(){return[].concat.apply([],s(this.args,function(w){return w.variables()}))},Ne.prototype.variables=function(){return[]},je.prototype.variables=function(){return this.body===null?this.head.variables():this.head.variables().concat(this.body.variables())},be.prototype.apply=function(w){return w.lookup(this.id)?w.lookup(this.id):this},Qe.prototype.apply=function(w){return this},_.prototype.apply=function(w){if(this.indicator==="./2"){for(var D=[],y=this;y.indicator==="./2";)D.push(y.args[0].apply(w)),y=y.args[1];for(var F=y.apply(w),z=D.length-1;z>=0;z--)F=new _(".",[D[z],F]);return F}return new _(this.id,s(this.args,function(X){return X.apply(w)}),this.ref)},Ne.prototype.apply=function(w){return this},je.prototype.apply=function(w){return new je(this.head.apply(w),this.body!==null?this.body.apply(w):null)},ke.prototype.apply=function(w){var D,y={};for(D in this.links)this.links.hasOwnProperty(D)&&(y[D]=this.links[D].apply(w));return new ke(y)},_.prototype.select=function(){for(var w=this;w.indicator===",/2";)w=w.args[0];return w},_.prototype.replace=function(w){return this.indicator===",/2"?this.args[0].indicator===",/2"?new _(",",[this.args[0].replace(w),this.args[1]]):w===null?this.args[1]:new _(",",[w,this.args[1]]):w},_.prototype.search=function(w){if(P.type.is_term(w)&&w.ref!==void 0&&this.ref===w.ref)return!0;for(var D=0;D<this.args.length;D++)if(P.type.is_term(this.args[D])&&this.args[D].search(w))return!0;return!1},Re.prototype.get_current_input=function(){return this.current_input},ct.prototype.get_current_input=function(){return this.session.get_current_input()},Re.prototype.get_current_output=function(){return this.current_output},ct.prototype.get_current_output=function(){return this.session.get_current_output()},Re.prototype.set_current_input=function(w){this.current_input=w},ct.prototype.set_current_input=function(w){return this.session.set_current_input(w)},Re.prototype.set_current_output=function(w){this.current_input=w},ct.prototype.set_current_output=function(w){return this.session.set_current_output(w)},Re.prototype.get_stream_by_alias=function(w){return this.streams[w]},ct.prototype.get_stream_by_alias=function(w){return this.session.get_stream_by_alias(w)},Re.prototype.file_system_open=function(w,D,y){return this.file_system.open(w,D,y)},ct.prototype.file_system_open=function(w,D,y){return this.session.file_system_open(w,D,y)},Re.prototype.get_char_conversion=function(w){return this.__char_conversion[w]||w},ct.prototype.get_char_conversion=function(w){return this.session.get_char_conversion(w)},Re.prototype.parse=function(w){return this.thread.parse(w)},ct.prototype.parse=function(w){var D=new U(this);D.new_text(w);var y=D.get_tokens();if(y===null)return!1;var F=V(this,y,0,this.__get_max_priority(),!1);return F Line truncated
`,[])])])),D.substitution,D)])},"nl/1":function(w,D,y){var F=y.args[0];w.prepend([new De(D.goal.replace(new _("put_char",[F,new _(`
`,[])])),D.substitution,D)])},"get_byte/1":function(w,D,y){var F=y.args[0];w.prepend([new De(D.goal.replace(new _(",",[new _("current_input",[new be("S")]),new _("get_byte",[new be("S"),F])])),D.substitution,D)])},"get_byte/2":function(w,D,y){var F=y.args[0],z=y.args[1],X=P.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(P.type.is_variable(F))w.throw_error(P.error.instantiation(y.indicator));else if(!P.type.is_variable(z)&&!P.type.is_byte(z))w.throw_error(P.error.type("in_byte",char,y.indicator));else if(!P.type.is_stream(F)&&!P.type.is_atom(F))w.throw_error(P.error.domain("stream_or_alias",F,y.indicator));else if(!P.type.is_stream(X)||X.stream===null)w.throw_error(P.error.existence("stream",F,y.indicator));else if(X.output)w.throw_error(P.error.permission("input","stream",F,y.indicator));else if(X.type==="text")w.throw_error(P.error.permission("input","text_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")w.throw_error(P.error.permission("input","past_end_of_stream",F,y.indicator));else{var ee;if(X.position==="end_of_stream")ee="end_of_file",X.position="past_end_of_stream";else{if(ee=X.stream.get_byte(X.position),ee===null){w.throw_error(P.error.representation("byte",y.indicator));return}X.position++}w.prepend([new De(D.goal.replace(new _("=",[new Qe(ee,!1),z])),D.substitution,D)])}},"peek_byte/1":function(w,D,y){var F=y.args[0];w.prepend([new De(D.goal.replace(new _(",",[new _("current_input",[new be("S")]),new _("peek_byte",[new be("S"),F])])),D.substitution,D)])},"peek_byte/2":function(w,D,y){var F=y.args[0],z=y.args[1],X=P.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(P.type.is_variable(F))w.throw_error(P.error.instantiation(y.indicator));else if(!P.type.is_variable(z)&&!P.type.is_byte(z))w.throw_error(P.error.type("in_byte",char,y.indicator));else if(!P.type.is_stream(F)&&!P.type.is_atom(F))w.throw_error(P.error.domain("stream_or_alias",F,y.indicator));else if(!P.type.is_stream(X)||X.stream===null)w.throw_error(P.error.existence("stream",F,y.indicator));else if(X.output)w.throw_error(P.error.permission("input","stream",F,y.indicator));else if(X.type==="text")w.throw_error(P.error.permission("input","text_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")w.throw_error(P.error.permission("input","past_end_of_stream",F,y.indicator));else{var ee;if(X.position==="end_of_stream")ee="end_of_file",X.position="past_end_of_stream";else if(ee=X.stream.get_byte(X.position),ee===null){w.throw_error(P.error.representation("byte",y.indicator));return}w.prepend([new De(D.goal.replace(new _("=",[new Qe(ee,!1),z])),D.substitution,D)])}},"put_byte/1":function(w,D,y){var F=y.args[0];w.prepend([new De(D.goal.replace(new _(",",[new _("current_output",[new be("S")]),new _("put_byte",[new be("S"),F])])),D.substitution,D)])},"put_byte/2":function(w,D,y){var F=y.args[0],z=y.args[1],X=P.type.is_stream(F)?F:w.get_stream_by_alias(F.id);P.type.is_variable(F)||P.type.is_variable(z)?w.throw_error(P.error.instantiation(y.indicator)):P.type.is_byte(z)?!P.type.is_variable(F)&&!P.type.is_stream(F)&&!P.type.is_atom(F)?w.throw_error(P.error.domain("stream_or_alias",F,y.indicator)):!P.type.is_stream(X)||X.stream===null?w.throw_error(P.error.existence("stream",F,y.indicator)):X.input?w.throw_error(P.error.permission("output","stream",F,y.indicator)):X.type==="text"?w.throw_error(P.error.permission("output","text_stream",F,y.indicator)):X.stream.put_byte(z.value,X.position)&&(typeof X.position=="number"&&X.position++,w.success(D)):w.throw_error(P.error.type("byte",z,y.indicator))},"read/1":function(w,D,y){var F=y.args[0];w.prepend([new De(D.goal.replace(new _(",",[new _("current_input",[new be("S")]),new _("read_term",[new be("S"),F,new _("[]",[])])])),D.substitution,D)])},"read/2":function(w,D,y){var F=y.args[0],z=y.args[1];w.prepend([new De(D.goal.replace(new _("read_term",[F,z,new _("[]",[])])),D.substitution,D)])},"read_term/2":function(w,D,y){var F=y.args[0],z=y.args[1];w.prepend([new De(D.goal.replace(new _(",",[new _("current_input",[new be("S")]),new _("read_term",[new be("S"),F,z])])),D.substitution,D)])},"read_term/3":function(w,D,y){var F=y.args[0],z=y.args[1],X=y.args[2],ee=P.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(P.type.is_variable(F)||P.type.is_variable(X))w.throw_error(P.error.instantiation(y.indicator));else if(!P.type.is_list(X))w.throw_error(P.error.type("list",X,y.indicator));else if(!P.type.is_stream(F)&&!P.type.is_atom(F))w.throw_error(P.error.domain("stream_or_alias",F,y.indicator));else if(!P.type.is_stream(ee)||ee.stream===null)w.throw_error(P.error.existence("stream",F,y.indicator));else if(ee.output)w.throw_error(P.error.permission("input","stream",F,y.indicator));else if(ee.type==="binary")w.throw_error(P.error.permission("input","binary_stream",F,y.indicator));else if(ee.position==="past_end_of_stream"&&ee.eof_action==="error")w.throw_error(P.error.permission("input","past_end_of_stream",F,y.indicator));else{for(v Line truncated
`;for(let r of this.project.workspacesByCwd.values()){let s=r.relativeCwd;t+=`workspace(${z0(s)}).
`,t+=`workspace_ident(${z0(s)}, ${z0(j.stringifyIdent(r.anchoredLocator))}).
`,t+=`workspace_version(${z0(s)}, ${z0(r.manifest.version)}).
`;for(let a of yme)for(let n of r.manifest[a].values())t+=`workspace_has_dependency(${z0(s)}, ${z0(j.stringifyIdent(n))}, ${z0(n.range)}, ${a}).
`}return t+=`workspace(_) :- false.
`,t+=`workspace_ident(_, _) :- false.
`,t+=`workspace_version(_, _) :- false.
`,t+=`workspace_has_dependency(_, _, _, _) :- false.
`,t}getDeclarations(){let t="";return t+=`gen_enforced_dependency(_, _, _, _) :- false.
`,t+=`gen_enforced_field(_, _, _) :- false.
`,t}get fullSource(){return`${this.getProjectDatabase()}
${this.source}
${this.getDeclarations()}`}createSession(){return new a9(this.project,this.fullSource)}async processClassic(){let t=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(t),enforcedFields:await this.genEnforcedFields(t)}}async process(){let{enforcedDependencies:t,enforcedFields:r}=await this.processClassic(),s=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:c,dependencyType:f}of t){let p=aS([f,j.stringifyIdent(n)]),h=qe.getMapWithDefault(s,a.cwd);qe.getMapWithDefault(h,p).set(c??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:c}of r){let f=aS(n),p=qe.getMapWithDefault(s,a.cwd);qe.getMapWithDefault(p,f).set(JSON.parse(c)??void 0,new Set)}return{manifestUpdates:s,reportedErrors:new Map}}async genEnforcedDependencies(t){let r=[];for await(let s of t.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=K.resolve(this.project.cwd,Fm(s.links.WorkspaceCwd)),n=Fm(s.links.DependencyIdent),c=Fm(s.links.DependencyRange),f=Fm(s.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=j.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:c,dependencyType:f})}return qe.sortMap(r,[({dependencyRange:s})=>s!==null?"0":"1",({workspace:s})=>j.stringifyIdent(s.anchoredLocator),({dependencyIdent:s})=>j.stringifyIdent(s)])}async genEnforcedFields(t){let r=[];for await(let s of t.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=K.resolve(this.project.cwd,Fm(s.links.WorkspaceCwd)),n=Fm(s.links.FieldPath),c=Eat(s.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let f=this.project.getWorkspaceByCwd(a);r.push({workspace:f,fieldPath:n,fieldValue:c})}return qe.sortMap(r,[({workspace:s})=>j.stringifyIdent(s.anchoredLocator),({fieldPath:s})=>s])}async*query(t){let r=this.createSession();for await(let s of r.makeQuery(t)){let a={};for(let[n,c]of Object.entries(s.links))n!=="_"&&(a[n]=Fm(c));yield a}}}});var kme=G(ZT=>{"use strict";Object.defineProperty(ZT,"__esModule",{value:!0});function DS(e){let t=[...e.caches],r=t.shift();return r===void 0?xme():{get(s,a,n={miss:()=>Promise.resolve()}){return r.get(s,a,n).catch(()=>DS({caches:t}).get(s,a,n))},set(s,a){return r.set(s,a).catch(()=>DS({caches:t}).set(s,a))},delete(s){return r.delete(s).catch(()=>DS({caches:t}).delete(s))},clear(){return r.clear().catch(()=>DS({caches:t}).clear())}}}function xme(){return{get(e,t,r={miss:()=>Promise.resolve()}){return t().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(e,t){return Promise.resolve(t)},delete(e){return Promise.resolve()},clear(){return Promise.resolve()}}}ZT.createFallbackableCache=DS;ZT.createNullCache=xme});var Rme=G((MWt,Qme)=>{Qme.exports=kme()});var Tme=G(w9=>{"use strict";Object.defineProperty(w9,"__esModule",{value:!0});function Mat(e={serializable:!0}){let t={};return{get(r,s,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in t)return Promise.resolve(e.serializable?JSON.parse(t[n]):t[n]);let c=s(),f=a&&a.miss||(()=>Promise.resolve());return c.then(p=>f(p)).then(()=>c)},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()}}}w9.createInMemoryCache=Mat});var Nme=G((_Wt,Fme)=>{Fme.exports=Tme()});var Lme=G(rf=>{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});function Uat(e,t,r){let s={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers(){return e===B9.WithinHeaders?s:{}},queryParameters(){return e===B9.WithinQueryParameters?s:{}}}}function _at(e){let t=0,r=()=>(t++,new Promise(s=>{setTimeout(()=>{s(e(r))},Math.min(100*t,1e3))}));return e(r)}function Ome(e,t=(r,s)=>Promise.resolve()){return Object.assign(e,{wait(r){return Ome(e.then(s=>Promise.all([t(s,r),s])).then(s=>s[1]))}})}function Hat(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 jat(e,t){return t&&Object.keys(t).forEach(r=>{e[r]=t[r](e)}),e}function Gat(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}var qat="4.22.1",Yat=e=>()=>e.transporter.requester.destroy(),B9={WithinQueryParameters:0,WithinHeaders:1};rf.AuthMode=B9;rf.addMethods=jat;rf.createAuth=Uat;rf.createRetryablePromise=_at;rf.createWaitablePromise=Ome;rf.destroy=Yat;rf.encode=Gat;rf.shuffle=Hat;rf.version=qat});var PS=G((jWt,Mme)=>{Mme.exports=Lme()});var Ume=G(v9=>{"use strict";Object.defineProperty(v9,"__esModule",{value:!0});var Wat={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};v9.MethodEnum=Wat});var xS=G((qWt,_me)=>{_me.exports=Ume()});var tye=G(Wi=>{"use strict";Object.defineProperty(Wi,"__esModule",{value:!0});var jme=xS();function S9(e,t){let r=e||{},s=r.data||{};return Object.keys(r).forEach(a=>{["timeout","head Line truncated
`;f!==s&&(s=f,e.write(ZEe.default.eraseLines(r)+f),r=f.split(`
`).length)};return n.clear=()=>{e.write(ZEe.default.eraseLines(r)),s="",r=0},n.done=()=>{s="",r=0,t||($Ee.default.show(),a=!1)},n};HS.default={create:_ut}});var rIe=G((RVt,Hut)=>{Hut.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 sIe=G(ic=>{"use strict";var iIe=rIe(),pA=process.env;Object.defineProperty(ic,"_vendors",{value:iIe.map(function(e){return e.constant})});ic.name=null;ic.isPR=null;iIe.forEach(function(e){var t=Array.isArray(e.env)?e.env:[e.env],r=t.every(function(s){return nIe(s)});if(ic[e.constant]=r,r)switch(ic.name=e.name,typeof e.pr){case"string":ic.isPR=!!pA[e.pr];break;case"object":"env"in e.pr?ic.isPR=e.pr.env in pA&&pA[e.pr.env]!==e.pr.ne:"any"in e.pr?ic.isPR=e.pr.any.some(function(s){return!!pA[s]}):ic.isPR=nIe(e.pr);break;default:ic.isPR=null}});ic.isCI=!!(pA.CI||pA.CONTINUOUS_INTEGRATION||pA.BUILD_NUMBER||pA.RUN_ID||ic.name);function nIe(e){return typeof e=="string"?!!pA[e]:Object.keys(e).every(function(t){return pA[t]===e[t]})}});var aIe=G((FVt,oIe)=>{"use strict";oIe.exports=sIe().isCI});var cIe=G((NVt,lIe)=>{"use strict";var jut=e=>{let t=new Set;do for(let r of Reflect.ownKeys(e))t.add([e,r]);while((e=Reflect.getPrototypeOf(e))&&e!==Object.prototype);return t};lIe.exports=(e,{include:t,exclude:r}={})=>{let s=a=>{let n=c=>typeof c=="string"?a===c:c.test(a);return t?t.some(n):r?!r.some(n):!0};for(let[a,n]of jut(e.constructor.prototype)){if(n==="constructor"||!s(n))continue;let c=Reflect.getOwnPropertyDescriptor(a,n);c&&typeof c.value=="function"&&(e[n]=e[n].bind(e))}return e}});var dIe=G(zn=>{"use strict";var uw,qS,yF,uq;typeof performance=="object"&&typeof performance.now=="function"?(uIe=performance,zn.unstable_now=function(){return uIe.now()}):(iq=Date,fIe=iq.now(),zn.unstable_now=function(){return iq.now()-fIe});var uIe,iq,fIe;typeof window>"u"||typeof MessageChannel!="function"?(cw=null,sq=null,oq=function(){if(cw!==null)try{var e=zn.unstable_now();cw(!0,e),cw=null}catch(t){throw setTimeout(oq,0),t}},uw=function(e){cw!==null?setTimeout(uw,0,e):(cw=e,setTimeout(oq,0))},qS=function(e,t){sq=setTimeout(e,t)},yF=function(){clearTimeout(sq)},zn.unstable_shouldYield=function(){return!1},uq=zn.unstable_forceFrameRate=function(){}):(AIe=window.setTimeout,pIe=window.clearTimeout,typeof console<"u"&&(hIe=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://reactjs.org/link/react-polyfills"),typeof hIe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),jS=!1,GS=null,dF=-1,aq=5,lq=0,zn.unstable_shouldYield=function(){return zn.unstable_now()>=lq},uq=function(){},zn.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):aq=0<e?Math Line truncated
`+uu+v}var we=!1;function Ot(v,b){if(!v||we)return"";we=!0;var Q=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error()},Object.defineProperty(b.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(b,[])}catch(ht){var H=ht}Reflect.construct(v,[],b)}else{try{b.call()}catch(ht){H=ht}v.call(b.prototype)}else{try{throw Error()}catch(ht){H=ht}v()}}catch(ht){if(ht&&H&&typeof ht.stack=="string"){for(var W=ht.stack.split(`
`),ne=H.stack.split(`
`),ve=W.length-1,_e=ne.length-1;1<=ve&&0<=_e&&W[ve]!==ne[_e];)_e--;for(;1<=ve&&0<=_e;ve--,_e--)if(W[ve]!==ne[_e]){if(ve!==1||_e!==1)do if(ve--,_e--,0>_e||W[ve]!==ne[_e])return`
`+W[ve].replace(" at new "," at ");while(1<=ve&&0<=_e);break}}}finally{we=!1,Error.prepareStackTrace=Q}return(v=v?v.displayName||v.name:"")?cc(v):""}var uc=[],Oi=-1;function fo(v){return{current:v}}function Tt(v){0>Oi||(v.current=uc[Oi],uc[Oi]=null,Oi--)}function Rn(v,b){Oi++,uc[Oi]=v.current,v.current=b}var ha={},Gi=fo(ha),Li=fo(!1),Ya=ha;function yn(v,b){var Q=v.type.contextTypes;if(!Q)return ha;var H=v.stateNode;if(H&&H.__reactInternalMemoizedUnmaskedChildContext===b)return H.__reactInternalMemoizedMaskedChildContext;var W={},ne;for(ne in Q)W[ne]=b[ne];return H&&(v=v.stateNode,v.__reactInternalMemoizedUnmaskedChildContext=b,v.__reactInternalMemoizedMaskedChildContext=W),W}function Zn(v){return v=v.childContextTypes,v!=null}function fu(){Tt(Li),Tt(Gi)}function Eh(v,b,Q){if(Gi.current!==ha)throw Error(c(168));Rn(Gi,b),Rn(Li,Q)}function Wa(v,b,Q){var H=v.stateNode;if(v=b.childContextTypes,typeof H.getChildContext!="function")return Q;H=H.getChildContext();for(var W in H)if(!(W in v))throw Error(c(108,d(b)||"Unknown",W));return s({},Q,H)}function Va(v){return v=(v=v.stateNode)&&v.__reactInternalMemoizedMergedChildContext||ha,Ya=Gi.current,Rn(Gi,v),Rn(Li,Li.current),!0}function Ka(v,b,Q){var H=v.stateNode;if(!H)throw Error(c(169));Q?(v=Wa(v,b,Ya),H.__reactInternalMemoizedMergedChildContext=v,Tt(Li),Tt(Gi),Rn(Gi,v)):Tt(Li),Rn(Li,Q)}var $e=null,Ja=null,mf=n.unstable_now;mf();var fc=0,Sn=8;function da(v){if(1&v)return Sn=15,1;if(2&v)return Sn=14,2;if(4&v)return Sn=13,4;var b=24&v;return b!==0?(Sn=12,b):v&32?(Sn=11,32):(b=192&v,b!==0?(Sn=10,b):v&256?(Sn=9,256):(b=3584&v,b!==0?(Sn=8,b):v&4096?(Sn=7,4096):(b=4186112&v,b!==0?(Sn=6,b):(b=62914560&v,b!==0?(Sn=5,b):v&67108864?(Sn=4,67108864):v&134217728?(Sn=3,134217728):(b=805306368&v,b!==0?(Sn=2,b):1073741824&v?(Sn=1,1073741824):(Sn=8,v))))))}function _A(v){switch(v){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function HA(v){switch(v){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(c(358,v))}}function ga(v,b){var Q=v.pendingLanes;if(Q===0)return Sn=0;var H=0,W=0,ne=v.expiredLanes,ve=v.suspendedLanes,_e=v.pingedLanes;if(ne!==0)H=ne,W=Sn=15;else if(ne=Q&134217727,ne!==0){var ht=ne&~ve;ht!==0?(H=da(ht),W=Sn):(_e&=ne,_e!==0&&(H=da(_e),W=Sn))}else ne=Q&~ve,ne!==0?(H=da(ne),W=Sn):_e!==0&&(H=da(_e),W=Sn);if(H===0)return 0;if(H=31-ss(H),H=Q&((0>H?0:1<<H)<<1)-1,b!==0&&b!==H&&!(b&ve)){if(da(b),W<=Sn)return b;Sn=W}if(b=v.entangledLanes,b!==0)for(v=v.entanglements,b&=H;0<b;)Q=31-ss(b),W=1<<Q,H|=v[Q],b&=~W;return H}function Ql(v){return v=v.pendingLanes&-1073741825,v!==0?v:v&1073741824?1073741824:0}function Ut(v,b){switch(v){case 15:return 1;case 14:return 2;case 12:return v=Tn(24&~b),v===0?Ut(10,b):v;case 10:return v=Tn(192&~b),v===0?Ut(8,b):v;case 8:return v=Tn(3584&~b),v===0&&(v=Tn(4186112&~b),v===0&&(v=512)),v;case 2:return b=Tn(805306368&~b),b===0&&(b=268435456),b}throw Error(c(358,v))}function Tn(v){return v&-v}function ma(v){for(var b=[],Q=0;31>Q;Q++)b.push(v);return b}function za(v,b,Q){v.pendingLanes|=b;var H=b-1;v.suspendedLanes&=H,v.pingedLanes&=H,v=v.eventTimes,b=31-ss(b),v[b]=Q}var ss=Math.clz32?Math.clz32:pc,Ac=Math.log,Au=Math.LN2;function pc(v){return v===0?32:31-(Ac(v)/Au|0)|0}var Xa=n.unstable_runWithPriority,Mi=n.unstable_scheduleCallback,vs=n.unstable_cancelCallback,Rl=n.unstable_shouldYield,yf=n.unstable_requestPaint,hc=n.unstable_now,Bi=n.unstable_getCurrentPriorityLevel,Fn=n.unstable_ImmediatePriority,dc=n.unstable_UserBlockingPriority,ze=n.unstable_NormalPriority,at=n.unstable_LowPriority,St=n.unstable_IdlePriority,lr={},te=yf!==void 0?yf:function(){},ye=null,Oe=null,mt=!1,Et=hc(),Dt=1e4>Et?hc:function(){return hc()-Et};function tr(){switch(Bi()){case Fn:return 99;case dc:return 98;case ze:return 97;case at:return 96;case St:return 95;default:throw Error(c(332))}}function pn(v){switch(v){case 99:return Fn;case 98:return dc;case 97:return ze;case 96:return at;case 95:return St;default:throw Error(c(332))}}function ui(v,b){return v=pn(v),Xa(v,b)}function qi(v,b,Q){return v=pn(v),Mi(v,b,Q)}function Nn(){if(Oe!==null){var v=Oe;Oe=null,vs(v)}Za()}function Za(){if(!mt&&ye!==null){mt=!0;var v=0;try{var b=ye;ui(99,function(){for(;v<b.length;v++){var Q=b[v];do Q=Q(!0);while(Q!==null)}}),ye=null}catch(Q){throw ye!==null&&(ye=ye.slice(v+1)),Mi(Fn,Nn),Q}finally{mt=!1}}}var By=f.ReactCurrentBatchConfig;function J1(v,b){return v===b&&(v!==0||1/v===1/b)||v!==v&&b!==b}var Qo=typeof Object.is=="function"?Object.is:J1,vy=Object.prototype.hasOwnProperty;function Ih(v,b){if(Qo(v,b))return!0;if(typeof v!="object"||v===null||typeof b!="object"||b===null)return!1;var Q=Object.keys(v),H=Object.keys(b);if(Q.length!==H.length)return!1;for(H=0;H<Q.length;H++)if(!vy.call(b,Q[H])||!Qo(v[Q[H]],b[Q[H]]))return!1;return!0}function z1(v){switch(v.tag){case 5:return cc(v.type);case 16:return cc("Lazy" Line truncated
Error generating stack: `+ne.message+`
`+ne.stack}return{value:v,source:b,stack:W}}function Kd(v,b){try{console.error(b.value)}catch(Q){setTimeout(function(){throw Q})}}var RL=typeof WeakMap=="function"?WeakMap:Map;function t2(v,b,Q){Q=Fl(-1,Q),Q.tag=3,Q.payload={element:null};var H=b.value;return Q.callback=function(){Wy||(Wy=!0,d2=H),Kd(v,b)},Q}function Jd(v,b,Q){Q=Fl(-1,Q),Q.tag=3;var H=v.type.getDerivedStateFromError;if(typeof H=="function"){var W=b.value;Q.payload=function(){return Kd(v,b),H(W)}}var ne=v.stateNode;return ne!==null&&typeof ne.componentDidCatch=="function"&&(Q.callback=function(){typeof H!="function"&&(mc===null?mc=new Set([this]):mc.add(this),Kd(v,b));var ve=b.stack;this.componentDidCatch(b.value,{componentStack:ve!==null?ve:""})}),Q}var TL=typeof WeakSet=="function"?WeakSet:Set;function r2(v){var b=v.ref;if(b!==null)if(typeof b=="function")try{b(null)}catch(Q){Rf(v,Q)}else b.current=null}function Ny(v,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&v!==null){var Q=v.memoizedProps,H=v.memoizedState;v=b.stateNode,b=v.getSnapshotBeforeUpdate(b.elementType===b.type?Q:Ro(b.type,Q),H),v.__reactInternalSnapshotBeforeUpdate=b}return;case 3:F&&b.flags&256&&Ns(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(c(163))}function Th(v,b){if(b=b.updateQueue,b=b!==null?b.lastEffect:null,b!==null){var Q=b=b.next;do{if((Q.tag&v)===v){var H=Q.destroy;Q.destroy=void 0,H!==void 0&&H()}Q=Q.next}while(Q!==b)}}function hP(v,b,Q){switch(Q.tag){case 0:case 11:case 15:case 22:if(b=Q.updateQueue,b=b!==null?b.lastEffect:null,b!==null){v=b=b.next;do{if((v.tag&3)===3){var H=v.create;v.destroy=H()}v=v.next}while(v!==b)}if(b=Q.updateQueue,b=b!==null?b.lastEffect:null,b!==null){v=b=b.next;do{var W=v;H=W.next,W=W.tag,W&4&&W&1&&(PP(Q,v),jL(Q,v)),v=H}while(v!==b)}return;case 1:v=Q.stateNode,Q.flags&4&&(b===null?v.componentDidMount():(H=Q.elementType===Q.type?b.memoizedProps:Ro(Q.type,b.memoizedProps),v.componentDidUpdate(H,b.memoizedState,v.__reactInternalSnapshotBeforeUpdate))),b=Q.updateQueue,b!==null&&Dy(Q,b,v);return;case 3:if(b=Q.updateQueue,b!==null){if(v=null,Q.child!==null)switch(Q.child.tag){case 5:v=Qe(Q.child.stateNode);break;case 1:v=Q.child.stateNode}Dy(Q,b,v)}return;case 5:v=Q.stateNode,b===null&&Q.flags&4&&ao(v,Q.type,Q.memoizedProps,Q);return;case 6:return;case 4:return;case 12:return;case 13:X&&Q.memoizedState===null&&(Q=Q.alternate,Q!==null&&(Q=Q.memoizedState,Q!==null&&(Q=Q.dehydrated,Q!==null&&cu(Q))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(c(163))}function dP(v,b){if(F)for(var Q=v;;){if(Q.tag===5){var H=Q.stateNode;b?mh(H):co(Q.stateNode,Q.memoizedProps)}else if(Q.tag===6)H=Q.stateNode,b?yh(H):qn(H,Q.memoizedProps);else if((Q.tag!==23&&Q.tag!==24||Q.memoizedState===null||Q===v)&&Q.child!==null){Q.child.return=Q,Q=Q.child;continue}if(Q===v)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===v)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}}function Oy(v,b){if(Ja&&typeof Ja.onCommitFiberUnmount=="function")try{Ja.onCommitFiberUnmount($e,b)}catch{}switch(b.tag){case 0:case 11:case 14:case 15:case 22:if(v=b.updateQueue,v!==null&&(v=v.lastEffect,v!==null)){var Q=v=v.next;do{var H=Q,W=H.destroy;if(H=H.tag,W!==void 0)if(H&4)PP(b,Q);else{H=b;try{W()}catch(ne){Rf(H,ne)}}Q=Q.next}while(Q!==v)}break;case 1:if(r2(b),v=b.stateNode,typeof v.componentWillUnmount=="function")try{v.props=b.memoizedProps,v.state=b.memoizedState,v.componentWillUnmount()}catch(ne){Rf(b,ne)}break;case 5:r2(b);break;case 4:F?EP(v,b):z&&z&&(b=b.stateNode.containerInfo,v=ou(b),NA(b,v))}}function gP(v,b){for(var Q=b;;)if(Oy(v,Q),Q.child===null||F&&Q.tag===4){if(Q===b)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===b)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}else Q.child.return=Q,Q=Q.child}function Ly(v){v.alternate=null,v.child=null,v.dependencies=null,v.firstEffect=null,v.lastEffect=null,v.memoizedProps=null,v.memoizedState=null,v.pendingProps=null,v.return=null,v.updateQueue=null}function mP(v){return v.tag===5||v.tag===3||v.tag===4}function yP(v){if(F){e:{for(var b=v.return;b!==null;){if(mP(b))break e;b=b.return}throw Error(c(160))}var Q=b;switch(b=Q.stateNode,Q.tag){case 5:var H=!1;break;case 3:b=b.containerInfo,H=!0;break;case 4:b=b.containerInfo,H=!0;break;default:throw Error(c(161))}Q.flags&16&&(df(b),Q.flags&=-17);e:t:for(Q=v;;){for(;Q.sibling===null;){if(Q.return===null||mP(Q.return)){Q=null;break e}Q=Q.return}for(Q.sibling.return=Q.return,Q=Q.sibling;Q.tag!==5&&Q.tag!==6&&Q.tag!==18;){if(Q.flags&2||Q.child===null||Q.tag===4)continue t;Q.child.return=Q,Q=Q.child}if(!(Q.flags&2)){Q=Q.stateNode;break e}}H?n2(v,Q,b):i2(v,Q,b)}}function n2(v,b,Q){var H=v.tag,W=H===5||H===6;if(W)v=W?v.stateNode:v.stateNode.instance,b?lo(Q,v,b):Do(Q,v);else if(H!==4&&(v=v.child,v!==null))for(n2(v,b,Q),v=v.sibling;v!==null;)n2(v,b,Q),v=v.sibling}function i2(v,b,Q){var H=v.tag,W=H===5||H===6;if(W)v=W?v.stateNode:v.stateNode.instance,b?ji(Q,v,b):ci(Q,v);els Line truncated
Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.`)}bs!==5&&(bs=2),ht=Vd(ht,_e),Zt=ve;do{switch(Zt.tag){case 3:ne=ht,Zt.flags|=4096,b&=-b,Zt.lanes|=b;var ri=t2(Zt,ne,b);by(Zt,ri);break e;case 1:ne=ht;var Rr=Zt.type,On=Zt.stateNode;if(!(Zt.flags&64)&&(typeof Rr.getDerivedStateFromError=="function"||On!==null&&typeof On.componentDidCatch=="function"&&(mc===null||!mc.has(On)))){Zt.flags|=4096,b&=-b,Zt.lanes|=b;var jn=Jd(Zt,ne,b);by(Zt,jn);break e}}Zt=Zt.return}while(Zt!==null)}DP(Q)}catch(Xr){b=Xr,Xi===Q&&Q!==null&&(Xi=Q=Q.return);continue}break}while(!0)}function SP(){var v=qy.current;return qy.current=kt,v===null?kt:v}function sg(v,b){var Q=xr;xr|=16;var H=SP();po===v&&Ms===b||Lh(v,b);do try{ML();break}catch(W){vP(v,W)}while(!0);if(Nd(),xr=Q,qy.current=H,Xi!==null)throw Error(c(261));return po=null,Ms=0,bs}function ML(){for(;Xi!==null;)bP(Xi)}function UL(){for(;Xi!==null&&!Rl();)bP(Xi)}function bP(v){var b=QP(v.alternate,v,tp);v.memoizedProps=v.pendingProps,b===null?DP(v):Xi=b,l2.current=null}function DP(v){var b=v;do{var Q=b.alternate;if(v=b.return,b.flags&2048){if(Q=QL(b),Q!==null){Q.flags&=2047,Xi=Q;return}v!==null&&(v.firstEffect=v.lastEffect=null,v.flags|=2048)}else{if(Q=kL(Q,b,tp),Q!==null){Xi=Q;return}if(Q=b,Q.tag!==24&&Q.tag!==23||Q.memoizedState===null||tp&1073741824||!(Q.mode&4)){for(var H=0,W=Q.child;W!==null;)H|=W.lanes|W.childLanes,W=W.sibling;Q.childLanes=H}v!==null&&!(v.flags&2048)&&(v.firstEffect===null&&(v.firstEffect=b.firstEffect),b.lastEffect!==null&&(v.lastEffect!==null&&(v.lastEffect.nextEffect=b.firstEffect),v.lastEffect=b.lastEffect),1<b.flags&&(v.lastEffect!==null?v.lastEffect.nextEffect=b:v.firstEffect=b,v.lastEffect=b))}if(b=b.sibling,b!==null){Xi=b;return}Xi=b=v}while(b!==null);bs===0&&(bs=5)}function rp(v){var b=tr();return ui(99,_L.bind(null,v,b)),null}function _L(v,b){do Bu();while(eg!==null);if(xr&48)throw Error(c(327));var Q=v.finishedWork;if(Q===null)return null;if(v.finishedWork=null,v.finishedLanes=0,Q===v.current)throw Error(c(177));v.callbackNode=null;var H=Q.lanes|Q.childLanes,W=H,ne=v.pendingLanes&~W;v.pendingLanes=W,v.suspendedLanes=0,v.pingedLanes=0,v.expiredLanes&=W,v.mutableReadLanes&=W,v.entangledLanes&=W,W=v.entanglements;for(var ve=v.eventTimes,_e=v.expirationTimes;0<ne;){var ht=31-ss(ne),Wt=1<<ht;W[ht]=0,ve[ht]=-1,_e[ht]=-1,ne&=~Wt}if(Cu!==null&&!(H&24)&&Cu.has(v)&&Cu.delete(v),v===po&&(Xi=po=null,Ms=0),1<Q.flags?Q.lastEffect!==null?(Q.lastEffect.nextEffect=Q,H=Q.firstEffect):H=Q:H=Q.firstEffect,H!==null){W=xr,xr|=32,l2.current=null,ng=tt(v.containerInfo),ig=!1,sr=H;do try{HL()}catch(Ye){if(sr===null)throw Error(c(330));Rf(sr,Ye),sr=sr.nextEffect}while(sr!==null);ng=null,sr=H;do try{for(ve=v;sr!==null;){var Sr=sr.flags;if(Sr&16&&F&&df(sr.stateNode),Sr&128){var Mr=sr.alternate;if(Mr!==null){var Zt=Mr.ref;Zt!==null&&(typeof Zt=="function"?Zt(null):Zt.current=null)}}switch(Sr&1038){case 2:yP(sr),sr.flags&=-3;break;case 6:yP(sr),sr.flags&=-3,s2(sr.alternate,sr);break;case 1024:sr.flags&=-1025;break;case 1028:sr.flags&=-1025,s2(sr.alternate,sr);break;case 4:s2(sr.alternate,sr);break;case 8:_e=ve,ne=sr,F?EP(_e,ne):gP(_e,ne);var $n=ne.alternate;Ly(ne),$n!==null&&Ly($n)}sr=sr.nextEffect}}catch(Ye){if(sr===null)throw Error(c(330));Rf(sr,Ye),sr=sr.nextEffect}while(sr!==null);ig&&ut(),Ne(v.containerInfo),v.current=Q,sr=H;do try{for(Sr=v;sr!==null;){var Ei=sr.flags;if(Ei&36&&hP(Sr,sr.alternate,sr),Ei&128){Mr=void 0;var sl=sr.ref;if(sl!==null){var rt=sr.stateNode;switch(sr.tag){case 5:Mr=Qe(rt);break;default:Mr=rt}typeof sl=="function"?sl(Mr):sl.current=Mr}}sr=sr.nextEffect}}catch(Ye){if(sr===null)throw Error(c(330));Rf(sr,Ye),sr=sr.nextEffect}while(sr!==null);sr=null,te(),xr=W}else v.current=Q;if(Qf)Qf=!1,eg=v,tg=b;else for(sr=H;sr!==null;)b=sr.nextEffect,sr.nextEffect=null,sr.flags&8&&(Ei=sr,Ei.sibling=null,Ei.stateNode=null),sr=b;if(H=v.pendingLanes,H===0&&(mc=null),H===1?v===y2?rg++:(rg=0,y2=v):rg=0,Q=Q.stateNode,Ja&&typeof Ja.onCommitFiberRoot=="function")try{Ja.onCommitFiberRoot($e,Q,void 0,(Q.current.flags&64)===64)}catch{}if(Ca(v,Dt()),Wy)throw Wy=!1,v=d2,d2=null,v;return xr&8||Nn(),null}function HL(){for(;sr!==null;){var v=sr.alternate;ig||ng===null||(sr.flags&8?be(sr,ng)&&(ig=!0,Fe()):sr.tag===13&&FL(v,sr)&&be(sr,ng)&&(ig=!0,Fe()));var b=sr.flags;b&256&&Ny(v,sr),!(b&512)||Qf||(Qf=!0,qi(97,function(){return Bu(),null})),sr=sr.nextEffect}}function Bu(){if(tg!==90){var v=97<tg?97:tg;return tg=90,ui(v,qL)}return!1}function jL(v,b){g2.push(b,v),Qf||(Qf=!0,qi(97,function(){return Bu(),null}))}function PP(v,b){m2.push(b,v),Qf||(Qf=!0,qi(97,function(){return Bu(),null}))}function qL(){if(eg===null)return!1;var v=eg;if(eg=null,xr&48)throw Error(c(331));var b=xr;xr|=32;var Q=m2;m2=[];for(var H=0;H<Q.length;H+=2){var W=Q[H],ne=Q[H+1],ve=W.destroy;if(W.destroy=void 0,typeof ve=="function")try{ve()}catch(ht){if(ne===null)throw Error(c(330));Rf(ne,ht)}}for(Q=g2,g2=[],H=0;H<Q.length;H+=2){W=Q[H],ne=Q[H+1];try{va Line truncated
`+(H.join(" > ")+`
No matching component was found for:
`)+v.join(" > ")}return null},r.getPublicRootInstance=function(v){if(v=v.current,!v.child)return null;switch(v.child.tag){case 5:return Qe(v.child.stateNode);default:return v.child.stateNode}},r.injectIntoDevTools=function(v){if(v={bundleType:v.bundleType,version:v.version,rendererPackageName:v.rendererPackageName,rendererConfig:v.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:f.ReactCurrentDispatcher,findHostInstanceByFiber:JL,findFiberByHostInstance:v.findFiberByHostInstance||zL,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")v=!1;else{var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!b.isDisabled&&b.supportsFiber)try{$e=b.inject(v),Ja=b}catch{}v=!0}return v},r.observeVisibleRects=function(v,b,Q,H){if(!Yt)throw Error(c(363));v=a2(v,b);var W=on(v,Q,H).disconnect;return{disconnect:function(){W()}}},r.registerMutableSourceForHydration=function(v,b){var Q=b._getVersion;Q=Q(b._source),v.mutableSourceEagerHydrationData==null?v.mutableSourceEagerHydrationData=[b,Q]:v.mutableSourceEagerHydrationData.push(b,Q)},r.runWithPriority=function(v,b){var Q=fc;try{return fc=v,b()}finally{fc=Q}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(v,b){var Q=xr;xr&=-2,xr|=8;try{return v(b)}finally{xr=Q,xr===0&&(kf(),Nn())}},r.updateContainer=function(v,b,Q,H){var W=b.current,ne=Lo(),ve=Ds(W);e:if(Q){Q=Q._reactInternals;t:{if(Se(Q)!==Q||Q.tag!==1)throw Error(c(170));var _e=Q;do{switch(_e.tag){case 3:_e=_e.stateNode.context;break t;case 1:if(Zn(_e.type)){_e=_e.stateNode.__reactInternalMemoizedMergedChildContext;break t}}_e=_e.return}while(_e!==null);throw Error(c(171))}if(Q.tag===1){var ht=Q.type;if(Zn(ht)){Q=Wa(Q,ht,_e);break e}}Q=_e}else Q=ha;return b.context===null?b.context=Q:b.pendingContext=Q,b=Fl(ne,ve),b.payload={element:v},H=H===void 0?null:H,H!==null&&(b.callback=H),Nl(W,b),_l(W,ve,ne),ve},r}});var EIe=G((UVt,yIe)=>{"use strict";yIe.exports=mIe()});var CIe=G((_Vt,IIe)=>{"use strict";var Yut={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};IIe.exports=Yut});var SIe=G((HVt,vIe)=>{"use strict";var Wut=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},CF=function(){function e(t,r){for(var s=0;s<r.length;s++){var a=r[s];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}return function(t,r,s){return r&&e(t.prototype,r),s&&e(t,s),t}}();function gq(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function mq(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var sf=CIe(),Vut=function(){function e(t,r,s,a,n,c){mq(this,e),this.left=t,this.right=r,this.top=s,this.bottom=a,this.width=n,this.height=c}return CF(e,[{key:"fromJS",value:function(r){r(this.left,this.right,this.top,this.bottom,this.width,this.height)}},{key:"toString",value:function(){return"<Layout#"+this.left+":"+this.right+";"+this.top+":"+this.bottom+";"+this.width+":"+this.height+">"}}]),e}(),wIe=function(){CF(e,null,[{key:"fromJS",value:function(r){var s=r.width,a=r.height;return new e(s,a)}}]);function e(t,r){mq(this,e),this.width=t,this.height=r}return CF(e,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toStri Line truncated
`+Module.extraStackTrace()),demangleAll(e)}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(e){for(;e.length>0;){var t=e.shift();if(typeof t=="function"){t();continue}var r=t.func;typeof r=="number"?t.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,t.arg):r(t.arg===void 0?null:t.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(e){__ATPRERUN__.unshift(e)}Module.addOnPreRun=addOnPreRun;function addOnInit(e){__ATINIT__.unshift(e)}Module.addOnInit=addOnInit;function addOnPreMain(e){__ATMAIN__.unshift(e)}Module.addOnPreMain=addOnPreMain;function addOnExit(e){__ATEXIT__.unshift(e)}Module.addOnExit=addOnExit;function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(e,t,r){var s=r>0?r:lengthBytesUTF8(e)+1,a=new Array(s),n=stringToUTF8Array(e,a,0,a.length);return t&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(e){for(var t=[],r=0;r<e.length;r++){var s=e[r];s>255&&(s&=255),t.push(String.fromCharCode(s))}return t.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(e,t,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var s,a;r&&(a=t+lengthBytesUTF8(e),s=HEAP8[a]),stringToUTF8(e,t,1/0),r&&(HEAP8[a]=s)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(e,t){HEAP8.set(e,t)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(e,t,r){for(var s=0;s<e.length;++s)HEAP8[t++>>0]=e.charCodeAt(s);r||(HEAP8[t>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function e(t,r){var s=t>>>16,a=t&65535,n=r>>>16,c=r&65535;return a*c+(s*c+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(e){return froundBuffer[0]=e,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(e){e=e>>>0;for(var t=0;t<32;t++)if(e&1<<31-t)return t;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),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("+e+") at "+stackTrace()+t;throw abortDecorators&&abortDecorators.forEach(function(s){r=s(r,e)}),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 _m=G((GVt,DIe)=>{"use strict";var Kut=SIe(),Jut=bIe(),yq=!1,Eq=null;Jut({},function(e,t){if(!yq){if(yq=!0,e)throw e;Eq=t}});if(!yq)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");DIe.exports=Kut(Eq.bind,Eq.lib)});var Cq=G((qVt,Iq)=>{"use strict";var PIe=e=>Number.isNaN(e)?!1:e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141);Iq.exports=PIe;Iq.exports.default=PIe});var kIe=G((YVt,xIe)=>{"use strict";xIe.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
`))t=Math.max(t,$ut(r));return t};Bq.exports=RIe;Bq.exports.default=RIe});var TIe=G(KS=>{"use strict";var eft=KS&&KS.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(KS,"__esModule",{value:!0});var tft=eft(vq()),Sq={};KS.default=e=>{if(e.length===0)return{width:0,height:0};if(Sq[e])return Sq[e];let t=tft.default(e),r=e.split(`
`).length;return Sq[e]={width:t,height:r},{width:t,height:r}}});var FIe=G(JS=>{"use strict";var rft=JS&&JS.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(JS,"__esModule",{value:!0});var kn=rft(_m()),nft=(e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?kn.default.POSITION_TYPE_ABSOLUTE:kn.default.POSITION_TYPE_RELATIVE)},ift=(e,t)=>{"marginLeft"in t&&e.setMargin(kn.default.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(kn.default.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(kn.default.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(kn.default.EDGE_BOTTOM,t.marginBottom||0)},sft=(e,t)=>{"paddingLeft"in t&&e.setPadding(kn.default.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(kn.default.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(kn.default.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(kn.default.EDGE_BOTTOM,t.paddingBottom||0)},oft=(e,t)=>{var r;"flexGrow"in t&&e.setFlexGrow((r=t.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(kn.default.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(kn.default.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(kn.default.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(kn.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(kn.default.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(kn.default.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(kn.default.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(kn.default.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(kn.default.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(kn.default.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(kn.default.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(kn.default.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(kn.default.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(kn.default.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(kn.default.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(kn.default.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(kn.default.JUSTIFY_SPACE_AROUND))},aft=(e,t)=>{var r,s;"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth((r=t.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight((s=t.minHeight)!==null&&s!==void 0?s:0))},lft=(e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?kn.default.DISPLAY_FLEX:kn.default.DISPLAY_NONE)},cft=(e,t)=>{if("borderStyle"in t){let r=typeof t.borderStyle=="string"?1:0;e.setBorder(kn.default.EDGE_TOP,r),e.setBorder(kn.default.EDGE_BOTTOM,r),e.setBorder(kn.default.EDGE_LEFT,r),e.setBorder(kn.default.EDGE_RIGHT,r)}};JS.default=(e,t={})=>{nft(e,t),ift(e,t),sft(e,t),oft(e,t),aft(e,t),lft(e,t),cft(e,t)}});var LIe=G((zVt,OIe)=>{"use strict";var zS=VS(),uft=yk(),fft=ak(),Dq=new Set(["\x1B","\x9B"]),Aft=39,NIe=e=>`${Dq.values().next().value}[${e}m`,pft=e=>e.split(" ").map(t=>zS(t)),bq=(e,t,r)=>{let s=[...t],a=!1,n=zS(uft(e[e.length-1]));for(let[c,f]of s.entries()){let p=zS(f);if(n+p<=r?e[e.length-1]+=f:(e.push(f),n=0),Dq.has(f))a=!0;else if(a&&f==="m"){a=!1;continue}a||(n+=p,n===r&&c<s.length-1&&(e.push(""),n=0))}!n&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},hft=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(zS(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},dft=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let s="",a="",n,c=pft(e),f=[""];for(let[p,h]of e.split(" ").entries()){r.trim!==!1&&(f[f.length-1]=f[f.length-1].trimLeft());let E=zS(f[f.length-1]);if(p!==0&&(E>=t&&(r.wordWrap===!1||r.trim===!1)&&(f.push(""),E=0),(E>0||r.trim===!1)&&(f[f.length-1]+=" ",E++)),r.hard&&c[p]>t){let C=t-E,S=1+Math.floor((c[p]-C-1)/t);Math.floor((c[p]-1)/t)<S&&f.push(""),bq(f,h,t);continue}if(E+c[p]>t&&E>0&&c[p]>0){if(r.wordWrap===!1&&E<t){bq(f,h,t);continue}f.push("")}if(E+c[p]>t&&r.wordWrap===!1){bq(f,h,t);continue}f[f. Line truncated
`);for(let[p,h]of[...s].entries()){if(a+=h,Dq.has(h)){let C=parseFloat(/\d[^m]*/.exec(s.slice(p,p+4)));n=C===Aft?null:C}let E=fft.codes.get(Number(n));n&&E&&(s[p+1]===`
`?a+=NIe(E):h===`
`&&(a+=NIe(n)))}return a};OIe.exports=(e,t,r)=>String(e).normalize().replace(/\r\n/g,`
`).split(`
`).map(s=>dft(s,t,r)).join(`
`)});var _Ie=G((XVt,UIe)=>{"use strict";var MIe="[\uD800-\uDBFF][\uDC00-\uDFFF]",gft=e=>e&&e.exact?new RegExp(`^${MIe}$`):new RegExp(MIe,"g");UIe.exports=gft});var Pq=G((ZVt,qIe)=>{"use strict";var mft=Cq(),yft=_Ie(),HIe=ak(),GIe=["\x1B","\x9B"],wF=e=>`${GIe[0]}[${e}m`,jIe=(e,t,r)=>{let s=[];e=[...e];for(let a of e){let n=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let c=HIe.codes.get(parseInt(a,10));if(c){let f=e.indexOf(c.toString());f>=0?e.splice(f,1):s.push(wF(t?c:n))}else if(t){s.push(wF(0));break}else s.push(wF(n))}if(t&&(s=s.filter((a,n)=>s.indexOf(a)===n),r!==void 0)){let a=wF(HIe.codes.get(parseInt(r,10)));s=s.reduce((n,c)=>c===a?[c,...n]:[...n,c],[])}return s.join("")};qIe.exports=(e,t,r)=>{let s=[...e.normalize()],a=[];r=typeof r=="number"?r:s.length;let n=!1,c,f=0,p="";for(let[h,E]of s.entries()){let C=!1;if(GIe.includes(E)){let S=/\d[^m]*/.exec(e.slice(h,h+18));c=S&&S.length>0?S[0]:void 0,f<r&&(n=!0,c!==void 0&&a.push(c))}else n&&E==="m"&&(n=!1,C=!0);if(!n&&!C&&++f,!yft({exact:!0}).test(E)&&mft(E.codePointAt())&&++f,f>t&&f<=r)p+=E;else if(f===t&&!n&&c!==void 0)p=jIe(a);else if(f>=r){p+=jIe(a,!0,c);break}}return p}});var WIe=G(($Vt,YIe)=>{"use strict";var ed=Pq(),Eft=VS();function BF(e,t,r){if(e.charAt(t)===" ")return t;for(let s=1;s<=3;s++)if(r){if(e.charAt(t+s)===" ")return t+s}else if(e.charAt(t-s)===" ")return t-s;return t}YIe.exports=(e,t,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:s,space:a,preferTruncationOnSpace:n}=r,c="\u2026",f=1;if(typeof e!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof e}`);if(typeof t!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof t}`);if(t<1)return"";if(t===1)return c;let p=Eft(e);if(p<=t)return e;if(s==="start"){if(n){let h=BF(e,p-t+1,!0);return c+ed(e,h,p).trim()}return a===!0&&(c+=" ",f=2),c+ed(e,p-t+f,p)}if(s==="middle"){a===!0&&(c=" "+c+" ",f=3);let h=Math.floor(t/2);if(n){let E=BF(e,h),C=BF(e,p-(t-h)+1,!0);return ed(e,0,E)+c+ed(e,C,p).trim()}return ed(e,0,h)+c+ed(e,p-(t-h)+f,p)}if(s==="end"){if(n){let h=BF(e,t-1);return ed(e,0,h)+c}return a===!0&&(c=" "+c,f=2),ed(e,0,t-f)+c}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${s}`)}});var kq=G(XS=>{"use strict";var VIe=XS&&XS.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(XS,"__esModule",{value:!0});var Ift=VIe(LIe()),Cft=VIe(WIe()),xq={};XS.default=(e,t,r)=>{let s=e+String(t)+String(r);if(xq[s])return xq[s];let a=e;if(r==="wrap"&&(a=Ift.default(e,t,{trim:!1,hard:!0})),r.startsWith("truncate")){let n="end";r==="truncate-middle"&&(n="middle"),r==="truncate-start"&&(n="start"),a=Cft.default(e,t,{position:n})}return xq[s]=a,a}});var Rq=G(Qq=>{"use strict";Object.defineProperty(Qq,"__esModule",{value:!0});var KIe=e=>{let t="";if(e.childNodes.length>0)for(let r of e.childNodes){let s="";r.nodeName==="#text"?s=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(s=KIe(r)),s.length>0&&typeof r.internal_transform=="function"&&(s=r.internal_transform(s))),t+=s}return t};Qq.default=KIe});var Tq=G(Di=>{"use strict";var ZS=Di&&Di.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Di,"__esModule",{value:!0});Di.setTextNodeValue=Di.createTextNode=Di.setStyle=Di.setAttribute=Di.removeChildNode=Di.insertBeforeNode=Di.appendChildNode=Di.createNode=Di.TEXT_NAME=void 0;var wft=ZS(_m()),JIe=ZS(TIe()),Bft=ZS(FIe()),vft=ZS(kq()),Sft=ZS(Rq());Di.TEXT_NAME="#text";Di.createNode=e=>{var t;let r={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:e==="ink-virtual-text"?void 0:wft.default.Node.create()};return e==="ink-text"&&((t=r.yogaNode)===null||t===void 0||t.setMeasureFunc(bft.bind(null,r))),r};Di.appendChildNode=(e,t)=>{var r;t.parentNode&&Di.removeChildNode(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&((r=e.yogaNode)===null||r===void 0||r.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&vF(e)};Di.insertBeforeNode=(e,t,r)=>{var s,a;t.parentNode&&Di.removeChildNode(t.parentNode,t),t.parentNode=e;let n=e.childNodes.indexOf(r);if(n>=0){e.childNodes.splice(n,0,t),t.yogaNode&&((s=e.yogaNode)===null||s===void 0||s.insertChild(t.yogaNode,n));return}e.childNodes.push(t),t.yogaNode&&((a=e.yogaNode)===null||a===void 0||a.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&vF(e)};Di.removeChildNode=(e,t)=>{var r,s;t.yogaNode&&((s=(r=t.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||s===void 0||s.removeChild(t.yogaNode)),t.parentNode=null;let a=e.childNodes.indexOf(t);a>=0&&e.childNodes.splice(a,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&vF(e)};Di.setAttribute=(e,t,r)=>{e.attributes[t]=r};Di.setStyle=(e,t)=>{e.style=t,e.yogaNode&&Bft.default(e.yogaNode,t)};Di.createTextNode=e=>{let t={nodeName:"#text",nodeValue:e,yogaLine truncated
`).repeat(n-2),E=Oq.default(f.bottomLeft+f.horizontal.repeat(a-2)+f.bottomRight,c,"foreground");s.write(e,t,p,{transformers:[]}),s.write(e,t+1,h,{transformers:[]}),s.write(e+a-1,t+1,h,{transformers:[]}),s.write(e,t+n-1,E,{transformers:[]})}}});var fCe=G(ib=>{"use strict";var Hm=ib&&ib.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ib,"__esModule",{value:!0});var Fft=Hm(_m()),Nft=Hm(vq()),Oft=Hm(nCe()),Lft=Hm(kq()),Mft=Hm(iCe()),Uft=Hm(Rq()),_ft=Hm(cCe()),Hft=(e,t)=>{var r;let s=(r=e.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(s){let a=s.getComputedLeft(),n=s.getComputedTop();t=`
`.repeat(n)+Oft.default(t,a)}return t},uCe=(e,t,r)=>{var s;let{offsetX:a=0,offsetY:n=0,transformers:c=[],skipStaticElements:f}=r;if(f&&e.internal_static)return;let{yogaNode:p}=e;if(p){if(p.getDisplay()===Fft.default.DISPLAY_NONE)return;let h=a+p.getComputedLeft(),E=n+p.getComputedTop(),C=c;if(typeof e.internal_transform=="function"&&(C=[e.internal_transform,...c]),e.nodeName==="ink-text"){let S=Uft.default(e);if(S.length>0){let x=Nft.default(S),I=Mft.default(p);if(x>I){let T=(s=e.style.textWrap)!==null&&s!==void 0?s:"wrap";S=Lft.default(S,I,T)}S=Hft(e,S),t.write(h,E,S,{transformers:C})}return}if(e.nodeName==="ink-box"&&_ft.default(h,E,e,t),e.nodeName==="ink-root"||e.nodeName==="ink-box")for(let S of e.childNodes)uCe(S,t,{offsetX:h,offsetY:E,transformers:C,skipStaticElements:f})}};ib.default=uCe});var hCe=G(sb=>{"use strict";var pCe=sb&&sb.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(sb,"__esModule",{value:!0});var ACe=pCe(Pq()),jft=pCe(VS()),Lq=class{constructor(t){this.writes=[];let{width:r,height:s}=t;this.width=r,this.height=s}write(t,r,s,a){let{transformers:n}=a;s&&this.writes.push({x:t,y:r,text:s,transformers:n})}get(){let t=[];for(let s=0;s<this.height;s++)t.push(" ".repeat(this.width));for(let s of this.writes){let{x:a,y:n,text:c,transformers:f}=s,p=c.split(`
`),h=0;for(let E of p){let C=t[n+h];if(!C)continue;let S=jft.default(E);for(let x of f)E=x(E);t[n+h]=ACe.default(C,0,a)+E+ACe.default(C,a+S),h++}}return{output:t.map(s=>s.trimRight()).join(`
`),height:t.length}}};sb.default=Lq});var mCe=G(ob=>{"use strict";var Mq=ob&&ob.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ob,"__esModule",{value:!0});var Gft=Mq(_m()),dCe=Mq(fCe()),gCe=Mq(hCe());ob.default=(e,t)=>{var r;if(e.yogaNode.setWidth(t),e.yogaNode){e.yogaNode.calculateLayout(void 0,void 0,Gft.default.DIRECTION_LTR);let s=new gCe.default({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});dCe.default(e,s,{skipStaticElements:!0});let a;!((r=e.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new gCe.default({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),dCe.default(e.staticNode,a,{skipStaticElements:!1}));let{output:n,height:c}=s.get();return{output:n,outputHeight:c,staticOutput:a?`${a.get().output}
`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var CCe=G((p7t,ICe)=>{"use strict";var yCe=Ie("stream"),ECe=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],Uq={},qft=e=>{let t=new yCe.PassThrough,r=new yCe.PassThrough;t.write=a=>e("stdout",a),r.write=a=>e("stderr",a);let s=new console.Console(t,r);for(let a of ECe)Uq[a]=console[a],console[a]=s[a];return()=>{for(let a of ECe)console[a]=Uq[a];Uq={}}};ICe.exports=qft});var Hq=G(_q=>{"use strict";Object.defineProperty(_q,"__esModule",{value:!0});_q.default=new WeakMap});var Gq=G(jq=>{"use strict";Object.defineProperty(jq,"__esModule",{value:!0});var Yft=dn(),wCe=Yft.createContext({exit:()=>{}});wCe.displayName="InternalAppContext";jq.default=wCe});var Yq=G(qq=>{"use strict";Object.defineProperty(qq,"__esModule",{value:!0});var Wft=dn(),BCe=Wft.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});BCe.displayName="InternalStdinContext";qq.default=BCe});var Vq=G(Wq=>{"use strict";Object.defineProperty(Wq,"__esModule",{value:!0});var Vft=dn(),vCe=Vft.createContext({stdout:void 0,write:()=>{}});vCe.displayName="InternalStdoutContext";Wq.default=vCe});var Jq=G(Kq=>{"use strict";Object.defineProperty(Kq,"__esModule",{value:!0});var Kft=dn(),SCe=Kft.createContext({stderr:void 0,write:()=>{}});SCe.displayName="InternalStderrContext";Kq.default=SCe});var DF=G(zq=>{"use strict";Object.defineProperty(zq,"__esModule",{value:!0});var Jft=dn(),bCe=Jft.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});bCe.displayName="InternalFocusContext";zq.default=bCe});var PCe=G((I7t,DCe)=>{"use strict";var zft=/[|\\{}()[\]^$+*?.-]/g;DCe.exports=e=>{if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(zft,"\\$&")}});var RCe=G((C7t,QCe)=>{"use strict";var Xft=PCe(),Zft=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",kCe=[].concat(Ie("module").builtinModules,"bootstrap_node","node").map(e=>new RegExp(`(?:\\((?:node:)?${e}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${e}(?:\\.js)?:\\d+:\\d+$)`));kCe.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var Xq=class e{constructor(t){t={ignoredPackages:[],...t},"internals"in t||(t.internals=e.nodeInternals()),"cwd"in t||(t.cwd=Zft),this._cwd=t.cwd.replace(/\\/g,"/"),this._internals=[].concat(t.internals,$ft(t.ignoredPackages)),this._wrapCallSite=t.wrapCallSite||!1}static nodeInternals(){return[...kCe]}clean(t,r=0){r=" ".repeat(r),Array.isArray(t)||(t=t.split(`
`)),!/^\s*at /.test(t[0])&&/^\s*at /.test(t[1])&&(t=t.slice(1));let s=!1,a=null,n=[];return t.forEach(c=>{if(c=c.replace(/\\/g,"/"),this._internals.some(p=>p.test(c)))return;let f=/^\s*at /.test(c);s?c=c.trimEnd().replace(/^(\s+)at /,"$1"):(c=c.trim(),f&&(c=c.slice(3))),c=c.replace(`${this._cwd}/`,""),c&&(f?(a&&(n.push(a),a=null),n.push(c)):(s=!0,a=c))}),n.map(c=>`${r}${c}
`).join("")}captureString(t,r=this.captureString){typeof t=="function"&&(r=t,t=1/0);let{stackTraceLimit:s}=Error;t&&(Error.stackTraceLimit=t);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=s,this.clean(n)}capture(t,r=this.capture){typeof t=="function"&&(r=t,t=1/0);let{prepareStackTrace:s,stackTraceLimit:a}=Error;Error.prepareStackTrace=(f,p)=>this._wrapCallSite?p.map(this._wrapCallSite):p,t&&(Error.stackTraceLimit=t);let n={};Error.captureStackTrace(n,r);let{stack:c}=n;return Object.assign(Error,{prepareStackTrace:s,stackTraceLimit:a}),c}at(t=this.at){let[r]=this.capture(1,t);if(!r)return{};let s={line:r.getLineNumber(),column:r.getColumnNumber()};xCe(s,r.getFileName(),this._cwd),r.isConstructor()&&(s.constructor=!0),r.isEval()&&(s.evalOrigin=r.getEvalOrigin()),r.isNative()&&(s.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(s.type=a);let n=r.getFunctionName();n&&(s.function=n);let c=r.getMethodName();return c&&n!==c&&(s.method=c),s}parseLine(t){let r=t&&t.match(eAt);if(!r)return null;let s=r[1]==="new",a=r[2],n=r[3],c=r[4],f=Number(r[5]),p=Number(r[6]),h=r[7],E=r[8],C=r[9],S=r[10]==="native",x=r[11]===")",I,T={};if(E&&(T.line=Number(E)),C&&(T.column=Number(C)),x&&h){let O=0;for(let U=h.length-1;U>0;U--)if(h.charAt(U)===")")O++;else if(h.charAt(U)==="("&&h.charAt(U-1)===" "&&(O--,O===-1&&h.charAt(U-1)===" ")){let V=h.slice(0,U-1);h=h.slice(U+1),a+=` (${V}`;break}}if(a){let O=a.match(tAt);O&&(a=O[1],I=O[2])}return xCe(T,h,this._cwd),s&&(T.constructor=!0),n&&(T.evalOrigin=n,T.evalLine=f,T.evalColumn=p,T.evalFile=c&&c.replace(/\\/g,"/")),S&&(T.native=!0),a&&(T.function=a),I&&a!==I&&(T.method=I),T}};function xCe(e,t,r){t&&(t=t.replace(/\\/g,"/"),t.startsWith(`${r}/`)&&(t=t.slice(r.length+1)),e.file=t)}function $ft(e){if(e.length===0)return[];let t=e.map(r=>Xft(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${t.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var eAt=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),tAt=/^(.*?) \[as (.*?)\]$/;QCe.exports=Xq});var FCe=G((w7t,TCe)=>{"use strict";TCe.exports=(e,t)=>e.replace(/^\t+/gm,r=>" ".repeat(r.length*(t||2)))});var OCe=G((B7t,NCe)=>{"use strict";var rAt=FCe(),nAt=(e,t)=>{let r=[],s=e-t,a=e+t;for(let n=s;n<=a;n++)r.push(n);return r};NCe.exports=(e,t,r)=>{if(typeof e!="string")throw new TypeError("Source code is missing.");if(!t||t<1)throw new TypeError("Line number must start from `1`.");if(e=rAt(e).split(/\r?\n/),!(t>e.length))return r={around:3,...r},nAt(t,r.around).filter(s=>e[s-1]!==void 0).map(s=>({line:s,value:e[s-1]}))}});var PF=G(of=>{"use strict";var iAt=of&&of.__createBinding||(Object.create?function(e,t,r,s){s===void 0&&(s=r),Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,s){s===void 0&&(s=r),e[s]=t[r]}),sAt=of&&of.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),oAt=of&&of.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&iAt(t,e,r);return sAt(t,e),t},aAt=of&&of.__rest||function(e,t){var r={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(r[s]=e[s]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(e);a<s.length;a++)t.indexOf(s[a])<0&&Object.prototype.propertyIsEnumerable.call(e,s[a])&&(r[s[a]]=e[s[a]]);return r};Object.defineProperty(of,"__esModule",{value:!0});var LCe=oAt(dn()),Zq=LCe.forwardRef((e,t)=>{var{children:r}=e,s=aAt(e,["children"]);let a=Object.assign(Object.assign({},s),{marginLeft:s.marginLeft||s.marginX||s.margin||0,marginRight:s.marginRight||s.marginX||s.margin||0,marginTop:s.marginTop||s.marginY||s.margin||0,marginBottom:s.marginBottom||s.marginY||s.margin||0,paddingLeft:s.paddingLeft||s.paddingX||s.padding||0,paddingRight:s.paddingRight||s.paddingX||s.padding||0,paddingTop:s.paddingTop||s.paddingY||s.padding||0,paddingBottom:s.paddingBottom||s.paddingY||s.padding||0});return LCe.default.createElement("ink-box",{ref:t,style:a},r)});Zq.displayName="Box";Zq.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};of.default=Zq});var tY=G(ab=>{"use strict";var $q=ab&&ab.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ab,"__esModule",{value:!0});var lAt=$q(dn()),fw=$q(LE()),MCe=$q(Nq()),eY=({color:e,backgroundColor:t,dimColor:r,bold:s,italic:a,underline:n,strikethrough:c,inverse:f,wrap:p,children:h})=>{if(h==null)return null;let E=C=>(r&&(C=fw.default.dim(C)),e&&(C=MCe.default(C,e,"foreground")),t&&(C=MCe.default(C,t,"background")),s&&(C=fw.default.bold(C)),a&&(C=fw.default.italic(C)),n&&(C=fw.default.underline(C)),c&&(C=fw.default.strikethrough(C)),f&&(C=fw.default.inverse(C)),C);return lAt.default.createElement("ink-text",{style:{flexGrow:0,flexSLine truncated
`).slice(1):void 0,r=t?HCe.parseLine(t[0]):void 0,s,a=0;if(r?.file&&r?.line&&UCe.existsSync(r.file)){let n=UCe.readFileSync(r.file,"utf8");if(s=AAt.default(n,r.line),s)for(let{line:c}of s)a=Math.max(a,String(c).length)}return Fs.default.createElement(th.default,{flexDirection:"column",padding:1},Fs.default.createElement(th.default,null,Fs.default.createElement(dA.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),Fs.default.createElement(dA.default,null," ",e.message)),r&&Fs.default.createElement(th.default,{marginTop:1},Fs.default.createElement(dA.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&s&&Fs.default.createElement(th.default,{marginTop:1,flexDirection:"column"},s.map(({line:n,value:c})=>Fs.default.createElement(th.default,{key:n},Fs.default.createElement(th.default,{width:a+1},Fs.default.createElement(dA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0},String(n).padStart(a," "),":")),Fs.default.createElement(dA.default,{key:n,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0}," "+c)))),e.stack&&Fs.default.createElement(th.default,{marginTop:1,flexDirection:"column"},e.stack.split(`
`).slice(1).map(n=>{let c=HCe.parseLine(n);return c?Fs.default.createElement(th.default,{key:n},Fs.default.createElement(dA.default,{dimColor:!0},"- "),Fs.default.createElement(dA.default,{dimColor:!0,bold:!0},c.function),Fs.default.createElement(dA.default,{dimColor:!0,color:"gray"}," ","(",c.file,":",c.line,":",c.column,")")):Fs.default.createElement(th.default,{key:n},Fs.default.createElement(dA.default,{dimColor:!0},"- "),Fs.default.createElement(dA.default,{dimColor:!0,bold:!0},n))})))};af.default=pAt});var qCe=G(lf=>{"use strict";var hAt=lf&&lf.__createBinding||(Object.create?function(e,t,r,s){s===void 0&&(s=r),Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,s){s===void 0&&(s=r),e[s]=t[r]}),dAt=lf&&lf.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),gAt=lf&&lf.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&hAt(t,e,r);return dAt(t,e),t},Gm=lf&&lf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(lf,"__esModule",{value:!0});var jm=gAt(dn()),GCe=Gm(nq()),mAt=Gm(Gq()),yAt=Gm(Yq()),EAt=Gm(Vq()),IAt=Gm(Jq()),CAt=Gm(DF()),wAt=Gm(jCe()),BAt=" ",vAt="\x1B[Z",SAt="\x1B",xF=class extends jm.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=t=>{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"),t){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=t=>{t===""&&this.props.exitOnCtrlC&&this.handleExit(),t===SAt&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(t===BAt&&this.focusNext(),t===vAt&&this.focusPrevious())},this.handleExit=t=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(t)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focus=t=>{this.setState(r=>r.focusables.some(a=>a?.id===t)?{activeFocusId:t}:r)},this.focusNext=()=>{this.setState(t=>{var r;let s=(r=t.focusables[0])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findNextFocusable(t)||s}})},this.focusPrevious=()=>{this.setState(t=>{var r;let s=(r=t.focusables[t.focusables.length-1])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findPreviousFocusable(t)||s}})},this.addFocusable=(t,{autoFocus:r})=>{this.setState(s=>{let a=s.activeFocusId;return!a&&r&&(a=t),{activeFocusId:a,focusables:[...s.focusables,{id:t,isActive:!0}]}})},this.removeFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.filter(s=>s.id!==t)}))},this.activateFocusable=t=>{this.setState(r=>({focusables:r.focusables.map(s=>s.id!==t?s:{id:t,isActive:!0})}))},this.deactivateFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.map(s=>s.id!==t?s:{id:t,isActive:!1})}))},this.findNextFocusable=t=>{var r;let s=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=s+1;a<t.focusables.length;a++)if(!((r=t.focusables[a])===null||r===void 0)&&r.isActive)return t.focusables[a].id},this.findPreviousFocusable=t=>{var r;let s=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=s-1;a>=0;a--)if(!((r=t.focusables[a])===null||r===void 0)&&r.isActive)return t.focusables[a].id}}static getDerivedStateFromError(t){return{error:t}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return jm.default.createElement(mAt.default.Provider,{value:{exit:this.handleExit}},jm.default.createElement(yAt.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},jm.default.createElement(EAt.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},jm.default.createElement(IAt.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},jm.default.createElement(CAt.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,focus:this.focus}},this.state.error?jm.default.createElement(wAt.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){GCe.default.hide(this.props.stdout)}componentWillUnmount(){GCe.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(t){this.handleExit(t)}};lf.default=xF;xF.displayName="InternalApp"});var VCe=G(cf=>{"use strict";var bAt=cf&&cf.__createBinding||(Object.create?function(e,t,r,s){s===void 0&&(s=r),Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,s){s===void 0&&(s=r),e[s]=t[r]}),DAt=cf&&cf.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),PAt=cf&&cf.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&bAt(t,e,r);return DAt(t,e),t},uf=cf&&cf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(cf,"__esModule",{value:!0});var xAt=uf(dn()),YCe=UEe(),kAt=uf(tIe()),QAt=uf(Z9()),RAt=uf(aIe()),TAt=uf(cIe()),rY=uf(tCe()),FAt=uf(mCe()),NAt=uf(rq()),OAt=uf(CCe()),LAt=PAt(Tq()),MAt=uf(Hq()),UAt=uf(qCe()),Aw=process.env.CI==="false"?!1:RAt.default,WCe=()=>{},nY=class{constructor(t){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:s,staticOutput:a}=FAt.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(Aw){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),s>=this.options.stdout.rows){this.options.stdout.write(QAt.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},TAt.default(this),this.options=t,this.rootNode=LAt.createNode("ink-root"),this.rootNode.onRender=t.debug?this.onRender:YCe(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=kAt.default.create(t.stdout),this.throttledLog=t.debug?this.log:YCe(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=rY.default.createContainer(this.rootNode,0,!1,null),this.unsubscribeExit=NAt.default(this.unmount,{alwaysLast:!1}),t.patchConsole&&this.patchConsole(),Aw||(t.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{t.stdout.off("resize",this.onRender)})}render(t){let r=xAt.default.createElement(UAt.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},t);rY.default.updateContainer(r,this.container,null,WCe)}writeToStdout(t){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(Aw){this.options.stdout.write(t);return}this.log.clear(),this.options.stdout.write(t),this.log(this.lastOutput)}}writeToStderr(t){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(t),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(Aw){this.options.stderr.write(t);return}this.log.clear(),this.options.stderr.write(t),this.log(this.lastOutput)}}unmount(t){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),Aw?this.options.stdout.write(this.lastOutput+`
`):this.options.debug||this.log.done(),this.isUnmounted=!0,rY.default.updateContainer(null,this.container,null,WCe),MAt.default.delete(this.options.stdout),t instanceof Error?this.rejectExitPromise(t):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((t,r)=>{this.resolveExitPromise=t,this.rejectExitPromise=r})),this.exitPromise}clear(){!Aw&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=OAt.default((t,r)=>{t==="stdout"&&this.writeToStdout(r),t==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};cf.default=nY});var JCe=G(ub=>{"use strict";var KCe=ub&&ub.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ub,"__esModule",{value:!0});var _At=KCe(VCe()),kF=KCe(Hq()),HAt=Ie("stream"),jAt=(e,t)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},GAt(t)),s=qAt(r.stdout,()=>new _At.default(r));return s.render(e),{rerender:s.render,unmount:()=>s.unmount(),waitUntilExit:s.waitUntilExit,cleanup:()=>kF.default.delete(r.stdout),clear:s.clear}};ub.default=jAt;var GAt=(e={})=>e instanceof HAt.Stream?{stdout:e,stdin:process.stdin}:e,qAt=(e,t)=>{let r;return kF.default.has(e)?r=kF.default.get(e):(r=t(),kF.default.set(e,r)),r}});var XCe=G(rh=>{"use strict";var YAt=rh&&rh.__createBinding||(Object.create?function(e,t,r,s){s===void 0&&(s=r),Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,s){s===void 0&&(s=r),e[s]=t[r]}),WAt=rh&&rh.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),VAt=rh&&rh.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&YAt(t,e,r);return WAt(t,e),t};Object.defineProperty(rh,"__esModule",{value:!0});var fb=VAt(dn()),zCe=e=>{let{items:t,children:r,style:s}=e,[a,n]=fb.useState(0),c=fb.useMemo(()=>t.slice(a),[t,a]);fb.useLayoutEffect(()=>{n(t.length)},[t.length]);let f=c.map((h,E)=>r(h,a+E)),p=fb.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},s),[s]);return fb.default.createElement("ink-box",{internal_static:!0,style:p},f)};zCe.displayName="Static";rh.default=zCe});var $Ce=G(Ab=>{"use strict";var KAt=Ab&&Ab.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ab,"__esModule",{value:!0});var JAt=KAt(dn()),ZCe=({children:e,transform:t})=>e==null?null:JAt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:t},e);ZCe.displayName="Transform";Ab.default=ZCe});var twe=G(pb=>{"use strict";var zAt=pb&&pb.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(pb,"__esModule",{value:!0});var XAt=zAt(dn()),ewe=({count:e=1})=>XAt.default.createElement("ink-text",null,`
`.repeat(e));ewe.displayName="Newline";pb.default=ewe});var iwe=G(hb=>{"use strict";var rwe=hb&&hb.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(hb,"__esModule",{value:!0});var ZAt=rwe(dn()),$At=rwe(PF()),nwe=()=>ZAt.default.createElement($At.default,{flexGrow:1});nwe.displayName="Spacer";hb.default=nwe});var QF=G(db=>{"use strict";var ept=db&&db.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(db,"__esModule",{value:!0});var tpt=dn(),rpt=ept(Yq()),npt=()=>tpt.useContext(rpt.default);db.default=npt});var owe=G(gb=>{"use strict";var ipt=gb&&gb.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(gb,"__esModule",{value:!0});var swe=dn(),spt=ipt(QF()),opt=(e,t={})=>{let{stdin:r,setRawMode:s,internal_exitOnCtrlC:a}=spt.default();swe.useEffect(()=>{if(t.isActive!==!1)return s(!0),()=>{s(!1)}},[t.isActive,s]),swe.useEffect(()=>{if(t.isActive===!1)return;let n=c=>{let f=String(c),p={upArrow:f==="\x1B[A",downArrow:f==="\x1B[B",leftArrow:f==="\x1B[D",rightArrow:f==="\x1B[C",pageDown:f==="\x1B[6~",pageUp:f==="\x1B[5~",return:f==="\r",escape:f==="\x1B",ctrl:!1,shift:!1,tab:f===" "||f==="\x1B[Z",backspace:f==="\b",delete:f==="\x7F"||f==="\x1B[3~",meta:!1};f<=""&&!p.return&&(f=String.fromCharCode(f.charCodeAt(0)+97-1),p.ctrl=!0),f.startsWith("\x1B")&&(f=f.slice(1),p.meta=!0);let h=f>="A"&&f<="Z",E=f>="\u0410"&&f<="\u042F";f.length===1&&(h||E)&&(p.shift=!0),p.tab&&f==="[Z"&&(p.shift=!0),(p.tab||p.backspace||p.delete)&&(f=""),(!(f==="c"&&p.ctrl)||!a)&&e(f,p)};return r?.on("data",n),()=>{r?.off("data",n)}},[t.isActive,r,a,e])};gb.default=opt});var awe=G(mb=>{"use strict";var apt=mb&&mb.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(mb,"__esModule",{value:!0});var lpt=dn(),cpt=apt(Gq()),upt=()=>lpt.useContext(cpt.default);mb.default=upt});var lwe=G(yb=>{"use strict";var fpt=yb&&yb.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(yb,"__esModule",{value:!0});var Apt=dn(),ppt=fpt(Vq()),hpt=()=>Apt.useContext(ppt.default);yb.default=hpt});var cwe=G(Eb=>{"use strict";var dpt=Eb&&Eb.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Eb,"__esModule",{value:!0});var gpt=dn(),mpt=dpt(Jq()),ypt=()=>gpt.useContext(mpt.default);Eb.default=ypt});var fwe=G(Cb=>{"use strict";var uwe=Cb&&Cb.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Cb,"__esModule",{value:!0});var Ib=dn(),Ept=uwe(DF()),Ipt=uwe(QF()),Cpt=({isActive:e=!0,autoFocus:t=!1,id:r}={})=>{let{isRawModeSupported:s,setRawMode:a}=Ipt.default(),{activeId:n,add:c,remove:f,activate:p,deactivate:h,focus:E}=Ib.useContext(Ept.default),C=Ib.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return Ib.useEffect(()=>(c(C,{autoFocus:t}),()=>{f(C)}),[C,t]),Ib.useEffect(()=>{e?p(C):h(C)},[e,C]),Ib.useEffect(()=>{if(!(!s||!e))return a(!0),()=>{a(!1)}},[e]),{isFocused:!!C&&n===C,focus:E}};Cb.default=Cpt});var Awe=G(wb=>{"use strict";var wpt=wb&&wb.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wb,"__esModule",{value:!0});var Bpt=dn(),vpt=wpt(DF()),Spt=()=>{let e=Bpt.useContext(vpt.default);return{enableFocus:e.enableFocus,disableFocus:e.disableFocus,focusNext:e.focusNext,focusPrevious:e.focusPrevious,focus:e.focus}};wb.default=Spt});var pwe=G(iY=>{"use strict";Object.defineProperty(iY,"__esModule",{value:!0});iY.default=e=>{var t,r,s,a;return{width:(r=(t=e.yogaNode)===null||t===void 0?void 0:t.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(s=e.yogaNode)===null||s===void 0?void 0:s.getComputedHeight())!==null&&a!==void 0?a:0}}});var Yc=G(vo=>{"use strict";Object.defineProperty(vo,"__esModule",{value:!0});var bpt=JCe();Object.defineProperty(vo,"render",{enumerable:!0,get:function(){return bpt.default}});var Dpt=PF();Object.defineProperty(vo,"Box",{enumerable:!0,get:function(){return Dpt.default}});var Ppt=tY();Object.defineProperty(vo,"Text",{enumerable:!0,get:function(){return Ppt.default}});var xpt=XCe();Object.defineProperty(vo,"Static",{enumerable:!0,get:function(){return xpt.default}});var kpt=$Ce();Object.defineProperty(vo,"Transform",{enumerable:!0,get:function(){return kpt.default}});var Qpt=twe();Object.defineProperty(vo,"Newline",{enumerable:!0,get:function(){return Qpt.default}});var Rpt=iwe();Object.defineProperty(vo,"Spacer",{enumerable:!0,get:function(){return Rpt.default}});var Tpt=owe();Object.defineProperty(vo,"useInput",{enumerable:!0,get:function(){return Tpt.default}});var Fpt=awe();Object.defineProperty(vo,"useApp",{enumerable:!0,get:function(){return Fpt.default}});var Npt=QF();Object.defineProperty(vo,"useStdin",{enumerable:!0,get:function(){return Npt.default}});var Opt=lwe();Object.defineProperty(vo,"useStdout",{enumerable:!0,get:function(){return Opt.default}});var Lpt=cwe();Object.defineProperty(vo,"useStderr",{enumerable:!0,get:function(){ Line truncated
`:"";return c?C+=`@IF EXIST ${c} (\r
${c} ${p} ${a} ${E}%*\r
) ELSE (\r
@SETLOCAL\r
@SET PATHEXT=%PATHEXT:;.JS;=;%\r
${f} ${p} ${a} ${E}%*\r
)\r
`:C+=`@${f} ${p} ${a} ${E}%*\r
`,C}function n0t(e,t,r){let s=Vc.relative(Vc.dirname(t),e),a=r.prog&&r.prog.split("\\").join("/"),n;s=s.split("\\").join("/");let c=Vc.isAbsolute(s)?`"${s}"`:`"$basedir/${s}"`,f=r.args||"",p=zY(r.nodePath).posix;a?(n=`"$basedir/${r.prog}"`,s=c):(a=c,f="",s="");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
`,C=r.nodePath?`export NODE_PATH="${p}"
`:"";return n?E+=`${C}if [ -x ${n} ]; then
exec ${n} ${f} ${s} ${h}"$@"
else
exec ${a} ${f} ${s} ${h}"$@"
fi
`:E+=`${C}${a} ${f} ${s} ${h}"$@"
exit $?
`,E}function i0t(e,t,r){let s=Vc.relative(Vc.dirname(t),e),a=r.prog&&r.prog.split("\\").join("/"),n=a&&`"${a}$exe"`,c;s=s.split("\\").join("/");let f=Vc.isAbsolute(s)?`"${s}"`:`"$basedir/${s}"`,p=r.args||"",h=zY(r.nodePath),E=h.win32,C=h.posix;n?(c=`"$basedir/${r.prog}$exe"`,s=f):(n=f,p="",s="");let S=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="${C}"
}`),c?x+=`
$ret=0
if (Test-Path ${c}) {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${c} ${p} ${s} ${S}$args
} else {
& ${c} ${p} ${s} ${S}$args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${n} ${p} ${s} ${S}$args
} else {
& ${n} ${p} ${s} ${S}$args
}
$ret=$LASTEXITCODE
}
${r.nodePath?`$env:NODE_PATH=$env_node_path
`:""}exit $ret
`:x+=`
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${n} ${p} ${s} ${S}$args
} else {
& ${n} ${p} ${s} ${S}$args
}
${r.nodePath?`$env:NODE_PATH=$env_node_path
`:""}exit $LASTEXITCODE
`,x}function s0t(e,t){return t.fs_.chmod(e,493)}function zY(e){if(!e)return{win32:"",posix:""};let t=typeof e=="string"?e.split(Vc.delimiter):Array.from(e),r={};for(let s=0;s<t.length;s++){let a=t[s].split("/").join("\\"),n=S1e()?t[s].split("\\").join("/").replace(/^([^:\\/]*):/,(c,f)=>`/mnt/${f.toLowerCase()}`):t[s];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[s]={win32:a,posix:n}}return r}D1e.exports=JY});var fW=G((e$t,V1e)=>{V1e.exports=Ie("stream")});var X1e=G((t$t,z1e)=>{"use strict";function K1e(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function H0t(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?K1e(Object(r),!0).forEach(function(s){j0t(e,s,r[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):K1e(Object(r)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(r,s))})}return e}function j0t(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function G0t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function J1e(e,t){for(var r=0;r<t.length;r++){var s=t[r];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}function q0t(e,t,r){return t&&J1e(e.prototype,t),r&&J1e(e,r),e}var Y0t=Ie("buffer"),tN=Y0t.Buffer,W0t=Ie("util"),AW=W0t.inspect,V0t=AW&&AW.custom||"inspect";function K0t(e,t,r){tN.prototype.copy.call(e,t,r)}z1e.exports=function(){function e(){G0t(this,e),this.head=null,this.tail=null,this.length=0}return q0t(e,[{key:"push",value:function(r){var s={data:r,next:null};this.length>0?this.tail.next=s:this.head=s,this.tail=s,++this.length}},{key:"unshift",value:function(r){var s={data:r,next:this.head};this.length===0&&(this.tail=s),this.head=s,++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 s=this.head,a=""+s.data;s=s.next;)a+=r+s.data;return a}},{key:"concat",value:function(r){if(this.length===0)return tN.alloc(0);for(var s=tN.allocUnsafe(r>>>0),a=this.head,n=0;a;)K0t(a.data,s,n),n+=a.data.length,a=a.next;return s}},{key:"consume",value:function(r,s){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=s?this._getString(r):this._getBuffer(r),a}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(r){var s=this.head,a=1,n=s.data;for(r-=n.length;s=s.next;){var c=s.data,f=r>c.length?c.length:r;if(f===c.length?n+=c:n+=c.slice(0,r),r-=f,r===0){f===c.length?(++a,s.next?this.head=s.next:this.head=this.tail=null):(this.head=s,s.data=c.slice(f));break}++a}return this.length-=a,n}},{key:"_getBuffer",value:function(r){var s=tN.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(s),r-=a.data.length;a=a.next;){var c=a.data,f=r>c.length?c.length:r;if(c.copy(s,s.length-r,0,f),r-=f,r===0){f===c.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=c.slice(f));break}++n}return this.length-=n,s}},{key:V0t,value:function(r,s){return AW(this,H0t({},s,{depth:0,customInspect:!1}))}}]),e}()});var hW=G((r$t,$1e)=>{"use strict";function J0t(e,t){var r=this,s=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return s||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(pW,this,e)):process.nextTick(pW,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(n){!t&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(rN,r):(r._writableState.errorEmitted=!0,process.nextTick(Z1e,r,n)):process.nextTick(Z1e,r,n):t?(process.nextTick(rN,r),t(n)):process.nextTick(rN,r)}),this)}function Z1e(e,t){pW(e,t),rN(e)}function rN(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function z0t(){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 pW(e,t){e.emit("error",t)}function X0t(e,t){var r=e._readableState,s=e._writableState;r&& Line truncated
`)),e.linkname&&(t+=jW(" linkpath="+e.linkname+`
`));var r=e.pax;if(r)for(var s in r)t+=jW(" "+s+"="+r[s]+`
`);return Buffer.from(t)};Tw.decodePax=function(e){for(var t={};e.length;){for(var r=0;r<e.length&&e[r]!==32;)r++;var s=parseInt(e.slice(0,r).toString(),10);if(!s)return t;var a=e.slice(r+1,s-1).toString(),n=a.indexOf("=");if(n===-1)return t;t[a.slice(0,n)]=a.slice(n+1),e=e.slice(s)}return t};Tw.encode=function(e){var t=Ggt(512),r=e.name,s="";if(e.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;s+=s?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(s)>155||e.linkname&&Buffer.byteLength(e.linkname)>100?null:(t.write(r),t.write(dd(e.mode&Jgt,6),100),t.write(dd(e.uid,6),108),t.write(dd(e.gid,6),116),t.write(dd(e.size,11),124),t.write(dd(e.mtime.getTime()/1e3|0,11),136),t[156]=$2e+Zgt(e.type),e.linkname&&t.write(e.linkname,157),eBe.copy(t,AD),Wgt.copy(t,GW),e.uname&&t.write(e.uname,265),e.gname&&t.write(e.gname,297),t.write(dd(e.devmajor||0,6),329),t.write(dd(e.devminor||0,6),337),s&&t.write(s,345),t.write(dd(rBe(t),6),148),t)};Tw.decode=function(e,t,r){var s=e[156]===0?0:e[156]-$2e,a=Rw(e,0,100,t),n=gd(e,100,8),c=gd(e,108,8),f=gd(e,116,8),p=gd(e,124,12),h=gd(e,136,12),E=Xgt(s),C=e[157]===0?null:Rw(e,157,100,t),S=Rw(e,265,32),x=Rw(e,297,32),I=gd(e,329,8),T=gd(e,337,8),O=rBe(e);if(O===8*32)return null;if(O!==gd(e,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(eBe.compare(e,AD,AD+6)===0)e[345]&&(a=Rw(e,345,155,t)+"/"+a);else if(!(Vgt.compare(e,AD,AD+6)===0&&Kgt.compare(e,GW,GW+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return s===0&&a&&a[a.length-1]==="/"&&(s=5),{name:a,mode:n,uid:c,gid:f,size:p,mtime:new Date(1e3*h),type:E,linkname:C,uname:S,gname:x,devmajor:I,devminor:T}}});var cBe=G((w$t,lBe)=>{var iBe=Ie("util"),emt=Z2e(),pD=qW(),sBe=Qw().Writable,oBe=Qw().PassThrough,aBe=function(){},nBe=function(e){return e&=511,e&&512-e},tmt=function(e,t){var r=new mN(e,t);return r.end(),r},rmt=function(e,t){return t.path&&(e.name=t.path),t.linkpath&&(e.linkname=t.linkpath),t.size&&(e.size=parseInt(t.size,10)),e.pax=t,e},mN=function(e,t){this._parent=e,this.offset=t,oBe.call(this,{autoDestroy:!1})};iBe.inherits(mN,oBe);mN.prototype.destroy=function(e){this._parent.destroy(e)};var uh=function(e){if(!(this instanceof uh))return new uh(e);sBe.call(this,e),e=e||{},this._offset=0,this._buffer=emt(),this._missing=0,this._partial=!1,this._onparse=aBe,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 t=this,r=t._buffer,s=function(){t._continue()},a=function(S){if(t._locked=!1,S)return t.destroy(S);t._stream||s()},n=function(){t._stream=null;var S=nBe(t._header.size);S?t._parse(S,c):t._parse(512,C),t._locked||s()},c=function(){t._buffer.consume(nBe(t._header.size)),t._parse(512,C),s()},f=function(){var S=t._header.size;t._paxGlobal=pD.decodePax(r.slice(0,S)),r.consume(S),n()},p=function(){var S=t._header.size;t._pax=pD.decodePax(r.slice(0,S)),t._paxGlobal&&(t._pax=Object.assign({},t._paxGlobal,t._pax)),r.consume(S),n()},h=function(){var S=t._header.size;this._gnuLongPath=pD.decodeLongPath(r.slice(0,S),e.filenameEncoding),r.consume(S),n()},E=function(){var S=t._header.size;this._gnuLongLinkPath=pD.decodeLongPath(r.slice(0,S),e.filenameEncoding),r.consume(S),n()},C=function(){var S=t._offset,x;try{x=t._header=pD.decode(r.slice(0,512),e.filenameEncoding,e.allowUnknownFormat)}catch(I){t.emit("error",I)}if(r.consume(512),!x){t._parse(512,C),s();return}if(x.type==="gnu-long-path"){t._parse(x.size,h),s();return}if(x.type==="gnu-long-link-path"){t._parse(x.size,E),s();return}if(x.type==="pax-global-header"){t._parse(x.size,f),s();return}if(x.type==="pax-header"){t._parse(x.size,p),s();return}if(t._gnuLongPath&&(x.name=t._gnuLongPath,t._gnuLongPath=null),t._gnuLongLinkPath&&(x.linkname=t._gnuLongLinkPath,t._gnuLongLinkPath=null),t._pax&&(t._header=x=rmt(x,t._pax),t._pax=null),t._locked=!0,!x.size||x.type==="directory"){t._parse(512,C),t.emit("entry",x,tmt(t,S),a);return}t._stream=new mN(t,S),t.emit("entry",x,t._stream,a),t._parse(x.size,n),s()};this._onheader=C,this._parse(512,C)};iBe.inherits(uh,sBe);uh.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.emit("close"))};uh.prototype._parse=function(e,t){this._destroyed||(this._offset+=e,this._missing=e,t===this._onheader&&(this._partial=!1),this._onparse=t)};uh.prototype._continue=function(){if(!this._destroyed){var e=this._cb;this._cb=aBe,this._overflow?this._write(this._overflow,void 0,e):e()}};uh.prototype._write=function(e,t,r){if(!this._destroyed){var s=this._stream,a=this._buffer,n=this._missing;if(e.length&&(this._partial=!0),e.length<n)return this._missing-=e.length,this._overflow=null,s?s.write(e,r):(a.append(e), Line truncated
Wanted: ${this.expectedSize}
Found: ${this.size}`);s.code="EBADSIZE",s.found=this.size,s.expected=this.expectedSize,s.sri=this.sri,this.emit("error",s)}else if(this.sri&&!r){let s=new Error(`${this.sri} integrity checksum failed when using ${this.algorithm}: wanted ${this.digests} but got ${t}. (${this.size} bytes)`);s.code="EINTEGRITY",s.found=t,s.expected=this.digests,s.algorithm=this.algorithm,s.sri=this.sri,this.emit("error",s)}else this.#t=this.size,this.emit("size",this.size),this.#e=t,this.emit("integrity",t),r&&(this.#s=r,this.emit("verified",r))}},ph=class{get isHash(){return!0}constructor(t,r){let s=r?.strict;this.source=t.trim(),this.digest="",this.algorithm="",this.options=[];let a=this.source.match(s?Fmt:Tmt);if(!a||s&&!aV.includes(a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];n&&(this.options=n.slice(1).split("?"))}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}match(t,r){let s=oc(t,r);if(!s)return!1;if(s.isIntegrity){let a=s.pickAlgorithm(r,[this.algorithm]);if(!a)return!1;let n=s[a].find(c=>c.digest===this.digest);return n||!1}return s.digest===this.digest?s:!1}toString(t){return t?.strict&&!(aV.includes(this.algorithm)&&this.digest.match(Rmt)&&this.options.every(r=>r.match(Nmt)))?"":`${this.algorithm}-${this.digest}${CD(this.options)}`}};function QBe(e,t,r,s){let a=e!=="",n=!1,c="",f=s.length-1;for(let h=0;h<f;h++){let E=ph.prototype.toString.call(s[h],r);E&&(n=!0,c+=E,c+=t)}let p=ph.prototype.toString.call(s[f],r);return p&&(n=!0,c+=p),a&&n?e+t+c:e+c}var ny=class{get isIntegrity(){return!0}toJSON(){return this.toString()}isEmpty(){return Object.keys(this).length===0}toString(t){let r=t?.sep||" ",s="";if(t?.strict){r=r.replace(/\S+/g," ");for(let a of aV)this[a]&&(s=QBe(s,r,t,this[a]))}else for(let a of Object.keys(this))s=QBe(s,r,t,this[a]);return s}concat(t,r){let s=typeof t=="string"?t:ED(t,r);return oc(`${this.toString(r)} ${s}`,r)}hexDigest(){return oc(this,{single:!0}).hexDigest()}merge(t,r){let s=oc(t,r);for(let a in s)if(this[a]){if(!this[a].find(n=>s[a].find(c=>n.digest===c.digest)))throw new Error("hashes do not match, cannot update integrity")}else this[a]=s[a]}match(t,r){let s=oc(t,r);if(!s)return!1;let a=s.pickAlgorithm(r,Object.keys(this));return!!a&&this[a]&&s[a]&&this[a].find(n=>s[a].find(c=>n.digest===c.digest))||!1}pickAlgorithm(t,r){let s=t?.pickAlgorithm||Gmt,a=Object.keys(this).filter(n=>r?.length?r.includes(n):!0);return a.length?a.reduce((n,c)=>s(n,c)||n):null}};BA.exports.parse=oc;function oc(e,t){if(!e)return null;if(typeof e=="string")return oV(e,t);if(e.algorithm&&e.digest){let r=new ny;return r[e.algorithm]=[e],oV(ED(r,t),t)}else return oV(ED(e,t),t)}function oV(e,t){if(t?.single)return new ph(e,t);let r=e.trim().split(/\s+/).reduce((s,a)=>{let n=new ph(a,t);if(n.algorithm&&n.digest){let c=n.algorithm;s[c]||(s[c]=[]),s[c].push(n)}return s},new ny);return r.isEmpty()?null:r}BA.exports.stringify=ED;function ED(e,t){return e.algorithm&&e.digest?ph.prototype.toString.call(e,t):typeof e=="string"?ED(oc(e,t),t):ny.prototype.toString.call(e,t)}BA.exports.fromHex=Omt;function Omt(e,t,r){let s=CD(r?.options);return oc(`${t}-${Buffer.from(e,"hex").toString("base64")}${s}`,r)}BA.exports.fromData=Lmt;function Lmt(e,t){let r=t?.algorithms||[...cV],s=CD(t?.options);return r.reduce((a,n)=>{let c=ID.createHash(n).update(e).digest("base64"),f=new ph(`${n}-${c}${s}`,t);if(f.algorithm&&f.digest){let p=f.algorithm;a[p]||(a[p]=[]),a[p].push(f)}return a},new ny)}BA.exports.fromStream=Mmt;function Mmt(e,t){let r=uV(t);return new Promise((s,a)=>{e.pipe(r),e.on("error",a),r.on("error",a);let n;r.on("integrity",c=>{n=c}),r.on("end",()=>s(n)),r.resume()})}BA.exports.checkData=Umt;function Umt(e,t,r){if(t=oc(t,r),!t||!Object.keys(t).length){if(r?.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let s=t.pickAlgorithm(r),a=ID.createHash(s).update(e).digest("base64"),n=oc({algorithm:s,digest:a}),c=n.match(t,r);if(r=r||{},c||!r.error)return c;if(typeof r.size=="number"&&e.length!==r.size){let f=new Error(`data size mismatch when checking ${t}.
Wanted: ${r.size}
Found: ${e.length}`);throw f.code="EBADSIZE",f.found=e.length,f.expected=r.size,f.sri=t,f}else{let f=new Error(`Integrity checksum failed when using ${s}: Wanted ${t}, but got ${n}. (${e.length} bytes)`);throw f.code="EINTEGRITY",f.found=n,f.expected=t,f.algorithm=s,f.sri=t,f}}BA.exports.checkStream=_mt;function _mt(e,t,r){if(r=r||Object.create(null),r.integrity=t,t=oc(t,r),!t||!Object.keys(t).length)return Promise.reject(Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"}));let s=uV(r);return new Promise((a,n)=>{e.pipe(s),e.on("error",n),s.on("error",n);let c;s.on("verified",f=>{c=f}),s.on("end",()=>a(c)),s.resume()})}BA.exports.integrityStream=uV;function uV(e=Object.create(null)){return new lV(e)}BA.exports.create=Hmt;function Hmt(e){let t=e?.algorithms||[...cV],r=CD(e?.options),s=t.map(ID.createHash);return{update:function(a,n){return s.forEach(c=>c.update(a,n)),this},digest:function(){return t.reduce((n,c)=>{let f=s.shift().digest("base64"),p=new ph(`${c}-${f}${r}`,e);if(p.algorithm&&p.digest){let h=p.algorithm;n[h]||(n[h]=[]),n[h].push(p)}return n},new ny)}}}var jmt=ID.getHashes(),RBe=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(e=>jmt.includes(e));function Gmt(e,t){return RBe.indexOf(e.toLowerCase())>=RBe.indexOf(t.toLowerCase())?e:t}});var fV=G(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.Signature=yd.Envelope=void 0;yd.Envelope={fromJSON(e){return{payload:QN(e.payload)?Buffer.from(FBe(e.payload)):Buffer.alloc(0),payloadType:QN(e.payloadType)?globalThis.String(e.payloadType):"",signatures:globalThis.Array.isArray(e?.signatures)?e.signatures.map(t=>yd.Signature.fromJSON(t)):[]}},toJSON(e){let t={};return e.payload.length!==0&&(t.payload=NBe(e.payload)),e.payloadType!==""&&(t.payloadType=e.payloadType),e.signatures?.length&&(t.signatures=e.signatures.map(r=>yd.Signature.toJSON(r))),t}};yd.Signature={fromJSON(e){return{sig:QN(e.sig)?Buffer.from(FBe(e.sig)):Buffer.alloc(0),keyid:QN(e.keyid)?globalThis.String(e.keyid):""}},toJSON(e){let t={};return e.sig.length!==0&&(t.sig=NBe(e.sig)),e.keyid!==""&&(t.keyid=e.keyid),t}};function FBe(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function NBe(e){return globalThis.Buffer.from(e).toString("base64")}function QN(e){return e!=null}});var LBe=G(RN=>{"use strict";Object.defineProperty(RN,"__esModule",{value:!0});RN.Timestamp=void 0;RN.Timestamp={fromJSON(e){return{seconds:OBe(e.seconds)?globalThis.String(e.seconds):"0",nanos:OBe(e.nanos)?globalThis.Number(e.nanos):0}},toJSON(e){let t={};return e.seconds!=="0"&&(t.seconds=e.seconds),e.nanos!==0&&(t.nanos=Math.round(e.nanos)),t}};function OBe(e){return e!=null}});var Uw=G(_r=>{"use strict";Object.defineProperty(_r,"__esModule",{value:!0});_r.TimeRange=_r.X509CertificateChain=_r.SubjectAlternativeName=_r.X509Certificate=_r.DistinguishedName=_r.ObjectIdentifierValuePair=_r.ObjectIdentifier=_r.PublicKeyIdentifier=_r.PublicKey=_r.RFC3161SignedTimestamp=_r.LogId=_r.MessageSignature=_r.HashOutput=_r.SubjectAlternativeNameType=_r.PublicKeyDetails=_r.HashAlgorithm=void 0;_r.hashAlgorithmFromJSON=UBe;_r.hashAlgorithmToJSON=_Be;_r.publicKeyDetailsFromJSON=HBe;_r.publicKeyDetailsToJSON=jBe;_r.subjectAlternativeNameTypeFromJSON=GBe;_r.subjectAlternativeNameTypeToJSON=qBe;var qmt=LBe(),bl;(function(e){e[e.HASH_ALGORITHM_UNSPECIFIED=0]="HASH_ALGORITHM_UNSPECIFIED",e[e.SHA2_256=1]="SHA2_256",e[e.SHA2_384=2]="SHA2_384",e[e.SHA2_512=3]="SHA2_512",e[e.SHA3_256=4]="SHA3_256",e[e.SHA3_384=5]="SHA3_384"})(bl||(_r.HashAlgorithm=bl={}));function UBe(e){switch(e){case 0:case"HASH_ALGORITHM_UNSPECIFIED":return bl.HASH_ALGORITHM_UNSPECIFIED;case 1:case"SHA2_256":return bl.SHA2_256;case 2:case"SHA2_384":return bl.SHA2_384;case 3:case"SHA2_512":return bl.SHA2_512;case 4:case"SHA3_256":return bl.SHA3_256;case 5:case"SHA3_384":return bl.SHA3_384;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum HashAlgorithm")}}function _Be(e){switch(e){case bl.HASH_ALGORITHM_UNSPECIFIED:return"HASH_ALGORITHM_UNSPECIFIED";case bl.SHA2_256:return"SHA2_256";case bl.SHA2_384:return"SHA2_384";case bl.SHA2_512:return"SHA2_512";case bl.SHA3_256:return"SHA3_256";case bl.SHA3_384:return"SHA3_384";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum HashAlgorithm")}}var sn;(function(e){e[e.PUBLIC_KEY_DETAILS_UNSPECIFIED=0]="PUBLIC_KEY_DETAILS_UNSPECIFIED",e[e.PKCS1_RSA_PKCS1V5=1]="PKCS1_RSA_PKCS1V5",e[e.PKCS1_RSA_PSS=2]="PKCS1_RSA_PSS",e[e.PKIX_RSA_PKCS1V5=3]="PKIX_RSA_PKCS1V5",e[e.PKIX_RSA_PSS=4]="PKIX_RSA_PSS",e[e.PKIX_RSA_PKCS1V15_2048_SHA256=9]="PKIX_RSA_PKCS1V15_2048_SHA256",e[e.PKIX_RSA_PKCS1V15_3072_SHA256=10]="PKIX_RSA_PKCS1V15_3072_SHA256",e[e.PKIX_RSA_PKCS1V15_4096_SHA256=11]="PKIX_RSA_PKCS1V15_4096_SHA256",e[e.PKIX_RSA_PSS_2048_SHA256=16]="PKIX_RSA_PSS_2048_SHA256",e[e.PKIX_RSA_PSS_3072_SHA256=17]="PKIX_RSA_PSS_3072_SHA256",e[e.PKIX_RS Line truncated
`).forEach(r=>{r.match(Oyt)||r.match(Lyt)||(t+=r)}),Buffer.from(t,"base64")}function Uyt(e,t="CERTIFICATE"){let s=e.toString("base64").match(/.{1,64}/g)||"";return[`-----BEGIN ${t}-----`,...s,`-----END ${t}-----`].join(`
`).concat(`
`)}});var eO=G(qw=>{"use strict";Object.defineProperty(qw,"__esModule",{value:!0});qw.SHA2_HASH_ALGOS=qw.ECDSA_SIGNATURE_ALGOS=void 0;qw.ECDSA_SIGNATURE_ALGOS={"1.2.840.10045.4.3.1":"sha224","1.2.840.10045.4.3.2":"sha256","1.2.840.10045.4.3.3":"sha384","1.2.840.10045.4.3.4":"sha512"};qw.SHA2_HASH_ALGOS={"2.16.840.1.101.3.4.2.1":"sha256","2.16.840.1.101.3.4.2.2":"sha384","2.16.840.1.101.3.4.2.3":"sha512"}});var kV=G(tO=>{"use strict";Object.defineProperty(tO,"__esModule",{value:!0});tO.RFC3161TimestampVerificationError=void 0;var xV=class extends Error{};tO.RFC3161TimestampVerificationError=xV});var Ive=G(DA=>{"use strict";var _yt=DA&&DA.__createBinding||(Object.create?function(e,t,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,s,a)}:function(e,t,r,s){s===void 0&&(s=r),e[s]=t[r]}),Hyt=DA&&DA.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),jyt=DA&&DA.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&_yt(t,e,r);return Hyt(t,e),t};Object.defineProperty(DA,"__esModule",{value:!0});DA.TSTInfo=void 0;var Eve=jyt(Gw()),Gyt=eO(),qyt=kV(),QV=class{constructor(t){this.root=t}get version(){return this.root.subs[0].toInteger()}get genTime(){return this.root.subs[4].toDate()}get messageImprintHashAlgorithm(){let t=this.messageImprintObj.subs[0].subs[0].toOID();return Gyt.SHA2_HASH_ALGOS[t]}get messageImprintHashedMessage(){return this.messageImprintObj.subs[1].value}get raw(){return this.root.toDER()}verify(t){let r=Eve.digest(this.messageImprintHashAlgorithm,t);if(!Eve.bufferEqual(r,this.messageImprintHashedMessage))throw new qyt.RFC3161TimestampVerificationError("message imprint does not match artifact")}get messageImprintObj(){return this.root.subs[2]}};DA.TSTInfo=QV});var wve=G(PA=>{"use strict";var Yyt=PA&&PA.__createBinding||(Object.create?function(e,t,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,s,a)}:function(e,t,r,s){s===void 0&&(s=r),e[s]=t[r]}),Wyt=PA&&PA.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Vyt=PA&&PA.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&Yyt(t,e,r);return Wyt(t,e),t};Object.defineProperty(PA,"__esModule",{value:!0});PA.RFC3161Timestamp=void 0;var Kyt=XN(),RV=Vyt(Gw()),Cve=eO(),DD=kV(),Jyt=Ive(),zyt="1.2.840.113549.1.7.2",Xyt="1.2.840.113549.1.9.16.1.4",Zyt="1.2.840.113549.1.9.4",TV=class e{constructor(t){this.root=t}static parse(t){let r=Kyt.ASN1Obj.parseBuffer(t);return new e(r)}get status(){return this.pkiStatusInfoObj.subs[0].toInteger()}get contentType(){return this.contentTypeObj.toOID()}get eContentType(){return this.eContentTypeObj.toOID()}get signingTime(){return this.tstInfo.genTime}get signerIssuer(){return this.signerSidObj.subs[0].value}get signerSerialNumber(){return this.signerSidObj.subs[1].value}get signerDigestAlgorithm(){let t=this.signerDigestAlgorithmObj.subs[0].toOID();return Cve.SHA2_HASH_ALGOS[t]}get signatureAlgorithm(){let t=this.signatureAlgorithmObj.subs[0].toOID();return Cve.ECDSA_SIGNATURE_ALGOS[t]}get signatureValue(){return this.signatureValueObj.value}get tstInfo(){return new Jyt.TSTInfo(this.eContentObj.subs[0].subs[0])}verify(t,r){if(!this.timeStampTokenObj)throw new DD.RFC3161TimestampVerificationError("timeStampToken is missing");if(this.contentType!==zyt)throw new DD.RFC3161TimestampVerificationError(`incorrect content type: ${this.contentType}`);if(this.eContentType!==Xyt)throw new DD.RFC3161TimestampVerificationError(`incorrect encapsulated content type: ${this.eContentType}`);this.tstInfo.verify(t),this.verifyMessageDigest(),this.verifySignature(r)}verifyMessageDigest(){let t=RV.digest(this.signerDigestAlgorithm,this.tstInfo.raw),r=this.messageDigestAttributeObj.subs[1].subs[0].value;if(!RV.bufferEqual(t,r))throw new DD.RFC3161TimestampVerificationError("signed data does not match tstInfo")}verifySignature(t){let r=this.signedAttrsObj.toDER();if(r[0]=49,!RV.verify(r,t,this.signatureValue,this.signatureAlgorithm))throw new DD.RFC3161TimestampVerificationError("signature verification failed")}get pkiStatusInfoObj(){return this.root.subs[0]}get timeStampTokenObj(){return this.root.subs[1]}get contentTypeObj(){return this.timeStampTokenObj.subs[0]}get signedDataObj(){return this.timeStampTokenObj.subs.find(r=>r.tag.isContextSpecific(0)).subs[0]}get encapContentInfoObj(){return this.signedDataObj.subs[2]}get signerInfosObj(){let t=this.signedDataObj;return t.subs[t.subs.length-1]}get sig Line truncated
globstar while`,t,S,r,x,I),this.matchOne(t.slice(S),r.slice(x),s))return this.debug("globstar found match!",S,p,I),!0;if(I==="."||I===".."||!a.dot&&I.charAt(0)==="."){this.debug("dot detected!",t,S,r,x);break}this.debug("globstar swallow a segment, and continue"),S++}return!!(s&&(this.debug(`
>>> no match, partial?`,t,S,r,x),S===p))}let T;if(typeof E=="string"?(T=C===E,this.debug("string match",E,C,T)):(T=E.test(C),this.debug("pattern match",E,C,T)),!T)return!1}if(c===p&&f===h)return!0;if(c===p)return s;if(f===h)return c===p-1&&t[c]==="";throw new Error("wtf?")}braceExpand(){return(0,hr.braceExpand)(this.pattern,this.options)}parse(t){(0,RO.assertValidPattern)(t);let r=this.options;if(t==="**")return hr.GLOBSTAR;if(t==="")return"";let s,a=null;(s=t.match(mwt))?a=r.dot?Ewt:ywt:(s=t.match(awt))?a=(r.nocase?r.dot?fwt:uwt:r.dot?cwt:lwt)(s[1]):(s=t.match(Iwt))?a=(r.nocase?r.dot?wwt:Cwt:r.dot?Bwt:vwt)(s):(s=t.match(Awt))?a=r.dot?hwt:pwt:(s=t.match(dwt))&&(a=gwt);let n=hbe.AST.fromGlob(t,this.options).toMMPattern();return a&&typeof n=="object"&&Reflect.defineProperty(n,"test",{value:a}),n}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let r=this.options,s=r.noglobstar?bwt:r.dot?Dwt:Pwt,a=new Set(r.nocase?["i"]:[]),n=t.map(p=>{let h=p.map(E=>{if(E instanceof RegExp)for(let C of E.flags.split(""))a.add(C);return typeof E=="string"?Fwt(E):E===hr.GLOBSTAR?hr.GLOBSTAR:E._src});return h.forEach((E,C)=>{let S=h[C+1],x=h[C-1];E!==hr.GLOBSTAR||x===hr.GLOBSTAR||(x===void 0?S!==void 0&&S!==hr.GLOBSTAR?h[C+1]="(?:\\/|"+s+"\\/)?"+S:h[C]=s:S===void 0?h[C-1]=x+"(?:\\/|"+s+")?":S!==hr.GLOBSTAR&&(h[C-1]=x+"(?:\\/|\\/"+s+"\\/)"+S,h[C+1]=hr.GLOBSTAR))}),h.filter(E=>E!==hr.GLOBSTAR).join("/")}).join("|"),[c,f]=t.length>1?["(?:",")"]:["",""];n="^"+c+n+f+"$",this.negate&&(n="^(?!"+n+").+$");try{this.regexp=new RegExp(n,[...a].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,r=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;let s=this.options;this.isWindows&&(t=t.split("\\").join("/"));let a=this.slashSplit(t);this.debug(this.pattern,"split",a);let n=this.set;this.debug(this.pattern,"set",n);let c=a[a.length-1];if(!c)for(let f=a.length-2;!c&&f>=0;f--)c=a[f];for(let f=0;f<n.length;f++){let p=n[f],h=a;if(s.matchBase&&p.length===1&&(h=[c]),this.matchOne(h,p,r))return s.flipNegate?!0:!this.negate}return s.flipNegate?!1:this.negate}static defaults(t){return hr.minimatch.defaults(t).Minimatch}};hr.Minimatch=hy;var Nwt=R7();Object.defineProperty(hr,"AST",{enumerable:!0,get:function(){return Nwt.AST}});var Owt=T7();Object.defineProperty(hr,"escape",{enumerable:!0,get:function(){return Owt.escape}});var Lwt=DO();Object.defineProperty(hr,"unescape",{enumerable:!0,get:function(){return Lwt.unescape}});hr.minimatch.AST=hbe.AST;hr.minimatch.Minimatch=hy;hr.minimatch.escape=iwt.escape;hr.minimatch.unescape=swt.unescape});var O7=G(ru=>{"use strict";var Ebe=ru&&ru.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ru,"__esModule",{value:!0});ru.SuccinctRoles=ru.DelegatedRole=ru.Role=ru.TOP_LEVEL_ROLE_NAMES=void 0;var Ibe=Ebe(Ie("crypto")),Mwt=ybe(),TO=Ebe(Ie("util")),FO=QA(),dy=hf();ru.TOP_LEVEL_ROLE_NAMES=["root","targets","snapshot","timestamp"];var jD=class e{constructor(t){let{keyIDs:r,threshold:s,unrecognizedFields:a}=t;if(Uwt(r))throw new FO.ValueError("duplicate key IDs found");if(s<1)throw new FO.ValueError("threshold must be at least 1");this.keyIDs=r,this.threshold=s,this.unrecognizedFields=a||{}}equals(t){return t instanceof e?this.threshold===t.threshold&&TO.default.isDeepStrictEqual(this.keyIDs,t.keyIDs)&&TO.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}toJSON(){return{keyids:this.keyIDs,threshold:this.threshold,...this.unrecognizedFields}}static fromJSON(t){let{keyids:r,threshold:s,...a}=t;if(!dy.guard.isStringArray(r))throw new TypeError("keyids must be an array");if(typeof s!="number")throw new TypeError("threshold must be a number");return new e({keyIDs:r,threshold:s,unrecognizedFields:a})}};ru.Role=jD;function Uwt(e){return new Set(e).size!==e.length}var F7=class e extends jD{constructor(t){super(t);let{name:r,terminating:s,paths:a,pathHashPrefixes:n}=t;if(this.name=r,this.terminating=s,t.paths&&t.pathHashPrefixes)throw new FO.ValueError("paths and pathHashPrefixes are mutually exclusive");this.paths=a,this.pathHashPrefixes=n}equals(t){return t instanceof e?super.equals(t)&&this.name===t.name&&this.terminating===t.terminating&&TO.default.isDeepStrictEqual(this.paths,t.paths)&&TO.default.isDeepStrictEqual(this.pathHashPrefixes,t.pathHashPrefixes):!1}isDelegatedPath(t){if(this.paths)return this.paths.some(r=>Hwt(t,r));if(this.pathHashPrefixes){let s=Ibe.default.createHash("sha256").update(t).digest("hex");return this.pathHashPrefixes.some(a=>s.startsWith(a))}return!1}toJSON(){let t={...super.toJSON(),name:this.name,terminating:this.terminating};return this.paths&&(t.paths=this.paths),this.pathHashPrefixes&&(t.path_hash_prefixes=this.pathHashPrefixes),t}static fro Line truncated
`).join(`
`+n),e.push(a+"m+"+WO.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=G1t()+t+" "+e[0]}function G1t(){return oo.inspectOpts.hideDate?"":new Date().toISOString()+" "}function q1t(...e){return process.stderr.write(YO.formatWithOptions(oo.inspectOpts,...e)+`
`)}function Y1t(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function W1t(){return process.env.DEBUG}function V1t(e){e.inspectOpts={};let t=Object.keys(oo.inspectOpts);for(let r=0;r<t.length;r++)e.inspectOpts[t[r]]=oo.inspectOpts[t[r]]}WO.exports=rK()(oo);var{formatters:Nbe}=WO.exports;Nbe.o=function(e){return this.inspectOpts.colors=this.useColors,YO.inspect(e,this.inspectOpts).split(`
`).map(t=>t.trim()).join(" ")};Nbe.O=function(e){return this.inspectOpts.colors=this.useColors,YO.inspect(e,this.inspectOpts)}});var iK=G((jtr,nK)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?nK.exports=Fbe():nK.exports=Obe()});var KO=G(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.DownloadHTTPError=Ji.DownloadLengthMismatchError=Ji.DownloadError=Ji.ExpiredMetadataError=Ji.EqualVersionError=Ji.BadVersionError=Ji.RepositoryError=Ji.PersistError=Ji.RuntimeError=Ji.ValueError=void 0;var sK=class extends Error{};Ji.ValueError=sK;var oK=class extends Error{};Ji.RuntimeError=oK;var aK=class extends Error{};Ji.PersistError=aK;var qD=class extends Error{};Ji.RepositoryError=qD;var VO=class extends qD{};Ji.BadVersionError=VO;var lK=class extends VO{};Ji.EqualVersionError=lK;var cK=class extends qD{};Ji.ExpiredMetadataError=cK;var YD=class extends Error{};Ji.DownloadError=YD;var uK=class extends YD{};Ji.DownloadLengthMismatchError=uK;var fK=class extends YD{constructor(t,r){super(t),this.statusCode=r}};Ji.DownloadHTTPError=fK});var Mbe=G(u1=>{"use strict";var pK=u1&&u1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(u1,"__esModule",{value:!0});u1.withTempFile=void 0;var AK=pK(Ie("fs/promises")),K1t=pK(Ie("os")),Lbe=pK(Ie("path")),J1t=async e=>z1t(async t=>e(Lbe.default.join(t,"tempfile")));u1.withTempFile=J1t;var z1t=async e=>{let t=await AK.default.realpath(K1t.default.tmpdir()),r=await AK.default.mkdtemp(t+Lbe.default.sep);try{return await e(r)}finally{await AK.default.rm(r,{force:!0,recursive:!0,maxRetries:3})}}});var dK=G(Qd=>{"use strict";var zO=Qd&&Qd.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Qd,"__esModule",{value:!0});Qd.DefaultFetcher=Qd.BaseFetcher=void 0;var X1t=zO(iK()),Ube=zO(Ie("fs")),Z1t=zO(cO()),$1t=zO(Ie("util")),_be=KO(),e2t=Mbe(),t2t=(0,X1t.default)("tuf:fetch"),JO=class{async downloadFile(t,r,s){return(0,e2t.withTempFile)(async a=>{let n=await this.fetch(t),c=0,f=Ube.default.createWriteStream(a);try{for await(let p of n){let h=Buffer.from(p);if(c+=h.length,c>r)throw new _be.DownloadLengthMismatchError("Max length reached");await r2t(f,h)}}finally{await $1t.default.promisify(f.close).bind(f)()}return s(a)})}async downloadBytes(t,r){return this.downloadFile(t,r,async s=>{let a=Ube.default.createReadStream(s),n=[];for await(let c of a)n.push(c);return Buffer.concat(n)})}};Qd.BaseFetcher=JO;var hK=class extends JO{constructor(t={}){super(),this.timeout=t.timeout,this.retry=t.retry}async fetch(t){t2t("GET %s",t);let r=await(0,Z1t.default)(t,{timeout:this.timeout,retry:this.retry});if(!r.ok||!r?.body)throw new _be.DownloadHTTPError("Failed to download",r.status);return r.body}};Qd.DefaultFetcher=hK;var r2t=async(e,t)=>new Promise((r,s)=>{e.write(t,a=>{a&&s(a),r(!0)})})});var Hbe=G(XO=>{"use strict";Object.defineProperty(XO,"__esModule",{value:!0});XO.defaultConfig=void 0;XO.defaultConfig={maxRootRotations:256,maxDelegations:32,rootMaxLength:512e3,timestampMaxLength:16384,snapshotMaxLength:2e6,targetsMaxLength:5e6,prefixTargetsWithHash:!0,fetchTimeout:1e5,fetchRetries:void 0,fetchRetry:2}});var jbe=G(ZO=>{"use strict";Object.defineProperty(ZO,"__esModule",{value:!0});ZO.TrustedMetadataStore=void 0;var Bs=jO(),Hi=KO(),gK=class{constructor(t){this.trustedSet={},this.referenceTime=new Date,this.loadTrustedRoot(t)}get root(){if(!this.trustedSet.root)throw new ReferenceError("No trusted root metadata");return this.trustedSet.root}get timestamp(){return this.trustedSet.timestamp}get snapshot(){return this.trustedSet.snapshot}get targets(){return this.trustedSet.targets}getRole(t){return this.trustedSet[t]}updateRoot(t){let r=JSON.parse(t.toString("utf8")),s=Bs.Metadata.fromJSON(Bs.MetadataKind.Root,r);if(s.signed.type!=Bs.MetadataKind.Root)throw new Hi.RepositoryError(`Expected 'root', got ${s.signed.type}`);if(this.root.verifyDelegate(Bs.MetadataKind.Root,s),s.signed.version!=this.root.signed.version+1)throw new Hi.BadVersionError(`Expected version ${this.root.signed.version+1}, got ${s.signed.version}`);return s.verifyDelegate(Bs.MetadataKind.Root,s),this.trustedSet.root=s,s}updateTimestamp(t){if(this.snapshot)throw new Hi.RuntimeError("Cannot update timestamp after snapshot");if(this.root.signed.isExpired(this.referenceTime))throw new Hi.ExpiredMetadataError("Final root.json is expired");let r=JSON.parse(t.toString("utf8")),s=Bs.Metadata.fromJSON(Bs.MetadataKind.Timestamp,r);if(s.signed.type!=Bs.MetadataKind.Timestamp)throw new Hi.RepositoryError(`Expected 'timestamp', got ${s.signed.type}`);if(this.root.verifyDelegate(Bs.MetadataKind.Timestamp,s),this.timestamp){if(s.signed.version<this.timestamp.signed.version)throw new Hi.BadVersionError(`New timestamp version ${s.signed.version} is less than current version ${this.timestamp.signed.version}`);if(s.signed.version===this.timestamp.signed.version)throw new Hi.EqualVersionError(`New timestamp version ${s.sLine truncated
`,uBt=/\u2014 (\S+) (\S+)\n/g;function fBt(e,t){let r=(0,cBt.filterTLogAuthorities)(t,{targetDate:new Date(Number(e.integratedTime)*1e3)}),s=e.inclusionProof,a=MK.fromString(s.checkpoint.envelope),n=UK.fromString(a.note);if(!ABt(a,r))throw new h1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid checkpoint signature"});if(!LK.crypto.bufferEqual(n.logHash,s.rootHash))throw new h1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"root hash mismatch"})}function ABt(e,t){let r=Buffer.from(e.note,"utf-8");return e.signatures.every(s=>{let a=t.find(n=>LK.crypto.bufferEqual(n.logID.subarray(0,4),s.keyHint));return a?LK.crypto.verify(r,a.publicKey,s.signature):!1})}var MK=class e{constructor(t,r){this.note=t,this.signatures=r}static fromString(t){if(!t.includes(OK))throw new h1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"missing checkpoint separator"});let r=t.indexOf(OK),s=t.slice(0,r+1),n=t.slice(r+OK.length).matchAll(uBt),c=Array.from(n,f=>{let[,p,h]=f,E=Buffer.from(h,"base64");if(E.length<5)throw new h1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"malformed checkpoint signature"});return{name:p,keyHint:E.subarray(0,4),signature:E.subarray(4)}});if(c.length===0)throw new h1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"no signatures found in checkpoint"});return new e(s,c)}},UK=class e{constructor(t,r,s,a){this.origin=t,this.logSize=r,this.logHash=s,this.rest=a}static fromString(t){let r=t.trimEnd().split(`
`);if(r.length<3)throw new h1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"too few lines in checkpoint header"});let s=r[0],a=BigInt(r[1]),n=Buffer.from(r[2],"base64"),c=r.slice(3);return new e(s,a,n,c)}}});var fDe=G(qK=>{"use strict";Object.defineProperty(qK,"__esModule",{value:!0});qK.verifyMerkleInclusion=dBt;var GK=xl(),HK=bo(),pBt=Buffer.from([0]),hBt=Buffer.from([1]);function dBt(e){let t=e.inclusionProof,r=BigInt(t.logIndex),s=BigInt(t.treeSize);if(r<0n||r>=s)throw new HK.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:`invalid index: ${r}`});let{inner:a,border:n}=gBt(r,s);if(t.hashes.length!==a+n)throw new HK.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid hash count"});let c=t.hashes.slice(0,a),f=t.hashes.slice(a),p=wBt(e.canonicalizedBody),h=yBt(mBt(p,c,r),f);if(!GK.crypto.bufferEqual(h,t.rootHash))throw new HK.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"calculated root hash does not match inclusion proof"})}function gBt(e,t){let r=EBt(e,t),s=IBt(e>>BigInt(r));return{inner:r,border:s}}function mBt(e,t,r){return t.reduce((s,a,n)=>r>>BigInt(n)&BigInt(1)?jK(a,s):jK(s,a),e)}function yBt(e,t){return t.reduce((r,s)=>jK(s,r),e)}function EBt(e,t){return CBt(e^t-BigInt(1))}function IBt(e){return e.toString(2).split("1").length-1}function CBt(e){return e===0n?0:e.toString(2).length}function jK(e,t){return GK.crypto.digest("sha256",hBt,e,t)}function wBt(e){return GK.crypto.digest("sha256",pBt,e)}});var pDe=G(YK=>{"use strict";Object.defineProperty(YK,"__esModule",{value:!0});YK.verifyTLogSET=SBt;var ADe=xl(),BBt=bo(),vBt=Ey();function SBt(e,t){if(!(0,vBt.filterTLogAuthorities)(t,{logID:e.logId.keyId,targetDate:new Date(Number(e.integratedTime)*1e3)}).some(a=>{let n=bBt(e),c=Buffer.from(ADe.json.canonicalize(n),"utf8"),f=e.inclusionPromise.signedEntryTimestamp;return ADe.crypto.verify(c,a.publicKey,f)}))throw new BBt.VerificationError({code:"TLOG_INCLUSION_PROMISE_ERROR",message:"inclusion promise could not be verified"})}function bBt(e){let{integratedTime:t,logIndex:r,logId:s,canonicalizedBody:a}=e;return{body:a.toString("base64"),integratedTime:Number(t),logIndex:Number(r),logID:s.keyId.toString("hex")}}});var hDe=G(KK=>{"use strict";Object.defineProperty(KK,"__esModule",{value:!0});KK.verifyRFC3161Timestamp=xBt;var WK=xl(),VK=bo(),DBt=FK(),PBt=Ey();function xBt(e,t,r){let s=e.signingTime;if(r=(0,PBt.filterCertAuthorities)(r,{start:s,end:s}),r=QBt(r,{serialNumber:e.signerSerialNumber,issuer:e.signerIssuer}),!r.some(n=>{try{return kBt(e,t,n),!0}catch{return!1}}))throw new VK.VerificationError({code:"TIMESTAMP_ERROR",message:"timestamp could not be verified"})}function kBt(e,t,r){let[s,...a]=r.certChain,n=WK.crypto.createPublicKey(s.publicKey),c=e.signingTime;try{new DBt.CertificateChainVerifier({untrustedCert:s,trustedCerts:a}).verify()}catch{throw new VK.VerificationError({code:"TIMESTAMP_ERROR",message:"invalid certificate chain"})}if(!r.certChain.every(p=>p.validForDate(c)))throw new VK.VerificationError({code:"TIMESTAMP_ERROR",message:"timestamp was signed with an expired certificate"});e.verify(t,n)}function QBt(e,t){return e.filter(r=>r.certChain.length>0&&WK.crypto.bufferEqual(r.certChain[0].serialNumber,t.serialNumber)&&WK.crypto.bufferEqual(r.certChain[0].issuer,t.issuer))}});var dDe=G(AL=>{"use strict";Object.defineProperty(AL,"__esModule",{value:!0});AL.verifyTSATimestamp=LBt;AL.verifyTLogTimestamp=MBt;var RBt=bo(),TBt=uDe(),FBt=fDe(),NBt=pDe(),OBt=hDe();function LBt(e,t,r){return(0,OBt.verifyRFC3161Timestamp)(e,t,r),{type:"timestamp-authority",logID:e.signerSerialNumber,timestamp:e.signingTime}}function MBt(e,t){let r=!1;if(UBt(e)&&((0,NBt.verifyTLogSET)(e,t),r=!0),_Bt(e)&&((0,FBt.verifyMerkleInclusion)(e),(0,TBt.verifyCheckpoint)(e,t),r=!0),!r)throw new RBt.VerificationError({code:"TLOG_MISSING_INCLUSION_ERROR",message:"inclusion could not be verified"});return{type:"transparency-log",logID:e.logId.keyId,timestamp:new Date(Number(e.integratedTime)*1e3)}}function UBt(e){return e.inclusionPromise!==void 0}function _Bt(e){return e.inclusionProof!==void 0}});var gDe=G(JK=>{"use strict";Object.defineProperty(JK,"__esModule",{value:!0});JK.verifyDSSETLogBody=HBt;var pL=bo();function HBt(e,t){switch(e.apiVersion){case"0.0.1":return jBt(e,t);default:throw new pL.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported dsse version: ${e.apiVersion}`})}}function jBt(e,t){if(e.spec.signatures?.length!==1)throw new pL.VerificationError({code:"TLOG_BODY_ERROR",message:"signature count mismatch"});let r=e.spec.signatures[0].signature;if(!t.compareSignature(Buffer.from(r,"base64")))throw new pL.VerificationError({code:"TLOG_BODY_ERROR",message:"tlog entry signature mismatch"});let s=e.spec.payloadHash?.value||"";if(!t.compareDigest(Buffer.from(s,"hex")))throw new pL.VerificationError({code:"TLOG_BODY_ERROR",message:"DSSE payload hash mismatch"})}});var mDe=G(XK=>{"use strict";Object.defineProperty(XK,"__esModule",{value:!0});XK.verify Line truncated
Try running the command again with the package name prefixed: ${ce.pretty(r,"yarn add",ce.Type.CODE)} ${ce.pretty(r,j.makeDescriptor(j.makeIdent(null,"my-package"),`${ie[0]}...`),ce.Type.DESCRIPTOR)}`);if(!$)throw new st(`The ${ce.pretty(r,V,ce.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let fe=aot(a,$,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(fe.map(async ge=>{let he=await eS($,{project:s,workspace:a,cache:n,fixed:c,target:ge,modifier:h,strategies:E,maxResults:C});return{request:$,suggestedDescriptors:he,target:ge}}))})).then(V=>V.flat()),I=await fA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async V=>{for(let{request:$,suggestedDescriptors:{suggestions:ie,rejections:fe}}of x)if(ie.filter(ge=>ge.descriptor!==null).length===0){let[ge]=fe;if(typeof ge>"u")throw new Error("Assertion failed: Expected an error to have been set");s.configuration.get("enableNetwork")?V.reportError(27,`${j.prettyDescriptor(r,$)} can't be resolved to a satisfying range`):V.reportError(27,`${j.prettyDescriptor(r,$)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),V.reportSeparator(),V.reportExceptionOnce(ge)}});if(I.hasErrors())return I.exitCode();let T=!1,O=[],U=[];for(let{suggestedDescriptors:{suggestions:V},target:$}of x){let ie,fe=V.filter(Ce=>Ce.descriptor!==null),ae=fe[0].descriptor,ge=fe.every(Ce=>j.areDescriptorsEqual(Ce.descriptor,ae));fe.length===1||ge?ie=ae:(T=!0,{answer:ie}=await(0,lge.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:V.map(({descriptor:Ce,name:Ee,reason:d})=>Ce?{name:Ee,hint:d,descriptor:Ce}:{name:Ee,hint:d,disabled:!0}),onCancel:()=>process.exit(130),result(Ce){return this.find(Ce,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let he=a.manifest[$].get(ie.identHash);(typeof he>"u"||he.descriptorHash!==ie.descriptorHash)&&(a.manifest[$].set(ie.identHash,ie),this.optional&&($==="dependencies"?a.manifest.ensureDependencyMeta({...ie,range:"unknown"}).optional=!0:$==="peerDependencies"&&(a.manifest.ensurePeerDependencyMeta({...ie,range:"unknown"}).optional=!0)),typeof he>"u"?O.push([a,$,ie,E]):U.push([a,$,he,ie]))}return await r.triggerMultipleHooks(V=>V.afterWorkspaceDependencyAddition,O),await r.triggerMultipleHooks(V=>V.afterWorkspaceDependencyReplacement,U),T&&this.context.stdout.write(`
`),await s.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:n,mode:this.mode})}};function aot(e,t,{dev:r,peer:s,preferDev:a,optional:n}){let c=e.manifest.dependencies.has(t.identHash),f=e.manifest.devDependencies.has(t.identHash),p=e.manifest.peerDependencies.has(t.identHash);if((r||s)&&c)throw new st(`Package "${j.prettyIdent(e.project.configuration,t)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!s&&p)throw new st(`Package "${j.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(n&&f)throw new st(`Package "${j.prettyIdent(e.project.configuration,t)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!s&&p)throw new st(`Package "${j.prettyIdent(e.project.configuration,t)}" 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 "${j.prettyIdent(e.project.configuration,t)}" cannot simultaneously be a dev dependency and an optional dependency`);let h=[];return s&&h.push("peerDependencies"),(r||a)&&h.push("devDependencies"),n&&h.push("dependencies"),h.length>0?h:f?["devDependencies"]:p?["peerDependencies"]:["dependencies"]}Ge();Ge();jt();var $I=class extends ft{constructor(){super(...arguments);this.verbose=pe.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=pe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=pe.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 Je.find(this.context.cwd,this.context.plugins),{project:s,locator:a}=await Rt.find(r,this.context.cwd);if(await s.restoreInstallState(),this.name){let f=(await wn.getPackageAccessibleBinaries(a,{project:s})).get(this.name);if(!f)throw new st(`Couldn't find a binary named "${this.name}" for package "${j.prettyLocator(r,a)}"`);let[,p]=f;return this.context.stdout.write(`${p}
`),0}return(await Ft.start({configuration:r,json:this.json,stdout:this.context.stdout},async c=>{let f=await wn.getPackageAccessibleBinaries(a,{project:s}),h=Array.from(f.keys()).reduce((E,C)=>Math.max(E,C.length),0);for(let[E,[C,S]]of f)c.reportJson({name:E,source:j.stringifyIdent(C),path:S});if(this.verbose)for(let[E,[C]]of f)c.reportInfo(null,`${E.padEnd(h," ")} ${j.prettyLocator(r,C)}`);else for(let E of f.keys())c.reportInfo(null,E)})).exitCode()}};Ge();bt();jt();var eC=class extends ft{constructor(){super(...arguments);this.mirror=pe.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=pe.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 Je.find(this.context.cwd,this.context.plugins);if(!r.get("enableCacheClean"))throw new st("Cache cleaning is currently disabled. To enable it, set `enableCacheClean: true` in your configuration file. Note: Cache cleaning is typically not required and should be avoided when using Zero-Installs.");let s=await zr.find(r);return(await Ft.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&s.mirrorCwd!==null,c=!this.mirror;n&&(await le.removePromise(s.mirrorCwd),await r.triggerHook(f=>f.cleanGlobalArtifacts,r)),c&&await le.removePromise(s.cwd)})).exitCode()}};Ge();jt();Xl();var m5=Ie("util"),tC=class extends ft{constructor(){super(...arguments);this.why=pe.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"});this.json=pe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=pe.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=pe.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 Je.find(this.context.cwd,this.context.plugins),s=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*/,"");if(typeof r.settings.get(s)>"u")throw new st(`Couldn't find a configuration settings named "${s}"`);let c=r.getSpecial(s,{hideSecrets:!this.unsafe,getNativePaths:!0}),f=qe.convertMapsToIndexableObjects(c),p=a?xa(f,a):f,h=await Ft.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();m5.inspect.styles.name="cyan",this.context.stdout.write(`${(0,m5.inspect)(p,{depth:1/0,colors:r.get("enableColors"),compact:!1})}
`)}return h.exitCode()}};Ge();jt();Xl();var y5=Ie("util"),rC=class extends ft{constructor(){super(...arguments);this.json=pe.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=pe.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=pe.String();this.value=pe.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 Je.find(this.context.cwd,this.context.plugins),s=()=>{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 f=this.json?JSON.parse(this.value):this.value;await(this.home?I=>Je.updateHomeConfiguration(I):I=>Je.updateConfiguration(s(),I))(I=>{if(n){let T=p0(I);return Jg(T,this.name,f),T}else return{...I,[a]:f}});let E=(await Je.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),C=qe.convertMapsToIndexableObjects(E),S=n?xa(C,n):C;return(await Ft.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async I=>{y5.inspect.styles.name="cyan",I.reportInfo(0,`Successfully set ${this.name} to ${(0,y5.inspect)(S,{depth:1/0,colors:r.get("enableColors"),compact:!1})}`)})).exitCode()}};Ge();jt();Xl();var nC=class extends ft{constructor(){super(...arguments);this.home=pe.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=pe.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 Je.find(this.context.cwd,this.context.plugins),s=()=>{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 f=this.home?h=>Je.updateHomeConfiguration(h):h=>Je.updateConfiguration(s(),h);return(await Ft.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async h=>{let E=!1;await f(C=>{if(!IB(C,this.name))return h.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),E=!0,C;let S=n?p0(C):{...C};return h0(S,this.name),S}),E||h.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};Ge();bt();jt();var jT=Ie("util"),iC=class extends ft{constructor(){super(...arguments);this.noDefaults=pe.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"});this.json=pe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.verbose=pe.Boolean("-v,--verbose",{hidden:!0});this.why=pe.Boolean("--why",{hidden:!0});this.names=pe.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 Je.find(this.context.cwd,this.context.plugins,{strict:!1}),s=await kI({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(s!==null)return s;let a=this.names.length>0?[...new Set(this.names)].sort():[...r.settings.keys()].sort(),n,c=await Ft.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async f=>{if(r.invalid.size>0&&!this.json){for(let[p,h]of r.invalid)f.reportError(34,`Invalid configuration key "${p}" in ${h}`);f.reportSeparator()}if(this.json)for(let p of a){if(this.noDefaults&&!r.sources.has(p))continue;let h=r.settings.get(p);typeof h>"u"&&f.reportError(34,`No configuration key named "${p}"`);let E=r.getSpecial(p,{hideSecrets:!0,getNativePaths:!0}),C=r.sources.get(p)??"<default>",S=C&&C[0]!=="<"?Ae.fromPortablePath(C):C;f.reportJson({key:p,effective:E,source:S,...h})}else{let p={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},h={},E={children:h};for(let C of a){if(this.noDefaults&&!r.sources.has(C))continue;let S=r.settings.get(C),x=r.sources.get(C)??"<default>",I=r.getSpecial(C,{hideSecrets:!0,getNativePaths:!0}),T={Description:{label:"Description",value:ce.tuple(ce.Type.MARKDOWN,{text:S.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:ce.tuple(x[0]==="<"?ce.Type.CODE:ce.Type.PATH,x)}};h[C]={value:ce.tuple(ce.Type.CODE,C),children:T};let O=(U,V)=>{for(let[$,ie]of V)if(ie instanceof Map){let fe={};U[$]={children:fe},O(fe,ie)}else U[$]={label:$,value:ce.tuple(ce.Type.NO_HINT,(0,jT.inspect)(ie,p))}};I instanceof Map?O(T,I):T.Value={label:"Value",value:ce.tuple(ce.Type.NO_HINT,(0,jT.inspect)(I,p))}}a.length!==1&&(n=void 0),ts.emitTree(E,{configuration:r,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof n<"u"){let f=a[0],p=(0,jT.inspect)(r.getSpecial(f,{hideSecrets:!0,getNativePaths:!0}),{colors:r.get("enableColors")});this.context.stdout.write(`
`),this.context.stdout.write(`${p}
`)}return c.exitCode()}};Ge();jt();Jo();var GT={};Vt(GT,{Strategy:()=>tS,acceptedStrategies:()=>lot,dedupe:()=>E5});Ge();Ge();var cge=et(Xo()),tS=(t=>(t.HIGHEST="highest",t))(tS||{}),lot=new Set(Object.values(tS)),cot={highest:async(e,t,{resolver:r,fetcher:s,resolveOptions:a,fetchOptions:n})=>{let c=new Map;for(let[p,h]of e.storedResolutions){let E=e.storedDescriptors.get(p);if(typeof E>"u")throw new Error(`Assertion failed: The descriptor (${p}) should have been registered`);qe.getSetWithDefault(c,E.identHash).add(h)}let f=new Map(qe.mapAndFilter(e.storedDescriptors.values(),p=>j.isVirtualDescriptor(p)?qe.mapAndFilter.skip:[p.descriptorHash,qe.makeDeferred()]));for(let p of e.storedDescriptors.values()){let h=f.get(p.descriptorHash);if(typeof h>"u")throw new Error(`Assertion failed: The descriptor (${p.descriptorHash}) should have been registered`);let E=e.storedResolutions.get(p.descriptorHash);if(typeof E>"u")throw new Error(`Assertion failed: The resolution (${p.descriptorHash}) should have been registered`);let C=e.originalPackages.get(E);if(typeof C>"u")throw new Error(`Assertion failed: The package (${E}) should have been registered`);Promise.resolve().then(async()=>{let S=r.getResolutionDependencies(p,a),x=Object.fromEntries(await qe.allSettledSafe(Object.entries(S).map(async([$,ie])=>{let fe=f.get(ie.descriptorHash);if(typeof fe>"u")throw new Error(`Assertion failed: The descriptor (${ie.descriptorHash}) should have been registered`);let ae=await fe.promise;if(!ae)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[$,ae.updatedPackage]})));if(t.length&&!cge.default.isMatch(j.stringifyIdent(p),t)||!r.shouldPersistResolution(C,a))return C;let I=c.get(p.identHash);if(typeof I>"u")throw new Error(`Assertion failed: The resolutions (${p.identHash}) should have been registered`);if(I.size===1)return C;let T=[...I].map($=>{let ie=e.originalPackages.get($);if(typeof ie>"u")throw new Error(`Assertion failed: The package (${$}) should have been registered`);return ie}),O=await r.getSatisfying(p,x,T,a),U=O.locators?.[0];if(typeof U>"u"||!O.sorted)return C;let V=e.originalPackages.get(U.locatorHash);if(typeof V>"u")throw new Error(`Assertion failed: The package (${U.locatorHash}) should have been registered`);return V}).then(async S=>{let x=await e.preparePackage(S,{resolver:r,resolveOptions:a});h.resolve({descriptor:p,currentPackage:C,updatedPackage:S,resolvedPackage:x})}).catch(S=>{h.reject(S)})}return[...f.values()].map(p=>p.promise)}};async function E5(e,{strategy:t,patterns:r,cache:s,report:a}){let{configuration:n}=e,c=new Qi,f=n.makeResolver(),p=n.makeFetcher(),h={cache:s,checksums:e.storedChecksums,fetcher:p,project:e,report:c,cacheOptions:{skipIntegrityCheck:!0}},E={project:e,resolver:f,report:c,fetchOptions:h};return await a.startTimerPromise("Deduplication step",async()=>{let C=cot[t],S=await C(e,r,{resolver:f,resolveOptions:E,fetcher:p,fetchOptions:h}),x=Io.progressViaCounter(S.length);await a.reportProgress(x);let I=0;await Promise.all(S.map(U=>U.then(V=>{if(V===null||V.currentPackage.locatorHash===V.updatedPackage.locatorHash)return;I++;let{descriptor:$,currentPackage:ie,updatedPackage:fe}=V;a.reportInfo(0,`${j.prettyDescriptor(n,$)} can be deduped from ${j.prettyLocator(n,ie)} to ${j.prettyLocator(n,fe)}`),a.reportJson({descriptor:j.stringifyDescriptor($),currentResolution:j.stringifyLocator(ie),updatedResolution:j.stringifyLocator(fe)}),e.storedResolutions.set($.descriptorHash,fe.locatorHash)}).finally(()=>x.tick())));let T;switch(I){case 0:T="No packages";break;case 1:T="One package";break;default:T=`${I} packages`}let O=ce.pretty(n,t,ce.Type.CODE);return a.reportInfo(0,`${T} can be deduped using the ${O} strategy`),I})}var sC=class extends ft{constructor(){super(...arguments);this.strategy=pe.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Qs(tS)});this.check=pe.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=pe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=pe.String("--mode",{description:"Change what artifacts installs generate",validator:Qs(La)});this.patterns=pe.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 downgraded. Line truncated
`)}};var aC=class extends ft{static{this.paths=[["help"],["--help"],["-h"]]}async execute(){this.context.stdout.write(this.cli.usage(null))}};Ge();bt();jt();var lC=class extends ft{constructor(){super(...arguments);this.leadingArgument=pe.String();this.args=pe.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!j.tryParseIdent(this.leadingArgument)){let r=K.resolve(this.context.cwd,Ae.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 cC=class extends ft{static{this.paths=[["-v"],["--version"]]}async execute(){this.context.stdout.write(`${An||"<unknown>"}
`)}};Ge();Ge();jt();var uC=class extends ft{constructor(){super(...arguments);this.commandName=pe.String();this.args=pe.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 Je.find(this.context.cwd,this.context.plugins),{project:s,locator:a}=await Rt.find(r,this.context.cwd);return await s.restoreInstallState(),await wn.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:s})}};Ge();jt();Jo();var fC=class extends ft{constructor(){super(...arguments);this.hash=pe.String({required:!1,validator:l0(Jf(),[Sp(/^p[0-9a-f]{6}$/)])})}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 seven-letter code consisting of the letter 'p' followed by six characters 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 Je.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd);return await s.restoreInstallState({restoreResolutions:!1}),await s.applyLightResolution(),typeof this.hash<"u"?await fot(this.hash,s,{stdout:this.context.stdout}):await Aot(s,{stdout:this.context.stdout})}};async function fot(e,t,r){let s=t.peerRequirementNodes.get(e);if(typeof s>"u")throw new Error(`No peerDependency requirements found for hash: "${e}"`);let a=new Set,n=p=>a.has(p.requester.locatorHash)?{value:ce.tuple(ce.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:p.children.size>0?[{value:ce.tuple(ce.Type.NO_HINT,"...")}]:[]}:(a.add(p.requester.locatorHash),{value:ce.tuple(ce.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:Object.fromEntries(Array.from(p.children.values(),h=>[j.stringifyLocator(h.requester),n(h)]))}),c=t.peerWarnings.find(p=>p.hash===e);return(await Ft.start({configuration:t.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async p=>{let h=ce.mark(t.configuration),E=c?h.Cross:h.Check;if(p.reportInfo(0,`Package ${ce.pretty(t.configuration,s.subject,ce.Type.LOCATOR)} is requested to provide ${ce.pretty(t.configuration,s.ident,ce.Type.IDENT)} by its descendants`),p.reportSeparator(),p.reportInfo(0,ce.pretty(t.configuration,s.subject,ce.Type.LOCATOR)),ts.emitTree({children:Object.fromEntries(Array.from(s.requests.values(),C=>[j.stringifyLocator(C.requester),n(C)]))},{configuration:t.configuration,stdout:r.stdout,json:!1}),p.reportSeparator(),s.provided.range==="missing:"){let C=c?"":" , but all peer requests are optional";p.reportInfo(0,`${E} Package ${ce.pretty(t.configuration,s.subject,ce.Type.LOCATOR)} does not provide ${ce.pretty(t.configuration,s.ident,ce.Type.IDENT)}${C}.`)}else{let C=t.storedResolutions.get(s.provided.descriptorHash);if(!C)throw new Error("Assertion failed: Expected the descriptor to be registered");let S=t.storedPackages.get(C);if(!S)throw new Error("Assertion failed: Expected the package to be registered");p.reportInfo(0,`${E} Package ${ce.pretty(t.configuration,s.subject,ce.Type.LOCATOR)} provides ${ce.pretty(t.configuration,s.ident,ce.Type.IDENT)} with version ${j.prettyReference(t.configuration,S.version??"0.0.0")}, ${c?"which does not satisfy all requests.":"which satisfies all requests"}`),c?.type===3&&(c.range?p.reportInfo(0,` The combined requested range is ${ce.pretty(t.configuration,c.range,ce.Type.RANGE)}`):p.reportInfo(0," Unfortunately, the requested ranges have no overlap"))}})).exitCode()}async function Aot(e,t){return(await Ft.start({configuration:e.configuration,stdout:t.stdout,includeFooter:!1,includePrefix:!1},async s=>{let a=ce.mark(e.configuration),n=qe.sortMap(e.peerRequirementNodes,[([,c])=>j.stringifyLocator(c.subject),([,c])=>j.stringifyIdent(c.ident)]);for(let[,c]of n.values()){if(!c.root)continue;let f=e.peerWarnings.find(E=>E.hash===c.hash),p=[...j.allPeerRequests(c)],h;if(p.length>2?h=` and ${p.length-1} other dependencies`:p.length===2?h=" and 1 other dependency":h="",c.provided.range!=="missing:"){let E=e.storedResolutions.get(c.provided.descriptorHash);if(!E)throw new Error("Assertion failed: Expected the resolution to have been registered");let C=e.storedPackages.get(E);if(!C)throw new Error("Assertion failed: Expected the provided package to have been registered");let S=`${ce.pretty(e.configuration,c.hash,ce.Type.CODE)} \u2192 ${f?a.Cross:a.Check} ${j.prettyLocator(e.configuration,c.subject)} provides ${j.prettyLocator(e.configuration,C)} to ${j.prettyLocator(e.configuration,p[0].requester)}${h}`;f?s.reportWarning(0,S):s.reportInfo(0,S)}else{let E=`${ce.pretty(e.configuration,c.hash,ce.Type.CODE)} \u2192 ${f?a.Cross:a.Check} ${j.prettyLocator(e.configuration,c.subject)} doesn't provide ${j.prettyIdent(e.configuration,c.ident)} to ${j.prettyLocator(e.configuration,p[0].requester)}${h}`;f?s.reportWarning(0,E):s.reportInfo(0,E)}}})).exitCode()}Ge();jt();Jo();Ge();Ge();bt();jt();var fge=et(hi()),AC=class extends ft{constructor(){super(...arguments);this.useYarnPath=pe.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"});this.onlyIfNeeded=pe.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=pe.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
${t}`)})}let f=e.projectCwd??e.startingCwd,p=K.resolve(f,".yarn/releases"),h=K.resolve(p,`yarn-${t}.cjs`),E=K.relative(e.startingCwd,h),C=qe.isTaggedYarnVersion(t),S=e.get("yarnPath"),x=!C,I=x||!!S||!!a;if(a===!1){if(x)throw new Lt(0,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");I=!1}else!I&&!process.env.COREPACK_ROOT&&(s.reportWarning(0,`You don't seem to have ${ce.applyHyperlink(e,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${ce.applyHyperlink(e,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),I=!0);if(I){let $=await c();s.reportInfo(0,`Saving the new release in ${ce.pretty(e,E,"magenta")}`),await le.removePromise(K.dirname(h)),await le.mkdirPromise(K.dirname(h),{recursive:!0}),await le.writeFilePromise(h,$,{mode:493}),await Je.updateConfiguration(f,{yarnPath:K.relative(f,h)})}else await le.removePromise(K.dirname(h)),await Je.updateConfiguration(f,{yarnPath:Je.deleteProperty});let T=await _t.tryFind(f)||new _t;T.packageManager=`yarn@${C?t:await rS(e,"stable")}`;let O={};T.exportTo(O);let U=K.join(f,_t.fileName),V=`${JSON.stringify(O,null,T.indent)}
`;return await le.changeFilePromise(U,V,{automaticNewlines:!0}),{bundleVersion:t}}function Age(e){return pr[Yx(e)]}var hot=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function dot(e){let r=`https://repo.yarnpkg.com/${qe.isTaggedYarnVersion(An)?An:await rS(e,"canary")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,s=await nn.get(r,{configuration:e});return new Map(Array.from(s.toString().matchAll(hot),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let n=Age(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 pC=class extends ft{constructor(){super(...arguments);this.code=pe.String({required:!1,validator:J2(Jf(),[Sp(/^YN[0-9]{4}$/)])});this.json=pe.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 Je.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let s=Age(this.code),a=ce.pretty(r,s,ce.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),f=(await dot(r)).get(this.code),p=typeof f<"u"?ce.jsonOrPretty(this.json,r,ce.tuple(ce.Type.MARKDOWN,{text:f,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}:
${ce.jsonOrPretty(this.json,r,ce.tuple(ce.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:s,details:p})}
`):this.context.stdout.write(`${n}
${p}
`)}else{let s={children:qe.mapAndFilter(Object.entries(pr),([a,n])=>Number.isNaN(Number(a))?qe.mapAndFilter.skip:{label:zf(Number(a)),value:ce.tuple(ce.Type.CODE,n)})};ts.emitTree(s,{configuration:r,stdout:this.context.stdout,json:this.json})}}};Ge();bt();jt();var pge=et(Xo()),hC=class extends ft{constructor(){super(...arguments);this.all=pe.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=pe.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=pe.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=pe.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=pe.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=pe.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=pe.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=pe.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=pe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=pe.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 Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await zr.find(r);if(!a&&!this.all)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let c=new Set(this.extra);this.cache&&c.add("cache"),this.dependents&&c.add("dependents"),this.manifest&&c.add("manifest");let f=(ie,{recursive:fe})=>{let ae=ie.anchoredLocator.locatorHash,ge=new Map,he=[ae];for(;he.length>0;){let Ce=he.shift();if(ge.has(Ce))continue;let Ee=s.storedPackages.get(Ce);if(typeof Ee>"u")throw new Error("Assertion failed: Expected the package to be registered");if(ge.set(Ce,Ee),j.isVirtualLocator(Ee)&&he.push(j.devirtualizeLocator(Ee).locatorHash),!(!fe&&Ce!==ae))for(let d of Ee.dependencies.values()){let Se=s.storedResolutions.get(d.descriptorHash);if(typeof Se>"u")throw new Error("Assertion failed: Expected the resolution to be registered");he.push(Se)}}return ge.values()},p=({recursive:ie})=>{let fe=new Map;for(let ae of s.workspaces)for(let ge of f(ae,{recursive:ie}))fe.set(ge.locatorHash,ge);return fe.values()},h=({all:ie,recursive:fe})=>ie&&fe?s.storedPackages.values():ie?p({recursive:fe}):f(a,{recursive:fe}),E=({all:ie,recursive:fe})=>{let ae=h({all:ie,recursive:fe}),ge=this.patterns.map(Ee=>{let d=j.parseLocator(Ee),Se=pge.default.makeRe(j.stringifyIdent(d)),Be=j.isVirtualLocator(d),me=Be?j.devirtualizeLocator(d):d;return ue=>{let Z=j.stringifyIdent(ue);if(!Se.test(Z))return!1;if(d.reference==="unknown")return!0;let be=j.isVirtualLocator(ue),Qe=be?j.devirtualizeLocator(ue):ue;return!(Be&&be&&d.reference!==ue.reference||me.reference!==Qe.reference)}}),he=qe.sortMap([...ae],Ee=>j.stringifyLocator(Ee));return{selection:he.filter(Ee=>ge.length===0||ge.some(d=>d(Ee))),sortedLookup:he}},{selection:C,sortedLookup:S}=E({all:this.all,recursive:this.recursive});if(C.length===0)throw new st("No package matched your request");let x=new Map;if(this.dependents)for(let ie of S)for(let fe of ie.dependencies.values()){let ae=s.storedResolutions.get(fe.descriptorHash);if(typeof ae>"u")throw new Error("Assertion failed: Expected the resolution to be registered");qe.getArrayWithDefault(x,ae).push(ie)}let I=new Map;for(let ie of S){if(!j.isVirtualLocator(ie))continue;let fe=j.devirtualizeLocator(ie);qe.getArrayWithDefault(I,fe.locatorHash).push(ie)}let T={},O={children:T},U=r.makeFetcher(),V={project:s,fetcher:U,cache:n,checksums:s.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();jt();var yC=class extends ft{constructor(){super(...arguments);this.json=pe.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 Je.find(this.context.cwd,this.context.plugins),s=await Je.findRcFiles(this.context.cwd);return(await Ft.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{for(let c of s)if(c.data?.plugins)for(let f of c.data.plugins){if(!f.checksum||!f.spec.match(/^https?:/))continue;let p=await nn.get(f.spec,{configuration:r}),h=Mn.makeHash(p);if(f.checksum===h)continue;let E=ce.pretty(r,f.path,ce.Type.PATH),C=ce.pretty(r,f.spec,ce.Type.URL),S=`${E} is different from the file provided by ${C}`;n.reportJson({...f,newChecksum:h}),n.reportError(0,S)}})).exitCode()}};Ge();Ge();bt();jt();var yge=Ie("os");Ge();bt();jt();var hge=Ie("os");Ge();Sc();jt();var Iot="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Qm(e,t){let r=await nn.get(Iot,{configuration:e}),s=us(r.toString());return Object.fromEntries(Object.entries(s).filter(([a,n])=>!t||kr.satisfiesWithPrereleases(t,n.range??"<4.0.0-rc.1")))}var EC=class extends ft{constructor(){super(...arguments);this.json=pe.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 Je.find(this.context.cwd,this.context.plugins);return(await Ft.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await Qm(r,An);for(let[c,{experimental:f,...p}]of Object.entries(n)){let h=c;f&&(h+=" [experimental]"),a.reportJson({name:c,experimental:f,...p}),a.reportInfo(null,h)}})).exitCode()}};var Cot=/^[0-9]+$/,wot=process.platform==="win32";function dge(e){return Cot.test(e)?`pull/${e}/head`:e}var Bot=({repository:e,branch:t},r)=>[["git","init",Ae.fromPortablePath(r)],["git","remote","add","origin",e],["git","fetch","origin","--depth=1",dge(t)],["git","reset","--hard","FETCH_HEAD"]],vot=({branch:e})=>[["git","fetch","origin","--depth=1",dge(e),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],Sot=({plugins:e,noMinify:t},r,s)=>[["yarn","build:cli",...new Array().concat(...e.map(a=>["--plugin",K.resolve(s,a)])),...t?["--no-minify"]:[],"|"],[wot?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",Ae.fromPortablePath(r),"|"]],IC=class extends ft{constructor(){super(...arguments);this.installPath=pe.String("--path",{description:"The path where the repository should be cloned to"});this.repository=pe.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=pe.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=pe.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.dryRun=pe.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"});this.noMinify=pe.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=pe.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=pe.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 Je.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd),a=typeof this.installPath<"u"?K.resolve(this.context.cwd,Ae.toPortablePath(this.installPath)):K.resolve(Ae.toPortablePath((0,hge.tmpdir)()),"yarnpkg-sources",Mn.makeHash(this.repository).slice(0,6));return(await Ft.start({configuration:r,stdout:this.context.stdout},async c=>{await w5(this,{configuration:r,report:c,target:a}),c.reportSeparator(),c.reportInfo(0,"Building a fresh bundle"),c.reportSeparator();let f=await Yr.execvp("git",["rev-parse","--short","HEAD"],{cwd:a,strict:!0}),p=K.join(a,`packages/yarnpkg-cli/bundles/yarn-${f.stdout.trim()}.js`);le.existsSync(p)||(await nS(Sot(this,p,a),{configuration:r,context:this.context,target:a}),c.reportSeparator());let h=await le.readFilePromise(p);if(!this.dryRun){let{bundleVersion:E}=await I5(r,null,async()=>h,{report:c});this.skipPlugins||await bot(this,E,{project:s,report:c,target:a})}})).exitCode()}};async function nS(e,{configuration:t,context:r,target:s}){for(let[a,...n]of e){let c=n[n.length-1]==="|";if(c&&n.pop(),c)await Yr.pipevp(a,n,{cwd:s,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${ce.pretty(t,` $ ${[a,...n].join(" ")}`,"grey")}
`);try{await Yr.execvp(a,n,{cwd:s,strict:!0})}catch(f){throw r.stdout.write(f.stdout||f.stack),f}}}}async function w5(e,{configuration:t,report:r,target:s}){let a=!1;if(!e.force&&le.existsSync(K.join(s,".git"))){r.reportInfo(0,"Fetching the latest commits"),r.reportSeparator();try{await nS(vot(e),{configuration:t,context:e.context,target:s}),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 le.removePromise(s),await le.mkdirPromise(s,{recursive:!0}),await nS(Bot(e,s),{configuration:t,context:e.context,target:s}))}async function bot(e,t,{project:r,report:s,target:a}){let n=await Qm(r.configuration,t),c=new Set(Object.keys(n));for(let f of r.configuration.plugins.keys())c.has(f)&&await B5(f,e,{project:r,report:s,target:a})}Ge();Ge();bt();jt();var gge=et(hi()),mge=Ie("vm");var CC=class extends ft{constructor(){super(...arguments);this.name=pe.String();this.checksum=pe.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 Je.find(this.context.cwd,this.context.plugins);return(await Ft.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await Rt.find(r,this.context.cwd),c,f;if(this.name.match(/^\.{0,2}[\\/]/)||Ae.isAbsolute(this.name)){let p=K.resolve(this.context.cwd,Ae.toPortablePath(this.name));a.reportInfo(0,`Reading ${ce.pretty(r,p,ce.Type.PATH)}`),c=K.relative(n.cwd,p),f=await le.readFilePromise(p)}else{let p;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new Lt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}c=this.name,p=this.name}else{let h=j.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(h.reference!=="unknown"&&!gge.default.valid(h.reference))throw new Lt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let E=j.stringifyIdent(h),C=await Qm(r,An);if(!Object.hasOwn(C,E)){let S=`Couldn't find a plugin named ${j.prettyIdent(r,h)} on the remote registry.
`;throw r.plugins.has(E)?S+=`A plugin named ${j.prettyIdent(r,h)} is already installed; possibly attempting to import a built-in plugin.`:S+=`Note that only the plugins referenced on our website (${ce.pretty(r,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",ce.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${ce.pretty(r,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",ce.Type.URL)}).`,new Lt(51,S)}c=E,p=C[E].url,h.reference!=="unknown"?p=p.replace(/\/master\//,`/${E}/${h.reference}/`):An!==null&&(p=p.replace(/\/master\//,`/@yarnpkg/cli/${An}/`))}a.reportInfo(0,`Downloading ${ce.pretty(r,p,"green")}`),f=await nn.get(p,{configuration:r})}await v5(c,f,{checksum:this.checksum,project:n,report:a})})).exitCode()}};async function v5(e,t,{checksum:r=!0,project:s,report:a}){let{configuration:n}=s,c={},f={exports:c};(0,mge.runInNewContext)(t.toString(),{module:f,exports:c});let h=`.yarn/plugins/${f.exports.name}.cjs`,E=K.resolve(s.cwd,h);a.reportInfo(0,`Saving the new plugin in ${ce.pretty(n,h,"magenta")}`),await le.mkdirPromise(K.dirname(E),{recursive:!0}),await le.writeFilePromise(E,t);let C={path:h,spec:e};r&&(C.checksum=Mn.makeHash(t)),await Je.addPlugin(s.cwd,[C])}var Dot=({pluginName:e,noMinify:t},r)=>[["yarn",`build:${e}`,...t?["--no-minify"]:[],"|"]],wC=class extends ft{constructor(){super(...arguments);this.installPath=pe.String("--path",{description:"The path where the repository should be cloned to"});this.repository=pe.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=pe.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=pe.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=pe.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=pe.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 Je.find(this.context.cwd,this.context.plugins),s=typeof this.installPath<"u"?K.resolve(this.context.cwd,Ae.toPortablePath(this.installPath)):K.resolve(Ae.toPortablePath((0,yge.tmpdir)()),"yarnpkg-sources",Mn.makeHash(this.repository).slice(0,6));return(await Ft.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:c}=await Rt.find(r,this.context.cwd),f=j.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),p=j.stringifyIdent(f),h=await Qm(r,An);if(!Object.hasOwn(h,p))throw new Lt(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 w5(this,{configuration:r,report:n,target:s}),await B5(E,this,{project:c,report:n,target:s})})).exitCode()}};async function B5(e,{context:t,noMinify:r},{project:s,report:a,target:n}){let c=e.replace(/@yarnpkg\//,""),{configuration:f}=s;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${c}`),a.reportSeparator(),await nS(Dot({pluginName:c,noMinify:r},n),{configuration:f,context:t,target:n}),a.reportSeparator();let p=K.resolve(n,`packages/${c}/bundles/${e}.js`),h=await le.readFilePromise(p);await v5(e,h,{project:s,report:a})}Ge();bt();jt();var BC=class extends ft{constructor(){super(...arguments);this.name=pe.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 Je.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd);return(await Ft.start({configuration:r,stdout:this.context.stdout},async n=>{let c=this.name,f=j.parseIdent(c);if(!r.plugins.has(c))throw new st(`${j.prettyIdent(r,f)} isn't referenced by the current configuration`);let p=`.yarn/plugins/${c}.cjs`,h=K.resolve(s.cwd,p);le.existsSync(h)&&(n.reportInfo(0,`Removing ${ce.pretty(r,p,ce.Type.PATH)}...`),await le.removePromise(h)),n.reportInfo(0,"Updating the configuration..."),await Je.updateConfiguration(s.cwd,{plugins:E=>{if(!Array.isArray(E))return E;let C=E.filter(S=>S.path!==p);return C.length===0?Je.deleteProperty:C.length===E.length?E:C}})})).exitCode()}};Ge();jt();var vC=class extends ft{constructor(){super(...arguments);this.json=pe.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 Je.find(this.context.cwd,this.context.plugins);return(await Ft.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let c=this.context.plugins.plugins.has(n),f=n;c&&(f+=" [builtin]"),a.reportJson({name:n,builtin:c}),a.reportInfo(null,`${f}`)}})).exitCode()}};Ge();Ge();jt();var SC=class extends ft{constructor(){super(...arguments);this.idents=pe.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 Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await zr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);let c=new Set;for(let f of this.idents)c.add(j.parseIdent(f).identHash);if(await s.restoreInstallState({restoreResolutions:!1}),await s.resolveEverything({cache:n,report:new Qi}),c.size>0)for(let f of s.storedPackages.values())c.has(f.identHash)&&(s.storedBuildState.delete(f.locatorHash),s.skippedBuilds.delete(f.locatorHash));else s.storedBuildState.clear(),s.skippedBuilds.clear();return await s.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ge();Ge();Ge();jt();var S5=et(Xo());Jo();var bC=class extends ft{constructor(){super(...arguments);this.all=pe.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=pe.String("--mode",{description:"Change what artifacts installs generate",validator:Qs(La)});this.patterns=pe.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 Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await zr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=this.all?s.workspaces:[a],f=["dependencies","devDependencies","peerDependencies"],p=[],h=!1,E=[];for(let I of this.patterns){let T=!1,O=j.parseIdent(I);for(let U of c){let V=[...U.manifest.peerDependenciesMeta.keys()];for(let $ of(0,S5.default)(V,I))U.manifest.peerDependenciesMeta.delete($),h=!0,T=!0;for(let $ of f){let ie=U.manifest.getForScope($),fe=[...ie.values()].map(ae=>j.stringifyIdent(ae));for(let ae of(0,S5.default)(fe,j.stringifyIdent(O))){let{identHash:ge}=j.parseIdent(ae),he=ie.get(ge);if(typeof he>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");U.manifest[$].delete(ge),E.push([U,$,he]),h=!0,T=!0}}}T||p.push(I)}let C=p.length>1?"Patterns":"Pattern",S=p.length>1?"don't":"doesn't",x=this.all?"any":"this";if(p.length>0)throw new st(`${C} ${ce.prettyList(r,p,ce.Type.CODE)} ${S} match any packages referenced by ${x} workspace`);return h?(await r.triggerMultipleHooks(I=>I.afterWorkspaceDependencyRemoval,E),await s.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})):0}};Ge();Ge();jt();var Ege=Ie("util"),DC=class extends ft{constructor(){super(...arguments);this.json=pe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["run"]]}async execute(){let r=await Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);return(await Ft.start({configuration:r,stdout:this.context.stdout,json:this.json},async c=>{let f=a.manifest.scripts,p=qe.sortMap(f.keys(),C=>C),h={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},E=p.reduce((C,S)=>Math.max(C,S.length),0);for(let[C,S]of f.entries())c.reportInfo(null,`${C.padEnd(E," ")} ${(0,Ege.inspect)(S,h)}`),c.reportJson({name:C,script:S})})).exitCode()}};Ge();Ge();jt();var PC=class extends ft{constructor(){super(...arguments);this.inspect=pe.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=pe.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=pe.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=pe.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=pe.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=pe.Boolean("--silent",{hidden:!0});this.scriptName=pe.String();this.args=pe.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 Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a,locator:n}=await Rt.find(r,this.context.cwd);await s.restoreInstallState();let c=this.topLevel?s.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await wn.hasPackageScript(c,this.scriptName,{project:s}))return await wn.executePackageScript(c,this.scriptName,this.args,{project:s,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let f=await wn.getPackageAccessibleBinaries(c,{project:s});if(f.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 wn.executePackageAccessibleBinary(c,this.scriptName,this.args,{cwd:this.context.cwd,project:s,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:h,packageAccessibleBinaries:f})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(":")){let E=(await Promise.all(s.workspaces.map(async C=>C.manifest.scripts.has(this.scriptName)?C:null))).filter(C=>C!==null);if(E.length===1)return await wn.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 ${j.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 ${j.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,C]of WI)for(let S of C)if(h.length>=S.length&&JSON.stringify(h.slice(0,S.length))===JSON.stringify(S))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();jt();var xC=class extends ft{constructor(){super(...arguments);this.descriptor=pe.String();this.resolution=pe.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 npm:1.5.0"]]})}async execute(){let r=await Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await zr.find(r);if(await s.restoreInstallState({restoreResolutions:!1}),!a)throw new ar(s.cwd,this.context.cwd);let c=j.parseDescriptor(this.descriptor,!0),f=j.makeDescriptor(c,this.resolution);return s.storedDescriptors.set(c.descriptorHash,c),s.storedDescriptors.set(f.descriptorHash,f),s.resolutionAliases.set(c.descriptorHash,f.descriptorHash),await s.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Ge();bt();jt();var Ige=et(Xo()),kC=class extends ft{constructor(){super(...arguments);this.all=pe.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=pe.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 Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await zr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);let c=s.topLevelWorkspace,f=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:p,reference:h}of c.manifest.resolutions)h.startsWith("portal:")&&f.add(p.descriptor.fullName);if(this.leadingArguments.length>0)for(let p of this.leadingArguments){let h=K.resolve(this.context.cwd,Ae.toPortablePath(p));if(qe.isPathLike(p)){let E=await Je.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:S}=await Rt.find(E,h);if(!S)throw new ar(C.cwd,h);if(this.all){for(let x of C.workspaces)x.manifest.name&&f.add(j.stringifyIdent(x.anchoredLocator));if(f.size===0)throw new st("No workspace found to be unlinked in the target project")}else{if(!S.manifest.name)throw new st("The target workspace doesn't have a name and thus cannot be unlinked");f.add(j.stringifyIdent(S.anchoredLocator))}}else{let E=[...c.manifest.resolutions.map(({pattern:C})=>C.descriptor.fullName)];for(let C of(0,Ige.default)(E,p))f.add(C)}}return c.manifest.resolutions=c.manifest.resolutions.filter(({pattern:p})=>!f.has(p.descriptor.fullName)),await s.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ge();Ge();Ge();jt();var Cge=et(Xv()),b5=et(Xo());Jo();var QC=class extends ft{constructor(){super(...arguments);this.interactive=pe.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.fixed=pe.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=pe.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=pe.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=pe.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=pe.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.noTimeGate=pe.Boolean("--no-time-gate",!1,{description:"Disable the minimum release age check for this command"});this.mode=pe.String("--mode",{description:"Change what artifacts installs generate",validator:Qs(La)});this.patterns=pe.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 li Line truncated
${ae}`):O.reportError(27,`${j.prettyDescriptor(r,U)} can't be resolved to a satisfying range (note: network resolution has been disabled)
${ae}`)}else ie.length>1&&!f&&O.reportError(27,`${j.prettyDescriptor(r,U)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(x.hasErrors())return x.exitCode();let I=!1,T=[];for(let[O,U,,{suggestions:V}]of S){let $,ie=V.filter(he=>he.descriptor!==null),fe=ie[0].descriptor,ae=ie.every(he=>j.areDescriptorsEqual(he.descriptor,fe));ie.length===1||ae?$=fe:(I=!0,{answer:$}=await(0,Cge.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${j.prettyWorkspace(r,O)} \u276F ${U}?`,choices:V.map(({descriptor:he,name:Ce,reason:Ee})=>he?{name:Ce,hint:Ee,descriptor:he}:{name:Ce,hint:Ee,disabled:!0}),onCancel:()=>process.exit(130),result(he){return this.find(he,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let ge=O.manifest[U].get($.identHash);if(typeof ge>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(ge.descriptorHash!==$.descriptorHash)O.manifest[U].set($.identHash,$),T.push([O,U,ge,$]);else{let he=r.makeResolver(),Ce={project:s,resolver:he},Ee=r.normalizeDependency(ge),d=he.bindDescriptor(Ee,O.anchoredLocator,Ce);s.forgetResolution(d)}}return await r.triggerMultipleHooks(O=>O.afterWorkspaceDependencyReplacement,T),I&&this.context.stdout.write(`
`),await s.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}};Ge();Ge();jt();var RC=class extends ft{constructor(){super(...arguments);this.recursive=pe.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=pe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=pe.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=pe.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. Specify a version or range to determine why the dependency tree contains a specific version of a package. This is particularly useful when trying to find out why your project depends on lower versions.
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"],["Explain why version 3.3.1 of lodash is in your project","$0 why lodash@3.3.1"],["Explain why version 3.X of lodash is in your project","$0 why lodash@^3"]]})}async execute(){let r=await Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=j.parseDescriptor(this.package,!1);if(n.range!=="unknown"&&kr.validRange(n.range)===null)throw new st(`Expected a valid semver range, got ${n.range}`);let c=this.recursive?xot(s,n,{configuration:r,peers:this.peers}):Pot(s,n,{configuration:r,peers:this.peers});ts.emitTree(c,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};function Pot(e,t,{configuration:r,peers:s}){let a=qe.sortMap(e.storedPackages.values(),f=>j.stringifyLocator(f)),n={},c={children:n};for(let f of a){let p={};for(let E of f.dependencies.values()){if(!s&&f.peerDependencies.has(E.identHash))continue;let C=e.storedResolutions.get(E.descriptorHash);if(!C)throw new Error("Assertion failed: The resolution should have been registered");let S=e.storedPackages.get(C);if(!S)throw new Error("Assertion failed: The package should have been registered");if(!j.areIdentsEqual(S,t)||!j.isPackageInRange(S,t.range))continue;{let I=j.stringifyLocator(f);n[I]={value:[f,ce.Type.LOCATOR],children:p}}let x=j.stringifyLocator(S);p[x]={value:[{descriptor:E,locator:S},ce.Type.DEPENDENT]}}}return c}function xot(e,t,{configuration:r,peers:s}){let a=qe.sortMap(e.workspaces,S=>j.stringifyLocator(S.anchoredLocator)),n=new Set,c=new Set,f=S=>{if(n.has(S.locatorHash))return c.has(S.locatorHash);if(n.add(S.locatorHash),j.areIdentsEqual(S,t)&&j.isPackageInRange(S,t.range))return c.add(S.locatorHash),!0;let x=!1;for(let I of S.dependencies.values()){if(!s&&S.peerDependencies.has(I.identHash))continue;let T=e.storedResolutions.get(I.descriptorHash);if(!T)throw new Error("Assertion failed: The resolution should have been registered");let O=e.storedPackages.get(T);if(!O)throw new Error("Assertion failed: The package should have been registered");f(O)&&(x=!0)}return x&&c.add(S.locatorHash),x};for(let S of a)f(S.anchoredPackage);let p=new Set,h={},E={children:h},C=(S,x,I)=>{if(!c.has(S.locatorHash))return;let T=I!==null?ce.tuple(ce.Type.DEPENDENT,{locator:S,descriptor:I}):ce.tuple(ce.Type.LOCATOR,S),O={},U={value:T,children:O},V=j.stringifyLocator(S);if(x[V]=U,!(I!==null&&e.tryWorkspaceByLocator(S))&&!p.has(S.locatorHash)){p.add(S.locatorHash);for(let $ of S.dependencies.values()){if(!s&&S.peerDependencies.has($.identHash))continue;let ie=e.storedResolutions.get($.descriptorHash);if(!ie)throw new Error("Assertion failed: The resolution should have been registered");let fe=e.storedPackages.get(ie);if(!fe)throw new Error("Assertion failed: The package should have been registered");C(fe,O,$)}}};for(let S of a)C(S.anchoredPackage,h,null);return E}Ge();var O5={};Vt(O5,{GitFetcher:()=>sS,GitResolver:()=>oS,default:()=>zot,gitUtils:()=>Ma});Ge();bt();var Ma={};Vt(Ma,{TreeishProtocols:()=>iS,clone:()=>N5,fetchBase:()=>jge,fetchChangedFiles:()=>Gge,fetchChangedWorkspaces:()=>Kot,fetchRoot:()=>Hge,isGitUrl:()=>NC,lsRemote:()=>_ge,normalizeLocator:()=>Vot,normalizeRepoUrl:()=>TC,resolveUrl:()=>F5,splitRepoUrl:()=>Zp,validateRepoUrl:()=>T5});Ge();bt();jt();Xl();var Mge=et(Nge()),FC=et(Ie("querystring")),Q5=et(hi());function k5(e,t,r){let s=e.indexOf(r);return e.lastIndexOf(t,s>-1?s:1/0)}function Oge(e){try{return new URL(e)}catch{return}}function Yot(e){let t=k5(e,"@","#"),r=k5(e,":","#");return r>t&&(e=`${e.slice(0,r)}/${e.slice(r+1)}`),k5(e,":","#")===-1&&e.indexOf("//")===-1&&(e=`ssh://${e}`),e}function Lge(e){return Oge(e)||Oge(Yot(e))}function TC(e,{git:t=!1}={}){if(e=e.replace(/^git\+https:/,"https:"),e=e.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"),e=e.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),t){let r=Lge(e);r&&(e=r.href),e=e.replace(/^git\+([^:]+):/,"$1:")}return e}function Uge(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var Wot=[/^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\/(.+)?$/],iS=(a=>(a.Commit="commit",a.Head="head",a.Tag="tag",a.Semver="semver",a))(iS||{});function NC(e){return e?Wot.some(t=>!!e.match(t)):!1}function Zp(e){e=TC(e);let t=e.indexOf("#");if(t===-1)return{repo:e,treeish:{proto 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 Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=s.workspaces,c=new Map(n.map(p=>[j.stringifyIdent(p.anchoredLocator),p])),f=c.get(this.workspaceName);if(f===void 0){let p=Array.from(c.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:f.cwd})}};var Xot={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:qge.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:[eC,tC,rC,nC,xC,IC,AC,OC,oC,aC,lC,cC,ZI,$I,iC,sC,uC,fC,pC,hC,dC,gC,kC,mC,yC,wC,CC,BC,EC,vC,SC,bC,DC,PC,QC,RC,LC]},Zot=Xot;var H5={};Vt(H5,{default:()=>rat});Ge();Ge();var M5="catalog:";var U5=e=>e.startsWith(M5),$ot=e=>e.range.slice(M5.length)||null,Yge=e=>e===null?"default catalog":`catalog "${e}"`,eat=e=>e.scope?`@${e.scope}/${e.name}`:e.name,_5=(e,t,r,s)=>{let a=$ot(t),n;if(a===null)n=e.configuration.get("catalog");else try{let E=e.configuration.get("catalogs");E&&(n=E.get(a))}catch{n=void 0}if(!n||n.size===0)throw new Lt(82,`${j.prettyDescriptor(e.configuration,t)}: ${Yge(a)} not found or empty`);let c=eat(t),f=n.get(c);if(!f)throw new Lt(82,`${j.prettyDescriptor(e.configuration,t)}: entry not found in ${Yge(a)}`);let p=e.configuration.normalizeDependency(j.makeDescriptor(t,f));return r.supportsDescriptor(p,s)?r.bindDescriptor(p,e.topLevelWorkspace.anchoredLocator,s):p};var tat={configuration:{catalog:{description:"The default catalog of packages",type:"MAP",valueDefinition:{description:"The catalog of packages",type:"STRING"}},catalogs:{description:"Named catalogs of packages",type:"MAP",valueDefinition:{description:"A named catalog",type:"MAP",valueDefinition:{description:"Package version in the catalog",type:"STRING"}}}},hooks:{beforeWorkspacePacking:(e,t)=>{let r=e.project,s=r.configuration.makeResolver(),a={project:r,resolver:s,report:new Qi};for(let n of _t.allDependencies){let c=t[n];if(c)for(let[f,p]of Object.entries(c)){if(typeof p!="string"||!U5(p))continue;let h=j.parseIdent(f),E=j.makeDescriptor(h,p),C=_5(r,E,s,a),{protocol:S,source:x,params:I,selector:T}=j.parseRange(j.convertToManifestRange(C.range));S===e.project.configuration.get("defaultProtocol")&&(S=null),c[f]=j.makeRange({protocol:S,source:x,params:I,selector:T})}}},reduceDependency:async(e,t,r,s,{resolver:a,resolveOptions:n})=>U5(e.range)?_5(t,e,a,n):e}},rat=tat;var W5={};Vt(W5,{default:()=>iat});Ge();var Qt={optional:!0},j5=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Qt,zenObservable:Qt}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Qt,zenObservable:Qt}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{"supports-color":Qt}}],["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":Qt,"postcss-jsx":Qt,"postcss-less":Qt,"postcss-markdown":Qt,"postcss-scss":Qt}}],["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:Qt}}],["snowpack@>=3.3.0",{dependencies:{"node-gyp":"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Qt}}],["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:Qt,"vue-template-compiler":Qt}}],["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"}}],Line 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(()=>(AS(),fS)),s=await Je.find(this.context.cwd,this.context.plugins),{project:a}=await Rt.find(s,this.context.cwd),n=await r.find(a),c=this.query;return c.endsWith(".")||(c=`${c}.`),(await Ft.start({configuration:s,json:this.json,stdout:this.context.stdout},async p=>{for await(let h of n.query(c)){let E=Array.from(Object.entries(h)),C=E.length,S=E.reduce((x,[I])=>Math.max(x,I.length),0);for(let x=0;x<C;x++){let[I,T]=E[x];p.reportInfo(null,`${Cat(x,C)}${I.padEnd(S," ")} = ${Iat(T)}`)}p.reportJson(h)}})).exitCode()}};function Iat(e){return typeof e!="string"?`${e}`:e.match(/^[a-zA-Z][a-zA-Z0-9_]+$/)?e:`'${e}'`}function Cat(e,t){let r=e===0,s=e===t-1;return r&&s?"":r?"\u250C ":s?"\u2514 ":"\u2502 "}Ge();jt();var qC=class extends ft{constructor(){super(...arguments);this.verbose=pe.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(()=>(AS(),fS)),s=await Je.find(this.context.cwd,this.context.plugins),{project:a}=await Rt.find(s,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};Ge();Ge();jt();lS();var YC=class extends ft{constructor(){super(...arguments);this.fix=pe.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"});this.json=pe.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 Je.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd);await s.restoreInstallState();let a=await s.loadUserConfig(),n;if(a?.constraints)n=new UC(s);else{let{Constraints:h}=await Promise.resolve().then(()=>(AS(),fS));n=await h.find(s)}let c,f=!1,p=!1;for(let h=this.fix?10:1;h>0;--h){let E=await n.process();if(!E)break;let{changedWorkspaces:C,remainingErrors:S}=YT(s,E,{fix:this.fix}),x=[];for(let[I,T]of C){let O=I.manifest.indent;I.manifest=new _t,I.manifest.indent=O,I.manifest.load(T),x.push(I.persistManifest())}if(await Promise.all(x),!(C.size>0&&h>1)){c=zge(S,{configuration:r}),f=!1,p=!0;for(let[,I]of S)for(let T of I)T.fixable?f=!0:p=!1}}if(c.children.length===0)return 0;if(f){let h=p?`Those errors can all be fixed by running ${ce.pretty(r,"yarn constraints --fix",ce.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${ce.pretty(r,"yarn constraints --fix",ce.Type.CODE)}`;await Ft.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async E=>{E.reportInfo(0,h),E.reportSeparator()})}return c.children=qe.sortMap(c.children,h=>h.value[1]),ts.emitTree(c,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};lS();var wat={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:[GC,qC,YC],hooks:{async validateProjectAfterInstall(e,{reportError:t}){if(!e.configuration.get("enableConstraintsChecks"))return;let r=await e.loadUserConfig(),s;if(r?.constraints)s=new UC(e);else{let{Constraints:c}=await Promise.resolve().then(()=>(AS(),fS));s=await c.find(e)}let a=await s.process();if(!a)return;let{remainingErrors:n}=YT(e,a);if(n.size!==0)if(e.configuration.isCI)for(let[c,f]of n)for(let p of f)t(84,`${ce.pretty(e.configuration,c.anchoredLocator,ce.Type.IDENT)}: ${p.text}`);else t(84,`Constraint check failed; run ${ce.pretty(e.configuration,"yarn constraints",ce.Type.CODE)} for more details`)}}},Bat=wat;var u9={};Vt(u9,{CreateCommand:()=>WC,DlxCommand:()=>VC,default:()=>Sat});Ge();jt();var WC=class extends ft{constructor(){super(...arguments);this.pkg=pe.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=pe.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=pe.String();this.args=pe.Proxy()}static{this.paths=[["create"]]}async execute(){let r=[];this.pkg&&r.push("--package",this.pkg),this.quiet&&r.push("--quiet");let s=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),a=j.parseDescriptor(s),n=a.name.match(/^create(-|$)/)?a:a.scope?j.makeIdent(a.scope,`create-${a.name}`):j.makeIdent(null,`create-${a.name}`),c=j.stringifyIdent(n);return a.range!=="unknown"&&(c+=`@${a.range}`),this.cli.run(["dlx",...r,c,...this.args])}};Ge();Ge();bt();jt();var VC=class extends ft{constructor(){super(...arguments);this.packages=pe.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=pe.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=pe.String();this.args=pe.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-vite to scaffold a new Vite project","yarn dlx create-vite"],["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 Je.telemetry=null,await le.mktempPromise(async r=>{let s=K.join(r,`dlx-${process.pid}`);await le.mkdirPromise(s),await le.writeFilePromise(K.join(s,"package.json"),`{}
`),await le.writeFilePromise(K.join(s,"yarn.lock"),"");let a=K.join(s,".yarnrc.yml"),n=await Je.findProjectCwd(this.context.cwd),f={enableGlobalCache:!(await Je.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:zf(68),level:ce.LogLevel.Discard}]},p=n!==null?K.join(n,".yarnrc.yml"):null;p!==null&&le.existsSync(p)?(await le.copyFilePromise(p,a),await Je.updateConfiguration(s,O=>{let U=qe.toMerged(O,f);return Array.isArray(O.plugins)&&(U.plugins=O.plugins.map(V=>{let $=typeof V=="string"?V:V.path,ie=Ae.isAbsolute($)?$:Ae.resolve(Ae.fromPortablePath(n),$);return typeof V=="string"?ie:{path:ie,spec:V.spec}})),U})):await le.writeJsonPromise(a,f);let h=this.packages??[this.command],E=j.parseDescriptor(this.command).name,C=await this.cli.run(["add","--fixed","--",...h],{cwd:s,quiet:this.quiet});if(C!==0)return C;this.quiet||this.context.stdout.write(`
`);let S=await Je.find(s,this.context.plugins),{project:x,workspace:I}=await Rt.find(S,s);if(I===null)throw new ar(x.cwd,s);await x.restoreInstallState();let T=await wn.getWorkspaceAccessibleBinaries(I);return T.has(E)===!1&&T.size===1&&typeof this.packages>"u"&&(E=Array.from(T)[0][0]),await wn.executeWorkspaceAccessibleBinary(I,E,this.args,{packageAccessibleBinaries:T,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};var vat={commands:[WC,VC]},Sat=vat;var p9={};Vt(p9,{ExecFetcher:()=>hS,ExecResolver:()=>dS,default:()=>Pat,execUtils:()=>JT});Ge();Ge();Ge();bt();var AA="exec:";var JT={};Vt(JT,{loadGeneratorFile:()=>pS,makeLocator:()=>A9,makeSpec:()=>wme,parseSpec:()=>f9});Ge();bt();function f9(e){let{params:t,selector:r}=j.parseRange(e),s=Ae.toPortablePath(r);return{parentLocator:t&&typeof t.locator=="string"?j.parseLocator(t.locator):null,path:s}}function wme({parentLocator:e,path:t,generatorHash:r,protocol:s}){let a=e!==null?{locator:j.stringifyLocator(e)}:{},n=typeof r<"u"?{hash:r}:{};return j.makeRange({protocol:s,source:t,selector:t,params:{...n,...a}})}function A9(e,{parentLocator:t,path:r,generatorHash:s,protocol:a}){return j.makeLocator(e,wme({parentLocator:t,path:r,generatorHash:s,protocol:a}))}async function pS(e,t,r){let{parentLocator:s,path:a}=j.parseFileStyleRange(e,{protocol:t}),n=K.isAbsolute(a)?{packageFs:new Pn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(s,r),c=n.localPath?{packageFs:new Pn(vt.root),prefixPath:K.relative(vt.root,n.localPath)}:n;n!==c&&n.releaseFs&&n.releaseFs();let f=c.packageFs,p=K.join(c.prefixPath,a);return await f.readFilePromise(p,"utf8")}var hS=class{supports(t,r){return!!t.reference.startsWith(AA)}getLocalPath(t,r){let{parentLocator:s,path:a}=j.parseFileStyleRange(t.reference,{protocol:AA});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:K.resolve(n,a)}async fetch(t,r){let s=r.checksums.get(t.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(t,s,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t),loader:()=>this.fetchFromDisk(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:j.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:c}}async fetchFromDisk(t,r){let s=r.project.getDependencyMeta(t,null);if(!r.project.configuration.get("enableScripts")&&!s.built)throw new Lt(4,`${j.prettyLocator(r.project.configuration,t)} can't be built with the exec: protocol because all scripts have been disabled.`);let a=await pS(t.reference,AA,r);return le.mktempPromise(async n=>{let c=K.join(n,"generator.js");return await le.writeFilePromise(c,a),le.mktempPromise(async f=>{if(await this.generatePackage(f,t,c,r),!le.existsSync(K.join(f,"build")))throw new Error("The script should have generated a build directory");return await ms.makeArchiveFromDirectory(K.join(f,"build"),{prefixPath:j.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(t,r,s,a){return await le.mktempPromise(async n=>{let c=await wn.makeScriptEnv({project:a.project,binFolder:n}),f=K.join(t,"runtime.js");return await le.mktempPromise(async p=>{let h=K.join(p,"buildfile.log"),E=K.join(t,"generator"),C=K.join(t,"build");await le.mkdirPromise(E),await le.mkdirPromise(C);let S={tempDir:Ae.fromPortablePath(E),buildDir:Ae.fromPortablePath(C),locator:j.stringifyLocator(r)};await le.writeFilePromise(f,`
// 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(S)},
},
enumerable: true,
});
`);let x=c.NODE_OPTIONS||"",I=/\s*--require\s+\S*\.pnp\.c?js\s*/g;x=x.replace(I," ").trim(),c.NODE_OPTIONS=x;let{stdout:T,stderr:O}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${j.stringifyLocator(r)})
`,prefix:j.prettyLocator(a.project.configuration,r),report:a.report}),{code:U}=await Yr.pipevp(process.execPath,["--require",Ae.fromPortablePath(f),Ae.fromPortablePath(s),j.stringifyIdent(r)],{cwd:t,env:c,stdin:null,stdout:T,stderr:O});if(U!==0)throw le.detachTemp(p),new Error(`Package generation failed (exit code ${U}, logs can be found here: ${ce.pretty(a.project.configuration,h,ce.Type.PATH)})`)})})}};Ge();Ge();Ge();var bat=2,dS=class{supportsDescriptor(t,r){return!!t.range.startsWith(AA)}supportsLocator(t,r){return!!t.reference.startsWith(AA)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,s){if(s.project.tryWorkspaceByLocator(r)===null)throw new Lt(57,`${j.prettyLocator(s.project.configuration,r)} lists ${j.prettyDescriptor(s.project.configuration,t)} as dependency, but only workspaces can depend on exec: packages.`);return j.bindDescriptor(t,{locator:j.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,s){if(!s.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=f9(t.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let c=await pS(j.makeRange({protocol:AA,source:a,selector:a,params:{locator:j.stringifyLocator(n)}}),AA,s.fetchOptions),f=Mn.makeHash(`${bat}`,c).slice(0,6);return[A9(t,{parentLocator:n,path:a,generatorHash:f,protocol:AA})]}async getSatisfying(t,r,s,a){let[n]=await this.getCandidates(t,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await qe.releaseAfterUseAsync(async()=>await _t.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...t,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 Dat={fetchers:[hS],resolvers:[dS]},Pat=Dat;var d9={};Vt(d9,{FileFetcher:()=>ES,FileResolver:()=>IS,TarballFileFetcher:()=>CS,TarballFileResolver:()=>wS,default:()=>Qat,fileUtils:()=>Nm});Ge();bt();var KC=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,gS=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,rs="file:";var Nm={};Vt(Nm,{fetchArchiveFromLocator:()=>yS,makeArchiveFromLocator:()=>zT,makeBufferFromLocator:()=>h9,makeLocator:()=>JC,makeSpec:()=>Bme,parseSpec:()=>mS});Ge();bt();function mS(e){let{params:t,selector:r}=j.parseRange(e),s=Ae.toPortablePath(r);return{parentLocator:t&&typeof t.locator=="string"?j.parseLocator(t.locator):null,path:s}}function Bme({parentLocator:e,path:t,hash:r,protocol:s}){let a=e!==null?{locator:j.stringifyLocator(e)}:{},n=typeof r<"u"?{hash:r}:{};return j.makeRange({protocol:s,source:t,selector:t,params:{...n,...a}})}function JC(e,{parentLocator:t,path:r,hash:s,protocol:a}){return j.makeLocator(e,Bme({parentLocator:t,path:r,hash:s,protocol:a}))}async function yS(e,t){let{parentLocator:r,path:s}=j.parseFileStyleRange(e.reference,{protocol:rs}),a=K.isAbsolute(s)?{packageFs:new Pn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await t.fetcher.fetch(r,t),n=a.localPath?{packageFs:new Pn(vt.root),prefixPath:K.relative(vt.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let c=n.packageFs,f=K.join(n.prefixPath,s);return await qe.releaseAfterUseAsync(async()=>await c.readFilePromise(f),n.releaseFs)}async function zT(e,{protocol:t,fetchOptions:r,inMemory:s=!1}){let{parentLocator:a,path:n}=j.parseFileStyleRange(e.reference,{protocol:t}),c=K.isAbsolute(n)?{packageFs:new Pn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(a,r),f=c.localPath?{packageFs:new Pn(vt.root),prefixPath:K.relative(vt.root,c.localPath)}:c;c!==f&&c.releaseFs&&c.releaseFs();let p=f.packageFs,h=K.join(f.prefixPath,n);return await qe.releaseAfterUseAsync(async()=>await ms.makeArchiveFromDirectory(h,{baseFs:p,prefixPath:j.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:s}),f.releaseFs)}async function h9(e,{protocol:t,fetchOptions:r}){return(await zT(e,{protocol:t,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var ES=class{supports(t,r){return!!t.reference.startsWith(rs)}getLocalPath(t,r){let{parentLocator:s,path:a}=j.parseFileStyleRange(t.reference,{protocol:rs});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:K.resolve(n,a)}async fetch(t,r){let s=r.checksums.get(t.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(t,s,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${j.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFro Line truncated
`,{automaticNewlines:!0});let h=[p],E=K.join(this.context.cwd,"README.md");if(le.existsSync(E)||(await le.writeFilePromise(E,`# ${j.stringifyIdent(n.name)}
`),h.push(E)),!s||s.cwd===this.context.cwd){let C=K.join(this.context.cwd,Ir.lockfile);le.existsSync(C)||(await le.writeFilePromise(C,""),h.push(C));let x=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Whether you use PnP or not, the node_modules folder is often used to store","# build artifacts that should be gitignored","node_modules","","# 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(fe=>`${fe}
`).join(""),I=K.join(this.context.cwd,".gitignore");le.existsSync(I)||(await le.writeFilePromise(I,x),h.push(I));let O=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(fe=>`${fe}
`).join(""),U=K.join(this.context.cwd,".gitattributes");le.existsSync(U)||(await le.writeFilePromise(U,O),h.push(U));let V={"*":{charset:"utf-8",endOfLine:"lf",indentSize:2,indentStyle:"space",insertFinalNewline:!0}};qe.mergeIntoTarget(V,r.get("initEditorConfig"));let $=`root = true
`;for(let[fe,ae]of Object.entries(V)){$+=`
[${fe}]
`;for(let[ge,he]of Object.entries(ae)){let Ce=ge.replace(/[A-Z]/g,Ee=>`_${Ee.toLowerCase()}`);$+=`${Ce} = ${he}
`}}let ie=K.join(this.context.cwd,".editorconfig");le.existsSync(ie)||(await le.writeFilePromise(ie,$),h.push(ie)),await this.cli.run(["install"],{quiet:!0}),await this.initialize(),le.existsSync(K.join(this.context.cwd,".git"))||(await Yr.execvp("git",["init"],{cwd:this.context.cwd}),await Yr.execvp("git",["add","--",...h],{cwd:this.context.cwd}),await Yr.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};var zC=class extends X0{constructor(){super(...arguments);this.initializer=pe.String();this.argv=pe.Proxy()}static{this.paths=[["init"]]}async initialize(){this.context.stdout.write(`
`),await this.cli.run(["dlx",this.initializer,...this.argv],{quiet:!0})}};var Oat={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:[X0,zC]},Lat=Oat;var mY={};Vt(mY,{SearchCommand:()=>hw,UpgradeInteractiveCommand:()=>dw,default:()=>Vpt});Ge();var Pme=et(Ie("os"));function XC({stdout:e}){if(Pme.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(!e.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}jt();var _ye=et(M9()),U9={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},Fct=(0,_ye.default)(U9.appId,U9.apiKey).initIndex(U9.indexName),_9=async(e,t=0)=>await Fct.search(e,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:t,hitsPerPage:10});var bb=["regular","dev","peer"],hw=class extends ft{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(){XC(this.context);let{Gem:t}=await Promise.resolve().then(()=>(RF(),oY)),{ScrollableItems:r}=await Promise.resolve().then(()=>(OF(),NF)),{useKeypress:s}=await Promise.resolve().then(()=>(pw(),aY)),{useMinistore:a}=await Promise.resolve().then(()=>(AY(),fY)),{renderForm:n}=await Promise.resolve().then(()=>(_F(),UF)),{default:c}=await Promise.resolve().then(()=>et(Swe())),{Box:f,Text:p}=await Promise.resolve().then(()=>et(Yc())),{default:h,useEffect:E,useState:C}=await Promise.resolve().then(()=>et(dn())),S=await Je.find(this.context.cwd,this.context.plugins),x=()=>h.createElement(f,{flexDirection:"row"},h.createElement(f,{flexDirection:"column",width:48},h.createElement(f,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(f,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<space>")," to select a package.")),h.createElement(f,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<space>")," again to change the target."))),h.createElement(f,{flexDirection:"column"},h.createElement(f,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<enter>")," to install the selected packages.")),h.createElement(f,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),I=()=>h.createElement(h.Fragment,null,h.createElement(f,{width:15},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Owner")),h.createElement(f,{width:11},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Version")),h.createElement(f,{width:10},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Downloads"))),T=()=>h.createElement(f,{width:17},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Target")),O=({hit:he,active:Ce})=>{let[Ee,d]=a(he.name,null);s({active:Ce},(me,ue)=>{if(ue.name!=="space")return;if(!Ee){d(bb[0]);return}let Z=bb.indexOf(Ee)+1;Z===bb.length?d(null):d(bb[Z])},[Ee,d]);let Se=j.parseIdent(he.name),Be=j.prettyIdent(S,Se);return h.createElement(f,null,h.createElement(f,{width:45},h.createElement(p,{bold:!0,wrap:"wrap"},Be)),h.createElement(f,{width:14,marginLeft:1},h.createElement(p,{bold:!0,wrap:"truncate"},he.owner.name)),h.createElement(f,{width:10,marginLeft:1},h.createElement(p,{italic:!0,wrap:"truncate"},he.version)),h.createElement(f,{width:16,marginLeft:1},h.createElement(p,null,he.humanDownloadsLast30Days)))},U=({name:he,active:Ce})=>{let[Ee]=a(he,null),d=j.parseIdent(he);return h.createElement(f,null,h.createElement(f,{width:47},h.createElement(p,{bold:!0}," - ",j.prettyIdent(S,d))),bb.map(Se=>h.createElement(f,{key:Se,width:14,marginLeft:1},h.createElement(p,null," ",h.createElement(t,{active:Ee===Se})," ",h.createElement(p,{bold:!0},Se)))))},V=()=>h.createElement(f,{marginTop:1},h.createElement(p,null,"Powered by Algolia.")),ie=await n(({useSubmit:he})=>{let Ce=a();he(Ce);let Ee=Array.from(Ce.keys()).filter(_=>Ce.get(_)!==null),[d,Se]=C(""),[Be,me]=C(0),[ue,Z]=C([]),be=_=>{_.match(/\t| /)||Se(_)},Qe=async()=>{me(0);let _=await _9(d);_.query===d&&Z(_.hits)},ot=async()=>{let _=await _9(d,Be+1);_.query===d&&_.page-1===Be&&(me(_.page),Z([...ue,..._.hits]))};return E(()=>{d?Qe():Z([])},[d]),h.createElement(f,{flexDirection:"column"},h.createElement(x,null),h.createElement(f,{flexDirection:"row",marginTop:1},h.createElement(p,{bold:!0},"Search: "),h.createElement(f,{width:41},h.createElement(c,{value:d,onChange:be,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),h.createElement(I,null)),ue.length?h.createElement(r,{radius:2,loop:!1,children:ue.map(_=>h.createElement(O,{key:_.name,hit:_,active:!1})),willReachEnd:ot}):h.createElement(p,{color:"gray"},"Start typing..."),h.createElement(f,{flexDirection:"row",marginTop:1},h.createElement(f,{width:49},h.createElement(p,{bold:!0},"Selected:")),h.createElement(T,null)),Ee.length?Ee.map(_=>h.createElement(U,{key:_,name:_,active:!1})):h.createElement(p,{color:"gray"},"No selected packages..."),h.createElement(V,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ie>"u")return 1;let fe=Array.from(ie.keys()).filter(he=>ie.get(he)==="regular"),ae=Array.from(ie.keys()).filter(he=>ie.get(he)==="dev"),ge=Array.from(ie.keys()).filter(he=>ie.get(he)==="peer");return fe.length&&await this.cli.run(["add",...fe]),ae.length&&await this.cli.run(["add","--dev",...ae]),ge&&await this.cli.run(["add","--peer",...ge]),0}};Ge();jt();dG();var Rwe=et(hi());Jo();var Qwe=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/;function Twe(e,t){return e.length>0?[e.slice(0,t)].concat(Twe(e.slice(t),t)):[]}var dw=class extends ft{constructor(){super(...arguments);this.mode=pe.String("--mode",{description:"Change what artifacts installs genera Line truncated
${E}, next tree:
${Tb(f)}`);let S=Lwe(f);if(S)throw new Error(`${S}, after hoisting finished:
${Tb(f)}`)}return n.debugLevel>=2&&console.log(Tb(f)),aht(f)},eht=e=>{let t=e[e.length-1],r=new Map,s=new Set,a=n=>{if(!s.has(n)){s.add(n);for(let c of n.hoistedDependencies.values())r.set(c.name,c);for(let c of n.dependencies.values())n.peerNames.has(c.name)||a(c)}};return a(t),r},tht=e=>{let t=e[e.length-1],r=new Map,s=new Set,a=new Set,n=(c,f)=>{if(s.has(c))return;s.add(c);for(let h of c.hoistedDependencies.values())if(!f.has(h.name)){let E;for(let C of e)E=C.dependencies.get(h.name),E&&r.set(E.name,E)}let p=new Set;for(let h of c.dependencies.values())p.add(h.name);for(let h of c.dependencies.values())c.peerNames.has(h.name)||n(h,p)};return n(t,a),r},Nwe=(e,t)=>{if(t.decoupled)return t;let{name:r,references:s,ident:a,locator:n,dependencies:c,originalDependencies:f,hoistedDependencies:p,peerNames:h,reasons:E,isHoistBorder:C,hoistPriority:S,dependencyKind:x,hoistedFrom:I,hoistedTo:T}=t,O={name:r,references:new Set(s),ident:a,locator:n,dependencies:new Map(c),originalDependencies:new Map(f),hoistedDependencies:new Map(p),peerNames:new Set(h),reasons:new Map(E),decoupled:!0,isHoistBorder:C,hoistPriority:S,dependencyKind:x,hoistedFrom:new Map(I),hoistedTo:new Map(T)},U=O.dependencies.get(r);return U&&U.ident==O.ident&&O.dependencies.set(r,O),e.dependencies.set(O.name,O),O},rht=(e,t)=>{let r=new Map([[e.name,[e.ident]]]);for(let a of e.dependencies.values())e.peerNames.has(a.name)||r.set(a.name,[a.ident]);let s=Array.from(t.keys());s.sort((a,n)=>{let c=t.get(a),f=t.get(n);if(f.hoistPriority!==c.hoistPriority)return f.hoistPriority-c.hoistPriority;{let p=c.dependents.size+c.peerDependents.size;return f.dependents.size+f.peerDependents.size-p}});for(let a of s){let n=a.substring(0,a.indexOf("@",1)),c=a.substring(n.length+1);if(!e.peerNames.has(n)){let f=r.get(n);f||(f=[],r.set(n,f)),f.indexOf(c)<0&&f.push(c)}}return r},CY=e=>{let t=new Set,r=(s,a=new Set)=>{if(!a.has(s)){a.add(s);for(let n of s.peerNames)if(!e.peerNames.has(n)){let c=e.dependencies.get(n);c&&!t.has(c)&&r(c,a)}t.add(s)}};for(let s of e.dependencies.values())e.peerNames.has(s.name)||r(s);return t},BY=(e,t,r,s,a,n=new Set)=>{let c=t[t.length-1];if(n.has(c))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(c);let f=lht(c),p=rht(c,f),h=e==c?new Map:a.fastLookupPossible?eht(t):tht(t),E,C=!1,S=!1,x=new Map(Array.from(p.entries()).map(([T,O])=>[T,O[0]])),I=new Map;do{let T=sht(e,t,r,h,x,p,s,I,a);T.isGraphChanged&&(S=!0),T.anotherRoundNeeded&&(C=!0),E=!1;for(let[O,U]of p)U.length>1&&!c.dependencies.has(O)&&(x.delete(O),U.shift(),x.set(O,U[0]),E=!0)}while(E);for(let T of c.dependencies.values())if(!c.peerNames.has(T.name)&&!r.has(T.locator)){r.add(T.locator);let O=BY(e,[...t,T],r,I,a);O.isGraphChanged&&(S=!0),O.anotherRoundNeeded&&(C=!0),r.delete(T.locator)}return{anotherRoundNeeded:C,isGraphChanged:S}},nht=e=>{for(let[t,r]of e.dependencies)if(!e.peerNames.has(t)&&r.ident!==e.ident)return!0;return!1},iht=(e,t,r,s,a,n,c,f,{outputReason:p,fastLookupPossible:h})=>{let E,C=null,S=new Set;p&&(E=`${Array.from(t).map(O=>So(O)).join("\u2192")}`);let x=r[r.length-1],T=!(s.ident===x.ident);if(p&&!T&&(C="- self-reference"),T&&(T=s.dependencyKind!==1,p&&!T&&(C="- workspace")),T&&s.dependencyKind===2&&(T=!nht(s),p&&!T&&(C="- external soft link with unhoisted dependencies")),T&&(T=!e.peerNames.has(s.name),p&&!T&&(C=`- cannot shadow peer: ${So(e.originalDependencies.get(s.name).locator)} at ${E}`)),T){let O=!1,U=a.get(s.name);if(O=!U||U.ident===s.ident,p&&!O&&(C=`- filled by: ${So(U.locator)} at ${E}`),O)for(let V=r.length-1;V>=1;V--){let ie=r[V].dependencies.get(s.name);if(ie&&ie.ident!==s.ident){O=!1;let fe=f.get(x);fe||(fe=new Set,f.set(x,fe)),fe.add(s.name),p&&(C=`- filled by ${So(ie.locator)} at ${r.slice(0,V).map(ae=>So(ae.locator)).join("\u2192")}`);break}}T=O}if(T&&(T=n.get(s.name)===s.ident,p&&!T&&(C=`- filled by: ${So(c.get(s.name)[0])} at ${E}`)),T){let O=!0,U=new Set(s.peerNames);for(let V=r.length-1;V>=1;V--){let $=r[V];for(let ie of U){if($.peerNames.has(ie)&&$.originalDependencies.has(ie))continue;let fe=$.dependencies.get(ie);fe&&e.dependencies.get(ie)!==fe&&(V===r.length-1?S.add(fe):(S=null,O=!1,p&&(C=`- peer dependency ${So(fe.locator)} from parent ${So($.locator)} was not hoisted to ${E}`))),U.delete(ie)}if(!O)break}T=O}if(T&&!h)for(let O of s.hoistedDependencies.values()){let U=a.get(O.name)||e.dependencies.get(O.name);if(!U||O.ident!==U.ident){T=!1,p&&(C=`- previously hoisted dependency mismatch, needed: ${So(O.locator)}, available: ${So(U?.locator)}`);break}}return S!==null&&S.size>0?{isHoistable:2,dependsOn:S,reason:C}:{isHoistable:T?0:1,reason:C}},GF=e=>`${e.name}@${e.locator}`,sht=(e,t,r,s,a,n,c,f,p)=>{let h=t[t.length-1],E=new Set,C=!1,S=!1,x=(U,V,$,ie,fe)=>{if(E.has(ie))return;let ae=[...V,GF(ie)],ge=[...$,GF(ie)],he=new Map,Ce=new Map;for(let me of CY(ie)){let ue=iht(h,r,[h,...U,ie],me,s,a,n,f,{outputReason:p.debugLevel>=2,fastLookupPossible:p.fastLookupPossible});if(Ce.set(me,ue),ue.isHoistable===2)for(let Z of ue.dependsOn){let be=he. Line truncated
${Tb(e)}`)}let Be=CY(ie);for(let me of Be)if(Ee.has(me)){let ue=Ce.get(me);if((a.get(me.name)===me.ident||!ie.reasons.has(me.name))&&ue.isHoistable!==0&&ie.reasons.set(me.name,ue.reason),!me.isHoistBorder&&ge.indexOf(GF(me))<0){E.add(ie);let be=Nwe(ie,me);x([...U,ie],ae,ge,be,T),E.delete(ie)}}},I,T=new Set(CY(h)),O=Array.from(t).map(U=>GF(U));do{I=T,T=new Set;for(let U of I){if(U.locator===h.locator||U.isHoistBorder)continue;let V=Nwe(h,U);x([],Array.from(r),O,V,T)}}while(T.size>0);return{anotherRoundNeeded:C,isGraphChanged:S}},Lwe=e=>{let t=[],r=new Set,s=new Set,a=(n,c,f)=>{if(r.has(n)||(r.add(n),s.has(n)))return;let p=new Map(c);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),C=()=>`${Array.from(s).concat([n]).map(S=>So(S.locator)).join("\u2192")}`;if(n.peerNames.has(h.name)){let S=c.get(h.name);(S!==E||!S||S.ident!==h.ident)&&t.push(`${C()} - broken peer promise: expected ${h.ident} but found ${S&&S.ident}`)}else{let S=f.hoistedFrom.get(n.name),x=n.hoistedTo.get(h.name),I=`${S?` hoisted from ${S.join(", ")}`:""}`,T=`${x?` hoisted to ${x}`:""}`,O=`${C()}${I}`;E?E.ident!==h.ident&&t.push(`${O} - broken require promise for ${h.name}${T}: expected ${h.ident}, but found: ${E.ident}`):t.push(`${O} - broken require promise: no required dependency ${h.name}${T} found`)}}s.add(n);for(let h of n.dependencies.values())n.peerNames.has(h.name)||a(h,p,n);s.delete(n)};return a(e,e.dependencies,e),t.join(`
`)},oht=(e,t)=>{let{identName:r,name:s,reference:a,peerNames:n}=e,c={name:s,references:new Set([a]),locator:wY(r,a),ident:Fwe(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},f=new Map([[e,c]]),p=(h,E)=>{let C=f.get(h),S=!!C;if(!C){let{name:x,identName:I,reference:T,peerNames:O,hoistPriority:U,dependencyKind:V}=h,$=t.hoistingLimits.get(E.locator);C={name:x,references:new Set([T]),locator:wY(I,T),ident:Fwe(I,T),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(O),reasons:new Map,decoupled:!0,isHoistBorder:$?$.has(x):!1,hoistPriority:U||0,dependencyKind:V||0,hoistedFrom:new Map,hoistedTo:new Map},f.set(h,C)}if(E.dependencies.set(h.name,C),E.originalDependencies.set(h.name,C),S){let x=new Set,I=T=>{if(!x.has(T)){x.add(T),T.decoupled=!1;for(let O of T.dependencies.values())T.peerNames.has(O.name)||I(O)}};I(C)}else for(let x of h.dependencies)p(x,C)};for(let h of e.dependencies)p(h,c);return c},vY=e=>e.substring(0,e.indexOf("@",1)),aht=e=>{let t={name:e.name,identName:vY(e.locator),references:new Set(e.references),dependencies:new Set},r=new Set([e]),s=(a,n,c)=>{let f=r.has(a),p;if(n===a)p=c;else{let{name:h,references:E,locator:C}=a;p={name:h,identName:vY(C),references:E,dependencies:new Set}}if(c.dependencies.add(p),!f){r.add(a);for(let h of a.dependencies.values())a.peerNames.has(h.name)||s(h,a,p);r.delete(a)}};for(let a of e.dependencies.values())s(a,e,t);return t},lht=e=>{let t=new Map,r=new Set([e]),s=c=>`${c.name}@${c.ident}`,a=c=>{let f=s(c),p=t.get(f);return p||(p={dependents:new Set,peerDependents:new Set,hoistPriority:0},t.set(f,p)),p},n=(c,f)=>{let p=!!r.has(f);if(a(f).dependents.add(c.ident),!p){r.add(f);for(let E of f.dependencies.values()){let C=a(E);C.hoistPriority=Math.max(C.hoistPriority,E.hoistPriority),f.peerNames.has(E.name)?C.peerDependents.add(f.ident):n(f,E)}}};for(let c of e.dependencies.values())e.peerNames.has(c.name)||n(e,c);return t},So=e=>{if(!e)return"none";let t=e.indexOf("@",1),r=e.substring(0,t);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let s=e.substring(t+1);if(s==="workspace:.")return".";if(s){let a=(s.indexOf("#")>0?s.split("#")[1]:s).replace("npm:","");return s.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`};var Tb=e=>{let t=0,r=(a,n,c="")=>{if(t>5e4||n.has(a))return"";t++;let f=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<f.length;h++){let E=f[h];if(!a.peerNames.has(E.name)&&E!==a){let C=a.reasons.get(E.name),S=vY(E.locator);p+=`${c}${h<f.length-1?"\u251C\u2500":"\u2514\u2500"}${(n.has(E)?">":"")+(S!==E.name?`a:${E.name}:`:"")+So(E.locator)+(C?` ${C}`:"")}
`,p+=r(E,n,`${c}${h<f.length-1?"\u2502 ":" "}`)}}return n.delete(a),p};return r(e,new Set)+(t>5e4?`
Tree is too large, part of the tree has been dunped
`:"")};var Fb=(s=>(s.WORKSPACES="workspaces",s.DEPENDENCIES="dependencies",s.NONE="none",s))(Fb||{}),Mwe="node_modules",nd="$wsroot$";var Nb=(e,t)=>{let{packageTree:r,hoistingLimits:s,errors:a,preserveSymlinksRequired:n}=uht(e,t),c=null;if(a.length===0){let f=Owe(r,{hoistingLimits:s});c=Aht(e,f,t)}return{tree:c,errors:a,preserveSymlinksRequired:n}},gA=e=>`${e.name}@${e.reference}`,bY=e=>{let t=new Map;for(let[r,s]of e.entries())if(!s.dirList){let a=t.get(s.locator);a||(a={target:s.target,linkType:s.linkType,locations:[],aliases:s.aliases},t.set(s.locator,a)),a.locations.push(r)}for(let r of t.values())r.locations=r.locations.sort((s,a)=>{let n=s.split(K.delimiter).length,c=a.split(K.delimiter).length;return a===s?0:n!==c?c-n:a>s?1:-1});return t},Uwe=(e,t)=>{let r=j.isVirtualLocator(e)?j.devirtualizeLocator(e):e,s=j.isVirtualLocator(t)?j.devirtualizeLocator(t):t;return j.areLocatorsEqual(r,s)},SY=(e,t,r,s)=>{if(e.linkType!=="SOFT")return!1;let a=Ae.toPortablePath(r.resolveVirtual&&t.reference&&t.reference.startsWith("virtual:")?r.resolveVirtual(e.packageLocation):e.packageLocation);return K.contains(s,a)===null},cht=e=>{let t=e.getPackageInformation(e.topLevel);if(t===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(e.findPackageLocator(t.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let s=Ae.toPortablePath(t.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},c=e.getDependencyTreeRoots(),f=new Map,p=new Set,h=(S,x)=>{let I=gA(S);if(p.has(I))return;p.add(I);let T=e.getPackageInformation(S);if(T){let O=x?gA(x):"";if(gA(S)!==O&&T.linkType==="SOFT"&&!S.reference.startsWith("link:")&&!SY(T,S,e,s)){let U=_we(T,S,e);(!f.get(U)||S.reference.startsWith("workspace:"))&&f.set(U,S)}for(let[U,V]of T.packageDependencies)V!==null&&(T.packagePeers.has(U)||h(e.getLocator(U,V),S))}};for(let S of c)h(S,null);let E=s.split(K.sep);for(let S of f.values()){let x=e.getPackageInformation(S),T=Ae.toPortablePath(x.packageLocation.slice(0,-1)).split(K.sep).slice(E.length),O=n;for(let U of T){let V=O.children.get(U);V||(V={children:new Map},O.children.set(U,V)),O=V}O.workspaceLocator=S}let C=(S,x)=>{if(S.workspaceLocator){let I=gA(x),T=a.get(I);T||(T=new Set,a.set(I,T)),T.add(S.workspaceLocator)}for(let I of S.children.values())C(I,S.workspaceLocator||x)};for(let S of n.children.values())C(S,n.workspaceLocator);return a},uht=(e,t)=>{let r=[],s=!1,a=new Map,n=cht(e),c=e.getPackageInformation(e.topLevel);if(c===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let f=e.findPackageLocator(c.packageLocation);if(f===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let p=Ae.toPortablePath(c.packageLocation.slice(0,-1)),h={name:f.name,identName:f.name,reference:f.reference,peerNames:c.packagePeers,dependencies:new Set,dependencyKind:1},E=new Map,C=(x,I)=>`${gA(I)}:${x}`,S=(x,I,T,O,U,V,$,ie)=>{let fe=C(x,T),ae=E.get(fe),ge=!!ae;!ge&&T.name===f.name&&T.reference===f.reference&&(ae=h,E.set(fe,h));let he=SY(I,T,e,p);if(!ae){let me=0;he?me=2:I.linkType==="SOFT"&&T.name.endsWith(nd)&&(me=1),ae={name:x,identName:T.name,reference:T.reference,dependencies:new Set,peerNames:me===1?new Set:I.packagePeers,dependencyKind:me},E.set(fe,ae)}let Ce;if(he?Ce=2:U.linkType==="SOFT"?Ce=1:Ce=0,ae.hoistPriority=Math.max(ae.hoistPriority||0,Ce),ie&&!he){let me=gA({name:O.identName,reference:O.reference}),ue=a.get(me)||new Set;a.set(me,ue),ue.add(ae.name)}let Ee=new Map(I.packageDependencies);if(t.project){let me=t.project.workspacesByCwd.get(Ae.toPortablePath(I.packageLocation.slice(0,-1)));if(me){let ue=new Set([...Array.from(me.manifest.peerDependencies.values(),Z=>j.stringifyIdent(Z)),...Array.from(me.manifest.peerDependenciesMeta.keys())]);for(let Z of ue)Ee.has(Z)||(Ee.set(Z,V.get(Z)||null),ae.peerNames.add(Z))}}let d=gA({name:T.name.replace(nd,""),reference:T.reference}),Se=n.get(d);if(Se)for(let me of Se)Ee.set(`${me.name}${nd}`,me.reference);(I!==U||I.linkType!=="SOFT"||!he&&(!t.selfReferencesByCwd||t.selfReferencesByCwd.get($)))&&O.dependencies.add(ae);let Be=T!==f&&I.linkType==="SOFT"&&!T.name.endsWith(nd)&&!he;if(!ge&&!Be){let me=new Map;for(let[ue,Z]of Ee)if(Z!==null){let be=e.getLocator(ue,Z),Qe=e.getLocator(ue.replace(nd,""),Z),ot=e.getPackageInformation(Qe);if(ot===null)throw new Error("Assertion failed: Expected the package to have been registered");let _=SY(ot,be,e,p);if(t.validateExternalSoftLinks&&t.project&&_){ot.packageDependencies.size>0&&(s=!0);for(let[je,Re]of ot.packageDependencies)if(Re!==null){let ct=j.parseLocator(Array.isArray(Re)?`${Re[0]}@${Re[1]}`:`${je}@${Re}`);if(gA(ct)!==gA(be)){let Me=Ee.get(je);if(Me){let P=j.parseLocator(Array.isArray(Me)?`${Me[0]}@${Me[1]}`:`${je}@${Me}`);Uwe(P,ct)||r.push({messageName:71,text:`Cannot link ${j.prettyIdent(t.project.configuration,j.parseIdent(be.name))} into ${j.prettyLine truncated
`;for(let n=0,c=e.length;n<c;++n)a+=s+qF(String(n),e[n],t,s).replace(/^ +/,""),n+1<c&&(a+=","),a+=`
`;return a+=r,a+="]",a}function dht(e,t,r){let s=Object.keys(e),a="";a+="{";for(let n=0,c=s.length,f=0;n<c;++n){let p=s[n],h=e[p];typeof h>"u"||(f!==0&&(a+=", "),a+=JSON.stringify(p),a+=": ",a+=qF(p,h,t,r).replace(/^ +/g,""),f+=1)}return a+="}",a}function ght(e,t,r){let s=Object.keys(e),a=`${r} `,n="";n+=r,n+=`{
`;let c=0;for(let f=0,p=s.length;f<p;++f){let h=s[f],E=e[h];typeof E>"u"||(c!==0&&(n+=",",n+=`
`),n+=a,n+=JSON.stringify(h),n+=": ",n+=qF(h,E,t,a).replace(/^ +/g,""),c+=1)}return c!==0&&(n+=`
`),n+=r,n+="}",n}function qF(e,t,r,s){let{next:a}=Hwe[r],n=a[e]||a["*"];return jwe(t,n,s)}function jwe(e,t,r){let{collapsed:s}=Hwe[t];return Array.isArray(e)?s?pht(e,t,r):hht(e,t,r):typeof e=="object"&&e!==null?s?dht(e,t,r):ght(e,t,r):JSON.stringify(e)}function Gwe(e){return jwe(e,"TOP_LEVEL","")}function Ob(e,t){let r=Array.from(e);Array.isArray(t)||(t=[t]);let s=[];for(let n of t)s.push(r.map(c=>n(c)));let a=r.map((n,c)=>c);return a.sort((n,c)=>{for(let f of s){let p=f[n]<f[c]?-1:f[n]>f[c]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function mht(e){let t=new Map,r=Ob(e.fallbackExclusionList||[],[({name:s,reference:a})=>s,({name:s,reference:a})=>a]);for(let{name:s,reference:a}of r){let n=t.get(s);typeof n>"u"&&t.set(s,n=new Set),n.add(a)}return Array.from(t).map(([s,a])=>[s,Array.from(a)])}function yht(e){return Ob(e.fallbackPool||[],([t])=>t)}function Eht(e){let t=[],r=e.dependencyTreeRoots.find(s=>e.packageRegistry.get(s.name)?.get(s.reference)?.packageLocation==="./");for(let[s,a]of Ob(e.packageRegistry,([n])=>n===null?"0":`1${n}`)){if(s===null)continue;let n=[];t.push([s,n]);for(let[c,{packageLocation:f,packageDependencies:p,packagePeers:h,linkType:E,discardFromLookup:C}]of Ob(a,([S])=>S===null?"0":`1${S}`)){if(c===null)continue;let S=[];s!==null&&c!==null&&!p.has(s)&&S.push([s,c]);for(let[U,V]of p)S.push([U,V]);let x=Ob(S,([U])=>U),I=h&&h.size>0?Array.from(h):void 0,O={packageLocation:f,packageDependencies:x,packagePeers:I,linkType:E,discardFromLookup:C||void 0};n.push([c,O]),r&&s===r.name&&c===r.reference&&t.unshift([null,[[null,O]]])}}return t}function Lb(e){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:e.dependencyTreeRoots,enableTopLevelFallback:e.enableTopLevelFallback||!1,ignorePatternData:e.ignorePattern||null,pnpZipBackend:e.pnpZipBackend,fallbackExclusionList:mht(e),fallbackPool:yht(e),packageRegistryData:Eht(e)}}var Wwe=et(Ywe());function Vwe(e,t){return[e?`${e}
`:"",`/* eslint-disable */
`,`// @ts-nocheck
`,`"use strict";
`,`
`,t,`
`,(0,Wwe.default)()].join("")}function Iht(e){return JSON.stringify(e,null,2)}function Cht(e){return`'${e.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\
`)}'`}function wht(e){return[`const RAW_RUNTIME_STATE =
`,`${Cht(Gwe(e))};
`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) {
`,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname});
`,`}
`].join("")}function Bht(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) {
`,` const fs = require('fs');
`,` const path = require('path');
`,` const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(Ir.pnpData)});
`,` return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname});
`,`}
`].join("")}function Kwe(e){let t=Lb(e),r=wht(t);return Vwe(e.shebang,r)}function Jwe(e){let t=Lb(e),r=Bht(),s=Vwe(e.shebang,r);return{dataFile:Iht(t),loaderFile:s}}bt();function PY(e,{basePath:t}){let r=Ae.toPortablePath(t),s=K.resolve(r),a=e.ignorePatternData!==null?new RegExp(e.ignorePatternData):null,n=new Map,c=new Map(e.packageRegistryData.map(([C,S])=>[C,new Map(S.map(([x,I])=>{if(C===null!=(x===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let T=I.discardFromLookup??!1,O={name:C,reference:x},U=n.get(I.packageLocation);U?(U.discardFromLookup=U.discardFromLookup&&T,T||(U.locator=O)):n.set(I.packageLocation,{locator:O,discardFromLookup:T});let V=null;return[x,{packageDependencies:new Map(I.packageDependencies),packagePeers:new Set(I.packagePeers),linkType:I.linkType,discardFromLookup:T,get packageLocation(){return V||(V=K.join(s,I.packageLocation))}}]}))])),f=new Map(e.fallbackExclusionList.map(([C,S])=>[C,new Set(S)])),p=new Map(e.fallbackPool),h=e.dependencyTreeRoots,E=e.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:h,enableTopLevelFallback:E,fallbackExclusionList:f,pnpZipBackend:e.pnpZipBackend,fallbackPool:p,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:c}}bt();bt();var oh=Ie("module"),Km=Ie("url"),UY=Ie("util");var aa=Ie("url");var $we=et(Ie("assert"));var xY=Array.isArray,Mb=JSON.stringify,Ub=Object.getOwnPropertyNames,Vm=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),kY=(e,t)=>RegExp.prototype.exec.call(e,t),QY=(e,...t)=>RegExp.prototype[Symbol.replace].apply(e,t),id=(e,...t)=>String.prototype.endsWith.apply(e,t),RY=(e,...t)=>String.prototype.includes.apply(e,t),TY=(e,...t)=>String.prototype.lastIndexOf.apply(e,t),_b=(e,...t)=>String.prototype.indexOf.apply(e,t),zwe=(e,...t)=>String.prototype.replace.apply(e,t),sd=(e,...t)=>String.prototype.slice.apply(e,t),mA=(e,...t)=>String.prototype.startsWith.apply(e,t),Xwe=Map,Zwe=JSON.parse;function Hb(e,t,r){return class extends r{constructor(...s){super(t(...s)),this.code=e,this.name=`${r.name} [${e}]`}}}var e1e=Hb("ERR_PACKAGE_IMPORT_NOT_DEFINED",(e,t,r)=>`Package import specifier "${e}" is not defined${t?` in package ${t}package.json`:""} imported from ${r}`,TypeError),FY=Hb("ERR_INVALID_MODULE_SPECIFIER",(e,t,r=void 0)=>`Invalid module "${e}" ${t}${r?` imported from ${r}`:""}`,TypeError),t1e=Hb("ERR_INVALID_PACKAGE_TARGET",(e,t,r,s=!1,a=void 0)=>{let n=typeof r=="string"&&!s&&r.length&&!mA(r,"./");return t==="."?((0,$we.default)(s===!1),`Invalid "exports" main target ${Mb(r)} defined in the package config ${e}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`):`Invalid "${s?"imports":"exports"}" target ${Mb(r)} defined for '${t}' in the package config ${e}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`},Error),jb=Hb("ERR_INVALID_PACKAGE_CONFIG",(e,t,r)=>`Invalid package config ${e}${t?` while importing ${t}`:""}${r?`. ${r}`:""}`,Error),r1e=Hb("ERR_PACKAGE_PATH_NOT_EXPORTED",(e,t,r=void 0)=>t==="."?`No "exports" main defined in ${e}package.json${r?` imported from ${r}`:""}`:`Package subpath '${t}' is not defined by "exports" in ${e}package.json${r?` imported from ${r}`:""}`,Error);var WF=Ie("url");function n1e(e,t){let r=Object.create(null);for(let s=0;s<t.length;s++){let a=t[s];Vm(e,a)&&(r[a]=e[a])}return r}var YF=new Xwe;function vht(e,t,r,s){let a=YF.get(e);if(a!==void 0)return a;let n=s(e);if(n===void 0){let x={pjsonPath:e,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return YF.set(e,x),x}let c;try{c=Zwe(n)}catch(x){throw new jb(e,(r?`"${t}" from `:"")+(0,WF.fileURLToPath)(r||t),x.message)}let{imports:f,main:p,name:h,type:E}=n1e(c,["imports","main","name","type"]),C=Vm(c,"exports")?c.exports:void 0;(typeof f!="object"||f===null)&&(f=void 0),typeof p!="string"&&(p=void 0),typeof h!="string"&&(h=void 0),E!=="module"&&E!=="commonjs"&&(E="none");let S={pjsonPath:e,exists:!0,main:p,name:h,type:E,exports:C,imports:f};return YF.set(e,S),S}function i1e(e,t){let r=new URL("./package.json",e);for(;;){let n=r.pathname;if(id(n,"node_modules/package.json"))break;let c=vht((0,WF.fileURLToPath)(r),e,void 0,t);if(c.exists)return c;let f=r;if(r=new URL("../package.json",r),r.pathname===f.pathname)break}let s=(0,WF.fileURLToPath)(r),a={pjsonPath:s,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return YF.set(s,a),a}function Sht(e,t,r){throw new e1e(e,t&&(0,aa.fileURLToPath)(new URL(".",t)),(0,aa.fileURLToPath)(r))}function bht(e,t,r,s){let a=`request is not a valid subpath for the "${r?"imports":"exports"}" resolution of ${(0,aa.fileURLToPath)(t)}`;throw new FY(e,a,s&&(0,aa.fileURLToPath)(s))}function Gb(e,t,r,s,a){throw typeof t=="object"&&t!==null?t=Mb(t,null,""):t=`${t}`,new t1e((0,aa.fileURLToPath)(new URL(".",r)),e,t,s,a&&(0,aa.fileURLToPath)(a))}var s1e=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f Line truncated
`),r;c=e[++n]}else if(c===" "&&!s){a=!0;continue}else if(c==='"'){s=!s;continue}a?(r.push(c),a=!1):r[r.length-1]+=c}return s&&t.push(`invalid value for NODE_OPTIONS (unterminated string)
`),r}bt();var[ro,Sl,Nht]=process.versions.node.split(".").map(e=>parseInt(e,10)),g1e=ro>19||ro===19&&Sl>=2||ro===18&&Sl>=13,ezt=ro===20&&Sl<6||ro===19&&Sl>=3,tzt=ro>19||ro===19&&Sl>=6,rzt=ro>=21||ro===20&&Sl>=10||ro===18&&Sl>=19,nzt=ro>=21||ro===20&&Sl>=10||ro===18&&Sl>=20,izt=ro>=22,szt=ro===26&&Sl<1||ro===25&&Sl>=7||ro===24&&Sl===15||ro===22&&(Sl>22||Sl===22&&Nht>=3);function MY(e){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send){let t=e.map(r=>Ae.fromPortablePath(Eo.resolveVirtual(r)));if(g1e)process.send({"watch:require":t});else for(let r of t)process.send({"watch:require":r})}}function _Y(e,t){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,s=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,n=/^(\/|\.{1,2}(\/|$))/,c=/\/$/,f=/^\.{0,2}\//,p={name:null,reference:null},h=[],E=new Set;if(e.enableTopLevelFallback===!0&&h.push(p),t.compatibilityMode!==!1)for(let Ne of["react-scripts","gatsby"]){let ke=e.packageRegistry.get(Ne);if(ke)for(let De of ke.keys()){if(De===null)throw new Error("Assertion failed: This reference shouldn't be null");h.push({name:Ne,reference:De})}}let{ignorePattern:C,packageRegistry:S,packageLocatorsByLocations:x}=e;function I(Ne,ke){return{fn:Ne,args:ke,error:null,result:null}}function T(Ne){let ke=process.stderr?.hasColors?.()??process.stdout.isTTY,De=(ct,Me)=>`\x1B[${ct}m${Me}\x1B[0m`,je=Ne.error;console.error(je?De("31;1",`\u2716 ${Ne.error?.message.replace(/\n.*/s,"")}`):De("33;1","\u203C Resolution")),Ne.args.length>0&&console.error();for(let ct of Ne.args)console.error(` ${De("37;1","In \u2190")} ${(0,UY.inspect)(ct,{colors:ke,compact:!0})}`);Ne.result&&(console.error(),console.error(` ${De("37;1","Out \u2192")} ${(0,UY.inspect)(Ne.result,{colors:ke,compact:!0})}`));let Re=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(Re.length>0){console.error();for(let ct of Re)console.error(` ${De("38;5;244",ct)}`)}console.error()}function O(Ne,ke){if(t.allowDebug===!1)return ke;if(Number.isFinite(s)){if(s>=2)return(...De)=>{let je=I(Ne,De);try{return je.result=ke(...De)}catch(Re){throw je.error=Re}finally{T(je)}};if(s>=1)return(...De)=>{try{return ke(...De)}catch(je){let Re=I(Ne,De);throw Re.error=je,T(Re),je}}}return ke}function U(Ne){let ke=d(Ne);if(!ke)throw Es("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return ke}function V(Ne){if(Ne.name===null)return!0;for(let ke of e.dependencyTreeRoots)if(ke.name===Ne.name&&ke.reference===Ne.reference)return!0;return!1}let $=new Set(["node","require",...d1e("--conditions")]);function ie(Ne,ke=$,De){let je=me(K.join(Ne,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(je===null)throw Es("INTERNAL",`The locator that owns the "${Ne}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:Re}=U(je),ct=K.join(Re,Ir.manifest);if(!t.fakeFs.existsSync(ct))return null;let Me=JSON.parse(t.fakeFs.readFileSync(ct,"utf8"));if(Me.exports==null)return null;let P=K.contains(Re,Ne);if(P===null)throw Es("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");P!=="."&&!f.test(P)&&(P=`./${P}`);try{let w=c1e({packageJSONUrl:(0,Km.pathToFileURL)(Ae.fromPortablePath(ct)),packageSubpath:P,exports:Me.exports,base:De?(0,Km.pathToFileURL)(Ae.fromPortablePath(De)):null,conditions:ke});return Ae.toPortablePath((0,Km.fileURLToPath)(w))}catch(w){throw Es("EXPORTS_RESOLUTION_FAILED",w.message,{unqualifiedPath:ff(Ne),locator:je,pkgJson:Me,subpath:ff(P),conditions:ke},w.code)}}function fe(Ne,ke,{extensions:De}){let je;try{ke.push(Ne),je=t.fakeFs.statSync(Ne)}catch{}if(je&&!je.isDirectory())return t.fakeFs.realpathSync(Ne);if(je&&je.isDirectory()){let Re;try{Re=JSON.parse(t.fakeFs.readFileSync(K.join(Ne,Ir.manifest),"utf8"))}catch{}let ct;if(Re&&Re.main&&(ct=K.resolve(Ne,Re.main)),ct&&ct!==Ne){let Me=fe(ct,ke,{extensions:De});if(Me!==null)return Me}}for(let Re=0,ct=De.length;Re<ct;Re++){let Me=`${Ne}${De[Re]}`;if(ke.push(Me),t.fakeFs.existsSync(Me))return Me}if(je&&je.isDirectory())for(let Re=0,ct=De.length;Re<ct;Re++){let Me=K.format({dir:Ne,name:"index",ext:De[Re]});if(ke.push(Me),t.fakeFs.existsSync(Me))return Me}return null}function ae(Ne){let ke=new oh.Module(Ne,null);return ke.filename=Ne,ke.paths=oh.Module._nodeModulePaths(Ne),ke}function ge(Ne,ke){return ke.endsWith("/")&&(ke=K.join(ke,"internal.js")),oh.Module._resolveFilename(Ae.fromPortablePath(Ne),ae(Ae.fromPortablePath(ke)),!1,{plugnplay:!1})}function he(Ne){if(C===null)return!1;let ke=K.contains(e.basePath,Ne);return ke===null?!1:!!C.test(ke.replace(/\/$/,""))}let Ce={std:3,resolveVirtual:1,getAllLocators:1},Ee=p;function d({name:Ne,reference:ke}){let De=S.get(Ne);if(!De)return null;let je=De.get(ke);return je||null}function Se({name:Ne,reference:ke}){let De=[];for(let[je,Re]of S)if(je!==null)for(let[ct,Me]of Re)ct===null|Line truncated
Require request: "${je}"
Required by: ${Re}
`,{request:je,issuer:Re});return Ae.toPortablePath(P)}let ct,Me=Ne.match(a);if(Me){if(!ke)throw Es("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:je,issuer:Re});let[,P,w]=Me,D=me(ke);if(!D){let Fe=ge(Ne,ke);if(Fe===!1)throw Es("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: "${je}"
Required by: ${Re}
`,{request:je,issuer:Re});return Ae.toPortablePath(Fe)}let F=U(D).packageDependencies.get(P),z=null;if(F==null&&D.name!==null){let Fe=e.fallbackExclusionList.get(D.name);if(!Fe||!Fe.has(D.reference)){for(let Ct=0,Yt=h.length;Ct<Yt;++Ct){let Pt=U(h[Ct]).packageDependencies.get(P);if(Pt!=null){r?z=Pt:F=Pt;break}}if(e.enableTopLevelFallback&&F==null&&z===null){let Ct=e.fallbackPool.get(P);Ct!=null&&(z=Ct)}}}let X=null;if(F===null)if(V(D))X=Es("MISSING_PEER_DEPENDENCY",`Your application tried to access ${P} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.
Required package: ${P}${P!==je?` (via "${je}")`:""}
Required by: ${Re}
`,{request:je,issuer:Re,dependencyName:P});else{let Fe=Be(P,D);Fe.every(ut=>V(ut))?X=Es("MISSING_PEER_DEPENDENCY",`${D.name} tried to access ${P} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.
Required package: ${P}${P!==je?` (via "${je}")`:""}
Required by: ${D.name}@${D.reference} (via ${Re})
${Fe.map(ut=>`Ancestor breaking the chain: ${ut.name}@${ut.reference}
`).join("")}
`,{request:je,issuer:Re,issuerLocator:Object.assign({},D),dependencyName:P,brokenAncestors:Fe}):X=Es("MISSING_PEER_DEPENDENCY",`${D.name} tried to access ${P} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.
Required package: ${P}${P!==je?` (via "${je}")`:""}
Required by: ${D.name}@${D.reference} (via ${Re})
${Fe.map(ut=>`Ancestor breaking the chain: ${ut.name}@${ut.reference}
`).join("")}
`,{request:je,issuer:Re,issuerLocator:Object.assign({},D),dependencyName:P,brokenAncestors:Fe})}else F===void 0&&(!De&&(0,oh.isBuiltin)(Ne)?V(D)?X=Es("UNDECLARED_DEPENDENCY",`Your application tried to access ${P}. 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 ${P} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.
Required package: ${P}${P!==je?` (via "${je}")`:""}
Required by: ${Re}
`,{request:je,issuer:Re,dependencyName:P}):X=Es("UNDECLARED_DEPENDENCY",`${D.name} tried to access ${P}. 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 ${P} isn't otherwise declared in ${D.name}'s dependencies, this makes the require call ambiguous and unsound.
Required package: ${P}${P!==je?` (via "${je}")`:""}
Required by: ${Re}
`,{request:je,issuer:Re,issuerLocator:Object.assign({},D),dependencyName:P}):V(D)?X=Es("UNDECLARED_DEPENDENCY",`Your application tried to access ${P}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.
Required package: ${P}${P!==je?` (via "${je}")`:""}
Required by: ${Re}
`,{request:je,issuer:Re,dependencyName:P}):X=Es("UNDECLARED_DEPENDENCY",`${D.name} tried to access ${P}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.
Required package: ${P}${P!==je?` (via "${je}")`:""}
Required by: ${D.name}@${D.reference} (via ${Re})
`,{request:je,issuer:Re,issuerLocator:Object.assign({},D),dependencyName:P}));if(F==null){if(z===null||X===null)throw X||new Error("Assertion failed: Expected an error to have been set");F=z;let Fe=X.message.replace(/\n.*/g,"");X.message=Fe,!E.has(Fe)&&s!==0&&(E.add(Fe),process.emitWarning(X))}let ee=Array.isArray(F)?{name:F[0],reference:F[1]}:{name:P,reference:F},se=U(ee);if(!se.packageLocation)throw Es("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: ${ee.name}@${ee.reference}${ee.name!==je?` (via "${je}")`:""}
Required by: ${D.name}@${D.reference} (via ${Re})
`,{request:je,issuer:Re,dependencyLocator:Object.assign({},ee)});let xe=se.packageLocation;w?ct=K.join(xe,w):ct=xe}else if(K.isAbsolute(Ne))ct=K.normalize(Ne);else{if(!ke)throw Es("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:je,issuer:Re});let P=K.resolve(ke);ke.match(c)?ct=K.normalize(K.join(P,Ne)):ct=K.normalize(K.join(K.dirname(P),Ne))}return K.normalize(ct)}function be(Ne,ke,De=$,je){if(n.test(Ne))return ke;let Re=ie(ke,De,je);return Re?K.normalize(Re):ke}function Qe(Ne,{extensions:ke=Object.keys(oh.Module._extensions)}={}){let De=[],je=fe(Ne,De,{extensions:ke});if(je)return MY([je]),K.normalize(je);{MY(De);let Re=ff(Ne),ct=me(Ne);if(ct){let{packageLocation:Me}=U(ct),P=!0;try{t.fakeFs.accessSync(Me)}catch(w){if(w?.code==="ENOENT")P=!1;else{let D=(w?.message??w??"empty exception thrown").replace(/^[A-Z]/,y=>y.toLowerCase());throw Es("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${D}).
Missing package: ${ct.name}@${ct.reference}
Expected package location: ${ff(Me)}
`,{unqualifiedPath:Re,extensions:ke})}}if(!P){let w=Me.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 Es("QUALIFIED_PATH_RESOLUTION_FAILED",`${w}
Missing package: ${ct.name}@${ct.reference}
Expected package location: ${ff(Me)}
`,{unqualifiedPath:Re,extensions:ke})}}throw Es("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed.
Source path: ${Re}
${De.map(Me=>`Not found: ${ff(Me)}
`).join("")}`,{unqualifiedPath:Re,extensions:ke})}}function ot(Ne,ke,De){if(!ke)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let je=u1e({name:Ne,base:(0,Km.pathToFileURL)(Ae.fromPortablePath(ke)),conditions:De.conditions??$,readFileSyncFn:ue});if(je instanceof URL)return Qe(Ae.toPortablePath((0,Km.fileURLToPath)(je)),{extensions:De.extensions});if(je.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return _(je,ke,De)}function _(Ne,ke,De={}){try{if(Ne.startsWith("#"))return ot(Ne,ke,De);let{considerBuiltins:je,extensions:Re,conditions:ct}=De,Me=Z(Ne,ke,{considerBuiltins:je});if(Ne==="pnpapi")return Me;if(Me===null)return null;let P=()=>ke!==null?he(ke):!1,w=(!je||!(0,oh.isBuiltin)(Ne))&&!P()?be(Ne,Me,ct,ke):Me;return Qe(w,{extensions:Re})}catch(je){throw Object.hasOwn(je,"pnpCode")&&Object.assign(je.data,{request:ff(Ne),issuer:ke&&ff(ke)}),je}}function tt(Ne){let ke=K.normalize(Ne),De=Eo.resolveVirtual(ke);return De!==ke?De:null}return{VERSIONS:Ce,topLevel:Ee,getLocator:(Ne,ke)=>Array.isArray(ke)?{name:ke[0],reference:ke[1]}:{name:Ne,reference:ke},getDependencyTreeRoots:()=>[...e.dependencyTreeRoots],getAllLocators(){let Ne=[];for(let[ke,De]of S)for(let je of De.keys())ke!==null&&je!==null&&Ne.push({name:ke,reference:je});return Ne},getPackageInformation:Ne=>{let ke=d(Ne);if(ke===null)return null;let De=Ae.fromPortablePath(ke.packageLocation);return{...ke,packageLocation:De}},findPackageLocator:Ne=>me(Ae.toPortablePath(Ne)),resolveToUnqualified:O("resolveToUnqualified",(Ne,ke,De)=>{let je=ke!==null?Ae.toPortablePath(ke):null,Re=Z(Ae.toPortablePath(Ne),je,De);return Re===null?null:Ae.fromPortablePath(Re)}),resolveUnqualified:O("resolveUnqualified",(Ne,ke)=>Ae.fromPortablePath(Qe(Ae.toPortablePath(Ne),ke))),resolveRequest:O("resolveRequest",(Ne,ke,De)=>{let je=ke!==null?Ae.toPortablePath(ke):null,Re=_(Ae.toPortablePath(Ne),je,De);return Re===null?null:Ae.fromPortablePath(Re)}),resolveVirtual:O("resolveVirtual",Ne=>{let ke=tt(Ae.toPortablePath(Ne));return ke!==null?Ae.fromPortablePath(ke):null})}}bt();var m1e=(e,t,r)=>{let s=Lb(e),a=PY(s,{basePath:t}),n=Ae.join(t,Ir.pnpCjs);return _Y(a,{fakeFs:r,pnpapiResolution:n})};var jY=et(E1e());jt();var yA={};Vt(yA,{checkManifestCompatibility:()=>I1e,extractBuildRequest:()=>VF,getExtractHint:()=>GY,hasBindingGyp:()=>qY});Ge();bt();function I1e(e){return j.isPackageCompatible(e,Ui.getArchitectureSet())}function VF(e,t,r,{configuration:s}){let a=[];for(let n of["preinstall","install","postinstall"])t.manifest.scripts.has(n)&&a.push({type:0,script:n});return!t.manifest.scripts.has("install")&&t.misc.hasBindingGyp&&a.push({type:1,script:"node-gyp rebuild"}),a.length===0?null:e.linkType!=="HARD"?{skipped:!0,explain:n=>n.reportWarningOnce(6,`${j.prettyLocator(s,e)} 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,`${j.prettyLocator(s,e)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!s.get("enableScripts")&&!r.built?{skipped:!0,explain:n=>n.reportWarningOnce(4,`${j.prettyLocator(s,e)} lists build scripts, but all build scripts have been disabled.`)}:I1e(e)?{skipped:!1,directives:a}:{skipped:!0,explain:n=>n.reportWarningOnce(76,`${j.prettyLocator(s,e)} The ${Ui.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var Lht=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function GY(e){return e.packageFs.getExtractHint({relevantExtensions:Lht})}function qY(e){let t=K.join(e.prefixPath,"binding.gyp");return e.packageFs.existsSync(t)}var Wb={};Vt(Wb,{getUnpluggedPath:()=>Yb});Ge();bt();function Yb(e,{configuration:t}){return K.resolve(t.get("pnpUnpluggedFolder"),j.slugifyLocator(e))}var Mht=new Set([j.makeIdent(null,"open").identHash,j.makeIdent(null,"opn").identHash]),od=class{constructor(){this.mode="strict";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let s=ad(r.project).cjs;if(!le.existsSync(s))throw new st(`The project in ${ce.pretty(r.project.configuration,`${r.project.cwd}/package.json`,ce.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=qe.getFactoryWithDefault(this.pnpCache,s,()=>qe.dynamicRequire(s,{cachingStrategy:qe.CachingStrategy.FsTime})),n={name:j.stringifyIdent(t),reference:t.reference},c=a.getPackageInformation(n);if(!c)throw new st(`Couldn't find ${j.prettyLocator(r.project.configuration,t)} in the currently installed PnP map - running an install might help`);return Ae.toPortablePath(c.packageLocation)}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;Line truncated
`,n+=`# cause your node_modules installation to become invalidated.
`,n+=`
`,n+=`__metadata:
`,n+=` version: ${T1e}
`,n+=` nmMode: ${s.value}
`;let c=Array.from(t.keys()).sort(),f=j.stringifyLocator(e.topLevelWorkspace.anchoredLocator);for(let E of c){let C=t.get(E);n+=`
`,n+=`${JSON.stringify(E)}:
`,n+=` locations:
`;for(let S of C.locations){let x=K.contains(e.cwd,S);if(x===null)throw new Error(`Assertion failed: Expected the path to be within the project (${S})`);n+=` - ${JSON.stringify(x)}
`}if(C.aliases.length>0){n+=` aliases:
`;for(let S of C.aliases)n+=` - ${JSON.stringify(S)}
`}if(E===f&&r.size>0){n+=` bin:
`;for(let[S,x]of r){let I=K.contains(e.cwd,S);if(I===null)throw new Error(`Assertion failed: Expected the path to be within the project (${S})`);n+=` ${JSON.stringify(I)}:
`;for(let[T,O]of x){let U=K.relative(K.join(S,Pi),O);n+=` ${JSON.stringify(T)}: ${JSON.stringify(U)}
`}}}}let p=e.cwd,h=K.join(p,Pi,eW);try{a&&await le.removePromise(h),await le.changeFilePromise(h,n,{automaticNewlines:!0})}finally{a0t(e)}}async function u0t(e){let t=e.cwd,r=K.join(t,Pi,eW);try{let s=await le.statPromise(r);return`${s.mtimeMs}:${s.size}`}catch{return null}}async function F1e(e,{unrollAliases:t=!1}={}){let r=e.cwd,s=K.join(r,Pi,eW),a;try{a=await le.statPromise(s)}catch{}if(!a)return null;let n=us(await le.readFilePromise(s,"utf8"));if(n.__metadata.version>T1e)return null;let c=n.__metadata.nmMode||"classic",f=new Map,p=new Map;delete n.__metadata;for(let[h,E]of Object.entries(n)){let C=E.locations.map(x=>K.join(r,x)),S=E.bin;if(S)for(let[x,I]of Object.entries(S)){let T=K.join(r,Ae.toPortablePath(x)),O=qe.getMapWithDefault(p,T);for(let[U,V]of Object.entries(I))O.set(U,Ae.toPortablePath([T,Pi,V].join(K.sep)))}if(f.set(h,{target:vt.dot,linkType:"HARD",locations:C,aliases:E.aliases||[]}),t&&E.aliases)for(let x of E.aliases){let{scope:I,name:T}=j.parseLocator(h),O=j.makeLocator(j.makeIdent(I,T),x),U=j.stringifyLocator(O);f.set(U,{target:vt.dot,linkType:"HARD",locations:C,aliases:[]})}}return{locatorMap:f,binSymlinks:p,locationTree:N1e(f,{skipPrefix:e.cwd}),nmMode:c,mtimeMs:a.mtimeMs}}var Cw=async(e,t)=>{if(e.split(K.sep).indexOf(Pi)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${e}`);try{let r;if(!t.innerLoop&&(r=await le.lstatPromise(e),!r.isDirectory()&&!r.isSymbolicLink()||r.isSymbolicLink()&&!t.isWorkspaceDir)){await le.unlinkPromise(e);return}let s=await le.readdirPromise(e,{withFileTypes:!0});for(let n of s){let c=K.join(e,n.name);n.isDirectory()?(n.name!==Pi||t&&t.innerLoop)&&await Cw(c,{innerLoop:!0,contentsOnly:!1}):await le.unlinkPromise(c)}let a=!t.innerLoop&&t.isWorkspaceDir&&r?.isSymbolicLink();!t.contentsOnly&&!a&&await le.rmdirPromise(e)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},x1e=4,zF=(e,{skipPrefix:t})=>{let r=K.contains(t,e);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${e} which is outside project root: ${t}`);let s=r.split(K.sep).filter(p=>p!==""),a=s.indexOf(Pi),n=s.slice(0,a).join(K.sep),c=K.join(t,n),f=s.slice(a);return{locationRoot:c,segments:f}},N1e=(e,{skipPrefix:t})=>{let r=new Map;if(e===null)return r;let s=()=>({children:new Map,linkType:"HARD"});for(let[a,n]of e.entries()){if(n.linkType==="SOFT"&&K.contains(t,n.target)!==null){let f=qe.getFactoryWithDefault(r,n.target,s);f.locator=a,f.linkType=n.linkType}for(let c of n.locations){let{locationRoot:f,segments:p}=zF(c,{skipPrefix:t}),h=qe.getFactoryWithDefault(r,f,s);for(let E=0;E<p.length;++E){let C=p[E];if(C!=="."){let S=qe.getFactoryWithDefault(h.children,C,s);h.children.set(C,S),h=S}E===p.length-1&&(h.locator=a,h.linkType=n.linkType)}}}return r},rW=async(e,t,r)=>{if(process.platform==="win32"&&r==="junctions"){let s;try{s=await le.lstatPromise(e)}catch{}if(!s||s.isDirectory()){await le.symlinkPromise(e,t,"junction");return}}await le.symlinkPromise(K.relative(K.dirname(t),e),t)};async function O1e(e,t,r){let s=K.join(e,`${$Y.default.randomBytes(16).toString("hex")}.tmp`);try{await le.writeFilePromise(s,r);try{await le.linkPromise(s,t)}catch{}}finally{await le.unlinkPromise(s)}}async function f0t({srcPath:e,dstPath:t,entry:r,globalHardlinksStore:s,baseFs:a,nmMode:n}){if(r.kind==="file"){if(n.value==="hardlinks-global"&&s&&r.digest){let f=K.join(s,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),p;try{let h=await le.statPromise(f);if(h&&(!r.mtimeMs||h.mtimeMs>r.mtimeMs||h.mtimeMs<r.mtimeMs-o0t))if(await Mn.checksumFile(f,{baseFs:le,algorithm:"sha1"})!==r.digest){let C=K.join(s,`${$Y.default.randomBytes(16).toString("hex")}.tmp`);await le.renamePromise(f,C);let S=await a.readFilePromise(e);await le.writeFilePromise(C,S);try{await le.linkPromise(C,f),r.mtimeMs=new Date().getTime(),await le.unlinkPromise(C)}catch{}}else r.mtimeMs||(r.mtimeMs=Math.ceil(h.mtimeMs));await le.linkPromise(f,t),p=!0}catch{p=!1}if(!p){let h=await a.readFilePromise(e);await O1e(s,f,h),r.mtimeMs=new Date().getTime();try{await le.linkPromise(f,t)}catch(E){E&&E.code&&E.code=="EXDEV"&&(n.value="hardlinks-local",await a.copyFilePromise(e,t))}}}else await a.copyFilePromise(e,t);let c=r.mode&511;c!==420&&await le.chmodPromise(t,c)}}var A0t=async(e,t,{baseFs:r,globalHardlinksStore:s,nmMode:a,windowsLinkType:n,packageChecksum:c})=>{await le.mkdirPromise(e,{recursive:!0});let f=async(E=vt.dot)=>{let C=K.join(t,E),S=await r.readdirPromise(C,{withFileTypes:!0}),x=new Map;for(let I of S){let T=K.join(E,I.name),O,U=K.join(C,I.name);if(I.isFile()){if(O={kind:"file",mode:(await r.lstatPromise(U)).mode},a.value==="hardlinks-global"){let V=await Mn.checksumFile(U,{baseFs:r,algorithm:"sha1"});O.digest=V}}else if(I.isDirectory())O={kind:"directory"};else if(I.isSymbolicLink())O={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. Line truncated
`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:s}=await(0,lW.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(`
`),s}function ZF(e){if(e.originalError?.name!=="HTTPError")return!1;try{return(e.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function vw(e){return{"npm-otp":e}}async function U0t(e,{configuration:t,ident:r}){let s=null;if(process.env.GITLAB_CI)s=process.env.NPM_ID_TOKEN||null;else if(process.env.CIRCLECI)s=process.env.NPM_ID_TOKEN||null;else if(process.env.GITHUB_ACTIONS){if(!(process.env.ACTIONS_ID_TOKEN_REQUEST_URL&&process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN))return null;let a=`npm:${new URL(e).host.replace("registry.yarnpkg.com","registry.npmjs.org").replace("yarn.npmjs.org","registry.npmjs.org")}`,n=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);n.searchParams.append("audience",a),s=(await nn.get(n.href,{configuration:t,jsonResponse:!0,headers:{Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).value}if(!s)return null;try{return(await nn.post(`${e}/-/npm/v1/oidc/token/exchange/package${zb(r)}`,null,{configuration:t,jsonResponse:!0,headers:{Authorization:`Bearer ${s}`}})).token||null}catch{}return null}var Zb=class{supports(t,r){if(!t.reference.startsWith(ti))return!1;let{selector:s,params:a}=j.parseRange(t.reference);return!(!Y1e.default.valid(s)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(t,r){return null}async fetch(t,r){let s=r.checksums.get(t.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(t,s,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${j.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:j.getIdentVendorPath(t),checksum:c}}async fetchFromNetwork(t,r){let{params:s}=j.parseRange(t.reference);if(s===null||typeof s.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await Xm(s.__archiveUrl,{customErrorMessage:zm,configuration:r.project.configuration,ident:t});return await ms.convertToZip(a,{configuration:r.project.configuration,prefixPath:j.getIdentVendorPath(t),stripComponents:1})}};Ge();var $b=class{supportsDescriptor(t,r){return!(!t.range.startsWith(ti)||!j.tryParseDescriptor(t.range.slice(ti.length),!0))}supportsLocator(t,r){return!1}shouldPersistResolution(t,r){throw new Error("Unreachable")}bindDescriptor(t,r,s){return t}getResolutionDependencies(t,r){let s=r.project.configuration.normalizeDependency(j.parseDescriptor(t.range.slice(ti.length),!0));return r.resolver.getResolutionDependencies(s,r)}async getCandidates(t,r,s){let a=s.project.configuration.normalizeDependency(j.parseDescriptor(t.range.slice(ti.length),!0));return await s.resolver.getCandidates(a,r,s)}async getSatisfying(t,r,s,a){let n=a.project.configuration.normalizeDependency(j.parseDescriptor(t.range.slice(ti.length),!0));return a.resolver.getSatisfying(n,r,s,a)}resolve(t,r){throw new Error("Unreachable")}};Ge();Ge();var W1e=et(hi());var ah=class e{supports(t,r){if(!t.reference.startsWith(ti))return!1;let s=new URL(t.reference);return!(!W1e.default.valid(s.pathname)||s.searchParams.has("__archiveUrl"))}getLocalPath(t,r){return null}async fetch(t,r){let s=r.checksums.get(t.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(t,s,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${j.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:j.getIdentVendorPath(t),checksum:c}}async fetchFromNetwork(t,r){let s;try{s=await Xm(e.getLocatorUrl(t),{customErrorMessage:zm,configuration:r.project.configuration,ident:t})}catch{s=await Xm(e.getLocatorUrl(t).replace(/%2f/g,"/"),{customErrorMessage:zm,configuration:r.project.configuration,ident:t})}return await ms.convertToZip(s,{configuration:r.project.configuration,prefixPath:j.getIdentVendorPath(t),stripComponents:1})}static isConventionalTarballUrl(t,r,{configuration:s}){let a=ww(t.scope,{configuration:s}),n=e.getLocatorUrl(t);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(t){let r=kr.clean(t.reference.slice(ti.length));if(r===null)throw new Lt(10,"The npm semver resolver got selected, but the version isn't semver");let s=encodeURIComponent(t.name),a=encodeURIComponent(r);return`${zb(t)}/-/${s}-${a}.tgz`}};Ge();Ge();Ge();var uW=et(hi());var $F=j.makeIdent(null,"node-gyp"),_0t=/\b(node-gyp|prebuild-install)\b/,eD=class{supportsDescriptor(t,r){return t.range.startsWith(ti)?!!kr.validRange(t.range.slice(ti.length)):!1}supportsLocator(t,r){if(!t.rLine truncated
https://docs.gitlab.com/ee/ci/secrets/id_token_authentication.html`);r={_type:wvt,subject:e,predicateType:vvt,predicate:{buildType:`${Pvt}/${xvt}`,builder:{id:`${Bt.CI_PROJECT_URL}/-/runners/${Bt.CI_RUNNER_ID}`},invocation:{configSource:{uri:`git+${Bt.CI_PROJECT_URL}`,digest:{sha1:Bt.CI_COMMIT_SHA},entryPoint:Bt.CI_JOB_NAME},parameters:{CI:Bt.CI,CI_API_GRAPHQL_URL:Bt.CI_API_GRAPHQL_URL,CI_API_V4_URL:Bt.CI_API_V4_URL,CI_BUILD_BEFORE_SHA:Bt.CI_BUILD_BEFORE_SHA,CI_BUILD_ID:Bt.CI_BUILD_ID,CI_BUILD_NAME:Bt.CI_BUILD_NAME,CI_BUILD_REF:Bt.CI_BUILD_REF,CI_BUILD_REF_NAME:Bt.CI_BUILD_REF_NAME,CI_BUILD_REF_SLUG:Bt.CI_BUILD_REF_SLUG,CI_BUILD_STAGE:Bt.CI_BUILD_STAGE,CI_COMMIT_BEFORE_SHA:Bt.CI_COMMIT_BEFORE_SHA,CI_COMMIT_BRANCH:Bt.CI_COMMIT_BRANCH,CI_COMMIT_REF_NAME:Bt.CI_COMMIT_REF_NAME,CI_COMMIT_REF_PROTECTED:Bt.CI_COMMIT_REF_PROTECTED,CI_COMMIT_REF_SLUG:Bt.CI_COMMIT_REF_SLUG,CI_COMMIT_SHA:Bt.CI_COMMIT_SHA,CI_COMMIT_SHORT_SHA:Bt.CI_COMMIT_SHORT_SHA,CI_COMMIT_TIMESTAMP:Bt.CI_COMMIT_TIMESTAMP,CI_COMMIT_TITLE:Bt.CI_COMMIT_TITLE,CI_CONFIG_PATH:Bt.CI_CONFIG_PATH,CI_DEFAULT_BRANCH:Bt.CI_DEFAULT_BRANCH,CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX:Bt.CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX:Bt.CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_SERVER:Bt.CI_DEPENDENCY_PROXY_SERVER,CI_DEPENDENCY_PROXY_USER:Bt.CI_DEPENDENCY_PROXY_USER,CI_JOB_ID:Bt.CI_JOB_ID,CI_JOB_NAME:Bt.CI_JOB_NAME,CI_JOB_NAME_SLUG:Bt.CI_JOB_NAME_SLUG,CI_JOB_STAGE:Bt.CI_JOB_STAGE,CI_JOB_STARTED_AT:Bt.CI_JOB_STARTED_AT,CI_JOB_URL:Bt.CI_JOB_URL,CI_NODE_TOTAL:Bt.CI_NODE_TOTAL,CI_PAGES_DOMAIN:Bt.CI_PAGES_DOMAIN,CI_PAGES_URL:Bt.CI_PAGES_URL,CI_PIPELINE_CREATED_AT:Bt.CI_PIPELINE_CREATED_AT,CI_PIPELINE_ID:Bt.CI_PIPELINE_ID,CI_PIPELINE_IID:Bt.CI_PIPELINE_IID,CI_PIPELINE_SOURCE:Bt.CI_PIPELINE_SOURCE,CI_PIPELINE_URL:Bt.CI_PIPELINE_URL,CI_PROJECT_CLASSIFICATION_LABEL:Bt.CI_PROJECT_CLASSIFICATION_LABEL,CI_PROJECT_DESCRIPTION:Bt.CI_PROJECT_DESCRIPTION,CI_PROJECT_ID:Bt.CI_PROJECT_ID,CI_PROJECT_NAME:Bt.CI_PROJECT_NAME,CI_PROJECT_NAMESPACE:Bt.CI_PROJECT_NAMESPACE,CI_PROJECT_NAMESPACE_ID:Bt.CI_PROJECT_NAMESPACE_ID,CI_PROJECT_PATH:Bt.CI_PROJECT_PATH,CI_PROJECT_PATH_SLUG:Bt.CI_PROJECT_PATH_SLUG,CI_PROJECT_REPOSITORY_LANGUAGES:Bt.CI_PROJECT_REPOSITORY_LANGUAGES,CI_PROJECT_ROOT_NAMESPACE:Bt.CI_PROJECT_ROOT_NAMESPACE,CI_PROJECT_TITLE:Bt.CI_PROJECT_TITLE,CI_PROJECT_URL:Bt.CI_PROJECT_URL,CI_PROJECT_VISIBILITY:Bt.CI_PROJECT_VISIBILITY,CI_REGISTRY:Bt.CI_REGISTRY,CI_REGISTRY_IMAGE:Bt.CI_REGISTRY_IMAGE,CI_REGISTRY_USER:Bt.CI_REGISTRY_USER,CI_RUNNER_DESCRIPTION:Bt.CI_RUNNER_DESCRIPTION,CI_RUNNER_ID:Bt.CI_RUNNER_ID,CI_RUNNER_TAGS:Bt.CI_RUNNER_TAGS,CI_SERVER_HOST:Bt.CI_SERVER_HOST,CI_SERVER_NAME:Bt.CI_SERVER_NAME,CI_SERVER_PORT:Bt.CI_SERVER_PORT,CI_SERVER_PROTOCOL:Bt.CI_SERVER_PROTOCOL,CI_SERVER_REVISION:Bt.CI_SERVER_REVISION,CI_SERVER_SHELL_SSH_HOST:Bt.CI_SERVER_SHELL_SSH_HOST,CI_SERVER_SHELL_SSH_PORT:Bt.CI_SERVER_SHELL_SSH_PORT,CI_SERVER_URL:Bt.CI_SERVER_URL,CI_SERVER_VERSION:Bt.CI_SERVER_VERSION,CI_SERVER_VERSION_MAJOR:Bt.CI_SERVER_VERSION_MAJOR,CI_SERVER_VERSION_MINOR:Bt.CI_SERVER_VERSION_MINOR,CI_SERVER_VERSION_PATCH:Bt.CI_SERVER_VERSION_PATCH,CI_TEMPLATE_REGISTRY_HOST:Bt.CI_TEMPLATE_REGISTRY_HOST,GITLAB_CI:Bt.GITLAB_CI,GITLAB_FEATURES:Bt.GITLAB_FEATURES,GITLAB_USER_ID:Bt.GITLAB_USER_ID,GITLAB_USER_LOGIN:Bt.GITLAB_USER_LOGIN,RUNNER_GENERATE_ARTIFACTS_METADATA:Bt.RUNNER_GENERATE_ARTIFACTS_METADATA},environment:{name:Bt.CI_RUNNER_DESCRIPTION,architecture:Bt.CI_RUNNER_EXECUTABLE_ARCH,server:Bt.CI_SERVER_URL,project:Bt.CI_PROJECT_PATH,job:{id:Bt.CI_JOB_ID},pipeline:{id:Bt.CI_PIPELINE_ID,ref:Bt.CI_CONFIG_PATH}}},metadata:{buildInvocationId:`${Bt.CI_JOB_URL}`,completeness:{parameters:!0,environment:!0,materials:!1},reproducible:!1},materials:[{uri:`git+${Bt.CI_PROJECT_URL}`,digest:{sha1:Bt.CI_COMMIT_SHA}}]}}}else throw new Lt(91,"Provenance generation is only supported in GitHub Actions and GitLab CI");return TDe.attest(Buffer.from(JSON.stringify(r)),Cvt,t)};async function kvt(e,t,{access:r,tag:s,registry:a,gitHead:n,provenance:c}){let f=e.manifest.name,p=e.manifest.version,h=j.stringifyIdent(f),E=NDe.default.fromData(t,{algorithms:["sha1","sha512"]}),C=r??ODe(e,f),S=await LDe(e),x=await CA.genPackageManifest(e),I=`${h}-${p}.tgz`,T=new URL(`${Kc(a)}/${h}/-/${I}`),O={[I]:{content_type:"application/octet-stream",data:t.toString("base64"),length:t.length}};if(c){let U={name:`pkg:npm/${h.replace(/^@/,"%40")}@${p}`,digest:{sha512:E.sha512[0].hexDigest()}},V=await FDe([U]),$=JSON.stringify(V);O[`${h}-${p}.sigstore`]={content_type:V.mediaType,data:$,length:$.length}}return{_id:h,_attachments:O,name:h,access:C,"dist-tags":{[s]:p},versions:{[p]:{...x,_id:`${h}@${p}`,name:h,version:p,gitHead:n,dist:{shasum:E.sha1[0].hexDigest(),integrity:E.sha512[0].toString(),tarball:T.toString()}}},readme:S}}async function Qvt(e){try{let{stdout:t}=await Yr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:e});return t.trim()===""?void 0:t.trim()}catch{return}}fu Line truncated
`;try{a=await le.readFilePromise(t,"utf8")}catch(n){if(n.code==="ENOENT")return a;throw n}return a}var iJ={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}},MDe={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"}},Rvt={npmMinimalAgeGate:{description:"Minimum age of a package version according to the publish date on the npm registry to be considered for installation",type:"DURATION",unit:"m",default:"1d"},npmPreapprovedPackages:{description:"Array of package descriptors or package name glob patterns to exclude from the minimum release age check",type:"STRING",isArray:!0,default:[]}},Tvt={configuration:{...iJ,...MDe,...Rvt,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...iJ,...MDe}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Kc,valueDefinition:{description:"",type:"SHAPE",properties:{...iJ}}}},fetchers:[Zb,ah],resolvers:[$b,eD,tD]},Fvt=Tvt;var dJ={};Vt(dJ,{NpmAuditCommand:()=>I1,NpmInfoCommand:()=>C1,NpmLoginCommand:()=>w1,NpmLogoutCommand:()=>v1,NpmPublishCommand:()=>S1,NpmStageApproveCommand:()=>b1,NpmStageListCommand:()=>D1,NpmStageRejectCommand:()=>P1,NpmTagAddCommand:()=>k1,NpmTagListCommand:()=>x1,NpmTagRemoveCommand:()=>Q1,NpmWhoamiCommand:()=>R1,default:()=>Vvt,npmAuditTypes:()=>eP,npmAuditUtils:()=>yL});Ge();Ge();jt();var uJ=et(Xo());Jo();var eP={};Vt(eP,{Environment:()=>ZD,Severity:()=>$D});var ZD=(s=>(s.All="all",s.Production="production",s.Development="development",s))(ZD||{}),$D=(n=>(n.Info="info",n.Low="low",n.Moderate="moderate",n.High="high",n.Critical="critical",n))($D||{});var yL={};Vt(yL,{allSeverities:()=>E1,getPackages:()=>cJ,getReportTree:()=>aJ,getSeverityInclusions:()=>oJ,getTopLevelDependencies:()=>lJ});Ge();var UDe=et(hi());var E1=["info","low","moderate","high","critical"];function oJ(e){if(typeof e>"u")return new Set(E1);let t=E1.indexOf(e),r=E1.slice(t);return new Set(r)}function aJ(e){let t={},r={children:t};for(let[s,a]of qe.sortMap(Object.entries(e),n=>n[0]))for(let n of qe.sortMap(a,c=>`${c.id}`))t[`${s}/${n.id}`]={value:ce.tuple(ce.Type.IDENT,j.parseIdent(s)),children:{ID:typeof n.id<"u"&&{label:"ID",value:ce.tuple(ce.Type.ID,n.id)},Issue:{label:"Issue",value:ce.tuple(ce.Type.NO_HINT,n.title)},URL:typeof n.url<"u"&&{label:"URL",value:ce.tuple(ce.Type.URL,n.url)},Severity:{label:"Severity",value:ce.tuple(ce.Type.NO_HINT,n.severity)},"Vulnerable Versions":{label:"Vulnerable Versions",value:ce.tuple(ce.Type.RANGE,n.vulnerable_versions)},"Tree Versions":{label:"Tree Versions",children:[...n.versions].sort(UDe.default.compare).map(c=>({value:ce.tuple(ce.Type.REFERENCE,c)}))},Dependents:{label:"Dependents",children:qe.sortMap(n.dependents,c=>j.stringifyLocator(c)).map(c=>({value:ce.tuple(ce.Type.LOCATOR,c)}))}}};return r}function lJ(e,t,{all:r,environment:s}){let a=[],n=r?e.workspaces:[t],c=["all","production"].includes(s),f=["all","development"].includes(s);for(let p of n)for(let h of p.anchoredPackage.dependencies.values())(p.manifest.devDependencies.has(h.identHash)?!f:!c)||a.push({workspace:p,dependency:h});return a}function cJ(e,t,{recursive:r}){let s=new Map,a=new Set,n=[],c=e.configuration.makeResolver(),f={project:e,resolver:c},p=(h,E)=>{let C=e.storedResolutions.get(E.descriptorHash);if(typeof C>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(C))a.add(C);else return;let S=e.storedPackages.get(C);if(typeof S>"u")throw new Error("Assertion failed: The package should have been registered");let x=j.ensureDevirtualizedDescriptor(E);if(c.supportsDescriptor(x,f)){let T=c.getResolutionDependencies(x,f);if(Object.keys(T).length>0)for(let O of Object.values(T))p(h,O)}if(j.ensureDevirtualizedLocator(S).reference.startsWith("npm:")&&S.version!==null){let T=j.stringifyIdent(S),O=qe.getMapWithDefault(s,T);qe.getArrayWithDefault(O,S.version).push(h)}if(r)for(let T of S.dependencies.values())n.push([S,T])};for(let{workspace:h,dependency:E}of t)n.push([h.anchoredLocator,E]);for(;n.length>0;){let[h,E]=n.shift();p(h,E)}return s}var I1=class extends ft{constructor(){super(...arguments);this.all=pe.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=pe.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=pe.String("--environment","all" 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 ${E1.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 Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=lJ(s,a,{all:this.all,environment:this.environment}),c=cJ(s,n,{recursive:this.recursive}),f=Array.from(new Set([...r.get("npmAuditExcludePackages"),...this.excludes])),p=Object.create(null);for(let[O,U]of c)f.some(V=>uJ.default.isMatch(O,V))||(p[O]=[...U.keys()]);let h=gn.getAuditRegistry({configuration:r}),E,C=await fA.start({configuration:r,stdout:this.context.stdout},async()=>{let O=Qr.post("/-/npm/v1/security/advisories/bulk",p,{authType:Qr.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:h}),U=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(p),async([$,ie])=>{let fe=await Qr.getPackageMetadata(j.parseIdent($),{project:s});return qe.mapAndFilter(ie,ae=>{let{deprecated:ge}=fe.versions[ae];return ge?[$,ae,ge]:qe.mapAndFilter.skip})})),V=await O;for(let[$,ie,fe]of U.flat(1))Object.hasOwn(V,$)&&V[$].some(ae=>kr.satisfiesWithPrereleases(ie,ae.vulnerable_versions))||(V[$]??=[],V[$].push({id:`${$} (deprecation)`,title:(typeof fe=="string"?fe:"").trim()||"This package has been deprecated.",severity:"moderate",vulnerable_versions:ie}));E=V});if(C.hasErrors())return C.exitCode();let S=oJ(this.severity),x=Array.from(new Set([...r.get("npmAuditIgnoreAdvisories"),...this.ignores])),I=Object.create(null);for(let[O,U]of Object.entries(E)){let V=U.filter($=>!uJ.default.isMatch(`${$.id}`,x)&&S.has($.severity));V.length>0&&(I[O]=V.map($=>{let ie=c.get(O);if(typeof ie>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let fe=[...ie.keys()].filter(ge=>kr.satisfiesWithPrereleases(ge,$.vulnerable_versions)),ae=new Map;for(let ge of fe)for(let he of ie.get(ge))ae.set(he.locatorHash,he);return{...$,versions:fe,dependents:[...ae.values()]}}))}let T=Object.keys(I).length>0;return T?(ts.emitTree(aJ(I),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Ft.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async O=>{O.reportInfo(1,"No audit suggestions")}),T?1:0)}};Ge();Ge();bt();jt();var fJ=et(hi()),AJ=Ie("util"),C1=class extends ft{constructor(){super(...arguments);this.fields=pe.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=pe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=pe.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 react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versi Line truncated
`),this.context.stdout.write(`${(0,AJ.inspect)(p,{depth:1/0,colors:!0,compact:!1})}
`);return f.exitCode()}};function pJ(e){if(Array.isArray(e)){let t=[];for(let r of e)r=pJ(r),r&&t.push(r);return t}else if(typeof e=="object"&&e!==null){let t={};for(let r of Object.keys(e)){if(r.startsWith("_"))continue;let s=pJ(e[r]);s&&(t[r]=s)}return t}else return e||null}Ge();Ge();jt();var hJ=et(Xv()),w1=class extends ft{constructor(){super(...arguments);this.scope=pe.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=pe.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=pe.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"});this.webLogin=pe.Boolean("--web-login",{description:"Enable web login"})}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 Je.find(this.context.cwd,this.context.plugins),s=await EL({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Ft.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let c=await Uvt({registry:s,configuration:r,report:n,webLogin:this.webLogin,stdin:this.context.stdin,stdout:this.context.stdout});return await Hvt(s,c,{alwaysAuth:this.alwaysAuth,scope:this.scope}),n.reportInfo(0,"Successfully logged in")})).exitCode()}};async function EL({scope:e,publish:t,configuration:r,cwd:s}){return e&&t?gn.getScopeRegistry(e,{configuration:r,type:gn.RegistryType.PUBLISH_REGISTRY}):e?gn.getScopeRegistry(e,{configuration:r}):t?gn.getPublishRegistry((await VI(r,s)).manifest,{configuration:r}):gn.getDefaultRegistry({configuration:r})}async function Nvt(e,t){let r;try{r=await Qr.post("/-/v1/login",null,{configuration:t,registry:e,authType:Qr.AuthType.NO_AUTH,jsonResponse:!0,headers:{"npm-auth-type":"web"}})}catch{return null}return r}async function Ovt(e,t){let r=await nn.request(e,null,{configuration:t,jsonResponse:!0});if(r.statusCode===202){let s=r.headers["retry-after"]??"1";return{type:"waiting",sleep:parseInt(s,10)}}return r.statusCode===200?{type:"success",token:r.body.token}:null}async function Lvt({registry:e,configuration:t,report:r}){let s=await Nvt(e,t);if(!s)return null;if(Ui.openUrl){r.reportInfo(0,"Starting the web login process..."),r.reportSeparator();let{openNow:a}=await(0,hJ.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open your browser now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});r.reportSeparator(),(!a||!await Ui.openUrl(s.loginUrl))&&(r.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice:"),r.reportWarning(0,ce.pretty(t,s.loginUrl,ce.Type.URL)),r.reportSeparator())}for(;;){let a=await Ovt(s.doneUrl,t);if(a===null)return null;if(a.type==="waiting")await new Promise(n=>setTimeout(n,a.sleep*1e3));else return a.token}}var Mvt=["https://registry.yarnpkg.com","https://registry.npmjs.org"];async function Uvt(e){if(e.webLogin??Mvt.includes(e.registry)){let t=await Lvt(e);if(t!==null)return t}return await _vt(e)}async function _vt({registry:e,configuration:t,report:r,stdin:s,stdout:a}){let n=await jvt({configuration:t,registry:e,report:r,stdin:s,stdout:a}),c=`/-/user/org.couchdb.user:${encodeURIComponent(n.name)}`,f={_id:`org.couchdb.user:${n.name}`,name:n.name,password:n.password,type:"user",roles:[],date:new Date().toISOString()},p={attemptedAs:n.name,configuration:t,registry:e,jsonResponse:!0,authType:Qr.AuthType.NO_AUTH};try{return(await Qr.put(c,f,p)).token}catch(x){if(!(x.originalError?.name==="HTTPError"&&x.originalError?.response.statusCode===409))throw x}let h={...p,authType:Qr.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${n.name}:${n.password}`).toString("base64")}`}},E=await Qr.get(c,h);for(let[x,I]of Object.entries(E))(!f[x]||x==="roles")&&(f[x]=I);let C=`${c}/-rev/${f._rev}`;return(await Qr.put(C,f,h)).token}async function Hvt(e,t,{alwaysAuth:r,scope:s}){let a=c=>f=>{let p=qe.isIndexableObject(f)?f:{},h=p[c],E=qe.isIndexableObject(h)?h:{};return{...p,[c]:{...E,...r!==void 0?{npLine truncated
This command will list all staged package versions awaiting approval on the npm registry.
If a package name is provided, only staged versions of that package will be listed.
`,examples:[["List all staged packages","yarn npm stage list"],["List staged versions of a specific package","yarn npm stage list my-pkg"]]})}async execute(){let r=await Je.find(this.context.cwd,this.context.plugins),s=gn.getDefaultRegistry({configuration:r,type:gn.RegistryType.PUBLISH_REGISTRY}),a=await Yvt(r,s,this.package??void 0);if(await Ft.start({configuration:r,stdout:this.context.stdout,json:this.json,includeFooter:!1,includePrefix:!1},async c=>{a.length>0?(c.reportInfo(0,`The following packages are awaiting approval. Use ${ce.pretty(r,"yarn npm stage approve <stageId>",ce.Type.CODE)} to approve them.`),c.reportSeparator()):this.package?c.reportInfo(0,`No staged versions found for package ${this.package}`):c.reportInfo(0,"No staged packages found")}),a.length===0)return;let n={children:a.map(c=>{let f=j.parseIdent(c.packageName);return{value:ce.tuple(ce.Type.RESOLUTION,{descriptor:j.makeDescriptor(f,c.tag),locator:j.makeLocator(f,c.version)}),children:{ID:{label:"ID",value:ce.tuple(ce.Type.CODE,c.id)},Staged:{label:"Staged on",value:ce.tuple(ce.Type.NO_HINT,c.createdAt)}}}})};ts.emitTree(n,{configuration:r,json:this.json,stdout:this.context.stdout,separators:1})}};async function Yvt(e,t,r){let s=[],a=0,n=100;for(;;){let c={page:String(a),perPage:String(n)};r&&(c.package=r);let f=new URLSearchParams(c).toString(),p=await Qr.get(`/-/stage?${f}`,{configuration:e,registry:t,jsonResponse:!0,authType:Qr.AuthType.ALWAYS_AUTH});if(s.push(...p.items),s.length>=p.total||p.items.length<n)break;a++}return s}Ge();jt();Jo();var P1=class extends ft{constructor(){super(...arguments);this.stageId=pe.String({validator:l0(Jf(),[Sp(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i)])});this.otp=pe.String("--otp",{description:"The OTP token to use with the command"})}static{this.paths=[["npm","stage","reject"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"reject a staged package version",details:"\n This command will reject a staged package version, permanently removing it from the registry staging area. This operation requires 2FA and will prompt for an OTP token if one is not provided via the `--otp` flag.\n ",examples:[["Reject a staged package","yarn npm stage reject 1de6f3db-2ed9-4d72-b3dd-8f0e2b474a2f"]]})}async execute(){let r=await Je.find(this.context.cwd,this.context.plugins),s=gn.getDefaultRegistry({configuration:r,type:gn.RegistryType.PUBLISH_REGISTRY});return(await Ft.start({configuration:r,stdout:this.context.stdout},async n=>{let c=ce.pretty(r,this.stageId,ce.Type.CODE);n.reportInfo(0,`Rejecting staged package ${ce.pretty(r,c,ce.Type.CODE)}...`),n.reportSeparator(),await Qr.del(`/-/stage/${this.stageId}`,{configuration:r,registry:s,otp:this.otp,authType:Qr.AuthType.ALWAYS_AUTH}),n.reportInfo(0,`Staged package ${ce.pretty(r,c,ce.Type.CODE)} has been rejected.`)})).exitCode()}};Ge();jt();var HDe=et(hi());Ge();bt();jt();var x1=class extends ft{constructor(){super(...arguments);this.json=pe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=pe.String({required:!1})}static{this.paths=[["npm","tag","list"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:`
This command will list all tags of a package from the npm registry.
If the package is not specified, Yarn will default to the current workspace.
`,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]})}async execute(){let r=await Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n;if(typeof this.package<"u")n=j.parseIdent(this.package);else{if(!a)throw new ar(s.cwd,this.context.cwd);if(!a.manifest.name)throw new st(`Missing 'name' field in ${Ae.fromPortablePath(K.join(a.cwd,Ir.manifest))}`);n=a.manifest.name}let c=await tP(n,r),p={children:qe.sortMap(Object.entries(c),([h])=>h).map(([h,E])=>({value:ce.tuple(ce.Type.RESOLUTION,{descriptor:j.makeDescriptor(n,h),locator:j.makeLocator(n,E)})}))};return ts.emitTree(p,{configuration:r,json:this.json,stdout:this.context.stdout})}};async function tP(e,t){let r=`/-/package${Qr.getIdentUrl(e)}/dist-tags`;return Qr.get(r,{configuration:t,ident:e,jsonResponse:!0,customErrorMessage:Qr.customPackageError})}var k1=class extends ft{constructor(){super(...arguments);this.package=pe.String();this.tag=pe.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 my-pkg@2.3.4-beta.4 beta"]]})}async execute(){let r=await Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=j.parseDescriptor(this.package,!0),c=n.range;if(!HDe.default.valid(c))throw new st(`The range ${ce.pretty(r,n.range,ce.Type.RANGE)} must be a valid semver version`);let f=gn.getPublishRegistry(a.manifest,{configuration:r}),p=ce.pretty(r,n,ce.Type.IDENT),h=ce.pretty(r,c,ce.Type.RANGE),E=ce.pretty(r,this.tag,ce.Type.CODE);return(await Ft.start({configuration:r,stdout:this.context.stdout},async S=>{let x=await tP(n,r);Object.hasOwn(x,this.tag)&&x[this.tag]===c&&S.reportWarning(0,`Tag ${E} is already set to version ${h}`);let I=`/-/package${Qr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Qr.put(I,c,{configuration:r,registry:f,ident:n,jsonRequest:!0,jsonResponse:!0}),S.reportInfo(0,`Tag ${E} added to version ${h} of package ${p}`)})).exitCode()}};Ge();jt();var Q1=class extends ft{constructor(){super(...arguments);this.package=pe.String();this.tag=pe.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 Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=j.parseIdent(this.package),c=gn.getPublishRegistry(a.manifest,{configuration:r}),f=ce.pretty(r,this.tag,ce.Type.CODE),p=ce.pretty(r,n,ce.Type.IDENT),h=await tP(n,r);if(!Object.hasOwn(h,this.tag))throw new st(`${f} is not a tag of package ${p}`);return(await Ft.start({configuration:r,stdout:this.context.stdout},async C=>{let S=`/-/package${Qr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Qr.del(S,{configuration:r,registry:c,ident:n,jsonResponse:!0}),C.reportInfo(0,`Tag ${f} removed from package ${p}`)})).exitCode()}};Ge();Ge();jt();var R1=class extends ft{constructor(){super(...arguments);this.scope=pe.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=pe.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 Je.find(this.context.cwd,this.context.plugins),s;return this.scope&&this.publish?s=gn.getScopeRegistry(this.scope,{configuration:r,type:gn.RegistryType.PUBLISH_REGISTRY}):this.scope?s=gn.getScopeRegistry(this.scope,{configuration:r}):this.publish?s=gn.getPublishRegistry((await VI(r,this.context.cwd)).manifest,{configuration:r}):s=gn.getDefaultRegistry({configuration:r}),(await Ft.start({configuration:r,stdout:this.context.stdout},async n=>{let c;try{c=await Qr.get("/-/whoami",{configuration:r,registry:s,authType:Qr.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?j.makeIdent(this.scope,""):void 0})}catch(f){if(f.response?.statusCode===401||f.response?.statusCode===403){n.reportError(41,"Authentication failed - your credentials may have expired");return}else throw f}n.reportInfo(0,c.username)})).exitCode()}};var Wvt={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmPublishProvenance:{description:"Whether to generate provenance for the published packages",type:"BOOLEAN",default:!1},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:[I1,C1,w1,v1,S1,b1,D1,P1,k1,x1,Q1,R1]},Vvt=Wvt;var wJ={};Vt(wJ,{PatchCommand:()=>M1,PatchCommitCommand:()=>L1,PatchFetcher:()=>oP,PatchResolver:()=>aP,default:()=>fSt,patchUtils:()=>Cy});Ge();Ge();bt();iA();var Cy={};Vt(Cy,{applyPatchFile:()=>CL,diffFolders:()=>IJ,ensureUnpatchedDescriptor:()=>gJ,ensureUnpatchedLocator:()=>BL,extractPackageToDisk:()=>EJ,extractPatchFlags:()=>KDe,isParentRequired:()=>yJ,isPatchDescriptor:()=>wL,isPatchLocator:()=>Fd,loadPatchFiles:()=>sP,makeDescriptor:()=>vL,makeLocator:()=>mJ,makePatchHash:()=>CJ,parseDescriptor:()=>nP,parseLocator:()=>iP,parsePatchFile:()=>rP,unpatchDescriptor:()=>lSt,unpatchLocator:()=>cSt});Ge();bt();Ge();bt();var Kvt=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function T1(e){return K.relative(vt.root,K.resolve(vt.root,Ae.toPortablePath(e)))}function Jvt(e){let t=e.trim().match(Kvt);if(!t)throw new Error(`Bad header line: '${e}'`);return{original:{start:Math.max(Number(t[1]),1),length:Number(t[3]||1)},patched:{start:Math.max(Number(t[4]),1),length:Number(t[6]||1)}}}var zvt=420,Xvt=493;var jDe=()=>({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}),Zvt=e=>({header:Jvt(e),parts:[]}),$vt={"@":"header","-":"deletion","+":"insertion"," ":"context","\\":"pragma",undefined:"context"};function eSt(e){leLine truncated
`)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":`
`):"";await t.mkdirpPromise(K.dirname(a.path),{chmod:493,utimes:[pi.SAFE_TIME,pi.SAFE_TIME]}),await t.writeFilePromise(a.path,n,{mode:a.mode}),await t.utimesPromise(a.path,pi.SAFE_TIME,pi.SAFE_TIME)}break;case"patch":await N1(t,a.path,async()=>{await sSt(a,{baseFs:t,dryRun:r})});break;case"mode change":{let c=(await t.statPromise(a.path)).mode;if(GDe(a.newMode)!==GDe(c))continue;await N1(t,a.path,async()=>{await t.chmodPromise(a.path,a.newMode)})}break;default:qe.assertNever(a);break}}function GDe(e){return(e&64)>0}function qDe(e){return e.replace(/\s+$/,"")}function iSt(e,t){return qDe(e)===qDe(t)}async function sSt({hunks:e,path:t},{baseFs:r,dryRun:s=!1}){let a=await r.statSync(t).mode,c=(await r.readFileSync(t,"utf8")).split(/\n/),f=[],p=0,h=0;for(let C of e){let S=Math.max(h,C.header.patched.start+p),x=Math.max(0,S-h),I=Math.max(0,c.length-S-C.header.original.length),T=Math.max(x,I),O=0,U=0,V=null;for(;O<=T;){if(O<=x&&(U=S-O,V=YDe(C,c,U),V!==null)){O=-O;break}if(O<=I&&(U=S+O,V=YDe(C,c,U),V!==null))break;O+=1}if(V===null)throw new F1(e.indexOf(C),C);f.push(V),p+=O,h=U+C.header.original.length}if(s)return;let E=0;for(let C of f)for(let S of C)switch(S.type){case"splice":{let x=S.index+E;c.splice(x,S.numToDelete,...S.linesToInsert),E+=S.linesToInsert.length-S.numToDelete}break;case"pop":c.pop();break;case"push":c.push(S.line);break;default:qe.assertNever(S);break}await r.writeFilePromise(t,c.join(`
`),{mode:a})}function YDe(e,t,r){let s=[];for(let a of e.parts)switch(a.type){case"context":case"deletion":{for(let n of a.lines){let c=t[r];if(c==null||!iSt(c,n))return null;r+=1}a.type==="deletion"&&(s.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&s.push({type:"push",line:""}))}break;case"insertion":s.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&s.push({type:"pop"});break;default:qe.assertNever(a.type);break}return s}var aSt=/^builtin<([^>]+)>$/;function O1(e,t){let{protocol:r,source:s,selector:a,params:n}=j.parseRange(e);if(r!=="patch:")throw new Error("Invalid patch range");if(s===null)throw new Error("Patch locators must explicitly define their source");let c=a?a.split(/&/).map(E=>Ae.toPortablePath(E)):[],f=n&&typeof n.locator=="string"?j.parseLocator(n.locator):null,p=n&&typeof n.version=="string"?n.version:null,h=t(s);return{parentLocator:f,sourceItem:h,patchPaths:c,sourceVersion:p}}function wL(e){return e.range.startsWith("patch:")}function Fd(e){return e.reference.startsWith("patch:")}function nP(e){let{sourceItem:t,...r}=O1(e.range,j.parseDescriptor);return{...r,sourceDescriptor:t}}function iP(e){let{sourceItem:t,...r}=O1(e.reference,j.parseLocator);return{...r,sourceLocator:t}}function lSt(e){let{sourceItem:t}=O1(e.range,j.parseDescriptor);return t}function cSt(e){let{sourceItem:t}=O1(e.reference,j.parseLocator);return t}function gJ(e){if(!wL(e))return e;let{sourceItem:t}=O1(e.range,j.parseDescriptor);return t}function BL(e){if(!Fd(e))return e;let{sourceItem:t}=O1(e.reference,j.parseLocator);return t}function WDe({parentLocator:e,sourceItem:t,patchPaths:r,sourceVersion:s,patchHash:a},n){let c=e!==null?{locator:j.stringifyLocator(e)}:{},f=typeof s<"u"?{version:s}:{},p=typeof a<"u"?{hash:a}:{};return j.makeRange({protocol:"patch:",source:n(t),selector:r.join("&"),params:{...f,...p,...c}})}function vL(e,{parentLocator:t,sourceDescriptor:r,patchPaths:s}){return j.makeDescriptor(e,WDe({parentLocator:t,sourceItem:r,patchPaths:s},j.stringifyDescriptor))}function mJ(e,{parentLocator:t,sourcePackage:r,patchPaths:s,patchHash:a}){return j.makeLocator(e,WDe({parentLocator:t,sourceItem:r,sourceVersion:r.version,patchPaths:s,patchHash:a},j.stringifyLocator))}function VDe({onAbsolute:e,onRelative:t,onProject:r,onBuiltin:s},a){let n=a.lastIndexOf("!");n!==-1&&(a=a.slice(n+1));let c=a.match(aSt);return c!==null?s(c[1]):a.startsWith("~/")?r(a.slice(2)):K.isAbsolute(a)?e(a):t(a)}function KDe(e){let t=e.lastIndexOf("!");return{optional:(t!==-1?new Set(e.slice(0,t).split(/!/)):new Set).has("optional")}}function yJ(e){return VDe({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},e)}async function sP(e,t,r){let s=e!==null?await r.fetcher.fetch(e,r):null,a=s&&s.localPath?{packageFs:new Pn(vt.root),prefixPath:K.relative(vt.root,s.localPath)}:s;s&&s!==a&&s.releaseFs&&s.releaseFs();let n=await qe.releaseAfterUseAsync(async()=>await Promise.all(t.map(async c=>{let f=KDe(c),p=await VDe({onAbsolute:async h=>await le.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(K.join(a.prefixPath,h),"utf8")},onProject:async h=>await le.readFilePromise(K.join(r.project.cwd,h),"utf8"),onBuiltin:async h=>await r.project.configuration.firstHook(E=>E.getBuiltinPatch,r.project,h)},c);return{...f,source:p}})));for(let c of n)typeof c.source=="string"&&(c.source=c.source.replace(/\r\n?/g,`
`));return n}async function EJ(e,{cache:t,project:r}){let s=r.storedPackages.get(e.locatorHash);if(typeof s>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=BL(e),n=r.storedChecksums,c=new Qi,f=await le.mktempPromise(),p=K.join(f,"source"),h=K.join(f,"user"),E=K.join(f,".yarn-patch.json"),C=r.configuration.makeFetcher(),S=[];try{let x,I;if(e.locatorHash===a.locatorHash){let T=await C.fetch(e,{cache:t,project:r,fetcher:C,checksums:n,report:c});S.push(()=>T.releaseFs?.()),x=T,I=T}else x=await C.fetch(e,{cache:t,project:r,fetcher:C,checksums:n,report:c}),S.push(()=>x.releaseFs?.()),I=await C.fetch(e,{cache:t,project:r,fetcher:C,checksums:n,report:c}),S.push(()=>I.releaseFs?.());await Promise.all([le.copyPromise(p,x.prefixPath,{baseFs:x.packageFs}),le.copyPromise(h,I.prefixPath,{baseFs:I.packageFs}),le.writeJsonPromise(E,{locator:j.stringifyLocator(e),version:s.version})])}finally{for(let x of S)x()}return le.detachTemp(f),h}async function IJ(e,t){let r=Ae.fromPortablePath(e).replace(/\\/g,"/"),s=Ae.fromPortablePath(t).replace(/\\/g,"/"),{stdout:a,stderr:n}=await Yr.execvp("git",["-c","core.safecrlf=false","-c","core.quotePath=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,s],{cwd:Ae.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 c=r.startsWith("/")?f=>f.slice(1):f=>f;return a.replace(new RegExp(`(a|b)(${qe.escapeRegExp(`/${c(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${qe.escapeRegExp(`/${c(s)}/`)}`,"g"),"$1/").replace(new RegExp(qe.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(qe.escapeRegExp(`${s}/`),"g"),"")}function CJ(e,t){let r=[];for(let{source:s}of e){if(s===null)continue;let a=rP(s);for(let n of a){let{semverExclusivity:c,...f}=n;c!==null&&t!==null&&!kr.satisfiesWithPrereleases(t,c)||r.push(JSON.stringify(f))}}return Mn.makeHash(`${3}`,...r).slice(0,6)}Ge();function JDe(e,{configuration:t,report:r}){for(let s of e.parts)for(let a of s.lines)switch(s.type){case"context":r.reportInfo(null,` ${ce.pretty(t,a,"grey")}`);break;case"deletion":r.reportError(28,`- ${ce.pretty(t,a,ce.Type.REMOVED)}`);break;case"insertion":r.reportError(28,`+ ${ce.pretty(t,a,ce.Type.ADDED)}`);break;default:qe.assertNever(s.type)}}var oP=class{supports(t,r){return!!Fd(t)}getLocalPath(t,r){return null}async fetch(t,r){let s=r.checksums.get(t.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(t,s,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${j.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:j.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:c}}async patchPackage(t,r){let{parentLocator:s,sourceLocator:a,sourceVersion:n,patchPaths:c}=iP(t),f=await sP(s,c,r),p=await le.mktempPromise(),h=K.join(p,"current.zip"),E=await r.fetcher.fetch(a,r),C=j.getIdentVendorPath(t),S=new hs(h,{create:!0,level:r.project.configuration.get("compressionLevel")});await qe.releaseAfterUseAsync(async()=>{await S.copyPromise(C,E.prefixPath,{baseFs:E.packageFs,stableSort:!0})},E.releaseFs),S.saveAndClose();for(let{source:x,optional:I}of f){if(x===null)continue;let T=new hs(h,{level:r.project.configuration.get("compressionLevel")}),O=new Pn(K.resolve(vt.root,C),{baseFs:T});try{await CL(rP(x),{baseFs:O,version:n})}catch(U){if(!(U instanceof F1))throw U;let V=r.project.configuration.get("enableInlineHunks"),$=!V&&!I?" (set enableInlineHunks for details)":"",ie=`${j.prettyLocator(r.project.configuration,t)}: ${U.message}${$}`,fe=ae=>{V&&JDe(U.hunk,{configuration:r.project.configuration,report:ae})};if(T.discardAndClose(),I){r.report.reportWarningOnce(66,ie,{reportExtra:fe});continue}else throw new Lt(66,ie,fe)}T.saveAndClose()}return new hs(h,{level:r.project.configuration.get("compressionLevel")})}};Ge();var aP=class{supportsDescriptor(t,r){return!!wL(t)}supportsLocator(t,r){return!!Fd(t)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,s){let{patchPaths:a}=nP(t);return a.every(n=>!yJ(n))?t:j.bindDescriptor(t,{locator:j.stringifyLocator(r)})}getResolutionDependencies(t,r){let{sourceDescriptor:s}=nP(t);return{sourceDescriptor:r.project.configuration.normalizeDependency(s)}}async getCandidates(t,r,s){if(!s.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:n}=nP(t),c=await sP(a,n,s.fetchOptions),f=r.sourceDescriptor;if(typeof f>"u")throw new Error("Assertion failed: The dependency should have been resolved");let p=CJ(c,f.version);return[mJ(t,{parentLocator:a,sourcePackage:f,patchPaths:n,patchHash:p})]}async getSatisfying(t,r,s,a){let[n]=await this.getCandidates(t,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(t,r){let{sourceLocator:s}=iP(t);return{...await r.resolver.resolve(s,r),...t}}};Ge();bt();jt();var L1=class extends ft{constructor(){super(...arguments);this.save=pe.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=pe.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 Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=K.resolve(this.context.cwd,Ae.toPortablePath(this.patchFolder)),c=K.join(n,"../source"),f=K.join(n,"../.yarn-patch.json");if(!le.existsSynLine truncated
${f.map(p=>`
- ${j.prettyLocator(r,p)}`).join("")}`);c=f[0]}if(!s.storedPackages.has(c.locatorHash))throw new st("No package found in the project for the given locator");await Ft.start({configuration:r,json:this.json,stdout:this.context.stdout},async f=>{let p=BL(c),h=await EJ(c,{cache:n,project:s});f.reportJson({locator:j.stringifyLocator(p),path:Ae.fromPortablePath(h)});let E=this.update?" along with its current modifications":"";f.reportInfo(0,`Package ${j.prettyLocator(r,p)} got extracted with success${E}!`),f.reportInfo(0,`You can now edit the following folder: ${ce.pretty(r,Ae.fromPortablePath(h),"magenta")}`),f.reportInfo(0,`Once you are done run ${ce.pretty(r,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${Ae.fromPortablePath(h)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};var uSt={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:[L1,M1],fetchers:[oP],resolvers:[aP]},fSt=uSt;var SJ={};Vt(SJ,{PnpmLinker:()=>lP,default:()=>mSt});Ge();bt();jt();var lP=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let s=this.getCustomDataKey(),a=r.project.linkersCustomData.get(s);if(!a)throw new st(`The project in ${ce.pretty(r.project.configuration,`${r.project.cwd}/package.json`,ce.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(t.locatorHash);if(typeof n>"u")throw new st(`Couldn't find ${j.prettyLocator(r.project.configuration,t)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;let s=this.getCustomDataKey(),a=r.project.linkersCustomData.get(s);if(!a)throw new st(`The project in ${ce.pretty(r.project.configuration,`${r.project.cwd}/package.json`,ce.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=t.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(n){let p=a.locatorByPath.get(n[1]);if(p)return p}let c=t,f=t;do{f=c,c=K.dirname(f);let p=a.locatorByPath.get(f);if(p)return p}while(c!==f);return null}makeInstaller(t){return new BJ(t)}isEnabled(t){return t.project.configuration.get("nodeLinker")==="pnpm"}},BJ=class{constructor(t){this.opts=t;this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.asyncActions=new qe.AsyncActions(t.project.configuration.get("pnpmInstallConcurrency")),this.indexFolderPromise=nx(le,{indexPath:K.join(t.project.configuration.get("globalFolder"),"index")})}attachCustomData(t){}async installPackage(t,r,s){switch(t.linkType){case"SOFT":return this.installPackageSoft(t,r,s);case"HARD":return this.installPackageHard(t,r,s)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(t,r,s){let a=K.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(t)?K.join(a,Ir.nodeModules):null;return this.customData.pathsByLocator.set(t.locatorHash,{packageLocation:a,dependenciesLocation:n}),{packageLocation:a,buildRequest:null}}async installPackageHard(t,r,s){let a=pSt(t,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,j.stringifyLocator(t)),this.customData.pathsByLocator.set(t.locatorHash,a),s.holdFetchResult(this.asyncActions.set(t.locatorHash,async()=>{await le.mkdirPromise(n,{recursive:!0}),await le.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let f=j.isVirtualLocator(t)?j.devirtualizeLocator(t):t,p={manifest:await _t.tryFind(r.prefixPath,{baseFs:r.packageFs})??new _t,misc:{hasBindingGyp:yA.hasBindingGyp(r)}},h=this.opts.project.getDependencyMeta(f,t.version),E=yA.extractBuildRequest(t,p,h,{configuration:this.opts.project.configuration});return{packageLocation:n,buildRequest:E}}async attachInternalDependencies(t,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!zDe(t,{project:this.opts.project}))return;let s=this.customData.pathsByLocator.get(t.locatorHash);if(typeof s>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${j.stringifyLocator(t)})`);let{dependenciesLocation:a}=s;a&&this.asyncActions.reduce(t.locatorHash,async n=>{await le.mkdirPromise(a,{recursive:!0});let c=await hSt(a),f=new Map(c),p=[n],h=(C,S)=>{let x=S;zDe(S,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),x=j.devirtualizeLocator(S));let I=this.customDLine truncated
${ESt}
`,"--",...s],{cwd:e,strict:!0})},async makeReset(e,t){let r=t.map(s=>Ae.fromPortablePath(s.path));await Yr.execvp("git",["reset","HEAD","--",...r],{cwd:e,strict:!0})}};var vSt=[ePe],U1=class extends ft{constructor(){super(...arguments);this.commit=pe.Boolean("-c,--commit",!1,{description:"Commit the staged files"});this.reset=pe.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"});this.dryRun=pe.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"});this.update=pe.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 Je.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd),{driver:a,root:n}=await SSt(s.cwd),c=[r.get("cacheFolder"),r.get("globalFolder"),r.get("virtualFolder"),r.get("yarnPath")];await r.triggerHook(C=>C.populateYarnPaths,s,C=>{c.push(C)});let f=new Set;for(let C of c)for(let S of bSt(n,C))f.add(S);let p=new Set([r.get("rcFilename"),Ir.lockfile,Ir.manifest]),h=await a.filterChanges(n,f,p),E=await a.genCommitMessage(n,h);if(this.dryRun)if(this.commit)this.context.stdout.write(`${E}
`);else for(let C of h)this.context.stdout.write(`${Ae.fromPortablePath(C.path)}
`);else if(this.reset){let C=await a.filterChanges(n,f,p,{staged:!0});C.length===0?this.context.stdout.write("No staged changes found!"):await a.makeReset(n,C)}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 SSt(e){let t=null,r=null;for(let s of vSt)if((r=await s.findRoot(e))!==null){t=s;break}if(t===null||r===null)throw new st("No stage driver has been found for your current project");return{driver:t,root:r}}function bSt(e,t){let r=[];if(t===null)return r;for(;;){(t===e||t.startsWith(`${e}/`))&&r.push(t);let s;try{s=le.statSync(t)}catch{break}if(s.isSymbolicLink())t=K.resolve(K.dirname(t),le.readlinkSync(t));else break}return r}var DSt={commands:[U1]},PSt=DSt;var TJ={};Vt(TJ,{default:()=>OSt});Ge();Ge();bt();var nPe=et(hi());Ge();var tPe=et(M9()),xSt="e8e1bd300d860104bb8c58453ffa1eb4",kSt="OFCNCOG2CU",rPe=async(e,t)=>{let r=j.stringifyIdent(e),a=QSt(t).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}},QSt=e=>(0,tPe.default)(kSt,xSt,{requester:{async send(r){try{let s=await nn.request(r.url,r.data||null,{configuration:e,headers:r.headers});return{content:s.body,isTimedOut:!1,status:s.statusCode}}catch(s){return{content:s.response.body,isTimedOut:!1,status:s.response.statusCode}}}}});var iPe=e=>e.scope?`${e.scope}__${e.name}`:`${e.name}`,RSt=async(e,t,r,s)=>{if(r.scope==="types")return;let{project:a}=e,{configuration:n}=a;if(!(n.get("tsEnableAutoTypes")??(le.existsSync(K.join(e.cwd,"tsconfig.json"))||le.existsSync(K.join(a.cwd,"tsconfig.json")))))return;let f=n.makeResolver(),p={project:a,resolver:f,report:new Qi};if(!await rPe(r,n))return;let E=iPe(r),C=j.parseRange(r.range).selector;if(!kr.validRange(C)){let O=n.normalizeDependency(r),U=await f.getCandidates(O,{},p);C=j.parseRange(U[0].reference).selector}let S=nPe.default.coerce(C);if(S===null)return;let x=`${ef.Modifier.CARET}${S.major}`,I=j.makeDescriptor(j.makeIdent("types",E),x),T=qe.mapAndFind(a.workspaces,O=>{let U=O.manifest.dependencies.get(r.identHash)?.descriptorHash,V=O.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(U!==r.descriptorHash&&V!==r.descriptorHash)return qe.mapAndFind.skip;let $=[];for(let ie of _t.allDependencies){let fe=O.manifest[ie].get(I.identHash);typeof fe>"u"||$.push([ie,fe])}return $.length===0?qe.mapAndFind.skip:$});if(typeof T<"u")for(let[O,U]of T)e.manifest[O].set(U.identHash,U);else{try{let O=n.normalizeDependency(I);if((await f.getCandidates(O,{},p)).length===0)return}catch{return}e.manifest[ef.Target.DEVELOPMENT].set(I.identHash,I)}},TSt=async(e,t,r)=>{if(r.scope==="types")return;let{project:s}=e,{configuration:a}=s;if(!(a.get("tsEnableAutoTypes")??(le.existsSync(K.join(e.cwd,"tsconfig.json"))||le.existsSync(K.join(s.cwd,"tsconfig.json")))))return;let c=iPe(r),f=j.makeIdent("types",c);for(let p of _t.allDependencies)typeof e.manifest[p].get(f.identHash)>"u"||e.manifest[p].delete(f.identHash)},FSt=(e,t)=>{t.publishConfig&&t.publishConfig.typings&&(t.typings=t.publishConfig.typings),t.publishConfig&&t.publishConfig.types&&(t.types=t.publishConfig.types)},NSt={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:"BOOLEAN",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:RSt,afterWorkspaceDependencyRemoval:TSt,beforeWorkspacePacking:FSt}},OSt=NSt;var MJ={};Vt(MJ,{VersionApplyCommand:()=>G1,VersionCheckCommand:()=>q1,VersionCommand:()=>Y1,default:()=>HSt,versionUtils:()=>j1});Ge();Ge();jt();var j1={};Vt(j1,{Decision:()=>_1,applyPrerelease:()=>sPe,applyReleases:()=>LJ,applyStrategy:()=>cP,clearVersionFiles:()=>FJ,getUndecidedDependentWorkspaces:()=>fP,getUndecidedWorkspaces:()=>DL,openVersionFile:()=>H1,requireMoreDecisions:()=>MSt,resolveVersionFiles:()=>uP,suggestStrategy:()=>OJ,updateVersionFiles:()=>NJ,validateReleaseDecision:()=>wy});Ge();bt();Sc();jt();Xl();var TA=et(hi()),LSt=/^(>=|[~^]|)(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-]+)*)?$/,_1=(h=>(h.UNDECIDED="undecided",h.DECLINE="decline",h.MAJOR="major",h.MINOR="minor",h.PATCH="patch",h.PREMAJOR="premajor",h.PREMINOR="preminor",h.PREPATCH="prepatch",h.PRERELEASE="prerelease",h))(_1||{});function wy(e){let t=TA.default.valid(e);return t||qe.validateEnum(v4(_1,"UNDECIDED"),e)}async function uP(e,{prerelease:t=null}={}){let r=new Map,s=e.configuration.get("deferredVersionFolder");if(!le.existsSync(s))return r;let a=await le.readdirPromise(s);for(let n of a){if(!n.endsWith(".yml"))continue;let c=K.join(s,n),f=await le.readFilePromise(c,"utf8"),p=us(f);for(let[h,E]of Object.entries(p.releases||{})){if(E==="decline")continue;let C=j.parseIdent(h),S=e.tryWorkspaceByIdent(C);if(S===null)throw new Error(`Assertion failed: Expected a release definition fiLine truncated
- ${f.map(x=>Ae.fromPortablePath(x)).join(`
- `)}`);let p=new Set(qe.mapAndFilter(n,x=>{let I=e.tryWorkspaceByFilePath(x);return I===null?qe.mapAndFilter.skip:I}));if(f.length===0&&p.size===0&&!t)return null;let h=f.length===1?f[0]:K.join(c,`${Mn.makeHash(Math.random().toString()).slice(0,8)}.yml`),E=le.existsSync(h)?await le.readFilePromise(h,"utf8"):"{}",C=us(E),S=new Map;for(let x of C.declined||[]){let I=j.parseIdent(x),T=e.getWorkspaceByIdent(I);S.set(T,"decline")}for(let[x,I]of Object.entries(C.releases||{})){let T=j.parseIdent(x),O=e.getWorkspaceByIdent(T);S.set(O,wy(I))}return{project:e,root:s,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:S,async saveAll(){let x={},I=[],T=[];for(let O of e.workspaces){if(O.manifest.version===null)continue;let U=j.stringifyIdent(O.anchoredLocator),V=S.get(O);V==="decline"?I.push(U):typeof V<"u"?x[U]=wy(V):p.has(O)&&T.push(U)}await le.mkdirPromise(K.dirname(h),{recursive:!0}),await le.changeFilePromise(h,Al(new Al.PreserveOrdering({releases:Object.keys(x).length>0?x:void 0,declined:I.length>0?I:void 0,undecided:T.length>0?T:void 0})))}}}function MSt(e){return DL(e).size>0||fP(e).length>0}function DL(e){let t=new Set;for(let r of e.changedWorkspaces)r.manifest.version!==null&&(e.releases.has(r)||t.add(r));return t}function fP(e,{include:t=new Set}={}){let r=[],s=new Map(qe.mapAndFilter([...e.releases],([n,c])=>c==="decline"?qe.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(qe.mapAndFilter([...e.releases],([n,c])=>c!=="decline"?qe.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of e.project.workspaces)if(!(!t.has(n)&&(a.has(n.anchoredLocator.locatorHash)||s.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let c of _t.hardDependencies)for(let f of n.manifest.getForScope(c).values()){let p=e.project.tryWorkspaceByDescriptor(f);p!==null&&s.has(p.anchoredLocator.locatorHash)&&r.push([n,p])}return r}function OJ(e,t){let r=TA.default.clean(t);for(let s of Object.values(_1))if(s!=="undecided"&&s!=="decline"&&TA.default.inc(e,s)===r)return s;return null}function cP(e,t){if(TA.default.valid(t))return t;if(e===null)throw new st(`Cannot apply the release strategy "${t}" unless the workspace already has a valid version`);if(!TA.default.valid(e))throw new st(`Cannot apply the release strategy "${t}" on a non-semver version (${e})`);let r=TA.default.inc(e,t);if(r===null)throw new st(`Cannot apply the release strategy "${t}" on the specified version (${e})`);return r}function LJ(e,t,{report:r,exact:s}){let a=new Map;for(let n of e.workspaces)for(let c of _t.allDependencies)for(let f of n.manifest[c].values()){let p=e.tryWorkspaceByDescriptor(f);if(p===null||!t.has(p))continue;qe.getArrayWithDefault(a,p).push([n,c,f.identHash])}for(let[n,c]of t){let f=n.manifest.version;n.manifest.version=c,TA.default.prerelease(c)===null?delete n.manifest.raw.stableVersion:n.manifest.raw.stableVersion||(n.manifest.raw.stableVersion=f);let p=n.manifest.name!==null?j.stringifyIdent(n.manifest.name):null;r.reportInfo(0,`${j.prettyLocator(e.configuration,n.anchoredLocator)}: Bumped to ${c}`),r.reportJson({cwd:Ae.fromPortablePath(n.cwd),ident:p,oldVersion:f,newVersion:c});let h=a.get(n);if(!(typeof h>"u"))for(let[E,C,S]of h){let x=E.manifest[C].get(S);if(typeof x>"u")throw new Error("Assertion failed: The dependency should have existed");let I=x.range,T=!1;if(I.startsWith(Ii.protocol)&&(I=I.slice(Ii.protocol.length),T=!0,I===n.relativeCwd))continue;let O=I.match(LSt);if(!O){r.reportWarning(0,`Couldn't auto-upgrade range ${I} (in ${j.prettyLocator(e.configuration,E.anchoredLocator)})`);continue}let U=s?`${c}`:`${O[1]}${c}`;T&&(U=`${Ii.protocol}${U}`);let V=j.makeDescriptor(x,U);E.manifest[C].set(S,V)}}}var USt=new Map([["%n",{extract:e=>e.length>=1?[e[0],e.slice(1)]:null,generate:(e=0)=>`${e+1}`}]]);function sPe(e,{current:t,prerelease:r}){let s=new TA.default.SemVer(t),a=s.prerelease.slice(),n=[];s.prerelease=[],s.format()!==e&&(a.length=0);let c=!0,f=r.split(/\./g);for(let p of f){let h=USt.get(p);if(typeof h>"u")n.push(p),a[0]===p?a.shift():c=!1;else{let E=c?h.extract(a):null;E!==null&&typeof E[0]=="number"?(n.push(h.generate(E[0])),a=E[1]):(n.push(h.generate()),c=!1)}}return s.prerelease&&(s.prerelease=[]),`${e}-${n.join(".")}`}var G1=class extends ft{constructor(){super(...arguments);this.all=pe.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=pe.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=pe.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.exact=pe.Boolean("--exact",!1,{description:"Use the exact version of each package, removes any range. Useful for nightly releases where the range might match another version."});this.recursive=pe.Boolean("-R,--recursive",{description:"ReleLine 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 Je.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await zr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=await Ft.start({configuration:r,json:this.json,stdout:this.context.stdout},async f=>{let p=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,h=await uP(s,{prerelease:p}),E=new Map;if(this.all)E=h;else{let C=this.recursive?a.getRecursiveWorkspaceDependencies():[a];for(let S of C){let x=h.get(S);typeof x<"u"&&E.set(S,x)}}if(E.size===0){let C=h.size>0?" Did you want to add --all?":"";f.reportWarning(0,`The current workspace doesn't seem to require a version bump.${C}`);return}LJ(s,E,{report:f,exact:this.exact}),this.dryRun||(p||(this.all?await FJ(s):await NJ(s,[...E.keys()])),f.reportSeparator())});return this.dryRun||c.hasErrors()?c.exitCode():await s.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};Ge();bt();jt();var PL=et(hi());var q1=class extends ft{constructor(){super(...arguments);this.interactive=pe.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(){XC(this.context);let{Gem:r}=await Promise.resolve().then(()=>(RF(),oY)),{ScrollableItems:s}=await Promise.resolve().then(()=>(OF(),NF)),{FocusRequest:a}=await Promise.resolve().then(()=>(cY(),mwe)),{useListInput:n}=await Promise.resolve().then(()=>(FF(),ywe)),{renderForm:c}=await Promise.resolve().then(()=>(_F(),UF)),{Box:f,Text:p}=await Promise.resolve().then(()=>et(Yc())),{default:h,useCallback:E,useState:C}=await Promise.resolve().then(()=>et(dn())),S=await Je.find(this.context.cwd,this.context.plugins),{project:x,workspace:I}=await Rt.find(S,this.context.cwd);if(!I)throw new ar(x.cwd,this.context.cwd);await x.restoreInstallState();let T=await H1(x);if(T===null||T.releaseRoots.size===0)return 0;if(T.root===null)throw new st("This command can only be run on Git repositories");let O=()=>h.createElement(f,{flexDirection:"row",paddingBottom:1},h.createElement(f,{flexDirection:"column",width:60},h.createElement(f,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(f,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(f,{flexDirection:"column"},h.createElement(f,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<enter>")," to save.")),h.createElement(f,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),U=({workspace:ge,active:he,decision:Ce,setDecision:Ee})=>{let d=ge.manifest.raw.stableVersion??ge.manifest.version;if(d===null)throw new Error(`Assertion failed: The version should have been set (${j.prettyLocator(S,ge.anchoredLocator)})`);if(PL.default.prerelease(d)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${d})`);let Se=["undecided","decline","patch","minor","major"];n(Ce,Se,{active:he,minus:"left",plus:"right",set:Ee});let Be=Ce==="undecided"?h.createElement(p,{color:"yellow"},d):Ce==="decline"?h.createElement(p,{color:"green"},d):h.createElement(p,null,h.createElement(p,{color:"magenta"},d)," \u2192 ",h.createElement(p,{color:"green"},PL.default.valid(Ce)?Ce:PL.default.inc(d,Ce)));return h.createElement(f,{flexDirection:"column"},h.createElement(f,null,h.createElement(p,null,j.prettyLocator(S,ge.anchoredLocator)," - ",Be)),h.createElement(f,null,Se.map(meLine truncated
`)},p=()=>{let Ee=this.from.map(d=>V1.default.matcher(d));return s.workspaces.filter(d=>{let Se=j.stringifyIdent(d.anchoredLocator),Be=d.relativeCwd;return Ee.some(me=>me(Se)||me(Be))})},h=[];if(this.since?(f("Option --since is set; selecting the changed workspaces as root for workspace selection"),h=Array.from(await Ma.fetchChangedWorkspaces({ref:this.since,project:s}))):this.from?(f("Option --from is set; selecting the specified workspaces"),h=[...p()]):this.worktree?(f("Option --worktree is set; selecting the current workspace"),h=[a]):this.recursive?(f("Option --recursive is set; selecting the current workspace"),h=[a]):this.all&&(f("Option --all is set; selecting all workspaces"),h=[...s.workspaces]),this.dryRun&&!this.all){for(let Ee of h)f(`
- ${Ee.relativeCwd}
${j.prettyLocator(r,Ee.anchoredLocator)}`);h.length>0&&f("")}let E;if(this.recursive?this.since?(f("Option --recursive --since is set; recursively selecting all dependent workspaces"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceDependents()]).flat())):(f("Option --recursive is set; recursively selecting all transitive dependencies"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(f("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)f(`
- ${Ee.relativeCwd}
${j.prettyLocator(r,Ee.anchoredLocator)}`);let C=[],S=!1;if(c?.includes(":")){for(let Ee of s.workspaces)if(Ee.manifest.scripts.has(c)&&(S=!S,S===!1))break}for(let Ee of h){if(c&&!Ee.manifest.scripts.has(c)&&!S&&!(await wn.getWorkspaceAccessibleBinaries(Ee)).has(c)){f(`Excluding ${Ee.relativeCwd} because it doesn't have a "${c}" script`);continue}if(!(c===r.env.npm_lifecycle_event&&Ee.cwd===a.cwd)){if(this.include.length>0&&!V1.default.isMatch(j.stringifyIdent(Ee.anchoredLocator),this.include)&&!V1.default.isMatch(Ee.relativeCwd,this.include)){f(`Excluding ${Ee.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&(V1.default.isMatch(j.stringifyIdent(Ee.anchoredLocator),this.exclude)||V1.default.isMatch(Ee.relativeCwd,this.exclude))){f(`Excluding ${Ee.relativeCwd} because it matches the --exclude filter`);continue}if(this.publicOnly&&Ee.manifest.private===!0){f(`Excluding ${Ee.relativeCwd} because it's a private workspace and --no-private was set`);continue}C.push(Ee)}}if(C.sort((Ee,d)=>j.stringifyIdent(Ee.anchoredLocator).localeCompare(j.stringifyIdent(d.anchoredLocator))),this.dryRun)return 0;let x=this.verbose??(this.context.stdout.isTTY?1/0:0),I=x>0,T=x>1,O=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(Ui.availableParallelism()/2):1,U=O===1?!1:this.parallel,V=U?this.interlaced:!0,$=(0,aPe.default)(O),ie=new Map,fe=new Set,ae=0,ge=null,he=!1,Ce=await Ft.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async Ee=>{let d=async(Se,{commandIndex:Be})=>{if(he)return-1;!U&&T&&Be>1&&Ee.reportSeparator();let me=jSt(Se,{configuration:r,label:I,commandIndex:Be}),[ue,Z]=oPe(Ee,{prefix:me,interlaced:V}),[be,Qe]=oPe(Ee,{prefix:me,interlaced:V});try{T&&Ee.reportInfo(null,`${me?`${me} `:""}Process started`);let ot=Date.now(),_=await this.cli.run([this.commandName,...this.args],{cwd:Se.cwd,stdout:ue,stderr:be})||0;ue.end(),be.end(),await Z,await Qe;let tt=Date.now();if(T){let Ne=r.get("enableTimers")?`, completed in ${ce.pretty(r,tt-ot,ce.Type.DURATION)}`:"";Ee.reportInfo(null,`${me?`${me} `:""}Process exited (exit code ${_})${Ne}`)}return _===130&&(he=!0,ge=_),_}catch(ot){throw ue.end(),be.end(),await Z,await Qe,ot}};for(let Se of C)ie.set(Se.anchoredLocator.locatorHash,Se);for(;ie.size>0&&!Ee.hasErrors();){let Se=[];for(let[Z,be]of ie){if(fe.has(be.anchoredDescriptor.descriptorHash))continue;let Qe=!0;if(this.topological||this.topologicalDev){let ot=this.topologicalDev?new Map([...be.manifest.dependencies,...be.manifest.devDependencies]):be.manifest.dependencies;for(let _ of ot.values()){let tt=s.tryWorkspaceByDescriptor(_);if(Qe=tt===null||!ie.has(tt.anchoredLocator.locatorHash),!Qe)break}}if(Qe&&(fe.add(be.anchoredDescriptor.descriptorHash),Se.push($(async()=>{let ot=await d(be,{commandIndex:++ae});return ie.delete(Z),fe.delete(be.anchoredDescriptor.descriptorHash),{workspace:be,exitCode:ot}})),!U))break}if(Se.length===0){let Z=Array.from(ie.values()).map(be=>j.prettyLocator(r,be.anchoredLocator)).join(", ");Ee.reportError(3,`Dependency cycle detected (${Z})`);return}let Be=await Promise.all(Se);Be.forEach(({workspace:Z,exitCode:be})=>{be!==0&&Ee.reportError(0,`The command failed in workspace ${j.prettyLocator(r,Z.anchoredLocator)} with exit code ${be}`)});let ue=Be.map(Z=>Z.exitCode).find(Z=>Z!==0);(this.topological||this.topologicalDev)&&typeof ue<"u"&&Ee.reportError(0,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return ge!==null?ge:Ce.exitCode()}};function oPe(e,{prefix:t,interlaced:r}){let s=e.createStreamReporter(t),a=new qe.DefaultStream;a.pipe(s,{end:!1}),a.on("finish",()=>{s.end()});let n=new Promise(f=>{s.on("finish",()=>{f(a.active)})});if(r)return[a,n];let c=new qe.BufferStream;return c.pipe(a,{end:!1}),c.on("finish",()=>{a.end()}),[c,n]}function jSt(e,{configuration:t,commandIndex:r,label:s}){if(!s)return null;let n=`[${j.stringifyIdent(e.anchoredLocator)}]:`,c=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],f=c[r%c.length];return ce.pretty(t,n,f)}var GSt={commands:[W1,K1]},qSt=GSt;var KI=()=>({modules:new Map([["@yarnpkg/cli",Vv],["@yarnpkg/core",Wv],["@yarnpkg/fslib",L2],["@yarnpkg/libzip",av],["@yarnpkg/parsers",Y2],["@yarnpkg/shell",pv],["clipanion",rB],["semver",YSt],["typanion",qs],["@yarnpkg/plugin-essentials",L5],["@yarnpkg/plugin-catalog",H5],["@yarnpkg/plugin-compat",W5],["@yarnpkg/plugin-constraints",c9],["@yarnpkg/plugin-dlx",u9],["@yarnpkg/plugin-exec",p9],["@yarnpkg/plugin-file",d9],["@yarnpkg/plugin-git",O5],["@yarnpkg/plugin-github",y9],["@yarnpkg/plugin-http",E9],["@yarnpkg/plugin-init",I9],["@yarnpkg/plugin-interactive-tools",mY],["@yarnpkg/plugin-jsr",EY],["@yarnpkg/plugin-link",IY],["@yarnpkg/plugin-nm",sW],["@yarnpkg/plugin-npm",sJ],["@yarnpkg/plugin-npm-cli",dJ],["@yarnpkg/plugin-pack",ZW],["@yarnpkg/plugin-patch",wJ],["@yarnpkg/plugin-pnp",WY],["@yarnpkg/plugin-pnpm",SJ],["@yarnpkg/plugin-stage",RJ],["@yarnpkg/plugin-tLine truncated
Please report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once("beforeExit",n);try{process.exitCode=42,process.exitCode=await zSt(a,e,{selfPath:r,pluginConfiguration:s})}catch(c){ba.defaultContext.stdout.write(a.error(c)),process.exitCode=1}finally{process.off("beforeExit",n),await le.rmtempPromise()}}FT(process.argv.slice(2),{cwd:K.cwd(),selfPath:Ae.toPortablePath(Ae.resolve(process.argv[1])),pluginConfiguration:KI()});})();
/**
@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 v17.0.2
* 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.20.2
* 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.26.2
* 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.
*)
*/
+23 -27
View File
@@ -1,32 +1,28 @@
approvedGitRepositories:
- "https://github.com/electron/node-gyp.git"
checksumBehavior: update
compressionLevel: mixed
enableGlobalCache: false
enableScripts: true
logFilters:
- code: YN0086
level: discard
- code: YN0060
level: discard
- code: YN0002
level: discard
- code: YN0013
level: discard
nmHoistingLimits: workspaces
nodeLinker: node-modules
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
spec: "@yarnpkg/plugin-workspace-tools"
npmMinimalAgeGate: 1w
yarnPath: .yarn/releases/yarn-3.8.3.cjs
logFilters:
# Disable useless non-actionable warnings.
# https://github.com/yarnpkg/yarn/issues/4064
# eg "@joplin/app-desktop@workspace:packages/app-desktop provides react (p87edd) with version 18.2.0, which doesn't satisfy what @testing-library/react-hooks and some of its descendants request"
- code: YN0060
level: discard
# eg "@joplin/app-desktop@workspace:packages/app-desktop doesn't provide react-is (p570cf), requested by styled-components"
- code: YN0002
level: discard
# eg "string.prototype.matchall@npm:4.0.8 can't be found in the cache and will be fetched from the remote registry"
- code: YN0013
level: discard
# To avoid the error "The remote archive doesn't match the expected checksum".
# Yarn offers no way to understand what the issue is when it happens, or what
# needs to be done so it's just security theater that we have no choice but to
# disable.
checksumBehavior: update
yarnPath: .yarn/releases/yarn-4.16.0.cjs
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

+103 -7
View File
@@ -4,7 +4,6 @@ html {
}
* {
outline: none;
font-family: "Montserrat", sans-serif;
}
@@ -206,6 +205,25 @@ h3 {
font-size: 1.3em;
}
.action-link {
/* Override default styles so that the class can apply to <button>s */
background: none;
border: none;
padding: 0;
color: inherit;
font-weight: bold;
font-size: 1em;
text-decoration: none;
display: block;
margin: 2px 0 0 1.7em;
text-align: left;
cursor: pointer;
}
.action-link:hover .action-label {
text-decoration: underline;
}
p,
.button-link {
line-height: 30.8px;
@@ -658,13 +676,84 @@ footer .bottom-links-row p {
}
.language-switcher {
display: inline;
display: inline-block;
position: relative;
margin-left: 20px;
}
.language-switcher > button {
border: none;
background-color: transparent;
color: #0557ba;
cursor: pointer;
padding: 0;
}
.language-switcher > button:hover {
opacity: 0.8;
}
.language-switcher .dropdown-menu {
min-width: 100px;
padding: 5px 0 !important;
margin: 0 !important;
text-align: left;
}
.language-switcher .dropdown-menu li {
padding: 0 !important;
margin: 0 !important;
list-style: none;
}
.language-switcher .dropdown-item {
color: #333 !important;
padding: 8px 15px !important;
margin: 0 !important;
display: block;
text-align: left;
width: 100%;
box-sizing: border-box;
}
.language-switcher .dropdown-item.active {
background-color: #0557ba !important;
color: #fff !important;
margin: 0 !important;
border-radius: 0 !important;
}
.language-switcher .dropdown-item:hover:not(.active) {
background-color: #f0f0f0;
}
/* Language switcher on front page (blue background) */
.navbar-frontpage .language-switcher > button {
color: #fff;
}
/* Mobile language section */
.menu-mobile-language {
margin-top: 20px;
padding-top: 15px;
border-top: 1px solid rgba(255, 255, 255, 0.2);
}
.mobile-menu-language-label {
color: #90b1d9;
margin-bottom: 10px;
font-size: 0.9em;
}
.mobile-language-link {
display: inline-block;
margin: 0 10px;
padding: 5px 15px;
border-radius: 5px;
}
.mobile-language-link.active {
background-color: rgba(255, 255, 255, 0.2);
}
.joplin-cloud-feature-list .feature-description {
@@ -691,6 +780,12 @@ footer .bottom-links-row p {
opacity: 0.5;
}
/* Prevents parts of the feature comparison table from being offscreen
on mobile */
.joplin-cloud-feature-list {
overflow-x: auto;
}
/*****************************************************************
WHAT'S NEW PAGE
*****************************************************************/
@@ -1280,11 +1375,7 @@ footer .bottom-links-row p {
ENGLISH VERSION
*****************************************************************/
:lang(en-gb) #made-in-france-section {
display: none;
}
:lang(en-gb) .top-section-img-cn {
:not(:lang(zh-cn)) .top-section-img-cn {
display: none;
}
@@ -1300,4 +1391,9 @@ footer .bottom-links-row p {
:lang(zh-cn) #plans-section .faq {
display: none;
}
.cfa-button {
margin-top: 10px;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 430 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1013 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

+46
View File
@@ -124,7 +124,53 @@ async function setupDownloadPage() {
}
}
// Supported locale path prefixes (language code -> URL path)
// Most languages use their code directly (fr, de), with exceptions mapped here
const localePathOverrides = {
'zh': 'cn',
};
// List of supported language codes
const supportedLanguages = ['fr', 'de', 'zh'];
function getLocalePath(langCode) {
const pathPrefix = localePathOverrides[langCode] || langCode;
return '/' + pathPrefix;
}
function setupLocaleRedirect() {
// Only redirect on the front page (root path or index.html)
const path = window.location.pathname;
const isRootPage = path === '/' || path === '/index.html' || path === '';
if (!isRootPage) return;
// Check if user has explicitly chosen to stay on current locale
const localePreference = (localStorage.getItem('joplin-locale-preference') || '').toLowerCase();
if (localePreference === 'en') return;
// Get user's preferred language from browser
const browserLang = (navigator.language || navigator.userLanguage || '').toLowerCase();
// Extract the base language code (e.g., 'fr' from 'fr-ca')
const langCode = browserLang.split('-')[0];
// Check if we support this language
if (!supportedLanguages.includes(langCode)) return;
window.location.href = getLocalePath(langCode) + '/';
}
// Allow users to switch language and remember their preference
function setLocalePreference(locale, url) {
localStorage.setItem('joplin-locale-preference', locale);
window.location.href = url;
}
// Expose globally for language switcher links
window.setLocalePreference = setLocalePreference;
$(function () {
setupMobileMenu();
setupLocaleRedirect();
void setupDownloadPage();
});
Loaded 100 of 3743 files, more files were not shown because too many files have changed in this diff. Show more